﻿var JsMenuDiv;
function JsMenuShow(evt, vmenu, obj)
{
    JsMenuDiv = document.getElementById('divJsMenu');
    if(JsMenuDiv == null){
        JsMenuDiv = document.createElement("div");
        JsMenuDiv.id = 'divJsMenu';
        JsMenuDiv.className = 'JsMenuSkin';
        window.document.body.appendChild(JsMenuDiv);
    }
    JsMenuDiv.innerHTML = vmenu;
    JsMenuDiv.style.display = 'block';
    
    var pos = ie_absPos(obj);
    var objleft = parseInt(pos.x, 10);
    var bodywidth = document.body.clientWidth;
    var menuwidth = JsMenuDiv.clientWidth;
    
    if(objleft + menuwidth + 5 > bodywidth )
    {
        objleft = bodywidth - menuwidth - 5;
    }
    
    JsMenuDiv.style.left = objleft +'px';
    JsMenuDiv.style.top = parseInt(pos.y, 10) + 18 +'px';
    
    if(vmenu == '')
    {
        JsMenuDiv.style.display = 'none';
        return;
    }
    
    if(document.all)
    {
        JsMenuDiv.onmouseout = new Function('JsMenuDynamicHide(event)');
    }
    else
    {
        JsMenuDiv.addEventListener('mouseout', function(e){JsMenuDynamicHide(e)}, true);
    }

    function ie_absPos(el){
	    for (var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
	    return {x:lx,y:ly}
    }
}

function JsMenuContains(a, b) {
	while (b.parentNode)
	{
		if ((b = b.parentNode) == a)
		{
			return true;
		}
	}
	return false;
}

function JsMenuDynamicHide(e)
{
    if(document.all)
    {
        if(!JsMenuDiv.contains(e.toElement))
        {
            JsMenuHide();
        }
    }
    else
    {
        if(e.currentTarget != e.relatedTarget && !JsMenuContains(e.currentTarget, e.relatedTarget))
        {
            JsMenuHide();
        }
    }
}

function JsMenuHide()
{
    if(JsMenuDiv)
    {
        JsMenuDiv.style.display = 'none';
    }
}
document.onclick = function(){
    JsMenuHide();
};
