m_nCloseID = 0;

function navTimeout(sIdUL, nCloseID)
{
	node = document.getElementById(sIdUL);
	if ((node.menuStatus == "waiting") && (node.nCloseID == nCloseID))
	{	
		node.style.display = "none";
		node.menuStatus = "close";
	}
}

function navClose(OLI)
{
	if (OLI.className.indexOf("pulsanteRoot") < 0)
		OLI.style.backgroundColor = '#F6E6E6';
		
	for( var x = 0; OLI.childNodes[x]; x++ )
		if( OLI.childNodes[x].nodeName == 'UL' ) 
		{
			var node = OLI.childNodes[x]; 
			node.style.display = 'block';
			node.menuStatus = "waiting";

			m_nCloseID++;
			node.nCloseID = m_nCloseID;	
			setTimeout("navTimeout('" + node.id + "', " + m_nCloseID + ")", 250); 
		}
}

function navOpen(OLI)
{
	if (OLI.className.indexOf("pulsanteRoot") < 0)
		OLI.style.backgroundColor = '#F4C3BE';
	
	for( var x = 0; OLI.childNodes[x]; x++ )
		if( OLI.childNodes[x].nodeName == 'UL' ) 
		{
			var node = OLI.childNodes[x]; 

			node.style.display = "block";
			node.style.display = "none";			// Per correggere un bug di IE !!SIC!!
			node.style.display = "block";
			node.menuStatus = "open";
		}
}

function assignBehaviour(OLIElement, sIdUL)
{
	OLIElement.onmouseover = function() { navOpen(this) };
	OLIElement.onmouseout = function() { navClose(this) };
	
	for (var aB_j = 0; aB_j < OLIElement.childNodes.length; aB_j++) 
	{
		var node = OLIElement.childNodes[aB_j];
		if (node.nodeName == "UL") 
		{
			node.style.display = "none";
			if (!node.id) node.id = sIdUL;
			for (var aB_i = 0; aB_i < node.childNodes.length; aB_i++) 
				if (node.childNodes[aB_i].nodeName == "LI") 
					assignBehaviour(node.childNodes[aB_i], sIdUL + "_" + aB_i);
		}
	}
}

function startList() 
{
	if (document.getElementById) 
	{
		navRoot = document.getElementById("idNav");
		for (var i = 0; i < navRoot.childNodes.length; i++) 
		{
			var node = navRoot.childNodes[i];
			if (node.nodeName == "LI") 
				assignBehaviour(node, "UL" + i);
		}
	}
}

if (window.addEventListener) window.addEventListener("load", startList, false);
else if (window.attachEvent) window.attachEvent("onload", startList);

