
function registerMenu(m, sm, loffset, toffset)
{
	var menu = document.getElementById(m);
	var submenu = document.getElementById(sm);

	if(typeof(HTMLElement)!="undefined")   //给firefox定义contains()方法，ie下不起作用
  	{  
      		HTMLElement.prototype.contains=function(obj)  
      		{  
			while(obj!=null&&typeof(obj.tagName)!="undefind"){ //通过循环对比来判断是不是obj的父元素
			if(obj==this)  return true;  
			obj=obj.parentNode;
			}  
			return false;  
		};  
	}  

	menu.onmouseover = function()
	{
		submenu.style.left=getLeft(menu)+loffset;
		submenu.style.top=getTop(menu)+toffset;

		submenu.style.display="block";
	}

	menu.onmouseout = function(event)
	{
		e = window.event;

		if(e == undefined)
		{
			e = event.relatedTarget;
		}		
		else
		{
			e = window.event.toElement;
		}
	
		if(e == undefined)
		{
			return;
		}
		
		if(submenu.contains(e))
		{
			submenu.onmouseout = function(event2)
			{
				e2 = window.event;

				if(e2 == undefined)
				{
					e2 = event2.relatedTarget;
				}		
				else
				{
					e2 = window.event.toElement;
				}
	
				if(e2 == undefined)
				{
					return;
				}
				if(!submenu.contains(e2) || e2.className == "transparentlayer")
				submenu.style.display = "none";
			}
		}                                      
		else
		{
			submenu.style.display="none";
		}
	}
}

function getTop(c)
{ 
	var offset = c.offsetTop; 

	if(c.offsetParent != null) 
	{
		offset += getTop(c.offsetParent); 
	}

	return offset; 
} 

function getLeft(c)
{ 
	var offset = c.offsetLeft; 

	if(c.offsetParent != null)
	{
		offset += getLeft(c.offsetParent); 
	}

	return offset; 
}
