var aMenu = new Array() ;
var aMenuAjax = new Array() ;
var oOldClassName ;


// *************************************

function BuildAllMenusAdmin(paMenu)
{
	// Pour toutes les zones, construit le menu correspondant
	for (sIdZone in paMenu)
		BuildContextMenu(sIdZone, paMenu) ;
}

// Construit le menu
function BuildContextMenu(sIdZone, paMenu)
{
	var oZone = document.getElementById(sIdZone) ;
	
	var sHtmlMenu = '<table class="tblContextMenuTitle" cellspacing=0 cellpadding="0" ><tr><td style="width:5px;"></td><td>' + oZone.lang + '</td></tr></table><table class="tblContextMenu" cellspacing=0 cellpadding="0" ><tr><td><table id="idTb' + sIdZone + '"  cellspacing=0 cellpadding=0><tbody><tr id="trid">' ;
	
	// construits toutes les options
	for (idx in paMenu[sIdZone] )
		if (idx != "fixed")
			sHtmlMenu += '<td id="idTd' +sIdZone + idx + '" class="stdContextMenu">  <a href="' + paMenu[sIdZone][idx]["url"] + '"><div class="stdTextContextMenu" id="idTd' + sIdZone + idx + 'Div" >' + paMenu[sIdZone][idx]["txt"]+ '</div></a></td><td class="stdContextMenuSep">&nbsp; </td>' ;

	sHtmlMenu += '</tr></tbody></table></tr></table>' ;
	
	// récupère la largeur du div d'abord invisible
	var oDivContextMenu = document.getElementById(sIdZone + 'ContextMenu') ;

	// petite différence d'interprétation des tailles entre IE et FF 

	var CP_isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;

	if (CP_isIE)
		oDivContextMenu.style.width =  oZone.offsetWidth *99.1/100 ;
	else
		oDivContextMenu.style.width =  oZone.offsetWidth + 1 ;
	
	// le menu est d'abord invisible
	var oDivContextMenu = document.getElementById(sIdZone + 'ContextMenu') ;

	if (paMenu[sIdZone]["fixed"])
	{
		oDivContextMenu.style.display = "" ;
		oDivContextMenu.className ="zoneMenuFixed" ;
		oZone.className = "stdZoneFixed" ;
	}
	else
	{
		
		paMenu[sIdZone]["fixed"] = false ;
		oDivContextMenu.style.display = "none" ;
		oDivContextMenu.className ="zoneMenu" ;
		oZone.className = "stdZone" ;
		addListenerAdminZone(oZone, "mouseover", true) ;
		addListenerAdminZone(oZone, "mouseout", false) ;
	}
	
	oDivContextMenu.innerHTML =sHtmlMenu ;
	
	// ajoute les Listener
	for (idx in paMenu[sIdZone] )
		if (idx != "fixed")
		{
			
			var oTd = document.getElementById("idTd" +sIdZone + idx )  ;
			addListenerAdminMenu(oTd, "mouseover", true) ;
			addListenerAdminMenu(oTd, "mouseout", false) ;
		}
}


function addListenerAdminZone(pObj, pListener, pbHilight)
{
	if (pbHilight)
	{
		if(pObj.attachEvent)
		pObj.attachEvent('on'+pListener, function(){ doHilightZone(pObj); });
		else if(pObj.addEventListener)
		pObj.addEventListener(pListener,  function(){doHilightZone(pObj);}, true);
	}
	else
	{
		if(pObj.attachEvent)
		pObj.attachEvent('on'+pListener, function(){ doNormalZone(pObj); });

		else if(pObj.addEventListener)
		pObj.addEventListener(pListener,  function(){doNormalZone(pObj);}, true);

	}
}

function addListenerAdminMenu(pObj, pListener, pbHilight)
{
	if (pbHilight)
	{
		if(pObj.attachEvent)
		pObj.attachEvent('on'+pListener, function(){ doHilightMenu(pObj); });
		else if(pObj.addEventListener)
		pObj.addEventListener(pListener,  function(){doHilightMenu(pObj);}, true);
	}
	else
	{
		if(pObj.attachEvent)
		pObj.attachEvent('on'+pListener, function(){ doNormalMenu(pObj); });

		else if(pObj.addEventListener)
		pObj.addEventListener(pListener,  function(){doNormalMenu(pObj);}, true);

	}
}

// Met en évidence une zone
function doHilightZone(obj)
{
	myAMenu = aMenu;
	if(aMenuAjax[obj.id])
		myAMenu = aMenuAjax;
	
	if(myAMenu[obj.id]["fixed"])
		return ;

	oOldClassName = obj.className ;
	obj.className="hilightZone" ;
	// et affiche le menu
	DisplayContextMenu(obj);

}


// Met en normal une zone
function doNormalZone(obj)
{
	myAMenu = aMenu;
	if(aMenuAjax[obj.id])
		myAMenu = aMenuAjax;
	
	if (myAMenu[obj.id]["fixed"])
		return ;

		//Empêche le retour au mode normal pour les div d'administration
    //lorsqu'on est sur le drag & drop
	if(isOnDragGlobal==true)
		return;
		
	obj.className = oOldClassName ;
	// et cache le menu
	HideContextMenu(document.getElementById(obj.id + 'ContextMenu'));
}


// affiche le menu par rapport à la zone de obj
function  DisplayContextMenu( pObj)
{
	var oMenu = document.getElementById(pObj.id + 'ContextMenu') ;
	oMenu.style.display = "";
}

function HideContextMenu(pObj)
{
	pObj.style.display = "none" ;
}

// Met en évidence une option du ContextMenu
function doHilightMenu(obj)
{
	var oDiv = document.getElementById(obj.id + "Div") ;
	obj.className = "hilightContextMenu" ;
	oDiv.className = "hilightTextContextMenu" ;
}

// Met en normal une option du ContextMenu
function doNormalMenu(obj)
{
	var oDiv = document.getElementById(obj.id + "Div") ;
	obj.className = "stdContextMenu" ;
	oDiv.className = "stdTextContextMenu" ;
}
