nlsMenu = {};
nlsMenuMgr = {};
nlsWinElmt = [];
ag0 = navigator.userAgent;
nls_isIE = (ag0.indexOf("MSIE") >= 0);
nls_isIE5 = (ag0.indexOf("MSIE 5.0") >= 0);
nls_isSafari = (ag0.indexOf("Safari") >= 0);
nls_isOpera = (ag0.indexOf("Opera") >= 0);
if (nls_isOpera) {
    nls_isIE = false;
    nls_isIE5 = false
};
function NlsMenuManager(mgr) {
    this.mgrId = mgr;
    this.menus = {};
    this.menubar = null;
    this.timeout = 1000;
    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[mgr] = this;
    if (nls_isIE) window.attachEvent("onload",
    function() {
        nlsMenuMgr[mgr].init();
    });
    return this
};
NlsMnMgr = NlsMenuManager.prototype;
NlsMnMgr.createMenu = function(mId) {
    var m = new NlsMenu(mId);
    m.mgr = this;
    m.mgrId = this.mgrId;
    m.icPath = this.icPath;
    m.useEffect(this.defaultEffect);
    if (this.design) {
        m.$menuItemClick = NlsMenu.$dsItemClick
    }
    this.menus[mId] = m;
    return m
};
NlsMnMgr.createMenubar = function(mbarId) {
    if (this.menubar) alert("Menubar already exists!");
    var m = new NlsMenubar(mbarId);
    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(plc) {
    if (plc && plc != "") {
        var d = NlsMenu.$GE(plc),
        s = "";
        if (!d) {
            d = document.createElement("SPAN");
            d.id = plc;
            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(plc, incSub) {
    if (this.menubar) {
        var mbar = this.menubar.renderMenubar();
        if (plc && plc != "") {
            var d = NlsMenu.$GE(plc);
            d.style.display = "";
            d.innerHTML = mbar
        } else {
            document.write(mbar);
        }
        if (incSub != false) {
            this.renderMenus(this.mgrId);
        }
    }
    if (this.memorizeSel) this.loadPath();
};
NlsMnMgr.hideMenus = function() {
    for (var it in this.menus) {
        if (this.menus[it].rt.active) this.menus[it].hideMenu();
    }
    if (this.menubar) this.menubar.hideMenu();
};
NlsMnMgr.addAssocMenuMgr = function(frm, mgrId) {
    this.assocMenuMgr[this.assocMenuMgr.length] = [frm, mgrId]
};
NlsMnMgr.getMenu = function(mId) {
    return this.menus[mId]
};
NlsMnMgr.init = function() {
    if (this.menubar) this.menubar.init();
};
NlsMnMgr.setMenusProperties = function(opts) {
    var mn;
    for (var m in opts) {
        mn = nlsGetMenu(m);
        if (mn) mn.setProperties(opts[m]);
    }
};
function listAllWinElmt() {
    nlsWinElmt = [];
    var arrWinEl = document.getElementsByTagName("SELECT");
    var elm;
    var tmp;
    var x;
    var y;
    for (var i = 0; i < arrWinEl.length; i++) {
        elm = arrWinEl[i];
        tmp = elm;
        x = 0;
        y = 0;
        while (tmp != null) {
            x += tmp.offsetLeft;
            y += tmp.offsetTop;
            tmp = tmp.offsetParent
        }
        nlsWinElmt[nlsWinElmt.length] = {
            e: elm,
            x1: x,
            y1: y,
            x2: x + elm.offsetWidth,
            y2: y + elm.offsetHeight
        }
    }
};
function NlsMenuItem(id, capt, url, ico, enb, xtra, subId, title) {
    this.id = id;
    this.intKey = "";
    this.capt = capt;
    this.url = $aonvl(url, "");
    this.ico = (ico == null || ico == "" || ico.length == 0) ? null: ico;
    this.enable = $aonvl(enb, true);
    this.xtra = xtra;
    this.stlprf = "";
    this.target = null;
    this.title = title == null ? "": title;
    this.itemEffect = null;
    this.visible = "false";
    this.state = 1;
    this.selected = false;
    this.subMenuId = $aonvl(subId, "");
    this.crsFrame = false;
    this.subFrame = null;
    this.subPos = [null, null];
    this.subPosAdj = [0, 0];
    this.subDir = ["right", "down"];
    this.useItemEffect = function(effName) {
        this.itemEffect = new NlsMenuItemEffect(this.intKey, effName);
    };
    this.rt = {
        subUrl: null,
        loaded: 0
    };
    return this
};
function NlsMenuSeparator(cstSeparator) {
    this.stlprf = "";
    this.intKey = "";
    this.seprt = $aonevl(cstSeparator, "");
    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(cst) {
    this.intKey = "";
    this.cstMenu = $aonvl(cst, "&nbsp;");
    return this
};
function NlsMenu(mId) {
    var o = {
        lsItm: null,
        mgrId: "",
        mgr: null,
        winElmt: null,
        container: null,
        customBorder: null,
        shadow: new NlsMenuShadow("none", "5px", mId),
        count: 0,
        effect: null,
        srItems: [],
        rt: {
            ready: true,
            active: false
        },
        mId: mId,
        stlprf: "",
        subMenuIc: null,
        target: "_self",
        icPath: "",
        itemSpc: "",
        stretchItem: true,
        selection: false,
        showIcon: false,
        showSubIcon: true,
        absWidth: "",
        orient: "V",
        defItmEff: null,
        defPos: [0, 0],
        maxItemCol: 100,
        zIndex: 100,
        wnd: window,
        itemIco: null
    };
    this.setProperties(o);
    this.items = {};
    nlsMenu[mId] = this;
    return this
};
function NlsMenubar(mId) {
    var mnBar = new NlsMenu(mId);
    mnBar.isMenubar = true;
    mnBar.isMenuOpened = false;
    mnBar.firstClickOnly = true;
    mnBar.dropOnClick = false;
    mnBar.renderMenubar = function() {
        return mnBar.renderMenu();
    };
    mnBar.rt.active = true;
    return mnBar
};
NLSMENU = NlsMenu.prototype;
NLSMENU.addItem = function(key, capt, url, ico, enb, xtra, subId, title) {
    key = (key ? key: this.count + 1);
    var intKey = this.mId + "_" + key,
    it = new NlsMenuItem(key, capt, url, ico, enb, xtra, subId, title);
    this.add(intKey, it);
    if (this.defItmEff != null && typeof(NlsMenuItemEffect) != "undefined") {
        it.useItemEffect(this.defItmEff);
    }
    return it
};
NLSMENU.addSeparator = function(sepr) {
    var intKey = "sep_" + this.count;
    var it = new NlsMenuSeparator(sepr ? sepr: null);
    it.stlprf = this.stlprf;
    this.add(intKey, it);
    return it
};
NLSMENU.addSubmenu = function(key, subId, crsFrame, subFrame, subPos, subPosAdj, subDir) {
    var it = this.getItemById(key);
    it.subMenuId = subId;
    it.subFrame = $aonvl(subFrame, null);
    it.crsFrame = $aonvl(crsFrame, false);
    it.subPos = $aonvl(subPos, [null, null]);
    it.subPosAdj = $aonvl(subPosAdj, [0, 0]);
    it.subDir = $aonvl(subDir, ["right", "down"]);
    return it
};
NLSMENU.addCustomMenu = function(custom) {
    var intKey = "cst_" + this.count;
    var it = new NlsCustomMenuItem(custom);
    this.add(intKey, it);
    return it
};
NLSMENU.add = function(intKey, it) {
    it.mId = this.mId;
    it.intKey = intKey;
    this.items[intKey] = it;
    this.srItems[this.srItems.length] = it;
    this.count++
};
NLSMENU.getItemById = function(key) {
    return this.items[this.mId + "_" + key]
};
NLSMENU.setItemStyle = function(key, stlprf) {
    this.getItemById(key).stlprf = stlprf
};
NLSMENU.setItemText = function(key, tx) {
    var it = this.getItemById(key);
    it.capt = tx;
    var oD = NlsMenu.$GE(it.intKey + "x2");
    if (oD) oD.innerHTML = tx
};
NLSMENU.enableItem = function(key, b) {
    var it = this.getItemById(key);
    it.enable = b;
    setMnStyle(NlsMenu.$GE(it.intKey), (b ? (it.selected ? "S": "N") : "D"), NlsMenu.getPrf(it, this));
    setMnIcon(this, it, "N");
};
NLSMENU.dropShadow = function(pos, offset) {
    if (this.shadow) {
        this.shadow.pos = pos;
        this.shadow.offset = (offset ? offset: "5px");
    } else {
        this.shadow = new NlsMenuShadow(pos, offset, this.mId);
    }
};
NLSMENU.useEffect = function(efN) {
    if (efN != null && efN != "") {
        this.effect = new NlsMenuEffect(this.mId, efN);
    }
};
NLSMENU.renderMenu = function() {
    var scPath = "",
    sbIc = null;
    var allScs = (document.getElementsByTagName ? document.getElementsByTagName("SCRIPT") : document.scripts);
    for (var i = 0; i < allScs.length; i++) {
        if (allScs[i].src.toLowerCase().indexOf("nlsmenu.js") >= 0) {
            scPath = allScs[i].src.replace(/nlsmenu.js/gi, "");
        }
    }
    if (!this.subMenuIc) {
        sbIc = [scPath + "img/submenu.gif", scPath + "img/submenuovr.gif"]
    } else {
        sbIc = [this.icPath + this.subMenuIc[0]];
        if (this.subMenuIc[1]) sbIc[1] = this.icPath + this.subMenuIc[1]
    }
    var cs = "<table cellpadding='0' cellspacing='0' ";
    var sAbs = (this.absWidth == "" ? "": "width='" + this.absWidth + "'");
    var usel = "unselectable='on' style='-moz-user-select:none;user-select:none;'";
    var s = ["<table cellpadding='0' cellspacing='" + $aonevl(this.itemSpc, "0") + "' width='100%'>"];
    var tmpCnt = 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 (tmpCnt == 0) s[j++] = "<tr>";
                tmpCnt++
            }
            l = [];
            k = 0;
            l[k++] = "<td align='center' id=\"@itId\" class=\"" + prf + "nlsitemcontainer\" onmouseover=\"$nlsItemOver(event,'@mId','@itId')\" onclick=\"return nlsMenu['@mId'].$menuItemClick(event, '@itId');\" onmouseout=\"$nlsItemOut(event, '@mId')\">";
            l[k++] = cs + (this.stretchItem ? "width='100%'": "") + " height='100%'><tr style=\"cursor:pointer;\" title=\"" + it.title + "\">";
            if (this.showIcon) {
                l[k++] = "<td id=\"@itIdx1\" class=\"" + prf + "nlsiconcell\" align=\"center\" nowrap " + usel + ">";
                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 " + usel + ">" + 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 && tmpCnt == this.maxItemCol) {
                s[j++] = "</tr>";
                tmpCnt = 0
            }
        }
    }
    if (!isV && tmpCnt != 0) {
        if (this.srItems.length > this.maxItemCol) while (++tmpCnt <= this.maxItemCol) s[j++] = "<td class=\"" + prf + "nlsitemcontainer\">&nbsp;</td>";
        s[j++] = "</tr>"
    }
    s[j++] = "</table>";
    l = [];
    l = [cs + "class='" + this.stlprf + "nlsmenu' " + sAbs + ">"],
    j = 1;
    l[j++] = "<tr><td><div id='mcnt_@mId'>" + s.join("") + "</div></td></tr>";
    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:absolute;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='" + scPath + "../img/s.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 itm = this.rt.actmn;
    if (!itm) itm = NlsMenu.$GE("actmn_" + this.mId);
    if (v) {
        var o = itm.childNodes[0].offsetHeight - parseInt(this.shadow.offset);
        if (o >= 0) v.style.height = o + "px"
    }
    this.rt.actmn = itm;
    this.rt.vshade = v
};
function NlsMenuShadow(pos, offset, mId) {
    this.pos = pos;
    this.offset = offset;
    this.mId = mId;
    this.dropShadow = function(smenu) {
        var mn = nlsMenu[this.mId];
        var cs = "<table cellpadding=0 cellspacing=0 ";
        var shadow = "<div>" + cs + "id='effwin_" + this.mId + "' height='0px'>";
        var hshadow = "<td style='padding-@@PAD:" + this.offset + ";'>" + cs + "width='100%' height='5px' class='" + mn.stlprf + "horzshadow'><tr><td></td></tr></table></td>";
        var vshadow = "<td style='padding-@@PAD:" + this.offset + ";height:100%;'>" + cs + "id='vshade_" + this.mId + "' width='5px' height='100%' class='" + mn.stlprf + "vertshadow'><tr><td></td></tr></table></td>";
        var menutd = "<td id='actmn_" + this.mId + "'>" + smenu + "</td>";
        var cornertd = "<td class='" + mn.stlprf + "cornshadow' width='5px' height='5px'></td>";
        var av = [vshadow.replace(/@@PAD/gi, "top"), vshadow.replace(/@@PAD/gi, "bottom")];
        var ah = [hshadow.replace(/@@PAD/gi, "left"), hshadow.replace(/@@PAD/gi, "right")];
        switch (this.pos) {
        case "none":
            shadow += "<tr>" + menutd + "</tr>";
            break;
        case "bottomright":
            shadow += "<tr>" + menutd + av[0] + "</tr><tr>" + ah[0] + cornertd + "</tr>";
            break;
        case "bottomleft":
            shadow += "<tr>" + av[0] + menutd + "</tr><tr>" + cornertd + ah[1] + "</tr>";
            break;
        case "topleft":
            shadow += "<tr>" + cornertd + ah[1] + "</tr><tr>" + av[1] + menutd + "</tr>";
            break;
        case "topright":
            shadow += "<tr>" + ah[0] + cornertd + "</tr><tr>" + menutd + av[1] + "</tr>";
            break
        }
        return shadow + "</table></div>"
    }
};
function $mPos(p1, p2, c, m, adj, scr, dr, drIdx, drVal) {
    var v = 0;
    if (drVal == "left" || drVal == "up") {
        if (p2 + m > c) {
            if (p1 >= m) {
                v = p1 - m + adj + scr;
                dr[drIdx] = drVal
            } else {
                v = (c < m ? m: c) - m - 1 + scr
            }
        } else {
            v = p2 + scr - adj
        }
    } else {
        if (p1 - m < 0) {
            if (p2 + m < c) {
                v = p2 - adj + scr;
                dr[drIdx] = drVal
            } else {
                v = scr
            }
        } else {
            v = p1 - m + adj + scr
        }
    }
    return v
}
NLSMENU.showMenu = function(x1, y1, x2, y2, orn, subDir, subAdj) {
    this.mgr.clearTimeout();
    if (this.menuOnShow(this.mId) == false) return;
    var ctx = NlsMenu.$GE(this.mId);
    if (!ctx) {
        var dv = document.createElement("div");
        dv.innerHTML = this.renderMenu();
        document.body.insertBefore(dv, document.body.childNodes[0]);
        ctx = NlsMenu.$GE(this.mId);
    };
    ctx.style.visibility = "hidden";
    ctx.style.display = "";
    if (nls_isIE) this.init();
    var w = window,
    d = document.body,
    de = document.documentElement;
    var scrOffX = w.scrollX || d.scrollLeft || de.scrollLeft;
    var scrOffY = w.scrollY || d.scrollTop || de.scrollTop;
    var cW = w.innerWidth || d.clientWidth,
    cH = w.innerHeight || d.clientHeight;
    var mW = ctx.childNodes[0].offsetWidth,
    mH = ctx.childNodes[0].offsetHeight;
    var sDir = (subDir ? [subDir[0], subDir[1]] : ["right", "down"]);
    var adjX = (subAdj ? subAdj[0] : this.defPos[0]),
    adjY = (subAdj ? subAdj[1] : this.defPos[1]);
    var dmfrm = NlsMenu.$GE(this.mId + "ifrm");
    if (dmfrm) {
        var actMn = NlsMenu.$GE("actmn_" + this.mId).children[0];
        dmfrm.width = actMn.offsetWidth;
        dmfrm.height = actMn.offsetHeight
    }
    var mX = 0,
    mY = 0;
    if (orn == "V") {
        mX = $mPos(x1, x2, cW, mW, adjX, scrOffX, sDir, 0, (sDir[0] == "right" ? "left": "right"));
        mY = $mPos(y2, y1, cH, mH, -adjY, scrOffY, sDir, 1, (sDir[1] == "down" ? "up": "down"));
    } else {
        mX = $mPos(x2, x1, cW, mW, -adjX, scrOffX, sDir, 0, (sDir[0] == "right" ? "left": "right"));
        mY = $mPos(y1, y2, cH, mH, adjY, scrOffY, sDir, 1, (sDir[1] == "down" ? "up": "down"));
    }
    if (nls_isIE5 || !this.mgr.flowOverFormElement) {
        if (this.winElmt == null) hideWinElmt(this, {
            x1: mX,
            y1: mY,
            x2: mX + mW,
            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(ctx.style) {
        left = mX + "px";
        top = mY + "px";
        zIndex = this.zIndex;
        if (this.effect) {
            with(this.effect) {
                prop["dir"] = sDir[(orn == "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(mn, 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 (mn.winElmt == null) mn.winElmt = [];
                mn.winElmt[mn.winElmt.length] = o.e
            }
        }
    }
};
NLSMENU.showMenuAbs = function(x, y) {
    var ctx = NlsMenu.$GE(this.mId);
    ctx.style.top = y + "px";
    ctx.style.left = x + "px";
    ctx.style.display = "";
    this.rt.active = true
};
NLSMENU.hideMenu = function() {
    var ctx = NlsMenu.$GE(this.mId);
    if (!ctx) 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") {
                ctx.style.visibility = "hidden"
            } else {
                this.effect.onHide = function() {
                    ctx.style.visibility = "hidden"
                }
            };
            this.effect.run();
        } else {
            ctx.style.visibility = "hidden"
        }
        this.menuOnHide(this.mId);
    } else {
        this.isMenuOpened = false
    }
    if (this.lsItm != null) {
        var it = this.items[this.lsItm.id];
        if (it.state != 2 && !it.selected) {
            setMnStyle(this.lsItm, (it.enable ? "N": "D"), NlsMenu.getPrf(it, this));
            setMnIcon(this, it, "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(key) {
    var it = this.getItemById(key),
    w = (it.crsFrame ? it.subFrame: window);
    return w.nlsGetMenu(it.subMenuId);
};
function $itemClick(mn, it) {
    var mgr = nlsMenuMgr[mn.mgrId];
    mgr.hideMenus();
    $crsFrameDo(mgr,
    function(f, mg) {
        f.hideAllNlsMenu();
    });
    var trgt = it.target;
    if (trgt == null) trgt = $aonvl(mn.target, "_self");
    if (it.url != "") {
        open(it.url, trgt);
    } else {
        return mn.menuOnClick(mn.mId, it.id);
    }
};
NLSMENU.$menuItemClick = function(e, itemId) {
    var it = this.items[itemId];
    if (!it.enable) return;
    var prf = NlsMenu.getPrf(it, this),
    oIt = NlsMenu.$GE(itemId),
    mgr = this.mgr;
    if (this.isMenubar && this.dropOnClick && (this.hasSubmenu(it.id) || it.rt.subUrl)) {
        if (!this.isMenuOpened) {
            NlsMenu.showMenu(this, it);
            if (this.firstClickOnly) this.isMenuOpened = true
        } else {
            mgr.hideMenus();
            setMnStyle(oIt, (it.enable ? "O": "D"), prf);
            setMnIcon(this, it, "O");
            this.isMenuOpened = false;
            return null
        }
    } else {
        if (it.toggle) {
            this.setItemState(itemId, (it.state == 1 ? 2 : 1));
        } else if (this.selection) {
            this.setSelection(itemId, true);
        } else if (mgr.memorizeSel) {
            mgr.selectPath(this.mId, it.id);
            mgr.savePath(itemId);
        }
        return $itemClick(this, it);
    }
};
NLSMENU.menuOnClick = function(menuId, itemId) {
    return true
};
NLSMENU.menuOnShow = function(menuId) {
    return true
};
NLSMENU.menuOnHide = function(menuId) {
    return true
};
NLSMENU.reload = function(dh) {
    var ef = this.effect;
    if (ef) {
        ef.elm = null;
        ef.prop["init"] = false
    }
    this.lsItm = null;
    if (dh != true) this.mgr.hideMenus();
    var m = NlsMenu.$GE(this.mId);
    m.innerHTML = this.renderMenu("content");
};
NLSMENU.setProperties = function(obj) {
    for (var p in obj) {
        if (p == "items") {
            for (var it in obj[p]) {
                this.setItemProperties(it, obj[p][it]);
            }
        } else this[p] = obj[p]
    }
};
NLSMENU.setItemProperties = function(id, obj) {
    var it = this.getItemById(id);
    for (var p in obj) {
        it[p] = obj[p]
    }
};
function setMnIcon(mn, mnItm, f) {
    var tf = (mnItm.enable ? f: "D"),
    ico = $aonevl(mnItm.ico, mn.itemIco);
    if (mn.showIcon && ico && ico.length > 1) {
        var k = mnItm.intKey;
        var c = NlsMenu.$GE("ic_" + k),
        o = NlsMenu.$GE("icovr_" + k),
        d = NlsMenu.$GE("icdis_" + k);
        c.style.display = (tf == "N" || (tf == "D" && !d) ? "": "none");
        o.style.display = (tf == "O" ? "": "none");
        if (d) d.style.display = (tf == "D" ? "": "none");
    }
    if (mn.showSubIcon && mnItm.subMenuId != "") {
        var ic = NlsMenu.$GE("subicovr_" + mnItm.intKey);
        if (ic) {
            ic.style.display = (tf == "O" ? "": "none");
            ic = NlsMenu.$GE("subic_" + mnItm.intKey);
            if (ic) ic.style.display = (tf == "N" || tf == "D" ? "": "none");
        }
    }
};
function setMnStyle(it, s, prefix) {
    var suff = (s == "O" ? "over": (s == "S" ? "sel": "")),
    cn;
    it.className = prefix + "nlsitemcontainer" + suff;
    var r = it.childNodes[0].rows[0],
    rc = null;
    for (var i = 0; i < r.cells.length; i++) {
        rc = r.cells[i];
        if (rc.id == it.id + "x1") cn = prefix + "nlsiconcell" + suff;
        if (rc.id == it.id + "x2") cn = prefix + "nlsitem" + (s == "D" ? "disable": suff);
        if (rc.id == it.id + "x3") cn = prefix + "nlssubmenucell" + suff;
        rc.className = cn
    }
};
function nls_getXY(oIt) {
    var p = {};
    p.x = 0;
    p.y = 0;
    p.x2 = 0;
    p.y2 = 0;
    var tmp = oIt;
    var d = document;
    while (tmp) {
        p.x += tmp.offsetLeft;
        p.y += tmp.offsetTop;
        tmp = tmp.offsetParent
    };
    p.x -= (window.scrollX || d.body.scrollLeft || d.documentElement.scrollLeft);
    p.y -= (window.scrollY || d.body.scrollTop || d.documentElement.scrollTop);
    if (oIt) {
        p.x2 = p.x + oIt.offsetWidth;
        p.y2 = p.y + oIt.offsetHeight
    };
    return p
};
NlsMenu.showMenu = function(mn, it) {
    if (it.rt.subUrl && it.rt.loaded == 0) {
        NlsMenuUtil.loadAJAXMenu(mn, it);
    } else {
        NlsMenu.$showMenu(mn, it);
    }
};
NlsMenu.$showMenu = function(prMenu, it) {
    var oIt = NlsMenu.$GE(it.intKey);
    if (it.subMenuId != "" && it.enable == true) {
        var p = nls_getXY(oIt),
        smn;
        if (it.crsFrame) {
            var ps = it.subPos;
            if (ps[0] == "REL") {} else {
                p.x = ps[0];
                p.x2 = p.x
            }
            if (ps[1] == "REL") {} else {
                p.y = ps[1];
                p.y2 = p.y
            }
            if (!it.subFrame.nlsGetMenu) return;
            smn = it.subFrame.nlsGetMenu(it.subMenuId);
            if (!smn) return
        } else {
            smn = nlsGetMenu(it.subMenuId);
            if (!smn) return;
            if (smn.zIndex <= prMenu.zIndex) {
                smn.zIndex = prMenu.zIndex + 1
            }
            var ma = prMenu.rt.ma;
            if (ma) {
                p.y -= ma.scrollTop;
                p.y2 -= ma.scrollTop
            }
        }
        smn.showMenu(p.x, p.y, p.x2, p.y2, prMenu.orient, it.subDir, it.subPosAdj);
    }
};
NlsMenu.getPrf = function(it, mn) {

//	alert('it: '+it.stlprf);
//	alert('mn: '+mn.stlprf);

    return $aonevl(it.stlprf, mn.stlprf);
};
function nls_showMenu(mId, oIt, orient, subDir, subPosAdj) {
    var mn = nlsGetMenu(mId),
    p;
    if (!mn) {
        hideAllNlsMenu();
        return
    }
    mn.mgr.clearTimeout();
    if (mn.rt.active) return;
    p = nls_getXY(oIt);
    mn.mgr.hideMenus();
    mn.showMenu(p.x, p.y, p.x2, p.y2, orient, subDir, subPosAdj);
}
function nls_hideMenu(mId) {
    var m = nlsGetMenu(mId);
    if (m) $nlsMenuOut(m.mgrId);
}
function $nlsMenuOver(mgrId, mId) {
    var mgr = nlsMenuMgr[mgrId],
    mn = mgr.getMenu(mId);
    mgr.clearTimeout();
    if (mgr.rt.cmId != mId) {
        clearTimeout(mgr.rt.ctm);
        mgr.rt.ctm = null
    }
    $crsFrameDo(mgr,
    function(f, mg) {
        f.clearTimeout(mg.rt.ctm);
        mg.rt.ctm = null
    });
    if (mgr.rt.cmId != mId) $$nlsItemOver1(null, mId + "_dmy");
};
function $nlsMenuOut(mgrId) {
    var mgr = nlsMenuMgr[mgrId];
    if (mgr.design == true) return;
    mgr.clearTimeout();
    mgr.setTimeout(function() {
        mgr.hideMenus();
    },
    mgr.timeout);
    $crsFrameDo(mgr,
    function(f, mg) {
        mg.clearTimeout();
        mg.setTimeout(function() {
            mg.hideMenus()
        },
        mg.timeout);
    });
};
function $nlsItemOver(e, mId, itId) {
    $$nlsItemOver1(e, itId);
    $$nlsItemOver2(mId, itId);
    e.cancelBubble = true
}
function $nlsItemOut(e, mId) {
    var mn = nlsMenu[mId],
    mgr = mn.mgr;
    mgr.rt.cmId = mId;
    mgr.rt.ctm = setTimeout(function() {
        $$nlsItemOver1(e, mId + "_$dmy")
    },
    300);
}
function $$nlsItemOver1(e, itId) {
    var m = itId.split("_"),
    mn = nlsMenu[m[0]],
    mgr = mn.mgr;
    if (mgr.rt.cmId) {
        clearTimeout(mgr.rt.ctm);
        mgr.rt.ctm = null
    }
    $crsFrameDo(mgr,
    function(f, mg) {
        f.clearTimeout(mg.rt.ctm);
        mg.rt.ctm = null
    });
    if (mn.mgr.design == true) return;
    if (!mn.rt.active || !mn.rt.ready) return;
    var it = null,
    st = "",
    nli = null,
    li = mn.lsItm;
    if (li != null) {
        it = mn.items[li.id];
        if (!it) return;
        if (it.intKey == itId) return;
        if (it.state != 2 && !it.selected) {
            var st = NlsMenu.getPrf(it, mn);
            var ef = (it.itemEffect != null);
            if (ef) {
                it.itemEffect.init();
            }
            setMnStyle(li, (it.enable ? "N": "D"), st);
            setMnIcon(mn, it, "N");
            if (ef) {
                it.itemEffect.start();
            }
        }
        var w = it.crsFrame ? it.subFrame: window,
        tmp = null;
        if (w.nlsGetMenu) tmp = w.nlsGetMenu(it.subMenuId);
        while (tmp != null) {
            nli = null;
            if (tmp.lsItm) {
                it = tmp.items[tmp.lsItm.id];
                w = it.crsFrame ? it.subFrame: tmp.wnd;
                nli = w.nlsGetMenu(it.subMenuId);
            }
            tmp.hideMenu();
            tmp = nli
        }
    }
    mn.lsItm = null;
    var oIt = NlsMenu.$GE(itId);
    it = mn.items[itId];
    if (!it) return;
    $wrtStatus(it.url);
    if (it.state != 2 && !it.selected) {
        if (it.itemEffect != null) {
            it.itemEffect.init();
        }
        setMnStyle(oIt, (it.enable ? "O": "D"), NlsMenu.getPrf(it, mn));
        setMnIcon(mn, it, "O");
        if (it.itemEffect != null) {
            it.itemEffect.start();
        }
    }
    if (!mn.isMenubar || (mn.isMenubar && !mn.dropOnClick) || (mn.isMenubar && mn.dropOnClick && mn.isMenuOpened)) {
        NlsMenu.showMenu(mn, it);
    }
    mn.lsItm = oIt
};
function $$nlsItemOver2(mId, itId) {
    var mn = nlsMenu[mId],
    mgr = mn.mgr;
    if (mgr.design == true) return;
    mgr.clearTimeout();
    $crsFrameDo(mgr,
    function(f, mg) {
        mg.clearTimeout()
    });
    for (var it in nlsMenuMgr) {
        if (it != mgr.mgrId) {
            nlsMenuMgr[it].hideMenus();
        }
    }
}
function $crsFrameDo(mgr, f) {
    var a = mgr.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(mId) {
    return nlsMenu[mId]
};
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) return v;
    else return c
};
function $aonevl(v, c) {
    if (!v || v == "") return c;
    else return v
};
NlsMenu.$GE = function(id) {
    if (document.all) {
        return document.all(id);
    } else if (document.getElementById) {
        return document.getElementById(id);
    }
};