 //Variable global
 var menusate = new Array(); //true = open; otehrwise close
 var activemenu;
 var currentonmenu;
 var adminactionid;
 
 //Chargement du menu depuis le cookies
 loadmenustate();

//Evite d'ouvir ou fermer un menu sur click des boutons d'administration
 function avoidclick(id)
{
	adminactionid = id;
}

//Fonction click sur un menu
function clickmenu(id, lnk, target)
{
	if(adminactionid == id)
		return;
		
	var sub = document.getElementById("sub_" + id);
    var subtable = document.getElementById("subtable_" + id);
    var img = document.getElementById("img_" + id);
  
   if(sub != null && subtable.tBodies[0].rows.length>0)
    {
    	var imgsrc;
        if(sub.className == "showmenu")
        {
           imgsrc = imgclose;
           sub.className = "hidemenu";
           menusate[id] = false;
        }
        else
        {
           imgsrc = imgopen;
           sub.className = "showmenu";
           menusate[id] = true;
        }

         
        if(img != null)
           img.src = imgsrc;

        //Ecriture du coockies
        writecookie();
    }
  
    //Traite le lien
    if(lnk && lnk != "")
    {
    	if(target == "_blank")
       		window.open(lnk);
    	else
       		window.location.href = lnk;
       		
    }
}


function setactivemenu(id, level, lnk)
{
	var currentlocation = document.location.pathname + document.location.search;
	if(lnk == currentlocation)
	{
		activemenu = id;
		setmenustyle(id,level,true);
	}
}


/* VERSION OK
function setmenustyle(id, level, isOver)
{
	var cell = document.getElementById("cell_" + id)
	if(!cell)
		return;

	var style = "menu_" + level;
    if(isOver || activemenu == id)
        style += "_over";
        
    cell.className = style;
   	cell.childNodes[0].className = style;
}*/

//Version avec un timeout pour éviter le flickering
function setmenustyle(id, level, isOver)
{
	if(isOver)
	{
		currentonmenu = id;
		//changestyle(id, level, isOver);
		setTimeout("changestyle(" + id + "," + level + "," + isOver +")" ,10);
	}
	else
	{
		currentonmenu = "";
		setTimeout("changestyle(" + id + "," + level + "," + isOver +")" ,10);
	}
}

//Fonction qui change le style, appeler dans le timeout
function changestyle(id, level, isOver)
{
	if(currentonmenu == id && !isOver)
		return;
		
	var cell = document.getElementById("cell_" + id)
	if(!cell)
		return;

	var style = "menu_" + level;
    if(isOver || activemenu == id)
        style += "_over";
        
    cell.className = style;
    
    //Affectation du style aux enfants
    for(i=0;i<cell.childNodes.length;i++)
    {
    	if(cell.childNodes[i].className != undefined)
    		if(cell.childNodes[i].className != "menu_1in") //Teste particulier pour sind
    			cell.childNodes[i].className = style;
    }
}


function writecookie()
{
    var valeur = "";
    for(i in menusate)
       if(menusate[i] == true)
         valeur += i + ";";

    var expDate = new Date()
    expDate.setTime(expDate.getTime() + expiration)
    document.cookie = cookiename + "=" + escape(valeur) + ";expires=" + expDate.toGMTString()+ ";path=/";
}

function readcookie()
{
    deb = document.cookie.indexOf(cookiename + "=")
    if (deb >= 0)
    {
       deb += cookiename.length + 1
       fin = document.cookie.indexOf(";",deb)
       if (fin < 0)
          fin = document.cookie.length

       return unescape(document.cookie.substring(deb,fin))
    }
    return "";
}

function loadmenustate()
{
    var valeur = readcookie();
    if(valeur == "")
       return;

    var state = valeur.split(";")
    for(i=0;i<state.length;i++)
    {
       if(state[i] != "")
         menusate[state[i]] = true;
    }
}

function ShowMenu()
{
	//Ouvre les menus noté comme ouvert dans le cookies
	for(id in menusate)
      clickmenu(id);

    //Met le menu visible  
    var menu = document.getElementById("mainmenutable");
    menu.style.display = "";
}

