/////////////////////////////////////////////////////////
//
// Menu Image Rollover
//
// pre-cache link and rollover images...
var imgsNorm = new Object();    // resting buttons
var imgsHi = new Object();      // mouse over button

if (document.images)
  {
  imgsNorm["mnuHome"] = new Image(22, 25);   // menu images - normal
  imgsNorm["mnuHome"].src = "imgs/mnu_home_0.gif";
  imgsNorm["mnuProducts"] = new Image(18, 25);
  imgsNorm["mnuProducts"].src = "imgs/mnu_products_0.gif";
  imgsNorm["mnuServices"] = new Image(28, 25);
  imgsNorm["mnuServices"].src = "imgs/mnu_services_0.gif";
  imgsNorm["mnuPrices"] = new Image(17, 25);
  imgsNorm["mnuPrices"].src = "imgs/mnu_prices_0.gif";
  imgsNorm["mnuContact"] = new Image(20, 25);
  imgsNorm["mnuContact"].src = "imgs/mnu_contact_0.gif";
  imgsNorm["imgStart"] = new Image(75, 25);
  imgsNorm["imgStart"].src = "imgs/mnu_start_0.gif";

  imgsHi["mnuHome"] = new Image(22, 25);    // menu images - highlight
  imgsHi["mnuHome"].src = "imgs/mnu_home_1.gif";
  imgsHi["mnuProducts"] = new Image(18, 25);
  imgsHi["mnuProducts"].src = "imgs/mnu_products_1.gif";
  imgsHi["mnuServices"] = new Image(28, 25);
  imgsHi["mnuServices"].src = "imgs/mnu_services_1.gif";
  imgsHi["mnuPrices"] = new Image(17, 25);
  imgsHi["mnuPrices"].src = "imgs/mnu_prices_1.gif";
  imgsHi["mnuContact"] = new Image(20, 25);
  imgsHi["mnuContact"].src = "imgs/mnu_contact_1.gif";
  imgsHi["imgStart"] = new Image(75, 25);
  imgsHi["imgStart"].src = "imgs/mnu_start_1.gif";
  }

// change rollover state of menu images...
function setImage(name, state)
  {
  if (document.images)
    {
    if (state == 'hi')
      {
      document.images[name].src = imgsHi[name].src;
      return true;
      }
    else if (state == 'norm')
      {
      document.images[name].src = imgsNorm[name].src;
      return true;
      }
    }
  return false;
  }

///////////////////////////////////////////////////////////
//
// Drop down menu stuff...
//
// The menu that drops down has an id of mnuXXX while the
// navigation element that is clicked to drop the menu has
// an id like navXXX...
//
// menu configuration and working vars...
var menuOffsetX = 0;
var menuOffsetY = 3;
prfxNav = "nav";
prfxMenu = "mnu";
var navTimer;         // timer for menu hiding
var navDelay = 350;   // milliseconds before drop menu closes

///////////////////////////////////////////////////////////
//
// openMenu()     open drop down menu...
//
// sID: base menu name (w/o nav or mnu prefix)
//
function openMenu(sID)
  {
  // find navigation and menu elements...
  //DBG alert("openMenu(" + sID + ")");
  var elemNav = document.getElementById(prfxNav + sID);
  var elemMenu = document.getElementById(prfxMenu + sID);
  if (!elemNav || !elemMenu)
    return false;

  // get posiition of nav element...
  var posX = findPosX(elemNav);
  var posY = findPosY(elemNav);

  // get size of menu item...
  elemMenu.style.top = "-200px";
  elemMenu.style.display = "block";
  var widMenu = elemMenu.offsetWidth;
  var widNav = elemNav.offsetWidth;
  var hgtNav = elemNav.offsetHeight;
  elemMenu.style.left = posX - (widMenu - widNav) + menuOffsetX + "px";
  elemMenu.style.top = posY + hgtNav + menuOffsetY + "px";
  // cancel any pending menu closures...
  clearTimeout(navTimer);
  return true;
  }

//
// closeMenu()
//
// Schedules the raising of a dropped menu.  Used
// to allow menu to remain open while mouse is moved
// from nav item to a menu just dropped and to cope
// with minor mouse movement errors
// sID: string: the base ID name of the menu item to close
//
function closeMenu(sID)
  {
  navTimer = setTimeout("hideMenu(\"" + sID + "\")", navDelay);
  return true;
  }

//
// hideMenu()     raise a dropped menu.
//
// Used via setTimeout() to delay the raising of a menu
// for a short while after a mouseout event closes it.
// sID: the base ID name of the menu item to close
//
function hideMenu(sID)
  {
  var elem = document.getElementById(prfxMenu + sID);
  if (elem)
    {
    elem.style.display = "none";
    elem.style.top = "-200px";
    return true;
    }
  return false;
  }

//
// keepOpen()     keep menu scheduled for closer, open
//
function keepOpen()
  {
  clearTimeout(navTimer);
  return true;
  }

///////////////////////////////////////////////////////////
//
// support functions to find the position of an element...
//
// updated 2/9/2007, MT
// fixes IE offsetParent problem
//
function findPosX(obj)
  {
  var curleft = obj.offsetLeft;
  while (obj.offsetParent)
    {
    obj = obj.offsetParent;
    curleft += obj.offsetLeft;
    }
  return curleft;
  }

function findPosY(obj)
  {
  var curtop = obj.offsetTop;
  while (obj.offsetParent)
    {
    obj = obj.offsetParent;
    curtop += obj.offsetTop;
    }
  return curtop;
  }

//
///// End of File ///////////////////////////////////////

