//fonctions
var TIMEOUT=new Array(); var interval=Object; var slide_en_cours=1; var time=0; var pause=0;
function setOpacity(slide,value)
{
	document.getElementById("slide"+slide).style.opacity = value;
	document.getElementById("slide"+slide).style.filter = 'alpha(opacity='+value*100+')';
}
function clear_all_timeout() { clearInterval(interval); for (i=0;i<TIMEOUT.lengths;i++) clearTimeout(TIMEOUT[i]); TIMEOUT=new Array(); }
function slide_pause() { if (pause==1) slide_next(); else { pause=1; clearInterval(interval); } }
function slide_next() { pause=0; slider(1); }
function slide_prec() { pause=0; slider(0); }
function slider(sens)
{
	//gestion des clic répétitifs
	date = new Date();
	if ((date.getTime()-time)>nb_pas*time_pas && pause==0)
	{
		//on détermine l'ID du slide suivant
		if (sens==1) { slide_suiv=slide_en_cours+1; if (slide_suiv>nb_slide) slide_suiv=1; } else { slide_suiv=slide_en_cours-1; if (slide_suiv==0) slide_suiv=nb_slide; }
		//on coupe tous les slides en cours
		clear_all_timeout();
		//on récupére l'état des slides en termes d'opacité et on programme leur disparition progressive sauf pour le slide que l'on doit afficher
		for (i=1;i<=nb_slide;i++)
		{
			opac=document.getElementById("slide"+i).style.opacity; n_tps=0;
			if (opac!=0 && i!=slide_suiv) for (j=opac*nb_pas;j>=0;j--) TIMEOUT[TIMEOUT.length]=setTimeout('setOpacity('+i+','+(j/nb_pas)+')',time_pas*n_tps++);
		}
		//on programme l'affichage progressif du slide
		opac=document.getElementById("slide"+slide_suiv).style.opacity; n_tps=0;
		if (opac!=1) for (i=opac*nb_pas;i<=nb_pas;i++) TIMEOUT[TIMEOUT.length]=setTimeout('setOpacity('+slide_suiv+','+(i/nb_pas)+')',time_pas*n_tps++);
		//on enregistre le nouveau slide en cours
		slide_en_cours=slide_suiv;
		//on programme la prochaine transition
		interval=setInterval("slider(1)",slide_tps*1000);
		date = new Date(); time=date.getTime();
	}
}
//lancement du slide
setOpacity(1,1); for (i=2;i<=nb_slide;i++) setOpacity(i,0);
interval=setInterval("slider(1)",slide_tps*1000);
