// global variable to show or hide menus.
var bShow = true;

function hideMenus() {
// hides all of the drop-down menus.
    mnuAbout.style.display = "none";
    mnuServices.style.display = "none";
    return true;
}

function hideObject(thisStyle) {
// hides the drop-down menu if no contrary instruction.

  if (bShow == false )
  {
    thisStyle.display = "none";
  }
}

function holdMenu(currElem,showItem) {
// shows or hides drop-down menu.

  if (document.getElementById)
  {
    menuObj = document.getElementById(currElem).style;
  }
  else
  {
    menuObj = eval("document." + currElem);
  }

  if (showItem == true)
  {
    bShow = true;
  }
  else
  {
    bShow = false;
    Timeout_ID = window.setTimeout("hideObject(menuObj)",1000);
  }
}

function toggleMenu(currItem,currElem,showItem) {
// creates and positions drop-down menu list.

  if (document.getElementById)
  {
    menuObj = document.getElementById(currElem).style;
  }
  else
  {
    menuObj = eval("document." + currElem);
  }
  if (showItem == true)
  {
    bShow = hideMenus() // hide menus, in case already visible.

    var newX = getAnchorPosition(currItem).x;
    var newY = getAnchorPosition(currItem).y;
    newX += -4;  // allow for left padding
    newY += 17;  // position below top menu item
    var x = new getObj(currElem);
    x.style.top = newY + 'px';
    x.style.left = newX  + 'px';
    x.style.display = "block";
  }
  else
  {
    bShow = false;
    Timeout_ID = window.setTimeout("hideObject(menuObj)",2000);
  }
}

function getObj(name)
{
  if (document.getElementById)
  {
    this.obj = document.getElementById(name);
    this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
    this.obj = document.all[name];
    this.style = document.all[name].style;
  }
  else if (document.layers)
  {
    if (document.layers[name])
    {
      this.obj = document.layers[name];
      this.style = document.layers[name];
    }
    else
    {
      this.obj = document.layers.testP.layers[name];
      this.style = document.layers.testP.layers[name];
    }
  }
}

function getAnchorPosition(anchorname) {
// This function will return an Object with x and y properties
var useWindow=false;
var coordinates=new Object();
var x=0,y=0;
// Browser capability sniffing
var use_gebi=false, use_css=false, use_layers=false;
  if (document.getElementById) { use_gebi=true; }
  else if (document.all) { use_css=true; }
  else if (document.layers) { use_layers=true; }
// Logic to find position
  if (use_gebi && document.all) {
    x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
    y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
  }
  else if (use_gebi) {
    var o=document.getElementById(anchorname);
    x=AnchorPosition_getPageOffsetLeft(o);
    y=AnchorPosition_getPageOffsetTop(o);
  }
  else if (use_css) {
    x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
    y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
  }
  else if (use_layers) {
    var found=0;
    for (var i=0; i<document.anchors.length; i++) {
      if (document.anchors[i].name==anchorname) { found=1; break; }
    }
    if (found==0) {
      coordinates.x=0; coordinates.y=0; return coordinates;
    }
    x=document.anchors[i].x;
    y=document.anchors[i].y;
  }
  else {
    coordinates.x=0; coordinates.y=0; return coordinates;
  }
  coordinates.x=x;
  coordinates.y=y;
  return coordinates;
}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
  var ol=el.offsetLeft;
  while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
  return ol;
}

function AnchorPosition_getWindowOffsetLeft (el) {
  return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
}

function AnchorPosition_getPageOffsetTop (el) {
  var ot=el.offsetTop;
  while((el=el.offsetParent) != null) { ot += el.offsetTop; }
  return ot;
}

function AnchorPosition_getWindowOffsetTop (el) {
  return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
}
