//var __sto = setTimeout;
//window.setTimeout = function(callback, timeout, param) {
//    var args = Array.prototype.slice.call(arguments, 2);
//    var _cb = function() {
//        callback.apply(null, args);
//    }
//    __sto(_cb, timeout);
//}//重写setTimeOut使其可以带对象参数;

var menuTimer = null;
function showmenu(obj1, state, location) {
    var btn = obj1;
    var obj = btn.parentNode.getElementsByTagName('div')[0];
    //var obj = document.getElementById(obj2);
    var h = btn.offsetHeight;
    var w = btn.offsetWidth;
    var x = btn.offsetLeft;
    var y = btn.offsetTop;

    obj.onmouseover = function() {
        showmenu(obj1, 'show', location);
    }
    obj.onmouseout = function() {
        showmenu(obj1, 'hide', location);
    }

    while (btn = btn.offsetParent) { y += btn.offsetTop; x += btn.offsetLeft; }

    var hh = obj.offsetHeight;
    var ww = obj.offsetWidth;
    var xx = obj.offsetLeft; //style.left;
    var yy = obj.offsetTop; //style.top;
    var obj2state = state.toLowerCase();
    var obj2location = location.toLowerCase();

    var showx, showy;

    if (obj2location == "left" || obj2location == "l" || obj2location == "top" || obj2location == "t" || obj2location == "u" || obj2location == "b" || obj2location == "r" || obj2location == "up" || obj2location == "right" || obj2location == "bottom") {
        if (obj2location == "left" || obj2location == "l") { showx = x - ww; showy = y; }
        if (obj2location == "top" || obj2location == "t" || obj2location == "u") { showx = x; showy = y - hh; }
        if (obj2location == "right" || obj2location == "r") { showx = x + w; showy = y; }
        if (obj2location == "bottom" || obj2location == "b") { showx = x; showy = y + h; }
    } else {
        showx = xx; showy = yy;
    }
    obj.style.left = showx + 1 + "px";
    obj.style.top = showy + "px";
    if (state == "hide") {
        //menuTimer = setTimeout(hiddenmenu(obj), 1);
        hiddenmenu(obj);
    } else {
        //clearTimeout(menuTimer);
        obj.style.visibility = "visible";
    }
}
function hiddenmenu(psObjId) {
    psObjId.style.visibility = "hidden";
}