var menuItems = new Array();
var subMenus = new Array();

function Navigation_OnLoad()
{
	//setup the menu
	var navigationTable = document.getElementById("navigation");
	if (navigationTable != null)
	{
		menuItems = Navigation_GetMenuItems(navigationTable);
		if (menuItems != null && menuItems.length != null)
		{
			var menuIdPrefix = "Menu";
			for (var i = 0; i < menuItems.length; i++)
			{
				var menuItem = menuItems[i];
				if (menuItem != null)
				{
					menuItem.id = menuIdPrefix + i;
					menuItem.className = "Navigation_MenuItem";
					menuItem.menuItemNumber = i;
					menuItem.onmouseover = function() { Navigation_MenuItem_OnMouseOver(this.menuItemNumber); };
					menuItem.onmouseout = function() { Navigation_MenuItem_OnMouseOut(this.menuItemNumber); };
				}
			}
		}

		subMenus = Navigation_GetSubMenus(navigationTable);
		if (subMenus != null && subMenus.length != null)
		{
			var subMenuIdPrefix = "SubMenu";
			for (var i = 0; i < subMenus.length; i++)
			{
				var subMenu = subMenus[i];
				if (subMenu != null)
				{
					subMenu.id = subMenuIdPrefix + i;
					subMenu.className = "Navigation_SubMenu";
					subMenu.menuItemNumber = i;
					subMenu.onmouseover = function() { Navigation_SubMenu_OnMouseOver(this.menuItemNumber); };
					subMenu.onmouseout = function() { Navigation_SubMenu_OnMouseOut(this.menuItemNumber); };
				}
			}
		}
	}
	
	//setup the current date time
	var navigationTime = document.getElementById("navigationTime");
	if (navigationTime != null)
	{
		var dayNames = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
		var monthNames = ["January","Feburary","March","April","May","June","July","August","September","October","November","December"];

		var dateTimeNow = new Date();
		var dayName = dayNames[dateTimeNow.getDay()];
		var monthName = monthNames[dateTimeNow.getMonth()];

		var textNode = document.createTextNode(dayName + ", " + monthName + " " + dateTimeNow.getDate() + ", " + dateTimeNow.getFullYear());
		navigationTime.appendChild(textNode);
	}
}

function Navigation_GetMenuItems(navigationTable)
{
	var menuItems = new Array();
	if (navigationTable != null && navigationTable.childNodes != null && navigationTable.childNodes.length > 0)
	{
		for (var i = 0; i < navigationTable.childNodes.length; i++)
		{
			Navigation_GetMenuItems_Recursive(navigationTable.childNodes[i], menuItems);
		}
	}
	
	return menuItems;
}

function Navigation_GetMenuItems_Recursive(element, menuItems)
{
	if (menuItems == null)
	{
		menuItems = new Array();
	}
	
	if (element != null)
	{
		var childNodes = element.childNodes;
		if (element.tagName != null && element.tagName.toUpperCase != null && element.tagName.toUpperCase() == "A")
		{
			menuItems[menuItems.length] = element;
			return;
		}
		else if (element.tagName != null && element.tagName.toUpperCase != null && element.tagName.toUpperCase() == "TABLE")
		{
			return;
		}
		else if (childNodes != null && childNodes.length != null)
		{
			for (var i = 0; i < childNodes.length; i++)
			{
				var childNode = childNodes[i];
				if (childNode != null)
				{
					Navigation_GetMenuItems_Recursive(childNode, menuItems);
				}
			}
		}
	}
}

function Navigation_GetSubMenus(navigationTable)
{
	var subMenus = new Array();
	if (navigationTable != null && navigationTable.childNodes != null && navigationTable.childNodes.length > 0)
	{
		for (var i = 0; i < navigationTable.childNodes.length; i++)
		{
			Navigation_GetSubMenus_Recursive(navigationTable.childNodes[i], subMenus);
		}
	}
	
	return subMenus;
}

function Navigation_GetSubMenus_Recursive(element, subMenus)
{
	if (subMenus == null)
	{
		subMenus = new Array();
	}
	
	if (element != null)
	{
		var childNodes = element.childNodes;
		if (element.tagName != null && element.tagName.toUpperCase != null && element.tagName.toUpperCase() == "TABLE")
		{
			subMenus[subMenus.length] = element;
			return;
		}
		else if (childNodes != null && childNodes.length != null)
		{
			for (var i = 0; i < childNodes.length; i++)
			{
				var childNode = childNodes[i];
				if (childNode != null)
				{
					Navigation_GetSubMenus_Recursive(childNode, subMenus);
				}
			}
		}
	}
}

var currentMenuItem = null;
var currentSubMenu = null;

function Navigation_MenuItem_OnMouseOver(menuItemNumber)
{
	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		//set the current menu item
		currentMenuItem = menuItems[menuItemNumber];
		
		//hide the previous sub menu
		for (var i = 0; i < subMenus.length; i++)
		{
			if (i != menuItemNumber)
			{
				Navigation_SubMenu_Hide(i);
			}
		}
		
		//show the sub menu
		Navigation_SubMenu_Show(menuItemNumber);
	}
}

function Navigation_MenuItem_OnMouseOut(menuItemNumber)
{
	currentMenuItem = null;

	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		setTimeout("Navigation_MenuItem_OnMouseOut_Delay(" + menuItemNumber + ");", 1);
	}
}

function Navigation_MenuItem_OnMouseOut_Delay(menuItemNumber)
{
	if ((currentMenuItem == null || currentMenuItem.menuItemNumber != menuItemNumber)
		&& (currentSubMenu == null || currentSubMenu.menuItemNumber != menuItemNumber))
	{
		Navigation_SubMenu_Hide(menuItemNumber);
	}
}

function Navigation_SubMenu_OnMouseOver(menuItemNumber)
{
	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		//set the current sub menu
		currentSubMenu = subMenus[menuItemNumber];
	}
}

function Navigation_SubMenu_OnMouseOut(menuItemNumber)
{
	currentSubMenu = null;

	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		setTimeout("Navigation_SubMenu_OnMouseOut_Delay(" + menuItemNumber + ");", 1);
	}
}

function Navigation_SubMenu_OnMouseOut_Delay(menuItemNumber)
{
	if ((currentMenuItem == null || currentMenuItem.menuItemNumber != menuItemNumber)
		&& (currentSubMenu == null || currentSubMenu.menuItemNumber != menuItemNumber))
	{
		Navigation_SubMenu_Hide(menuItemNumber);
	}
}

function Navigation_SubMenu_Show(menuItemNumber)
{
	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		subMenu = subMenus[menuItemNumber];
		if (subMenu != null && subMenu.style != null && subMenu.style.display != "block")
		{
			if (subMenu.hasMenuItems == null)
			{
				subMenu.hasMenuItems = false;
				var subMenuItems = Navigation_GetMenuItems(subMenu);
				if (subMenuItems != null && subMenuItems.length != null && subMenuItems.length > 0)
				{
					subMenu.hasMenuItems = true;
				}
			}

			if (subMenu.hasMenuItems)
			{
				subMenu.style.display = "block";
			}
		}
	}
}

function Navigation_SubMenu_Hide(menuItemNumber)
{
	menuItemNumber = parseInt(menuItemNumber);
	if (!isNaN(menuItemNumber))
	{
		var subMenu = subMenus[menuItemNumber];
		if (subMenu != null && subMenu.style != null && subMenu.style.display != "none")
		{
			subMenu.style.display = "none";
		}
	}
}

var oldNavigationOnLoad = window.onload ? window.onload : function() {};
window.onload = function() { oldNavigationOnLoad(); Navigation_OnLoad(); }
