if (monDiaporama == null)
{
	var monDiaporama = new Array();
}

function Diaporama(id_diaporama, frequenceH, vitesseH,	delai, largeurMax, hauteurMax, typeTransition)
{
		
	this.id_diaporama = id_diaporama;
	this.diapo = new Array();
	this.libelleDiapo = new Array();
	this.lienZoom = new Array();
	this.calque1 = "";
	this.calque2 = "";
	this.calqueLibelle1 = "";
	this.calqueLibelle2 = "";
	this.lienImage1 = "";
	this.lienImage2 = "";
	this.frequenceH = frequenceH;
	this.vitesseH = vitesseH;
	this.delai = delai; // délai entre chaque rotations

	this.largeurMax = largeurMax;
	this.hauteurMax = hauteurMax;

	this.indexDiapo = 2;
	this.masquePanneauCommande = false;
	this.epaisseurCadre = 0;
	this.couleurCadre = "#000000";


	if (!typeTransition) // slide ou flou
	{
		this.typeTransition = "slide";
	}
	else
	{
		this.typeTransition = "flou";
	}

	//this.stats = new Image();
	//this.stats.src = "http://so.fun.free.fr/modules/stats/image_bidon.php?script=diaporama&version=6.04.03";

}

function ajoutePhoto(url_photo,libelle_photo,urlZoom)
{
	nb_diapo = this.diapo.length;
	this.diapo[nb_diapo] = new Image();
	this.diapo[nb_diapo].src = url_photo;
	this.libelleDiapo[nb_diapo] = libelle_photo;
	if(urlZoom) this.lienZoom[nb_diapo] = urlZoom;
}

function progressionChangeDiapoH()
{
	
}

function progressionChangeDiapoFlou()
{
	this.vitesse = this.vitesseH;
	this.frequence = this.frequenceH;
	
	if (this.calque1.style.opacity > 0)
	{// disparition de l'image du dessus
		// pour Firefox (le paramètre existe sous IE mais n'a pas d'influence)
		// ce paramètre sert de base commune pour les deux navigateurs pour tester l'état du calque
		opacite = parseFloat(this.calque1.style.opacity) - parseFloat(this.vitesse / 100);
		if (opacite < 0)
		{
			opacite=0;
		}
		this.calque1.style.opacity = opacite
		//this.calqueLibelle1.style.opacity = opacite

		// pour IE
		if (this.calque1.style.filter)
		{
			texte = this.calque1.style.filter;
			opacite = texte.replace(/alpha\(opacity=([0-9]*)\)/, '$1');
			opacite = parseFloat(opacite) - this.vitesse;
			if (opacite < 0)
			{
				opacite=0;
			}
			//nouveau_texte = texte.replace(/alpha\(opacity=([0-9]*)\)/, 'alpha(opacity=' + opacite + ')');
			nouveau_texte = 'alpha(opacity=' + opacite + ')';
			this.calque1.style.filter = nouveau_texte;
			//this.calqueLibelle1.style.filter = nouveau_texte;
		}

		if(this.lienZoom[this.indexDiapo-1] != null) this.lienImage2.href = this.lienZoom[this.indexDiapo-1];
		if(this.lienZoom[this.indexDiapo-1] != null) this.lienImage1.href = this.lienZoom[this.indexDiapo-1];

		setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.frequence);

	} else {
		// inversion des calques
		this.calque1.style.zIndex = 10; // le calque écrasé passe au dessous
		//this.calqueLibelle1.style.zIndex = 30; // le calque écrasé passe au dessous
		this.calque2.style.zIndex = 20; // le calque visible passe au dessus
		//this.calqueLibelle2.style.zIndex = 40; // le calque visible passe au dessus
		this.calque1.style.opacity = 1; // le calque du dessous reprends sa taille initiale
		//this.calqueLibelle1.style.opacity = 1; // le calque du dessous reprends sa taille initiale
		if (this.calque1.style.filter)
		{
			this.calque1.style.filter = 'alpha(opacity=100)';
			//this.calqueLibelle1.style.filter = 'alpha(opacity=100)';
		}

		// Mise en place d'une nouvelle image dans le calque qui se trouve en arrière
		if (this.indexDiapo >= this.diapo.length) this.indexDiapo = 0;
		this.calque1.style.backgroundImage = "url('" + this.diapo[this.indexDiapo].src + "')";
		//this.calqueLibelle1.innerHTML = this.libelleDiapo[this.indexDiapo];

		this.indexDiapo++;

		
		

		//inversion des références des calques car seul calque1 rétrécit
		calqueTemp = this.calque2;
		this.calque2 = this.calque1;
		this.calque1 = calqueTemp;
		
		//calqueTemp = this.calqueLibelle2;
	    //this.calqueLibelle2 = this.calqueLibelle1;
		//this.calqueLibelle1 = calqueTemp;

		if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked )
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
		}
		else
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", this.delai);
		}
	}
}

function pause()
{
	if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked )
	{
		if (this.typeTransition == "slide")
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai);
		}
		else if (this.typeTransition == "flou")
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
		}
	}
	else
	{
		setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", 1000);
	}
}



function testImagesOk()
{
	this.nbImagesOk = 0;
	// boucle pour compter le nombre d'images chargées
	nbImagesOk = 0;
	for (i=0; i<this.diapo.length;i++)
	{
		if (this.diapo[i].complete) nbImagesOk++;
	}
	if ( nbImagesOk >= this.diapo.length)
	{
		if (this.masquePanneauCommande)
		{
			panneauCommande = '';
		}
		else
		{
			panneauCommande = '<input id="cb_defilement_' + this.id_diaporama + '" type="checkbox" CHECKED>automatique';
		}
		if (this.typeTransition == "slide")
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai);
		}
		else if (this.typeTransition == "flou")
		{
			setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
		}
	}
	else
	{
		setTimeout("monDiaporama[" + this.id_diaporama + "].testImagesOk()", 1000);
	}
}

function masquerPanneauCommande()
{
	this.masquePanneauCommande = true;
}

function ajouteCadre(epaisseur, couleur)
{
	this.epaisseurCadre = epaisseur;
	this.couleurCadre = couleur;
}

Diaporama.prototype.ajoutePhoto = ajoutePhoto;
Diaporama.prototype.progressionChangeDiapoH = progressionChangeDiapoH;
Diaporama.prototype.progressionChangeDiapoFlou = progressionChangeDiapoFlou;
Diaporama.prototype.pause = pause;
Diaporama.prototype.testImagesOk = testImagesOk;
Diaporama.prototype.masquerPanneauCommande = masquerPanneauCommande;
Diaporama.prototype.ajouteCadre = ajouteCadre;
