/****** CONFIGURE THIS PART ******/

var navObjs   = new Array(5);                             // how many main buttons
var navWidths = new Array(100,111,109,77,86);            // the width of each main button
var step      = 30;                                       // set really high for no sliding
var resize    = false;                                    // should the page reload if the window is resized?


/****** BEGIN NAVIGATION SCRIPT ******/

var curNav    = null;

function init() {
  var l = navObjs.length;
  var snc;
  var gnc = getLayerById("gn");
  var x = getPagePosition(gnc, 1, "x");
	
  for (var i = 0; i < l; i++) {
    navObjs[i] = new Object();
    navObjs[i].sn = getLayerById("sn"+i+"_m");
		
    snc = getLayerById("sn"+i);
    moveX(snc, x);
    x += navWidths[i] + 1;

    navObjs[i].h = getHeight(navObjs[i].sn);	
    moveY(navObjs[i].sn, -navObjs[i].h);
    showLayer(navObjs[i].sn);

    assignMouseOverHandler(navObjs[i].sn, new Function("cancelHide(" + i + ");"));	
    assignMouseOutHandler(navObjs[i].sn, new Function("navOff(" + i + ");"));
		
    navObjs[i].hideTimer = null;
    navObjs[i].moveTimer = null;
  }
}


function navOn(n) {
  cancelHide(n);
  hideAllNavs(n);
  showNav(n);
}


function navOff(n) {
  if (navObjs[n] != null) {
    navObjs[n].hideTimer = setTimeout("hideNav("+n+");", 100);
  }
}


function showNav(n) {
  if (navObjs[n] != null) {
    clearTimeout(navObjs[n].moveTimer);
    
    if (n == curNav) {
      var y = getY(navObjs[n].sn) + step;
      
      if (y < 0) {
        moveY(navObjs[n].sn, y);
        navObjs[n].moveTimer = setTimeout("showNav("+n+");", 50);
      }
      else {
        moveY(navObjs[n].sn, 0);
        navObjs[n].moveTimer = null;
      }
    }
    else {
      hideNav(n);
    }
  }
}


function hideNav(n) {
  if (navObjs[n] != null)  {
    clearTimeout(navObjs[n].moveTimer);
    var y = getY(navObjs[n].sn) - step;
		
    if (y > -navObjs[n].h) {
      moveY(navObjs[n].sn, y);
      navObjs[n].moveTimer = setTimeout("hideNav("+n+");", 50);
    }
    else {
      moveY(navObjs[n].sn, -navObjs[n].h);
      navObjs[n].moveTimer = null;
    }
  }
}


function cancelHide(n) {
  if (navObjs[n] != null) {
    clearTimeout(navObjs[n].hideTimer);
    navObjs[n].hideTimer = null;
  }
}


function hideAllNavs(n) {
  var l = navObjs.length;

  for (var i = 0; i < l; i++) {
    if (i != n) {
      hideNav(i);
    }
  }
	
  curNav = n;
}


function sNavOver(el) {
  setStyleAtt(el, "background", "#FFCC00");
}


function sNavOut(el) {
  setStyleAtt(el, "background", "#FFFFFF");
}


function setStyleAtt(el, att, val) {
  if (el.style) {
    s = el.style;
    eval("el.style." + att + " = val;");
  }
}


function pop(url) {
  window.open(url, "win", 'width=440,height=500,scrollbars=1');
}


/****** BEGIN FUNCTIONS ******/

if (ie4) {
  setLayerBg   = new Function("layr", "bg", "layr.style.background = bg");
  writeToLayer = new Function("layr", "txt", "layr.innerHTML = txt;");
  showLayer    = new Function("layr", "layr.style.visibility = 'visible';");
  hideLayer    = new Function("layr", "layr.style.visibility = 'hidden';");
  moveX        = new Function("layr", "x", "layr.style.posLeft = x;")	
  moveY        = new Function("layr", "y", "layr.style.posTop = y;")	
  setHeight    = new Function("layr", "h", "layr.style.pixelHeight = h;");
  getHeight    = new Function("layr", "return layr.offsetHeight;");
  getWidth     = new Function("layr", "return layr.offsetWidth;");
  getX         = new Function("layr", "return layr.style.posLeft;");
  getY         = new Function("layr", "return layr.style.posTop;");
  getLayerById = new Function("id", "return document.all(id);");
  getImgInLayerByName = new Function("layr", "name", "return layr.all.tags('img')[name]");
  setZ         = new Function("layr", "z", "layr.style.zIndex = z");
	
  assignClickHandler     = new Function("layr", "func", "layr.onclick = func;");
  assignMouseOverHandler = new Function("layr", "func", "layr.onmouseover = func;");
  assignMouseOutHandler  = new Function("layr", "func", "layr.onmouseout = func;");

  createLayer     = createLayerIE;
  getPagePosition = getPagePositionIE;
		
  if (document.getElementById) {
    createLayer = createLayerNS6;
  }
	
  adjustDocHeight  = new Function(""); // only ns4 needs this function
  getFormInLayer   = new Function("layr", "name", "if (name != null) { return layr.all.tags('form')[name]; } else { return layr.all.tags('form')[0]; }");
  getLinksInLayer  = new Function ("layr", "return layr.all.tags('a')");
  getChildElements = new Function("layr", "return layr.all;")
  
  if (resize == true) {
    window.onresize  = new Function("location.replace(location.href);");
  }
}
else if (ns4) {
  setLayerBg   = new Function("layr", "bg", "layr.bgColor = bg");
  writeToLayer = new Function("layr", "txt", "layr.document.open(); layr.document.write(txt); layr.document.close();");
  showLayer    = new Function("layr", "layr.visibility = 'visible';");
  hideLayer    = new Function("layr", "layr.visibility = 'hidden';");
  moveX        = new Function("layr", "x", "layr.left = x;")
  moveY        = new Function("layr", "y", "layr.top = y;")	
  setHeight    = new Function("layr", "h", "layr.clip.height = h;");
  getHeight    = new Function("layr", "return layr.clip.height;");
  getWidth     = new Function("layr", "return layr.clip.width;");
  getX         = new Function("layr", "return layr.left;");
  getY         = new Function("layr", "return layr.top;");
  getLayerById = getLayerByIdNS4;
  getImgInLayerByName = new Function("layr", "name", "return layr.document.images[name]");
  setZ         = new Function("layr", "z", "layr.zIndex = z");
  
  assignClickHandler     = new Function("layr", "func", "layr.captureEvents(Event.MOUSEDOWN); layr.onmousedown = func;");
  assignMouseOverHandler = new Function("layr", "func", "layr.onmouseover = func;");
  assignMouseOutHandler  = new Function("layr", "func", "layr.onmouseout =  func;");	

  initWidth  = window.innerWidth;
  initHeight = window.innerHeight;

  if (resize == true) {
    window.onresize = new Function("if ((window.innerWidth != initWidth) || (window.innerHeight != initHeight)) { window.location.href=window.location.href }");
  }
  
  createLayer      = createLayerNS4;
  getPagePosition  = getPagePositionNS4;
  getFormInLayer   = new Function("layr", "name", "if (name != null) { return layr.document.forms[name]; } else { return layr.document.forms[0]; }");
  getLinksInLayer  = new Function ("layr", "return layr.document.links");

  getChildElements = new Function("layr", "return null;")
}
else if (ns6) {
  setLayerBg   = new Function("layr", "bg", "layr.style.background = bg");	
  writeToLayer = new Function("layr", "txt", "layr.innerHTML = txt;");
  showLayer    = new Function("layr", "layr.style.visibility = 'visible';");
  hideLayer    = new Function("layr", "layr.style.visibility = 'hidden';");
  moveX        = new Function("layr", "x", "layr.style.left = x;")	
  moveY        = new Function("layr", "y", "layr.style.top = y;")
  setHeight    = new Function("layr", "h", "layr.style.height = h;");
  getHeight    = new Function("layr", "return layr.offsetHeight;");	
  getWidth     = new Function("layr", "layr.style.width = 'auto'; return layr.offsetWidth;");	
  getX         = new Function("layr", "return parseInt(layr.style.left);");
  getY         = new Function("layr", "return parseInt(layr.style.top);");	
  getLayerById = new Function("id", "return document.getElementById(id);");
  getImgInLayerByName = new Function("layr", "name", "return null");
  setZ         = new Function("layr", "z", "layr.style.zIndex = z");
	
  assignClickHandler     = new Function("layr", "func", "layr.addEventListener('click', func, true);");	
  assignMouseOverHandler = new Function("layr", "func", "layr.addEventListener('mouseover', func, false);");
  assignMouseOutHandler  = new Function("layr", "func", "layr.addEventListener('mouseout', func, false);");

  createLayer      = createLayerNS6;
  getPagePosition  = getPagePositionNS6;	
	
  adjustDocHeight  = new Function(""); // only ns4 needs this function
  getFormInLayer   = new Function("layr", "name", "if (name != null) { return layr.getElementsByTagName('form')[name]; } else { return layr.getElementsByTagName('form')[0]; }");
  getLinksInLayer  = new Function ("layr", "return layr.getElementsByTagName('a')");
  getChildElements = new Function("layr", "return layr.childNodes;")

  if (resize == true) {	
    window.onresize  = new Function("location.replace(location.href);");
  }
}


function createLayerIE(id, container) {
  id += new Date().getTime(); //makes sure id is unique on page
  var layr = '<div id="' + id + '" style="position:absolute"></div>'
  if (container == null) {
    container = document.body;
  }	
  container.insertAdjacentHTML("afterBegin", layr)
	
  return container.all(id);
}


function createLayerNS6(id, container) {
  var layr = document.createElement("div");
  layr.style.position = "absolute";
  layr.style.visibility = "hidden";
  if (container == null) {
    container = document.body;
  }
  container.appendChild(layr);
  return layr;
}


function createLayerNS4(id, container) {
  var layr;
	
  if (container == null)  { 
    layr = new Layer(); 
  }
  else {
    layr = new Layer(192, container);
  }
  return layr;
}


function getLayerByIdNS4(id, layrs) {
  var layr;

  if (layrs == null) {
    layrs = document.layers;
  }
	
  var l = layrs.length;

  for (var i = 0; i < l; i++) {
    if (layrs[i].id == id) {
      layr = layrs[i];
    }
    else if(layrs[i].document.layers.length > 0) {
      layr = getLayerByIdNS4(id, layrs[i].document.layers);
    }

    if (layr != null) {
      return layr;
    }		
  }
	
  return layr;
}


function getPagePositionIE(el, n, axis) {
  if (axis == "x") {
    n += el.offsetLeft;	
  }
  else if (axis == "y") {
    n += el.offsetTop;
  }
  
  if (el != document.body) {
    if (isMac) {
      parentalUnit = el.parentElement;
    }
    else {
      parentalUnit = el.offsetParent;
    }
    return getPagePositionIE(parentalUnit, n, axis);
  }

  return n;
}


function getPagePositionNS4(el, n, axis) {
  if (axis == "x") {
    return el.pageX;
  }
  else {
    return el.pageY;
  }
}


function getPagePositionNS6(el, n, axis) {
  if (axis == "x") {
    n += el.offsetLeft;
  }
  else {
    n += el.offsetTop;
  }
	
  if (el.offsetParent != null) {
    return getPagePosition(el.offsetParent, n, axis);
  }
  else {
    return n;
  }
}


function adjustDocHeight() {
  var l = document.layers.length;
  for (var i = 0; i < l; i++) {
    if (document.layers[i].top + document.layers[i].clip.height > document.height) {
      document.height = document.layers[i].top + document.layers[i].clip.height;
    }
  }
}