// COPIED FROM UAB HEALTH WEBSITE TO CREATE DROPDOWN BOXES UNDER Careers, Healthcare Services, Hospitals & Clinics, & Health Library

/*
* Configure the dropdown menus
*/
tilt.attachEvent(document, "contentreceived", function()
{
	var element = document.getElementById("Dropdown");
	if (element)
	{
		element.menuControls = InitializeMenuControls();
		SetLoadingTimer();
	}

	function InitializeMenuControls()
	{
		var controls = [ ];
		var oItems = [ ];
		for (var i = 0; i < element.childNodes.length; i++) {
			if (element.childNodes[i].nodeType !== 1) { continue; }
			if (element.childNodes[i].nodeName.toLowerCase() != 'li') { continue; }
			oItems.push(element.childNodes[i]);
		}
		var i = -1;
		var li = oItems[++i];
		var count = 0;
		while(li)
		{
			var pageId = ParsePageId();
			if (pageId)
			{
				if (count > 0)
				{
					controls[count - 1].currentChild = pageId;
				}
				controls[count++] = new MenuControl(li, pageId);
			}
			li = oItems[++i];
		}
		return controls;
		
		function ParsePageId() {
			var aAnchor = li.getElementsByTagName('a')[0];
			if (!aAnchor) { return null; }
			var href = aAnchor.getAttribute('href');
			if (!href) { return null; }
			var sQuery = GetQueryString();
			// Had to be changed.  The GetQueryString is set to have the ? in the href.  If it doesn't exist, any root Menu Items will not expand for the children
			// Menu Items to be displayed.  11/27/2007 Charles
	//		return (sQuery.pid ? sQuery.pid : null);
			return (sQuery.pid ? sQuery.pid : 1);

			function GetQueryString()
			{
				//var list = href.split("?")[1].split("&");
				var list = href.split("?");
				if (list.length > 1) {
					list = list[1].split("&");
				}
				var queryString = new Object();
				if (list) {
					for(var i = 0; i < list.length; i ++)
					{
						var pair = list[i].split("=");
						queryString[pair[0].toLowerCase()] = pair[1];
					}
				}
				return queryString;
			}
		
		}
	}
	
	function SetLoadingTimer()
	{
		window.setTimeout(LoadMenus, 100);
	}
	
	function LoadMenus()
	{
		for(var i = 0; i < element.menuControls.length; i++) {
			element.menuControls[i].Load();
		}
		window.status = defaultStatus;
	}
	
	function MenuControl(li, pageId)
	{
		this.li = li;
		this.pageId = pageId;
	}
	
	MenuControl.prototype.Load = function()
	{
		var li = this.li;
		var currentChild = this.currentChild;
		var pageId = this.pageId;
		var doc = null;
		if (document.parentWindow)
		{
			doc = document.parentWindow.document;
		}
		else {
			doc = document;
		}
		li.menu = FindMenu();
		if (li.menu)
		{
			tilt.attachEvent(li, "mouseover", ItemMouseOver);
			tilt.attachEvent(li, "mouseout", ItemMouseOut);
			li.verticalIndent = FindVerticalIndent(li.menu);
		}
		
		function FindMenu()
		{
			var nestedLists = li.getElementsByTagName("ul");
			return nestedLists.length > 0 ? nestedLists[0] : null;
		}
		
		function FindVerticalIndent(list)
		{
			var li = list.firstChild;
			var count = 0;
			while(li)
			{
				var child = li.firstChild;
				if (child && child.tagName != "A")
				{
					return count;
				}
				count++;
				li = li.nextSibling;
			}
			return -1;
		}
		
		function ItemMouseOver(ev, el) {
			//alert("ItemMouseOver:" + li.mouseOut + ", " + el.nodeName + ", " + el.firstChild.getAttribute("href"));
			li.mouseOut = false;
			window.setTimeout(function() {MenuHandler();}, 0);
			//window.setTimeout(function() {MenuHandler();}, 500);   //500 is a 5 second delay!

		}
		
		function ItemMouseOut(ev, el) {
			if (li.mouseOut || (el.nodeName != 'LI')) return;
			//alert(ev);
			var reltg = (ev.relatedTarget) ? ev.relatedTarget : ev.toElement;
			//alert(reltg.nodeName + "," + el.nodeName);
			while (reltg && reltg != el && reltg.nodeName != 'BODY')
				reltg = reltg.parentNode
			if (reltg == el) return;

			//alert("ItemMouseOut:" + el.nodeName);
			li.mouseOut = true;
			CloseMenu(li.menu);
			
		}
		
		function MenuHandler()
		{
			if (li.mouseOut) {
				return;
			}
			if (element.currentMenu)
			{
				if (element.currentMenu == li.menu)
				{
					return;
				}
				CloseMenu(element.currentMenu);
			}
			OpenMenu(li.menu);
			if (window.event) {
				window.event.cancelBubble = true;
			}
		}
		
		function OpenMenu(menu)
		{
			var oRegion = YAHOO.util.Dom.getRegion(li);
			var iBottom = oRegion.bottom;
			var iLeft   = oRegion.left;
			Dom.setXY(menu, [ iLeft, (iBottom - 5) ]);
			element.currentMenu = li.menu;
		
			//HideSelects();
		}
		
		function CloseMenu(menu)
		{
			menu.style.top = "-1000px";
			element.currentMenu = null;
//			YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('iframeCareers'), 'top', '-2000px');
			//ShowSelects();
		}
		
		function HideSelects()
		{
			selects = doc.getElementsByTagName("SELECT");
			for(var i = 0; i < selects.length; i++)
			{
				with(selects[i].style)
				{
					if (visibility == "visible" || visibility == "")
					{
						visibility = "hidden";
					}
				}
				selects[i].IHidIt = true;
			}
		}
		
		function ShowSelects()
		{
			selects = doc.getElementsByTagName("SELECT");
			for(var i = 0; i < selects.length; i++)
			{
				if (selects[i].IHidIt)
				{
					selects[i].style.visibility = "visible";
				}
			}
		}
		
		function Body__OnClick()
		{
			CloseMenu(li.menu);
		}
	}
});

