// ***********************************************************************************************
// Compensation pour le CSS de la pseudo classe :hover non pris en charge par
// les navigateurs non conformes IE5 IE6, en dehors de la balise <a>
// ***********************************************************************************************

// Cette fonction permet de faire apparaitre et disparaitre les sous-menus du menu principal
function navMenuDeroul(navDivIdCss, navNivDebut){
	
	// ---------------------------------------------------------
	// Les variables
	// navDivIdCss : c'est l'identifiant de l'élément <div> contenant la liste de navigation de type <ul> <li>.
	// navNivDebut : Indique a partir de quel niveau de profondeur dans l'arborescence on applique les événements. Débute a 0

	// ---------------------------------------------------------
	// On reprend le bloque <ul> <li> avec l'id du bloc div indiqué dans navDivIdCss
	navigation = document.getElementById(navDivIdCss);

	// On reprend tous les bloques <li> du menu entier
	listeLi = navigation.getElementsByTagName("li");
	
	// A chacun des bloques <li>, nous lui affectons un événement au survole et à la sortie de la souris
	for(var i=0; (li = listeLi[i]); i++){
		var nivNum = Number(li.className.substr(3,1));	
		if(nivNum >= navNivDebut){
			li.onmouseover = liOnmouseover;
			li.onmouseout = liOnmouseout;
			
			var listeBaliseA = li.getElementsByTagName("a");
			for(var j=0; (baliseA = listeBaliseA[j]); j++){
				baliseA.onfocus = aOnfocus;
				baliseA.onblur = aOnblur;
			}

		}
	}
	
}

// ---------------------------------------------------------
// Déroule le sous menu correspondant
function liOnmouseover(){
	appliqueHoverIE(this);
}

// ---------------------------------------------------------
// Enroule le sous menu correspondant
function liOnmouseout(){
	effaceHoverIE(this);
}


// ---------------------------------------------------------
// Test du focus
function aOnfocus(){
	var pointeurElement = this;
	
	// ---------------------------------------------------------
	// On déroule tous les menus parents de l'enfant en focus
	var elementParent = pointeurElement;

	while(elementParent = elementParent.parentNode){
		if(elementParent.tagName == "LI"){
			
			if(elementParent.className.indexOf("niv") > -1){
				elementParent.className = elementParent.className + " deroule";
				if(document.all){
					elementParent.style.zIndex = "999";
				}
				
				var premiereBaliseA = elementParent.childNodes[0];
				if(premiereBaliseA.tagName == "A"){
					premiereBaliseA.className = premiereBaliseA.className + " hoverIE";
				}			

			}
		}
	}
	
}

// ---------------------------------------------------------
// Test du onBlur
function aOnblur(){
	var pointeurElement = this;

	// ---------------------------------------------------------
	// On enoule tous les menus parents de l'enfant en focus
	var elementParent = pointeurElement;

	while(elementParent = elementParent.parentNode){
		if(elementParent.tagName == "LI"){
			
			if(elementParent.className.indexOf("niv") > -1){
				elementParent.className = elementParent.className.replace(/ deroule/, "");
				if(document.all){
					elementParent.style.zIndex = "998";
				}

				var premiereBaliseA = elementParent.childNodes[0];
				if(premiereBaliseA.tagName == "A"){
					premiereBaliseA.className = premiereBaliseA.className.replace(/ hoverIE/, "");
				}
				
			}
		}
	}	
	
}

// ---------------------------------------------------------
// Appliquer hoverIE
function appliqueHoverIE(pointeurElement){
	
	// Au survol du pointeur de souris, nous rendons visible uniquement le sous-menus du menu en cours
	if(document.all){
		pointeurElement.style.zIndex = "999";
	}

	var listeUl = pointeurElement.getElementsByTagName("ul");	
	if(ul = listeUl[0]){
		ul.className = ul.className + " hoverIE";
	}
	
	var premiereBaliseA = pointeurElement.getElementsByTagName("a")[0];
	if(premiereBaliseA){
		premiereBaliseA.className = premiereBaliseA.className + " hoverIE";
	}

}

// ---------------------------------------------------------
// Enleve hoverIE
function effaceHoverIE(pointeurElement){
	
	// Lors de la sortie du pointeur de souris, nous rendons invisible tous les bloques ul
	if(document.all){
		pointeurElement.style.zIndex = "998";
	}

	var listeUl = pointeurElement.getElementsByTagName("ul");	
	for(var i=0; (ul = listeUl[i]); i++){
		ul.className = ul.className.replace(/ hoverIE/, "");
	}
	
	var premiereBaliseA = pointeurElement.getElementsByTagName("a")[0];
	if(premiereBaliseA){
		premiereBaliseA.className = premiereBaliseA.className.replace(/ hoverIE/, "");
	}
	
}