//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//		Funciones de menú
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//		Variables
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var arrTimeouts=new Array(10);	//más de 10 niveles es imposible
var curNodes=new Array(10);
var TIME_OUT_MSECS=1000;	//un segundo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~








//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//		muestra el menu sobre el que está el ratón
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function displayMenu(idNode, altText, level)
{
	//si hay un nodo en el nivel actual mostrándose, lo esconde si no es este
	if(curNodes!=null && curNodes.length>=(level-1) && curNodes[level]!=null && curNodes[level]!=idNode)
	{
		hideMenuNow(curNodes[level], level);
	}
	else
	{
		if(curNodes!=null && curNodes.length>=(level-1) && curNodes[level]==idNode)
		{
			//pero si es el actual, cancela el timeout si existe
			if(arrTimeouts[level]!=null)
			{
				window.clearTimeout(arrTimeouts[level]);
				arrTimeouts[level]=null;
			}
		}
	}

	var objMenu=document.getElementById("menu_"+idNode);
	if(objMenu)
	{
		objMenu.style.display="block";
	}

	curNodes[level]=idNode;
	window.status=altText;
	return true;
}



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//		esconde el menu
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function hideMenu(idNode, level)
{
	arrTimeouts[level]=window.setTimeout("hideMenuNow('"+idNode+"', "+level+")", TIME_OUT_MSECS);
	window.status="";
	return true;
}


function hideMenuNow(idNode, level)
{
	var objMenu=document.getElementById("menu_"+idNode);
	if(objMenu)
	{
		objMenu.style.display="none";
	}

	window.clearTimeout(arrTimeouts[level]);
	curNodes[level]=null;
	arrTimeouts[level]=null;
}