﻿var subMenuObj = null;
var mainMenuObj = null;

function showMenu(obj) {
    hideMenu(window.event.clientX, window.event.clientY);
    var objId = obj.id;
    subMenuObj = document.getElementById(objId + "_Sub");
    if (typeof (subMenuObj) != "undefined" && subMenuObj != null) {
        mainMenuObj = document.getElementById(objId);
        //mainMenuObj.style.background = "#c0c0c0";
        if (typeof (mainMenuObj) != "undefined" && mainMenuObj != null) {
            subMenuObj.style.left = getAbsoluteOffsetLeft(mainMenuObj) + "px";
            subMenuObj.style.top = (getAbsoluteOffsetTop(mainMenuObj) + mainMenuObj.offsetHeight) + "px";
            subMenuObj.style.display = "block";
        }
    }
}

function goTo(url) {
    document.location.href = url;
}

function getAbsoluteOffsetLeft(obj) {
    var i_offsetLeft = 0;
    while (obj) {
        i_offsetLeft += (isNaN(obj.offsetLeft)) ? 0 : obj.offsetLeft;
        obj = obj.parentNode;
    }
    return i_offsetLeft;
}

function getAbsoluteOffsetTop(obj) {
    var i_offsetTop = 0;
    while (obj) {
        i_offsetTop += (isNaN(obj.offsetTop)) ? 0 : obj.offsetTop;
        if (i_offsetTop > 0) break;
        obj = obj.parentNode;
    }
    return i_offsetTop;
}

function wireEvents() {
    document.onmousemove = mouseMoveEvent;
}

var mouseX = 0;
var mouseY = 0;

function mouseMoveEvent(evt) {
    var e = (window.event) ? window.event : evt;
    var x = e.clientX;
    var y = e.clientY;
    hideMenu(x, y);
}

function hideMenu(x, y) {
    var elm = document.elementFromPoint(x, y);
    if (mainMenuObj != null && subMenuObj != null) {
        if (elm != mainMenuObj && elm != subMenuObj && !checkMenu(elm, subMenuObj)) {
            subMenuObj.style.display = "none";
            //mainMenuObj.style.background = "#AA0000";
        }
    }
}

function checkMenu(obj, parentObj) {
    obj = obj.parentNode;
    while (obj) {
        if (obj == parentObj) return true;
        obj = obj.parentNode;
    }
    return false;
}
