/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var ___visibleMenuId=null;

function showMenu(newId, parent) {
    hideMenu();
    ___visibleMenuId=newId;
    //    var parent=document.getElementById(pId);
    var menu=document.getElementById(newId);
    updatePosition(parent, menu);
    menu.style.display="table";
    installEventSystem(newId, menu);
}

function installEventSystem(newId, parent) {
    parent.setAttribute("onmouseover", "holdVisibility(\""+newId+"\")");
    parent.setAttribute("onmouseout", "hideMenu()");
    var children = parent.childNodes;
    for (var i = 0; i < children.length; i++){
        var child=children[i];
        if (child.nodetype==1) {
            installEventSystem(newId, child);
        }
    };
}

function holdVisibility(newId) {
    hideMenu();
    ___visibleMenuId=newId;
    //    var parent=document.getElementById(pId);
    var menu=document.getElementById(newId);   
    menu.style.display="table";
}

function hideMenu() {
    if (___visibleMenuId!=null) {
        document.getElementById(___visibleMenuId).style.display="none";
    }
    ___visibleMenuId=null;
}

function updatePosition(parentElement, menuElement) {
    var pos=getPos(parentElement);
    menuElement.style.left=pos.left+"px";
    menuElement.style.top=(pos.top+20)+"px";
}

function getPos(element){
    //    e = (e) ? e : window.event;
    //    var element = (e.target) ? e.target: e.srcElement;

    var left = element.offsetLeft;
    var top  = element.offsetTop;
    while(element=element.offsetParent)
    {
        left += element.offsetLeft;
        top  += element.offsetTop;
    }
    var arr={
        "left":left,
        "top":top
    };
    return arr;
}

