

function slideShow(idDomParentSlideShow, arrayImages, strDirectory, mixDelay, slideDelay) {
	var domParentSlideShow = $(idDomParentSlideShow);
	var firstImg = true; // Pour pouvoir changer de sens (alternance de domImg1->domImg2 et domImg2->domImg1)
	var step = 0;
	mixDelay = mixDelay || 3.0; // Durée du fondu enchainé
	slideDelay = slideDelay || 6; // Durée d'affichage de chaque image en secondes
	
	// Je crée les deux noeuds "image".
	if ($('diapoSlide1')) $('diapoSlide1').remove();
	if ($('diapoSlide2')) $('diapoSlide2').remove();
	
	//var margin = "17px";
	var domImg1 = document.createElement('img');
	domImg1.id = 'diapoSlide1';
	domImg1.style.position = 'absolute';
	domParentSlideShow.appendChild(domImg1);
	domImg1 = $(domImg1);
	domImg1.setOpacity(0);
	var domImg2 = document.createElement('img');
	domImg2.id = 'diapoSlide2';
	domImg2.style.position = 'absolute';
	domParentSlideShow.appendChild(domImg2);
	domImg2 = $(domImg2);
	domImg2.setOpacity(0);
	
	// J'affiche la première image
	domImg1.src = strDirectory + arrayImages[step];

	new Effect.Opacity(domImg1.id, { duration: mixDelay, from: 0, to: 1 });
	slideShowInterval = setInterval("this.slide()", slideDelay * 1000);
	
	this.slide = function() {
		step = step + 1;
		if (step >= arrayImages.length) step = 0;
		//alert(step);
		if (firstImg) {
			domImg2.src = strDirectory + arrayImages[step];
			new Effect.Opacity(domImg1.id, { duration: mixDelay, from: 1, to: 0 });
			new Effect.Opacity(domImg2.id, { duration: mixDelay, from: 0, to: 1 });
		} else {
			domImg1.src = strDirectory + arrayImages[step];
			new Effect.Opacity(domImg2.id, { duration: mixDelay, from: 1, to: 0 });
			new Effect.Opacity(domImg1.id, { duration: mixDelay, from: 0, to: 1 });
		}
		firstImg = !firstImg;
		//setTimeout("this.slide()", slideDelay * 1000);
	}
}
function stopSlideShow() {
	if (typeof slideShowInterval != 'undefined') clearInterval(slideShowInterval);
}
function preload(strimagesArray, strDirectory, followingFunction){
	var imagesArray = strimagesArray;
	var tmpImageIndex = 0; // l'index de l'image à charger	
	var waitTime = 20;
	var tmpImage = null;
	loadImage();
	
	this.wait = function() {waitLoading();}
	
	function waitLoading() {
		if (tmpImage.complete) { // Si l'image en cours est chargée, je passe à la suivante
//alert('Image chargée : ' + imagesArray[tmpImageIndex]);
			tmpImageIndex = tmpImageIndex + 1;
			loadImage();
		} else { // Si l'image n'est pas encore chargée, je rapelle la même fonction dans un court instant
			setTimeout("this.wait()", waitTime);
		}
	}
	function loadImage() {
		tmpImage = new Image();
		if (tmpImageIndex >= imagesArray.length) {
			if (followingFunction) eval(followingFunction + '()');
			return;
		}
		tmpImage.src = strDirectory + imagesArray[tmpImageIndex];
		waitLoading();
	}
}
