fShow="visible";
fHide="hidden";

window.onerror=new Function("return true")
////////////////////////////////////////////////////////////////////////////
// Function Menu()                                                        //
////////////////////////////////////////////////////////////////////////////
rightX = 0;
function Menu()
{

	this.addItem    = addItem;
	this.addSubItem = addSubItem;
	this.showMenu   = showMenu;

	lastMenu = null;
	
	rightY = 0;
	leftY = 0;
	leftX = 0;

	HTMLstr = "";
	HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";
	HTMLstr += "\n";
	HTMLstr += "<span id='MainTable'>\n";
	HTMLstr += "<table class=bgcolor> \n";
	HTMLstr += "<tr>";
	HTMLstr += "<!-- MAIN MENU STARTS -->\n";
	HTMLstr += "<!-- MAIN_MENU -->\n";
	HTMLstr += "<!-- MAIN MENU ENDS -->\n";
	HTMLstr += "</tr>\n";
	HTMLstr += "</table>\n";
	HTMLstr += "\n";
	HTMLstr += "<!-- SUB MENU STARTS -->\n";
	HTMLstr += "<!-- SUB_MENU -->\n";
	HTMLstr += "<!-- SUB MENU ENDS -->\n";
	HTMLstr += "\n";
	HTMLstr+= "</span>\n";
	HTMLstr += "<!-- MENU PANE DECALARATION ENDS -->\n";
}

function addItem(idItem, text, hint, location, altLocation)
{
	var Lookup = "<!-- ITEM "+idItem+" -->";
	if (HTMLstr.indexOf(Lookup) != -1)
	{
		alert(idParent + " already exist");
		return;
	}
	var MENUitem = "";
	MENUitem += "\n<!-- ITEM "+idItem+" -->\n";
	
	MENUitem += "<td width='25%'>\n";
	MENUitem += "<span id='"+idItem+"' class=clsMenuItemIE>\n";
	MENUitem += "<a ";
	MENUitem += "class=clsMenuItemIE ";
		if (hint != null)
		{
		MENUitem += "title='"+hint+"' ";
		}

		if (location != null)
		{
			MENUitem += "href='"+location+"' ";
			MENUitem += "onmouseover=\"hideAll()\" ";
		}
		else
		{
			if (altLocation != null)
			{
				MENUitem += "href='"+altLocation+"' ";
			}
			else
			{
				MENUitem += "href='.' ";
				MENUitem += "onmouseover=\"displaySubMenu('"+idItem+"')\" ";
				MENUitem += "onclick=\"return false;\" "
			}
		}
	MENUitem += ">";
	MENUitem += text;
	MENUitem += "</a>\n";
	MENUitem += "</span>\n";
	MENUitem += "</td>\n";
	
	MENUitem += "<!-- END OF ITEM "+idItem+" -->\n\n";
	MENUitem += "<!-- MAIN_MENU -->\n";

	HTMLstr = HTMLstr.replace("<!-- MAIN_MENU -->\n", MENUitem);
}

function addSubItem(idParent, text, hint, location, ziel)
{
	var MENUitem = "";
	Lookup = "<!-- ITEM "+idParent+" -->";
	if (HTMLstr.indexOf(Lookup) == -1)
	{
		alert(idParent + " not found");
		return;
	}
	Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->";
	if (HTMLstr.indexOf(Lookup) == -1)
	{
		
		MENUitem += "\n";
		MENUitem += "<span id='"+idParent+"submenu' class=submenue style='position:absolute; visibility: hidden; z-index:'1'; top: -300;'>\n";
		MENUitem += "<table class=submenue>\n";
		MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
		MENUitem += "</table>\n";
		MENUitem += "</span>\n";
		MENUitem += "\n";
		MENUitem += "<!-- SUB_MENU -->\n";
		HTMLstr = HTMLstr.replace("<!-- SUB_MENU -->\n", MENUitem);
	}

	Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
	MENUitem = "<tr><td><a class=clsMenuItemIE title='"+hint+"' href='"+location+"' target='"+ziel+"'>"+text+"</a><br></td></tr>\n";
	MENUitem += Lookup;
	HTMLstr = HTMLstr.replace(Lookup, MENUitem);

}

function showMenu()
{
	document.writeln(HTMLstr);
}

////////////////////////////////////////////////////////////////////////////
// Private declaration
function displaySubMenu(idMainMenu)
{
	var menu;
	var submenu;
 
	menu = eval(idMainMenu);
	submenu = eval(idMainMenu+"submenu.style");
	submenu.left = calculateSumOffset(menu, 'offsetLeft');
//	submenu.top  = calculateSumOffset(menu, 'offsetTop') + 30;
	submenu.top  = menu.style.top+23;
	submenu.visibility = fShow;
	if (lastMenu != null && lastMenu != submenu) hideAll();

	leftX  = document.all[idMainMenu+"submenu"].style.posLeft;
	rightX = leftX + document.all[idMainMenu+"submenu"].offsetWidth;
	leftY  = document.all[idMainMenu+"submenu"].style.posTop+
	document.all[idMainMenu+"submenu"].offsetHeight;
	rightY = leftY;
	lastMenu = submenu;
}

function hideAll()
{
	if (lastMenu != null) {lastMenu.visibility = fHide;lastMenu.left = 0;}
}

function calculateSumOffset(idItem, offsetName)
{
	var totalOffset = 0;
	var item = eval('idItem');
	do
	{
		totalOffset += eval('item.'+offsetName);
		item = eval('item.offsetParent');
	} 
	while (item != null);
	return totalOffset;
}

function updateIt(e)
{
	var x = window.event.clientX;
	var y = window.event.clientY;
	if (x > rightX || x < leftX) hideAll();
	else if (y > rightY) hideAll();
	
}


document.body.onclick=hideAll;
document.body.onscroll=hideAll;
document.all.onmousemove=updateIt;
