//UDMv3.1 // filter for undefined arrays for (f=0;f'); Mrows[i]=splitT.length; Nrows[i]=Mrows[i]; } function cFun(a,b) { return b-a; } Mrows.sort(cFun); nH=nH*Mrows[0]; var aH=nH+(bSIZE*2); for(i=0;i0){stA=absR+(2*bSIZE);} if(rL<0){rL=0;} if(stretchMENU){aL=0;} } var sL=rL; if(ra){sL-=absR;} if(la){sL+=absR;} // how many main nav items var ntl=0; for (intl=0;intl0){ oR[6][sob][soj]=d.all['subroll'+sob+'-'+soj]; if(shCOLOR!=""){oR[7][sob][soj]=d.all['childshadow'+sob+'-'+soj];} if((chhOFFSET+cP[sob][soj][4])>0){oR[8][sob][soj]=d.all['childgrid'+sob+'-'+soj];} oR[9][sob][soj]=d.all['childnav'+sob+'-'+soj]; oR[10][sob][soj]=d.all['childlinks'+sob+'-'+soj]; oR[11][sob][soj]=new Array; oR[13][sob][soj]=new Array; for (scj=0;scj0){ for (sj=0;sj0){ miH(oR[5][pId][pCId]); miH(oR[8][pId][pCId]); miH(oR[9][pId][pCId]); miH(oR[10][pId][pCId]); if(oR[7][pId][pCId]){ oR[7][pId][pCId].filters.alpha.opacity=0; miH(oR[7][pId][pCId]); } } } } usegrid=false; } } // start menu closing timer function cM(n){ if(allready){ var ieNum=n; if(pCId==0&&!usegrid){ aCM(ieNum); pId=0;pCId=0; } else { if(rCount==0){ rCount++; rTimer=setTimeout("cM(pId)",closeTIMER); } else { aCM(ieNum); pId=0;pCId=0; } } } } // special closing for grid var usegrid=false; function gridClearMenus(){ if(allready){ rCount=0;clearTimeout(rTimer); usegrid=true; cM(); } } // open selected submenu var rObj; var n; var sms=-1; var gridOkay=false; function oM(n){ if(allready){ sms=n; miV(obGrid); if(sI[n]!=""){ for (ohm=0;ohm0&&cI[snum][pCId].length>0){ miH(oR[8][snum][pCId]); miH(oR[9][snum][pCId]); miH(oR[10][snum][pCId]); if(oR[7][snum][pCId]){ oR[7][snum][pCId].filters.alpha.opacity=0; miH(oR[7][snum][pCId]); } } } pCId=0; } } // open selected child menu var snum; var cnum; var cmsS=-1; var cmsC=-1; function oCM(snum,cnum){ if(allready){ cmsS=snum;cmsC=cnum; if(cP[snum][cnum].length>0&&cI[snum][cnum].length>0){ miV(oR[8][snum][cnum]); miV(oR[9][snum][cnum]); miV(oR[10][snum][cnum]); if(oR[7][snum][cnum]&&cI[snum][cnum]!=''){ oR[7][snum][cnum].filters.alpha.opacity=shOPACITY; miV(oR[7][snum][cnum]); } } pCId=cnum; rCount=0;clearTimeout(rTimer); } } // td click handlers function goToUrl(cUrl,cT){ if(cellCLICK||(cellCLICK==mu)){ if(cT=="_self"){self.document.location=cUrl;} else if(cT=="_top"){top.document.location=cUrl;} else if(cT=="_parent"){parent.document.location=cUrl;} else if(cT=="_blank"){var newwin=open(cUrl,"","status=yes,scrollbars=yes,scrolling=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes");} else {if(top[cT]){top[cT].document.location=cUrl} else {document.location=cUrl;}} } } //alert("assemble main nav"); var S=''; var T=''; // nav stretching var stbSize=0; if(showBORDERS){stbSize=bSIZE;} if(stretchMENU||showBORDERS){ S+=ttt + stbSize+' '+bks[1]+' width='+bW+' height='+aH+' id="stretchnav" '; S+='style="z-index:'+(zORDER+1)+'\; position:absolute\; top:'+aP[xp]+'\; left:0\;">'; S+=''; if(stretchMENU){ var tbf=bks[0]; if(showBORDERS){tbf='';} var tbs=bks[0]; if(!showBORDERS){tbs='';} S+=ttt + stbSize+' width='+bW+' '+tbf+' height='+aH+' style="z-index:'+(zORDER+2)+'\; position:absolute\; top:'+aP[xp]+'\; left:0\;">'; } } // event capturing layer var evW=bW;if(mac&&ie5){evW=(bW-15);} T+=' '; // open frame if(!free){T+=ttt + bSIZE+' width='+nS+' height='+aH+' id="mainnav" '+bks[1]+' style="z-index:'+(zORDER+4)+'\; position:absolute\; top:'+aP[xp]+'px\; left:'+rL+'px\;">';} // links var cSt=new Array; var cTd=new Array; var linkHover=' onmouseover="if(allready){this.style.color=\''+aHOVER+'\'}" onmouseout="if(allready){this.style.color=\''+aLINK+'\'}"'; if(aHOVER==''||rCOLOR!=''){linkHover='';} var space=new Array; // alt text arrays var aTx=new Array; var sTx=new Array; var cTx=new Array; var altNull=''; // write alt text to status bar function writeStatus(sTxt){if(allready){window.status=sTxt; return true;}} for (i=0;i';} var tmItem='href="'+mI[i][0]+'" target="'+mI[i][4]+'"'; if((cellCLICK||(cellCLICK==mu))&&mI[i][4]=="_blank"){ if(mac){tmItem='href="'+mI[i][0]+'" onclick="goToUrl(mI['+i+'][0],\'_blank\')\;return false" ';} else {tmItem='href="'+mI[i][0]+'" onclick="return false" ';} } T+=''+ttt+'0 width='+mI[i][2]+' style="z-index:'+(zORDER+4)+'\; height:'+thisNH[i]+'\;">'+mI[i][1]+''; if(free){T+='';} } } // close frame if(!free){T+='';} // rollover cells var rollLeft=rL+bSIZE; for (i=0;i'+ttt+'0 width='+mI[i][2]+' style="height:'+thisNH[i]+'\;">'+mI[i][1]+''; } rollLeft+=(mI[i][2]+bSIZE); } xp=0; //alert("assemble submenus"); var M=''; var C=''; var SUBaL=0; for (c=0;c0){M+='';} // grid block layer for horizontal offset var gblw=acL-mI[c][2]-SUBaL; var gbposL=(SUBaL+mI[c][2]+(2*bSIZE)); if(sP[c][1]=="right"){ gblw=mI[c][7]+bSIZE+aL-sP[c][0]-acL; gbposL=(mI[c][7]+bSIZE+aL-gblw); } if(gblw>0){M+='';} // container cells M+=ttt + sbSIZE+' id="subnav'+c+'" width="'+sP[c][0]+'" '+bks[4]+' style="visibility:hidden\; z-index:'+(zORDER+7)+'\; position:absolute\; top:'+(aP[xp]+thisAH[c]+vOFFSET+sP[c][3])+'px\; left:'+acL+'px\;">'; var SUBaT=aP[xp]+thisAH[c]+vOFFSET; for (i=0;i'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } M+=''; } } M+=''; // links var sublinkHover=' onmouseover="this.style.color=\''+saHOVER+'\'" onmouseout="this.style.color=\''+saLINK+'\'"'; if(saHOVER==''||srCOLOR!=''){sublinkHover='';} M+=ttt + sbSIZE+' width="'+sP[c][0]+'" id="sublinks'+c+'" style="visibility:hidden\; z-index:'+(zORDER+8)+'\; position:absolute\; top:'+(aP[xp]+thisAH[c]+vOFFSET+sP[c][3])+'px\; left:'+acL+'px\;">'; var SUBaT=aP[xp]+aH+vOFFSET+sP[c][3]; var scSt=new Array; var scTd=new Array; for (i=0;i'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } M+=''+ttt+'0 id="sublink'+c +'-'+i+'" width='+(sP[c][0]-(sbSIZE*2))+' style="height:'+thisH+'">'+ sI[c][i][1]+''; } M+=''; // subrollover cells var subrollTop=aP[xp]+thisAH[c]+vOFFSET+sP[c][3]+sbSIZE; var chTop=new Array; for (i=0;i'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } T+='
'+ sI[c][i][1]+'
'; chTop[i]=subrollTop; subrollTop+=thisH+sbSIZE; } //alert("drop shadow"); var shb=0;if(shy){shb=(2*shSIZE);} if(shCOLOR!=""){M+=ttt+'0 '+bks[6]+' id="shadow'+c+'" style="visibility:hidden\; filter:alpha(opacity='+shOPACITY+')\; z-index:'+(zORDER+6)+'\; position:absolute\; top:'+(aP[xp]+thisAH[c]+vOFFSET+sP[c][3]+shSIZE-shb)+'px\; left:'+(acL+shSIZE-shb)+'px\; width:'+(sP[c][0]+shb)+'\; height:1\;"> ';} //alert("assemble child menus"); for (sq=0;sq0&&cI[c][sq].length>0){ // specify edge alignment var chL; if(cP[c][sq][1]=="right"){ chL=acL-cP[c][sq][0]-chhOFFSET-cP[c][sq][4]; cgL=chL+cP[c][sq][0]; } else { chL=acL + sP[c][0]+chhOFFSET+cP[c][sq][4]; cgL=(chL-(chhOFFSET+cP[c][sq][4])); } // grid block layer for horizontal offset if((chhOFFSET+cP[c][sq][4])>0){ C+=''; } // container cells C+=ttt + sbSIZE+' id="childnav'+c+'-'+sq+'" '+bks[4]+' style="visibility:hidden\; z-index:'+(zORDER+10)+'\; position:absolute\; top:'+((chTop[sq]-sbSIZE+chvOFFSET)+cP[c][sq][3])+'px\; left:'+chL+'px\; width:'+cP[c][sq][0]+'px\; height:'+(((snH+sbSIZE)*cI[c][sq].length)+sbSIZE)+'px\;">'; for (cj=0;cj0){ // find wrapping links routine by brendan armstrong var thisH=snH; var thisT=cI[c][sq][cj][1]; var splitT=thisT.split('
'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } C+=''; } } C+=''; } // text alignment and indentation var ctAlign=cP[c][sq][2]; var cspace=' left:0px\;'; if(ctAlign=="left"){cspace=' left:'+stINDENT+'px\;';} if(ctAlign=="right"){cspace=' left:-'+stINDENT+'px\;';} var ccTd='cursor:default'; if(cellCLICK==true){ccTd='cursor:'+aCURSOR;} var ccAl='cursor:'+aCURSOR; // links C+=ttt + sbSIZE+' id="childlinks'+c+'-'+sq+'" width="'+cP[c][sq][0]+'" style="visibility:hidden\; z-index:'+(zORDER+11)+'\; position:absolute\; top:'+((chTop[sq]-sbSIZE+chvOFFSET)+cP[c][sq][3])+'px\; left:'+chL+'px\;">'; for (cj=0;cj'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } var ccTd='cursor:default'; if(cellCLICK==true){ccTd='cursor:'+aCURSOR;} var ccAl='cursor:'+aCURSOR; if(!cI[c][sq][cj][4]){ccAl='cursor:default';} if(!cI[c][sq][cj][4]){ccTd='cursor:default';} C+=''+ttt+'0 id="childlink'+c+'-'+sq+'-'+cj+'" width='+(cP[c][sq][0]-(sbSIZE*2))+' style="height:'+thisH+'">'+ cI[c][sq][cj][1]+''; } C+=''; // child rollover cells var childrollTop=chTop[sq]+chvOFFSET+cP[c][sq][3]; for (cj=0;cj'); var Trows=splitT.length; if (Trows>1) { thisH=(snH*Trows); } C+=ttt+'0 id="childroll'+c+'-'+sq+'-'+cj+'" onmouseover="rCount=0\;clearTimeout(rTimer)\; this.style.visibility=\'visible\'" onmouseout="miH(this)" '+bks[5]+' width='+(cP[c][sq][0]-(sbSIZE*2))+' style="visibility:hidden\; z-index:'+(zORDER+12)+'\; height:'+thisH+'\; position:absolute\; top:'+childrollTop+'px\; left:'+(chL+sbSIZE)+'px\;">'+ cI[c][sq][cj][1]+''; childrollTop+=thisH+sbSIZE; } //alert("child drop shadow"); if(shCOLOR!=""&&(cP[c][sq].length>0&&cI[c][sq].length>0)){C+=ttt+'0 '+bks[6]+' id="childshadow'+c+'-'+sq+'" style="visibility:hidden\; filter:alpha(opacity='+shOPACITY+')\; z-index:'+(zORDER+9)+'\; position:absolute\; top:'+((chTop[sq]-sbSIZE+chvOFFSET)+shSIZE+cP[c][sq][3]-shb)+'px\; left:'+(chL+shSIZE-shb)+'px\; width:'+(cP[c][sq][0]+shb)+'\; height:1\;"> ';} } } // static positioning layer if (win) { d.write('
'); } // draw stretched layer if(!free){d.write(S);} // draw main nav d.write(T); // draw submenus d.write(M); // draw child menus d.write(C); // close static positioning layer if (win) { d.write('
'); } // resize / reload trap if(allowRESIZE==true){window.onresize=new Function("window.location.reload()");} var sTimer; function makeStatic(){ d.all["master"].style.pixelTop=d.body.scrollTop; sTimer=setTimeout("makeStatic()",0); } // find shadow heights var allready=false; var shb=0;if(shy){shb=(2*shSIZE);} function findHeights(){ for(h=0;h0&&cI[h][jh].length>0){ if(oR[7][h][jh]){oR[7][h][jh].style.height=oR[9][h][jh].clientHeight+shb;} if(oR[8][h][jh]){oR[8][h][jh].style.height=oR[9][h][jh].clientHeight+shb+shSIZE;} } } } genericOnloadFunction(); if(staticMENU&&ie5){makeStatic();} allready=true; } // store objects window.onload=storeObjects; // build key trigger recognition arrays from ANSI key codes var kLets = new Array('*l','*u','*r','*d','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','<','>'); var kCodes = new Array; var ii=0; var kc=0; var kcc=-1; var allowKey=false; for (i=37;i<41;i++) { kCodes[ii] = i; ii++; } for (i=97;i<123;i++) { kCodes[ii] = i; ii++; } // store id of currently focussed link var NfcN=-1; var NfcS=-1; var NfcC=-1; var childStat=false; function storeFocusId(fcN,fcS,fcC,chX) { NfcN=fcN;NfcS=fcS;NfcC=fcC; childStat=chX; } // key listening function function keyListen(DnEvents) { kcc=-1; kc = event.keyCode; var eka=event.altKey; var eks=event.shiftKey; var ekc=event.ctrlKey; if(eka||eks||ekc){return false;} // form discrimination code by BUU @ website abstraction help forum var html=event.srcElement.outerHTML; regexp1=/^=65&&kc<=90) { kc+=32; } // find which key is pressed for (i=0;i