function navOver() {
	myParentUL = this.parentNode.getElementsByTagName( "ul" );
	myFlyout = myParentUL[0];
	myFlyout.className = "showNav";
	myFlyout.onmouseover = function() { this.className = "showNav" };
	myFlyout.onmouseout = function() { this.className = "" };
	
	flyoutTop = this.offsetParent.offsetTop + this.offsetParent.offsetParent.offsetTop;
	flyoutHeight = myFlyout.offsetHeight;
	firstFlyoutHeight = flyoutHeight;
	
	if ( flyoutHeight <= 1 ) {
		flyoutHeight = myFlyout.getElementsByTagName( "li" ).length * this.offsetHeight;
	}
	
	if ( self.innerHeight ) {
		winHeight = self.innerHeight;
		winPos = window.pageYOffset;
	} else if ( document.documentElement && document.documentElement.clientHeight ) {
		winHeight = document.documentElement.clientHeight;
		winPos = document.documentElement.scrollTop;
	} else if ( document.body ) {
		winHeight = document.body.clientHeight;
		winPos = document.body.scrollTop;
	}

	flyoutPos = flyoutTop - winPos;
	safePos = winHeight - ( flyoutPos + flyoutHeight );
	safePos = ( safePos < 0 ? safePos : 0 )
	myFlyout.style.top = safePos + "px";
}

function navOut() {
	myParentUL = this.parentNode.getElementsByTagName( "ul" );
	myFlyout = myParentUL[0];
	myFlyout.className = "";
}

function initNav() {
	var myNav = document.getElementById( "menu" );
	var myNavLinks = myNav.getElementsByTagName( "a" );
	for( i = 0; i < myNavLinks.length; i++ ) {
		thisLink = myNavLinks[i];
		thisLinkName = thisLink.toString();
		thisLinkName = thisLinkName.slice(0, thisLinkName.lastIndexOf("."));
		myParentUL = thisLink.parentNode.getElementsByTagName( "ul" )[0];
		if ( myParentUL ) {
			thisLink.onmouseover = navOver;
			thisLink.onmouseout = navOut;
		}
		if ( location.href == thisLink ) thisLink.className = "currentNav";
		if ( location.href.indexOf(thisLinkName) == 0 && i != 0 ) thisLink.className = "currentNav";
	}	
}