/* DIAPORAMA

Pour l'executer dans le webBLock, insérer :

<script type="text/javascript">
initSlideshow ( 'ID-de-la -table-contenant-les-images', [temps-entre-chaque-image], [temps-entre-chaque-transition-du-fondu], [Pas-du-fondu] );
</script>

Les 3 derniers paramètres sont optionnels. exemples :

initSlideshow ( 'slideshow', 2000 );
initSlideshow ( 'slideshow', 3000, 40, 3);


/*fonction principale*/
function initSlideshow (id, speed, shadeTime, shadeStep) {
	
	/* récupération des élement images dans l'ID fourni et contrôle de leur présence */
	var diaporamaContainer = document.getElementById(id);
	if (!diaporamaContainer) return;
	var allImgs = diaporamaContainer.getElementsByTagName('img');
	if (!allImgs) return;
	
	/* définition par défaut des variables speed, shadeTime, shadeStep si non renseignées*/
	if (!speed) { speed=3000; }
	if (!shadeTime) { shadeTime=30; }
	if (!shadeStep) { shadeStep=3; }
	
	/*affichage de la première image*/
	allImgs[0].style.display='block';
	
	/*initialisation de la fontion defilImage*/
	var currentIdx=0;
	setTimeout(defilImage, speed);
	
	/*fonction defilImage*/
	function defilImage() {
		
		/*incrémentation des Identifiants*/
		var lastIdx=currentIdx;
		currentIdx++
		if (currentIdx==allImgs.length) { currentIdx=0; }

		/*selection des images (courante et précédente) en fonction des identifiants*/
		var currentImg=allImgs[currentIdx];
		var lastImg=allImgs[lastIdx];
		
		/*affichage de la nouvelle image*/
		currentImg.style.display='block';
		
		/*initialisation de la fonction setNewOpacity gérant le dégradé*/
		var opa=0;
		setNewOpacity();
		
		/*fonction setNewOpacity*/
		function setNewOpacity() {
			
			/*appliquation de l'opacité (Firefox, Chrome, Safari)*/
			currentImg.style.opacity = opa/100;	
			lastImg.style.opacity = 1-opa/100;	
			
			/*appliqaution de l'opacité (Internet Explorer)*/
			currentImg.style.filter = 'alpha(opacity='+opa+');';	
			lastImg.style.filter = 'alpha(opacity='+(100-opa)+');';
			
			/*incrémentation du paramètre de l'opacité*/
			opa+=shadeStep;
			
			/* si l'opacité est inférieur à la limite on relance setNewOpacity*/
			if (opa <= 100) { setTimeout (setNewOpacity, shadeTime); }
			
			/* sinon, on masque l'ancienne image et on relance defilImage*/
			else {
			lastImg.style.display='none';
			setTimeout(defilImage, speed);
			}
		}	
	}
}
