﻿
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function createAdminMenu(menuSpanId, contextElement)
{
    var menu = new Ext.menu.Menu({
        id: menuSpanId,
        menuContextElement: contextElement
    });

    menu.on("show",function(e){
		var overlay=document.createElement("div");
		document.body.appendChild(overlay);
		overlay.style.top=findPos(e.menuContextElement)[1]-1+"px";
		overlay.style.left=findPos(e.menuContextElement)[0]-1+"px";
		overlay.style.width=e.menuContextElement.scrollWidth+"px";
		overlay.style.height=e.menuContextElement.scrollHeight+"px";
		overlay.style.background="#5555FF";
		overlay.style.opacity=".3";
		overlay.style.filter="alpha(opacity = 30)";
		overlay.style.border="solid 1px #0000FF";
		overlay.style.position="absolute";
		e.overlay=overlay;
     
    });

    menu.on("hide", function(e){
        document.body.removeChild(e.overlay);
    });

    contextElement.oncontextmenu = function(e)
    {
        if (!e) e = event;
        var x = e.clientX ? e.clientX : e.X;
        var y = e.clientY ? e.clientY : e.Y;
        menu.showAt([x, y]);
        return false;
    }
    
    return menu;
}
