
schedule("menu", menuInit); 
schedule("subMenu", subMenuInit); 

var menuDelay = null;
var subMenuDelay = null;
var menuDelayTarget = null;
var subMenuDelayTarget = null;
var flyoutActive = false;
var isIE = false;

if (document.all && typeof window.opera == "undefined")
{
	isIE = true;
}




function menuInit()
{
	var menu = document.getElementById("menu");
	var menuList = getChildrenByTagName(menu, "ul")[0];
	var listItems = getChildrenByTagName(menuList, "li");
	
	for (var i = 0; i < listItems.length; i++)
	{
		if (listItems[i].className.indexOf("dropdown") != -1)
		{
			listItems[i].onmouseover = showMenu1;
			listItems[i].onmouseout = hideMenu1;
			
			var subListItems = getChildrenByTagName(getChildrenByTagName(listItems[i], "ul")[0], "li");
			
			if (subListItems.length > 0)
			{
				for (var j = 0; j < subListItems.length; j++)
				{
					subListItems[j].onmouseover = showMenu2;
				}
			}
		}
	}
	
	return true;
}




function showMenu1()
{
	var subList = this.getElementsByTagName("ul")[0];
	var siblings = getChildrenByTagName(this.parentNode, "li");
	
	for (var i = 0; i < siblings.length; i++)
	{
		if (siblings[i] != this)
		{
			hideMenuDelayed(siblings[i]);
		}
	}

	if (isIE)
	{
		var dropSheet = getChildrenByTagName(this, "iframe");

		if (dropSheet.length <= 0)
		{	
			dropSheet = document.createElement("iframe");
			dropSheet.className = "dropSheet";
			this.appendChild(dropSheet);
		}
		else
		{
			dropSheet = dropSheet[0];
		}
	}

	if (menuDelayTarget != null)
	{
		clearTimeout(menuDelay);
	}
	
	if (subMenuDelayTarget != null)
	{
		hideSubMenuDelayed(subMenuDelayTarget);
		clearTimeout(subMenuDelay);
	}

	if (typeof this.originalClass == "undefined")
	{
		this.originalClass = this.className;
	}

	this.className = this.className.addClass("hover");

	if (isIE)
	{
		dropSheet.style.width = subList.offsetWidth - 4 + "px";	
		dropSheet.style.height = subList.offsetHeight - 4 + "px";
	}

	return true;
}




function showMenu2()
{
	var subList = this.getElementsByTagName("ul")[0];
	var siblings = getChildrenByTagName(this.parentNode, "li");
	
	for (var i = 0; i < siblings.length; i++)
	{
		if (siblings[i] != this)
		{
			hideMenuDelayed(siblings[i]);
		}
	}
	
	if (subList != null)
	{
		if (isIE)
		{
			var dropSheet = getChildrenByTagName(this, "iframe");

			if (dropSheet.length <= 0)
			{	
				dropSheet = document.createElement("iframe");
				dropSheet.className = "dropSheet";
				this.appendChild(dropSheet);
			}
			else
			{
				dropSheet = dropSheet[0];
			}
		}

		if (menuDelayTarget != null)
		{
			clearTimeout(menuDelay);
		}

		if (typeof this.originalClass == "undefined")
		{
			this.originalClass = this.className;
		}

		this.className = this.className.addClass("hover");

		if (isIE)
		{
			subList.style.marginLeft = this.offsetWidth - 1 + "px";
			subList.style.marginTop = -this.offsetHeight + 3 + "px";

			dropSheet.style.width = subList.offsetWidth - 4 + "px";	
			dropSheet.style.height = subList.offsetHeight - 4 + "px";	
			dropSheet.style.marginLeft = this.offsetWidth - 2 + "px";
			dropSheet.style.marginTop = -this.offsetHeight + 2 + "px";
		}
		else
		{
			subList.style.marginLeft = this.offsetWidth - 3 + "px";
			subList.style.marginTop = -this.offsetHeight + "px";
		}
	}

	return true;
}




function showMenu3()
{
	flyoutActive = true;
	
	if (menuDelayTarget != null)
	{
		clearTimeout(menuDelay);
	}
	
	return false;

}




function hideMenu1()
{
	var self = this;

	flyoutActive = false;

	menuDelay = setTimeout(function(){hideMenuDelayed(self); return true;}, 500);
	menuDelayTarget = this;
	
	return true;
}




function hideMenuDelayed(menuItem)
{
	if (!flyoutActive && typeof menuItem.originalClass != "undefined")
	{
		var subListItems = menuItem.getElementsByTagName("li");
	
		if (isIE)
		{
			var dropSheets = menuItem.getElementsByTagName("iframe");
			
			for (var i = 0; i < dropSheets.length; dropsheets = menuItem.getElementsByTagName("iframe"))
			{
				dropSheets[i].parentNode.removeChild(dropSheets[i])
			}
		}
		
		for (i = 0; i < subListItems.length; i++)
		{
			if (typeof subListItems[i].originalClass != "undefined")
			{
				subListItems[i].className = subListItems[i].originalClass;
			}
		}

		menuItem.className = menuItem.originalClass;
	}
	
	return true;
}




function subMenuInit()
{
	var menu = document.getElementById("subMenu");
	
	if (menu != null)
	{
		var menuList = getChildrenByTagName(menu, "ul")[0];
		
		if (menuList != null)
		{
			var listItems = menuList.getElementsByTagName("li");

			for (var i = 0; i < listItems.length; i++)
			{
				if (listItems[i].className.indexOf("expandable") != -1)
				{
					listItems[i].onmouseover = showSubMenu1;
					listItems[i].onmouseout = hideSubMenu1;

					if (listItems[i].parentNode.parentNode.className.indexOf("expandable") != -1)
					{
						var siblings = getChildrenByTagName(listItems[i].parentNode, "li");

						for (var j = 0; j < siblings.length; j++)
						{
							siblings[j].onmouseover = showSubMenu2;
							siblings[j].onmouseout = null;
						}
					}
				}
			}
		}
	}
	else
	{
		return false;
	}
	
	return true;
}




function showSubMenu1()
{
	var menuList = getChildrenByTagName(document.getElementById("menu"), "ul");
	var menuChildren = getChildrenByTagName(menuList, "li");
	var subList = this.getElementsByTagName("ul")[0];
	var siblings = getChildrenByTagName(this.parentNode, "li");
	var shadow = document.getElementById("shadow");

	for (var i = 0; i < siblings.length; i++)
	{
		if (siblings[i] != this)
		{
			hideSubMenuDelayed(siblings[i]);
		}
	}
	
	if (subMenuDelayTarget != null)
	{
		clearTimeout(subMenuDelay);
		
		if (subMenuDelayTarget != this)
		{
			hideSubMenuDelayed(subMenuDelayTarget);
		}
	}
	
	if (menuDelayTarget != null)
	{
		clearTimeout(menuDelay);
		hideMenuDelayed(menuDelayTarget);
	}

	if (typeof this.originalClass == "undefined")
	{
		this.originalClass = this.className;
	}

	this.className = this.className.addClass("hover");
	
	if (shadow == null)
	{
		if (isIE)
		{
			shadow = document.getElementsByTagName("body")[0].appendChild(document.createElement("iframe"));
		}
		else
		{
			shadow = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
		}
		
		shadow.id = "shadow";
	}
	
	try
	{
		var parent = subList.offsetParent;
		var totalLeft = subList.offsetLeft;
		var totalTop = subList.offsetTop;
		
		while (parent != null)
		{
			totalLeft += parent.offsetLeft;
			totalTop += parent.offsetTop;
			
			parent = parent.offsetParent;
		}
		
		shadow.style.left = totalLeft + 2 + "px";
		shadow.style.top = totalTop + 2 + "px";
		
		if (isIE)
		{
			shadow.style.width = subList.offsetWidth - 8 + "px";
			shadow.style.height = subList.offsetHeight - 8 + "px";
		}
		else
		{
			shadow.style.width = subList.offsetWidth + "px";
			shadow.style.height = subList.offsetHeight + "px";
		}
	}
	catch(error)
	{
	}
	
	return true;
}




function showSubMenu2()
{
	var subList = this.getElementsByTagName("ul")[0];
	var siblings = getChildrenByTagName(this.parentNode, "li");
	var shadow = this.shadow;

	for (var i = 0; i < siblings.length; i++)
	{
		if (siblings[i] != this)
		{
			hideSubMenuDelayed(siblings[i]);
		}
	}
	
	if (subList != null)
	{
		if (subMenuDelayTarget != null)
		{
			clearTimeout(subMenuDelay);
		}

		if (typeof this.originalClass == "undefined")
		{
			this.originalClass = this.className;
		}

		this.className = this.className.addClass("hover");

		if (shadow == null)
		{
			if (isIE)
			{
				shadow = this.appendChild(document.createElement("iframe"));
			}
			else
			{
				shadow = this.appendChild(document.createElement("div"));
			}

			shadow.className = "shadow2";
		}
		
		this.shadow = shadow;

		try
		{
			var parent = subList.offsetParent;
			var totalLeft = subList.offsetLeft;
			var totalTop = subList.offsetTop;

			while (parent != null)
			{
				totalLeft += parent.offsetLeft;
				totalTop += parent.offsetTop;

				parent = parent.offsetParent;
			}

			if (isIE)
			{
				shadow.style.width = subList.offsetWidth - 8 + "px";
				shadow.style.height = subList.offsetHeight - 8 + "px";
			}
			else
			{
				shadow.style.width = subList.offsetWidth + "px";
				shadow.style.height = subList.offsetHeight + "px";
			}
		}
		catch(error)
		{
		}
	}
	
	return true;
}




function hideSubMenu1()
{
	var self = this;

	subMenuDelay = setTimeout(function(){hideSubMenuDelayed(self); return true;}, 500);
	subMenuDelayTarget = this;
	
	return true;
}




function hideSubMenuDelayed(menuItem)
{
	var shadow = document.getElementById("shadow");
	var shadow2 = document.getElementById("shadow2");
	
	if (typeof menuItem.originalClass != "undefined")
	{
		var subListItems = menuItem.getElementsByTagName("li");
		
		for (var i = 0; i < subListItems.length; i++)
		{
			if (typeof subListItems[i].originalClass != "undefined")
			{
				subListItems[i].className = subListItems[i].originalClass;
			}
		}
		
		menuItem.className = menuItem.originalClass;

		if (shadow != null)
		{
			shadow.style.left = "-1500em";
		}

		if (shadow2 != null)
		{
			shadow2.style.left = "-1500em";
		}
	}
	
	return true;
}




function getChildrenByTagName(target, tagName)
{
	if (target == null)
	{
		target = document.getElementById("menuHome");
	}
	
	var children = target.childNodes;
	var matching = new Array();
	
	if (children != null)
	{
		for (var i = 0; i < children.length; i++)
		{
			if (children[i].nodeName.toLowerCase() == tagName)
			{
				matching[matching.length] = children[i];
			}
		}
	}
	
	return matching;
}




function debug(debugString)
{
	var debugElement = document.getElementById("debugger");
	
	if (debugElement == null)
	{
		document.getElementsByTagName("body")[0].appendChild(document.createElement("div")).id = "debugger";
		
		debugElement = document.getElementById("debugger");
		
		debugElement.style.position = "absolute";
		debugElement.style.left = "0";
		debugElement.style.top = "0";
	}
	
	debugElement.innerHTML += " " + debugString;
	
	return true;
}