var tpsMinFirst = 5;
var tpsMin = 10;
var tpsMax = 15;

var max = 100;
var min = 0;

var opacite = new Array();
	
var timer = new Array();
	
var mainTimer = new Array();

var IsIE=document.all;

var arrayPicturesUsed = new Array();

var arrayCurrentPicture = new Array();

function fadePic(pict){
	
	//Si l'opacite est superieur au minimum on la désincrémente de 2
	if (opacite[pict]>min) {
		opacite[pict]-=2;
	} else {
		
		//Foreground : On modifie l'image, le tooltip et le lien
		setFgPicture(pict, arrayCurrentPicture[pict]);
		
		//Background : On cherche une image non actuellement utilisée 
		//et on la place en background
		setBgPicture(pict, arrayCurrentPicture[pict]);
		
		clearInterval(timer[pict]);
		
		opacite[pict] = max;
		
	}
	if(IsIE){
		document.getElementById("fg"+pict).filters[0].opacity=opacite[pict];
	}else{
		$("#fg"+pict).css("opacity",opacite[pict]/100);
	}
	
	
}

//Permet de lancer plusieurs fois à la suite fadePic pour effectuer le fading des images
function go(pict){
	
	clearInterval(timer[pict]);
	timer[pict] = setInterval(function(){fadePic(pict);},25);
	clearInterval(mainTimer[pict]);
	mainTimer[pict] = setInterval(function(){go(pict);}, getRandomInt(tpsMin, tpsMax)*1000);
	
}

function firstGo() {
	
	for(i = 0; i <= 4; i++) {
		//Initialisation des opacites
		opacite[i] = max;

		//Initialisation des images
		//Image de Foreground
		setFgPicture(i, getRandomInt(0, arrayPictures.length-1));
		
		//Image de background
		setBgPicture(i, -1);
		
		clearInterval(mainTimer[i]);
		
	}
	
	init(0);
	init(1);
	init(2);
	init(3);
	init(4);
	
}

function init(pict) {
	mainTimer[pict] = setInterval(function(){go(pict);}, getRandomInt(tpsMinFirst, tpsMax)*1000);
	
	$("#bg"+pict).mouseenter(function() {clearInterval(mainTimer[pict]);showToolTip(pict);});
	
	$("#bg"+pict).mouseleave(function() {go(pict);hideToolTip(pict);});
	
	$("#toolTipLeave"+pict).mouseover(function() {$("#bg"+pict).mouseleave()});
}

//Retourne un entier aleatoire compris entre min et max
function getRandomInt(min, max) {
	var res = 0;
	
	if(max<=10) {
		res = Math.round(Math.random()*10);
	} else {
		res = Math.round(Math.random()*100);
	}
	
	if(res >= min && res <= max) {
		return res;
	} else {
		return getRandomInt(min,max);
	}	
}

function showToolTip(pict) {
	var toolTip = "#tooltipDiapo"+pict;
	if(IsIE){
		if(parseFloat($.browser.version) >= 7) {
			$(toolTip).show();
		}
	} else {
		$(toolTip).fadeIn("fast");
	}

}

function hideToolTip(pict) {
	var toolTip = "#tooltipDiapo"+pict;
	if(IsIE){
		if(parseFloat($.browser.version) >= 7) {
			$(toolTip).hide();
		}
	} else {
		$(toolTip).hide("fast");
	}
}

function getRandomNotUsedPictureInt(pictureInt) {
	//On tire un int aleatoirement entre 0 et le nombre d'images disponibles 
	//et on le stocke temporairement
	var tmpRandInt = getRandomInt(0, arrayPictures.length-1);
	
	var count = 0;
	//Tant que le chiffre aleatoire correspond à une image utilisé on en cherche un autre
	//apres 10 tentatives on prend une image déjà utilisée
	while(count < 10 && arrayPicturesUsed[tmpRandInt] == "X") {
		tmpRandInt = getRandomInt(0, arrayPictures.length-1);
		count++;
	}
	
	//Si il y avait une image utilisée
	if(pictureInt >=0 ) {
		//On libere l'image utilisée
		arrayPicturesUsed[pictureInt] = "";
	}
	//On indique que la nouvelle image est utilisée
	arrayPicturesUsed[tmpRandInt] = "X";

	return tmpRandInt;
}

function setFgPicture(pict,pictureInt) {
	var toolTip = "#tooltipDiapo"+pict;
	
	//On modifie l'image, le tooltip et le lien
	$("#fg"+pict).attr("src",dossierImages + arrayPictures[pictureInt]);
	
	$(toolTip+" .produit").html(arrayTips[pictureInt][0]);
	$(toolTip+" .couleur").html(arrayTips[pictureInt][1]);
	$(toolTip+" .annee").html(arrayTips[pictureInt][2]);
	$("#bg"+pict+" a").attr("href",arrayLinks[pictureInt]);
}

function setBgPicture(pict,pictureInt) {
	
	pictureInt = getRandomNotUsedPictureInt(pictureInt);
	
	$("#bg"+pict).css("background", "url("+ dossierImages + arrayPictures[pictureInt] + ")");
	
	//Index de l'image actuellement utilisée
	arrayCurrentPicture[pict] = pictureInt;
}
