// ################### Copyright ################# //
// # Cascading Menu v 1.0
// @société : Comm'Net
// @auteur  : Samuel Le Morvan [lemorvan@commnet.fr]
// @version 1.1
/*
 * + v 1.0
 * |_ Création de la fonctionnalité
 *
 * + v 1.1
 * |_ Correction du bug d'affichage (disparition au clic)
 *
 *
 *
 *
 */
// ################### ######### ################# //


// # Configuration
IdMenu = 'listemenu';		// Id du menu cible
SousMenuWidth = 245; 			// 145 Largeur du sousmenu + marges en px
SousMenuHeight = 18; 			// Hauteur d'une celulle (<li>) sousmenu en px
var Masquage = true;
	
// # Gestion de l'affichage des sous menus
function showIt(Obj) {
	
	if(Obj.parentNode.parentNode.id != IdMenu)
		{Masquage = false;}
	else
		{Masquage = true;}
	
	// Masquage de tous les sous-menus
	hideIt(Obj.parentNode.parentNode);
	
	// Affichage du sous-menu désiré si il y en a un
	if(Obj.parentNode.getElementsByTagName('ul').length > 0)
		{
		var SousMenu = Obj.nextSibling.nextSibling;
		SousMenu.style.visibility='visible';
		// Si le moteur du navigateur est IE on corrige ses bugs
		if( (navigator.userAgent.indexOf('Opera 5') != -1) || (navigator.userAgent.indexOf('MSIE') != -1) )
		 	{
			SousMenu.style.width = (eval(eval(SousMenu.getElementsByTagName('ul').length+1)*SousMenuWidth)+5)+'px';
			SousMenu.style.height = (eval(eval(SousMenu.getElementsByTagName('li').length*SousMenuHeight)+5))+'px';
			
			// Agrandissement des <li>
			SousMenuLi = Obj.nextSibling.nextSibling.getElementsByTagName('li');
			for(i=0; i<SousMenuLi.length; i++)
				{SousMenuLi[i].style.width = SousMenu.style.width;}
			}
		}
}

// # Gestion de masquage des sous menus
function hideIt(Target) {
	
	var LstSousMenu = document.getElementById(IdMenu).getElementsByTagName("ul");
	
	if(Target == "All")	
		{Target = document.getElementById(IdMenu);Masquage = true}
	
	// Masquage du sous-menu que l'on quitte
	if(Masquage == true)
		{
		var lstSousMenu = Target.getElementsByTagName('ul');	
		for(i=0; i<lstSousMenu.length; i++)
			{lstSousMenu[i].style.visibility = 'hidden';}
		affichSelects('visible');
		}
	
}

// # Affichage / Masquage des éléments <select>
function affichSelects(Arg) {
	Selects = document.getElementsByTagName('select');
	for(i=0; i<Selects.length; i++)
		{Selects[i].style.visibility = Arg;}
}