/*****

Image Cross Fade Redux
Version 1.0
Last revision: 02.15.2006
steve@slayeroffice.com

Please leave this notice intact. 

Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/index.html


*****/
// en commentaire pour que la fonction ne s"execute que sur demande
//window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);

var d=document, imgs = new Array(), zInterval = null, current=0, pause=false, fondu_accueil=0;

function change_sens(fleche){
	sens = fleche;
	//alert('indice='+indice+' | num_img_droite='+num_img_droite);
	so_xfade();
}

function so_init(){
	if(!d.getElementById || !d.createElement)return;
	// DON'T FORGET TO GRAB THIS FILE AND PLACE IT ON YOUR SERVER IN THE SAME DIRECTORY AS THE JAVASCRIPT!
	// http://slayeroffice.com/code/imageCrossFade/xfade2.css
	css = d.createElement("link");
	css.setAttribute("href","/xfade2.css");
	css.setAttribute("rel","stylesheet");
	css.setAttribute("type","text/css");
	d.getElementsByTagName("head")[0].appendChild(css);

	imgs = d.getElementById("imageContainer").getElementsByTagName("img");
	for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
	imgs[0].style.display = "block";
	imgs[0].xOpacity = .99;
	num_img_gauche=imgs.length-1;
	num_img_droite=0;
	premier_passage=0;
	cacher_texte=0;
	sens="";
	indice=0;

	appel_menu=0;
	appel_fleche=0;
	
	test_num=0; //, sert pour appels avec les numéros de page
	test_fleche=0; // sert pour les appels avec la flèches gauche, pour dire que l'appel précédent à été fait avec un numéro de page
}

function so_xfade(){
	if(cacher_texte==1){
		// block qui empeche de cliquer sur le lien avant la fin de la transition entre les images
		document.getElementById('cache_liens').style.display = "block";
		// pour la coloration des liens
		for(j=0;j<imgs.length;j++) document.getElementById("span_"+j).className="";
		if(appel_menu == 1){
			if((num_img_droite-1)>=0){
				document.getElementById("span_"+(num_img_droite-1)).className="active";
			}else{
				document.getElementById("span_"+(imgs.length-1)).className="active";
			}
			appel_menu=0;
		}
		cacher_texte=0;		
		// pour cacher tous les textes		
		if(nb_article>0){for(j=0;j<nb_article;j++) document.getElementById("contenu_"+j).style.display="none";}		
	}
	
	cOpacity = imgs[indice].xOpacity;
	if(sens == "droite"){
		if(test_num==1){
			if(num_img_droite-1 == imgs.length){
				nIndex = 0;
				num_img_droite=0;
			}else{
				nIndex = imgs[num_img_droite-1]?num_img_droite-1:0;
			}			
		}else{
			nIndex = imgs[indice+1]?indice+1:0;		
		}
	}
	if(sens == "gauche"){		
		if(indice-1 <0){
			nIndex=imgs.length-1;
			premier_passage=1;	
		}else{
			nIndex = indice-1;
		}
	}
	
	nOpacity = imgs[nIndex].xOpacity;
	
	cOpacity-=.05; 
	nOpacity+=.05;
	
	imgs[nIndex].style.display = "block";
	imgs[indice].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[indice]); 
	setOpacity(imgs[nIndex]);
	
	if(cOpacity<=0) {
		//if(premier_passage!=1){
			document.getElementById('cache_liens').style.display = "none";					
			imgs[indice].style.display = "none";
			//affichage du text de la photo
			if(document.getElementById("contenu_"+(nIndex))){			
				document.getElementById("contenu_"+(nIndex)).style.display="block";
			}						
		//}
		if(test_num==0){
			if(sens == "gauche"){
				if(indice-1<0){
					document.getElementById("span_"+(imgs.length-1)).className="active";
				}else{
					document.getElementById("span_"+(indice-1)).className="active";
				}
				
			}else{
				if (indice+1>=imgs.length){
					document.getElementById("span_"+(0)).className="active";
				}else{
					document.getElementById("span_"+(indice+1)).className="active";
				}
			}
		}
		if(test_num==1){
			test_num=0;
			if(nIndex==imgs.length){
				indice = nIndex-1;
				num_img_droite = 0;
			}else{
				indice = nIndex;
				num_img_droite = nIndex;
				for(j=0;j<imgs.length;j++) document.getElementById("span_"+j).className="";
				document.getElementById("span_"+(indice)).className="active";
			}
			
		} else {
			indice = nIndex;
		}
				
	} else {
		setTimeout(so_xfade,50);
	}
	
	function setOpacity(obj) {
		if(obj.xOpacity>.99) {
			obj.xOpacity = .99;
			obj.style.opacity = obj.xOpacity;
			obj.style.MozOpacity = obj.xOpacity;
			obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
			if(sens == "droite"){	
				if(num_img_droite>=imgs.length){
					indice=0;
				}else{
					indice=num_img_droite;			
				}
				if(num_img_droite<imgs.length){
					num_img_droite++;
				}else{					
					num_img_droite=0;
				}	
			}
			if(sens == "gauche"){
				test_fleche = 1;
				if(premier_passage==1){
					indice=0;	
					premier_passage=0;
				}else if(num_img_gauche+1<imgs.length){
					indice=num_img_gauche+1;	
				}else{
					test_fleche = 0;
				}
				if(num_img_gauche==0){
					num_img_gauche=imgs.length-1;
				}else{					
					num_img_gauche--;
				}	
			}
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
		
	}
	
}
// fonctions d'affichage des popup d'alert et du div_de_trans
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
function opacity(id, opacStart, opacEnd, millisec){
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var object = document.getElementById(id);
    var timer = 0;
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
	}
				
}


////////////////////////////////////////////////////////////////////////////
// pour la page d'accueil //////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
function so_init_acc() {
	if (fondu_accueil == 0){
		if(!d.getElementById || !d.createElement)return;
		css = d.createElement("link");
		css.setAttribute("href","/xfade2.css");
		css.setAttribute("rel","stylesheet");
		css.setAttribute("type","text/css");
		d.getElementsByTagName("head")[0].appendChild(css);
	
		imgs = d.getElementById("imageContainer").getElementsByTagName("img");
		for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
		imgs[0].style.display = "block";
		imgs[0].xOpacity = .99;
		fondu_accueil = 1;
		so_xfade_acc();
	}
}

function so_xfade_acc() {
	cOpacity_acc = imgs[current].xOpacity;
	nIndex_acc = imgs[current+1]?current+1:0;

	nOpacity_acc = imgs[nIndex_acc].xOpacity;
	
	cOpacity_acc-=.05; 
	nOpacity_acc+=.05;
	
	imgs[nIndex_acc].style.display = "block";
	imgs[current].xOpacity = cOpacity_acc;
	imgs[nIndex_acc].xOpacity = nOpacity_acc;
	
	setOpacity_acc(imgs[current]); 
	setOpacity_acc(imgs[nIndex_acc]);
	
	if(cOpacity_acc<=0) {
		imgs[current].style.display = "none";
		current = nIndex_acc;
		//setTimeout(so_xfade,1000);
	} else {
		setTimeout(so_xfade_acc,50);
	}
	
	function setOpacity_acc(obj) {
		if(obj.xOpacity>.99) {
			obj.xOpacity = .99;
			obj.style.opacity = obj.xOpacity;
			obj.style.MozOpacity = obj.xOpacity;
			obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
			document.getElementById("menu_haut").style.visibility = "visible";
			document.getElementById("menu_bas").style.visibility = "visible";
			document.getElementById("message_boutique").style.visibility = "visible";
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
	
}


