//
// support code for HST site
//

// Dreamweaver functions
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_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_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.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];}
}
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}



//// code to open/close menus

// how it works:
//  When the mouse passes over one of the nav links, it calls
//   startmenu() to open the corresponding menu and close any others
//   that might be open. It also swaps the nav image.
//  When the mouse leaves the box, it calls endmenu() to start a delayed
//   close of the menu. The closing is delayed because the mouse might be
//   entering the menu. If not, then the menu will either be closed by the
//   delayed call to do_delayed_hide_menu(), or by entering a different
//   nav link that triggers a new menu.
//  When the mouse enters a menu, it cancels the delayed close of that
//   menu by again calling startmenu().
//  When the mouse leaves a menu, it starts the delayed close by calling endmenu().
//
//

//// globals

// variable records which menu is currently open
var open_menu = "";    // name of open menu (the layer id is derived from this)
// menus enabled flag
var menus_enabled = true;

// timer for delayed hide
var timerid = null;

//// functions

// show menu, hiding any previously open
//
function startmenu(menuname) {

  if (timerid != null) {        // cancel any delayed hides
    clearTimeout (timerid);
    timerid = null;
  }

  if (open_menu == menuname)  // return if this menu already open
    return;

  // close old menu
  if (open_menu != "") {
    // swap back original nav image
    var oldimgid = "n1"+open_menu;         // get image id
    var oldimgobj = MM_findObj(oldimgid);  // find object
    if (oldimgobj) {
      oldimgobj.src = oldimgobj.oSrc;      // restore src from saved location
    }
    if (menus_enabled) {
      // hide the old menu
      var oldmenuid = "menu"+open_menu;        // get menu id
      MM_showHideLayers(oldmenuid,'','hide');  // hide menu
    }
  }

  // open new menu
  if (menuname != "") {
    // swap in new nav image
    var newimgid = "n1"+menuname;         // get image id
    var newimgobj = MM_findObj(newimgid);  // find object
    if (newimgobj) {
      newimgobj.oSrc = newimgobj.src;      // stash original src
      newimgobj.src = newimgobj.src.replace(/_off/,"_on");
    }
    if (menus_enabled) {
      // show the new menu
      var newmenuid = "menu"+menuname;         // get menu id
      MM_showHideLayers(newmenuid,'','show');  // show menu
    }
  }

  // record the open menu
  open_menu = menuname;
}

// start delayed main nav image restoration and pop-up menu hiding
//
function endmenu() {
  timerid = setTimeout("do_delayed_hide_menu()", 250); // last arg is delay in milliseconds
}

// perform delayed menu hiding
//
function do_delayed_hide_menu() {
  startmenu("");
}

