/**
 * @author jeremy@eolas.fr
 * Permet de gérer le diaporama avec des images de largeurs différentes
 */

YAHOO.namespace("YAHOO.diaporamaLien");

YAHOO.diaporamaLien.diaSizeBloc = new Array();
YAHOO.diaporamaLien.diaNbLeftHiddenBloc = new Array();
YAHOO.diaporamaLien.diaNbRightHiddenBloc = new Array();
YAHOO.diaporamaLien.oDiaContainerLien = new Array();
YAHOO.diaporamaLien.oDiaListingLien = new Array();
YAHOO.diaporamaLien.aDiaBloc = new Array();
YAHOO.diaporamaLien.oImgLienForward = new Array();
YAHOO.diaporamaLien.oImgLienReward = new Array();
YAHOO.diaporamaLien.srcForwardLienNone='';
YAHOO.diaporamaLien.srcRewardLienNone='';
YAHOO.diaporamaLien.srcNone = '';
YAHOO.diaporamaLien.srcLienRight = '';
YAHOO.diaporamaLien.srcLienLeft = '';
//var idInterval = null;

YAHOO.diaporamaLien.load = function() {
	try {		
		if (YAHOO.diaporamaLien.srcForwardLienNone == '') {
		    
			// initialisations des objects
			var aDiaporama = YAHOO.util.Dom.getElementsByClassName('diaporamaLien');
			for(var i = aDiaporama.length -1; i >= 0; i--) {
                
				YAHOO.diaporamaLien.oDiaContainerLien[i] = YAHOO.util.Dom.getElementsByClassName('diaporamaLien_container','div',aDiaporama[i])[0];
				YAHOO.diaporamaLien.oDiaListingLien[i] = YAHOO.util.Dom.getElementsByClassName('diaporamaLien_listing','div',YAHOO.diaporamaLien.oDiaContainerLien[i])[0];

                YAHOO.diaporamaLien.oImgLienForward[i] = YAHOO.util.Dom.getElementsByClassName('imgForwardLien','img',aDiaporama[i])[0];
                YAHOO.diaporamaLien.oImgLienReward[i] = YAHOO.util.Dom.getElementsByClassName('imgRewardLien','img',aDiaporama[i])[0];
                YAHOO.diaporamaLien.aDiaBloc[i] = YAHOO.util.Dom.getElementsByClassName('Lienbloc', 'div', YAHOO.diaporamaLien.oDiaListingLien[i]);
    			// Mise a jour action
    	
    			var oALienForward = YAHOO.util.Dom.getElementsByClassName('aForwardLien','a',aDiaporama[i]);
                var oALienReward = YAHOO.util.Dom.getElementsByClassName('aRewardLien','a',aDiaporama[i]);
    			// ajout des listener
    			YAHOO.util.Event.addListener(oALienForward, 'click', function(event,param) { YAHOO.diaporamaLien.diaForward(param); },i);

    			YAHOO.util.Event.addListener(oALienReward, 'click', function(event,param) {YAHOO.diaporamaLien.diaReward(param); },i);
    			
    			// définition des sources pour les images    			
                YAHOO.diaporamaLien.srcForwardLienNone = YAHOO.diaporamaLien.oImgLienForward[i].src;
                YAHOO.diaporamaLien.srcRewardLienNone = YAHOO.diaporamaLien.oImgLienReward[i].src;
    			YAHOO.diaporamaLien.srcLienRight = YAHOO.diaporamaLien.oImgLienForward[i].src.replace('next_none', 'next');
    			YAHOO.diaporamaLien.srcLienLeft = YAHOO.diaporamaLien.oImgLienReward[i].src.replace('previous_none', 'previous');
    		    
    			YAHOO.diaporamaLien.constructDiaporama(i);
			}
		}
	} catch (ex) {
		alert('load:' + ex);
	}
}


 YAHOO.diaporamaLien.resize = function() {
	if (YAHOO.diaporamaLien.srcForwardLienNone == '') YAHOO.diaporamaLien.load();
	else YAHOO.diaporamaLien.constructDiaporama();
}

 YAHOO.diaporamaLien.constructDiaporama = function(idDiaporamaLien) {
	// Initialisation (pour le resize)
	if(YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien]) {
        YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcLienRight;
        YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].alt = "images suivantes";
	    YAHOO.util.Dom.setStyle(YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien], 'cursor', 'default');
	}
	if(YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien]) {
    	YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcLienLeft;
    	YAHOO.util.Dom.setStyle(YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien], 'cursor', 'default');
	}
	YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien] = 0;
	YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien] = 0;

	if (YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien]) {	
		cx = YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].offsetWidth;
		var diaNbBloc = YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien].length;
		
		YAHOO.diaporamaLien.diaSizeBloc[idDiaporamaLien] = (YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][0].offsetWidth);//default : marge 6px * 2 = 12
	  	  
		// Gestion Hauteur des blocs
		blcHeightNorm = YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].offsetHeight;
		blcHeightMax = blcHeightNorm;
		
		// Récupération de la hauteur maximum des blocs
	  for (i=0;YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i];i++) if (YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i].offsetHeight > blcHeightMax) blcHeightMax = YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i].offsetHeight;
	  
	  try {
		  // Définition des hauteurs des blocs
		  for (i=0;YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i];i++) {
		  		
          aElm = YAHOO.util.Dom.getElementsByClassName('palette', 'div', YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i])
		  		useHeight = (aElm.length > 0 ? aElm[0].height : 0);
		  	    
				oUls = YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i].getElementsByTagName('ul');
				if (oUls.length > 0) useHeight += oUls[0].offsetHeight;
				
				margin = (blcHeightMax - useHeight - 10) / 2;
				if (margin >= 0) {
					aElm[0].style.marginTop = margin + 'px';
					aElm[0].style.marginBottom = margin + 'px';
				}
				YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i].style.height = (blcHeightMax) + 'px';
			}
		} catch (ex) {
		  alert(ex)
		}
		//var nbDisplayBloc = Math.floor(cx / YAHOO.diaporamaLien.diaSizeBloc[idDiaporamaLien]);
		var nbDisplayBloc = 1;
	    //YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].style.width = YAHOO.diaporamaLien.diaSizeBloc[idDiaporamaLien] * nbDisplayBloc + 'px';
		
		//alert(YAHOO.diaporamaLien.diaSizeBloc[idDiaporamaLien]);
		YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].style.width = YAHOO.diaporamaLien.diaSizeBloc[idDiaporamaLien]+ 0 + 'px';
		YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].style.height = (blcHeightMax) + 'px';
		YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].style.overflow = 'hidden';
		YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].scrollLeft = 0;
	
		// Définition de la largeur du listing
		nb = 0;
		for (i=0;YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i];i++) {
			nb = nb + YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][i].offsetWidth +25;
		}
		YAHOO.diaporamaLien.oDiaListingLien[idDiaporamaLien].style.width = nb + 'px';

		YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien] = diaNbBloc -  nbDisplayBloc;
		
		YAHOO.diaporamaLien.diaScrollMaj(idDiaporamaLien);
	}
}

YAHOO.diaporamaLien.diaScrollMaj = function(idDiaporamaLien) {
	if (YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien] > 0) {
	    YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcLienLeft;
	    YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].alt = "images precedentes";
	    YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].style.cursor = 'pointer';
	} else {
		YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcRewardLienNone;
		YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].alt = ''; 
		YAHOO.diaporamaLien.oImgLienReward[idDiaporamaLien].style.cursor = 'default';
	}
	
	if (YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien] > 0) {
        YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcLienRight;
        YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].alt = "images suivantes";
		YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].style.cursor = 'pointer';
	} else {
		YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].src = YAHOO.diaporamaLien.srcForwardLienNone;
		YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].alt = "";
		YAHOO.diaporamaLien.oImgLienForward[idDiaporamaLien].style.cursor = 'default';
	}
}


YAHOO.diaporamaLien.diaForward = function (idDiaporamaLien) {
  if (YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien] > 0) {
	YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien]--;
    YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien]++;
    //YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].scrollLeft += YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien]-1].offsetWidth ;
    YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].scrollLeft += 220;
  }
  YAHOO.diaporamaLien.diaScrollMaj(idDiaporamaLien)
}

YAHOO.diaporamaLien.diaReward = function (idDiaporamaLien) {
  if (YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien] > 0) {
	YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien]--;
	YAHOO.diaporamaLien.diaNbRightHiddenBloc[idDiaporamaLien]++;
    //YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].scrollLeft -= YAHOO.diaporamaLien.aDiaBloc[idDiaporamaLien][YAHOO.diaporamaLien.diaNbLeftHiddenBloc[idDiaporamaLien]].offsetWidth ;
	YAHOO.diaporamaLien.oDiaContainerLien[idDiaporamaLien].scrollLeft -= 220;
  }
  YAHOO.diaporamaLien.diaScrollMaj(idDiaporamaLien);
}

