window.onload = function(){nc_diapo.construct();};



var nc_diapo = {
	
	/* variable d'initialisation */
	nbrImg:'',
	pulse:'',
	/*****************************/
	
	img : '',
	imgSize : 48,
	step : 10,
	left : 0,
	off : 0,
	diff : 0,
	animCtr : 0,
	matrixState : new Array(),
	/* tableau d'images */
	tabImg : new Array(),
	
	/* tableau des urls d'images à afficher */
	urlTab : new Array ( 	'downloads/diapos/diapo1_clone0.jpg',
												'downloads/diapos/diapo2_clone0.jpg',
												'downloads/diapos/diapo3_clone0.jpg',
												'downloads/diapos/diapo4_clone0.jpg',
												'downloads/diapos/diapo5_clone0.jpg',
												'downloads/diapos/diapo6_clone0.jpg',
												'downloads/diapos/diapo7_clone0.jpg',
												'downloads/diapos/diapo8_clone0.jpg',
												'downloads/diapos/diapo9_clone0.jpg',
												'downloads/diapos/diapo10_clone0.jpg',
												'downloads/diapos/diapo11_clone0.jpg',
												'downloads/diapos/diapo12_clone0.jpg',
												'downloads/diapos/diapo13_clone0.jpg',
												'downloads/diapos/diapo14_clone0.jpg',
												'downloads/diapos/diapo15_clone0.jpg',
												'downloads/diapos/diapo16_clone0.jpg',
												'downloads/diapos/diapo17_clone0.jpg',
												'downloads/diapos/diapo18_clone0.jpg'
										 ),
	
	construct : function(){
		nc_diapo.tabImgInit();
		nc_diapo.matrixInit();
		nc_diapo.fadeInit();
	},	
	
	tabImgInit : function(){
		var img;
		for(i=0; i<nc_diapo.urlTab.length; i++){
			img = new Image();
			img.src = nc_diapo.urlTab[i];
			nc_diapo.tabImg[i] = { 'id' : 'img'+i, 'img' :	img, 'src' : img.src, 'state' : 0	};
			}	
			
	},
	
	random : function (state, tabName){
		var ctr = 0;
		do{
			ctr++;
			rand = Math.floor((tabName.length)*Math.random());
			}while(tabName[rand]['state']!=state || ctr == 50);
		return rand;
	},
	
	matrixInit : function(){
		for (i=0; i<nc_diapo.nbrImg; i++){
		var rand = nc_diapo.random(0,nc_diapo.tabImg);
		nc_diapo.tabImg[rand]['state'] = 1;
		document.getElementById('matrix'+i).innerHTML = '<img id="'+nc_diapo.tabImg[rand]['id']+'" src="'+nc_diapo.tabImg[rand]['src']+'" width="48" height="48" alt="" />';
		}
	},
	
	initMatrixState : function () {
		for (i=0; i<nc_diapo.nbrImg; i++){
			nc_diapo.matrixState[i] = 0;
		}
	},
	
	fadeInit : function(){
		nc_diapo.initMatrixState();
		for (i=0; i<nc_diapo.matrixState.length; i++){
			do{
			rand = Math.floor((nc_diapo.matrixState.length)*Math.random());
			}while(nc_diapo.matrixState[rand] != 0);
			nc_diapo.matrixState[rand] = 1;
		setTimeout('x_fade("matrix'+rand+'","20:100:25")',i*250);
		}
		setTimeout('nc_diapo.switchImg()',3000);
	},
	
	switchImg : function(){
		var rand;
		var diff;
		if(nc_diapo.img == ''){
		rand =  nc_diapo.random(1,nc_diapo.tabImg);
		nc_diapo.tabImg[rand]['state'] = 4;
		nc_diapo.img = document.getElementById(nc_diapo.tabImg[rand]['id']);
		nc_diapo.img.style.position = "absolute"; /* en fait utile que pour ie8 qui apparement a due mal avec l'opacity du parent si l'enfant est positionner !!! */
		}
		
		if(nc_diapo.off == 0){
			if(nc_diapo.img.width - nc_diapo.step >=5 ){
			nc_diapo.img.width -= nc_diapo.step ;
			nc_diapo.left += nc_diapo.step/2;
			nc_diapo.img.style.left = nc_diapo.left+'px';
			if(nc_diapo.img.width > nc_diapo.imgSize*1/4){setTimeout('nc_diapo.switchImg()',60);}
			else{setTimeout('nc_diapo.switchImg()',60);}
			}else{
			nc_diapo.diff = nc_diapo.img.width;
			nc_diapo.img.width -= nc_diapo.diff; 
			nc_diapo.left += (nc_diapo.diff)/2;
			nc_diapo.img.style.left = nc_diapo.left+'px';
			rand =  nc_diapo.random(0,nc_diapo.tabImg);
			nc_diapo.tabImg[rand]['state'] = 5;
			nc_diapo.img.id = nc_diapo.tabImg[rand]['id'];
			nc_diapo.img.src = nc_diapo.tabImg[rand]['src'];
			nc_diapo.off = 1;
			setTimeout('nc_diapo.switchImg()',100);
			}
		} else {
			if(nc_diapo.diff != 0 ){
				nc_diapo.img.width +=  nc_diapo.diff;
				nc_diapo.left -=  nc_diapo.diff/2;
				nc_diapo.diff = 0;
				setTimeout('nc_diapo.switchImg()',10);
			}else{
				if(nc_diapo.img.width + nc_diapo.step <= nc_diapo.imgSize ){
				nc_diapo.left -= nc_diapo.step/2;
				nc_diapo.img.style.left = nc_diapo.left+'px';
				nc_diapo.img.width += nc_diapo.step;
				if(nc_diapo.img.width < nc_diapo.imgSize*3/4 ){setTimeout('nc_diapo.switchImg()',10);}
				else{setTimeout('nc_diapo.switchImg()',3);}
				}else{
					nc_diapo.off = 0; 
					nc_diapo.img = ''; 
					if(nc_diapo.animCtr < nc_diapo.pulse){
						nc_diapo.animCtr ++;
						setTimeout('nc_diapo.switchImg()',100); 
					}else{
						nc_diapo.animCtr = 0;
						//setTimeout('nc_diapo.initState()',5000); 
						setTimeout('nc_diapo.switchImg()',1500); 
						nc_diapo.initState();
					//	nc_diapo.check();
					}
				}
			}
		}
		
	},
	
	initState : function(){
		for(i=0; i<nc_diapo.tabImg.length; i++){
			if(nc_diapo.tabImg[i]['state'] == 2) nc_diapo.tabImg[i]['state'] = 0;
			if(nc_diapo.tabImg[i]['state'] == 3) nc_diapo.tabImg[i]['state'] = 1;
		}
		for(i=0; i<nc_diapo.tabImg.length; i++){
			if(nc_diapo.tabImg[i]['state'] == 4) nc_diapo.tabImg[i]['state'] = 2;
			if(nc_diapo.tabImg[i]['state'] == 5) nc_diapo.tabImg[i]['state'] = 3;
		}
	},
	
	check :function(){
		var str;
		for (i=1; i<nc_diapo.tabImg.length; i++){
			str += '\n'+nc_diapo.tabImg[i]['state']+'\n';
		}
		alert(str);
	}
}