//----------------------------
// searchBox
//---------------------------- 
function searchBox(){
  alert("searching for " + document.search.searchText.value);
}


//----------------------------
// menuOver
//---------------------------- 
function menuOver(itemName){
  clearTimeout(timeOn)
  menuActive = 1
}


//----------------------------
// menuOut
//---------------------------- 
function menuOut(itemName){
  if(document.layers){
    menuActive = 0 
    timeOn = setTimeout("hideAllMenus()", 400)
  }
}


//----------------------------
// getImage
//---------------------------- 
function getImage(name){
  if (document.layers){
    return findImage(name, document);
  }
  return null;
}


//----------------------------
// findImage
//---------------------------- 
function findImage(name, doc){
  var i, img;
  for (i = 0; i < doc.images.length; i++){
    if (doc.images[i].name == name){
      return doc.images[i];
    }
  }
  for (i = 0; i < doc.layers.length; i++){
    if ((img = findImage(name, doc.layers[i].document)) != null){
      img.container = doc.layers[i];
      return img;
    }
  }
  return null;
}



//----------------------------
// getImagePageLeft
//---------------------------- 
function getImagePageLeft(img){
  var x, obj;
  if (document.layers){
    if (img.container != null){
      return img.container.pageX + img.x;
    }
    else{
      return img.x;
    }
  }
  return -1;
}


//----------------------------
// getImagePageTop
//---------------------------- 
function getImagePageTop(img){
  var y, obj;
  if (document.layers){
    if (img.container != null){
      return img.container.pageY + img.y;
    }
    else{
      return img.y;
    }
  }
  return -1;
}


//document.write('<style> .menu{position: absolute;}</style>');
var timeOn = null
numMenus = 9;
document.onmouseover = hideAllMenus;
document.onclick = hideAllMenus;
window.onerror = null;



//----------------------------
// getStyleObject
//---------------------------- 
function getStyleObject(objectId){
  // cross-browser function to get an object's style object given its id
  if(document.getElementById && document.getElementById(objectId)){
    // W3C DOM
    return document.getElementById(objectId).style;
  }
  else if (document.all && document.all(objectId)){
    // MSIE 4 DOM
    return document.all(objectId).style;
  } 
  else if (document.layers && document.layers[objectId]){
    // NN 4 DOM.. note: this won't find nested layers
    return document.layers[objectId];
  } 
  else{
    return false;
  }
}


//----------------------------
// changeObjectVisibility
//---------------------------- 
function changeObjectVisibility(objectId, newVisibility){
  // get a reference to the cross-browser style object and make sure the object exists
  var styleObject = getStyleObject(objectId);
  if(styleObject){
    styleObject.visibility = newVisibility;
    return true;
  }
  else{
    //we couldn't find the object, so we can't change its visibility
    return false;
  }
}



//----------------------------
// showMenu
//---------------------------- 
function showMenu(menuNumber, eventObj, labelID){
  hideAllMenus();
  if(document.layers){
    img = getImage("img" + menuNumber);
    x = getImagePageLeft(img);
    y = getImagePageTop(img);
    menuTop = y; 						//LAYER TOP POSITION
    eval('document.layers["menu'+menuNumber+'"].top="'+menuTop+'"');
    eval('document.layers["menu'+menuNumber+'"].left="'+x+'"');
  }
  eventObj.cancelBubble = true;
  var menuId = 'menu' + menuNumber;
  if(changeObjectVisibility(menuId, 'visible')){
    return true;
  }
  else{
    return false;
  }
}


//----------------------------
// hideAllMenus
//---------------------------- 
function hideAllMenus(){
  for(counter = 1; counter <= numMenus; counter++){
    changeObjectVisibility('menu' + counter, 'hidden');
  }
}



//----------------------------
// moveObject
//---------------------------- 
function moveObject(objectId, newXCoordinate, newYCoordinate){
  // get a reference to the cross-browser style object and make sure the object exists
  var styleObject = getStyleObject(objectId);
  if(styleObject){
    styleObject.left = newXCoordinate;
    styleObject.top = newYCoordinate;
    return true;
  }
  else{
    // we couldn't find the object, so we can't very well move it
    return false;
  }
} 



//****************************
// hacks and workarounds 
//****************************

// initialize hacks whenever the page loads
window.onload = initializeHacks;
window.onresize = resizeMainDivX;

//----------------------------
// resizeMainDivX
//----------------------------
function resizeMainDivX(){
  resizeMainDiv();
  //
  // NN browsers do not redraw the page properly after it is made smaller, so force a re-draw after a short delay
  //
  if (navigator.appName == "Netscape"){
    window.setTimeout("location.reload()", 100);
  }
}

// setup an event handler to hide popups for generic clicks on the document

//----------------------------
// initialiseHacks
//---------------------------- 
function initializeHacks(){
  resizeMainDiv();
  // this ugly little hack resizes a blank div to make sure you can click
  // anywhere in the window for Mac MSIE 5
  if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')){
    window.onresize = explorerMacResizeFix;
  }
  resizeBlankDiv();
  // this next function creates a placeholder object for older browsers
  createFakeEventObj();
}


//----------------------------
// resizeMainDiv
//---------------------------- 
function resizeMainDiv(){
  var myWidth = 0; 
  var myHeight = 0;
  if (typeof(window.innerWidth) == 'number'){
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  }
  else{
    if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
      //IE 6+ in 'standards compliant mode'
      myWidth = document.documentElement.clientWidth;
      myHeight = document.documentElement.clientHeight;
    }
    else{
      if(document.body && (document.body.clientWidth || document.body.clientHeight)){
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
      }
    }
  }
  getStyleObject('main').height = myHeight - 102;
  getStyleObject('main').width = myWidth - 202;

  //
  // resize mainDisplayArea Div to limit width to 700px wide
  //
  if (getStyleObject('mainDisplayArea')){
    getStyleObject('mainDisplayArea').width = myWidth - 222;
    if (myWidth >= 922){
      getStyleObject('mainDisplayArea').width = 700;
    }
  }

}



//----------------------------
// createFakeEventObj
//---------------------------- 
function createFakeEventObj(){
  // create a fake event object for older browsers to avoid errors in function call
  // when we need to pass the event object to functions
  if (!window.event){
    window.event = false;
  }
}


//----------------------------
// resizeBlankDiv
//---------------------------- 
function resizeBlankDiv(){
  // resize blank placeholder div so IE 5 on mac will get all clicks in window
  if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')){
    getStyleObject('blankDiv').width = document.body.clientWidth - 20;
    getStyleObject('blankDiv').height = document.body.clientHeight - 20;
  }
}


//----------------------------
// explorerMacResizeFix
//---------------------------- 
function explorerMacResizeFix() {
  location.reload(false);
}

//----------------------------
// mClk
//---------------------------- 
function mClk(src){ 
  if(event.srcElement.tagName=='TD'){
    src.children.tags('A')[0].click();
  }
}

