window.onDomReady(menuInit);

function menuInit () {
	var subMenus = $$('#nav ul li ul');
	var subLinks = $$('#nav ul li ul li a');

	//Remove Padding from Lower Level Nav Links
	subLinks.each( function(link, i) {
		//For menus that will be scripted remove left-padding
		if (!link.getParent().getParent().getPrevious().hasClass('selected')
				&& !link.getParent().getParent().getPrevious().hasClass('heading'))
			link.setStyle('padding-left', '10px');
	});

	//Apply Events to Each Sublist that has Content and is not the currently displayed page
	subMenus.each( function (ul, i) {
		if (ul.getChildren().length && !ul.getPrevious().hasClass('selected') && !ul.getPrevious().hasClass('heading'))
		{
			//Set menu opacity to 0, and style ul to position properly
			ul.setOpacity(0);
			ul.setStyles({
				'display': 'block',
				'position': 'absolute',
				'border': '1px solid gray',
				'left': ul.getPrevious().getSize().size.x + 'px'
			});

			//Secondary Nav Menus and Tertiary Menus must be positioned differently due to absolute positioning scheme
			if (ul.getParent().getParent().getStyle('position') == 'absolute')
				ul.setStyle('top', ul.getParent().getCoordinates().top - ul.getParent().getParent().getCoordinates().top - 1 + 'px');
			else
				ul.setStyle('top', ul.getParent().getCoordinates().top - 1 + 'px');
			
			//Add event to show menus
			ul.getParent().addEvent('mouseover', function (e) {
				var event = new Event(e);
				var link = event.relatedTarget;
				var sublinks = $ES('a', this);
				//Test to make sure the mouseover event isn't firing within the menu or its children
				if (!sublinks.test(link))
				{
					ul.setOpacity(1);
					ul.getPrevious().addClass('selected');
				}
			});
			
			//Add event to hide menus
			ul.getParent().addEvent('mouseout', function (e) {
				var event = new Event(e);
				var link = event.relatedTarget;
				var sublinks = $ES('a', this);
				//Test to make sure the mouseout event isn't firing within the menu or its children
				if (!sublinks.test(link))
				{
					ul.setOpacity(0);
					ul.getPrevious().removeClass('selected');
				}
			});
		}
	});
}
