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/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 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) {
	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 != null)
		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);
	}
};