function getAllMenuNames()
{
	var menus = new Array();
	var topMenu = document.getElementById( "topMenu" );
	var potentialElements = document.getElementsByTagName( "h3" );
	for( var i = 0; i < potentialElements.length; i++ )
	{
		var element = potentialElements[i];
		if( element.className == "menuTitleItem" )
		{
			menus.push( element.id );
		}
	}
	return menus;
}

function setupMenu( id )
{
	function registerEvents( node )
	{
		if( node.className == "menuTitleItem" )
		{
			node.onmouseover = hilightMenu;
			node.onmouseout = unhilightMenu;
			node.onclick = selectMenu;
			node.style.cursor = "pointer";
		}
		
		for( var i = 0; i < node.childNodes.length; i++ )
		{
			registerEvents( node.childNodes[i] );
		}
	}
	registerEvents( document.getElementById( "topMenu" ) );

	var menuTitleItem = document.getElementById( id );
	selectMenuTitleItem( menuTitleItem );
}

function hideAllSubMenus()
{
	var menuNames = getAllMenuNames();
	for( var i = 0; i < menuNames.length; i++ )
	{
		var menu = document.getElementById( menuNames[i] );		
		unhilightMenu( menuNames[i] );
		
		menu.onmouseover = hilightMenu;
		menu.onmouseout = unhilightMenu;
		menu.onclick = selectMenu;
		menu.style.cursor = "pointer";
		
		animatedcollapse.hide( menuNames[i] + "SubMenu" );
	}
}

function selectMenu( e )
{
	hideAllSubMenus();

	var id = typeof( e ) == "string" ? e : getTarget( e ).id;
	var menuTitleItem = typeof( e ) == "string" ? document.getElementById( id ) : getTarget( e );
	
	selectMenuTitleItem( menuTitleItem );
	
	animatedcollapse.show( id + "SubMenu" );
}

function selectMenuTitleItem( menuTitleItem )
{
	menuTitleItem.onmouseover = function(){};
	menuTitleItem.onmouseout = function(){};
	menuTitleItem.onclick = function(){};
	menuTitleItem.style.cursor = "default";
	menuTitleItem.style.color = "#fff";
	menuTitleItem.style.backgroundColor = "#188000";
}

function toggleMenu( e )
{
	var id = typeof( e ) == "string" ? e : getTarget( e ).id;
	var menu = document.getElementById( id + "SubMenu" );
	if( menu.style.visibility != "hidden" )
	{
		menu.style.visibility = "hidden";
		menu.style.position = "absolute";
	}
	else
	{
		menu.style.visibility = "visible";
		menu.style.position = "static";
	}
}

function hilightMenu( e )
{
	var menu;
	if( typeof( e ) == "string" )
	{
		menu = document.getElementById( e );
	}
	else
	{
		menu = getTarget( e );
	}
	
	menu.style.borderColor = "#000 #aaa #aaa #000";
	menu.style.backgroundColor = "#188000"
	menu.style.color = "#FFFFFF"
	menu.style.letterSpacing = "8px";

}

function unhilightMenu( e )
{
	var menu;
	if( typeof( e ) == "string" )
	{
		menu = document.getElementById( e );
	}
	else
	{
		menu = getTarget( e );
	}

	menu.style.borderColor = "#aaa #000 #000 #aaa";
	menu.style.backgroundColor = "#388000"
	menu.style.color = "#aaa"
	menu.style.letterSpacing = "5px";
}

function getTarget( e )
{
	var target;
	if( !e )
		var e = window.event;
	if( e.target )
		target = e.target;
	else if( e.srcElement )
		target = e.srcElement;
	if ( target.nodeType == 3 ) // defeat Safari bug
		target = targ.parentNode;

	return target;
}