﻿function Diaporama(id,arrayImg,transitionTime,pauseTime,fps){
	if(document.all){
		objFront=document.getElementById(id);
	}else{
		objBack=document.getElementById(id);
		objBack.innerHTML='<div></div>';
		objFront=objBack.getElementsByTagName('div')[0];
	}
	objFront.style.opacity='0';
	//objFront.style.height='0px';
	//objFront.style.width='0px';
	var loadedImg=0;
	for(i=0;i<arrayImg.length;i++){
		var loadingImg=new Image();
		loadingImg.onload=function(){
			if(++loadedImg==arrayImg.length){
				var mode='pause';
				var time=new Date().getTime();
				var index=0;
				if(document.all){
					objFront.style.filter="progid:DXImageTransform.Microsoft.Fade(duration="+(transitionTime/1000)+")"
					objFront.filters.item(0).Apply();
					objFront.style.backgroundImage='url("'+arrayImg[index]+'")';
				}else{
					objFront.style.opacity='0';
					objFront.style.backgroundImage='url("'+arrayImg[index]+'")';
				}
				setInterval(function(){
					if(mode=='pause' && time+pauseTime<=new Date().getTime()){
						mode='play';
						time=new Date().getTime();
						if(document.all){
							//lance la transition
							objFront.filters.item(0).Play();
						}
					}
					if(mode=='play'){
						if(time+transitionTime<=new Date().getTime()){
							mode='pause';
							time=new Date().getTime();
							//objFront.style.height='0px';
							//objFront.style.width='0px';
							if(document.all){
								//sauvegarde l'etat courant
								objFront.filters.item(0).Apply();
								//défini le prochain etat
								index=(++index)%arrayImg.length;
								objFront.style.backgroundImage='url("'+arrayImg[index]+'")';
							}else{
								objBack.style.backgroundImage='url("'+arrayImg[index]+'")';
								objFront.style.opacity='0';
								index=(++index)%arrayImg.length;
								objFront.style.backgroundImage='url("'+arrayImg[index]+'")';
							}
						}else{
							if(!document.all){
								objFront.style.opacity=1-((time+transitionTime-new Date().getTime())/transitionTime);
							}
							//objFront.style.height=((1-((time+transitionTime-new Date().getTime())/transitionTime))*objBack.clientHeight)+'px';
							//objFront.style.width=((1-((time+transitionTime-new Date().getTime())/transitionTime))*objBack.clientWidth)+'px';
						}
					}
				},1000/fps);
			}
		}
		loadingImg.src=arrayImg[i];
	}
}