/******************************************************************************
* hadcmpCarousel.js
*******************************************************************************

*******************************************************************************
*                                                                             *
* Copyright 2006									                          *
*                                                                             *
******************************************************************************/


var aListeGid = new Array();

var aCarouselNavBtn = new Array();


isoYUILoader.onReady( function() {
	
	YAHOO.namespace("HELIOS");
	
	YAHOO.util.Event.onAvailable("bulle",function() {
		
		//var myLogReader = new YAHOO.widget.LogReader("myLogger");
		/*var myContainer = document.body.appendChild(document.createElement("div"));
		var myLogReader = new YAHOO.widget.LogReader(myContainer);
		*/
		//myLogReader._elContainer.style.zIndex = "999999";
		//myLogReader._elContainer.style.fontSize = "105%";
				
		YAHOO.HELIOS.listeCarousels = {
			aGid: {},  
			aCarousels: {},
			addCarousel: function(unGid)
			{
			
				var myCarousel = new YAHOO.widget.Carousel("carouselContainer_"+unGid, 
				{ 
					autoPlayInterval: 2000, 
					isCircular: true, 
					animation: {
						speed: 0.5
					},
					numVisible:1
				}); 
				
				// ajout d'une mémorisation de l'isoID
				myCarousel.idHelios = unGid;
				
				// quel item devrait effectivement être affiché ?
				myCarousel.itemActif = 0;
				
				// ajout de la liste des boutons associés
				myCarousel.navButtons = YAHOO.util.Dom.getElementsByClassName("carousel_nav_btn ","li", "carouselMain_"+unGid);
				
				this.aCarousels[unGid] = myCarousel;
				
				var old_selectedId = "";

				myCarousel.on("pageChange", function(currentPage){
					this.allumeBouton(currentPage);
				});
				
				myCarousel.eteindBoutons = function () {
					YAHOO.util.Dom.removeClass(this.navButtons, "on");
				};
				myCarousel.allumeBouton = function (numBouton) {
					this.eteindBoutons();
					YAHOO.util.Dom.addClass(this.navButtons[numBouton], "on");
				};
				
				// fin d'animation : allumer le bouton qui va bien.
				myCarousel.on("afterScroll", function(oResult){
				
						//YAHOO.log("aScr 0. this.isAutoPlayOn():"+this.isAutoPlayOn());
					var firstCarousel = parseInt(oResult.first,10);
					YAHOO.log("aScr 0a. firstCarousel:" + firstCarousel + " this.itemActif:" + this.itemActif);
					if (this.isAutoPlayOn()) {
						//YAHOO.log("aScr 1a. itemActif:" + this.itemActif );
						// on est en mode "animé" alors on mémorise la position actuellement affichée
						this.itemActif = firstCarousel;
						this.allumeBouton(this.itemActif);
						//YAHOO.log("aScr 1b. itemActif:" + this.itemActif);
					} else if (this.itemActif != firstCarousel) {
						//YAHOO.log("aScr 2. itemActif:" + this.itemActif);
						// l'item de fin d'animation n'est pas le bon (autre rollover ?)
						this.scrollTo(this.itemActif);
					} else { // this.itemActif != firstCarousel
						//YAHOO.log("aScr 3. itemActif:" + this.itemActif);
						this.allumeBouton(this.itemActif);
					}
		
				});
				
				// au lancement de l'animation, on éteind tous les boutons
				myCarousel.on("beforeScroll", function(oResult){
					YAHOO.util.Dom.removeClass(this.navButtons, "on");	
				});
				
				var divCarousel = YAHOO.util.Dom.get("carouselMain_"+unGid);
				YAHOO.util.Dom.replaceClass(divCarousel, "carouselMainContainer", "carouselMainContainer_visible");
				
				myCarousel.render();
				myCarousel.show();
				
				myCarousel.startAutoPlay();
				

				
				myCarousel.allumeBouton(myCarousel.itemActif);
				
				
			},
			
			init: function(){
				for(var i=0;i<this.aGid.length;i++){
					this.addCarousel(this.aGid[i]);
				}
			},
			
			launch: function(){
				this.init();
			}
		};
		
	});

	YAHOO.util.Event.onAvailable("bulle",function(ev) {
		YAHOO.HELIOS.listeCarousels.aGid = aListeGid;
		YAHOO.HELIOS.listeCarousels.launch();
	});
});

function clickNavBar(gid, i, idLi){
}
function overNavBar(gid, i, idLi){
	//YAHOO.log("overNavBar. scrollTo = " + i);
	
YAHOO.log("scrollTo 0. i:" + i + " " + typeof(i) );
	//isoYUILoader.onReady( function() {
		YAHOO.HELIOS.listeCarousels.aCarousels[gid].itemActif = parseInt(i,10);
		YAHOO.HELIOS.listeCarousels.aCarousels[gid].stopAutoPlay();
		
	//	if (! YAHOO.HELIOS.listeCarousels.aCarousels[gid].isAnimating()) {
	//YAHOO.log("overNavBar. isAnimating = " + YAHOO.HELIOS.listeCarousels.aCarousels[gid].isAnimating());
			YAHOO.HELIOS.listeCarousels.aCarousels[gid].scrollTo(parseInt(i,10));
	//	}
	//});
}
function outNavBar(gid, i, idLi){
	//isoYUILoader.onReady( function() {
		YAHOO.HELIOS.listeCarousels.aCarousels[gid].startAutoPlay();
	//});
}
