	
	var timeout	= 500;
	var closetimer	= 0;
	var ddmenuitem	= 0;
	function getPos (obj) {
		var output = new Object();
		var mytop=0, myleft=0;
		while( obj) {
			mytop+= obj.offsetTop;
			myleft+= obj.offsetLeft;
			obj= obj.offsetParent;
		}
		output.left = myleft;
		output.top = mytop;
		return output;
	}
	// open hidden layer
	function mopen(id, menu)
	{	
		// cancel close timer
		mcancelclosetime();
	
		// close old layer
		if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
		var position = document.getElementById(menu);
		var inputPos = getPos(position);
		// get new layer and show it
		ddmenuitem = document.getElementById(id);
		ddmenuitem.style.visibility = 'visible';
	    ddmenuitem.style.top = (inputPos.top+16) + "px";
	    ddmenuitem.style.left = (inputPos.left-10) + "px";
	    ddmenuitem.style.zIndex = "99";
		// close layer when click-out
		document.onclick = mclose;
	
	}
	// close showed layer
	function mclose()
	{
		if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
		// close layer when click-out
		document.onclick = null;
	}
	
	// go close timer
	function mclosetime()
	{
		closetimer = window.setTimeout(mclose, timeout);
	}
	
	// cancel close timer
	function mcancelclosetime()
	{
		if(closetimer)
		{
			window.clearTimeout(closetimer);
			closetimer = null;
		}
	}
	
