// Timer pour masquer le menu seulement au bout d'un certain délai
// menu dhtml par changement de nom de classe (on et off)

var compteurMenu = new Array();
var menuItem = new Array();

function showLayer(nom) {
	var item=document.getElementById(nom);
	if (item)
		item.className='on';
	menuItem[nom]=1;	
}

function hideLayer(nom) {
	var item=document.getElementById(nom);
	if (item)
		item.className='off';
	menuItem[nom]=0;
}

function hideAllLayersMenu(nom) {
	var tab = nom.split('_');
	var base = tab[0];
	for (var item in menuItem)
	{
		tab = item.split('_');
		var base_current = tab[0];
		if(base == base_current)
			hideLayer(item);
	}
}

function getParentMenu(nom) {
	var tab = nom.split('_');
	var result = tab[0];

	for (var i=1; i < tab.length - 1; i++)
		result += '_' + tab[i];

	return result;
}

function hideAllLayersMenuExcept(nom) {
	var tab = nom.split('_');
	var base = tab[0];

	menuItem[nom] = 0;
	var nom_parent = getParentMenu(nom);
	while (nom_parent != nom)
	{
		nom = nom_parent;
		menuItem[nom] = 0;
		nom_parent = getParentMenu(nom);
	}

	for (var item in menuItem)
	{
	tab = item.split('_');
	var base_current = tab[0];
	if (base == base_current)
		hideLayer(item);
	}
}

function menu_on(nom) {
	var tab = nom.split('_');
    	var base_current = tab[0];
	clearTimeout(compteurMenu[base_current]);

	hideAllLayersMenuExcept(nom);
	showLayer(nom);

	var debug_menu = document.getElementById('debug_menu');
	if( debug_menu )
	{
		debug_menu.innerHTML += 'menu_on(\''+nom+'\')<br>';
	}

	var nom_parent = getParentMenu(nom);
	while (nom_parent != nom)
	{
		nom = nom_parent;
		showLayer(nom);
		nom_parent = getParentMenu(nom);
	}
}

function menu_off(nom) {
	var tab = nom.split('_');
    	var base_current = tab[0];
	compteurMenu[base_current]=setTimeout("hideAllLayersMenu('"+base_current+"')",300);

	var debug_menu = document.getElementById('debug_menu');
	if( debug_menu )
	{
		debug_menu.innerHTML += 'menu_off(\''+nom+'\')<br>';
	}
}