<!--
// Michel Deboom février 2005, menu arborescent expansif sans image
// -------------------------------------------------------------------
// Adaptation KwsPHP par Otocinclus pour Hack menu_deroulant
// $Id: menuD.js 904 2010-05-09 10:27:46Z mike007.devpwsphp $
// -------------------------------------------------------------------

// paramétrage :
// mettre 0 pour désactiver une option :
var mno = 1;				// un seul sous-menu ouvert par niveau
var lien_ouvert = location; // lien ouvert par défaut

if(typeof(ParseScriptParam) == 'function')
{
	var K_ParamSurvol = new ParseScriptParam('menuD');
	K_ParamSurvol.parse();
}

// Déclaration de variables
var idMenu=[];
var menuOuvert;  
var pm;	var sous_menu;
var gf; var niveau;
var On_Mouse_Over;

function initMenu(num)
{
	On_Mouse_Over = ' ';
	if (typeof K_ParamSurvol != "undefined")
	{
		if (K_ParamSurvol.params['onmouse'+num] == 'on')
		On_Mouse_Over = ' onmouseover="af(this,  \''+num+'\');return false" ';
	}
	idMenu[num] = 'menu'+num;
	menuOuvert=[];// tableau des menus ouverts
	var objMenu=document.getElementById(idMenu[num]);
	objMenu.className='menuD';
	var liste=objMenu.getElementsByTagName('li');
	for(var i=0;i<liste.length;i++)
	{
		var L=liste[i];
		var lien=L.firstChild.href;
		if(lien)
		{
			L.className="normal";
			// repère le lien de la page en cours
			if(lien == lien_ouvert)
			{
				pm=L.parentNode;
				L.firstChild.className="lien_page";
			}
		}
		else
		{
			L.className="texte";
		}
		//ajoute un titre cliquable
		if(L.getElementsByTagName('ul')[0]) // sous-menu éxistant
		{
			var titre=L.firstChild.data;
			L.removeChild(L.firstChild);
			L.innerHTML='<a href="#" title="Développer le sous-menu"'+On_Mouse_Over+'onkeydown="af(this, \''+num+'\');return false" onmousedown="af(this,  \''+num+'\', 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[num] && gf<30)
		{
			af(pm.parentNode.firstChild, num);
			pm=pm.parentNode.parentNode
		}
	}
//  ancreMenu();
}

// déplace le menu construit dans l'élément désigné.
function ancreMenu()
{
	ancre=document.getElementById(idAncre);
	if(ancre)
	{
		ancre.appendChild(objMenu);
		ancre.className='ancre_menu';
	}
}

// réduit.
function ef(el)
{
	with (el)
	{
		parentNode.getElementsByTagName('ul')[0].style.display="none";
		title="Développer le sous-menu";
		parentNode.className="reduit";
	}
	return false;
}

// développe un sous-menu.
function af(el, menuid, mulot)
{
	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.style.display=="none")
		{
			sous_menu.style.display="block";
			title="Réduire le sous-menu";
			parentNode.className="ouvert";
		}
		else
		{
			sous_menu.style.display="none";
			title="Développer le sous-menu";parentNode.className="reduit";
		}
	}
	niveau=0;
	// un seul menu ouvert par niveau
	if (sous_menu)
	{
		while(sous_menu.id!=idMenu[menuid] && 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;
	} // DOM 2
	else if(obj.attachEvent)
		obj.attachEvent("on"+evType,fn); // IE 5+
	return false;
}

//-->
