if (document.all)    {n=0;ie=1;fShow="visible";fHide="hidden";}

if (document.layers) {n=1;ie=0;fShow="show";   fHide="hide";}

if (navigator.userAgent.indexOf("MSIE 4.5; Mac")!=-1) {n=0;ie=0;fShow="hide";   fHide="hide";}

var gk=0;
if (navigator.userAgent.indexOf("Gecko") !=-1) {ie=1;n=0;gk=1;fShow="visible"; fHide="hidden";}



window.onerror=new Function("return true")

////////////////////////////////////////////////////////////////////////////

// Function Menu()                                                        //

////////////////////////////////////////////////////////////////////////////

rightX = 0;

function Menu()

{

	this.bgColor     = "#007a00";

	if (ie) this.menuFont = "bold xx-small Verdana";

    if (n)  this.menuFont = "bold x-small Verdana";

    this.fontColor   = "white";



	this.addItem    = addItem;

	this.addSubItem = addSubItem;

	this.showMenu   = showMenu;

	this.mainPaneBorder = 0;

	this.subMenuPaneBorder = 0;



	this.subMenuPaneWidth = 190;



	lastMenu = null;

	

	rightY = 0;

	leftY = 0;

	leftX = 0;



	HTMLstr = "";

	HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";

	HTMLstr += "\n";

	if (ie) HTMLstr += "<div id='MainTable' style='position:relative'>\n";

//	if (n)  HTMLstr += "<layer name='MainTable'>\n";

	HTMLstr += "<table width='100%' height=22 bgcolor='"+this.bgColor+"' cellspacing=0 cellpadding=0 border='"+this.mainPaneBorder+"' background=http://www.wiehl.de/bilder/backoben.gif>\n";

	HTMLstr += "<tr>";

	if (n) HTMLstr += "\n";

	HTMLstr += "<!-- MAIN MENU STARTS -->\n";

	HTMLstr += "<!-- MAIN_MENU -->\n";

	HTMLstr += "<!-- MAIN MENU ENDS -->\n";

	if (n) HTMLstr += "\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";

	if (ie) HTMLstr+= "</div>\n";

//	if (n)  HTMLstr+= "</layer>\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";

	if (n)

	{

		MENUitem += "<td><ilayer name="+idItem+">";

		MENUitem += "<a href='#' class=clsMenuItemNS onmouseover=\"displaySubMenu('"+idItem+"')\" onclick=\"return false;\">";

		

		MENUitem += text;

		MENUitem += "</a>";

		MENUitem += "</ilayer></td>";

	}

	if (ie)

	{

		MENUitem += "<td>\n";

		MENUitem += "<div id='"+idItem+"' style='position:relative; font: "+this.menuFont+";'>\n";

		MENUitem += "<a ";

		MENUitem += "class=clsMenuItemIE ";

//		MENUitem += "style='text-decoration: none; font: "+this.menuFont+"; color: "+this.fontColor+"; cursor: hand;' ";

		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 += "style=\"cursor : s-resize\" "

		}

		MENUitem += ">";

		

		MENUitem += text;

		MENUitem += "</a>\n";

		MENUitem += "</div>\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)

{

	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)

	{

		if (n)

		{

			MENUitem += "\n";

			MENUitem += "<layer id='"+idParent+"submenu' visibility=hide>\n";

			MENUitem += "<table cellpadding=2 cellspacing=0 border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+" background=http://www.wiehl.de/bilder/backoben.gif>\n";

			MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";

			MENUitem += "</table><table border=0 cellpadding=0 cellspacing=0><tr><td><img src=http://www.wiehl.de/bilder/menu.gif></td></tr></table>\n";

			MENUitem += "</layer>\n";

			MENUitem += "\n";

		}

		if (ie)

		{

			MENUitem += "\n";

			MENUitem += "<div id='"+idParent+"submenu' style='position:absolute; visibility: hidden; width: "+this.subMenuPaneWidth+"; font: "+this.menuFont+"; top: -300;'>\n";

			MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+" background=http://www.wiehl.de/bilder/backoben.gif>\n";

			MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";

			MENUitem += "</table><table border=0 cellpadding=0 cellspacing=0><tr><td><img src=http://www.wiehl.de/bilder/menu.gif></td></tr></table>\n";

			MENUitem += "</div>\n";

			MENUitem += "\n";

		}

		MENUitem += "<!-- SUB_MENU -->\n";

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

	}



	Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";

	if (n)  MENUitem = "<tr><td><a class=clsMenuItemNS title='"+hint+"' href="+location+">"+text+"</a><br></td></tr>\n";

	if (ie) MENUitem = "<tr><td><a class=clsMenuItemIE title='"+hint+"' href="+location+">"+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;

	if (n)

	{

		submenu = document.layers[idMainMenu+"submenu"];

		if (lastMenu != null && lastMenu != submenu) hideAll();

		submenu.left = document.layers[idMainMenu].pageX;

		submenu.top  = document.layers[idMainMenu].pageY + 17;

		submenu.visibility = fShow;



		leftX  = document.layers[idMainMenu+"submenu"].left;

		rightX = leftX + document.layers[idMainMenu+"submenu"].clip.width;

		leftY  = document.layers[idMainMenu+"submenu"].top+

			document.layers[idMainMenu+"submenu"].clip.height;

		rightY = leftY;

	} else if (ie && !gk) {

		menu = eval(idMainMenu);

		submenu = eval(idMainMenu+"submenu.style");

		submenu.left = calculateSumOffset(menu, 'offsetLeft');

//		submenu.top  = calculateSumOffset(menu, 'offsetTop') + 30;

		submenu.top  = menu.style.top+20;

		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;

	} else if (gk) {
		
		menu = document.getElementById(idMainMenu);
		

		submenu = document.getElementById(idMainMenu+"submenu").style;

		submenu.left = calculateSumOffset(menu, 'offsetLeft');

		submenu.top  = menu.style.top - (-20);
                submenu.top = submenu.top + 'px'
                
		submenu.visibility = fShow;

		if (lastMenu != null && lastMenu != submenu) hideAll();


                leftX = submenu.left.replace('px','');
                rightX = leftX - (-submenu.width.replace('px',''));

		leftY  = submenu.top.replace('px','') - (-document.getElementById(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)

{

	if (ie && !gk)

	{

		var x = window.event.clientX;

		var y = window.event.clientY;



		if (x > rightX || x < leftX) hideAll();

		else if (y > rightY) hideAll();

	}

	if (n || gk)

	{

		var x = e.pageX;

		var y = e.pageY;



		if (x > rightX || x < leftX) hideAll();

		else if (y > rightY) hideAll();

	}

}



if (document.all || gk)

{

	document.body.onclick=hideAll;

	document.body.onscroll=hideAll;

	document.body.onmousemove=updateIt;

}

if (document.layers && !gk)

{

	document.onmousedown=hideAll;

	window.captureEvents(Event.MOUSEMOVE);

	window.onmousemove=updateIt;

}
