	var currentParent;
	var currentMenu;
	var menuToHide;
	var fadestep;
	var cleared = true;
	var browserdetect;
	var gmx, gmy;
	
	function Pos(thisitem)
	{
		if(typeof(thisitem) != 'object') {thisitem = document.getElementById(thisitem);}
		var ww = thisitem.offsetWidth, hh = thisitem.offsetHeight;
		for (var xx = 0,yy = 0; thisitem != null; xx += thisitem.offsetLeft,yy += thisitem.offsetTop,thisitem = thisitem.offsetParent);
		//return {Left:xx, Top:yy, Right:xx + ww, Bottom:yy + hh}
		return {Left:xx + gmx, Top:yy, Right:xx + ww, Bottom:yy + hh+ gmy}
	}
	
	function ShowMenu(thisitem, menu, mx, my)
	{
		cleared = false
		gmx=mx;
		gmy=my;
		currentParent = thisitem;
		if(typeof(menu) != 'object')
			{menu = document.getElementById(menu);}
		if(currentMenu == menu)
			{
				if (!cleared) clearInterval(fadestep);
				currentMenu = null;
			}
		else if(currentMenu != null)
			{
				InstantHide(currentMenu);
				if (!cleared) clearInterval(fadestep);
				currentMenu = null;
			}
		currentMenu = menu;
		browserdetect=menu.filters? "ie" : typeof(menu.style.MozOpacity) == "string" ? "mz" : ""
		if (browserdetect == "ie")
			{currentMenu.filters.alpha.opacity = '100';
			}
		else if (browserdetect == "mz")
			{currentMenu.style.MozOpacity = 1}
		currentMenu.style.left = Pos(currentParent).Left;
		currentMenu.style.top = Pos(currentParent).Bottom;
		currentMenu.style.visibility = 'visible';
	}
	
	function HoldMenu()
	{
		ShowMenu(currentParent, currentMenu, gmx, gmy);
	}
	
	function HideMenu(hideMenu)
	{
		if(typeof(hideMenu) != 'object')
			{hideMenu = document.getElementById(hideMenu);}
		if(menuToHide != hideMenu && menuToHide != null)
			{InstantHide(menuToHide);}
		menuToHide = hideMenu;
		FadeMenu();
	}

	function FadeMenu()
	{
		fadestep=setInterval("FadeLevel()",50)
	}
	
	function FadeLevel()
	{
		if (browserdetect == "ie")
			{menuToHide.filters.alpha.opacity-=20}
		else if (browserdetect == "mz")
			{menuToHide.style.MozOpacity-=.1}
		else
			{menuToHide.style.visibility = 'hidden';}
			
		/*if ((menuToHide.style.MozOpacity == 0.0)||(menuToHide.filters.alpha.opacity == 0))
			{
				InstantHide(menuToHide);
				menuToHide = null;
			}*/
	}
	
	function InstantHide(iHideMenu) {
		clearInterval(fadestep);
		cleared=true
		iHideMenu.style.visibility = 'hidden';
	}
	
	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}