var mainmenu=new function()
{
	var popupedmenu;

	this.isChildOf=function(child, parent)
	{
		var o=child;
		
		while(o.parentNode)
		{
			if (o.parentNode==parent) return true;
			o=o.parentNode;
		}
		
		return false;
	}
	
	this.hide=function()
	{
		if (popupedmenu)
		{
			popupedmenu.style.display='none';
			popupedmenu=null;
		}	
	}
	
	var timer;
	
	this.show=function(parent, id)
	{
		var This=this;
		
		var omenu=document.getElementById(id);
		
		if (timer)
		{
			clearTimeout(timer);
			timer=null;
		}
		
		this.hide();
		
		if (omenu)
		{
			var xy=common.getXY(parent);	
			omenu.style.display='';
			omenu.style.left=xy[0]-8+'px';
			omenu.style.top=xy[1]+25+'px';
			
			omenu.onmousemove=function(e)
			{
				if (timer)
				{
					clearTimeout(timer);
					timer=null;
				}
			}
			
			omenu.onmouseout=function(e)
			{
				if (!e) e=window.event;
				
				var o;
				if (e.relatedTarget)
					o=e.relatedTarget;
				else if (e.toElement)
					o=e.toElement;

				if (o!=omenu)
				{
					if (!This.isChildOf(o, omenu))
					{
						timer=setTimeout(function() {
								omenu.onmouseout=null;
								This.hide();
							}, 150);
					}
				}
			}
			
			popupedmenu=omenu;
		}
		
		parent.onmouseout=function(e)
		{
			if (!e) e=window.event;
			
			var o;
			if (e.relatedTarget)
				o=e.relatedTarget;
			else if (e.toElement)
				o=e.toElement;
			
			if (o!=omenu) timer=setTimeout(This.hide, 150);
		}	
	}
}
