//Variable global
var menusate = new Array(); //true = open; otehrwise close
var menusateMain  ;
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 le menu principal
function clickmenuMain(id, lnk, target)
{

	if(adminactionid == id)
	return;


	var sub = document.getElementById("subMain_" + id);
	var subtable = document.getElementById("subtable_" + id);
	var img = document.getElementById("img_" + id);
	

	if(sub != null)
	{
		//activemenu = id;
		if(menusateMain != null && menusateMain != "" )
		{
			fermeMenu(menusateMain);
		}

		imgsrc = imgopen;
		sub.className = "showmenu";
		menusateMain = id;
		changestyle(id,0,true);
		activemenu = id;

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


		writecookieMain(id);

	}

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

	}
}

function closeSubMenu()
{
	var sousMenu = readcookieMain();

	fermeMenu(sousMenu);

}

function fermeMenu(menusateMain)
{
	var subVide = document.getElementById("subMain_" + menusateMain);
	var imgVide = document.getElementById("img_" + menusateMain);
	
	if(subVide != null)
	subVide.className = "hidemenu";
	
	//changestyle(menusateMain,0,false);
	var subVideCell = document.getElementById("cell_" + menusateMain);
	if(subVideCell != null)
	subVideCell.className="menu_0";
	
	var subVideCellTab = document.getElementById("cellTab_" + menusateMain);
	if(subVideCellTab != null)
	subVideCellTab.className="menu_0";


	if(imgVide != null)
	imgVide.src = imgsrc;
}

//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);
	var cell = document.getElementById("cell_" + id);
	var cellTab = document.getElementById("cellTab_" + id);

	if(sub != null && subtable.tBodies[0].rows.length>0)
	{
		var imgsrc;
		if(sub.className == "showmenu")
		{
			imgsrc = imgcloseSub;
			sub.className = "hidemenu";
			menusate[id] = false;
		}
		else
		{
			imgsrc = imgopenSub;
			sub.className = "showmenu";
			menusate[id] = true;
			cell.className = cell.className + "_over";
			if(cellTab != null)
			cellTab.className = cellTab.className + "_over";

		}
		
		if(img!=null && id!=activemenu)
			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);
	}
}

function setactivemenuImg()
{
	var img = document.getElementById("img_" + activemenu);
	if(img!=null)
	   img.src=imgactiveSub;
}


/* 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, lnk)
{
	if(level == 1 && menusate[id] == true)
	{
		//Recup de la cellule
		var cell = document.getElementById("cell_" + id);
		if(cell.className == "menu_1_over")
			return;
	}
	else
	{
		if(isOver)
		{
			setactivemenu(id,level,lnk);
			currentonmenu = id;
			//changestyle(id, level, isOver);
			setTimeout("changestyle(" + id + "," + level + "," + isOver +")" ,10);
		}
		else
		{
			setactivemenu(id,level,lnk);
			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
		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 writecookieMain(id)
{
	
	var expDate = new Date()
	expDate.setTime(expDate.getTime() + expiration)
	document.cookie = "@cookieMain" + "=" + escape(id) + ";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 readcookieMain()
{
	deb = document.cookie.indexOf("@cookieMain=")
	if (deb >= 0)
	{
		deb += "@cookieMain".length + 1
		fin = document.cookie.indexOf(";",deb)
		if (fin < 0)
		fin = document.cookie.length


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

function loadmenustate()
{
	if(document.location.pathname == "" || document.location.pathname == "/")
	{
			var expDate = new Date()
	expDate.setTime(expDate.getTime() + expiration)
	document.cookie = "@cookieMain" + "=;expires=" + expDate.toGMTString() + ";path=/";
	}
	
	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);
	}

	var valeurMain = readcookieMain();
	if(valeurMain != "")
	{
		clickmenuMain(valeurMain);
	}

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


}
