function build_the_top_menu()
{ 
	if (navigator.appName == "Opera") return;
	var topMenu = document.getElementById("top_menu");
	topMenu.innerHTML = "";
	
	var theMenu = menuManager.getMenuById(3000000);
	if (theMenu == null)
		return;
	for(var j=0; j<theMenu.items.length; j++)
	{
		if (theMenu.items[j].parent==null)
		{
			var theMenuItem = theMenu.items[j];
			var topMenuItem = "<div id='the_topMenuItem_main_"+theMenuItem.id+"' class='topMenuItem'>\n"+
				"<a href='javascript:void(0)'><nobr>"+
				theMenuItem.title+
				"</nobr></a>\n"+
				add_sub_menu(theMenuItem.childs,1, "main_"+theMenuItem.id)+
				"</div>\n";
			topMenu.innerHTML += topMenuItem;
		}
	}
	parseMenu("top_menu",0);
}

function add_sub_menu(menuItems, level, menuId)
{
	if (menuItems.length ==0) return ""; 
	var subMenuClass = "";
	if (level == 1)
		subMenuClass = "level1Menu";
	else
		subMenuClass = "subMenu";
	var theResult = "<table class='"+subMenuClass+"' id='top_menu_"+menuId+"' border='0' cellspacing='0' style='border-collapse: collapse'>\n";
	for (var i=0; i<menuItems.length; i++)
	{
		var menuItem = menuItems[i];
		var theTitle = menuItem.title.replace(/^\s+|\s+$/g, '');
		var theShortKey = menuItem.shortKey;
		theTitle = theTitle.replace('$nbsp;','');
		theResult += "<tr class='"+subMenuClass+"ItemRow' id='top_menu_item_"+menuItem.id+"'>\n"+
				"<td class='"+subMenuClass+"ItemTd1'><a href=\""+menuItem.link+"\" target='"+menuItem.target+"'>"+theTitle+"</a>"+
				"</td>"+
				"<td class='"+subMenuClass+"ItemTd2'>"+theShortKey+"</td>"+
				"<td class='"+subMenuClass+"ItemTd3'>&nbsp;"+add_sub_menu(menuItem.childs,level+1, menuItem.id)+"</td>"+
				"</tr>";
	}
	theResult += "</table>\n";
	return theResult;
}

function addToTrace(msg)
{
	document.getElementById('jsTrace').innerHTML += msg + "<br>";
}

function parseMenu(menuId, menuLevel)
{
	/*var thePre = '';
	for (var i=0; i<menuLevel; i++)
		thePre += '-->';
	addToTrace(thePre+menuId);*/
	 var theMenu = document.getElementById(menuId);
    //change the menu style
    //if (menuLevel == 0)
    //theMenu.className = "topMenu";
    if (menuLevel == 1)
    theMenu.className = "level1Menu";
    if (menuLevel >1)
    theMenu.className = "subMenu";
    var items = new Array();
    var itemsParent = null;
    if (menuLevel == 0)
    {
		items = theMenu.getElementsByTagName("div");
		itemsParent = theMenu;
	}
	else
	{
		items = theMenu.getElementsByTagName("tr");
		itemsParent = theMenu.getElementsByTagName("tbody")[0];
	}
    //do for each menu items
    for (var i=0; i<items.length; i++){
		if (items[i].parentNode != itemsParent)
			continue;
		var menuItem = items[i];
		//change the menu item class
		if (menuLevel == 0)
			menuItem.className = "topMenuItem";
		if (menuLevel == 1)
			menuItem.className = "level1MenuItemRow";
		if (menuLevel > 1 )
			menuItem.className = "subMenuItemRow";
		//get Top and Left
		var subMenus = menuItem.getElementsByTagName("table");
		if (subMenus.length != 0) {
			var subMenuId = subMenus[0].id;
			menuItem.onmouseover= parentMenuItemMouseOver;
			menuItem.onmouseout = parentMenuItemMouseOut;
			if (menuLevel != 0)
			{
				var arrowTd = menuItem.getElementsByTagName("td")[2];
				arrowTd.className += "_hasChild";
			}
			parseMenu(subMenuId, menuLevel+1);
		}
		else{
			menuItem.onmouseover= menuItemMouseOver;
			menuItem.onmouseout = menuItemMouseOut;
		}
    }
    if (menuLevel != 0)
    document.getElementById(menuId).style.display="none";
}

function parentMenuItemMouseOver() {
    var subMenus = this.getElementsByTagName("table");
    if (subMenus.length == 0) {
        return;
    }
    subMenus[0].style.display = "";
    if (navigator.appName == 'Microsoft Internet Explorer')
    {
		try
		{
			document.getElementById('loginform_username').blur();
		}
		catch(e){}
    }
   menuItemMouseOver.call(this);
} 

function parentMenuItemMouseOut() {
   var subMenus = this.getElementsByTagName("table");
   if (subMenus.length == 0) {
       return;
   }
   subMenus[0].style.display="none";
   menuItemMouseOut.call(this);
}

function menuItemMouseOver()
{
	var theClassName = this.className;
	theClassName += 'Hover';
	this.className = theClassName;
	/*if ((theClassName == 'subMenuItemRow') || (theClassName == 'level1MenuItemRow'))
	{
	}*/
}

function menuItemMouseOut()
{
	var theClassName = this.className;
	theClassName = theClassName.replace(/Hover/,'');
	this.className = theClassName;
	/*if ((theClassName == 'subMenuItemRowHover') || (theClassName == 'level1MenuItemRowHover'))
	{
	}*/
}

function ancestor(child, parent){
	if(child==null)return false;
	if(navigator.userAgent.indexOf('Gecko') != -1 && navigator.userAgent.indexOf('Opera') == -1){
		var allc = parent.getElementsByTagName('*');
		for(var i= 0;i<allc.length;i++){
			if(allc[i] == child){
				return true;
			}
		}
	}
	else{
		for(; child.parentNode; child = child.parentNode){
			if(child.parentNode === parent) return true;
		}
	}
	return false;
}