   // Records the position of the top edge of a drop-down menu. The variable
   // will be reassigned later.
   var menuTop = 45;
   // Records the position of the left edge of a drop-down menu. The variabe
   // will be reassigne later.
   var menuLeft = 400;
   // Records the DOM for the menu.
   var domSMenu = null;
   // Records the DOM for the last menu opened.
   var oldDomSMenu = null;
   // Records whether the menu is waiting to close(1) or not(2).
   var t = 0;
   // Records how long a menu should wait before closing.
   var lDelay = 3;
   // Records how long the menu has waited before closing. The logic used
   // is when lCount = lDelay, the menu closes.
   var lCount = 0;
   // Pause value for setting browser timeout.
   var pause = 100;

   // This function first closes any other menus that are open and then
   // calculates the left edge and bottom edge of the menu header, placing
   // the appropriate drop-down menu in that position and then making it
   // visible.
   function popMenu(menuNum){
     if (isDHTML) {
      // Sets the previous menu's visibility to hidden
      		t = 2;
      		if (oldDomSMenu) {
      			oldDomSMenu.visibility = 'hidden';
      			oldDomSMenu.zIndex = '0';
      			t = 2;
      			lCount = 0;
      		}

      // Defines the DOMs	of the menu objects
      		var idMenu = 'menuHead';
      		var domMenu = findDOM(idMenu,0);

      		var idMenuOpt = 'menuHead' + menuNum;
      		var domMenuOpt = findDOM(idMenuOpt,0);

      		var idSMenu = 'menu' + menuNum;
      		var domSMenu = findDOM(idSMenu,1);

      // Defines the positions of the sub-menus
      	if (isID || isAll) {
      				var menuLeft = (domMenu.offsetLeft) + (domMenuOpt.offsetLeft) - 2;
      				var menuTop = (domMenu.offsetTop) + (domMenu.offsetHeight) - 1;
      			}
      		if (isLayers) {
      				var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX - 2;
      				var menuTop = domMenu.pageY + domMenu.clip.height - 1;
      		}

      // Positions and shows the menu
      		if (oldDomSMenu != domSMenu) {
      			domSMenu.left = menuLeft;
      			domSMenu.top = menuTop;
      			domSMenu.visibility = 'visible';
      			domSMenu.zIndex = '100';
      			oldDomSMenu = domSMenu;
      		}

      // Resets oldDom if it is the same as the current DOM
      		else { oldDomSMenu = null; }
      	}

      // Returns a 'null' value for non-DHTML Browsers
      	else { return null; }
   }

   // This function hides the visible menu after a slight delay, based on
   // the size of iDelay.
   function delayHide() {
   // Checks to see if there is a menu showing and whether
   // the global variable 't' has been set to 0
       if ((oldDomSMenu) && (t == 0)) {

   // Hides the old menu, resets menu conditions,
   // and stops the function running
           oldDomSMenu.visibility = 'hidden';
           oldDomSMenu.zIndex = '0';
           oldDomSMenu = null;
           lCount = 0;
           return false;
       }

   // Interupts the function if another menu is opened
       if (t == 2) { lCount = 0; return false; }

   // Repeats the function adding 1 to lCount each time until
   // lCount is equal to lDelay and then sets 't' to 0 so that
   // the menu will hide when it runs again
       if (t == 1) {
           lCount = lCount + 1;
           if (lDelay <= lCount) { t = 0; }
           if (lDelay >= lCount) { setTimeout('delayHide(' + t + ')',pause); }
       }
   }

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}