+ // we need to preload AJAX menu here, otherwise hasSubmenu below returns false ~Kostja
+ if (this.isMenubar && this.dropOnClick && it.rt.subUrl && it.rt.loaded==0) {
+ //ajax menu
+ NlsMenuUtil.loadAJAXMenu(this,it);
+ }
+
+ if(this.isMenubar && this.dropOnClick && this.hasSubmenu(it.id) && !this.isMenuOpened) { // Kostja: added !this.isMenuOpened, otherwise there is no way to go to menu item URL ~Kostja
if(!this.isMenuOpened) {
NlsMenu.showMenu(this, it);
this.isMenuOpened = true;
- } else {
- mgr.hideMenus();
- setMnStyle(oIt, (it.enable ? "O" : "D"), prf);
+ } else { // we'll never get here, see above ~Kostja
+ 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);
}
$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");
};
function setMnIcon(mn, mnItm, f) {
var tf=(mnItm.enable?f:"D");
if (mn.showIcon && mnItm.ico && mnItm.ico.length>1) {
var k=mnItm.intKey;
var c=NlsMenu.$GE("ic_"+k), o=NlsMenu.$GE("icovr_"+k), d=NlsMenu.$GE("icdis_"+k);