
//Offset of the menu
var flyoutLeftOffset=169;

//Initialize the flyouts
function InitFlyOuts()
{

	var parent;
    var uls;
    var ul;

    // if the browser doesn't even support 
	// document.getElementById, give up now. 
	if (!document.getElementById)
	{
		return true;
	}
	
	uls = document.getElementsByTagName("UL");
	for (var uli=0; uli < uls.length; uli++)
	{
		ul = uls[uli];
		if (ul.nodeName == "UL" && ul.className == "FlyOut")
		{
			var parent;
	
			ul.style.position = "absolute";
			ul.style.visibility = "hidden";
			ul.style.zIndex = 1000;
	
			//Attach hover events to parent node
			parent = ul.parentNode;
			parent.onmouseover = ShowFlyOut;
			parent.onmouseout = HideFlyOut;

		}
	}
	
}//END function InitFlyOuts

//Show the flyout
function ShowFlyOut(e)
{
    var firstChildLink;
	var child;
	var point;
	var xCoor;
	var yCoor;
	var yFooterCoor;
	
	//First, style the link we are mousing over
	firstChildLink = getFirstChildLink(this)
	addClassToElement("MenuItemMouseOver", firstChildLink);
	
	//Figure out the y coordinate of the footer
	yFooterCoor = getPageXY(document.getElementById("PageFooter")).y;
	
	//Loop through all the children
	for (var i = 0; i < this.childNodes.length; i++)
	{
		child = this.childNodes[i];
		if (child.nodeName == 'UL')
		{
			//Get coordinates of the unordered list
		    point = getPageXY(this);
		    
		    //Determine any offsets
		    xCoor = point.x + flyoutLeftOffset;
		    yCoor = point.y
		    
		    //See if we need to adjust for the footer
		    if((yFooterCoor != 0) && ((yCoor + child.offsetHeight) > yFooterCoor))
		    {
		      yCoor = yFooterCoor-child.offsetHeight;
		    }
		    
		    //Set the coordinates of the menu
			setPageXY(child, xCoor, yCoor);
			child.style.visibility = 'visible';
		}
	}
	return false;

}

//Hide the flyout
function HideFlyOut(e)
{
	var firstChildLink;
	var child;
	var relatedTarget;
	
	if (window.event)
	{
		relatedTarget = window.event.toElement;
	}
	
	if ( elementContains(this, relatedTarget) )
	{
		return false;
	}
	
	//Un-style the link we are mousing over
	firstChildLink = getFirstChildLink(this)
	removeClassFromElement("MenuItemMouseOver", firstChildLink);
	
	for (var i = 0; i < this.childNodes.length; i++)
	{
		child = this.childNodes[i];
		if (child.nodeName == 'UL')
		{
			child.style.visibility = 'hidden';
		}
	}
	return false;
}
