var nlsMenu = {};
var nlsMenuMgr = {};
var nlsWinElmt = [];
var ag0 = window.navigator.userAgent;
var nls_isIE = (ag0.indexOf("MSIE") >= 0);
var nls_isIE5 = (ag0.indexOf("MSIE 5.0") >= 0);
var nls_isSafari = (ag0.indexOf("Safari") >= 0);
var nls_isOpera = (ag0.indexOf("Opera") >= 0);
var nls_isMACFF = (ag0.indexOf("Macintosh") >= 0 && ag0.indexOf("Firefox") >= 0);
if (nls_isOpera) {
    nls_isIE = false;
    nls_isIE5 = false
};

function NlsMenuManager(b) {
    this.mgrId = b;
    this.menus = {};
    this.menubar = null;
    this.timeout = 1000;
    this.menuDelay = 0;
    this.flowOverFormElement = false;
    this.assocMenuMgr = [];
    this.defaultEffect = null;
    this.icPath = "";
    this.memorizeSel = false;
    this.rt = {};
    this.tmId = null;
    this.setTimeout = function (a, t) {
        this.tmId = window.setTimeout(a, t)
    };
    this.clearTimeout = function () {
        if (this.tmId != null) {
            window.clearTimeout(this.tmId);
            this.tmId = null
        }
    };
    nlsMenuMgr[b] = this;
    if (nls_isIE) window.attachEvent("onload", function () {
        nlsMenuMgr[b].init()
    });
    return this
};
var NlsMnMgr = NlsMenuManager.prototype;
NlsMnMgr.createMenu = function (a) {
    var m = new NlsMenu(a);
    m.mgr = this;
    m.mgrId = this.mgrId;
    m.icPath = this.icPath;
    m.useEffect(this.defaultEffect);
    if (this.design) {
        m.$menuItemClick = NlsMenu.$dsItemClick
    }
    this.menus[a] = m;
    return m
};
NlsMnMgr.createMenubar = function (a) {
    if (this.menubar) alert("Menubar already exists!");
    var m = new NlsMenubar(a);
    m.mgr = this;
    m.mgrId = this.mgrId;
    m.icPath = this.icPath;
    if (this.design) {
        m.$menuItemClick = NlsMenu.$dsItemClick
    }
    this.menubar = m;
    return m
};
NlsMnMgr.renderMenus = function (a) {
    if (a && a != "") {
        var d = NlsMenu.$GE(a),
            s = "";
        if (!d) {
            d = document.createElement("SPAN");
            d.id = a;
            document.body.insertBefore(d, document.body.childNodes[0])
        }
        for (it in this.menus) {
            s += this.menus[it].renderMenu()
        }
        d.innerHTML = s;
        d.style.display = ""
    } else {
        for (it in this.menus) {
            document.write(this.menus[it].renderMenu())
        }
    }
};
NlsMnMgr.renderMenubar = function (a, b) {
    if (this.menubar) {
        var c = this.menubar.renderMenubar();
        if (a && a != "") {
            var d = NlsMenu.$GE(a);
            d.style.display = "";
            d.innerHTML = c
        } else {
            document.write(c)
        }
        if (b != false) {
            this.renderMenus(this.mgrId)
        }
    }
    if (this.memorizeSel) this.loadPath()
};
NlsMnMgr.hideMenus = function () {
    for (var a in this.menus) {
        if (this.menus[a].rt.active) this.menus[a].hideMenu()
    }
    if (this.menubar) this.menubar.hideMenu()
};
NlsMnMgr.addAssocMenuMgr = function (a, b) {
    this.assocMenuMgr[this.assocMenuMgr.length] = [a, b]
};
NlsMnMgr.getMenu = function (a) {
    return this.menus[a]
};
NlsMnMgr.init = function () {
    if (document.all) {
        try {
            document.execCommand("BackgroundImageCache", false, true)
        } catch (e) {}
    };
    if (this.menubar) this.menubar.init()
};
NlsMnMgr.setMenusProperties = function (a) {
    var b;
    for (var m in a) {
        b = nlsGetMenu(m);
        if (b) b.setProperties(a[m])
    }
};

function listAllWinElmt() {
    nlsWinElmt = [];
    var a = document.getElementsByTagName("SELECT");
    var b;
    var c;
    var x;
    var y;
    for (var i = 0; i < a.length; i++) {
        b = a[i];
        c = b;
        x = 0;
        y = 0;
        while (c != null) {
            x += c.offsetLeft;
            y += c.offsetTop;
            c = c.offsetParent
        }
        nlsWinElmt[nlsWinElmt.length] = {
            e: b,
            x1: x,
            y1: y,
            x2: x + b.offsetWidth,
            y2: y + b.offsetHeight
        }
    }
};

function NlsMenuItem(b, c, d, e, f, g, h, i) {
    this.id = b;
    this.intKey = "";
    this.capt = c;
    this.url = $aonvl(d, "");
    this.ico = (e == null || e == "" || e.length == 0) ? null : e;
    this.enable = $aonvl(f, true);
    this.xtra = g;
    this.stlprf = "";
    this.target = null;
    this.title = i == null ? "" : i;
    this.itemEffect = null;
    this.visible = "false";
    this.state = 1;
    this.selected = false;
    this.subMenuId = $aonvl(h, "");
    this.crsFrame = false;
    this.subFrame = null;
    this.subPos = [null, null];
    this.subPosAdj = [0, 0];
    this.subDir = ["right", "down"];
    this.useItemEffect = function (a) {
        this.itemEffect = new NlsMenuItemEffect(this.intKey, a)
    };
    this.rt = {
        subUrl: null,
        loaded: 0
    };
    return this
};

function NlsMenuSeparator(a) {
    this.stlprf = "";
    this.intKey = "";
    this.seprt = $aonevl(a, "");
    this.render = function () {
        if (this.seprt != "") return this.seprt;
        return ("<table border=0 cellpadding=0 cellspacing=0 width='100%' height='0%'><tr>" + "<td class=\"" + this.stlprf + "nlsseparator\"></td>" + "</tr></table>")
    };
    return this
};

function NlsCustomMenuItem(a) {
    this.intKey = "";
    this.cstMenu = $aonvl(a, "&nbsp;");
    return this
};

function NlsMenu(a) {
    var o = {
        lsItm: null,
        mgrId: "",
        mgr: null,
        winElmt: null,
        container: null,
        customBorder: null,
        shadow: new NlsMenuShadow("none", "5px", a),
        count: 0,
        effect: null,
        srItems: [],
        rt: {
            ready: true,
            active: false
        },
        mId: a,
        stlprf: "",
        subMenuIc: null,
        target: "_self",
        icPath: "",
        itemSpc: "",
        stretchItem: true,
        selection: false,
        showIcon: false,
        showSubIcon: true,
        absWidth: "",
        maxHeight: 0,
        orient: "V",
        defItmEff: null,
        defPos: [0, 0],
        maxItemCol: 100,
        zIndex: 100,
        wnd: window,
        itemIco: null,
        scrollType: 2
    };
    this.setProperties(o);
    this.items = {};
    nlsMenu[a] = this;
    return this
};

function NlsMenubar(a) {
    var b = new NlsMenu(a);
    b.isMenubar = true;
    b.isMenuOpened = false;
    b.firstClickOnly = true;
    b.dropOnClick = false;
    b.renderMenubar = function () {
        return b.renderMenu()
    };
    b.rt.active = true;
    return b
};
var NLSMENU = NlsMenu.prototype;
NLSMENU.addItem = function (a, b, c, d, e, f, g, h) {
    a = (a ? a : this.count + 1);
    var i = this.mId + "_" + a,
        it = new NlsMenuItem(a, b, c, d, e, f, g, h);
    this.add(i, it);
    if (this.defItmEff != null && typeof(NlsMenuItemEffect) != "undefined") {
        it.useItemEffect(this.defItmEff)
    }
    return it
};
NLSMENU.addSeparator = function (a) {
    var b = "sep_" + this.count;
    var c = new NlsMenuSeparator(a ? a : null);
    c.stlprf = this.stlprf;
    this.add(b, c);
    return c
};
NLSMENU.addSubmenu = function (a, b, c, d, e, f, g) {
    var h = this.getItemById(a);
    h.subMenuId = b;
    h.subFrame = $aonvl(d, null);
    h.crsFrame = $aonvl(c, false);
    h.subPos = $aonvl(e, [null, null]);
    h.subPosAdj = $aonvl(f, [0, 0]);
    h.subDir = $aonvl(g, ["right", "down"]);
    return h
};
NLSMENU.addCustomMenu = function (a) {
    var b = "cst_" + this.count;
    var c = new NlsCustomMenuItem(a);
    this.add(b, c);
    return c
};
NLSMENU.add = function (a, b) {
    b.mId = this.mId;
    b.intKey = a;
    this.items[a] = b;
    this.srItems[this.srItems.length] = b;
    this.count++
};
NLSMENU.getItemById = function (a) {
    return this.items[this.mId + "_" + a]
};
NLSMENU.setItemStyle = function (a, b) {
    this.getItemById(a).stlprf = b
};
NLSMENU.setItemText = function (a, b) {
    var c = this.getItemById(a);
    c.capt = b;
    var d = NlsMenu.$GE(c.intKey + "x2");
    if (d) d.innerHTML = b
};
NLSMENU.enableItem = function (a, b) {
    var c = this.getItemById(a);
    c.enable = b;
    setMnStyle(NlsMenu.$GE(c.intKey), (b ? (c.selected ? "S" : "N") : "D"), NlsMenu.getPrf(c, this));
    setMnIcon(this, c, "N")
};
NLSMENU.dropShadow = function (a, b) {
    if (this.shadow) {
        this.shadow.pos = a;
        this.shadow.offset = (b ? b : "5px")
    } else {
        this.shadow = new NlsMenuShadow(a, b, this.mId)
    }
};
NLSMENU.useEffect = function (a) {
    if (a != null && a != "") {
        this.effect = new NlsMenuEffect(this.mId, a)
    }
};
NLSMENU.renderMenu = function () {
    var a = "",
        sbIc = null;
    var b = (document.getElementsByTagName ? document.getElementsByTagName("SCRIPT") : document.scripts);
    for (var i = 0; i < b.length; i++) {
        if (b[i].src.toLowerCase().indexOf("nlsmenu.js") >= 0) {
            a = b[i].src.replace(/nlsmenu.js/gi, "")
        }
    }
    if (!this.subMenuIc) {
        sbIc = [a + "img/submenu.gif", a + "img/submenuovr.gif"]
    } else {
        sbIc = [this.icPath + this.subMenuIc[0]];
        if (this.subMenuIc[1]) sbIc[1] = this.icPath + this.subMenuIc[1]
    }
    var c = "<table cellpadding='0' cellspacing='0' ";
    var d = (this.absWidth == "" ? "" : "width='" + this.absWidth + "'");
    var e = "unselectable='on' style='-moz-user-select:none;user-select:none;'",
        scrl = "<tr id='sc@dir_@mId' style='display:none;'><td class='" + this.stlprf + "nlsscr@dir' style='font-size:1px;height:13px' onmousedown=\"NlsMenu.scroll(event,'@mId','@dir')\" onmouseup=\"NlsMenu.scrollStop(event,'@mId')\" onmouseover=\"_nlsscrmover(event, '@mId', '@dir', this)\" onmouseout=\"_nlsscrmout(event, '@mId', '@dir', this)\">&nbsp;</td></tr>";
    var s = ["<table cellpadding='0' cellspacing='" + $aonevl(this.itemSpc, "0") + "' width='100%'>"];
    var f = (nls_isMACFF ? " style='-moz-opacity:1.0;opacity:1.0' " : "");
    var g = 0,
        prf, it, mn, ic, j = 1,
        k = 1,
        l, ts, isV = (this.orient == "V");
    for (var i = 0; i < this.srItems.length; i++) {
        it = this.srItems[i];
        mn = nlsMenu[it.subMenuId];
        if (!it.crsFrame) {
            if (mn) mn.prIt = it.intKey;
            if (!mn && it.rt && !it.rt.subUrl) {
                it.subMenuId = ""
            }
        }
        prf = NlsMenu.getPrf(it, this);
        if (it.constructor == NlsMenuSeparator) {
            it.stlprf = prf;
            ts = "<td class='" + prf + "nlsseparatorcontainer'>" + it.render() + "</td>";
            s[j++] = (isV ? ("<tr>" + ts + "</tr>") : ts)
        } else if (it.constructor == NlsCustomMenuItem) {
            ts = "<td>" + it.cstMenu + "</td>";
            s[j++] = isV ? ("<tr>" + ts + "</tr>") : ts
        } else {
            if (isV) s[j++] = "<tr>";
            else {
                if (g == 0) s[j++] = "<tr>";
                g++
            }
            l = [];
            k = 0;
            l[k++] = "<td align='center' id=\"@itId\" " + f + " class=\"" + prf + "nlsitemcontainer\" onmouseover=\"$nlsItemOver(event,'@mId','@itId')\" onclick=\"return nlsMenu['@mId'].$menuItemClick(event, '@itId');\" onmouseout=\"$nlsItemOut(event, '@mId')\">";
            l[k++] = c + (this.stretchItem ? "width='100%'" : "") + " height='100%'><tr style=\"cursor:" + (it.url != "" ? "pointer" : "default") + ";\" title=\"" + it.title + "\">";
            if (this.showIcon) {
                l[k++] = "<td id=\"@itIdx1\" class=\"" + prf + "nlsiconcell\" align=\"center\" nowrap " + e + ">";
                ic = $aonevl(it.ico, this.itemIco);
                if (ic) {
                    if (ic[0]) l[k++] = "<img id=\"ic_@itId\" " + (it.enable ? "" : "style='display:none'") + " src=\"" + this.icPath + ic[0] + "\">";
                    if (ic[1]) l[k++] = "<img id=\"icovr_@itId\" style='display:none' src=\"" + this.icPath + ic[1] + "\">";
                    if (ic[2]) l[k++] = "<img id=\"icdis_@itId\" " + (!it.enable ? "" : "style='display:none'") + " src=\"" + this.icPath + ic[2] + "\">"
                }
                l[k++] = "</td>"
            }
            l[k++] = "<td align='left' id=\"@itIdx2\" class=\"" + prf + (it.enable ? "nlsitem\"" : "nlsitemdisable\"") + " nowrap " + e + ">" + it.capt + "</td>";
            if (this.showSubIcon && it.subMenuId != "") {
                l[k++] = "<td id=\"@itIdx3\" class=\"" + prf + "nlssubmenucell\" align=\"center\" nowrap>" + (it.subMenuId != "" ? "<img id='subic_@itId' src=\"" + sbIc[0] + "\">" + (sbIc.length > 1 ? "<img id='subicovr_@itId' style='display:none' src=\"" + sbIc[1] + "\">" : "") : "") + "</td>"
            }
            l[k++] = "</tr></table>";
            l[k++] = "</td>";
            s[j++] = l.join("").replace(/@itId/g, it.intKey);
            if (isV) s[j++] = "</tr>";
            else if (!isV && g == this.maxItemCol) {
                s[j++] = "</tr>";
                g = 0
            }
        }
    }
    if (!isV && g != 0) {
        if (this.srItems.length > this.maxItemCol) while (++g <= this.maxItemCol) s[j++] = "<td class=\"" + prf + "nlsitemcontainer\">&nbsp;</td>";
        s[j++] = "</tr>"
    }
    s[j++] = "</table>";
    l = [];
    l = [c + "class='" + this.stlprf + "nlsmenu' " + d + f + ">"], j = 1;
    l[j++] = scrl.replace(/@dir/g, "up");
    l[j++] = "<tr><td><div id='mcnt_@mId'>" + s.join("") + "</div></td></tr>";
    l[j++] = scrl.replace(/@dir/g, "down");
    l[j++] = "</table>";
    ts = l.join("");
    if (this.customBorder != null) ts = this.customBorder.applyBorder(ts, this.stlprf);
    ts = this.shadow.dropShadow(ts);
    s = [];
    j = 0;
    s[j++] = "<div " + (nls_isIE && !this.isMenubar ? "style='position:relative;z-index:" + (this.zIndex - 1) + ";'" : "") + ">" + ts;
    if (!this.isMenubar && nls_isIE && !nls_isIE5 && this.mgr.flowOverFormElement) {
        s[j++] = "<iframe id='@mIdifrm' scrolling='no' frameborder=0 width='1' height='1' style='position:absolute;top:0px;left:0px;z-index:-1;filter:alpha(opacity=0)' src='" + a + "img/blank.gif" + "'></iframe>"
    }
    s[j++] = "</div>";
    ts = s.join("");
    if (arguments[0] == "content") {} else {
        ts = "<div id='@mId' style=" + (this.isMenubar ? "''" : "'position:absolute;z-index:" + this.zIndex + ";display:none;'") + " onmouseover=\"$nlsMenuOver('" + this.mgrId + "', '@mId')\" onmouseout=\"$nlsMenuOut('" + this.mgrId + "')\">" + ts + "</div>"
    }
    return ts.replace(/@mId/g, this.mId)
};
NLSMENU.init = function () {
    var v = this.rt.vshade;
    if (!v) v = NlsMenu.$GE("vshade_" + this.mId);
    var a = this.rt.actmn;
    if (!a) a = NlsMenu.$GE("actmn_" + this.mId);
    if (v) {
        var o = a.childNodes[0].offsetHeight - parseInt(this.shadow.offset);
        if (o >= 0) v.style.height = o + "px"
    }
    this.rt.actmn = a;
    this.rt.vshade = v
};

function NlsMenuShadow(k, l, m) {
    this.pos = k;
    this.offset = l;
    this.mId = m;
    this.dropShadow = function (a) {
        var b = nlsMenu[this.mId];
        var c = "<table cellpadding=0 cellspacing=0 ";
        var d = "<div>" + c + "id='effwin_" + this.mId + "' height='0px'>";
        var e = "<td style='padding-@@PAD:" + this.offset + ";'>" + c + "width='100%' height='5px' class='" + b.stlprf + "horzshadow'><tr><td></td></tr></table></td>";
        var f = "<td style='padding-@@PAD:" + this.offset + ";height:100%;'>" + c + "id='vshade_" + this.mId + "' width='5px' height='100%' class='" + b.stlprf + "vertshadow'><tr><td></td></tr></table></td>";
        var g = "<td id='actmn_" + this.mId + "'>" + a + "</td>";
        var h = "<td class='" + b.stlprf + "cornshadow' width='5px' height='5px'></td>";
        var i = [f.replace(/@@PAD/gi, "top"), f.replace(/@@PAD/gi, "bottom")];
        var j = [e.replace(/@@PAD/gi, "left"), e.replace(/@@PAD/gi, "right")];
        switch (this.pos) {
        case "none":
            d += "<tr>" + g + "</tr>";
            break;
        case "bottomright":
            d += "<tr>" + g + i[0] + "</tr><tr>" + j[0] + h + "</tr>";
            break;
        case "bottomleft":
            d += "<tr>" + i[0] + g + "</tr><tr>" + h + j[1] + "</tr>";
            break;
        case "topleft":
            d += "<tr>" + h + j[1] + "</tr><tr>" + i[1] + g + "</tr>";
            break;
        case "topright":
            d += "<tr>" + j[0] + h + "</tr><tr>" + g + i[1] + "</tr>";
            break
        }
        return d + "</table></div>"
    }
};

function $mPos(a, b, c, m, d, e, f, g, h) {
    var v = 0;
    if (h == "left" || h == "up") {
        if (b + m > c) {
            if (a >= m) {
                v = a - m + d + e;
                f[g] = h
            } else {
                v = (c < m ? m : c) - m - 1 + e
            }
        } else {
            v = b + e - d
        }
    } else {
        if (a - m < 0) {
            if (b + m < c) {
                v = b - d + e;
                f[g] = h
            } else {
                v = e
            }
        } else {
            v = a - m + d + e
        }
    }
    return v
};
NLSMENU.showMenu = function (a, b, c, e, f, g, h) {
    this.mgr.clearTimeout();
    if (this.menuOnShow(this.mId) == false) return;
    var j = NlsMenu.$GE(this.mId);
    if (!j) {
        var k = document.createElement("div");
        k.innerHTML = this.renderMenu();
        document.body.insertBefore(k, document.body.childNodes[0]);
        j = NlsMenu.$GE(this.mId)
    };
    j.style.visibility = "hidden";
    j.style.display = "";
    if (nls_isIE) this.init();
    var w = window,
        d = document.body,
        de = document.documentElement;
    var l = w.scrollX || d.scrollLeft || de.scrollLeft;
    var m = w.scrollY || d.scrollTop || de.scrollTop;
    var n = w.innerWidth || de.clientWidth || d.clientWidth,
        cH = w.innerHeight || de.clientHeight || d.clientHeight;
    var o = j.childNodes[0].offsetWidth,
        mH = j.childNodes[0].offsetHeight;
    var p = (g ? [g[0], g[1]] : ["right", "down"]);
    var q = (h ? h[0] : this.defPos[0]),
        adjY = (h ? h[1] : this.defPos[1]);
    var r = parseInt(this.maxHeight, 10);
    r = (r == 0 ? cH - 40 : r);
    if (mH > r) {
        var s = NlsMenu.$GE("mcnt_" + this.mId);
        s.style.overflow = "auto";
        s.style.overflowX = "hidden";
        s.style.height = r + "px";
        var t = s.scrollTop;
        s.scrollTop = 10;
        if (s.scrollTop == 0 || this.scrollType == 1) {
            s.scrollTop = 0;
            setTimeout(function () {
                s.style.overflow = "auto";
                s.style.overflowY = "auto";
                s.style.overflowX = "hidden"
            }, 10)
        } else {
            s.scrollTop = t;
            this.enableScroll(true)
        }
        this.rt.ma = s;
        mH = j.childNodes[0].offsetHeight
    }
    var u = NlsMenu.$GE(this.mId + "ifrm");
    if (u) {
        var v = NlsMenu.$GE("actmn_" + this.mId).children[0];
        u.width = v.offsetWidth;
        u.height = v.offsetHeight
    }
    var x = 0,
        mY = 0;
    if (f == "V") {
        x = $mPos(a, c, n, o, q, l, p, 0, (p[0] == "right" ? "left" : "right"));
        mY = $mPos(e, b, cH, mH, -adjY, m, p, 1, (p[1] == "down" ? "up" : "down"))
    } else {
        x = $mPos(c, a, n, o, -q, l, p, 0, (p[0] == "right" ? "left" : "right"));
        mY = $mPos(b, e, cH, mH, adjY, m, p, 1, (p[1] == "down" ? "up" : "down"))
    }
    if (nls_isIE5 || !this.mgr.flowOverFormElement) {
        if (this.winElmt == null) hideWinElmt(this, {
            x1: x,
            y1: mY,
            x2: x + o,
            y2: mY + mH
        });
        if (this.winElmt == null) this.winElmt = [];
        for (var i = 0; i < this.winElmt.length; i++) {
            this.winElmt[i].style.visibility = "hidden"
        }
    }
    with(j.style) {
        left = x + "px";
        top = mY + "px";
        zIndex = this.zIndex;
        if (this.effect) {
            with(this.effect) {
                prop["dir"] = p[(f == "V" ? 0 : 1)];
                start(false);
                visibility = "visible";
                run()
            }
        } else {
            visibility = "visible"
        }
    }
    this.rt.active = true
};

function $fInts(o, p) {
    return ((o.x1 >= p.x1 && o.x1 <= p.x2) || (o.x2 >= p.x1 && o.x2 <= p.x2) || (o.x1 < p.x1 && o.x2 > p.x2)) && ((o.y1 >= p.y1 && o.y1 <= p.y2) || (o.y2 >= p.y1 && o.y2 <= p.y2) || (o.y1 < p.y1 && o.y2 > p.y2))
};

function hideWinElmt(a, p) {
    var o;
    for (var i = 0; i < nlsWinElmt.length; i++) {
        o = nlsWinElmt[i];
        if ($fInts(o, p) || $fInts(p, o)) {
            if (o.e.style.visibility != "hidden") {
                o.e.style.visibility = "hidden";
                if (a.winElmt == null) a.winElmt = [];
                a.winElmt[a.winElmt.length] = o.e
            }
        }
    }
};
NLSMENU.showMenuAbs = function (x, y) {
    var a = NlsMenu.$GE(this.mId);
    a.style.top = y + "px";
    a.style.left = x + "px";
    a.style.display = "";
    this.rt.active = true
};
NLSMENU.hideMenu = function () {
    var a = NlsMenu.$GE(this.mId);
    if (!a) return;
    if (!this.isMenubar) {
        this.rt.active = false;
        if (this.effect) {
            this.effect.start(true);
            if ((nls_isIE && this.effect.effName != "aoslide") || nls_isOpera && this.effect.effName != "aoslide") {
                a.style.visibility = "hidden"
            } else {
                this.effect.onHide = function () {
                    a.style.visibility = "hidden"
                }
            };
            this.effect.run()
        } else {
            a.style.visibility = "hidden"
        }
        this.menuOnHide(this.mId)
    } else {
        this.isMenuOpened = false
    }
    if (this.lsItm != null) {
        var b = this.items[this.lsItm.id];
        if (b.state != 2 && !b.selected) {
            setMnStyle(this.lsItm, (b.enable ? "N" : "D"), NlsMenu.getPrf(b, this));
            setMnIcon(this, b, "N")
        }
        this.lsItm = null
    }
    if (this.winElmt != null && this.winElmt.length > 0) {
        for (i = 0; i < this.winElmt.length; i++) {
            this.winElmt[i].style.visibility = "visible"
        }
    }
    $wrtStatus("")
};
NLSMENU.hasSubmenu = function (a) {
    var b = this.getItemById(a),
        w = (b.crsFrame ? b.subFrame : window);
    return w.nlsGetMenu(b.subMenuId)
};

function $itemClick(e, b, c) {
    var d = nlsMenuMgr[b.mgrId];
    d.hideMenus();
    $crsFrameDo(d, function (f, a) {
        f.hideAllNlsMenu()
    });
    var g = c.target;
    if (g == null) g = $aonvl(b.target, "_self");
    if (c.url != "") {
        window.open(c.url, g)
    } else {
        return b.menuOnClick(b.mId, c.id, {
            windowEvent: e
        })
    }
};
NLSMENU.$menuItemClick = function (e, b) {
    var c = this.items[b];
    if (!c.enable) return;
    var d = NlsMenu.getPrf(c, this),
        oIt = NlsMenu.$GE(b),
        mgr = this.mgr;
    if (this.isMenubar && this.dropOnClick && (this.hasSubmenu(c.id) || c.rt.subUrl)) {
        if (!this.isMenuOpened) {
            NlsMenu.showMenu(this, c);
            if (this.firstClickOnly) this.isMenuOpened = true
        } else {
            mgr.hideMenus();
            $crsFrameDo(mgr, function (f, a) {
                f.hideAllNlsMenu()
            });
            setMnStyle(oIt, (c.enable ? "N" : "D"), d);
            setMnIcon(this, c, "N");
            this.isMenuOpened = false;
            return null
        }
    } else {
        if (c.toggle) {
            this.setItemState(b, (c.state == 1 ? 2 : 1))
        } else if (this.selection) {
            this.setSelection(b, true)
        } else if (mgr.memorizeSel) {
            mgr.selectPath(this.mId, c.id);
            mgr.savePath(b)
        }
        return $itemClick(e, this, c)
    }
};
NlsMenu.scroll = function (e, a, d) {
    var m = nlsMenu[a];
    m.rt.stm = setInterval(function () {
        if (d == "up") m.scrollUp();
        else m.scrollDown()
    }, 50);
    e.cancelBubble = true
};
NlsMenu.scrollStop = function (e, a) {
    var m = nlsMenu[a];
    if (m.rt.stm != null) clearInterval(m.rt.stm);
    m.rt.stm = null
};
NLSMENU.enableScroll = function (v) {
    NlsMenu.$GE("scup_" + this.mId).style.display = (v ? "" : "none");
    NlsMenu.$GE("scdown_" + this.mId).style.display = (v ? "" : "none")
};
NLSMENU.scrollUp = function () {
    this.rt.ma.scrollTop -= 20
};
NLSMENU.scrollDown = function () {
    this.rt.ma.scrollTop += 20
};

function _nlsscrmover(e, a, d, b) {
    b.className = (d == "up" ? "nlsscrupover" : "nlsscrdownover");
    $$nlsItemOver1(e, a + "_dir$" + d)
};

function _nlsscrmout(e, a, d, b) {
    b.className = (d == "up" ? "nlsscrup" : "nlsscrdown")
};
NLSMENU.menuOnClick = function (a, b) {
    return true
};
NLSMENU.menuOnShow = function (a) {
    return true
};
NLSMENU.menuOnHide = function (a) {
    return true
};
NLSMENU.onItemOver = function (a) {};
NLSMENU.onItemOut = function (a) {};
NLSMENU.reload = function (a) {
    var b = this.effect;
    if (b) {
        b.elm = null;
        b.prop["init"] = false
    }
    this.lsItm = null;
    if (a != true) this.mgr.hideMenus();
    var m = NlsMenu.$GE(this.mId);
    m.innerHTML = this.renderMenu("content")
};
NLSMENU.setProperties = function (b) {
    var a = b["allitems"];
    if (a) for (var c in this.items) {
        this.setItemProperties(this.items[c].id, a)
    }
    for (var p in b) {
        if (p == "items") {
            for (var c in b[p]) this.setItemProperties(c, b[p][c])
        } else this[p] = b[p]
    }
};
NLSMENU.setItemProperties = function (a, b) {
    var c = this.getItemById(a);
    for (var p in b) {
        c[p] = b[p]
    }
};

function setMnIcon(a, b, f) {
    var e = (b.enable ? f : "D"),
        ico = $aonevl(b.ico, a.itemIco);
    if (a.showIcon && ico && ico.length > 1) {
        var k = b.intKey;
        var c = NlsMenu.$GE("ic_" + k),
            o = NlsMenu.$GE("icovr_" + k),
            d = NlsMenu.$GE("icdis_" + k);
        c.style.display = (e == "N" || (e == "D" && !d) ? "" : "none");
        o.style.display = (e == "O" ? "" : "none");
        if (d) d.style.display = (e == "D" ? "" : "none")
    }
    if (a.showSubIcon && b.subMenuId != "") {
        var g = NlsMenu.$GE("subicovr_" + b.intKey);
        if (g) {
            g.style.display = (e == "O" ? "" : "none");
            g = NlsMenu.$GE("subic_" + b.intKey);
            if (g) g.style.display = (e == "N" || e == "D" ? "" : "none")
        }
    }
};

function setMnStyle(a, s, b) {
    var c = (s == "O" ? "over" : (s == "S" ? "sel" : "")),
        cn;
    a.className = b + "nlsitemcontainer" + c;
    var r = a.childNodes[0].rows[0],
        rc = null;
    for (var i = 0; i < r.cells.length; i++) {
        rc = r.cells[i];
        if (rc.id == a.id + "x1") cn = b + "nlsiconcell" + c;
        if (rc.id == a.id + "x2") cn = b + "nlsitem" + (s == "D" ? "disable" : c);
        if (rc.id == a.id + "x3") cn = b + "nlssubmenucell" + c;
        rc.className = cn
    }
};

function nls_getXY(a) {
    var p = {};
    p.x = 0;
    p.y = 0;
    p.x2 = 0;
    p.y2 = 0;
    var b = a;
    var d = document;
    while (b) {
        p.x += b.offsetLeft;
        p.y += b.offsetTop;
        b = b.offsetParent
    };
    p.x -= (window.scrollX || d.body.scrollLeft || d.documentElement.scrollLeft);
    p.y -= (window.scrollY || d.body.scrollTop || d.documentElement.scrollTop);
    if (a) {
        p.x2 = p.x + a.offsetWidth;
        p.y2 = p.y + a.offsetHeight
    };
    return p
};
NlsMenu.showMenu = function (a, b) {
    if (b.rt.subUrl && b.rt.loaded == 0) {
        NlsMenuUtil.loadAJAXMenu(a, b)
    } else {
        NlsMenu.$showMenu(a, b)
    }
};
NlsMenu.$showMenu = function (a, b) {
    var c = NlsMenu.$GE(b.intKey);
    if (b.subMenuId != "" && b.enable == true) {
        var p = nls_getXY(c),
            smn;
        if (b.crsFrame) {
            var d = b.subPos;
            if (d[0] == "REL") {} else {
                p.x = d[0];
                p.x2 = p.x
            }
            if (d[1] == "REL") {} else {
                p.y = d[1];
                p.y2 = p.y
            }
            if (!b.subFrame.nlsGetMenu) return;
            smn = b.subFrame.nlsGetMenu(b.subMenuId);
            if (!smn) return
        } else {
            smn = nlsGetMenu(b.subMenuId);
            if (!smn) return;
            if (smn.zIndex <= a.zIndex) {
                smn.zIndex = a.zIndex + 1
            }
            var e = a.rt.ma;
            if (e) {
                p.y -= e.scrollTop;
                p.y2 -= e.scrollTop
            }
        }
        smn.showMenu(p.x, p.y, p.x2, p.y2, a.orient, b.subDir, b.subPosAdj)
    }
};
NlsMenu.getPrf = function (a, b) {
    return $aonevl(a.stlprf, b.stlprf)
};

function nls_showMenu(a, b, c, d, e) {
    var f = nlsGetMenu(a),
        p;
    if (!f) {
        hideAllNlsMenu();
        return
    }
    f.mgr.clearTimeout();
    if (f.rt.active) return;
    p = nls_getXY(b);
    f.mgr.hideMenus();
    f.showMenu(p.x, p.y, p.x2, p.y2, c, d, e)
};

function nls_hideMenu(a) {
    var m = nlsGetMenu(a);
    if (m) $nlsMenuOut(m.mgrId)
};

function $nlsMenuOver(b, c) {
    var d = nlsMenuMgr[b],
        mn = d.getMenu(c);
    d.clearTimeout();
    if (d.rt.cmId != c) {
        clearTimeout(d.rt.ctm);
        d.rt.ctm = null
    }
    $crsFrameDo(d, function (f, a) {
        f.clearTimeout(a.rt.ctm);
        a.rt.ctm = null
    });
    if (d.rt.cmId != c) $$nlsItemOver1(null, c + "_dmy")
};

function $nlsMenuOut(b) {
    var c = nlsMenuMgr[b];
    if (c.design == true) return;
    c.clearTimeout();
    c.setTimeout(function () {
        c.hideMenus()
    }, c.timeout);
    $crsFrameDo(c, function (f, a) {
        a.clearTimeout();
        a.setTimeout(function () {
            a.hideMenus()
        }, a.timeout)
    })
};

function $nlsItemOver(e, a, b) {
    $$nlsItemOver1(e, b);
    $$nlsItemOver2(a, b);
    e.cancelBubble = true
};

function $nlsItemOut(e, a) {
    var b = nlsMenu[a],
        mgr = b.mgr;
    mgr.rt.cmId = a;
    mgr.rt.ctm = setTimeout(function () {
        $$nlsItemOver1(e, a + "_$dmy")
    }, 300)
};

function $$nlsItemOver1(e, b) {
    var m = b.split("_"),
        mn = nlsMenu[m[0]],
        mgr = mn.mgr;
    if (mgr.rt.cmId) {
        clearTimeout(mgr.rt.ctm);
        mgr.rt.ctm = null
    }
    $crsFrameDo(mgr, function (f, a) {
        f.clearTimeout(a.rt.ctm);
        a.rt.ctm = null
    });
    if (mn.mgr.design == true) return;
    if (!mn.rt.active || !mn.rt.ready) return;
    var c = null,
        d = "",
        nli = null,
        li = mn.lsItm,
        lid;
    if (li != null) {
        c = mn.items[li.id];
        lid = c.id;
        if (!c) return;
        if (c.intKey == b) return;
        if (c.state != 2 && !c.selected) {
            var d = NlsMenu.getPrf(c, mn);
            var g = (c.itemEffect != null);
            if (g) {
                c.itemEffect.init()
            }
            setMnStyle(li, (c.enable ? "N" : "D"), d);
            setMnIcon(mn, c, "N");
            if (g) {
                c.itemEffect.start()
            }
        }
        var w = c.crsFrame ? c.subFrame : window,
            tmp = null;
        if (w.nlsGetMenu) tmp = w.nlsGetMenu(c.subMenuId);
        while (tmp != null) {
            nli = null;
            if (tmp.lsItm) {
                c = tmp.items[tmp.lsItm.id];
                w = c.crsFrame ? c.subFrame : tmp.wnd;
                nli = w.nlsGetMenu(c.subMenuId)
            }
            tmp.hideMenu();
            tmp = nli
        }
        if (mgr.rt.smTm != null) {
            clearTimeout(mgr.rt.smTm);
            mgr.rt.smTm = null
        }
        mn.onItemOut(lid)
    }
    mn.lsItm = null;
    var h = NlsMenu.$GE(b);
    c = mn.items[b];
    if (!c) return;
    $wrtStatus(c.url);
    if (c.state != 2 && !c.selected) {
        if (c.itemEffect != null) {
            c.itemEffect.init()
        }
        setMnStyle(h, (c.enable ? "O" : "D"), NlsMenu.getPrf(c, mn));
        setMnIcon(mn, c, "O");
        if (c.itemEffect != null) {
            c.itemEffect.start()
        }
    }
    if (!mn.isMenubar || (mn.isMenubar && mn.dropOnClick && mn.isMenuOpened)) {
        NlsMenu.showMenu(mn, c)
    }
    if (mn.isMenubar && !mn.dropOnClick) {
        if (mgr.menuDelay > 0) {
            mgr.rt.smTm = window.setTimeout(function () {
                NlsMenu.showMenu(mn, c)
            }, mgr.menuDelay)
        } else {
            NlsMenu.showMenu(mn, c)
        }
    }
    mn.lsItm = h;
    mn.onItemOver(c.id)
};

function $$nlsItemOver2(b, c) {
    var d = nlsMenu[b],
        mgr = d.mgr;
    if (mgr.design == true) return;
    mgr.clearTimeout();
    $crsFrameDo(mgr, function (f, a) {
        a.clearTimeout()
    });
    for (var e in nlsMenuMgr) {
        if (e != mgr.mgrId) {
            nlsMenuMgr[e].hideMenus()
        }
    }
};

function $crsFrameDo(b, f) {
    var a = b.assocMenuMgr,
        frm;
    if (a && a.length > 0) {
        for (var i = 0; i < a.length; i++) {
            frm = a[i];
            if (!frm[0].nlsMenuMgr) continue;
            f(frm[0], frm[0].nlsMenuMgr[frm[1]])
        }
    }
};

function nlsGetMenu(a) {
    return nlsMenu[a]
};

function hideAllNlsMenu() {
    for (it in nlsMenu) {
        if (nlsMenu[it].rt.active) nlsMenu[it].hideMenu()
    }
};

function $wrtStatus(s) {
    if (typeof(window.status) != "undefined") window.status = s
};

function $aonvl(v, c) {
    if (v != null) return v;
    else
    return c
};

function $aonevl(v, c) {
    if (!v || v == "") return c;
    else
    return v
};
NlsMenu.$GE = function (a) {
    if (document.all) {
        return document.all(a)
    } else if (document.getElementById) {
        return document.getElementById(a)
    }
};
