
function CBernatDiapo(sVarName)
{
	// le nom de la variable
	this.m_sVarName = sVarName;

	// Parametres par defaut
	this.m_coef = 0.05 ; // avancement de l'opacité
	this.m_temps = 50 ; // temps entre chaque changement d'opacité
	this.m_temps_pause = 2000 ; // temps d'attente entre 2 changements d'images
	this.m_nombre_image = 4 ; // nombre d'images a faire bouger
	this.m_prefix_image = 'diaporama/'; // chemin + prefix du nom des images
	this.m_suffix_image = '.jpg' ; // suffix + '.extension' du nom des images

	// variables internes
	this.m_indice = 2; // les 2 premiere image sont deja charger dans le HTML, on commence a la 3eme
	this.m_isChrome = (navigator.userAgent.toLowerCase().indexOf('chrome') > -1);
	this.m_isIE = (navigator.userAgent.toLowerCase().indexOf('msie') > -1);
	this.m_img1 = null;
	this.m_img2 = null ;
	this.m_sens = 1;
	this.m_tabImg;  // tab contenant les images
	this.m_opacity1 = 0 ;
	this.m_opacity2 = 1 ;
	
	this.init = function(sIdImg1,sIdImg2,iNbImg,sPrefix,sSuffix)
	{
		this.m_img1 = document.getElementById(sIdImg1);
		this.m_img2 = document.getElementById(sIdImg2);
		this.m_nombre_image = iNbImg;
		this.m_prefix_image = sPrefix;
		this.m_suffix_image = sSuffix;
		// Chargement images
		this.m_opacity1 = 0 ;
		this.m_opacity2 = 1 ;
	  this.m_tabImg = new Array(this.m_nombre_image);
	  for (i=0; i<=this.m_nombre_image -1; i++)
	  {
			this.m_tabImg[i]=new Image();
			this.m_tabImg[i].src = this.m_prefix_image+(i+1)+this.m_suffix_image;
		}
		// Hop
		this.run();
	}

	this.run = function()
	{	
		// calcule nouvelles valeurs
		if(this.m_sens)
		{	
			this.m_opacity1 += this.m_coef;
			this.m_opacity2 -= this.m_coef;
		}
		else
		{
			this.m_opacity1 -= this.m_coef;
			this.m_opacity2 += this.m_coef;
		}
		// applique aux images
		if (this.m_isIE)  // for IE
		{	
			this.m_img1.filters.alpha.opacity = this.m_opacity1 * 100;
			this.m_img2.filters.alpha.opacity = this.m_opacity2 * 100;
		}
		else if(this.m_isChrome)
		{
			this.m_img1.style.opacity = this.m_opacity1;
			this.m_img2.style.opacity = this.m_opacity2;
		}
		else // for Mozilla
		{	
			this.m_img1.style.MozOpacity = this.m_opacity1;
			this.m_img2.style.MozOpacity = this.m_opacity2;
		}
		// change les images si necessaire
		if(this.m_opacity2  <= 0)
		{	
			this.m_img2.src=this.m_tabImg[this.m_indice++].src;
			this.m_sens = 0;
			if (this.m_indice == (this.m_tabImg.length)) this.m_indice=0;
			window.setTimeout(this.m_sVarName+".run()",this.m_temps_pause) ; // attente
			return 0;
		}
		if(this.m_opacity1 <= 0)
		{	
			this.m_img1.src=this.m_tabImg[this.m_indice++].src;
			this.m_sens = 1;
			if (this.m_indice == (this.m_tabImg.length)) this.m_indice=0;
			window.setTimeout(this.m_sVarName+".run()",this.m_temps_pause) ; // attente
			return 0;
		}
		window.setTimeout(this.m_sVarName+".run()",this.m_temps) ; // recursion toutes les x millisec
	}
}

