//Globales
var elementAllume="";
var intTimerVisibilite;
var bolAvecAnim = false;
var currentOpenedElement = "";
var currentOpenedElementTemp = "";
var menuopen = false;


/*
Initialise les paramètre pour les animations.
Utilise les sélecteur et fonctions de Mootools.
*/
function initialiserParamsAnimation() 
{
	var elementsMenu = $("ul#menuhaut li ul", "ul#menugauche li ul");
	element = elementsMenu
	elementsMenu.each(function() {element = this;});
};

/*
Timer de disparition du menu
*/
function lancerTimerVisibilite() 
{
	intTimerVisibilite=setTimeout("fermerElementVisible()",1000);
};

/*
Arrête le timer quand on passe rapidement d'un menu à l'autre.
*/
function interrompreTimerVisibilite() 
{
	clearTimeout(intTimerVisibilite);
};

/*
Fait apparaitre le sous-menu au survol d'un élément de menu
*/
function montrerSousMenu(intIdRecu) 
{
	var check = document.getElementById("menugauche").firstChild.className;
	if(menuopen == false && check != "actif"){
		interrompreTimerVisibilite();
		//Si on nous ne nous envoie pas le même ID et qu'il y a déjà un élément de menu ouvert, fermer ce menu.
		if (currentOpenedElement != "" && currentOpenedElement != intIdRecu) {
			fermerElementVisible();
		};
		//Si l'élément demandé existe et qu'il n'est pas déjà allumé, faire apparaître
		if (document.getElementById(intIdRecu) && ($("#"+intIdRecu) != elementAllume)) {
			elementAllume=$("#"+intIdRecu);
			currentOpenedElement = intIdRecu;
			if (elementAllume[0].parentNode.className != "actif") {
				elementAllume[0].parentNode.className="allume";
			} else {
				elementAllume[0].className = "allumeactif"
			};
			//Mettre le zIndex du LI de menu plus haut que les autres
			elementAllume[0].parentNode.style.zIndex = retournerZIndex(elementAllume[0].parentNode) + 100;
			elementAllume[0].style.display="block";
			//Si on veut de l'animation. Placez les valeurs de CSS pour la fin de la transition ici.
			if (bolAvecAnim == true) {
				elementAllume[0].style.visibility="visible";
			};
		};
		menuopen = true;
	}else{
		elementAllume=$("#"+intIdRecu);
		elementAllume[0].style.display="none";
		elementAllume[0].parentNode.className="";
		menuopen = false;
	}
};

/*
Fait disparaitre le sous-menu
*/
function fermerElementVisible() 
{
	//Si on a un élément allumé
	if(currentOpenedElement != "") 
	{
		//Si on veut de l'animation. Placez les valeurs de CSS pour le début de la transition ici.
		if (bolAvecAnim == true) 
		{
			elementAllume[0].style.visibility="hidden";
		}
		else 
		{
			elementAllume[0].style.display="none";
		};
		//Remettre l'élément au bon zIndex
		var zindex = retournerZIndex(elementAllume[0].parentNode);
		if(isNaN(zindex)) {
			zindex=5;
		}
		elementAllume[0].parentNode.style.zIndex = zindex - 1;
		if (elementAllume[0].parentNode.className != "actif") {
			elementAllume[0].parentNode.className="";
		} else {
			
		};
		currentOpenedElement="";
	};
};

/*
Retourne le z-index d'un element
Source : http://www.quirksmode.org/dom/getstyles.html
*/
function retournerZIndex(element) 
{
	if (element.currentStyle) {
		var intZIndex = parseInt(element.currentStyle["zIndex"]);
	}
	else if (window.getComputedStyle) {
		var intZIndex = parseInt(document.defaultView.getComputedStyle(element,null).getPropertyValue("z-index"));
	};
	return intZIndex;
};
