﻿//****** JavaScript for Main Menu ******

var disappeardelay=250  //menu disappear speed onMouseout (in miliseconds)
var enableanchorlink=0 //Enable or disable the anchor link when clicked on? (1=e, 0=d)
var hidemenu_onclick=1 //hide menu when user clicks within menu? (1=yes, 0=no)
var horizontaloffset=0 //horizontal offset of menu from default location. (0-5 is a good value)

/////No further editting needed

var ie5=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype)
{
  var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
  var parentEl=what.offsetParent;
  while (parentEl!=null)
  {
    totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;
  }
  return totaloffset;
}

function showhide(obj, e, visible, hidden)
{
  if (ie5||ns6)
    menuobj.style.left=menuobj.style.top=-500
  if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
    obj.visibility=visible
  else if (e.type=="click")
    obj.visibility=hidden
}

function iecompattest()
{
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge)
{
  var edgeoffset=0
  if (whichedge=="rightedge")
  {
    var windowedge=ie5 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
    menuobj.contentmeasure=menuobj.offsetWidth
    if (windowedge-menuobj.x-obj.offsetWidth < menuobj.contentmeasure)
      edgeoffset=menuobj.contentmeasure+obj.offsetWidth+(horizontaloffset*2) //no space to the right of page? Move menu over to the left
  }
  else
  {
    var topedge = (ie5 && !window.opera) ? iecompattest().scrollTop : window.pageYOffset
    var windowedge = (ie5 && !window.opera) ? iecompattest().scrollTop + iecompattest().clientHeight-15 : window.pageYOffset + window.innerHeight-18
    menuobj.contentmeasure=menuobj.offsetHeight
    if (windowedge-menuobj.y < menuobj.contentmeasure)//move menu up?
    { 
      edgeoffset=menuobj.contentmeasure-obj.offsetHeight
      if ((menuobj.y-topedge)<menuobj.contentmeasure) //up no good either? (position at top of viewable window then)
        edgeoffset=menuobj.y
    }
  }
  return edgeoffset
}


function expandmenu(obj, e, menuID)
{
  if (window.event) 
      event.cancelBubble=true
  else if 
      (e.stopPropagation) e.stopPropagation()
      
  if (typeof menuobj!="undefined") //hide previous menu
      menuobj.style.visibility="hidden"
  
  clearhidemenu()
  
  if (ie5||ns6)
  {
      obj.onmouseout=delayhidemenu
      menuobj=document.getElementById(menuID)
      
      if (hidemenu_onclick) 
          menuobj.onclick=function(){ menuobj.style.visibility='hidden' }
          
      menuobj.onmouseover = clearhidemenu
      menuobj.onmouseout = ie5 ? function(){ dynamichide(event)} : function(event){ dynamichide(event) }
  
      showhide(menuobj.style, e, "visible", "hidden")
      menuobj.x=getposOffset(obj, "left")
      menuobj.y=getposOffset(obj, "top")
  
      menuobj.style.left=menuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px"
      menuobj.style.top=menuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
  }
  return clickreturnvalue()
}

function clearhidemenu()
{
  if (typeof delayhide!="undefined")
    clearTimeout(delayhide)
}

function delayhidemenu()
{
  delayhide=setTimeout("menuobj.style.visibility='hidden'",disappeardelay)
}

function dynamichide(e)
{
  if (ie5&&!menuobj.contains(e.toElement))
    delayhidemenu()
  //else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
  else if (ns6&&e.currentTarget!= e.relatedTarget)  
    delayhidemenu()
}

function clickreturnvalue()
{
  if ((ie5||ns6) && !enableanchorlink) 
    return false
  else 
    return true
}