/* 
	> Modification 6 Juin 2008
		Transition à Mootools 1.2, gesiton de section active
*/
//Globales
var elementAllume="";
var intTimerVisibilite;
var intTimerVisibiliteSSMenu;
var bolAvecAnim = true;

/*
Si on veut des animations
*/
if (bolAvecAnim == true) {
	window.addEvent("domready",function() {
		initialiserParamsAnimation();
	});
};

/*
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");
	elementsMenu.each(function(element) {
		//Styles directs ici - pour placer un style directement
		element.stylesDirect = new Fx.Tween(element);
		element.stylesDirect.set("opacity",0);
		//Settings de l'effet ici.
		element.effet = new Fx.Morph(element, {duration:200,wait:false,Transition:"Cubic.easeOut"});
	});
};

/*
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);
};

function interrompreTimerVisibiliteSSMenu() {
	clearTimeout(intTimerVisibiliteSSMenu);
};

/*
Fait apparaitre le sous-menu au survol d'un élément de menu
*/
function montrerSousMenu(intIdRecu, caller) 
{
	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 (elementAllume != "" && elementAllume.id != intIdRecu) {
		fermerElementVisible();
	};	
	
	caller_obj = document.getElementById(caller);
	caller_class = document.getElementById(caller).className;
	caller_obj.className = caller_class + " hovered ";


	//Si l'élément demandé existe et qu'il n'est pas déjà allumé, faire apparaître
	if (document.getElementById(intIdRecu) && (document.getElementById(intIdRecu) != elementAllume)) {
		elementAllume=document.getElementById(intIdRecu);
		if (elementAllume.parentNode.className != "actif") {
			elementAllume.parentNode.className="allume";
		};
		//Mettre le zIndex du LI de menu plus haut que les autres
		elementAllume.parentNode.style.zIndex = retournerZIndex(elementAllume.parentNode) + 1;
		elementAllume.style.visibility="visible";
		//Si on veut de l'animation. Placez les valeurs de CSS pour la fin de la transition ici.
		if (bolAvecAnim == true) {
			//elementAllume.effet.removeEvents("onComplete");
			//elementAllume.effet.addEvent("onComplete",function(element) {
				//element.style.visibility="visible";
			//});
			//elementAllume.effet.start({
				//"opacity" : 1
			//});
		};
	};
};

/*
Fait Apparaitre le Sous sous Menu
*/
function ShowSSMenu(SSMenu,caller,SousMenu)
{
	interrompreTimerVisibiliteSSMenu();
	sousmenu = document.getElementById(SousMenu);
	for(var iSmenu=0;iSmenu<sousmenu.childNodes.length;iSmenu++)
	{
		if(sousmenu.childNodes[iSmenu].childNodes.length > 1)
		{
			for(var iSSMenu = 0;iSSMenu<sousmenu.childNodes[iSmenu].childNodes.length;iSSMenu++)
			{
				if(sousmenu.childNodes[iSmenu].childNodes[iSSMenu].id.indexOf("ulSSMenu")==0)
				{
					sousmenu.childNodes[iSmenu].childNodes[iSSMenu].style.visibility="hidden";
				}
			}
		}
	}
		
	caller_obj = document.getElementById(caller);
	caller_class = document.getElementById(caller).className;
	caller_obj.className = caller_class + " hovered ";
	document.getElementById(SSMenu).style.visibility="visible";	
};

function HideSSMenu(SousMenu)
{
	intTimerVisibiliteSSMenu=setTimeout("hideSSMenuApresTimer('"+SousMenu+"')",1000);
};

function hideSSMenuApresTimer(SousMenu)
{
	sousmenu = document.getElementById(SousMenu);
	for(var iSmenu=0;iSmenu<sousmenu.childNodes.length;iSmenu++)
	{
		if(sousmenu.childNodes[iSmenu].childNodes.length > 1)
		{
			for(var iSSMenu = 0;iSSMenu<sousmenu.childNodes[iSmenu].childNodes.length;iSSMenu++)
			{
				if(sousmenu.childNodes[iSmenu].childNodes[iSSMenu].id.indexOf("ulSSMenu")==0)
				{
					sousmenu.childNodes[iSmenu].childNodes[iSSMenu].style.visibility="hidden";
				}
			}
		}
	}	
}
/*
Fait disparaitre le sous-menu
*/
function fermerElementVisible() {
	
	if (typeof(caller_obj) != 'undefined') 
	{
		caller_class = caller_obj.className;
		new_class = caller_class.replace(/hovered/g, "")
		caller_obj.className = new_class;
	}
	
	//Si on a un élément allumé
	if(elementAllume) 
	{
		for(var iSmenu=0;iSmenu<elementAllume.childNodes.length;iSmenu++)
		{
			if(elementAllume.childNodes[iSmenu].childNodes.length > 1)
			{
				for(var iSSMenu = 0;iSSMenu<elementAllume.childNodes[iSmenu].childNodes.length;iSSMenu++)
				{
					if(elementAllume.childNodes[iSmenu].childNodes[iSSMenu].id.indexOf("ulSSMenu")==0)
					{
						elementAllume.childNodes[iSmenu].childNodes[iSSMenu].style.visibility="hidden";
					}
				}
			}
		}

		//Si on veut de l'animation. Placez les valeurs de CSS pour le début de la transition ici.
		//if (bolAvecAnim == true) {
			//elementAllume.effet.removeEvents("onComplete");
			//elementAllume.effet.addEvent("onComplete",function(element) {
				//element.style.visibility="hidden";
			//});
			//elementAllume.effet.start({
				//"opacity" : 0
			//});	
		//}
		//else {
			elementAllume.style.visibility="hidden";
		//};
		//Remettre l'élément au bon zIndex
		elementAllume.parentNode.style.zIndex = elementAllume.parentNode.style.zIndex - 1;
		if (elementAllume.parentNode.className != "actif") 
		{
			elementAllume.parentNode.className="";
		};
		elementAllume="";
	};
};

/*
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;
};