[ PHPXref.com ] [ Generated: Sun Jul 20 20:12:55 2008 ] [ Scout Tracker 0.13 ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/javascript/ -> menu_moz.js (source)

   1  //UDMv3.4.1.1b

   2  
   3  
   4  
   5  // filter for undefined arrays

   6  for (var f=0;f<mI.length;f++){
   7  if(typeof sP[f]=="undefined"){sP[f]=new Array(mI[f][2],mI[f][3],mI[f][3],0,0);}
   8  if(typeof cP[f]=="undefined"){cP[f]=new Array;}
   9  if(typeof sI[f]=="undefined"){sI[f]=new Array;}
  10  if(typeof cI[f]=="undefined"){cI[f]=new Array;}
  11  for (var sf=0;sf<sI[f].length;sf++){
  12  if(typeof cP[f][sf]=="undefined"){cP[f][sf]=new Array;}
  13  if(typeof cI[f][sf]=="undefined"){cI[f][sf]=new Array;}
  14  }}
  15  
  16  // set undefined or disallowed values

  17  if(absTOP<0){absTOP=0;}
  18  if(absLEFT<0){absLEFT=0;}
  19  if(vPADDING<0){vPADDING=0;}
  20  if(svPADDING<0){svPADDING=0;}
  21  if(aHOVER=="") { aHOVER=aLINK; }
  22  if(saHOVER=="") { saHOVER=saLINK; }
  23  if(aCURSOR=="hand"){aCURSOR="pointer";}
  24  if(kde){allowForSCALING=false;}
  25  
  26  //find colors or images

  27  var tempImg;
  28  var bnk=".gif";
  29  var bk=new Array(mCOLOR,bCOLOR,rCOLOR,smCOLOR,sbCOLOR,srCOLOR,shCOLOR);
  30  var bks=new Array;
  31  var ui=new Array(false,false,false,false,false,false);
  32  if(bk[2]=="") { bk[2]=mCOLOR; }
  33  if(bk[5]=="") { bk[5]=bk[3]; }
  34  
  35  var imgBacks=0;
  36  for (var b=0;b<bk.length;b++){
  37      if(bk[b]=="") { bk[b]=""; }
  38      if((bk[b].indexOf('.gif') != -1) || (bk[b].indexOf('.jpg') != -1)){
  39          ui[b]=true;
  40          tempImg=bk[b];
  41          bk[b]=new Image;
  42          bk[b].src=baseHREF+tempImg;
  43          bks[b] = 'background-image:url('+bk[b].src+')\;';
  44          imgBacks++;
  45          }
  46      else {
  47          if(bk[b]=="") { bks[b] = 'background-color:transparent\;';  }
  48          else { bks[b] = 'background-color:'+bk[b]+'\;';  }
  49          }
  50      }
  51  
  52  if(imgBacks==0){bnk="";}
  53  if(ui[2]&&!ui[0]) { bks[0]+='background-image:url('+bnk+')\;'; }
  54  if(ui[0]&&!ui[2]) { bks[2]+='background-image:url('+bnk+')\;'; }
  55  if(ui[5]&&!ui[3]) { bks[3]+='background-image:url('+bnk+')\;'; }
  56  if(ui[3]&&!ui[5]) { bks[5]+='background-image:url('+bnk+')\;'; }
  57  
  58  
  59  
  60  
  61  //do nothing

  62  function doNothing(){}
  63  
  64  
  65  
  66  // find the inner width and height of the browser window

  67  var bWidth=window.innerWidth;
  68  var bHeight=window.innerHeight;
  69  
  70  
  71  
  72  // compensate for lack of scrollbar if applicable

  73  var sbaa=14;
  74  if(!kde&&!saf){
  75      if(ns7){sbaa=15;}
  76      if(mac&&(mz7&&ns6)){sbaa=16;}
  77      if((mz7&&ns6)&&(agt.indexOf("rc1")!=-1||agt.indexOf("rv:1.2")!=-1)){sbaa=19;}
  78      if(((mz7&&ns6)&&win&&(agt.indexOf("windows nt 5.1")!=-1))||mac||ns6){if(document.width<=(innerWidth-30)){bWidth-=sbaa;}}
  79      else if((mz7&&ns6)&&win&&(agt.indexOf("windows nt 5.0")!=-1)){if(document.width<=(innerWidth-16)){bWidth-=16;}}
  80      else if(win){if(document.width<=(innerWidth-17)){bWidth-=17;}}
  81      if(lin){if(document.width<=(innerWidth-17)){bWidth-=17;}}
  82      if(agt.indexOf("mac os x")!=-1){bWidth+=1;}
  83      if(menuALIGN=="free"||remoteTRIGGERING||(!showBORDERS&&!stretchMENU)){bWidth-=sbaa;}
  84      }
  85  
  86  //saf tweak

  87  if(saf){
  88      bWidth-=15;
  89      bHeight-=15;
  90      }
  91  
  92  
  93  //op7 tweak

  94  if(op7){
  95      bWidth=document.body.clientWidth;
  96      bHeight=document.body.clientHeight;
  97      }
  98  
  99  //override width if defined

 100  if(documentWIDTH>0){bWidth=documentWIDTH;}
 101  
 102  
 103  
 104  //set nav height for backward compatibility

 105  var navH=fSIZE+5+vPADDING;
 106  if (fSIZE<13) { navH+=(13-fSIZE); }
 107  var origH=navH;
 108  
 109  // find wrapping links routine by brendan armstrong

 110  var Mrows=new Array;var Nrows=new Array;
 111  for(var i=0;i<mI.length;i++){
 112  var thisT=mI[i][1];
 113  var splitT=thisT.split('<br>');
 114  Mrows[i]=splitT.length;
 115  Nrows[i]=Mrows[i];
 116  }
 117  function cFun(a,b) { return b-a; }
 118  Mrows.sort(cFun);
 119  navH=navH*Mrows[0];
 120  
 121  var thisNavH=new Array;
 122  for(i=0;i<mI.length;i++){
 123      if(menuALIGN=="free"){
 124          thisNavH[i]=origH*Nrows[i];
 125          }
 126      else{
 127          thisNavH[i]=navH;
 128          }
 129      }
 130  
 131  
 132  // find the subnav item height

 133  var subNavH=sfSIZE+5+svPADDING;
 134  if (sfSIZE<13) { subNavH+=(13-sfSIZE); }
 135  
 136  
 137  //calculate nav width

 138  var endSpace=0;
 139  var navSpace=0;
 140  for (var j=0;j<mI.length;j++){
 141      if(mI[j][2]==""){mI[j][2]=10;}
 142      if(mI[j][1]==""){mI[j][1]='&nbsp;';}
 143      navSpace+=mI[j][2]+bSIZE;
 144      }
 145  navSpace+=bSIZE;
 146  endSpace=bWidth-navSpace;
 147  
 148  
 149  
 150  //set values for different alignments

 151  var ra=false;
 152  if(menuALIGN=="right"){
 153  ra=true;
 154  absLEFT=endSpace-absLEFT;
 155  }
 156  
 157  var ca=false;
 158  if(menuALIGN=="center"){
 159  ca=true;
 160  absLEFT=endSpace / 2;
 161  }
 162  
 163  var la=false;
 164  if(menuALIGN=="left"){
 165  la=true;
 166  }
 167  
 168  
 169  //if(navSpace>bWidth&&menuALIGN!="free") { absLEFT=0; }

 170  
 171  //convert shadow type

 172  var shy=0;
 173  var shType;
 174  if(typeof shSIZE == "number") {
 175      if(shSIZE<0){shSIZE=0;}
 176      shy-=shSIZE;
 177      shType="number";
 178      }
 179  if(typeof shSIZE == "string") {
 180      shSIZE=parseInt(shSIZE);
 181      shy+=shSIZE;
 182      shType="string";
 183      }
 184  
 185  //variables

 186  var tInfo,titleText,master,nav,grid,pObj,nObj,ncObj,sObj,snObj,scObj,cObj,cnObj,ccObj,sNode,temSNode,temCNode,shObj,sLeft,slMargin,srMargin,sTop,stMargin,mSize,mNumOf,cNode,cshObj,cLeft,clMargin,crMargin,cTop,ctMargin,cmSize,cNumOf;
 187  
 188  //show grid

 189  var grs;
 190  function showGrid() {
 191      grs=grid.style.visibility;
 192      if(grs=="hidden"){grid.style.visibility="visible";}
 193      }
 194  //hide grid

 195  function hideGrid() {
 196      grs=grid.style.visibility;
 197      if(grs=="visible"){grid.style.visibility="hidden";}
 198      }
 199  
 200  
 201  // write status message

 202  function writeStatus(sTxt){
 203      window.status=sTxt;
 204      return true;
 205      }
 206  
 207  
 208  // clear child menus

 209  function clearChildMenus() {
 210  
 211      cNumOf = cObj.childNodes.length;
 212      for(i=0;i<cNumOf;i++){
 213          cObj.removeChild(cObj.childNodes[i]);
 214          }
 215  
 216      currentID = [currentID[0],-1,-1];
 217      }
 218  
 219  
 220  
 221  
 222  // actually clear submenus

 223  var currentID = [-1,-1,-1];
 224  var previousID = [-1,-1,-1];
 225  var focusID = [-1,-1,-1];
 226  var cTimer=0;
 227  var closeOkay=false;
 228  var fid=0;
 229  function clearSubMenus() {
 230  
 231      if(currentID[0]>-1) {
 232          for(i=0;i<mI.length;i++){
 233              ncObj = document.getElementById("maincell-"+i);
 234              ncObj.style.zIndex = zORDER+3;
 235              }
 236          ncObj = document.getElementById("maincell-"+currentID[0]);
 237          if(typeof ncObj != "undefined") {
 238              if(ui[2]) {
 239                  if(ui[0]) { ncObj.style.backgroundImage = 'url('+bk[0].src+')'; }
 240                  else { ncObj.style.backgroundImage = 'url('+bnk+')'; }
 241                  }
 242              else {
 243                  if(ui[0]) { ncObj.style.backgroundImage = 'url('+bk[0].src+')'; }
 244                  else { ncObj.style.backgroundColor = bk[0]; }
 245                  }
 246              ncObj.firstChild.firstChild.firstChild.firstChild.firstChild.style.color = aLINK;
 247              }
 248  
 249          mNumOf = sObj.childNodes.length;
 250          for(i=0;i<mNumOf;i++){
 251              sObj.removeChild(sObj.childNodes[i]);
 252              }
 253  
 254          clearChildMenus();
 255          }
 256  
 257      writeStatus('');
 258  
 259      currentID = [-1,-1,-1];
 260      focusID=[-1,-1,-1];
 261  
 262      hideGrid();
 263      clearTimeout(cTimer);
 264      closeOkay=false;
 265      }
 266  
 267  
 268  
 269  // start clear menus from grid

 270  function gridClearMenus() {
 271  
 272      if(closeOkay) {
 273          clearTimeout(cTimer);
 274          clearSubMenus();
 275          }
 276      else {
 277          closeOkay=true;
 278          cTimer=setTimeout("gridClearMenus()",closeTIMER);
 279          }
 280  
 281      }
 282  
 283  
 284  // td click handlers

 285  var wins = new Array;
 286  var wNum = 0;
 287  function goToUrl(cUrl,cTarg){
 288      if(cUrl.indexOf("mailto:")!=-1){ document.location=cUrl; }
 289      else if(cUrl!=""){
 290          if(cTarg=="_self"){self.document.location=cUrl;}
 291          else if(cTarg=="_top"){top.document.location=cUrl;}
 292          else if(cTarg=="_parent"){parent.document.location=cUrl;}
 293          else if(cTarg=="_blank"){
 294              wins[wNum]=open(cUrl,"","status=yes,scrollbars=yes,scrolling=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes");
 295              wNum++;
 296              }
 297          else {
 298              if(top[cTarg]){top[cTarg].document.location=cUrl}
 299              else {document.location=cUrl;}
 300              }
 301          }
 302      }
 303  
 304  
 305  //main cell rollover

 306  function mainRollover(rmNum) {
 307  
 308      for(i=0;i<mI.length;i++){
 309          ncObj = document.getElementById("maincell-"+i);
 310          ncObj.style.zIndex = zORDER+20;
 311          }
 312      ncObj = document.getElementById("maincell-"+rmNum);
 313  
 314      if(ui[2]) {
 315          ncObj.style.backgroundImage = 'url('+bk[2].src+')';
 316          }
 317      else {
 318          ncObj.style.backgroundImage = 'url('+bnk+')';
 319          ncObj.style.backgroundColor = bk[2];
 320          }
 321      ncObj.firstChild.firstChild.firstChild.firstChild.firstChild.style.color = aHOVER;
 322  
 323      if(altDISPLAY=="status") {
 324          writeStatus(mI[rmNum][5]);
 325          }
 326      else {
 327          tInfo=mI[rmNum][0];
 328          if(tInfo=="#") { tInfo = ""; }
 329          writeStatus(tInfo);
 330          }
 331  
 332      }
 333  
 334  
 335  //main cell events

 336  var kcc=-1;
 337  var sPlay=false;
 338  var cPlay=false;
 339  function mainCell(mNum,gridTrue) {
 340  
 341      if(typeof mI[mNum]=="undefined") { return false; }
 342  
 343      currentID = previousID;
 344      clearSubMenus();
 345      currentID = [mNum,-1,-1];
 346      previousID = currentID;
 347      focusID=currentID;
 348  
 349      mainRollover(mNum);
 350  
 351      if(sI[mNum].length>0) { openSubMenu(mNum); }
 352  
 353      if(typeof gridTrue=="undefined") { showGrid(); }
 354      
 355      return currentID;
 356      }
 357  
 358  //minimum main cell events

 359  function partialMainCell(mNum) {
 360  
 361      mainRollover(mNum);
 362  
 363      if(sI[mNum].length>0) {
 364          if(previousID[1]>-1) { clearCell(document.getElementById("subcell-"+mNum+"-"+previousID[1])); }
 365          }
 366  
 367      }
 368  
 369  
 370  //open submenu

 371  var sn,stObj,shAry,chAry,swPad,shPad,nodeHtml,mDiff,wAdj,tfObj;
 372  var kPressed=false;
 373  
 374  var shopac='-moz-opacity:'+(shOPACITY/100);
 375  if(!win){shopac='';}
 376  
 377  var stt,textScale,applyWidth,applyWidthII;
 378  function openSubMenu(mid) {
 379  
 380      //create node

 381      sNode = document.createElement("div");
 382      document.getElementById("manch").appendChild(sNode);
 383  
 384      //build submenu items

 385      sn='';
 386  
 387      applyWidth='width:auto;min-width:'+sP[mid][0]+'px\;white-space:nowrap\;';
 388      if(kde||saf||(op7&&shType=="string")){applyWidth='width:'+sP[mid][0]+'px\;';}
 389      sn+='<div id="subtable-'+mid+'" style="'+applyWidth+'-moz-opacity:1\;position:relative\;left:'+shy+'px\;top:'+shy+'px\;'+bks[4]+'"><table cellpadding=0 cellspacing='+sbSIZE+' border=0>';
 390      shAry = new Array;
 391      chAry = new Array;
 392      for(i=0;i<sI[mid].length;i++){
 393          sn+='<tr>';
 394          clcu = '';
 395          if(cellCLICK&&sI[mid][i][0]!=""&&sI[mid][i][0]!="#"&&sI[mid][i][0]!="~") { clcu = ' cursor:'+aCURSOR+'\;'; }
 396          cllu=' cursor:default\;';
 397          if(sI[mid][i][0]!=""&&sI[mid][i][0]!="#"&&sI[mid][i][0]!="~") { cllu = ' cursor:'+aCURSOR+'\;'; }
 398  
 399          // find wrapping links routine by brendan armstrong

 400          shAry[i]=subNavH;
 401          var thisT=sI[mid][i][1];
 402          var splitT=thisT.split('<br>');
 403          var Trows=splitT.length;
 404          if (Trows>1) { shAry[i]=(subNavH*Trows)-(svPADDING*(Trows-1)); }
 405  
 406          titleText=""; if(altDISPLAY=="title") { titleText = sI[mid][i][3]; }
 407          textScale='width:auto;min-width:'+(sP[mid][0]-(2*sbSIZE))+'px\;height:auto;min-';
 408          if(!allowForSCALING||kde||saf||op7) { textScale='width:'+(sP[mid][0]-(2*sbSIZE))+'px\;'; }
 409          sn+='<td style="'+clcu+'" align='+sP[mid][2]+'><div title="'+titleText+'" class=SUBmTD onfocus="subCell('+mid+','+i+')" onmouseover="temCNode=document.getElementById(\'childmenu-'+mid+'-'+i+'\')\;if(!temCNode){subCell('+mid+','+i+')}else{partialSubCell('+mid+','+i+')}" onclick="if(cellCLICK){goToUrl(sI['+mid+']['+i+'][0],sI['+mid+']['+i+'][2])}" id="subcell-'+mid+'-'+i+'" style="'+bks[3]+''+textScale+'height:'+shAry[i]+'px\;white-space:nowrap;"><div onmouseout="event.cancelBubble=true" id="subtext-'+mid+'-'+i+'" style="'+cllu+'position:relative"><span style="color:'+saLINK+'\;font:'+sfSIZE+' '+sfFONT+'\;font-weight:'+sfWEIGHT+'\;" onclick="if(!cellCLICK){goToUrl(sI['+mid+']['+i+'][0],sI['+mid+']['+i+'][2])}">'+sI[mid][i][1]+'</span></div></div></td>';
 410          sn+='</tr>';
 411          }
 412      sn+='</table></div>';
 413  
 414      //set position

 415  
 416      sTop = parseInt(ncObj.style.top)+thisNavH[mid];
 417      if(vOFFSET<0) { sTop+=vOFFSET; } if(sP[mid][3]<0) { sTop+=sP[mid][3]; }
 418  
 419      if(shType=="string") { sTop-=(shSIZE*2); }
 420  
 421      stMargin=bSIZE;
 422      if(vOFFSET>0) { stMargin+=vOFFSET; }
 423      if(sP[mid][3]>0) { stMargin+=sP[mid][3]; }
 424  
 425      stMargin+=shSIZE;
 426  
 427      sLeft = parseInt(ncObj.style.left);
 428      if(shType=="string") { sLeft-=(shSIZE*2); }
 429  
 430  
 431      swPad=sbSIZE;shPad=0;
 432      if(shType=="string") {
 433          swPad=(2*shSIZE)+sbSIZE;
 434          shPad=(2*shSIZE);
 435          }
 436  
 437  
 438      slMargin = 0;
 439      srMargin = 0;
 440      if(sP[mid][1]=="left") {
 441          wAdj=false;
 442          if((parseInt(ncObj.style.top)+thisNavH[mid])>sTop&&(sLeft<(hOFFSET+sP[mid][4]+mI[mid][2]))) { wAdj=true; sLeft+=mI[mid][2]; }
 443          if(hOFFSET>0) { slMargin+=hOFFSET; }
 444          if(sP[mid][4]>0) { slMargin+=sP[mid][4]; }
 445          if(hOFFSET<0) { sLeft+=hOFFSET; }
 446          if(sP[mid][4]<0) { sLeft+=sP[mid][4]; }
 447          if(wAdj) {
 448              if(slMargin>mI[mid][2]) { slMargin-=mI[mid][2]; }
 449              else { sLeft-=(mI[mid][2]-slMargin); slMargin=0; }
 450              }
 451          }
 452      if(sP[mid][1]=="right") {
 453          mSize=0;
 454          if(hOFFSET>0) { srMargin+=hOFFSET; mSize+=srMargin; }
 455          if(sP[mid][4]>0) { srMargin+=sP[mid][4]; mSize+=srMargin; }
 456          if(hOFFSET<0) { sLeft-=hOFFSET; }
 457          if(sP[mid][4]<0) { sLeft-=sP[mid][4]; }
 458          sLeft-=(sP[mid][0]-mI[mid][2]+mSize);
 459          }
 460  
 461      slMargin+=shSIZE;
 462  
 463  
 464      //write submenu

 465      applyWidth='width:auto;min-width:'+(sP[mid][0]+slMargin)+'px\;white-space:nowrap\;';
 466      if(kde||saf){applyWidth='width:'+(sP[mid][0]+slMargin)+'px\;';}
 467      applyWidthII='width:auto;min-width:'+(sP[mid][0]+swPad-sbSIZE)+'px\;white-space:nowrap\;';
 468      if(kde||saf){applyWidthII='width:'+(sP[mid][0]+swPad-sbSIZE)+'px\;';}
 469      sNode.parentNode.innerHTML='<div onmouseover="showGrid()" id="submenu-'+mid+'" style="'+applyWidth+'visibility:hidden\;position:absolute\;left:'+sLeft+'px\;top:'+sTop+'px\;z-index:'+(zORDER+40)+'\;"><div id="subshadow-'+mid+'" style="'+shopac+'\;margin-top:'+stMargin+'px\;margin-left:'+slMargin+'px\;margin-right:'+srMargin+'px\;'+bks[6]+'z-index:'+(zORDER+41)+'\;'+applyWidthII+'height:1px\;">'+sn+'</div></div>';
 470  
 471      clearTimeout(cTimer);
 472      closeOkay=false;
 473      //position text layers

 474      for(i=0;i<sI[mid].length;i++){
 475          stObj=document.getElementById('subtext-'+mid+'-'+i);
 476          stt=((stObj.parentNode.offsetHeight/2)-(stObj.offsetHeight/2)+svtOFFSET)+"px";
 477          stObj.style.top = stt;
 478          if(sP[mid][2]=="left") { stObj.style.left = stINDENT+"px"; }
 479          if(sP[mid][2]=="right") { stObj.style.left = (0-stINDENT)+"px"; }
 480          }
 481  
 482      //size dropshadow

 483      shObj=document.getElementById('subshadow-'+mid);
 484      shObj.style.height=(document.getElementById('subtable-'+mid).offsetHeight+shPad)+"px";
 485  
 486      //submenu object

 487      snObj = document.getElementById('submenu-'+mid);
 488  
 489      //show submenu

 490      if(!remoteTRIGGERING) { snObj.style.visibility="visible"; }
 491  
 492      return snObj;
 493      }
 494  
 495  
 496  
 497  //clear submenu rollover

 498  function clearSubRollover(rmNum,rsNum) {
 499  
 500      if(!keepLIT) {
 501          ncObj.firstChild.firstChild.firstChild.firstChild.firstChild.style.color = aLINK;
 502          if(ui[2]) {
 503              if(ui[0]) { ncObj.style.backgroundImage = 'url('+bk[0].src+')'; }
 504              else { ncObj.style.backgroundImage = 'url('+bnk+')'; }
 505              }
 506          else {
 507              if(ui[0]) { ncObj.style.backgroundImage = 'url('+bk[0].src+')'; }
 508              else { ncObj.style.backgroundColor = bk[0]; }
 509              }
 510          }
 511  
 512      if(previousID[1]>-1) {
 513          pObj = document.getElementById('subcell-'+previousID[0]+'-'+previousID[1]);
 514          if(ui[5]) {
 515              if(ui[3]) { pObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 516              else { pObj.style.backgroundImage = 'url('+bnk+')'; }
 517              }
 518          else {
 519              if(ui[3]) { pObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 520              else { pObj.style.backgroundColor = bk[3]; }
 521              }
 522          pObj.firstChild.firstChild.style.color = saLINK;
 523          }
 524      }
 525  
 526  
 527  //submenu rollover

 528  function subRollover(rmNum,rsNum) {
 529  
 530      if(sI[rmNum][rsNum][4]){
 531          if(ui[5]) {
 532              scObj.style.backgroundImage = 'url('+bk[5].src+')';
 533              }
 534          else {
 535              scObj.style.backgroundImage = 'url('+bnk+')';
 536              scObj.style.backgroundColor = bk[5];
 537              }
 538          }
 539  
 540      scObj.firstChild.firstChild.style.color = saHOVER;
 541  
 542      if(altDISPLAY=="status") {
 543          writeStatus(sI[rmNum][rsNum][3]);
 544          }
 545      else {
 546          tInfo=sI[rmNum][rsNum][0];
 547          if(tInfo=="#") { tInfo = ""; }
 548          writeStatus(tInfo);
 549          }
 550  
 551      }
 552  
 553  
 554  
 555  //submenu cell events

 556  var cn,ctObj;
 557  function subCell(mNum,sNum) {
 558  
 559      clearTimeout(cTimer);
 560      closeOkay=false;
 561  
 562      clearSubRollover();
 563  
 564      currentID = [mNum,sNum,-1];
 565      previousID = currentID;
 566      focusID=currentID;
 567      scObj = document.getElementById('subcell-'+mNum+'-'+sNum);
 568  
 569      subRollover(mNum,sNum);
 570  
 571      openChildMenu(mNum,sNum);
 572  
 573      showGrid();
 574      }
 575  
 576  
 577  //minimum sub cell events

 578  function partialSubCell(mNum,sNum) {
 579  
 580      clearSubRollover();
 581      subRollover(mNum,sNum);
 582  
 583      if(cI[mNum][sNum].length>0) {
 584          if(previousID[2]>-1) { clearCell(document.getElementById("childcell-"+mNum+"-"+sNum+"-"+previousID[2])); }
 585          }
 586  
 587  
 588      }
 589  
 590  
 591  
 592  
 593  //open childmenu

 594  var ctt;
 595  var evcy,evoh,evst,mctPos;
 596  function openChildMenu(mid,cid) {
 597  
 598      clearChildMenus();
 599  
 600      if(cI[mid][cid].length<=0) { return false; }
 601  
 602      //create node

 603      cNode = document.createElement("div");
 604      document.getElementById("canch").appendChild(cNode);
 605  
 606      cn = '';
 607      applyWidth='width:auto;min-width:'+cP[mid][cid][0]+'px\;white-space:nowrap;';
 608      if(kde||saf||(op7&&shType=="string")){applyWidth='width:'+cP[mid][cid][0]+'px\;';}
 609      cn+='<div id="childtable-'+mid+'-'+cid+'" style="'+applyWidth+'-moz-opacity:1\;position:relative\;left:'+shy+'px\;top:'+shy+'px\;'+bks[4]+'"><table cellpadding=0 cellspacing='+sbSIZE+' border=0>';
 610      chAry[mid] = new Array;
 611      for(i=0;i<cI[mid][cid].length;i++){
 612          cn+='<tr>';
 613          clcu = '';
 614          if(cellCLICK&&cI[mid][cid][i][0]!=""&&cI[mid][cid][i][0]!="#"&&cI[mid][cid][i][0]!="~") { clcu = ' cursor:'+aCURSOR+'\;'; }
 615          cllu=' cursor:default\;';
 616          if(cI[mid][cid][i][0]!=""&&cI[mid][cid][i][0]!="#"&&cI[mid][cid][i][0]!="~") { cllu = ' cursor:'+aCURSOR+'\;'; }
 617  
 618          // find wrapping links routine by brendan armstrong

 619          chAry[mid][i]=subNavH;
 620          var thisT=cI[mid][cid][i][1];
 621          var splitT=thisT.split('<br>');
 622          var Trows=splitT.length;
 623          if (Trows>1) { chAry[mid][i]=(subNavH*Trows)-(svPADDING*(Trows-1)); }
 624  
 625          titleText=""; if(altDISPLAY=="title") { titleText = cI[mid][cid][i][3]; }
 626          textScale='width:auto;min-width:'+(cP[mid][cid][0]-(sbSIZE*2))+'px\;height:auto;min-';
 627          if(!allowForSCALING||kde||saf||op7){ textScale='width:'+(cP[mid][cid][0]-(sbSIZE*2))+'px\;'; }
 628          cn+='<td style="'+clcu+'" align='+cP[mid][cid][2]+'><div title="'+titleText+'" class=SUBmTD onfocus="childCell('+mid+','+cid+','+i+')" onblur="clearCell(this)" onmouseover="childCell('+mid+','+cid+','+i+')" onclick="if(cellCLICK){goToUrl(cI['+mid+']['+cid+']['+i+'][0],cI['+mid+']['+cid+']['+i+'][2])}" id="childcell-'+mid+'-'+cid+'-'+i+'" style="'+bks[3]+''+textScale+'height:'+chAry[mid][i]+'px\;white-space:nowrap;"><div onmouseout="event.cancelBubble=true" id="childtext-'+mid+'-'+cid+'-'+i+'" style="'+cllu+'position:relative"><span style="color:'+saLINK+'\;font:'+sfSIZE+' '+sfFONT+'\;font-weight:'+sfWEIGHT+'\;" onclick="if(!cellCLICK){goToUrl(cI['+mid+']['+cid+']['+i+'][0],cI['+mid+']['+cid+']['+i+'][2])}">'+cI[mid][cid][i][1]+'</span></div></div></td>';
 629          cn+='</tr>';
 630          }
 631      cn+='</table></div>';
 632  
 633      //set position

 634      cLeft = sLeft+slMargin-shSIZE;
 635  
 636      clMargin = 0;
 637      crMargin = 0;
 638      if(cP[mid][cid][1]=="left") {
 639          if(chhOFFSET>0) { clMargin+=chhOFFSET; }
 640          if(cP[mid][cid][4]>0) { clMargin+=cP[mid][cid][4]; }
 641          if(chhOFFSET<0) { cLeft+=chhOFFSET; }
 642          if(cP[mid][cid][4]<0) { cLeft+=cP[mid][cid][4]; }
 643          cLeft+=sP[mid][0];
 644          }
 645      if(cP[mid][cid][1]=="right") {
 646          mSize=0;
 647          if(chhOFFSET>0) { crMargin+=chhOFFSET; mSize+=crMargin; }
 648          if(cP[mid][cid][4]>0) { crMargin+=cP[mid][cid][4]; mSize+=crMargin; }
 649          if(chhOFFSET<0) { cLeft-=chhOFFSET; }
 650          if(cP[mid][cid][4]<0) { cLeft-=cP[mid][cid][4]; }
 651          cLeft-=cP[mid][cid][0]+mSize;
 652          }
 653  
 654      clMargin+=shSIZE;
 655  
 656      cTop = sTop+stMargin-shSIZE;
 657  
 658      for(i=0;i<cid;i++){
 659          cTop+=shAry[i]+sbSIZE;
 660          }
 661      if(chvOFFSET<0) { cTop+=chvOFFSET; } if(cP[mid][cid][3]<0) { cTop+=cP[mid][cid][3]; }
 662  
 663      ctMargin=sbSIZE;
 664      if(chvOFFSET>0) { ctMargin+=chvOFFSET; }
 665      if(cP[mid][cid][3]>0) { ctMargin+=cP[mid][cid][3]; }
 666  
 667      ctMargin+=shSIZE;
 668  
 669      //write submenu

 670      applyWidth='width:auto;min-width:'+(cP[mid][cid][0]+clMargin)+'px\;white-space:nowrap;';
 671      if(kde||saf){applyWidth='width:'+(cP[mid][cid][0]+clMargin)+'px\;';}
 672      applyWidthII='width:auto;min-width:'+(cP[mid][cid][0]+swPad-sbSIZE)+'px\;white-space:nowrap;';
 673      if(kde||saf){applyWidthII='width:'+(cP[mid][cid][0]+swPad-sbSIZE)+'px\;';}
 674      cNode.parentNode.innerHTML='<div onmouseover="showGrid()" id="childmenu-'+mid+'-'+cid+'" style="visibility:hidden\;position:absolute\;left:'+cLeft+'px\;top:'+cTop+'px\;z-index:'+(zORDER+60)+'\;"><div id="childshadow-'+mid+'-'+cid+'" style="'+shopac+'\;margin-top:'+ctMargin+'px\;margin-left:'+clMargin+'px\;margin-right:'+crMargin+'px\;'+bks[6]+'z-index:'+(zORDER+61)+'\;'+applyWidthII+'height:1px\;">'+cn+'</div></div>';
 675  
 676      //position text layers

 677      for(i=0;i<cI[mid][cid].length;i++){
 678          ctObj=document.getElementById('childtext-'+mid+'-'+cid+'-'+i);
 679          ctt=((ctObj.parentNode.offsetHeight/2)-(ctObj.offsetHeight/2)+svtOFFSET)+"px";
 680           ctObj.style.top = ctt;
 681          if(cP[mid][cid][2]=="left") { ctObj.style.left = stINDENT+"px"; }
 682          if(cP[mid][cid][2]=="right") { ctObj.style.left = (0-stINDENT)+"px"; }
 683          }
 684  
 685      //size dropshadow

 686      cshObj=document.getElementById('childshadow-'+mid+'-'+cid);
 687      cshObj.style.height=(document.getElementById('childtable-'+mid+'-'+cid).offsetHeight+shPad)+"px";
 688  
 689      //childmenu object

 690      cnObj = document.getElementById('childmenu-'+mid+'-'+cid);
 691  
 692      //move if remotely triggered and overhanging bottom

 693      if(remoteTRIGGERING) {
 694          evcy=parseInt(cnObj.style.top);
 695          evoh=cnObj.offsetHeight;
 696          evst=window.pageYOffset;
 697          if((evcy+evoh)>bHeight) { 
 698              mctPos=evcy-((evcy+evoh)-bHeight); 
 699              cnObj.style.top=(mctPos+evst)+"px";
 700              }
 701          }
 702      
 703      //show childmenu

 704      cnObj.style.visibility="visible";
 705  
 706      return cnObj;
 707      }
 708  
 709  
 710  //clear cell function for sub and child menus

 711  function clearCell(ccObj) {
 712      if(ui[5]) {
 713          if(ui[3]) { ccObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 714          else { ccObj.style.backgroundImage = 'url('+bnk+')'; }
 715          }
 716      else {
 717          if(ui[3]) { ccObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 718          else { ccObj.style.backgroundColor = bk[3]; }
 719          }
 720      ccObj.firstChild.firstChild.style.color = saLINK;
 721      }
 722  
 723  
 724  //childmenu cell events

 725  function childCell(mNum,sNum,cNum) {
 726  
 727      clearTimeout(cTimer);
 728      closeOkay=false;
 729  
 730      if(!keepSubLIT) {
 731          scObj.firstChild.firstChild.style.color = saLINK;
 732          if(ui[5]) {
 733              if(ui[3]) { scObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 734              else { scObj.style.backgroundImage = 'url('+bnk+')'; }
 735              }
 736          else {
 737              if(ui[3]) { scObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 738              else { scObj.style.backgroundColor = bk[3]; }
 739              }
 740          }
 741  
 742      if(previousID[2]>-1) {
 743          pObj = document.getElementById('childcell-'+previousID[0]+'-'+previousID[1]+'-'+previousID[2]);
 744          if(ui[5]) {
 745              if(ui[3]) { pObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 746              else { pObj.style.backgroundImage = 'url('+bnk+')'; }
 747              }
 748          else {
 749              if(ui[3]) { pObj.style.backgroundImage = 'url('+bk[3].src+')'; }
 750              else { pObj.style.backgroundColor = bk[3]; }
 751              }
 752          pObj.firstChild.firstChild.style.color = saLINK;
 753          }
 754      currentID = [mNum,sNum,cNum];
 755      previousID = currentID;
 756      focusID=currentID;
 757  
 758      ccObj = document.getElementById('childcell-'+mNum+'-'+sNum+'-'+cNum);
 759  
 760      if(cI[mNum][sNum][cNum][4]){
 761          if(ui[5]) {
 762              ccObj.style.backgroundImage = 'url('+bk[5].src+')';
 763              }
 764          else {
 765              ccObj.style.backgroundImage = 'url('+bnk+')';
 766              ccObj.style.backgroundColor = bk[5];
 767              }
 768          }
 769  
 770      ccObj.firstChild.firstChild.style.color = saHOVER;
 771  
 772      if(altDISPLAY=="status") {
 773          writeStatus(cI[mNum][sNum][cNum][3]);
 774          }
 775      else {
 776          tInfo=cI[mNum][sNum][cNum][0];
 777          if(tInfo=="#") { tInfo = ""; }
 778          writeStatus(tInfo);
 779          }
 780  
 781      showGrid();
 782      }
 783  
 784  
 785  
 786  var mn='';
 787  mn+='<div id="master" style="position:absolute\;left:0px\;top:0px\;">';
 788  
 789  // event handling grid

 790  var gopac="";
 791  if(redGRID) { gopac="background-color:red"; }
 792  
 793  var grw = bWidth;
 794  if(gridWIDTH>0) { grw = gridWIDTH; }
 795  var grh = bHeight;
 796  if(gridHEIGHT>0) { grh = gridHEIGHT; }
 797  
 798  mn+='<div id="udm-grid" onmouseover="gridClearMenus()" style="'+gopac+'\;cursor:default\;visibility:hidden\;position:absolute\;top:0px\;left:0px\;z-index:'+(zORDER+10)+'\;width:'+grw+'px\;height:'+grh+'px\;">&nbsp;</div>';
 799  
 800  
 801  //menu  nodes

 802  mn+='<div id="manch" style="position:absolute\;top:0px\;left:0px\;z-index:'+(zORDER+40)+'\;"></div>';
 803  mn+='<div id="canch" style="position:absolute\;top:0px\;left:0px\;z-index:'+(zORDER+60)+'\;"></div>';
 804  
 805  
 806  // main navbar

 807  var mbc = bks[1];
 808  var mcbc = bks[0];
 809  var clcu,cllu,mtObj,mcLeft,strCol;
 810  var ofh='overflow:hidden';
 811  if(kde){ofh='';}
 812  
 813  var mnDisplay='';
 814  if(remoteTRIGGERING) { mnDisplay='display:none'; }
 815  
 816  if(menuALIGN!="free") {
 817  
 818      //undernav if !free alignment

 819      strCol=bks[0];
 820      if(showBORDERS) { strCol=bks[1]; }
 821      if(stretchMENU||showBORDERS) {
 822          mn+='<div id="underb" style="'+mnDisplay+'\;cursor:default\;'+strCol+'visibility:visible\;position:absolute\;z-index:'+(zORDER+1)+'\;left:0px\;top:'+absTOP+'px\;width:'+bWidth+'px\;height:'+(navH+(2*bSIZE))+'px\;">';
 823          if(stretchMENU&&showBORDERS) { mn+='<div style="margin:'+bSIZE+'px\;width:'+(bWidth-(2*bSIZE))+'px\;height:'+navH+'px\;'+bks[0]+'cursor:default">&nbsp;</div>'; }
 824          mn+='</div>';
 825          }
 826  
 827      mn+='<div id="udm-navbar" style="'+mnDisplay+'\;'+bks[1]+'position:absolute\;z-index:'+(zORDER+2)+'\;left:'+absLEFT+'px\;top:'+absTOP+'\;width:'+navSpace+'px\;height:'+(navH+(2*bSIZE))+'px\;" class=mTD></div>';
 828      mcLeft=absLEFT+bSIZE;
 829  
 830      //navbar if !free alignment

 831      for(i=0;i<mI.length;i++){
 832          clcu = '';
 833          if(cellCLICK&&mI[i][0]!=""&&mI[i][0]!="#"&&mI[i][0]!="~") { clcu = ' cursor:'+aCURSOR+'\;'; }
 834          cllu=' cursor:default\;';
 835          if(mI[i][0]!=""&&mI[i][0]!="#"&&mI[i][0]!="~") { cllu = ' cursor:'+aCURSOR+'\;'; }
 836          titleText=""; if(altDISPLAY=="title") { titleText = mI[i][5]; }
 837          mn+='<div title="'+titleText+'" onfocus="mainCell('+i+')" onmouseover="temSNode=document.getElementById(\'submenu-'+i+'\')\;if(!temSNode){mainCell('+i+')}else{partialMainCell('+i+')}" onmouseout="if(event.clientX<5||event.clientY<5){gridClearMenus()}" onclick="goToUrl(mI['+i+'][0],mI['+i+'][4],['+i+'])" id="maincell-'+i+'" style="'+mnDisplay+'\;z-index:'+(zORDER+3)+'\;visibility:hidden\;position:absolute\;top:'+(absTOP+bSIZE)+'px\;left:'+mcLeft+'px\;'+clcu+mcbc+'width:'+mI[i][2]+'px\;height:'+thisNavH[i]+'px\;'+ofh+'"><table cellpadding=0 cellspacing=0 border=0 style="width:'+mI[i][2]+'px\;height:'+thisNavH[i]+'px\;" onmouseout="event.cancelBubble=true"><tr><td class=mTD align='+mI[i][3]+'><span onclick="if(!cellCLICK){goToUrl(mI['+i+'][0],mI['+i+'][4])}" id="maintext-'+i+'" style="'+cllu+'position:relative;left:0px;top:0px">'+mI[i][1]+'</span></td></tr></table></div>';
 838          mcLeft+=bSIZE+mI[i][2];
 839          }
 840  
 841      }
 842  
 843  if(menuALIGN=="free") {
 844  
 845      //navbar if free alignment

 846      for(i=0;i<mI.length;i++){
 847          clcu = '';
 848          if(cellCLICK&&mI[i][0]!=""&&mI[i][0]!="#"&&mI[i][0]!="~") { clcu = ' cursor:'+aCURSOR+'\;'; }
 849          cllu=' cursor:default\;';
 850          if(mI[i][0]!=""&&mI[i][0]!="#"&&mI[i][0]!="~") { cllu = ' cursor:'+aCURSOR+'\;'; }
 851          mn+='<div style="'+bks[1]+'z-index:'+(zORDER+2)+'\;position:absolute\;left:'+(absLEFT+mI[i][7])+'px\;top:'+(absTOP+mI[i][6])+'px\;width:'+(mI[i][2]+(2*bSIZE))+'px\;height:'+(thisNavH[i]+(2*bSIZE))+'px\;"></div>';
 852          titleText=""; if(altDISPLAY=="title") { titleText = mI[i][5]; }
 853          mn+='<div title="'+titleText+'" onfocus="mainCell('+i+')" onmouseover="temSNode=document.getElementById(\'submenu-'+i+'\')\;if(!temSNode){mainCell('+i+')}else{partialMainCell('+i+')}" onmouseout="if(event.clientX<5||event.clientY<5){gridClearMenus()}" onclick="if(cellCLICK){goToUrl(mI['+i+'][0],mI['+i+'][4])}" id="maincell-'+i+'" style="'+mnDisplay+'\;z-index:'+(zORDER+3)+'\;position:absolute\;left:'+(absLEFT+mI[i][7]+bSIZE)+'px\;top:'+(absTOP+mI[i][6]+bSIZE)+'px\;visibility:hidden\;'+clcu+mcbc+'width:'+mI[i][2]+'px\;height:'+thisNavH[i]+'px\;'+ofh+'"><table cellpadding=0 cellspacing=0 border=0 style="width:'+mI[i][2]+'px\;height:'+thisNavH[i]+'px\;" onmouseout="event.cancelBubble=true"><tr><td class=mTD align='+mI[i][3]+'><span onclick="if(!cellCLICK){goToUrl(mI['+i+'][0],mI['+i+'][4])}" id="maintext-'+i+'" style="'+cllu+'position:relative;left:0px;top:0px">'+mI[i][1]+'</span></td></tr></table></div>';
 854          mcLeft+=bSIZE+mI[i][2];
 855          }
 856  
 857      }
 858  
 859  
 860  
 861  //write navbar

 862  mn+='</div>';
 863  document.write(mn);
 864  
 865  
 866  
 867  //click to close

 868  function clickToClose() {
 869      clearSubMenus();
 870      }
 871  document.onclick = clickToClose;
 872  
 873  
 874  //load function

 875  var mtt;
 876  function loadFunction() {
 877  
 878      //add event listener for remote triggering

 879      if(remoteTRIGGERING) { document.addEventListener("mousemove", menuListen, false); }
 880      
 881      //position text layers

 882      for(i=0;i<mI.length;i++){
 883          mtObj=document.getElementById("maintext-"+i);
 884          if(typeof mtObj!="undefined"){
 885              mtt=((thisNavH[i]/2)-(mtObj.offsetHeight/2)+vtOFFSET-(vPADDING/2)-1)+"px";
 886              if(kde){mtt=vtOFFSET+"px";}
 887              mtObj.style.top = mtt;
 888              if(mI[i][3]=="left") { mtObj.style.left = tINDENT+"px"; }
 889              if(mI[i][3]=="right") { mtObj.style.left = (0-tINDENT)+"px"; }
 890              document.getElementById("maincell-"+i).style.visibility="visible";
 891              }
 892          }
 893  
 894      //store some objects

 895      nav = document.getElementById("udm-navbar");
 896      if(menuALIGN!="free"){nav.style.top=absTOP+"px";}
 897      grid = document.getElementById("udm-grid");
 898      sObj = document.getElementById("manch");
 899      cObj = document.getElementById("canch");
 900  
 901      genericOnloadFunction();

 902      if(mz7||kde){nsinit();}
 903      }
 904  
 905  window.onload=loadFunction;
 906  
 907  
 908  
 909  
 910  
 911  // resize / reload trap

 912  function nsinit(){if(allowRESIZE==true){setTimeout("window.onresize=redo", 1000);}}
 913  function redo(){window.location.reload();}
 914  if(!mz7&&!kde) {if(allowRESIZE==true){window.onresize=new Function("window.location.reload()");}}
 915  
 916  
 917  
 918  
 919  //listen for mouse events

 920  var doListen=true;
 921  var mtPos,mtProps,scaroTop,ecX,ecY;
 922  function menuListen(e) {
 923  
 924      if(doListen) { mtPos=[e.clientX+32,e.clientY]; }
 925      //window.status=mtPos;

 926  
 927      }
 928  
 929  
 930  
 931  //move menu

 932  function activateMenu(mmNum) {
 933      if(typeof sP[mmNum]=="undefined"||!remoteTRIGGERING) { return false; }
 934      
 935      //stop listening

 936      doListen=false;
 937      
 938      //store mouse co-ords

 939      ecX=mtPos[0];
 940      ecY=mtPos[1]
 941      
 942      //reset offsets

 943      vOFFSET=0;
 944      hOFFSET=0;
 945      sP[mmNum][3]=0;
 946      sP[mmNum][4]=0;
 947      
 948      //remotely create menu

 949      mainCell(mmNum,false);
 950      
 951      //find scroll position

 952      scaroTop=window.pageYOffset;
 953  
 954      //set child menus alignment

 955      for(i=0;i<sI[mmNum].length;i++){
 956          cP[mmNum][i][1]="left";
 957          }
 958      
 959      //convert to useful position

 960      mtProps=[snObj.offsetWidth,snObj.offsetHeight];
 961      if(mtPos[0]>(bWidth/2)) { 
 962          mtPos[0]=ecX-64-mtProps[0]; 
 963          //set child menus alignment

 964          for(i=0;i<sI[mmNum].length;i++){
 965              cP[mmNum][i][1]="right";
 966              }
 967          
 968          }
 969      if((mtPos[1]+mtProps[1])>bHeight) { 
 970          mtPos[1]=(ecY)-((mtPos[1]+mtProps[1])-bHeight); 
 971          }
 972      hOFFSET=mtPos[0];
 973      vOFFSET=mtPos[1];
 974      
 975      //move menu

 976      snObj.style.left=hOFFSET+"px";
 977      snObj.style.top=(vOFFSET+scaroTop)+"px";
 978      ncObj.style.left=(hOFFSET)+"px";
 979      ncObj.style.top=((vOFFSET+scaroTop)-thisNavH[mmNum]-bSIZE)+"px";
 980      sLeft = parseInt(ncObj.style.left);
 981      if(shType=="string") { sLeft-=(shSIZE*2); }
 982      sTop = parseInt(ncObj.style.top)+thisNavH[mmNum];
 983      
 984      //show menu

 985      remoteShow(snObj);
 986      
 987      //start listening

 988      doListen=true;
 989      
 990      return true;
 991      }
 992  
 993  
 994  //show menu

 995  var showTimer;
 996  var showCount=0;
 997  var showPassObj;
 998  function remoteShow(showObj) {
 999      
1000      showPassObj=showObj;
1001  
1002      if(showCount==1) {
1003          clearTimeout(showTimer);
1004          showCount=0;
1005          showObj.style.visibility="visible"; 
1006          }
1007      else {
1008          showCount=1;
1009          showTimer=setTimeout("remoteShow(showPassObj)",40);
1010          }
1011  
1012      }


[ Powered by PHPXref - Served by Debian GNU/Linux ]