// Michel Deboom février 2005, menu arborescent expansif sans image 
// paramétrage :
idMenu = 'menu_collec';
idAncre = 'ancre_menu';
// mettre 0 pour désactiver une option :
mno = 1; // un seul sous-menu ouvert par niveau
// lien ouvert par défaut
	lien_ouvert = 'gamme_'+document.location.hash.substr(1);
function initMenu() {
	var pm;
	menuOuvert = [];
	// tableau des menus ouverts
	objMenu = document.getElementById(idMenu);
	objMenu.className = 'menu_collection';
	listeDeLi = document.getElementById(idMenu).getElementsByTagName("li");
	for (i=0; i<listeDeLi.length; i++) {
		L = listeDeLi[i];
		lien = L.firstChild.href;
		if(lien_ouvert != "" && lien_ouvert != "gamme_")
		  a_lien_ouvert = document.getElementById(lien_ouvert).firstChild.href;
		else
		a_lien_ouvert = "";
		if (lien) {
			L.className = "normal";
			// repère le lien de la page en cours
			
			if (lien == a_lien_ouvert) {
				pm = L.parentNode;
				L.firstChild.className = "lien_page";
			}
		}
		//ajoute un titre cliquable 
		if (L.getElementsByTagName('ul')[0]) {
			// sous-menu éxistant
			titre = L.firstChild.data;
			L.removeChild(L.firstChild);
			L.innerHTML = '<a href="#" onkeydown="af(this)" onmousedown="af(this,1);return false">'+titre+'<\/a>'+L.innerHTML;
			ef(L.firstChild);
			// réduit les sous_menus
		}
	}
	// montre le lien de la page et ouvre les menus parents
	gf = 0;
	if (pm) {
		while (pm.id != idMenu && gf<30) {
			af(pm.parentNode.firstChild);
			pm = pm.parentNode.parentNode;
		}
	}
	ancreMenu();
}
function ancreMenu() {
	// déplace le menu construit dans l'élément désigné.
	ancre = document.getElementById(idAncre);
	if (ancre) {
		ancre.appendChild(objMenu);
		ancre.className = 'ancre_menu';
	}
}
function ef(el) {
	// réduit.
	with (el) {
		parentNode.getElementsByTagName('ul')[0].style.display = "none";
		// title = "développer";
		parentNode.className = "reduit";
	}
	return false;
}
function af(el, mulot) {
	// développe un sous-menu .
	if (mulot) {
		el.removeAttribute('href');
	}
	// supprime le lien prévu pour la navigation clavier. 
	with (el) {
		sous_menu = parentNode.getElementsByTagName('ul')[0];
		if(sous_menu)
		{
			if (sous_menu.style.display == "none" ) {
				sous_menu.style.display = "block";
				// title = "réduire";
				parentNode.className = "ouvert";
			} else {
				sous_menu.style.display = "none";
				// title = "développer";
				parentNode.className = "reduit";
			}
		}
	}
	niveau = 0;
	// un seul menu ouvert par niveau
	while (sous_menu.id != idMenu && niveau<30) {
		niveau++;
		sous_menu = sous_menu.parentNode.parentNode;
	}
	if (menuOuvert[niveau] && el != menuOuvert[niveau] && mno) {
		ef(menuOuvert[niveau]);
	}
	menuOuvert[niveau] = el;
}
// Fonction pour ajouter ou enlever un événement sans écraser l'éxistant. 
function addEvent(obj, evType, fn, capt) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, capt);
		return true;
	} else if (obj.attachEvent) {
		obj.attachEvent("on"+evType, fn);
	} else {
		return false;
	}
	// IE 5+ 
}
addEvent(window, "load", initMenu);
