function trim(value) {
	if (!value || (value == null)) {
		return "";
	}
    // Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return value.replace(/(^\s*)|(\s*$)/g, "");
}

var __nextMenuID = 0;
var __menuList = new Array();
var __currentMenu = null;

function MenuItem(name, link, submenu)
{
	this.id = "menu_item_" + __nextMenuID;
	__nextMenuID++;
	this.name = name;
	this.link = link;
	this.submenu = submenu;
	if (submenu && (submenu != null))
	{
		submenu.parentitem = this;
	}
}

function Menu(items)
{
	this.id = __nextMenuID;
	this.divid = "menu_div_" + __nextMenuID;
	__menuList[__nextMenuID] = this;
	__nextMenuID++;
	this.items = items;
	this.parentitem = null;
	this.display = false;
	if (items && (items != null))
	{
		for (__i = 0; __i < items.length; __i++)
		{
			items[__i].parentmenu = this;
		}
	}
}

function generateMenu(menu, isSubMenu, d, i)
{
	d = document;
	if (isSubMenu)
	{
		d.writeln("<DIV id=\""+menu.divid+"\" class=\"menuline\" style=\"display:none; xFILTER:progid:dximagetransform.microsoft.alpha(opacity=85); POSITION: absolute; z-index: "+(100+menu.id)+";\">");
		d.writeln("<TABLE class=\"menu\" cellSpacing=\"0\" cellPadding=\"0\" border=\"0\">");
		d.writeln("<TR onmouseover=\"menuitemover("+menu.id+")\" onmouseout=\"menuitemout()\"><TD><img src=\"images/empty1x1.gif\" border=0 width=8 height=5></TD><TD colspan=2><img src=\"images/empty1x1.gif\" border=0 width=5 height=5></TD><TD><img src=\"images/empty1x1.gif\" border=0 width=8 height=5></TD></TR>");
		for (i = 0; i < menu.items.length; i++)
		{
			__submenu = (menu.items[i].submenu) ?
				" onmouseover=\"menuitemover("+menu.items[i].submenu.id+")\""+
				" onmouseout=\"menuitemout()\"" :
				" onmouseover=\"menuitemover("+menu.id+")\""+
				" onmouseout=\"menuitemout()\"";
//			__submenu += " id=\""+menu.items[i].id+"\"";
			if (menu.items[i].link)
			{
				d.writeln("<TR"+__submenu+"><TD></TD><TD id=\""+menu.items[i].id+"\" noWrap><a href=\""+menu.items[i].link+"\" class=\"menulink\">"+menu.items[i].name+"</a></TD>");
			}
			else
			{
				d.writeln("<TR"+__submenu+"><TD></TD><TD id=\""+menu.items[i].id+"\" class=\"menulink\" noWrap>"+menu.items[i].name+"</TD>");
			}
			d.writeln("<TD>"+((menu.items[i].submenu)?"&nbsp;&gt;":"&nbsp;")+"</TD><TD></TD></TR>");
		}
		d.writeln("<TR onmouseover=\"menuitemover("+menu.id+")\" onmouseout=\"menuitemout()\"><TD colspan=4><img src=\"images/empty1x1.gif\" border=0 width=5 height=5></TD></TR>");
		d.writeln("</TABLE></DIV>");
	}
	else
	{
		menu.display = true;
		__currentMenu = menu;
		d.writeln("<TABLE id=\"mainmenutable\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"menu\"><TR>");
		for (i = 0; i < menu.items.length; i++)
		{
			if (i > 0)
			{
				d.writeln("<TD>&nbsp;|&nbsp;</TD>");
			}
			__submenu = (menu.items[i].submenu) ?
				" onmouseover=\"menuitemover("+menu.items[i].submenu.id+")\""+
				" onmouseout=\"menuitemout()\"" : "";
			__submenu += " id=\""+menu.items[i].id+"\"";
			if (menu.items[i].link)
			{
				d.writeln("<TD"+__submenu+"><a href=\""+menu.items[i].link+"\" class=\"menulink\">"+menu.items[i].name+"</a></TD>");
			}
			else
			{
				d.writeln("<TD"+__submenu+" class=\"menulink\">"+menu.items[i].name+"</TD>");
			}
		}
		d.writeln("</TR></TABLE>");
	}
	for (i = 0; i < menu.items.length; i++)
	{
		if (menu.items[i].submenu)
		{
			generateMenu(menu.items[i].submenu, true);
		}
	}
}

var __menutimer = null;

function menuitemover(id)
{
	if (__menutimer != null)
	{
		clearTimeout(__menutimer);
		__menutimer = null;
	}
	if (__currentMenu.id == id)
	{
		return;
	}
	hideSubmenus(__menuList[id].parentitem.parentmenu.id);
	showSubmenu(id);
}

function menuitemout()
{
	__menutimer = setTimeout("hideSubmenus(-1)", 300);
}

function showSubmenu(id, menu)
{
	menu = __menuList[id];
	if (menu.display || (__currentMenu.id == id))
	{
		return;
	}
	menu.display = true;
	
	__par = document.all[menu.parentitem.id];
    __left=0;
    __top=0;
    __width=__par.offsetWidth;
    __height=__par.offsetHeight;
	while (__par.tagName.toUpperCase() != "BODY"){
		if(__par.tagName.toUpperCase()!="FORM"&&__par.tagName.toUpperCase()!="TR"&&__par.tagName.toUpperCase()!="TBODY"){
			__left += __par.offsetLeft;
			__top += __par.offsetTop;
		}
		__par = __par.parentElement;
	}
	__par = document.all[menu.divid];
	if (menu.parentitem.parentmenu.parentitem != null)
	{
		__par.style.left = __left + __width + 21;
		__par.style.top = __top;
	}
	else
	{
		__par.style.left = __left - 5;
		__par.style.top = __top + __height + 4;
	}
	setVisibilityForSelects("hidden");
	__par.style.display = "inline";
	__par.style.zIndex = 100;
	__currentMenu = menu;
}

function hideSubmenus(stopOnID)
{
	while ((__currentMenu.id != stopOnID) && (__currentMenu.parentitem != null))
	{
		__currentMenu.display = false;
		document.all[__currentMenu.divid].style.display = "none";
		__currentMenu = __currentMenu.parentitem.parentmenu;
	}
	if (__currentMenu.parentitem == null)
	{
		setVisibilityForSelects("visible");
	}
}

function setVisibilityForSelects(visible,selects,i)
{
	selects = document.body.all.tags("select");
	for (i = 0; i < selects.length; i++)
	{
		if (selects[i].allow_menu_hide == "true") {
			selects[i].style.visibility = visible;
		}
	}
}
