var diapoboxheight=360;	// Hauteur de la page de vignettes
var hauteurVignette=90;	// Hauteur de l'image vignette
var diapoboxnbr=0;		// Nombre de photo du diaporama
var diapoboxcour=0;		// Image en cours d'affichage
var diapoboxmax=5;		// Nombre de vignettes par page
var diapoboxsize=0;		// Nombre de pages de vignettes (diapoboxnbr/diapoboxmax)
var diapoboxsizecour=1;	// Page de vignettes en cours
var diapotourne=false;	// Flag de rotation
var diapogo=true;		// Autre flag de rotation pour être sur
var diapotimer=false;	// timer de rotation
var diapotempo=5000;	// tempo de rotation
var pourcent=0;			// taille en cours de la barre de défilement
var diapoarret=false;	// flag d'arrêt de rotation

function rolldiapobox(o) {
	// rien demandé on s'en va
	if (!o) return false;
	o=_(o);
	// l'objet n'existe pas
	if (!o) return false;
	i=parseInt(o.id.replace("diapo",""));
	// numéro d'actu invalide
	if (i<0 || i>diapoboxnbr) return false;
	// numéro d'actu courant
	if (i==diapoboxcour) return false;
	
	// si une diapo courante on la neutralise
	oo=_("diapo"+diapoboxcour);
	if (oo) oo.className=oo.className.replace("courant","")+" off";
	
	// on change l'état de l'actu demandée
	o.className=o.className.replace("off","")+" courant";
	
	// on change l'état des vignettes
	vignettes = getElementsByClassName('vignette');
	srcRepl(vignettes,'/imgs/blur.png');
	_("imgDiapo"+i).src='/imgs/_.gif';
	
	oo=_("leDiapoTable");
	ooo=_("leDiapo"+i);
	if (oo && ooo) oo.innerHTML=ooo.innerHTML;
	//oo.style.backgroundImage="url("+ooo.src+")";
	
	oo=_("diaporamaInfos");
	ooo=_("diaporamaInfos"+i);
	if (oo && ooo) oo.innerHTML=ooo.innerHTML;

	oo=_("diapoDone");
	pourcent = Math.ceil(100*i/diapoboxnbr);
	oo.style.width=pourcent+"%";
	
	ooo=_("diapoNbr");
	ooo.innerHTML=i+" sur "+diapoboxnbr;

	diapoboxcour=i;
	cdiapoboxsizecour = diapoboxsizecour-1;
	if (diapoboxcour==(diapoboxmax+1) && diapoboxsizecour==1) {
		defilListeDiapo('bas');
	} else if (diapoboxsizecour>1) {
		if (diapoboxcour > (diapoboxmax*(cdiapoboxsizecour+1)-cdiapoboxsizecour)) defilListeDiapo('bas');
	}
}

function lancediapo() {
	// si rotation alors on lance le truc
	if (diapotourne && diapogo) {
		i=diapoboxcour;
		i++;
		if (i>diapoboxnbr) {
			i=1;
			_("listeDiapo").style.top="0px";
			diapoboxsizecour=1;
		}
		rolldiapobox("diapo"+i);
	}
}
function bouclediapo() {
	if (diapotourne) {
		lancediapo();
		diapotimer=setTimeout("bouclediapo();",diapotempo);
	}else{
		if (!diapoarret) rolldiapobox("diapo1");
	}
}

function restartdiapobox() {
	if (diapotourne) {
		diapoarret=true;
		diapotourne=false;
	} else {
		diapoarret=false;
		diapotourne=true;
		bouclediapo();
	}
}

function restartdiapoboxImg(o) {
	// rien demandé on s'en va
	if (!o) return false;
	o=_(o);
	// l'objet n'existe pas
	if (!o) return false;
	i=parseInt(o.id.replace("lienDiapo",""));
	// numéro d'actu invalide
	if (i<0 || i>diapoboxnbr) return false;
	// numéro d'actu courant
	if (i==diapoboxcour) return false;
	diapoarret=true;
	diapotourne=false;
	rolldiapobox("diapo"+i);	
}

function defilListeDiapo(o, varTest) {
	i=0; j=0;
	switch (o) {
		case 'bas':
			i=diapoboxsizecour;
			i++;
			if (i>diapoboxsize) {
				i=1;
				rolldiapobox("diapo"+i);
			} else {
				if (varTest && diapoboxsize>1) {
					j=(i-1)*diapoboxmax-((i-1)-1);			
					if (j>diapoboxnbr) j=1;
				}
			}
		break;
		case 'haut':
			i=diapoboxsizecour;
			i--;
			if (i<1) {
				i=1;
				rolldiapobox("diapo"+i);
			} else {
				if (varTest && diapoboxsize>1) {
					j=(i-1)*diapoboxmax-((i-1)-1);
					if (j<1) j=1;
				}
			}	
		break;
		default:
			return;
		break;
	}
	diapoboxsizecour=i;
	i=Math.floor((i*diapoboxheight)-diapoboxheight);
	if (diapoboxsize>1 && diapoboxsizecour!=1) {
		if (!varTest) {
			diaporestant = diapoboxnbr-diapoboxcour;
			diapotest = diapoboxmax-diapoboxsizecour+1;
			if (diaporestant<(diapoboxmax-1)) i=i-((diapotest-diaporestant)*hauteurVignette);
		} else {
			diaporestant = diapoboxnbr-j;
			if (diaporestant<(diapoboxmax-1)) i=i-((diapoboxmax-diaporestant-1)*hauteurVignette);
		}	
	}
	i=i*(-1);
	_("listeDiapo").style.top=i+"px";
	if (varTest) {
		rolldiapobox("diapo"+j); 
	}
}
