var IE = document.all;
var oldNS = document.layers;
var newNS = !document.all && document.getElementById;
var opera = window.opera;

function buildMenu(ul)
{
	if (ul.childNodes.length==0) return; 
		
	for (var i=0; i<ul.childNodes.length; i++) 
	{
		var itemLI = ul.childNodes[i];
		if (itemLI.nodeName == "LI") 
		{
			itemLI.id = 'liMenu'+i;
			if (itemLI.childNodes.length > 1)
			{
				//Set the events for parent LI's
				itemLI.onmouseover = function () {
					this.isOver = true;
					showSubMenu(this);
				}
				itemLI.onmouseout = function () {
					this.isOver = false;
					removeMenu(this);
				}
			}
			
			//Call recursive function for each UL inside the LI
			for (var j=0; j<itemLI.childNodes.length; j++) 
			{
				var itemUL = itemLI.childNodes[j];
				if (itemUL.nodeName=="UL")
				{
					itemUL.id = 'ulSubMenu';
					itemUL.style.display = 'none';
					buildMenu(itemUL);
				}
			}
		}
	}
}

function showSubMenu(itemLI)
{
	removeMenuByTime();
	if (itemLI.nodeName == "LI") 
	{
		for (var j=0; j<itemLI.childNodes.length; j++) 
		{
			var itemUL = itemLI.childNodes[j];
			if (itemUL.nodeName=="UL") 
			{
				var newDiv = document.createElement('div');
				newDiv.id = 'divSubMenu';
				newDiv.style.position = 'absolute';
				newDiv.style.zIndex = 1000;
				if (IE) newDiv.style.top = itemLI.offsetTop+138;
				if (newNS) newDiv.style.top = itemLI.offsetTop+20;
				newDiv.style.left = itemLI.childNodes[0].offsetLeft;
				newDiv.onmouseover = function () {
					newDiv.isOver = true;
				}
				newDiv.onmouseout = function () {
					newDiv.isOver = false;
					removeSubMenu(this);
				}
				var newIframe = document.createElement('iframe');
				newIframe.id = 'ifrSubMenu';
				newIframe.style.width = '100';
				newIframe.style.height = '1';
				newIframe.frameBorder = '0';
				newIframe.onmouseout = function () {
					//removeSubMenu(this);
				}
		
				newDiv.appendChild(newIframe);
				document.body.appendChild(newDiv);
				
				if (itemLI.innerHTML.indexOf("</A>") == -1) 
				{
					strHTML = itemLI.innerHTML.substring(itemLI.innerHTML.indexOf("</a>")+5, itemLI.innerHTML.length);
				}
				else
				{
					strHTML = itemLI.innerHTML.substring(itemLI.innerHTML.indexOf("</A>")+5, itemLI.innerHTML.length);
				}
				strHTML = strHTML.replace("none", "");
				writeIframeHTML(document.getElementById('ifrSubMenu').contentWindow, strHTML);
			}
		}
	}
}

function removeSubMenu(objIframe)
{
	if (! objIframe.isOver && newNS)
	{
		document.body.removeChild(objIframe);
	}
	if (IE)
	{
		document.body.removeChild(objIframe);
	}
}

function removeMenu()
{
	window.setTimeout(function(){removeMenuByTime()}, 10);
}

function removeMenuByTime()
{
	if (document.getElementById('divSubMenu') != null) 
	{
		if (! document.getElementById('divSubMenu').isOver) 
		{
			document.body.removeChild(document.getElementById('divSubMenu'));
		}
	}
}

function execSubMenu()
{
	ul = document.getElementById('ulSubMenu');
	if (IE)
	{
		for (var i=0; i<ul.childNodes.length; i++) 
		{
			if (parseInt(ul.childNodes[i].childNodes[0].offsetHeight)*ul.childNodes.length > parseInt(window.frameElement.parentNode.offsetHeight))
			{
				window.frameElement.parentNode.style.height = ul.childNodes[i].childNodes[0].offsetHeight*ul.childNodes.length;
				window.frameElement.style.height = ul.childNodes[i].childNodes[0].offsetHeight*ul.childNodes.length;
			}
			if (parseInt(ul.childNodes[i].offsetWidth) > parseInt(window.frameElement.parentNode.offsetWidth))
			{
				window.frameElement.parentNode.style.width = ul.childNodes[i].offsetWidth;
				window.frameElement.style.width = ul.childNodes[i].offsetWidth;
			}
		}
	}
	else
	{
		newWidth = parseInt(window.frameElement.parentNode.offsetWidth);
		for (var i=1; i<ul.childNodes.length; i++) 
		{
			qtd = (ul.childNodes.length-1)/2;
			if (ul.childNodes[i].nodeName == "LI")
			{
				intSize = (ul.childNodes[i].childNodes[0].innerHTML.length*6) + 10;
				if (intSize > newWidth)
				{
					newWidth = intSize;
				}
				if (parseInt(ul.childNodes[i].childNodes[0].offsetHeight)*qtd > parseInt(window.frameElement.parentNode.offsetHeight))
				{
					window.frameElement.parentNode.style.height = ul.childNodes[i].childNodes[0].offsetHeight*qtd;
					window.frameElement.style.height = ul.childNodes[i].childNodes[0].offsetHeight*qtd;
				}
			}
		}
		window.frameElement.parentNode.style.width = newWidth;
		window.frameElement.style.width = newWidth;
	}
}

function writeIframeHTML(objIframeWindow, strHTML)
{
	objIframeWindow.document.writeln('<html>');
	objIframeWindow.document.writeln('<link href="../css/styleMenu.css" type="text/css" rel="stylesheet">');
	objIframeWindow.document.writeln('<script language="javascript" src="../scriptsClient/scriptMenu.js"></script>');
	objIframeWindow.document.writeln('<body class="bodySubMenu"" scroll="no">'+strHTML+'</body>');
	objIframeWindow.document.writeln('<script language="javascript">execSubMenu();</script>');
	objIframeWindow.document.writeln('</html>');
}

