// -----------------------------------------------------------------------------------
// 
// This page coded by Scott Upton
// http://www.uptonic.com | http://www.couloir.org
//
// This work is licensed under a Creative Commons License
// Attribution-ShareAlike 2.0
// http://creativecommons.org/licenses/by-sa/2.0/
//
// Associated APIs copyright their respective owners
//
// -----------------------------------------------------------------------------------
// --- version date: 11/28/05 --------------------------------------------------------


// get current photo id from URL
var thisURL = document.location.href;
var splitURL = thisURL.split("#");
var photoId =  new Array() ;
var photoId2 = new Array();
// CSS border size x 2
var borderSize = new Array();;
var busy = false;
// Photo directory for this gallery
var photoDir ;
var compteurDiaporama = 0;
// Define each photo's name, height, width, and caption
var photoArray = new Array();
// Number of photos in this gallery
var couleurFond = new Array();
var CouleurFond = new Array();
var EpaiseurCadre = new Array();
var HauteurPhoto = new Array();
var tabPhoto = new Array();
var LargeurPhoto = new Array();
var tabTemps = new Array();
var page = new Array();
var cptTour =0;
/*--------------------------------------------------------------------------*/

// Additional methods for Element added by SU, Couloir
Object.extend(Element, {
	getHeight: function(element){
	element = $(element);
	if (navigator.appName =="Microsoft Internet Explorer")
	{
   		return element.offsetHeight; 
	}
	else
	{
		return element.clientHeight; 
	}
	},
	getWidth: function(element) {
   	element = $(element);
	if (navigator.appName =="Microsoft Internet Explorer")
	{
   		return element.offsetWidth; 
	}
	else
	{
		return element.clientWidth; 
	}
	},
	setWidth: function(element,w) {
   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   	element = $(element);
    	element.style.height = h +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

/*--------------------------------------------------------------------------*/

var Slideshow = Class.create();

Slideshow.prototype = {
	initialize: function(cptDiaporama) {
		this.photoId = photoId[cptDiaporama];
		this.photo = 'Photo'+cptDiaporama;
		this.photoBox = 'Container'+cptDiaporama;
		this.prevLink = 'PrevLink'+cptDiaporama;
		this.nextLink = 'NextLink'+cptDiaporama;
		this.captionBox = 'CaptionContainer'+cptDiaporama;
		this.caption = 'Caption'+cptDiaporama;
		this.counter = 'Counter'+cptDiaporama;
		this.loader = 'Loading'+cptDiaporama;
	},
	getCurrentSize: function(cptDiaporama) {
		// Get current height and width, subtracting CSS border size
		if (navigator.appName =="Microsoft Internet Explorer")
		{
			if(photoId[cptDiaporama] == 0 && Element.getWidth($('Container'+cptDiaporama)) == 200 )
			{
				this.wCur = 200  ;
				this.hCur = 200  ;
				//this.wCur = Element.getWidth(this.photoBox) -2*borderSize;
				//this.hCur = Element.getHeight(this.photoBox) -2*borderSize;
			}
			else if(photoId[cptDiaporama] == 0 || photoId2[cptDiaporama] == 0)
			{
				//this.wCur = (parseInt(photoArray[photoArray.length - 1][1],10) ) ;
				//this.hCur = (parseInt(photoArray[photoArray.length - 1][2],10) ) ;
				this.wCur = Element.getWidth($('Container'+cptDiaporama)) - borderSize ;
				this.hCur = Element.getHeight($('Container'+cptDiaporama)) - borderSize;
			}
			else
			{
				//this.wCur = (parseInt(photoArray[photoId-1][1],10) ) ;
				//this.hCur = (parseInt(photoArray[photoId-1][2],10) ) ;
				if($("Container2"+cptDiaporama).style.display == "none")
				{
					this.wCur = Element.getWidth($('Container'+cptDiaporama)) - borderSize ;
					this.hCur = Element.getHeight($('Container'+cptDiaporama)) - borderSize;
				}
				else
				{
					this.wCur = Element.getWidth($("Container2"+cptDiaporama)) - borderSize ;
					this.hCur = Element.getHeight($("Container2"+cptDiaporama)) - borderSize;
				}
			}
		}
		else
		{
			if($("Container2"+cptDiaporama).style.display == "none")
			{
				this.wCur = Element.getWidth($('Container'+cptDiaporama)) ;
				this.hCur = Element.getHeight($('Container'+cptDiaporama)) ;
			}
			else
			{
				this.wCur = Element.getWidth($("Container2"+cptDiaporama)) ;
				this.hCur = Element.getHeight($("Container2"+cptDiaporama)) ;
			}
		}
	},
	getNewSize: function(cptDiaporama) {
		// Get current height and width
		if($("Container2"+cptDiaporama).style.display == "none")
		{
			this.wNew = LargeurPhoto[cptDiaporama];
			this.hNew = HauteurPhoto[cptDiaporama];
		}
		else
		{
			this.wNew = LargeurPhoto[cptDiaporama];
			this.hNew = HauteurPhoto[cptDiaporama];
		}
	},
	getScaleFactor: function(cptDiaporama) {
		this.getCurrentSize(cptDiaporama);
		this.getNewSize(cptDiaporama);
		// Scalars based on change from old to new
		this.xScale = (this.wNew / this.wCur) * 100;
		this.yScale = (this.hNew / this.hCur) * 100;
	},
	setNewPhotoParams: function(cptDiaporama) {
		// Set source of new image
		//Element.hide(this.photo);
		Element.setSrc($("Photo"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId[cptDiaporama]][0].lastIndexOf(".")) + ".png?" + escape(new Date()));
		if(photoArray[cptDiaporama].length - 1 == photoId[cptDiaporama])
		{
			photoId2[cptDiaporama] = 0;
		}
		else
		{
			photoId2[cptDiaporama] = photoId[cptDiaporama] +1;
		}
		Element.setSrc($("Photo2"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId2[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId2[cptDiaporama]][0].lastIndexOf(".")) + ".png?" + escape(new Date())); 
		// Set anchor for bookmarking
		Element.setHref('PrevLink'+cptDiaporama, "#" + (photoId[cptDiaporama]+1));
		Element.setHref('NextLink'+cptDiaporama, "#" + (photoId[cptDiaporama]+1));
	},
	setPhotoCaption: function(cptDiaporama) {
		// Add caption from gallery array
		Element.setInnerHTML(this.caption,photoArray[cptDiaporama][photoId[cptDiaporama]][3]);
		Element.setInnerHTML(this.counter,((photoId[cptDiaporama]+1)+'/'+photoNum));
	},
	resizePhotoBox: function(cptDiaporama) {
		this.getScaleFactor(cptDiaporama);
		//top.alert(this.xScale + "," + this.yScale + ":" + this.wNew + "," + this.wCur + ":" + this.hNew + "," + this.hCur );
		if (navigator.appName =="Microsoft Internet Explorer")
		{
			if($("Container2"+cptDiaporama).style.display == "none")
			{
				Element.setWidth($('Container'+cptDiaporama), LargeurPhoto[cptDiaporama] - 0 + borderSize[cptDiaporama] );
				Element.setHeight($('Container'+cptDiaporama), HauteurPhoto[cptDiaporama] - 0 + borderSize[cptDiaporama] );
			}
			else
			{
				Element.setWidth($("Container2"+cptDiaporama), LargeurPhoto[cptDiaporama] - 0 + borderSize[cptDiaporama] );
				Element.setHeight($("Container2"+cptDiaporama), HauteurPhoto[cptDiaporama] - 0 + borderSize[cptDiaporama] );
			}
		}
		else
		{
			if($("Container2"+cptDiaporama).style.display == "none")
			{
				Element.setWidth($('Container'+cptDiaporama), LargeurPhoto[cptDiaporama] );
				Element.setHeight($('Container'+cptDiaporama), HauteurPhoto[cptDiaporama]  );
			}
			else
			{
				Element.setWidth($("Container2"+cptDiaporama), LargeurPhoto[cptDiaporama]  );
				Element.setHeight($("Container2"+cptDiaporama), HauteurPhoto[cptDiaporama]  );
			}
		}
		
		// Dynamically resize caption box as well
		//Element.setWidth(this.captionBox,this.wNew-(-borderSize));
	},
	showPhoto: function(cptDiaporama){
			busy = true;
			var variable = this;
			new Effect.Fade($("Loading"+cptDiaporama), { duration: 0.3});
			new Effect.Fade($("Loading2"+cptDiaporama), { duration: 0.3});
			if(cptTour >= 2 )
			{
				$("TdDiaporamaPhoto"+cptDiaporama).style.display = "";
			}
			else
			{
				cptTour++;
			}
			if(photoArray[cptDiaporama].length > 0)
			{
				if($("Container"+cptDiaporama).style.display == "none")
				{
					$("Container2"+cptDiaporama).absolutize();
					if (navigator.appName == "Microsoft Internet Explorer")
					{
						$("Container2"+cptDiaporama).style.top = $("Container"+cptDiaporama).style.top;
						$("Container2"+cptDiaporama).style.left = $("Container"+cptDiaporama).style.left;
					}
					else
					{
						$("Container"+cptDiaporama).style.top = $("Container2"+cptDiaporama).style.top;
						$("Container"+cptDiaporama).style.left = $("Container2"+cptDiaporama).style.left;
						Element.setWidth($('Container'+cptDiaporama), LargeurPhoto[cptDiaporama] );
						Element.setHeight($('Container'+cptDiaporama), HauteurPhoto[cptDiaporama]  );
					}
					new Effect.Parallel([
						new Effect.Fade($("Container2"+cptDiaporama), { sync : true}),
						// Workaround for problems calling object method "afterFinish"
						new Effect.Appear($("Container"+cptDiaporama), {sync : true, afterFinish: function(){
																								if (navigator.appName !="Microsoft Internet Explorer")
																								{
																									//$("Container"+cptDiaporama).relativize();
																								}
																								//$("Photo2"+cptDiaporama).style.display = "none";
																								//$("Photo"+cptDiaporama).style.display = "";
																								Element.show('PrevLink'+cptDiaporama);Element.show('NextLink'+cptDiaporama);
																								if(photoArray[cptDiaporama].length - 1 == photoId[cptDiaporama])
																								{
																									photoId2[cptDiaporama] = 0;
																								}
																								else
																								{
																									photoId2[cptDiaporama] = photoId[cptDiaporama] +1;
																								}
																								Element.setSrc($("Photo2"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId2[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId2[cptDiaporama]][0].lastIndexOf(".")) + page[cptDiaporama] + cptDiaporama +".png?" + new Date()); 
																								// Set anchor for bookmarking
																								Element.setHref('PrevLink'+cptDiaporama, "#" + (photoId[cptDiaporama]+1));
																								Element.setHref('NextLink'+cptDiaporama, "#" + (photoId[cptDiaporama]+1));
																								//$("Container2").style.left = 0;
																								//$("Container").style.left = 0;
																								variable.resizePhotoBox(cptDiaporama);
																								busy = false;
																								if(cptTour = 1 )
																								{
																									$("TdDiaporamaPhoto"+cptDiaporama).style.display = "";
																								}
																								}})
						],{ duration: 2});
				}
				else
				{
					$("Container"+cptDiaporama).absolutize();
					if (navigator.appName == "Microsoft Internet Explorer")
					{
						$("Container"+cptDiaporama).style.top = $("Container2"+cptDiaporama).style.top;
						$("Container"+cptDiaporama).style.left = $("Container2"+cptDiaporama).style.left;
					}
					else
					{
						$("Container2"+cptDiaporama).style.top = $("Container"+cptDiaporama).style.top;
						$("Container2"+cptDiaporama).style.left = $("Container"+cptDiaporama).style.left;
						Element.setWidth($('Container2'+cptDiaporama), LargeurPhoto[cptDiaporama] );
						Element.setHeight($('Container2'+cptDiaporama), HauteurPhoto[cptDiaporama]  );
					}
					new Effect.Parallel([
						new Effect.Fade($("Container"+cptDiaporama), { sync : true}),
						// Workaround for problems calling object method "afterFinish"
						new Effect.Appear($("Container2"+cptDiaporama), {sync : true, afterFinish: function(){
																								 if (navigator.appName =="Microsoft Internet Explorer")
																								 {
																									
																									$("Container2"+cptDiaporama).style.position = "";
																								 }
																								 else
																								 {
																								 	//$("Container2"+cptDiaporama).relativize();
																								 }
																								 //$("Photo"+cptDiaporama).style.display = "none";
																								 //$("Photo2"+cptDiaporama).style.display = "";
																								 Element.show('PrevLink2'+cptDiaporama);Element.show('NextLink2'+cptDiaporama);
																								 if(photoArray[cptDiaporama].length - 1 == photoId2[cptDiaporama])
																								 {
																									 photoId[cptDiaporama] = 0;
																								 }
																								 else
																								 {
																									 photoId[cptDiaporama] = photoId2[cptDiaporama]+1 ;
																								 }
																								 Element.setSrc($("Photo"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId[cptDiaporama]][0].lastIndexOf(".")) + page[cptDiaporama] + cptDiaporama +".png?" + new Date()); 
																								 // Set anchor for bookmarking
																								 Element.setHref('PrevLink2'+cptDiaporama, "#" + (photoId2[cptDiaporama]+1));
																								 Element.setHref('NextLink2'+cptDiaporama, "#" + (photoId2[cptDiaporama]+1));
																								 //$("Container2").style.left = 0;
																								// $("Container").style.left = 0;
																								 variable.resizePhotoBox(cptDiaporama);
																								 busy = false;
																								 }})
							],{ duration: 2});
							
				}
				if($("Container"+cptDiaporama).style.display == "none" && $("Container2"+cptDiaporama).style.display == "none")
				{
					$("Container"+cptDiaporama).style.display = "";
					$("Container2"+cptDiaporama).style.display = "";
				}
			}
			
	},
	nextPhoto: function(cptDiaporama){
		// Figure out which photo is next
		//(photoId == (photoArray.length - 1)) ? photoId = 0 : photoId++;
		this.initSwap(cptDiaporama);
	},
	prevPhoto: function(cptDiaporama){
		// Figure out which photo is previous
		//(photoId == 0) ? photoId = photoArray.length - 1 : photoId--;
		if($("Container2"+cptDiaporama).style.display == "none")
		{
			if(0 == photoId[cptDiaporama])
			{
				if(photoId2[cptDiaporama] - 1 < 0)
				{
					photoId[cptDiaporama] = photoArray[cptDiaporama].length-1;
					photoId2[cptDiaporama] = photoId - 1
				}
				else
				{
					photoId[cptDiaporama] = photoId2[cptDiaporama] -1;
					if(photoId[cptDiaporama] - 1 < 0)
					{
						photoId2[cptDiaporama] = photoArray[cptDiaporama].length-1;
					}
					else
					{
						photoId2[cptDiaporama] = photoId - 1;
					}
				}
			}
			else
			{
				if(photoId2[cptDiaporama] - 1 < 0)
				{
					photoId2[cptDiaporama] = photoArray[cptDiaporama].length-1;
					photoId[cptDiaporama] = photoId2[cptDiaporama] - 1
				}
				else
				{
					photoId2[cptDiaporama] = photoId2[cptDiaporama] -1;
					if(photoId2[cptDiaporama] - 1 < 0)
					{
						photoId[cptDiaporama] = photoArray[cptDiaporama].length-1;
					}
					else
					{
						photoId[cptDiaporama] = photoId2[cptDiaporama] - 1;
					}
				}
			}
		}
		else
		{
			 if(0 == photoId2[cptDiaporama])
			 {
				 photoId[cptDiaporama] = photoArray[cptDiaporama].length-1;
			 }
			 else
			 {
				 photoId[cptDiaporama] = photoId2[cptDiaporama]-1 ;
			 }
		}
		this.initSwap(cptDiaporama);
	},
	initSwap: function(cptDiaporama) {
		// Begin by hiding main elements
		//Element.show(this.loader);
		//Element.hide(this.captionBox);
		Element.hide('PrevLink'+cptDiaporama);
		Element.hide('NextLink'+cptDiaporama);
		//Element.hide(this.photo);
		this.showPhoto(cptDiaporama);
		//this.setNewPhotoParams();
		// Set new dimensions and source, then resize
		
		//this.setPhotoCaption();
		

	}
}

/*--------------------------------------------------------------------------*/

// Establish CSS-driven events via Behaviour script
var myrules = {
	'#Photo' : function(element){
		element.onload = function(){
			var myPhoto = new Slideshow(photoId);
			//myPhoto.showPhoto();
		}
	},
	'#PrevLink' : function(element){
		element.onmouseover = function(){
			
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.prevPhoto();
			
		}
	},
	'#NextLink' : function(element){
		element.onmouseover = function(){
			
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.nextPhoto();
			
		}
	},
	a : function(element){
		element.onfocus = function(){
			this.blur();
		}
	}
};

// Add window.onload event to initialize
//if($("tabPhoto"))
//{
	//Behaviour.addLoadEvent(init);
//}
//Behaviour.apply();

function init() 
{
	var tab = document.getElementsByTagName("table");
	for(a=0;a<tab.length;a++)
	{
		if(tab[a].id.indexOf("PhotoResizeDiaporama") > -1)
		{
			if(compteurDiaporama < tab[a].id.replace("PhotoResizeDiaporama",""))
			{
				compteurDiaporama = tab[a].id.replace("PhotoResizeDiaporama","");
			}
		}
	}
	for(var cptDiaporama = 0;cptDiaporama <= compteurDiaporama;cptDiaporama++)
	{
		if($('PhotoResizeDiaporama'+cptDiaporama))
		{
			borderSize[cptDiaporama] = EpaiseurCadre[cptDiaporama] ;
		    photoDir = document.getElementById("CheminFotolia").value.replace("Fotolia","") + "/Diaporama/";
			photoArray[cptDiaporama] = tabPhoto[cptDiaporama] ;
			couleurFond[cptDiaporama] = "#" + CouleurFond[cptDiaporama];
			photoId[cptDiaporama] = 0;
			var myPhoto = new Slideshow(photoId[cptDiaporama]);
			photoId2[cptDiaporama] = 0;
			if (!photoArray[cptDiaporama]) return;
			if(photoArray[cptDiaporama].length > 0)
			{
				Element.setSrc($("Photo"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId[cptDiaporama]][0].lastIndexOf(".")) + page[cptDiaporama] + cptDiaporama + ".png?" + new Date()); 
				Element.setSrc($("Photo2"+cptDiaporama),photoDir + photoArray[cptDiaporama][photoId2[cptDiaporama]][0].substring(0,photoArray[cptDiaporama][photoId2[cptDiaporama]][0].lastIndexOf(".")) + page[cptDiaporama] + cptDiaporama + ".png?" + new Date()); 
			}
			$("Container"+cptDiaporama).style.borderWidth = borderSize[cptDiaporama];
			$("Container2"+cptDiaporama).style.borderWidth = borderSize[cptDiaporama];
			$('PhotoResizeDiaporama'+cptDiaporama).style.backgroundImage='';
			$('OuterContainer'+cptDiaporama).style.display = '';
			$("Container2"+cptDiaporama).style.opacity = 0;
			$("Container"+cptDiaporama).style.opacity = 1;
			$("Container"+cptDiaporama).style.backgroundColor = "#" + CouleurFond[cptDiaporama];
			$("Container2"+cptDiaporama).style.backgroundColor = "#" + CouleurFond[cptDiaporama];
			$("Container"+cptDiaporama).style.display = "none";
			if (navigator.appName =="Microsoft Internet Explorer")
			{
				$("Container2"+cptDiaporama).absolutize();
				$("Container"+cptDiaporama).absolutize();
			}
			if(LargeurPhoto[cptDiaporama] != $("PhotoResizeDiaporama"+cptDiaporama).style.width.replace("px","") || HauteurPhoto[cptDiaporama] != $("PhotoResizeDiaporama"+cptDiaporama).style.height.replace("px",""))
			{
				$("Container"+cptDiaporama).style.width = $("PhotoResizeDiaporama"+cptDiaporama).style.width;
				$("Container"+cptDiaporama).style.height = $("PhotoResizeDiaporama"+cptDiaporama).style.height;
				LargeurPhoto[cptDiaporama] = $("PhotoResizeDiaporama"+cptDiaporama).style.width.replace("px","");
				HauteurPhoto[cptDiaporama] = $("PhotoResizeDiaporama"+cptDiaporama).style.height.replace("px","")
			}
			else
			{
				$("Container"+cptDiaporama).style.width = LargeurPhoto[cptDiaporama];
				$("Container"+cptDiaporama).style.height = HauteurPhoto[cptDiaporama];
			}
			$("Container2"+cptDiaporama).style.width = 0;
			$("Container2"+cptDiaporama).style.height = 0;
			ChangeCouleurCadre(CouleurFond[cptDiaporama],cptDiaporama);
			//$("TdDiaporamaPhoto"+cptDiaporama).style.display = "";
			myPhoto.initSwap(cptDiaporama);
			if(cptDiaporama <= compteurDiaporama)
			{ 
				defilement(cptDiaporama);
			}
		}
	}
	
}

function defilement(numDiapo)
{
	if($('PhotoResizeDiaporama'+numDiapo) )
	{
		//alert(cptDiaporama);
		var myPhoto = new Slideshow(numDiapo);
		myPhoto.initSwap(numDiapo);
		window.setTimeout(function(){defilement(numDiapo)},tabTemps[numDiapo]*1000);
	}

	
}

function ChangeCouleurCadre(value,cptDiaporama)
{
	value = value.replace("#","");
	if(value.length == 6)
	{
		value = "#" + value;
		$("Container"+cptDiaporama).style.backgroundColor = value;
		$("Container2"+cptDiaporama).style.backgroundColor = value;
		couleurFond = value;
		value = value.replace("#","");
		var valueR = toDec(value.substring(0,2),valueR)+18-0 ;
		if(valueR > 255) valueR = 255;
		var valueG = toDec(value.substring(2,4),valueG)+18-0 ;
		if(valueG > 255) valueG = 255;
		var valueB = toDec(value.substring(4,6),valueB)+18-0 ;
		if(valueB > 255) valueB = 255;
		valueR = toHex(valueR,valueR);
		valueG = toHex(valueG,valueG);
		valueB = toHex(valueB,valueB);
		value = "#" + valueR + valueG + valueB ;
		$("Container"+cptDiaporama).style.borderRightColor = value;
		$("Container"+cptDiaporama).style.borderLeftColor = value;
		$("Container"+cptDiaporama).style.borderTopColor = value;
		$("Container"+cptDiaporama).style.borderBottomColor = value;
		$("Container2"+cptDiaporama).style.borderRightColor = value;
		$("Container2"+cptDiaporama).style.borderLeftColor = value;
		$("Container2"+cptDiaporama).style.borderTopColor = value;
		$("Container2"+cptDiaporama).style.borderBottomColor = value;
	}
}//ChangeCouleurCadre

function toHex(IdIn, IdOut) 
{
  var nbArg = toHex.arguments.length;
  var oDec = IdIn;
  var oHex = IdOut;
  var regDec = /^\d+$/;
  // Vérif condition mini ok
  if (nbArg <1 || oDec == null || !regDec.test(oDec)) return false;
  var result = parseInt(oDec,10).toString(16).toUpperCase();
  if (nbArg == 2 && oHex != null) oHex = result;
  return  result;
}
 
function toDec(IdIn, IdOut)
{
  var nbArg = toDec.arguments.length;
  var oDec = IdOut;
  var oHex = IdIn;
  var regDec = /^[a-fA-F\d]+$/;
  // Vérif condition mini ok
  if (nbArg <1 || oHex == null || !regDec.test(oHex)) return false;
  var result = parseInt(oHex,16);
  if (nbArg == 2 && oDec != null) oDec = result;
  return  result;
}

function PreviousPhoto(cptDiaporama)
{
	var myPhoto = new Slideshow(cptDiaporama);
	while(busy == true)
	{}
	myPhoto.prevPhoto(cptDiaporama);
}

function NextPhoto(cptDiaporama)
{
	var myPhoto = new Slideshow(cptDiaporama);
	while(busy == true)
	{}
	myPhoto.nextPhoto(cptDiaporama);
}

// JLS 21/07/2010 ---------------------------------------------------------------------------------------------------------------
var slide_pics = new Array();		// les images
var slide_height = new Array();		// la hauteur
var slide_width = new Array();		// la largeur
var slide_bordersize = new Array();	// la taille du cadre
var slide_color = new Array();		// la couleur
var slide_timeout = new Array();	// le delai de transition
var slide_showimg = new Array();	// l'image en cours d'animation
var slide_curimg = new Array();		// l'image a afficher
var slide_timer = new Array();		// variable du timer pour les animations
var slide_effect1 = new Array();	// variable pour les effets
var slide_effect2 = new Array();	// variable pour les effets ken burns
var slide_effect = new Array();		// l'effet en cours
var slide_randomfx = new Array();	// effets aleatoires ?

// recupere le vrai nom du fichier image
function getRealFile(img, theSlide)
{
	if (theSlide == 99) num = numDiaporama; else num = theSlide;
	try{ cs = $('PhotoResizeDiaporama'+num).style.backgroundImage; } catch(e) { cs = ''; }
	try{ cs += top.window.frames[0].frames[0].document.URL; } catch(e) {}
	if (cs.indexOf('Logo') > 0) page = 'Logo'; else page = page_name;
	png = img.substring(img.lastIndexOf('/')+1, img.lastIndexOf('.')) + page + num + '.png';
	return image_dir + png;
}

// affiche les fleches de navigation
function slide_showlinks(theSlide)
{
	$('prevlink' + String(theSlide)).style.visibility = 'visible';
	$('nextlink' + String(theSlide)).style.visibility = 'visible';
}

// cache les fleches
function slide_hidelinks(theSlide)
{
	$('prevlink' + String(theSlide)).style.visibility = 'hidden';
	$('nextlink' + String(theSlide)).style.visibility = 'hidden';
}

// demarre l'effet choisi
function slide_initEffect(theSlide)
{
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	// si effet aleatoire, on le definit
	if (slide_randomfx[theSlide] == 'KB') slide_effect[theSlide] = Math.round(Math.random()*11) + 6;
	if (slide_effect[theSlide] >= 0 && slide_randomfx[theSlide] == true) slide_effect[theSlide] = Math.round(Math.random()*17);
	
	switch (slide_effect[theSlide])
	{
		case 0: // fade
			if (slide_effect1[theSlide][5]) // cas ou l'on transite depuis un K.B.
			{
				i2.src = slide_effect1[theSlide][0].firstChild.src;
				i2.style.left = Math.round((slide_width[theSlide] - i2.offsetWidth) / 2) + 'px';
				i2.style.top = Math.round((slide_height[theSlide] - i2.offsetHeight) / 2) + 'px';
				i1.parentNode.removeChild(slide_effect1[theSlide][0]);
			}
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			slide_effect1[theSlide] = [0];
			break;
		case 1: // slide
			if (slide_effect1[theSlide][5]) // cas ou l'on transite depuis un K.B.
			{
				i2.src = slide_effect1[theSlide][0].firstChild.src;
				i2.style.left = Math.round((slide_width[theSlide] - i2.offsetWidth) / 2) + 'px';
				i2.style.top = Math.round((slide_height[theSlide] - i2.offsetHeight) / 2) + 'px';
				i1.parentNode.removeChild(slide_effect1[theSlide][0]);
				i2.style.opacity = '';
				i2.style.filter = '';
			}
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = (-slide_width[theSlide]) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			i1.style.opacity = '';
			i1.style.filter = '';
			slide_effect1[theSlide] = [0-slide_width[theSlide]];
			break;
		case 2: // slide over
			if (slide_effect1[theSlide][5]) oo = slide_effect1[theSlide][0]; else oo = null; // cas ou l'on transite depuis un K.B.
			i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.width = slide_width[theSlide] + 'px';
			od.style.height = slide_height[theSlide] + 'px';
			od.style.background = slide_color[theSlide] + ' url(\'' + i1.src + '\') center no-repeat';
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 0-slide_width[theSlide], oo];
			od.style.left = slide_effect1[theSlide][1] + 'px';
			od.style.top = '0';
			break;
		case 3: // roll over
			if (slide_effect1[theSlide][5]) oo = slide_effect1[theSlide][0]; else oo = null; // cas ou l'on transite depuis un K.B.
			i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.width = '0';
			od.style.height = slide_height[theSlide] + 'px';
			od.style.background = slide_color[theSlide] + ' url(\'' + i1.src + '\') ' + i1.style.left + ' center no-repeat';
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 0, oo];
			od.style.left = '0';
			od.style.top = '0';
			break;
		case 4: // zoom in
			if (slide_effect1[theSlide][5]) oo = slide_effect1[theSlide][0]; else oo = null; // cas ou l'on transite depuis un K.B.
			i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.width = '0';
			od.style.height = '0';
			od.style.background = slide_color[theSlide];
			im = document.createElement('img');
			im.style.position = 'absolute';
			im.style.width = '0';
			im.style.height = '0';
			im.src = i1.src;
			od.appendChild(im);
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 0.0, slide_pics[theSlide][slide_curimg[theSlide]][1] / slide_width[theSlide],
				slide_pics[theSlide][slide_curimg[theSlide]][2] / slide_height[theSlide], oo];
			break;
		case 5: // zoom out
			if (slide_effect1[theSlide][5]) { i2.src = slide_effect1[theSlide][0].firstChild.src; i1.parentNode.removeChild(slide_effect1[theSlide][0]); }// cas ou l'on transite depuis un K.B.
			i2.style.opacity = '0';
			i2.style.filter = 'alpha(opacity=0)';
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.width = '100%';
			od.style.height = '100%';
			od.style.background = slide_color[theSlide];
			im = document.createElement('img');
			im.style.position = 'absolute';
			im.src = i2.src;
			od.appendChild(im);
			i1.parentNode.appendChild(od);
			i1.style.opacity = '';
			i1.style.filter = '';
			slide_effect1[theSlide] = [od, 1, i2.offsetWidth / slide_width[theSlide], i2.offsetHeight / slide_height[theSlide]];		
			break;
		case 6: // ken burns move
		case 7:
		case 8:
		case 9:
			/*i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i2.style.opacity = '0';
			i2.style.filter = 'alpha(opacity=0)';*/
			if (slide_effect1[theSlide][5])	oo = slide_effect1[theSlide][0]; else oo = i1; // on transite depuis un K.B. ou un effet std ?
			w1 = Math.round(slide_width[theSlide] * 1.5);
			h1 = Math.round(slide_height[theSlide] * 1.5);
			w2 = Math.round(slide_pics[theSlide][slide_curimg[theSlide]][1] * 1.5);
			h2 = Math.round(slide_pics[theSlide][slide_curimg[theSlide]][2] * 1.5);
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.width = w1 + 'px';
			od.style.height = h1 + 'px';
			od.style.background = slide_color[theSlide];
			im = document.createElement('img');
			im.style.position = 'absolute';
			im.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			im.style.width = w2 + 'px';
			im.style.height = h2 + 'px';
			od.appendChild(im);
			im.style.left = Math.round((w1 - w2) / 2) + 'px';
			im.style.top = Math.round((h1 - h2) / 2) + 'px';
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 0.0, slide_width[theSlide] - w1, slide_height[theSlide] - h1, oo, true];
			slide_swapimg6(theSlide);
			return;
		case 10: // ken burns zoom+
		case 11:
		case 12:
		case 13:
			/*i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i2.style.opacity = '0';
			i2.style.filter = 'alpha(opacity=0)';*/
			if (slide_effect1[theSlide][5])	oo = slide_effect1[theSlide][0]; else oo = i1; // on transite depuis un K.B. ou un effet std ?
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.background = slide_color[theSlide];
			im = document.createElement('img');
			im.style.position = 'absolute';
			im.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			od.appendChild(im);
			switch (slide_effect[theSlide])
			{
				case 10:
					od.style.left = '0';
					od.style.top = '0';
					break;
				case 11:
					od.style.right = '0';
					od.style.top = '0';
					break;
				case 12:
					od.style.left = '0';
					od.style.bottom = '0';
					break;
				case 13:
					od.style.right = '0';
					od.style.bottom = '0';
					break;
			}
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 1, slide_pics[theSlide][slide_curimg[theSlide]][1] / slide_width[theSlide],
				slide_pics[theSlide][slide_curimg[theSlide]][2] / slide_height[theSlide], oo, true];
			slide_swapimg7(theSlide);
			return;
		case 14:
		case 15:
		case 16:
		case 17:
			/*i1.style.opacity = '0';
			i1.style.filter = 'alpha(opacity=0)';
			i2.style.opacity = '0';
			i2.style.filter = 'alpha(opacity=0)';*/
			if (slide_effect1[theSlide][5])	oo = slide_effect1[theSlide][0]; else oo = i1; // on transite depuis un K.B. ou un effet std ?
			od = document.createElement('div');
			od.style.position = 'absolute';
			od.style.background = slide_color[theSlide];
			im = document.createElement('img');
			im.style.position = 'absolute';
			im.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			od.appendChild(im);
			switch (slide_effect[theSlide])
			{
				case 14:
					od.style.left = '0';
					od.style.top = '0';
					break;
				case 15:
					od.style.right = '0';
					od.style.top = '0';
					break;
				case 16:
					od.style.left = '0';
					od.style.bottom = '0';
					break;
				case 17:
					od.style.right = '0';
					od.style.bottom = '0';
					break;
			}
			i1.parentNode.appendChild(od);
			slide_effect1[theSlide] = [od, 1.5, slide_pics[theSlide][slide_curimg[theSlide]][1] / slide_width[theSlide],
				slide_pics[theSlide][slide_curimg[theSlide]][2] / slide_height[theSlide], oo, true];
			slide_swapimg8(theSlide);
			return;
		/*
		case X: // ???
			code d'initialisation
			---------------------
			break;
			ou
			slide_swapimgX(theSlide);
			return;
		*/
		case -1: // defilement manuel
			i1.style.left = Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2) + 'px';
			i1.style.top = Math.round((slide_height[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][2]) / 2) + 'px';
			i1.src = getRealFile(slide_pics[theSlide][slide_curimg[theSlide]][0], theSlide);
			i1.style.opacity = '';
			i1.style.filter = '';
			slide_effect[theSlide] = slide_effect1[theSlide];
			slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
			return;
	}
	
	eval('slide_swapimg' + slide_effect[theSlide] + '(theSlide)');
}

// image precedente
function slide_prevpic(theSlide)
{
	slide_curimg[theSlide]--;
	if (slide_curimg[theSlide] < 0) slide_curimg[theSlide] = slide_pics[theSlide].length-1;
	slide_initEffect(theSlide);
}

// image suivante
function slide_nextpic(theSlide)
{
	slide_curimg[theSlide]++;
	if (slide_curimg[theSlide] >= slide_pics[theSlide].length) slide_curimg[theSlide] = 0;
	slide_initEffect(theSlide);
}

// reinit les effets pour le defilement manuel
function slide_resetswap(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	switch (slide_effect[theSlide])
	{
		case 2: // slide over
		case 3: // roll over
		case 4: // zoom in
		case 5: // zoom out
		case 6: // ken burns move
		case 7:
		case 8:
		case 9:
		case 10:// ken burns zoom+
		case 11:
		case 12:
		case 13:
		case 14:// ken burns zoom-
		case 15:
		case 16:
		case 17:
			try{ i1.parentNode.removeChild(slide_effect1[theSlide][0]); }catch(e){}
			try{ if (slide_effect1[theSlide][4].nodeName == 'DIV') i1.parentNode.removeChild(slide_effect1[theSlide][4]); }catch(e){}		
			break;
	}
	
	slide_showimg[theSlide] = 1;
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	i1.style.opacity = '0';
	i1.style.filter = 'alpha(opacity=0)';
	i2.style.opacity = '0';
	i2.style.filter = 'alpha(opacity=0)';
	slide_effect1[theSlide] = slide_effect[theSlide];
	slide_effect[theSlide] = -1;
}

// effet "fade"
function slide_swapimg0(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	// effet
	op1 = slide_effect1[theSlide][0];
	op2 = 100 - slide_effect1[theSlide][0];
	i1.style.opacity = String((op1 / 100).toPrecision(2));
	i1.style.filter = 'alpha(opacity=' + String(op1) + ')';
	i2.style.opacity = String((op2 / 100).toPrecision(2));
	i2.style.filter = 'alpha(opacity=' + String(op2) + ')';
	// animation
	if (op1 == 100)
	{
		//try{ i1.parentNode.removeChild(slide_effect1[theSlide][1]); } catch(e){}
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][0] += 2;
		slide_timer[theSlide] = setTimeout('slide_swapimg0(' + String(theSlide) + ')', 30);
	}
}

// effet "slide"
function slide_swapimg1(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	i1.style.left = (slide_effect1[theSlide][0] + Math.round((slide_width[theSlide] - slide_pics[theSlide][slide_curimg[theSlide]][1]) / 2)) + 'px';
	i2.style.left = (slide_effect1[theSlide][0] + slide_width[theSlide] + Math.round((slide_width[theSlide] - i2.offsetWidth) / 2)) + 'px';

	if (slide_effect1[theSlide][0] == 0)
	{
		//try{ i1.parentNode.removeChild(slide_effect1[theSlide][1]); } catch(e){}
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][0] += 5;
		if (slide_effect1[theSlide][0] > 0) slide_effect1[theSlide][0] = 0;
		slide_timer[theSlide] = setTimeout('slide_swapimg1(' + String(theSlide) + ')', 30);
	}
}

// effet "slide over"
function slide_swapimg2(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	od = slide_effect1[theSlide][0];
	od.style.left = slide_effect1[theSlide][1] + 'px';

	if (slide_effect1[theSlide][1] == 0)
	{
		try{ i1.parentNode.removeChild(slide_effect1[theSlide][2]); }catch(e){}
		i1.style.opacity = '';
		i1.style.filter = '';
		i2.style.opacity = '0';
		i2.style.filter = 'alpha(opacity=0)';
		i1.parentNode.removeChild(od);
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][1] += 5;
		if (slide_effect1[theSlide][1] > 0) slide_effect1[theSlide][1] = 0;
		slide_timer[theSlide] = setTimeout('slide_swapimg2(' + String(theSlide) + ')', 30);
	}
}

// effet "roll over"
function slide_swapimg3(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	od = slide_effect1[theSlide][0];
	od.style.width = slide_effect1[theSlide][1] + 'px';
	
	if (slide_effect1[theSlide][1] == slide_width[theSlide])
	{
		try{ i1.parentNode.removeChild(slide_effect1[theSlide][2]); }catch(e){}
		i1.style.opacity = '';
		i1.style.filter = '';
		i2.style.opacity = '0';
		i2.style.filter = 'alpha(opacity=0)';
		i1.parentNode.removeChild(od);
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][1] += 5;
		if (slide_effect1[theSlide][1] > slide_width[theSlide]) slide_effect1[theSlide][1] = slide_width[theSlide];
		slide_timer[theSlide] = setTimeout('slide_swapimg3(' + String(theSlide) + ')', 30);
	}
}

// effet "zoom in"
function slide_swapimg4(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	//mise a jour de l'affichage
	od = slide_effect1[theSlide][0];
	im = od.firstChild;
	w1 = slide_width[theSlide] * slide_effect1[theSlide][1];
	h1 = slide_height[theSlide] * slide_effect1[theSlide][1];
	w2 = w1 * slide_effect1[theSlide][2];
	h2 = h1 * slide_effect1[theSlide][3];
	l1 = Math.round((slide_width[theSlide] - w1)/2);
	t1 = Math.round((slide_height[theSlide] - h1)/2);
	l2 = Math.round((w1 - w2)/2);
	t2 = Math.round((h1 - h2)/2);
	od.style.left = l1 + 'px';
	od.style.top = t1 + 'px';	
	od.style.width = w1 + 'px';
	od.style.height = h1 + 'px';
	im.style.left = l2 + 'px';
	im.style.top = t2 + 'px';	
	im.style.width = w2 + 'px';
	im.style.height = h2 + 'px';
	
	if (slide_effect1[theSlide][1] == 1)
	{
		try{ i1.parentNode.removeChild(slide_effect1[theSlide][4]); }catch(e){}
		i1.style.opacity = '';
		i1.style.filter = '';
		i2.style.opacity = '0';
		i2.style.filter = 'alpha(opacity=0)';
		i1.parentNode.removeChild(od);
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][1] += 0.02;
		if (slide_effect1[theSlide][1] > 1) slide_effect1[theSlide][1] = 1;
		slide_timer[theSlide] = setTimeout('slide_swapimg4(' + String(theSlide) + ')', 40);
	}
}

// effet "zoom out"
function slide_swapimg5(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	//mise a jour de l'affichage
	od = slide_effect1[theSlide][0];
	im = od.firstChild;
	w1 = slide_width[theSlide] * slide_effect1[theSlide][1];
	h1 = slide_height[theSlide] * slide_effect1[theSlide][1];
	w2 = w1 * slide_effect1[theSlide][2];
	h2 = h1 * slide_effect1[theSlide][3];
	l1 = Math.round((slide_width[theSlide] - w1)/2);
	t1 = Math.round((slide_height[theSlide] - h1)/2);
	l2 = Math.round((w1 - w2)/2);
	t2 = Math.round((h1 - h2)/2);
	od.style.left = l1 + 'px';
	od.style.top = t1 + 'px';	
	od.style.width = w1 + 'px';
	od.style.height = h1 + 'px';
	im.style.left = l2 + 'px';
	im.style.top = t2 + 'px';	
	im.style.width = w2 + 'px';
	im.style.height = h2 + 'px';
	
	if (slide_effect1[theSlide][1] == 0)
	{
		//try{ i1.parentNode.removeChild(slide_effect1[theSlide][4]); } catch(e){}
		i1.parentNode.removeChild(od);
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		slide_effect1[theSlide][1] -= 0.02;
		if (slide_effect1[theSlide][1] < 0) slide_effect1[theSlide][1] = 0;
		slide_timer[theSlide] = setTimeout('slide_swapimg5(' + String(theSlide) + ')', 40);
	}
}

// effet "ken burns move"
function slide_swapimg6(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	od = slide_effect1[theSlide][0];
	oo = slide_effect1[theSlide][4];
	im = od.firstChild;
	
	op1 = 1; op2 = 0;
	if (slide_effect1[theSlide][1] <= 0.1)
	{
		op1 = 10 * slide_effect1[theSlide][1];
		op2 = 1 - op1;
	}
	/*if (slide_effect1[theSlide][1] >= 0.90)
	{
		op = 10 * (1 - slide_effect1[theSlide][1]);
	}*/
	od.style.opacity = String(op1);
	od.style.filter = 'alpha(opacity=' + op1 * 100 + ')';
	/*oo.style.opacity = String(op2);
	oo.style.filter = 'alpha(opacity=' + op2 * 100 + ')';*/
	switch (slide_effect[theSlide])
	{
		case 6:
			od.style.left = Math.round(slide_effect1[theSlide][2] * slide_effect1[theSlide][1]) + 'px';
			od.style.top = Math.round(slide_effect1[theSlide][3] * slide_effect1[theSlide][1]) + 'px';
			break;
		case 7:
			od.style.right = Math.round(slide_effect1[theSlide][2] * slide_effect1[theSlide][1]) + 'px';
			od.style.top = Math.round(slide_effect1[theSlide][3] * slide_effect1[theSlide][1]) + 'px';
			break;
		case 8:
			od.style.left = Math.round(slide_effect1[theSlide][2] * slide_effect1[theSlide][1]) + 'px';
			od.style.bottom = Math.round(slide_effect1[theSlide][3] * slide_effect1[theSlide][1]) + 'px';
			break;
		case 9:
			od.style.right = Math.round(slide_effect1[theSlide][2] * slide_effect1[theSlide][1]) + 'px';
			od.style.bottom = Math.round(slide_effect1[theSlide][3] * slide_effect1[theSlide][1]) + 'px';
			break;
	}

	if (slide_effect1[theSlide][1] == 1)
	{
		if (oo.nodeName == 'DIV') { i1.parentNode.removeChild(oo); }
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_nextpic(theSlide);
	}
	else
	{
		slide_effect1[theSlide][1] += 0.005;
		if (slide_effect1[theSlide][1] > 1) slide_effect1[theSlide][1] = 1;
		slide_timer[theSlide] = setTimeout('slide_swapimg6(' + String(theSlide) + ')', slide_timeout[theSlide] / 200);
	}
}

// effet "ken burns zoom+"
function slide_swapimg7(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	od = slide_effect1[theSlide][0];
	oo = slide_effect1[theSlide][4];
	im = od.firstChild;
	
	op1 = 1; op2 = 0;
	if (slide_effect1[theSlide][1] <= 1.05)
	{
		op1 = 20 * (slide_effect1[theSlide][1] - 1);
		op2 = 1 - op1;
	}
	/*if (slide_effect1[theSlide][1] >= 1.45)
	{
		op = 20 * (1.5 - slide_effect1[theSlide][1]);
	}*/
	od.style.opacity = String(op1);
	od.style.filter = 'alpha(opacity=' + op1 * 100 + ')';
	/*oo.style.opacity = String(op2);
	oo.style.filter = 'alpha(opacity=' + op2 * 100 + ')';*/
	w1 = slide_width[theSlide] * slide_effect1[theSlide][1];
	h1 = slide_height[theSlide] * slide_effect1[theSlide][1];
	w2 = w1 * slide_effect1[theSlide][2];
	h2 = h1 * slide_effect1[theSlide][3];
	l2 = Math.round((w1 - w2) / 2);
	t2 = Math.round((h1 - h2) / 2);
	od.style.width = w1 + 'px';
	od.style.height = h1 + 'px';
	im.style.width = w2 + 'px';
	im.style.height = h2 + 'px';
	im.style.left = l2 + 'px';
	im.style.top = t2 + 'px';

	if (slide_effect1[theSlide][1] == 1.5)
	{
		if (oo.tagName == 'DIV') { i1.parentNode.removeChild(oo); }
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_nextpic(theSlide);
	}
	else
	{
		slide_effect1[theSlide][1] += 0.005;
		if (slide_effect1[theSlide][1] > 1.5) slide_effect1[theSlide][1] = 1.5;
		slide_timer[theSlide] = setTimeout('slide_swapimg7(' + String(theSlide) + ')', slide_timeout[theSlide] / 100);
	}
}

// effet "ken burns zoom-"
function slide_swapimg8(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	od = slide_effect1[theSlide][0];
	oo = slide_effect1[theSlide][4];
	im = od.firstChild;
	
	op1 = 1; op2 = 0;
	/*if (slide_effect1[theSlide][1] <= 1.05)
	{
		op1 = 20 * (slide_effect1[theSlide][1] - 1);
		op2 = 1 - op1;
	}*/
	if (slide_effect1[theSlide][1] >= 1.45)
	{
		op1 = 20 * (1.5 - slide_effect1[theSlide][1]);
		op2 = 1 - op1;
	}
	od.style.opacity = String(op1);
	od.style.filter = 'alpha(opacity=' + op1 * 100 + ')';
	/*oo.style.opacity = String(op2);
	oo.style.filter = 'alpha(opacity=' + op2 * 100 + ')';*/
	w1 = slide_width[theSlide] * slide_effect1[theSlide][1];
	h1 = slide_height[theSlide] * slide_effect1[theSlide][1];
	w2 = w1 * slide_effect1[theSlide][2];
	h2 = h1 * slide_effect1[theSlide][3];
	l2 = Math.round((w1 - w2) / 2);
	t2 = Math.round((h1 - h2) / 2);
	od.style.width = w1 + 'px';
	od.style.height = h1 + 'px';
	im.style.width = w2 + 'px';
	im.style.height = h2 + 'px';
	im.style.left = l2 + 'px';
	im.style.top = t2 + 'px';

	if (slide_effect1[theSlide][1] == 1)
	{
		if (oo.tagName == 'DIV') { i1.parentNode.removeChild(oo); }
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_nextpic(theSlide);
	}
	else
	{
		slide_effect1[theSlide][1] -= 0.005;
		if (slide_effect1[theSlide][1] < 1) slide_effect1[theSlide][1] = 1;
		slide_timer[theSlide] = setTimeout('slide_swapimg8(' + String(theSlide) + ')', slide_timeout[theSlide] / 100);
	}
}

/*
ajouter ici les effets supplementaires....
exemple :
function slide_swapimgX(theSlide)
{
	clearTimeout(slide_timer[theSlide]);
	i1 = $('photo' + String(theSlide) + '-' + String(slide_showimg[theSlide]));
	i2 = $('photo' + String(theSlide) + '-' + String(3 - slide_showimg[theSlide]));
	
	mise a jour de l'affichage
	
	if (fin de l'animation)
	{
		[code de nettoyage]
		slide_showimg[theSlide] = 3 - slide_showimg[theSlide];
		slide_timer[theSlide] = setTimeout('slide_nextpic(' + String(theSlide) + ')', slide_timeout[theSlide]);
	}
	else
	{
		mise a jour des variables de l'animation
		slide_timer[theSlide] = setTimeout('slide_swapimgX(' + String(theSlide) + ')', delai);
	}
}
*/ 

// calcule la couleur du cadre
function slide_getFrameColor(value)
{
	value2 = value.replace("#", "");
	if (value2.length == 6)
	{
		var valueR = toDec(value2.substring(0,2),valueR)+18-0 ;
		if(valueR > 255) valueR = 255;
		var valueG = toDec(value2.substring(2,4),valueG)+18-0 ;
		if(valueG > 255) valueG = 255;
		var valueB = toDec(value2.substring(4,6),valueB)+18-0 ;
		if(valueB > 255) valueB = 255;
		valueR = toHex(valueR,valueR);
		valueG = toHex(valueG,valueG);
		valueB = toHex(valueB,valueB);
		return "#" + valueR + valueG + valueB ;
	}
	else return value;
}

// genere le diaporama
function genSlideshow(theSlide)
{
	// generation du HTML
	if (navigator.appName.indexOf('Microsoft') >= 0)
	{
		w = slide_width[theSlide] + slide_bordersize[theSlide]*2;
		h = slide_height[theSlide] + slide_bordersize[theSlide]*2;
	}
	else
	{
		w = slide_width[theSlide];
		h = slide_height[theSlide];
	}
	document.write("<div id=\"slide" + String(theSlide) + "\" style=\"position:relative;background:" + slide_color[theSlide]
		+ ";border:solid " + String(slide_bordersize[theSlide]) + "px " + slide_getFrameColor(slide_color[theSlide])
		+ ";width:" + String(w) + "px;height:" + String(h)
		+ "px;overflow:hidden;cursor:default;\" onmouseover=\"slide_showlinks(" + String(theSlide) + ");\" onmouseout=\"slide_hidelinks(" + String(theSlide) + ");\">");
	document.write("<img id=\"photo" + String(theSlide) + "-1\" src=\"" + shared_dir + "submenu-blank.gif\" alt=\"\" style=\"position:absolute;\"/>");
	document.write("<img id=\"photo" + String(theSlide) + "-2\" src=\"" + shared_dir + "submenu-blank.gif\" alt=\"\" style=\"position:absolute;\"/>");
	document.write("<img id=\"prevlink" + String(theSlide) + "\" src=\"" + shared_dir + "prev_chevron.png\" alt=\"Image précédente\" style=\"position:absolute;z-index:1;left:5px;visibility:hidden;cursor:pointer;\" onclick=\"slide_resetswap(" + String(theSlide) + ");slide_prevpic(" + String(theSlide) + ");\"/>");
	document.write("<img id=\"nextlink" + String(theSlide) + "\" src=\"" + shared_dir + "next_chevron.png\" alt=\"Image suivante\" style=\"position:absolute;z-index:1;right:5px;visibility:hidden;cursor:pointer;\" onclick=\"slide_resetswap(" + String(theSlide) + ");slide_nextpic(" + String(theSlide) + ");\"/>");
	document.write("</div>");
	// init
	ltop = Math.round(slide_height[theSlide] / 2 - 19) + 'px';
	$('prevlink' + String(theSlide)).style.top = ltop;
	$('nextlink' + String(theSlide)).style.top = ltop;
	slide_showimg[theSlide] = 1;
	slide_curimg[theSlide] = -1;
	if (slide_effect[theSlide] == null || slide_effect[theSlide] == 'undefined') slide_effect[theSlide] = 0;
	if (slide_effect[theSlide] == 99)
	{
		slide_randomfx[theSlide] = true;
	}
	else if (slide_effect[theSlide] == 98)
	{
		slide_randomfx[theSlide] = 'KB';
	}
	else
	{
		slide_randomfx[theSlide] = false;
	}
	// precharge les images
	for (n=0;n<slide_pics[theSlide].length;n++)
	{
		if (n == slide_pics[theSlide].length-1)
			str = 'function(requester){ slide_resetswap('+theSlide+'); slide_nextpic('+theSlide+'); }';
		else
			str = 'function(requester){}';
		eval(
		'new Ajax.Request(getRealFile(slide_pics[theSlide][n][0], theSlide)+\'?'+ escape(new Date()) +'\', {' +
			'method: "get", onSuccess: '+str+', onFailure: '+str+' });'
		);
	}
}

