var rep = '../images/evenements/400par300/';
var num = 0;
var myCounter;
var next_img = new Image;
next_img.src = rep+'';
var wPopup;
var tabImg;
var tabImgSave = new Array;

tabImgSave[0] = '150907_9.jpg'
tabImgSave[1] = '160907.jpg'
tabImgSave[2] = '160907_7.jpg'
tabImgSave[3] = '160907_28.jpg'
tabImgSave[4] = '160907_31.jpg'
tabImgSave[5] = '190907.jpg'
tabImgSave[6] = '131007_5.jpg'
tabImgSave[7] = '111107_1.jpg'
tabImgSave[8] = 'STC171107_02.jpg'
tabImgSave[9] = 'STC171107_18.jpg'
tabImgSave[10] = 'STC171107_38.jpg'
tabImgSave[11] = '221207_09.jpg'
tabImgSave[12] = '090208_10.jpg'
tabImgSave[13] = '060408_01.jpg'
tabImgSave[14] = '060408_03.jpg'
tabImgSave[15] = '060408_08.jpg'
tabImgSave[16] = '060408_10.jpg'
tabImgSave[17] = 'TPS08120408_03.jpg'
tabImgSave[18] = '260408_02.jpg'
tabImgSave[19] = '100508_01.jpg'
tabImgSave[20] = '010608_11.jpg'
tabImgSave[21] = '010608_12.jpg'
tabImgSave[22] = '010608_22.jpg'
tabImgSave[23] = '130608_08.jpg'
tabImgSave[24] = '210608_02.jpg'
tabImgSave[25] = '210608_08.jpg'
tabImgSave[26] = '210608_09.jpg'
tabImgSave[27] = '050708_03.jpg'
tabImgSave[28] = '200708_06.jpg'
var nb_img = tabImgSave.length;

//
// Les trois fonctions suivantes (+ éventuellement, "mySplice")
// servent à mélanger un tableau quelconque à partir d'une
// permutation tirée aléatoirement
//

// Méthode "splice" si elle n'existe pas
//   tab : tableau
//   s   : début de la suppression
//   l   : nombre d'éléments à supprimer
function mySplice(s, l) {
	if(s+l > this.length) l = this.length-s;
		
	for(var i=s; i<this.length; ++i)
		this[i] = this[i+1];

	delete this[this.length-1];
	this.length--;
}

// Est-ce que la méthode "splice" est disponible ?
if(!Array.prototype.splice) {
	// Non, alors on utilise la version "maison"
	Array.prototype.splice = mySplice;
}

// Génère une fonctione sous-excédente
function fctSsExc() {
	var fct = new Array;
	for(var i=0; i<nb_img; i++) {
		fct[i] = Math.floor( Math.random()*(nb_img-i) );
	}
	return fct;
}

// Construit une permutation à partir d'une fonction sous-excédente
function buildSigma() {
	var fct_ss_exc = fctSsExc();
	var set_N       = new Array;

	for(var i=0; i<nb_img; i++) {
		set_N[i] = i;
	}

	var sigma = new Array;

	for(var i=0; i<nb_img; i++) {
		sigma[i] = set_N[fct_ss_exc[i]];
		set_N.splice(fct_ss_exc[i],1);
	}
	return sigma;
}

// Retourne une version mélangée du tableau passé en paramètre
function shuffleArray(myArray) {
	var sigma    = buildSigma();
	var newArray = new Array;

	for(var i=0; i<nb_img; i++) {
		newArray[i] = myArray[sigma[i]];
	}
	return newArray;
}
//
// Fin des fonctions de mélange
//

// Donne le focus au bouton "Lancer"
function focusOnLaunch() {
	window.document.forms.settings.bLaunch.focus();
}

// Donne le focus au bouton "Stopper"
function focusOnStop() {
	window.document.forms.settings.bStop.focus();
}
function next() {
	// Est-ce que l'image suivante est oréchargée ?
	if(next_img.complete) {
		// Oui, alors après le temps de pause choisi par l'utilisateur, cette image remplacera l'actuelle
		myCounter = setTimeout("launch()", 1000*3);
	}
	else {
		// Non, alors on continue d'attendre qu'elle le soit
		myCounter = setTimeout("next()", 500);
	}
}

// Lance le slideshow
function launchFirst()
{

	tabImg = tabImgSave;
	
	// Avant de lancer le slideshow, on désactive tous les éléments du formulaire
	// et on active le bouton "Stopper"
	next_img.src = rep+tabImg[0];
	window.document.forms.settings.bStop.disabled    = false;
	focusOnStop();
	window.document.forms.settings.bLaunch.disabled  = true;
	
	launch();
}

// Poursuit le slideshow
function launch() {
	// Si la fenêtre n'existe pas ou est fermée, on la réouvre
	if(!wPopup || wPopup.closed) {
		wPopup = window.open('', 'img_popup', 'width=50, height=50, top='+(screen.height-50)/2+', left='+(screen.width-50)/2+', status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=no, resizable=yes');
	}

	// On écrit le contenu de la fenêtre popup
	wPopup.document.clear();
	wPopup.document.write("<HTML><HEAD><TITLE>Diaporama : "+(num+1)+"/"+nb_img+"</TITLE></HEAD>");

	// La fonction qui attend que l'image soit chargée et affichée pour redimensionner la fenêtre à la bonne taille
	wPopup.document.write('<SCRIPT language="JavaScript">\nfunction checkSize() { if(document.images && document.images[0].complete) { w = document.images[0].width+100; h = document.images[0].height+300; window.resizeTo(w, h); window.moveTo((screen.width-w)/2, (screen.height-h)/2); document.images[0].style.visibility = "visible"; window.focus(); if(opener.next_img.src != opener.rep+opener.tabImg[opener.num]) { opener.next_img.src = opener.rep+opener.tabImg[opener.num]; } } else { setTimeout("checkSize()", 250); } }\n</'+'SCRIPT>');
	
	wPopup.document.write('<BODY bgcolor="#FFFFFF" leftMargin="0" topMargin="0" marginWidth="0" marginHeight="0">');
	wPopup.document.write('<div align="center"><FONT FACE="Comic Sans MS, cursive"><FONT COLOR="blue"><FONT SIZE=4><u>Manifestations de l\'Harmonie Fanfare Rudipontaine (2007-2008)</u></FONT></FONT><BR><FONT COLOR="red"><FONT SIZE=2>http://www.harmonie-pont-de-roide.com</FONT></FONT></FONT></div><table width="100%" height="100%" align="center" cellpadding="0" cellspacing="0"><tr valign="middle"><td align="center"><img src="'+next_img.src+'" border="0" onLoad="checkSize()" onClick="window.opener.stop()" style="visibility:hidden"></td></tr></table>');
	wPopup.document.write('</BODY></HTML>');
	//wPopup.document.write('</BODY></HTML>');
	wPopup.document.close();
	num++;
	
	// On a passé toutes les images, on repart du début
	if(num == nb_img) num = 0;
	
	// Si "Répéter" n'est pas cochée, on stoppe le slideshow
	if(num == 0) {
		setTimeout("stop()", 1000*2);
		return false;
	}

	next();
}

// Stoppe le slideshow
function stop() {
	clearTimeout(myCounter);
	wPopup.close();
	// On réactive tous les éléments du formulaire
	// et on désactive le bouton "Stopper"
	window.document.forms.settings.bLaunch.disabled  = false;
	focusOnLaunch();
	window.document.forms.settings.bStop.disabled    = true;
	num = 0;
}

// Vérification de la temporisation à chaque modification de celle-ci
function checkTempo() {
	var t = 2;
	if(isNaN(t) || t<0 || t>60) {
		alert("Mauvaise temporisation...\nEntrez un temps compris entre 0 et 60 secondes.");
		return false;
	}
}