var branch;

function dropdownMenu(navId)
{
	var isie = (typeof document.all != 'undefined' 
				&& typeof window.opera == 'undefined' 
				&& navigator.vendor != 'KDE'
				&& navigator.userAgent.indexOf('MSIE 6') > 0);
	
	if (typeof document.getElementById == 'undefined' 
		|| (navigator.vendor == 'Apple Computer, Inc.' 
		&& typeof window.XMLHttpRequest == 'undefined') 
		|| (isie && typeof document.uniqueID == 'undefined'))
	{
		return;
	}
	
	var tree = document.getElementById(navId);
	if (tree)
	{
	    branch = tree;
		var items = tree.getElementsByTagName('li');
		for (var i = 0; i < items.length; i++)
		{
			dropdownTrigger(tree, items[i], navId, isie);
		}
	}
}


function dropdownTrigger(tree, li, navId, isie)
{
	var opentime, closetime;
	var a = li.getElementsByTagName('a')[0];
	var menu = li.getElementsByTagName('ul').length > 0
				? li.getElementsByTagName('ul')[0] : null;
	var horiz = tree.className.indexOf('horizontal') != -1;
	var issub = li.parentNode.id == navId;
	var liClass = li.className;
	var childAnchorNode = li.getElementsByTagName('a');
					
	attachEventListener(li, 'mouseover', function(e)
	{
		if (unwantedTextEvent()) { return; }
		clearTimeout(closetime);
		    if (menu)
		    {
				if (branch)
				{
					clearMenus(branch);
					branch = null;
					if (isie)
					{
						menu.style.left = moveDropDownIE(li);
						createIframeLayer(menu);
					}
					else
					{
						if (li.id == 'ghQuickLinks')
						{
							menu.style.left = '-25px';
						}
						else
						{
							menu.style.left = '-1px';		
						}
					}
					li.className = liClass + 'Hover';
				}
			}
			else if (li.id == 'ghTools' || li.id == 'ghMyMVITrigger' || li.id == 'ghQuickLinks')
			{
				li.className = liClass + 'Hover';
			}
	},false);
	
	attachEventListener(li, 'mouseout', function(e)
	{
		if (unwantedTextEvent()) { return; }
		console.log("Close Menu");
		var related = typeof e.relatedTarget != 'undefined'
			? e.relatedTarget : e.toElement;
		closetime = window.setTimeout(function()
		{
		    if (!li.contains(related))
		    {
			    clearTimeout(opentime);
			    branch = li;
			
			    a.className = a.className.replace(/ ?rollover/g, '');
			    if (menu)
			    {
					menu.style.left = '-5000px';
					removeIframeLayer(menu);
				}
			}
			li.className = liClass;
		},200);
	}, false);
	
	if (!isie)
	{
		li.contains = function(node)
		{
			if (node == null) { return false; }
			if (node == this) { return true; }
			else { return this.contains(node.parentNode); }
		};
	}
}

function getRoughPosition(ele, dir)
{
	var pos = dir == 'x' ? ele.offsetLeft : ele.offsetTop;
	var tmp = ele.offsetParent;
	
	while (tmp != null)
	{
		pos += dir == 'x' ? tmp.offsetLeft : tmp.offsetTop;
		tmp = tmp.offsetParent;
	}
	
	return pos;
}

function getViewportSize()
{
	var size = [0,0];
	
	if (typeof window.innerWidth != 'undefined')
	{
		size = [
			window.innerWidth,
			window.innerHeight
		];
	}
	else if (typeof document.documentElement != 'undefined'
		&& typeof document.documentElement.clientWidth != 'undefined'
		&& document.documentElement.clientWidth != 0)
	{
		size = [
			document.documentElement.clientWidth,
			document.documentElement.clientHeight
		];
	}
	else
	{
		size = [
			document.getElementsByTagName('body')[0].clientWidth,
			document.getElementsByTagName('body')[0].clientHeight
		];
	}
	
	return size;
}

function createIframeLayer(menu)
{
	var layer = document.createElement('iframe');
	layer.tabIndex = '-1';
	layer.src = 'javascript:false;';
	menu.parentNode.appendChild(layer);
	
	layer.style.left = menu.offsetLeft + 'px';
	layer.style.top = menu.offsetTop + 'px';
	layer.style.width = menu.offsetWidth + 'px';
	layer.style.height = menu.offsetHeight + 'px';
	
	

	// IE script to cover <select> elements with <iframe>s
	for (j=0; j < ieULs.length; j++) {
	var ieMat = document.createElement('iframe');
	if(document.location.protocol == "https:")
		ieMat.src = "//0";
	else
		ieMat.src = "javascript:false";
	ieMat.scrolling = "no";
	ieMat.frameBorder = "0";
	ieMat.style.width = ieULs[j].offsetWidth + "px";
	ieMat.style.height = ieULs[j].offsetHeight + "px";
	ieMat.style.zIndex = "-1";
	ieULs[j].insertBefore(ieMat, ieULs[j].childNodes[0]);
	ieULs[j].style.zIndex = "101";
}
}

function removeIframeLayer(menu)
{
	var layers = menu.parentNode.getElementsByTagName('iframe');
	while (layers.length > 0)
	{
		layers[0].parentNode.removeChild(layers[0]);
	}
}

function clearMenus(root)
{
	var menus = root.getElementsByTagName('ul');
	for (var i = 0; i < menus.length; i++)
	{
		menus[i].style.left = '-100em';
	}
}

function unwantedTextEvent()
{
	return (navigator.vendor == 'Apple Computer, Inc.'
		&& (event.target == event.relatedTarget.parentNode
		|| (event.eventPhase == 3
		&& event.target.parentNode == event.relatedTarget)));
}

function moveDropDownIE(li) {
	var vSize = getViewportSize();
	var moveAmt = 0;
	
	if(vSize[0] > 1000)
	{
		moveAmt = ((vSize[0] - 1000) / 2) + 210 + li.offsetLeft + "px";
	}
	else if (vSize[0] < 1000)
	{
		moveAmt = 211 + li.offsetLeft + "px";
	}	
	return moveAmt;
}



