Index: trunk/themes/default2007/platform/inc/nlsmenu.js =================================================================== diff -u -N -r8539 -r8587 --- trunk/themes/default2007/platform/inc/nlsmenu.js (.../nlsmenu.js) (revision 8539) +++ trunk/themes/default2007/platform/inc/nlsmenu.js (.../nlsmenu.js) (revision 8587) @@ -430,7 +430,13 @@ if(this.menuOnShow(this.mId)==false)return; var ctx = NlsMenu.$GE(this.mId); - if (!ctx) return; + if (!ctx) { + //create menu if not rendered. + 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(); @@ -557,8 +563,10 @@ }; NLSMENU.hasSubmenu=function(key) { - var s=this.items[this.mId+"_"+key].subMenuId; - return(nlsMenu[s]); + var it=this.items[this.mId+"_"+key]; + if(!it.crsFrame) {return(nlsMenu[it.subMenuId]);} else { + return it.subFrame.nlsGetMenu(it.subMenuId); + } }; function $itemClick(mn, it) { @@ -615,6 +623,7 @@ 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"); @@ -663,7 +672,8 @@ var it=null, st="", nli=null; if (li!=null) { it=prMenu.items[li.id]; - if (it.intKey==itId) return; + if(!it) return; + if(it.intKey==itId) return; if(it.state!=2 && !it.selected) { /*toggle pressed*/ var st=NlsMenu.getPrf(it, prMenu); var ef=(it.itemEffect!=null); Index: trunk/themes/default2007/platform/inc/nlsmenuext_xml.js =================================================================== diff -u -N -r8576 -r8587 --- trunk/themes/default2007/platform/inc/nlsmenuext_xml.js (.../nlsmenuext_xml.js) (revision 8576) +++ trunk/themes/default2007/platform/inc/nlsmenuext_xml.js (.../nlsmenuext_xml.js) (revision 8587) @@ -18,10 +18,10 @@ mgr.defaultEffect=$aonevl(rt.getAttribute("defaulteffect"), null); mgr.icPath=$aonvl(rt.getAttribute("icpath"), ""); mgr.memorizeSel=$aonevl(rt.getAttribute("memorizesel"), false); - + var dm=rt.getElementsByTagName("menubar")[0]; NlsMenuUtil.createMenu(dm, mgr); - + var mns=rt.getElementsByTagName("menus")[0]; if(mns){ for (var i=0;i