//
// support code for Forsyth 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; }
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// function checks if PNGs need to be fixed, and if so,
// calls correctPNG()
// (see pngfix.js)
//
function fixpng() {
  if (typeof needtofixpng != 'undefined' && needtofixpng)
    correctPNG();
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// functions to swap and restore Go button
// replace ".gif" with "_hi.gif" and vice versa
// HTML: <input type="image" ... onmouseover="swapGo(this)" onmouseout="swapGoRestore(this)" />
//
function swapGo(buttonobj) {
  var i = buttonobj.src.lastIndexOf("_hi.gif");
  if (i < 0) {
    i = buttonobj.src.lastIndexOf(".gif");
    if (i >= 0) {
      buttonobj.src = buttonobj.src.substring(0,i)+"_hi.gif";
    }
  }
}
function swapGoRestore(buttonobj) {
  var i = buttonobj.src.lastIndexOf("_hi.gif");
  if (i >= 0) {
    buttonobj.src = buttonobj.src.substring(0,i)+".gif";
  }
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// random photo sidebar for level 2/3 pages
//

function randomphotosidebar() {
  sidebars = new Array();
  sidebars[sidebars.length] = { img: "/img/sidebar/1.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/2.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/3.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/4.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/5.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/6.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/7.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/8.jpg", txt: "" };
  sidebars[sidebars.length] = { img: "/img/sidebar/9.jpg", txt: "" };

  var i = Math.floor(Math.random()*sidebars.length);
  if (sidebars[i].txt == '') {
    document.writeln("<div id='divphotosidebar'><div><img src='"+sidebars[i].img+"' width='137' height='183' alt='' /></div></div>");
  }
  else {
    document.writeln("<div id='divphotosidebar'><div><img src='"+sidebars[i].img+"' width='137' height='183' alt='' /></div><p>"+sidebars[i].txt+"</p></div>");
  }
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// open map window from directions page
//
function open_map(url) {
  width = 500;
  height = 488;
  var newwindow = window.open(url, 'map', 'width='+width+',height='+height+',resizable=yes,scrollbars=no,toolbar=no,menubar=no,location=no,status=no');
  if (newwindow) {
    if (window.focus)
      newwindow.focus();
    return false;
  }
  return true; // unsuccessful
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// 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 = "imgnav"+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 = "imgnav"+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("");
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
// miscellaneous
//
//
// trim whitespace from string
//
function trim(str) {
  str = str.replace(/\s*$/, '');
  return str.replace(/^\s*/, '');
}

