var minuterie = null;
var minuterie2 = null;

var delaiMenu = 750;
var delaiSousMenu = 750;

var m_MenuCourant = null;  //Le menu courant de la page

function attacherEvenement(obj, evt, fct) {
	try {
		var lObjet = obj;
		if(lObjet) {
			if(lObjet.addEventListener) {
				lObjet.addEventListener(evt, fct, false);
			} else if(lObjet.attachEvent) {
				lObjet.attachEvent("on"+ evt, fct);
			} else {
				return false;
			}
		}

	} catch(ex) { return false; }

	return true;
}

function afficherCalque(idCalque) {
	cacherTousLesCalquesSaufUn(idCalque);
	var leCalque = document.getElementById(idCalque);

	if(leCalque) {
		leCalque.style.display = "block";
		document.getElementById(leCalque.menu.idDeclancheur).className = "allume";
	}
}

function afficherSousCalque(idCalque, idSousCalque) {
	cacherTousLesSousCalquesSaufUn(idCalque, idSousCalque);

	var leSousCalque = document.getElementById(idSousCalque);

	if(leSousCalque) {
		leSousCalque.style.display = "block";
	}
}

function cacherCalque(idCalque) {

	var leCalque = document.getElementById(idCalque);
	if(leCalque) {
		cacherTousLesSousCalques(idCalque);
		leCalque.style.display = "none";
		
		//Vérifier si le menu n'est pas le courant et qu'il soit bien actif.
		if(leCalque.menu && ((leDeclancheur = document.getElementById(leCalque.menu.idDeclancheur)).className != "menuPrinc") 
			&& (m_MenuCourant != leCalque.menu.idDeclancheur)) 
		{
			leDeclancheur.className = "menuPrinc";
		}
	}
}

function cacherSousCalque(idCalque, idSousCalque) {
	var leSousCalque = document.getElementById(idSousCalque);
	if(leSousCalque) {
		leSousCalque.style.display = "none";

		var leLien = document.getElementById(leSousCalque.idLien);

		if(leLien) {
			leLien.className = "lien";
		}
	}
}

function cacherTousLesCalques() {
	for(var iMenu=0; iMenu<lesMenus.length; iMenu++) {
		var leMenu = lesMenus[iMenu];
			cacherCalque(leMenu.idCalque);
	}
}

function cacherTousLesSousCalques(idCalque) {
	var leCalque = document.getElementById(idCalque);
	if(leCalque) {
		var lesLiens = leCalque.getElementsByTagName("A");
		
		for(var iLien=0; iLien<lesLiens.length; iLien++) {
			var leLien = lesLiens[iLien];
			if(leLien.parentNode.id == idCalque) {
				cacherSousCalque(idCalque, leLien.id +"_sousMenu");
			}
		}
	}
}

function cacherTousLesCalquesSaufUn(idCalque) {
	for(var iMenu=0; iMenu<lesMenus.length; iMenu++) {
		var leMenu = lesMenus[iMenu];
		if(leMenu.idCalque != idCalque)
			cacherCalque(leMenu.idCalque);
	}
}

function cacherTousLesSousCalquesSaufUn(idCalque, sousCalque) {
	var leCalque = document.getElementById(leCalque);
	if(leCalque) {
		var lesLiens = leCalque.getElementsByTagName("A");
		
		for(var iLien=0; iLien<lesLiens.length; iLien++) {
			var leLien = lesLiens[iLien];
			if(leLien.parentNode.id == idCalque && (leLien.id +"_sousMenu" != lesousCalque) ) {
				cacherSousCalque(idCalque, leLien.id +"_sousMenu");
			}
		}
	}
}

var lesMenus = new Array();

function oMenu(idDeclancheur, idCalque, gauche, haut) {
	this.idDeclancheur = idDeclancheur;
	this.idCalque = idCalque;

	this.gauche = gauche;
	this.haut = haut;

	return this;
}

function ajouterMenu(idDeclancheur, idCalque, gauche, haut) {
	lesMenus[lesMenus.length] = new oMenu(idDeclancheur, idCalque, gauche, haut);
}

function menu_onmouseover() {
	window.clearTimeout(minuterie);

	var obj;
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.menu) {
		afficherCalque(obj.menu.idCalque);
	}
}

function menu_onmouseout() {
	var obj;
	
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.menu) {
		minuterie = window.setTimeout("cacherCalque('"+ obj.menu.idCalque +"')", delaiMenu);
	}
}

function calque_onmouseover() {
	window.clearTimeout(minuterie);
}

function calque_onmouseout() {
	var obj;
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.tagName == "A") obj = obj.parentElement;

	if(obj.menu) {
		minuterie = window.setTimeout("cacherCalque('"+ obj.menu.idCalque +"')", delaiMenu);
	}
}

function lien_onmouseover() {
	window.clearTimeout(minuterie);
	window.clearTimeout(minuterie2);

	var obj;
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.menu) {
		if(obj.sousMenu) {
			cacherTousLesSousCalquesSaufUn(obj.menu.idCalque, obj.sousMenu);
			afficherSousCalque(obj.menu.idCalque, obj.sousMenu);

			obj.className = "lien lienActif";
		} else {
			cacherTousLesSousCalques(obj.parentNode.id);
		}
	}
}

function lien_onmouseout() {
	var obj;
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.menu) {
		minuterie2 = window.setTimeout("cacherSousCalque('"+ obj.menu.idCalque +"', '"+ obj.id +"_sousMenu')", delaiSousMenu);
	}
}

function sousCalque_onmouseover() {
	window.clearTimeout(minuterie2);
}

function sousCalque_onmouseout() {
	var obj;
	if(typeof event != "undefined") obj = event.srcElement;
	else obj = this;

	if(obj.tagName == "a") obj = obj.parentElement;

	if(obj.menu) {
		minuterie2 = window.setTimeout("cacherSousCalque('"+ obj.menu.idCalque +"', '"+ obj.id +"')", delaiSousMenu);
	}
}

function initMenu(idCalqueCourant) {
	m_MenuCourant = idCalqueCourant; //Initialiser le menu courant.
	if(m_MenuCourant != ""){
		document.getElementById(m_MenuCourant).className = "allume";
	}
	
	cacherTousLesCalques();
	
	for(var iMenu=0; iMenu<lesMenus.length; iMenu++) {
		var leMenu = lesMenus[iMenu];
		
		var leDeclancheur = document.getElementById(leMenu.idDeclancheur);
		var leCalque = document.getElementById(leMenu.idCalque);

		leCalque.style.left = leMenu.gauche + leDeclancheur.offsetWidth + "px";
		leCalque.style.top = leMenu.haut + (iMenu*leDeclancheur.offsetHeight) + "px";

		attacherEvenement(leCalque, "mouseover", calque_onmouseover);
		attacherEvenement(leCalque, "mouseout", calque_onmouseout);

		leDeclancheur.menu = leMenu;
		leCalque.menu = leMenu;
		
		attacherEvenement(leDeclancheur, "mouseover", menu_onmouseover);
		attacherEvenement(leDeclancheur, "mouseout", menu_onmouseout);
	}
	attacherEvenement(document.getElementById("menu_gauche_liens"), "mouseover", cacherTousLesCalques);
	attacherEvenement(document.getElementById("menu_gauche_partenaires"), "mouseover", cacherTousLesCalques);
}

function debug(msg) {
	alert("DEBUG: "+ msg);
}

var offset_gauche = 0;
var offset_haut = 288;

ajouterMenu("menu_gauche_chambre", "m_menu2", offset_gauche, offset_haut);
ajouterMenu("menu_gauche_activites", "m_menu3", offset_gauche, offset_haut);
ajouterMenu("menu_gauche_membres", "m_menu4", offset_gauche, offset_haut);
ajouterMenu("menu_gauche_d_membre", "m_menu6", offset_gauche, offset_haut);
ajouterMenu("menu_gauche_tourisme", "m_menu11", offset_gauche, offset_haut);
ajouterMenu("menu_gauche_presse", "m_menu8", offset_gauche, offset_haut);

function test() {
	alert(this.id);
}

//attacherEvenement(window, "load", initMenu);
attacherEvenement(document, "click", cacherTousLesCalques);