
	var numOfMenus = 0;
	var menus = Array()
	
	var backgroundcolor = "";
	var bordercolor = "";
	var linkClass = "";
	var textClass = "";
	
	var menuDepth = Array()
	
	var timer = 0;
	
	if (document.layers) document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove=mtrack;
	
	var mouseY = -1;
	
	function mtrack(e)
	{
		if (document.layers)
		{
			mouseY = e.pageY;
		}
		else
		{
			mouseY = event.y;
		}
	}
	
	function set_bordercolor(value)
	{
		bordercolor = value;
	}

	function set_backgroundcolor(value)
	{
		backgroundcolor = value;
	}

	function set_linkClass(value)
	{
		linkClass = value;
	}

	function set_textClass(value)
	{
		textClass = value;
	}

	function newMenu(pimage, isLeft)
	{
		numOfMenus++;
		
		var menuID = numOfMenus-1;
		
		menus[menuID] = Array();
		
		var depth = -1;
		
		if (menuDepth.length)
		{
			depth = menuDepth[menuDepth.length-1];
		}
		
		menus[menuID]["isLeft"] = isLeft;
		menus[menuID]["pimage"] = pimage;
		menus[menuID]["parentMenuID"] = depth;
		menus[menuID]["items"] = Array();
		
		menuDepth[menuDepth.length] = menuID;
		
		return menuID;
	}
	
	function endMenu()
	{
		menuDepth.length--;
	}
	
	function newMenuItem(menuID, icon, name, URL, target, subMenuOfID)
	{
		var itemID = menus[menuID]["items"].length;
		menus[menuID]["items"][itemID] = Array();
		menus[menuID]["items"][itemID]["icon"] = icon;
		menus[menuID]["items"][itemID]["name"] = name;
		menus[menuID]["items"][itemID]["URL"] = URL;
		menus[menuID]["items"][itemID]["target"] = target;
		menus[menuID]["items"][itemID]["subMenuOfID"] = subMenuOfID;
	}
	
	//function to find the absolute x coordinate of a DHTML object
	function findPosX(obj)
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

	//function to find the absolute y coordinate of a DHTML object
	function findPosY(obj)
	{
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}

	function menuClick(menuID)
	{
		clearTimeout(timer);
		
		var obj = document.getElementById('menu' + menuID);
		var state = obj.style.visibility == 'visible' || obj.style.visibility == 'shown';
		
		hideAll();
		
		if (state)
		{
			hideMenu(menuID);
		}
		else
		{
			showMenu(menuID);
		}
	}
		
	function menuOver(menuID)
	{
		clearTimeout(timer);
	}
		
	function menuOut(menuID)
	{
		timer = setTimeout('menuOut_Aight('+menuID+', 1)', 1500);
	}
		
	function menuOut_Aight(menuID, andParent)
	{
		hideMenu(menuID, andParent);
	}
		
	function showMenu(menuID)
	{
		var pimage = document.images[menus[menuID]["pimage"]];
		var obj = document.getElementById('menu' + menuID);
		
		if (menus[menuID]["parentMenuID"] == -1)
		{
			if (menus[menuID]["isLeft"])
			{
				menus[menuID]["left"] = findPosX(pimage) + pimage.width + 3;
			}
			else
			{
				menus[menuID]["left"] = findPosX(pimage) - 179;
			}
			
			menus[menuID]["top"] = findPosY(pimage);
		}
		else
		{
			showMenu(menus[menuID]["parentMenuID"]);

			if (menus[menuID]["isLeft"])
			{
				menus[menuID]["left"] = menus[menus[menuID]["parentMenuID"]]["left"] + 176;
			}
			else
			{
				menus[menuID]["left"] = menus[menus[menuID]["parentMenuID"]]["left"] - 176;
			}
			
			menus[menuID]["top"] = mouseY;
		}
		
		obj.style.left = menus[menuID]["left"];
		obj.style.top = menus[menuID]["top"];
		
		obj.style.visibility = 'visible';
	}
	
	function hideAll()
	{
		for(var menuID=0; menuID<numOfMenus; menuID++)
		{
			hideMenu(menuID);
		}
	}
	
	function hideMenu(menuID, andParent)
	{
		var obj = document.getElementById('menu' + menuID);
		obj.style.visibility = 'hidden';
		
		if (andParent == 1 && menus[menuID]["parentMenuID"] != -1)
		{
			hideMenu(menus[menuID]["parentMenuID"]);
		}

		for(var i=0; i<numOfMenus; i++)
		{
			if (menus[i]["parentMenuID"] == menuID)
			{
				hideMenu(i);
			}
		}
	}
	
	function outputMenus()
	{
		var lnk = '';
		
		if (linkClass)
		{
			lnk = ' class=' + linkClass + ' ';
		}
		
		for(var menuID=0; menuID<numOfMenus; menuID++)
		{
			document.write('<DIV onmouseover="menuOver('+menuID+');" onmouseout="menuOut('+menuID+');" style="position:absolute; visibility:hidden; top:0px; left:0px; z-index:100;" id=\"menu' + menuID + '"><TABLE cellpadding=0 cellspacing=1 bgcolor=\"' + bordercolor + '\"><TR><TD><TABLE width=175 bgcolor="' + backgroundcolor + '">');

			for(var itemID=0; itemID<menus[menuID]["items"].length; itemID++)
			{
				var target = menus[menuID]["items"][itemID]["target"];
				var icon = menus[menuID]["items"][itemID]["icon"];
				
				if (target)
				{
					target = "target = \"" + target + "\"";
				}
				
				if (icon)
				{
					icon = "<TD width=27><IMG src=\"images/" + icon + "\" alt=\"\" border=0></TD>";
				}			
				else
				{
					icon = "<TD width=27></TD>";
				}			
				
				document.write("<TR>" + icon + "<TD width=148><A " + target + " href=\"" + menus[menuID]["items"][itemID]["URL"] + "\" " + lnk + ">" + menus[menuID]["items"][itemID]["name"] + "</A></TD></TR>");
			}

			document.write("</TABLE></TD></TR></TABLE></DIV>");
		}
	}
