// ################### 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 = 'cascading_menu';		// Id du menu cible
SousMenuWidth = 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, display) {
	
	if(!display)
		display = false;
	
	if(Obj.parentNode.parentNode.id != IdMenu)
		{Masquage = false;}
	else
		{Masquage = true;}
	
	// Masquage de tous les sous-menus
	hideIt(Obj.parentNode.parentNode, display);
	
	// Affichage du sous-menu désiré si il y en a un
	if(Obj.parentNode.getElementsByTagName('ul').length > 0) {
		var SousMenu = Obj.nextSibling.nextSibling;
		if(display)
			SousMenu.style.display='block';
		else
			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, display) {
	if(!display)
		display = false;
	
	var LstSousMenu = document.getElementById(IdMenu).getElementsByTagName("ul");
	
	if(Target == "All") {
		Target = document.getElementById(IdMenu);
		Masquage = true;
	}
	
	// Masquage du sous-menu que l'on quitte
	var lstSousMenu = Target.getElementsByTagName('ul');	
	for(i=0; i<lstSousMenu.length; i++) {
		if(display)
			lstSousMenu[i].style.display='none';
		else
			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;}
}



