var baseURL = 'http://' + window.location.hostname + '/';

var carrouselContainer = '';
var carrousel_bloc_id = 'carrousel_bloc_';
var carrousel_li_id = 'carrousel_li_';
var carrousel_ul_id = 'carrousel_ul';
var carrousel_content_id = 'CARROUSEL_CONTENT';

var carrousel_waiter_id = 'CARROUSEL_WAITER';
var membre_waiter_id = 'MEMBRE_WAITER';

var top_membre_content_id = 'HEADER_TOP_MEMBRE_VIGNETTE';
var top_membre_bloc_id = 'top_membre_';

var carrouselTimer = null;
var carrouselInterval = 5000;

var animEncours = false;
var annuleCarrousel = false;

var hpo_menu_lastId = 0, hpo_menu_lastTimerId = 0, hpo_menu_activeId = 0;
var hpo_menu_theactivateTime=300;    // en mlseconde

var timerMenuPrincipal = null;
var dureeTimerMenuPrincipal = 300;
var curItemMenuPrincipal = null;

/**
* function loadCarrousel
* Appelée au chargement de la page, permet de lancer le timer du carrousel
*/
function loadCarrousel(){
	if(!annuleCarrousel)
		carrouselTimer = setTimeout('carrouselChange()', carrouselInterval);
}

/**
* function loadBlocCarrousel
* fonction permettant de charger un bloc carrousel via ajax
*/
function loadBlocCarrousel(id, idCur){
	
	if (!document.getElementById(carrousel_bloc_id + id)){
		
		if(document.getElementById(carrousel_bloc_id + idCur))
			document.getElementById(carrousel_bloc_id + idCur).style.display = 'none';
		document.getElementById(carrousel_waiter_id).style.display = 'block';
		
		var container = YAHOO.util.Dom.get(carrousel_content_id);
		
		var handleSuccess = function(o){ 
			if(o.responseText !== undefined){ 
				document.getElementById(carrousel_waiter_id).style.display = 'none';
				container.innerHTML += o.responseText;
				document.getElementById(carrousel_bloc_id + id).style.display = 'block';
				prepareOnglet(carrousel_bloc_id + id);
				animEncours = false;
			}
		}
		
		var handleFailure = function(o){ 
			if(o.responseText !== undefined){ 
				animEncours = false;
				// container.innerHTML += o.responseText; 
			} 
		}

		var callback = 
		{
			success:handleSuccess, 
			failure: handleFailure
		}; 
		
		// var sUrl = baseURL + tabUrlCarrousel[id];
		var sUrl = tabUrlCarrousel[id];
		var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); 
		
	}
	else{
		// Bloc affiché
		if(document.getElementById(carrousel_bloc_id + idCur))
			document.getElementById(carrousel_bloc_id + idCur).style.display = 'none';
		document.getElementById(carrousel_bloc_id + id).style.display = 'block';
		animEncours = false;
		prepareOnglet(carrousel_bloc_id + id);
	}
	
	
	if (!document.getElementById(top_membre_bloc_id + id)){
		
		if(document.getElementById(top_membre_bloc_id + idCur))
			document.getElementById(top_membre_bloc_id + idCur).style.display = 'none';
		document.getElementById(membre_waiter_id).style.display = 'block';
		
		var containerMembre = YAHOO.util.Dom.get(top_membre_content_id);
		
		var handleSuccessMembre = function(o){ 
			if(o.responseText !== undefined){ 
				document.getElementById(membre_waiter_id).style.display = 'none';
				containerMembre.innerHTML += o.responseText;
				document.getElementById(top_membre_bloc_id + id).style.display = 'block';
			} 
		}

		var handleFailureMembre = function(o){ 
			if(o.responseText !== undefined){ 
				containerMembre.innerHTML += o.responseText; 
			} 
		}

		var callbackMembre = 
		{
			success:handleSuccessMembre, 
			failure: handleFailureMembre
		}; 
		
		// var sUrlMembre = baseURL + tabUrlTopMembre[id];
		var sUrlMembre = tabUrlTopMembre[id];
		var requestMembre = YAHOO.util.Connect.asyncRequest('GET', sUrlMembre, callbackMembre); 
		
	}
	else{
		// Bloc affiché
		if(document.getElementById(top_membre_bloc_id + idCur))
			document.getElementById(top_membre_bloc_id + idCur).style.display = 'none';
		document.getElementById(top_membre_bloc_id + id).style.display = 'block';
	}
	
}



/**
* function carrouselChange
* @param : objLi => l'élément li sur lequel la sourie vient de passer, null si mode automatique
* Permet de changer de bloc du carrousel
*/
function carrouselChange(objLi){
    
    timerMenuPrincipal = null;
    
	if(animEncours)return;
	
	animEncours = true;
	
	var modeAuto = true;
	if(objLi || curItemMenuPrincipal){
		modeAuto = false;
	}
	
	clearTimeout(carrouselTimer);
	
	var ulEl = document.getElementById(carrousel_ul_id);
	var tabLi = YAHOO.util.Dom.getChildren(ulEl);
	
	// Si le bloc est choisi par l'utilisateur (mouseover sur un item du menu)
	if(objLi || curItemMenuPrincipal){
		if(curItemMenuPrincipal){
			var next = curItemMenuPrincipal;
			curItemMenuPrincipal = null;
		}
		else var next = objLi;
		
		for(li in tabLi){
			if(YAHOO.util.Dom.hasClass(tabLi[li],'actif')){
				objLi = tabLi[li];
				break;
			}
		}
		
	}
	// sinon mode automatique
	else{
		for(li in tabLi){
		
			if(YAHOO.util.Dom.hasClass(tabLi[li],'actif')){
				objLi = tabLi[li];
				var next = YAHOO.util.Dom.getNextSibling(objLi);
				if(!next)
					next = YAHOO.util.Dom.getFirstChild(ulEl);
				break;
			}
		
		}
	}
	
	var idNext = next.id.substr(carrousel_li_id.length,2);
	var idCur = objLi.id.substr(carrousel_li_id.length,2);
	
	loadBlocCarrousel(idNext,idCur);
	
	// Changement de l'onglet actif
	YAHOO.util.Dom.removeClass(objLi, 'actif');
	YAHOO.util.Dom.addClass(next, 'actif');
	
	if(modeAuto)
		loadCarrousel();
	
	// animEncours = false;
	
	var fadeOutAnim = new YAHOO.util.Anim(document.getElementById(carrousel_content_id), { opacity: {to: 0} }, 1 );
	fadeOutAnim.onComplete.subscribe(function (){
		
		// Changement de l'onglet actif
		YAHOO.util.Dom.removeClass(objLi, 'actif');
		YAHOO.util.Dom.addClass(next, 'actif');
		
		// Bloc affiché
		document.getElementById(carrousel_bloc_id + idCur).style.display = 'none';
		document.getElementById(carrousel_bloc_id + idNext).style.display = 'block';
		
		// Lancement du fade In
		var fadeInAnim = new YAHOO.util.Anim(document.getElementById(carrousel_content_id), { opacity: {to: 1} }, 1 );
		fadeInAnim.onComplete.subscribe(function(){
			animEncours = false;
			prepareOnglet(carrousel_bloc_id + idNext);
			if(modeAuto)
				loadCarrousel();
		});
		
		fadeInAnim.animate();
		
	});
	
	var fadeOutAnimMembre = new YAHOO.util.Anim(document.getElementById(top_membre_content_id), { opacity: {to: 0} }, 1 );
	fadeOutAnimMembre.onComplete.subscribe(function (){
		
		// Bloc affiché
		document.getElementById(top_membre_bloc_id + idCur).style.display = 'none';
		document.getElementById(top_membre_bloc_id + idNext).style.display = 'block';
		
		// Lancement du fade In
		var fadeInAnimMembre = new YAHOO.util.Anim(document.getElementById(top_membre_content_id), { opacity: {to: 1} }, 1 );
		fadeInAnimMembre.animate();
		
	});
	
	//fadeOutAnim.animate();
	//fadeOutAnimMembre.animate();
	
}

/**
* function switchNuageCarrousel
* @param : e => la balise a qui vient d'être cliquée
* Permet de changer le mode d'affichage de la liste des sous-thèmes dans le carrousel
*/
function switchNuageCarrousel(e){
	
	var container = YAHOO.util.Dom.getAncestorByClassName(e,'nuage');
	if(e.className == 'bt_mode_nuage'){
		YAHOO.util.Dom.getElementsByClassName('mode_liste', 'div', container)[0].style.display = 'none';
		YAHOO.util.Dom.getElementsByClassName('mode_nuage', 'div', container)[0].style.display = 'block';
	}
	else{
		YAHOO.util.Dom.getElementsByClassName('mode_liste', 'div', container)[0].style.display = 'block';
		YAHOO.util.Dom.getElementsByClassName('mode_nuage', 'div', container)[0].style.display = 'none';
	}
	
	return false;
	
}

/**
* function prepareMenuPrincipal
* Appelée au chargement de la page
* Prépare le menu principal 
*/
function prepareMenuPrincipal(){
	
	var tabOnglet = YAHOO.util.Dom.getChildren(carrousel_ul_id);
	
	for(onglet in tabOnglet){
		
		var elLi = tabOnglet[onglet];
		YAHOO.util.Event.addListener(elLi, "mouseover", carrouselHoverItem, elLi, true);
		/*YAHOO.util.Event.addListener(elLi, "mouseout", function(){
			var el = new YAHOO.util.Element(this);
			el.removeClass('hover');
		}, elLi, true);
		*/
		// YAHOO.util.Event.addListener(elLi, "click", showContent, elLi, true);
	
	}
	
}

function carrouselHoverItem(e){
	
	if(animEncours){
		curItemMenuPrincipal = null;
		clearTimeout(timerMenuPrincipal);
		return false;
	}
	
	var el = new YAHOO.util.Element(this);
	if(el.hasClass('actif')){
		clearTimeout(timerMenuPrincipal);
		return false;
	}
	
	curItemMenuPrincipal = this;
	
	if(!timerMenuPrincipal)
		timerMenuPrincipal = setTimeout("carrouselChange()", dureeTimerMenuPrincipal);
	else{
		clearTimeout(timerMenuPrincipal);
		timerMenuPrincipal = setTimeout("carrouselChange()", dureeTimerMenuPrincipal);
	}
	// carrouselChange(this);
}


function showUser(obj, url){
	
	var container = YAHOO.util.Dom.getAncestorByTagName(obj,'div');
	var tabChild = YAHOO.util.Dom.getElementsByClassName('popup_medium', 'div', container);
	
	if(!tabChild[0]){
	
		// var pop = new YAHOO.widget.Panel(YAHOO.util.Dom.generateId(), { width:"300px", context:[container, "tl", "tr"], zIndex :90, visible:false , close: false } );
		var pop = new YAHOO.widget.Panel(YAHOO.util.Dom.generateId(), { width:"300px", context:[container, "tl", "bl"], zIndex :90, visible:false , close: false } );
		pop.render(container);
		YAHOO.util.Event.addListener(container, "mouseover", pop.show, pop, true);
		YAHOO.util.Event.addListener(container, "mouseout", pop.hide, pop, true);
		pop.show();
	
		var handleSuccess = function(o){
			if(o.responseText !== undefined){
				pop.setBody(o.responseText);
				pop.render(container);
			}
		}
		
		var handleFailure = function(o){
			if(o.responseText !== undefined){
				// Do something ?
			}
		}
		
		var callback = 
		{
			success:handleSuccess, 
			failure: handleFailure
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		
	}
	
}

/*
function showUser(obj, url){
	
	var container = YAHOO.util.Dom.getAncestorByTagName(obj,'div');
	var tabChild = YAHOO.util.Dom.getElementsByClassName('popup_medium', 'div', container);
	
	if(!tabChild[0]){
		var handleSuccess = function(o){
			if(o.responseText !== undefined){
				var pop = new YAHOO.widget.Panel(YAHOO.util.Dom.generateId(), { width:"300px", context:[container, "tl", "tr"], zIndex :90, visible:false , close: false } );
				pop.setBody(o.responseText);
				pop.render(container);
				YAHOO.util.Event.addListener(container, "mouseover", pop.show, pop, true);
				YAHOO.util.Event.addListener(container, "mouseout", pop.hide, pop, true);
				pop.show();
			}
		}
		
		var handleFailure = function(o){
			if(o.responseText !== undefined){
				// Do something ?
			}
		}
		
		var callback = 
		{
			success:handleSuccess, 
			failure: handleFailure
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', baseURL + url, callback); 
		
	}
	
}
*/

/**
* function prepareUserMask
* Appelée au chargement de la page
* Parse le dom pour préparer tous les calques afin d'en faire des Panel YUI 
*/
function prepareUserMask(id){
	
	var tabMask = YAHOO.util.Dom.getElementsByClassName('popup_medium', 'div', id);
	
	for(mask in tabMask){
		var container = YAHOO.util.Dom.getAncestorByTagName(tabMask[mask],'div');
		var pop = new YAHOO.widget.Panel(tabMask[mask], { width:"300px", visible:false , close: false } );
		pop.render();
		tabMask[mask].style.display = 'block';
		YAHOO.util.Event.addListener(container, "mouseover", pop.show, pop, true);
		YAHOO.util.Event.addListener(container, "mouseout", pop.hide, pop, true);
	}
	
}

/**
* function prepareOnglet
* Appelée au chargement de la page
* Parse le dom pour préparer tous les onglets afin de leur ajouter leurs skins mouseover et mouseout 
*/
function prepareOnglet(id){
	
	var tabOnglet = YAHOO.util.Dom.getElementsByClassName('onglet', 'div', id);
	
	for(onglet in tabOnglet){
		
		var tabLi = YAHOO.util.Dom.getChildren(YAHOO.util.Dom.getChildren(tabOnglet[onglet])[0]);
		
		for(li in tabLi){
			var elLi = tabLi[li];
			YAHOO.util.Event.addListener(elLi, "mouseover", function(){
				var el = new YAHOO.util.Element(this);
				el.addClass('hover');
			}, elLi, true);
			YAHOO.util.Event.addListener(elLi, "mouseout", function(){
				var el = new YAHOO.util.Element(this);
				el.removeClass('hover');
			}, elLi, true);
			YAHOO.util.Event.addListener(elLi, "click", showContent, elLi, true);
		}
		
	}
	
}

function showContent(e){
	
	YAHOO.util.Event.stopEvent(e);
	
	clearTimeout(carrouselTimer); // Arrêt du carrousel automatique
	
	var btn = new YAHOO.util.Element(this);
	var activeClass = '';
	if(btn.hasClass('une')) activeClass = 'une';
	else if(btn.hasClass('question')) activeClass = 'question';
	else if(btn.hasClass('article')) activeClass = 'article'; 
	else if(btn.hasClass('astuce')) activeClass = 'astuce'; 
	else if(btn.hasClass('lettre')) activeClass = 'lettre'; 
	else if(btn.hasClass('lien')) activeClass = 'lien'; 
	
	var containerOnglet = YAHOO.util.Dom.getAncestorByClassName(this,'onglet');
	var ulEl = YAHOO.util.Dom.getAncestorByTagName(this,'ul');
	var tabLiOnglet = YAHOO.util.Dom.getChildren(ulEl);
	
	for (li in tabLiOnglet){
		
		var el = new YAHOO.util.Element(tabLiOnglet[li]);
		
		if(el.hasClass(activeClass))
			el.addClass('actif');
		else
			el.removeClass('actif');
		
	}
	
	var container = YAHOO.util.Dom.getAncestorByClassName(this,'liste_contenu');
	if(!container) container = YAHOO.util.Dom.getAncestorByClassName(this,'centre');
	if(!container) return false;
	var tabOnglet = YAHOO.util.Dom.getElementsByClassName('contenu_onglet', 'div', container);
	
	for (onglet in tabOnglet){
		
		var el = new YAHOO.util.Element(tabOnglet[onglet]);
		
		if(el.hasClass(activeClass))
			el.addClass('actif');
		else
			el.removeClass('actif');
		
	}
	
	return false;
	
}


