var mCount = 1;           // number of menu groups
var mTix   = "";          // main group link tabindex value (numeric, blank=none)
var sTix   = "";          // sub-menu link item tabindex value (numeric, blank=none)
var lSep   = " &#8226; "  // link separator (space-bullet-space) for legacy browsers
var sInd   = "&nbsp;<span><img src=\"darrow.gif\" height=\"9\" width=\"9\" alt=\"\"><\/span>"
                           // sub-menu indicator (small down arrow image)
                           // might also try &#9660; or &#8595; instead of img
var dbug = true;         // set to true to dump the generated code

//  variables below do not need customizing
var mOpen = null;         // currently open menu
var mClose = null;        // menu to close
var stdDOM = document.getElementById;
var dom = "";
var mStr = "";
var menu = new makeArray(mCount);

function makeArray(n) {
  this.size = n;
  for(i=1; i<=n; i++){
    this[i] = 0;
  }
  return(this);
}

// *************** Functions called by mouseover/mouseout start here
// Mouseover a menu
function menuOver(m){
  if (!stdDOM) {return;}
  dom = document.getElementById(m);
  if (dom != null) {
    if (mOpen == dom) {       // already open
      clearTimeout(mClose);   // don't close
    } else {
      if (mOpen != null) {    // another is open
        clearTimeout(mClose);
        hideNow();            // close it now
      }
    }
  mOpen = dom;                // set new open menu
  mOpen.style.visibility = "visible";    // show it
}
}
// Keep menu open
function stayOpen(m){
  // If menuOver has not been called or the menu is hidden, do nothing
  if ((mOpen == null) || ((mOpen.style) && (mOpen.style.visibility) && (mOpen.style.visibility == "hidden"))) return;
  else menuOver(m);
}
// Close menu after timeout
function menuOut(m){
  dom = document.getElementById(m);
  if ((stdDOM) && (dom != null)) {
    mOpen = dom;	// get current open menu
    mClose = window.setTimeout("hideNow();",50);  // auto-close after 400ms
  }
}
// Close previous menu now
function hideNow(){
  if ((mOpen.style) && (mOpen.style.visibility)) {
    mOpen.style.visibility = "hidden";
  }
}