
	//set time (disappear the menus when mouse is released) 
	var hideDelay=2000;

	//variables browser compatibility
	var runable=(!document.getElementById)? (!document.all)? (!document.layers)? -1:1:2:3;
	var ie=(document.all)? true:false;
	var nowShowing="$";
	var showedMenu="";
	var onLayer=onLink=flgShow=0;
	var timerID=st=en=0;
	var mx=my=0;
	
	window.onload=function () { if (runable>1) document.onmousemove=function (event) {delayHideMenu(event) } }
	function getElm(name,style)
	{//get HTML object
		var doc=self.document;
		if (runable==2) var gobj=doc.all(name); //IE4+
		else var gobj=doc.getElementById(name); //DOM
		if (style && runable>1) gobj=gobj.style;
		return gobj;
	}
	function showMenu(n,X,Y)
	{//show menus
		if (runable<2) return;
		var obj=getElm("menu"+n,1);
		var lnk=getElm("menuButton"+n);
		var lnks=getElm("menuButton"+n,1);
		nowShowing=n;
		
		//in case of menu is visible, hide all
		if (showedMenu!="" && showedMenu!=nowShowing) hideMenu(showedMenu);
		if (obj.visibility=="visible" && onLink==1) return;
		lnk.onmouseout=leaveLink;
		onLayer=onLink=1;
		obj.left=X || parseInt(lnks.left);
		obj.top=Y || parseInt(lnks.top)+((runable==1)? lnk.clip.height:lnk.offsetHeight);
		obj.visibility="visible";
		showedMenu=nowShowing;
		flgShow=1;
		clearTimeout(timerID);
		st=t();
	}
	function leaveLink()
	{//mouse is released from link
		onLink=0;
		en=t();
	}
	function delayHideMenu(e)
	{//check menu is visible or invisible 1
		mx=gmx(e);
		my=gmy(e);
		if (nowShowing=="$" || flgShow==0 || st==0) return;
		if (onLink==0 && checkPosition())
		{//when mouse is relesed from link and menu
			en=t();
			onLayer=0;
			hideMenu();
		}
		else
		{
			st=t();
			onLayer=1;
			clearTimeout(timerID);
		}
	}
	function hideMenu(n)
	{//check menu is visible or invisible 2
		clearTimeout(timerID);
		if (!n)
		{
			
			if (nowShowing=="$" || onLayer!=0) return;
			if (onLink==1) 
			{//mouse is on link
				timerID=setTimeout("hideMenu()",hideDelay);
				st=t();
				return;
			}
			else if (((en-st)%hideDelay)<hideDelay && st!=0) 
			{//time is not passed
				clearTimeout(timerID);
				timerID=setTimeout("hideMenu()",hideDelay);
				st=0;
				return;
			}
			else if (!checkPosition())
			{//moouse is on menu
				st=t();
				return;
			}
		}
		
		//menu is invisible
		getElm("menu"+((n)? n:nowShowing),1).visibility="hidden";
		showedMenu="";
		onLayer=flgShow=0;
	}
	function checkPosition()
	{//check mouse is on the menu
		if (nowShowing=="$") return;
		var obj=getElm("menu"+nowShowing);
		var x=mx-((runable==1)? parseInt(obj.left):obj.offsetLeft);
		var y=my-((runable==1)? parseInt(obj.top):obj.offsetTop);
		var w=(runable==1)? parseInt(obj.clip.width):obj.offsetWidth;
		var h=(runable==1)? parseInt(obj.clip.height):obj.offsetHeight;
		if (onLink==0 && (x<=0 || y<=0 || x>=w || y>=h)) return true;
		return false;
	}
	function t()
	{
		return (new Date()).getTime();
	}
	function gmx(e)
	{//get mouse position x
		if (ie) return document.body.scrollLeft+event.clientX;
		else return e.pageX;
	}
	function gmy(e)
	{//get mouse position y
		if (ie) return document.body.scrollTop+event.clientY;
		else return e.pageY;
	}


