/*
	ED - 12.07.2006
	
	Script pour gerer les menus deroulants structures comme des listes <ul> imbriquees.
	Les listes <ul> parentes (ou le menu de plus haut niveau) doient avoir une classe dont
	la valeur est definie ici par la variable : classeMenuDeroulant
	
	initMenus() parcour le document a la recherche des listes <ul> possedant cette classe
	et attache des gestionnaires d evenements aux <li> qui contiennent des sous menus
	pour les faire apparaitre et disparaitre au survol
	
	Attention: la fonction addEvent() definie dans defaut.js est requise !

*/
var classeMenuDeroulant = /menu_deroulant/;

/*
	Attache les gestionnaires d evenements aux lis qui ont des sous menus
*/
var hauteurmax = "230";

function initMenus() {
	var menu, menus, lis, liSousMenus;
	if(document.getElementById && document.getElementsByTagName){
			menus = document.getElementsByTagName("ul");
			if(menus.length > 0 ){
				for(var j=0; j<menus.length; j++){
					if(menus[j].className.match(classeMenuDeroulant)){
						menu = menus[j];
						lis = menu.getElementsByTagName("li");
						for(var i=0; i<lis.length; i++){
							liSousMenus = lis[i].getElementsByTagName("ul");
							if(liSousMenus.length > 0){
								// a un sous-menu
								// on calcule la hauteur Max
								var RefDiv = lis[i].getElementsByTagName("ul")[0];
								// on calcule la largeur des menus deroulants de niveau 2 pour IE 6 && IE 7
								if ((navigator.userAgent.search("MSIE 6.")>-1) || (navigator.userAgent.search("MSIE 7.")>-1)){
									//RefDiv.style.width = (lis[i].offsetWidth -30) + "px";
								}
								var h_style = "0";
								if (document.defaultView)
									h_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height").replace("px", "", "gi");
								else
									h_style = Math.max(RefDiv.scrollHeight,RefDiv.offsetHeight);
								//alert("Init : h_style:"+h_style);
								hauteurmax = Math.max(hauteurmax,h_style);

								// on ajoute l'evenement
								addEvent(lis[i],"mouseover", montrePremierSousMenu);
								addEvent(lis[i],"focus", montrePremierSousMenu);
								addEvent(lis[i],"mouseout", cachePremierSousMenu);	
								addEvent(lis[i],"blur", cachePremierSousMenu);	
							}
						}
					} 
				}
			}
	}
}


/*
	Montre et cache les sous menus
*/
function montrePremierSousMenu(){
	//this.getElementsByTagName("ul")[0].style.display = "block";
	this.getElementsByTagName("ul")[0].style.visibility = "visible";

/*	var RefDiv = this.getElementsByTagName("ul")[0];
	var h_style = "0";
	if (document.defaultView)
	{
		h_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height").replace("px", "", "gi");
	}
	else {
		h_style = Math.max(RefDiv.scrollHeight,RefDiv.offsetHeight);
	}
	
	hauteurmax = Math.max(hauteurmax,h_style);
*/
	//alert ("hauteurmax :"+hauteurmax);

	/*this.style.backgroundColor = "#EDF4F9";*/
/*	PB fait aussi disparaitre le menu de niveau 1...
*/	fondopaque = document.getElementById("menu_decoration");
	fondopaque.style.display = "block";
	fondopaque.style.height = hauteurmax+"px";
//	var h_style = this.getElementsByTagName("ul")[0].style.offsetHeight;
//	var RefDiv = document.getElementById("d1");

 /*OK Firefox 
	var RefDiv = this.getElementsByTagName("ul")[0];
	var h_style = 
document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height");
	//alert ("FIREFOX h_style: "+h_style);
	fondopaque.style.height = h_style;
*/
/* OK IE 7 
	var h_style = Math.max(RefDiv.scrollHeight,RefDiv.offsetHeight)
*/
	//var h_style =  document.defaultView.getComputedStyle(RefDiv, null).width;
	// var h_style = RefDiv.style.pixelHeight;

	//fondopaque.style.height = h_style;

//	alert("hauteur du ul : "+h_style);
//	alert("hauteur du ul : "+this.getElementsByTagName("ul")[0].style.height);

}

function cachePremierSousMenu(){
//	this.getElementsByTagName("ul")[0].style.display = "none";
	this.getElementsByTagName("ul")[0].style.visibility = "hidden";
	/*this.style.backgroundColor = "#fff";*/
/**/	fondopaque = document.getElementById("menu_decoration");
	fondopaque.style.display = "none"; 
}

/*
	Appelle initMenus() au chargement de la page
*/
addEvent(window,"load", initMenus);

