var visibleMainMenuItem = null;
var mainMenuItems = new Array;
var mainMenuTimerTicks;
var mainMenuTimerID = null;

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
	mainMenuItems[0] = 'overview';
	mainMenuItems[1] = 'programs';
	mainMenuItems[2] = 'curriculum';
	mainMenuItems[3] = 'admissions';
	mainMenuItems[4] = 'development';
	mainMenuItems[5] = 'calendar';
	mainMenuItems[6] = 'contact';
}

function mainMenuDoMouseEnter()
{
	if ( mainMenuTimerID != null) clearTimeout( mainMenuTimerID);
	mainMenuTimerID = null;
	if ( visibleMainMenuItem != null)
		mainMenuElement_changeOpacity( visibleMainMenuItem, 100);
}

function mainMenuDoMouseOut()
{
	mainMenu_refreshTimeout( true);
}

function mainMenuElement_unhide( menuElementName)
{
	var i, node;

	for (i = 0;i < mainMenuItems.length; i++)
	{
		if ( menuElementName != mainMenuItems[i])
			mainMenuElement_hide('main-menu-' + mainMenuItems[i] + '-item');
	}
	
	var elementID = 'main-menu-' + menuElementName + '-item';
	var anItem = document.getElementById(elementID);
	if ( anItem == null)
		return;
		
	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL")
		{
			visibleMainMenuItem = elementID;
			node.style.visibility = 'visible';
//			node.style.lineHeight='1.1em';
//			node.style.fontSize = '1.1em';
			node.style.display = 'block';
			if ( mainMenuTimerID != null)
			{
				clearTimeout( mainMenuTimerID);
				mainMenuTimerID = null;
			}
			mainMenuElement_changeOpacity( elementID, 100);
		} else if (node.nodeName=='A')
		{
			node.className = 'hover';
		}
	}			
}

/* function mainMenu_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)
		{
			var i;
			for (i = 0;i < mainMenuItems.length; i++)
			{
				mainMenuElement_hide('main-menu-' + mainMenuItems[i] + '-item');
			}
		
		} else
		{
			if (( mainMenuTimerTicks < 18) && ( visibleMainMenuItem != null))
			{
				//mainMenuElement_changeOpacity( visibleMainMenuItem, (mainMenuTimerTicks / 18) * 100);
			}
			mainMenuTimerID = self.setTimeout("mainMenu_refreshTimeout( false)", 20);
		}
	}
}

/* function hideTabElement( elementID)
hides the first ul child of the given element; does not
affect the tab timeout timer
*/
function mainMenuElement_hide( elementID)
{
	var anItem = document.getElementById(elementID);
	var i, node;
	if ( anItem == null) return;
//	anItem.className='';
	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL")
		{
			node.style.visibility = 'hidden';
//			node.style.lineHeight='1%';
//			node.style.fontSize = '1px';
			node.style.display = 'none';
		} else if ( node.nodeName=='A')
		{
			node.className = '';
		}
	}
}

function mainMenuElement_changeOpacity(id, opacity)
{ 
	var anItem = document.getElementById(id);
	var i, node;
	var object;

	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL") object = node;
	}

	setObjectOpacity( object, opacity);
}

addEvent(window,'load',mainMenuInit);
