var oGallerie = Class.create({
	initialize: function(CONTENEUR,IMG,URLIMG,URLTXT,TIME_DELAY)
	{
	  this.conteneur = CONTENEUR;
	  this.imgEncours = IMG;
	  this.imgSuivante = '';
	  this.imgSuivante.id = '';
	  this.imgSuivanteHtml = '';
	  this.listeSource = URLIMG;
	  this.sourceTexte = URLTXT;
	  this.timeDelay = TIME_DELAY;
	  this.imgLot = 1;
	  this.imgIndex = 0;
	  this.isActive = 0;
	  this.getListe();
	},
	
	getListe: function() // Génération de la liste d'images
	{
	  var aGallerieImgListe;
	  new Ajax.Request ( this.listeSource, {
	    asynchronous: false,
		onComplete: function (transport)
		{
		  aGallerieImgListe = transport.responseText.strip(); // Suppression des espaces externes
		  aGallerieImgListe = aGallerieImgListe.gsub(/\s/,''); // Suppression des espaces internes
		  aGallerieImgListe = aGallerieImgListe.gsub(/<!--.*-->/,''); // Suppression des commentaires
		  var reg = new RegExp("[,]+", "g");
		  aGallerieImgListe = aGallerieImgListe.split(reg); // Mise en array
		  aGallerieImgListe = aGallerieImgListe.uniq(); // Supression des doublons
		}
	  });
	  this.imgListe = aGallerieImgListe; // Assignation de la liste d'image générée
	  this.preload();
      if (0 == this.isActive) {
        var imgInit = $('0_0').title;
	    var data = $H({
	      'numImg': imgInit.sub('.jpg','')
	      }).toQueryString();
	    var sImgInitTxt;
        new Ajax.Request ( '/reqAjax/accueilGallerieTxt.aspx', {
	      asynchronous: false,
	      postBody: data,
	      onComplete: function (transport)
	      {
	  	    sImgInitTxt = transport.responseText.strip(); // Suppression des espaces externes
		    sImgInitTxt = sImgInitTxt.gsub(/<!--.*-->/,''); // Suppression des commentaires
		    sImgInitTxt = sImgInitTxt.strip(); // Suppression des espaces externes
		    $('0_0').title = sImgInitTxt;
		  }
	    });
	  };
	},
	
	preload: function() // Préchargement des images
	{
	  for (i=0 ; i <= this.imgListe.size() ; i++) {
	    var preloadImg;
		preloadImg = new Image();
		//preloadImg.src = this.imgEncours.src.gsub(/(.*\/).*\.jpg$/,'#{1}'+this.imgListe[i]);
	    preloadImg.src = '/img/accueil/gallerieAccueil/'+this.imgListe[i];
		preloadImg.style.display = 'none';
	    this.imgEncours.insert
	    ({
	      after: preloadImg
	    });
	  }
	},
	
	demarre: function() // Démarrage de la gallerie
	{
	  if (0 == this.isActive) {
		new PeriodicalExecuter(this.avance.bind(this), this.timeDelay); 
	    this.isActive = 1;
	  }
	},
	
	avanceIMG: function() // Passage à l'image suivante
	{
	  if (this.imgIndex >= this.imgListe.size()) {
		this.imgIndex = 0;
	    this.getListe();
		this.imgLot++;
	  }
	  //alert(this.imgIndex+" - "+this.imgListe[this.imgIndex]);
	  this.imgSuivanteId = this.imgLot+'_'+this.imgIndex;
	  this.imgSuivanteHtml = new Image();
	  this.imgSuivanteHtml.id = this.imgSuivanteId;
	  this.imgSuivanteHtml.name = this.imgSuivanteId;
	  this.imgSuivanteHtml.src = this.imgEncours.src.gsub(/(.*\/).*\.jpg$/,'#{1}'+this.imgListe[this.imgIndex]);
	  this.imgEncours.insert
	  ({
	    after: this.imgSuivanteHtml
	  });
	  this.imgSuivante = $(this.imgSuivanteId);
	  this.imgSuivante.setOpacity(0);
	  this.imgEncours.fade({ duration: 2 });
	  this.imgSuivante.appear({ duration: 2 });
	  this.imgIndex++;
	  this.imgEncours = this.imgSuivante;
	},
	
	avance: function() // Passage à l'image suivante
	{
	  if (this.imgIndex >= this.imgListe.size()) {
		this.imgIndex = 0;
	    this.getListe();
		this.imgLot++;
	  }
	  this.imgSuivanteId = this.imgLot+'_'+this.imgIndex;
	  var sImgNum = this.imgListe[this.imgIndex].sub('.jpg','');
	  var data = $H({
	    'numImg': sImgNum
	    }).toQueryString();
	  var sImgTxt;
      new Ajax.Request ( '/reqAjax/accueilGallerieTxt.aspx', {
	    asynchronous: false,
	    postBody: data,
	    onComplete: function (transport)
		{
		  sImgTxt = transport.responseText.strip(); // Suppression des espaces externes
		  sImgTxt = sImgTxt.gsub(/<!--.*-->/,''); // Suppression des commentaires
		  sImgTxt = sImgTxt.strip(); // Suppression des espaces externes
	      sImgTxt = sImgTxt.gsub("'","&rsquo;");
	      sImgTxt = sImgTxt.gsub("\"","&quot;");
		}
	  });
	  this.imgSuivanteHtml = '<div id="'+this.imgSuivanteId+'" name="'+this.imgSuivanteId+'" style="position: absolute; width: 555px; height: 650px; background: url(/img/accueil/gallerieAccueil/'+this.imgListe[this.imgIndex]+') no-repeat center center" title="'+sImgTxt+'"></div>';
	  this.imgEncours.insert
	  ({
	    after: this.imgSuivanteHtml
	  });
	  this.imgSuivante = $(this.imgSuivanteId);
	  this.imgSuivante.setOpacity(0);
	  this.imgEncours.fade({ duration: 2 });
	  this.imgSuivante.appear({ duration: 2 });
	  this.imgIndex++;
	  this.imgEncours = this.imgSuivante;
	}
});

function initFct(e) 
{
	
	var CONTENEUR = $('gallerieImg'); // Conteneur de la gallerie
	var IMG = $('0_0'); // Elément image de la gallerie
	var URLIMG = '/reqAjax/accueilGallerieImg.aspx'; // URL de génération de la liste d'images
	var URLTXT = '/reqAjax/accueilGallerieTxt.aspx'; // URL de génération des légendes
	var TIME_DELAY = 6; // Période de changement d'image en secondes
	var maGallerie = new oGallerie(CONTENEUR,IMG,URLIMG,URLTXT,TIME_DELAY); // instantiation de l'objet gallerie
	maGallerie.demarre(); // Démarrage de la gallerie
}// Initialisation de la gallerie

Event.observe(window, 'load', initFct, false);
