var moveregistered = false;
function findPos(obj) {
    var curleft = curtop = 0;
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
        }
    return [curleft, curtop];
}

function dropdownmenu_regmove() {
    moveregistered = true;
}


function dropdownmenu(show) {
//    var isMSIE = /*@cc_on!@*/false;
    var isMSIE = false;

    if (show) {
        moveregistered = false;
    } else if (!moveregistered) {
        return;
    }
    /* ugly */
    y = document.getElementById("a_dropdownmenu");
    var x = findPos(y);
    posx = x[0];
    posy = x[1];

    posy += y.offsetHeight;
    var y = document.getElementById("div_dropdownmenu");
    if (show) {
        y.style.display = "block";
    } else {
        y.style.display = "none";
    }
    y.style.left = posx + "px";
    y.style.top = (posy - 10) + "px";


    if (isMSIE) {
        y.style.top = posy + "px";
        y.style.height = (y.offsetHeight - 12) + "px";
    }

    var aup = document.getElementById("dropdownmenu_aup");
    var adown = document.getElementById("dropdownmenu_adown");
    if (show) {
        aup.style.display = "none";
        adown.style.display = "";
    } else {
        aup.style.display = "";
        adown.style.display = "none";
    }
}

function dropdowndclose(e, tagname) {
    var y = document.getElementById("div_" + tagname);
    if (y == null) alert(tagname);
    y.timer = setTimeout(function() {
        dropdownsimple(e, false, tagname);
    }, 250);
}

function cancelomo(e, tagname) {
    var y = document.getElementById("div_" + tagname);
    if (y == null) alert(tagname);
    if (y.timer) {
        clearTimeout(y.timer);
    }
}

function dropdownsimple(e, show, tagname, nohide, moveproc) {
    var y = document.getElementById("div_" + tagname);
    if (y == null) alert(tagname);
    if (!show) {
//        if ((!e.relatedTarget) || (e.relatedTarget.id != ("div_" + tagname))) {
//            return;
//        }
    }
    z = document.getElementById("a_" + tagname);
    var x = findPos(z);
    if (show) {
        y.style.display = "block";
        if (nohide != true) z.style.display = "none";
    } else {
        y.style.display = "none";
        if (nohide != true) z.style.display = "";
    }

    if (!show) return;

    /* ugly f0ndr */
    posx = x[0];
    posy = x[1];

    if (moveproc == null) {
        y.style.left = posx - 36 + "px";
        y.style.top = posy - 9 + "px";
    } else {
        res = moveproc(posx, posy);
        y.style.left = res[0] + "px";
        y.style.top = res[1] + "px";
    }
}


