﻿
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,
        minWidth:220
    });

    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;
}
