var mainMenuTimerTicks;
var mainMenuTimerID = null;
var mainMenuTransition = null;
var subMenuIDs = new Array();
function mainMenuInit()
{
	var element = document.getElementById('main-menu');
	element.onmouseout = mainMenuDoMouseOut; // the event gets passed as the 1st argument
	element.onmouseover = mainMenuDoMouseEnter; // the event gets passed as the 1st argument

	var i;
	
	for ( i = 0; i < element.childNodes.length; i++)
	{
		if (element.childNodes[i].nodeName == 'LI')
		{
			var liElement = element.childNodes[i];
			var j;
			
			for ( j = 0; j < liElement.childNodes.length; j++)
			{
				if ( liElement.childNodes[j].nodeName == 'TABLE')
				{
					subMenuIDs.push( liElement.childNodes[j].id);
					element.onmouseout = mainMenuDoMouseOut; // the event gets passed as the 1st argument
					element.onmouseover = mainMenuDoMouseEnter; // the event gets passed as the 1st argument
				}
			}
		}
	}
}

function mainMenuDoMouseEnter()
{
	if ( mainMenuTimerID != null) clearTimeout( mainMenuTimerID);
	mainMenuTimerID = null;
}

function mainMenuRevealSubMenu( elementID)
{
	var i;
	
	for ( i = 0; i < subMenuIDs.length; i++)
	{
		var element = document.getElementById( subMenuIDs[i]);
		
		if ( subMenuIDs[i] == elementID)
		{
			element.style.visibility = 'visible';
			element.style.width = 'auto';
			var j;
			for ( j = 0; j < element.childNodes.length; j++)
			{
				if ( element.childNodes[j].nodeName == 'TBODY')
				{
					var k;
					for ( k = 0; k < element.childNodes[j].childNodes.length; k++)
					{
						if (element.childNodes[j].childNodes[k].nodeName == 'TR')
						{
							var l;
							for ( l = 0; l < element.childNodes[j].childNodes[k].childNodes.length; l++)
							{
								if ( element.childNodes[j].childNodes[k].childNodes[l].nodeName == 'TD')
								{
									var tdElement = element.childNodes[j].childNodes[k].childNodes[l];
									
									tdElement.style.width = 'auto';
									tdElement.style.whiteSpace = 'nowrap';
								}
							}
						}
					}
				}
			}
		} else
		{
			element.style.visibility = 'hidden';
		}
	}
	mainMenu_refreshTimeout( true);
}

/*
function mainMenuItemBooksDoMouseEnter()
{
	if ( bookMenuTimerID != null) clearTimeout( bookMenuTimerID);
	bookMenuTimerID = null;
	if ( !bookMenuVisible)
	{
		if ( bookMenuTransition != null) bookMenuTransition.halt();
		bookMenuTransition = null;
		var transition = new Transition(SineCurve, 250, function(percentage) {
			var element = document.getElementById("book-menu");
			setObjectOpacity( element, ( percentage) * 100.0);
		});
		bookMenuTransition = transition;
		//element.onmouseover = '';
		transition.run();
		bookMenuVisible = true;
	}
}
*/
function mainMenuDoMouseOut()
{
	mainMenu_refreshTimeout( true);
}

/* function bookMenu_refreshTimeout( doRestart)
updates the main menu timeout timer; if doRestart is true then restarts
the timer; handles fading of the currently visible main menu element
*/


function mainMenu_refreshTimeout( doRestart)
{
	if ( doRestart)
	{
		mainMenuTimerTicks = 10;
		if ( mainMenuTimerID != null) clearTimeout( mainMenuTimerID);
		mainMenuTimerID = null;
	}
	if ( mainMenuTimerID == null)
	{
		mainMenuTimerID = self.setTimeout("mainMenu_refreshTimeout( false)", 20);
	} else
	{
		mainMenuTimerTicks = mainMenuTimerTicks - 1;
		if ( mainMenuTimerTicks <= 0)
		{
/*			if ( mainMenuTransition != null) mainMenuTransition.halt();
			mainMenuTransition = null;
			var transition = new Transition(SineCurve, 250, function(percentage) {
				var element = document.getElementById("main-menu");
				setObjectOpacity( element, (1 - percentage) * 100.0);
			});
			mainMenuTransition = transition;
			//element.onmouseover = '';
			transition.run();
*/
			var i;
			for ( i = 0; i < subMenuIDs.length; i++)
			{
				var element = document.getElementById( subMenuIDs[i]);
				if ( subMenuIDs[i] == mainMenuActiveSubMenu)
					element.style.visibility = 'visible';
				else
					element.style.visibility = 'hidden';
					
			}
		
		} else
		{
			if (( mainMenuTimerTicks < 18))
			{
				//mainMenuElement_changeOpacity( visibleMainMenuItem, (mainMenuTimerTicks / 18) * 100);
			}
			mainMenuTimerID = self.setTimeout("mainMenu_refreshTimeout( false)", 20);
		}
	}
}

addEvent(window,'load',mainMenuInit);
