// JavaScript Document

//----------------------------------------------
//
//   Script d'animation automatique avec
//          effet de Transition
//
//	            2007 (c) IdClik
//
// Ce script est la propriété d'IdClik, toute
// utilisation sans l'autorisation d'IdClik est
// interdite.
//----------------------------------------------


//Définition des variables globales

var Hauteur = 167;
var Largeur = 644;

var PosX;
var PosY;

var CurrentImage = 0;
var CurrentOpacity = 0;
var NombreImages;

ImageAnimation = new Array();

//Fonction d'insertion d'une animation dans une document
function InsertAnimation()
{
	BaseLayerHTML = '<table border="0" cellpadding="0" cellspacing="0" id="BaseLayer"><tr><td></td></tr></table>';
	document.write(BaseLayerHTML);
		
	//On verifie le nombre d'image dans l'animation qui est decide
	//en fonction du nombre d'image defini dans la liste
	var i = 0;	
	while( ImageAnimation[i] != undefined ){ i++; }	
	NombreImages = i;
	
	//On definit maintenant les Layers des images
	for(i=0;i<NombreImages;i++)
	{
		TransitionLayerHTML = '<table border="0" id="LayerImg'+i+'" cellpadding="0" cellspacing="0" style="position:absolute;z-index:1;display:none;background-position:center;background-repeat:no-repeat;"><tr><td><img src="images/transp.gif" alt="Club de Golf de la Faune | Charlesbourg | Québec" name="promo" width="644" height="167" border="0" usemap="#promo" id="promo2" /></td></tr></table>';
		document.write(TransitionLayerHTML);
	}
	

	setTimeout('InitializeAnimation()',200);

}
	
function InitializeAnimation()
{
	try
	{
		var FirstImage = new Image();
		//Obtention de la couche de base
		var BaseLayer = document.getElementById("BaseLayer");
		FirstImage.src = ImageAnimation[0];

		//Dimensions définies en fonction de la couche de base
		Hauteur = FirstImage.height;
		Largeur = FirstImage.width;
		
		if( Hauteur == 0 || Largeur == 0 )
		{
			throw "ImageNotLoad";
		}
		
		//Obtention de la cellule interieure dans laquelle l'image sera affichee
		var BaseTD = BaseLayer.getElementsByTagName("TD");
		BaseTD = BaseTD[0];
		
		//Definition de la hauteur et largeur en fonction des dimensions 
		//de la premiere image
		BaseTD.height = Hauteur;
		BaseTD.width = Largeur;
		BaseTD.style.padding=0;
		
		
		//On reinitialise les positions de depart
		PosX = 0;
		PosY = 0;
		
		//On obtient la couche de base
		var Test = document.getElementById('BaseLayer');
		
		//On trouve la position de la couche de base
		while( Test != undefined )
		{
			PosX += Test.offsetLeft;
			PosY += Test.offsetTop;		
			Test = Test.offsetParent;
		}
	
		var ImgLayer;
		
		//On definit maintenant les Layers des images
		for(i=0;i<NombreImages;i++)
		{
			LayerID = 'LayerImg'+i;		
			ImgLayer = document.getElementById(LayerID);
	
			ImgInnerLayer = ImgLayer.getElementsByTagName("TD");
			ImgInnerLayer = ImgInnerLayer[0];
			
			ImgInnerLayer.height = Hauteur;
			ImgInnerLayer.width = Largeur;
		
			//Insertion de l'image dans la cellule interieur
			ImgLayer.style.backgroundImage = "url("+ImageAnimation[i]+")";			
			
			//Application du decalage pour positionner correctement la couche de transition
			ImgLayer.style.left = PosX+"px";
			ImgLayer.style.top = PosY+"px";
			
		}
		
		var FirstLayer = document.getElementById('LayerImg0');
		
	
	
	//On verifie le navigateur et applique l'action appropriee
		var browserName=navigator.appName;	
	
		if (browserName=="Microsoft Internet Explorer")
		{
			FirstLayer.style.display="inline"; //Affiche de la couche de transition
		}
		else
		{
			FirstLayer.style.display="table";//Affiche de la couche de transition
		}
	
		//On transforme le delais specifie en seconde vers les millisecondes
		var ApplyDelay = DisplayDelay*1000;
		
		//Lancement de la transition vers la prochaine image
		setTimeout("StartTransition()",ApplyDelay);	
		
	}
	catch(e)
	{
		//Lancement de la transition vers la prochaine image
		setTimeout("InitializeAnimation()",300);	
	}
	
	
	
}

//Processus de transition d'image
function StartTransition()
{
	////Determination de la prochaine image
	if( CurrentImage < (NombreImages-1) )
		CurrentImage++;
	else
		CurrentImage = 0;

	LayerID = 'LayerImg'+CurrentImage;		
	
	//Obtention de la couche de transition
	var TransitionLayer = document.getElementById(LayerID);
	TransitionLayer.style.zIndex=2;
			
	//L'opacite est regler à 0
	CurrentOpacity = 0;

		
	//On verifie le navigateur et applique l'action appropriee
	var browserName=navigator.appName;	
	if (browserName=="Microsoft Internet Explorer")
	{
		TransitionLayer.style.display="inline"; //Affiche de la couche de transition	
	}
	else
	{
		TransitionLayer.style.display="table";//Affiche de la couche de transition
	}
	
	//Continuite de la transition
	ContinueTransition();
}

//Fonction permettant de faire la transition fondue
function ContinueTransition()
{
	
	//Obtention de la couche de transition
	LayerID = 'LayerImg'+CurrentImage;		
	var TransitionLayer = document.getElementById(LayerID);
	
	//L'opacite ne sera pas geree de la même façon selon la navigateur
	var browserName=navigator.appName;
	
	//Si l'opacite n'est pas à 100%
	if( CurrentOpacity < 100 )
	{	
		if (browserName=="Microsoft Internet Explorer")
		{
			CurrentOpacity += 2; //On incremente l'opacite
			//Application de l'opacite pour Internet Explorer
			TransitionLayer.style.filter = 'alpha(opacity='+CurrentOpacity+')';
			
			//On continue la transition
			setTimeout("ContinueTransition()",10);		
		}
		else
		{
			CurrentOpacity += 2;	//On incremente l'opacite
			//On applique l'opacite pour Firefox et les autres navigateurs
			SetOpacity = CurrentOpacity / 100;
			TransitionLayer.style.MozOpacity=SetOpacity;
			
			//On continue la transition
			setTimeout("ContinueTransition()",30);	
		}
	}
	else //L'opacite est à 100%, fin de la transition
	{
		TransitionLayer.style.zIndex=1;
		
		//Obtention du layer de l'image précédente
		var OldImageID;
		
		if( CurrentImage == 0 )
			OldImageID = NombreImages - 1;
		else
			OldImageID = CurrentImage - 1;
		
		OldImageID = 'LayerImg'+OldImageID;
		
		OldImage = document.getElementById(OldImageID);
		OldImage.style.display="none";
		
		//Conversion du delais en ms
		var ApplyDelay = DisplayDelay*500;		
		//Attente jusqu'a la prochain transition
		setTimeout("StartTransition()",ApplyDelay);	
	}
}

