﻿var menuwidth='235px' //default menu width
var menubgcolor='transparent'  //menu bgcolor
var disappeardelay=115  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?


//Added browser detection (rtw)
/*
var detect = navigator.userAgent.toLowerCase();
var browser,version,thestring;

if (checkIt('msie')) browser = "IE"
else if (checkIt('firefox')) browser = "FF"
else if (!checkIt('compatible'))
{
	browser = "NS"
	version = detect.charAt(8);
}
else browser = "XX";

if (!version) version = detect.charAt(place + thestring.length);

function checkIt(string){
	var place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}
*/
/////No further editing needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6){
    document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>');
    document.write('<div id="selectedHeader" style="visibility:hidden;background-color: Transparent;" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>');
}

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, menuwidth){
    if (ie4||ns6)
      obj.style.left=obj.style.top="-500px"
    if (menuwidth!=""){
        obj.widthobj=obj.style
        obj.widthobj.width=menuwidth
    }
    if (e.type=="click" && obj.style.visibility==hidden || e.type=="mouseover")
      obj.style.visibility=visible
    else if (e.type=="click")
      obj.style.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=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
// added 7/19/07 rtw
     var cssfix=9;
     //if (ie4) cssfix=9;
     //else if (browser == "FF") cssfix=9;
     //else if (browser == "NS") cssfix=9;
     //else cssfix=0;
     //alert("Browser = "+browser+",  cssfix = " + cssfix); 
// to here (rtw)
     dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
      if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
          edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth - cssfix // cssfix added 7/18/07 rtw
    }
    else{
     var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
     var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
     dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
     if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
         edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
         if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
          edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
     }
  }
  return edgeoffset
}

function populatemenu(what){
  dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
    if (ie4||ns6)
     dropmenuobj.innerHTML=what
}

function populateheader(what){
  selectedobj=document.getElementById? document.getElementById("selectedHeader") : selectedHeader
    if (ie4||ns6)
     selectedobj.innerHTML=what
}


function dropdownmenu(obj, e, menucontents, header, menuwidth){
    if (window.event) event.cancelBubble=true
    else if (e.stopPropagation) e.stopPropagation()
        clearhidemenu()
    dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
    selectedobj=document.getElementById? document.getElementById("selectedHeader") : selectedHeader

    populateheader(header)
    populatemenu(menucontents)

    if (ie4||ns6){
        if (menucontents!=""){
            showhide(dropmenuobj, e, "visible", "hidden", menuwidth)
        }else{
            dropmenuobj.style.visibility = "hidden"      
        }
          
        showhide(selectedobj, e, "visible", "hidden", null )
        if (menucontents!=""){
        dropmenuobj.x=getposOffset(obj, "left")
        dropmenuobj.y=getposOffset(obj, "top")-2
        dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
        dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
         }
        selectedobj.x=getposOffset(obj, "left")
        selectedobj.y=getposOffset(obj, "top")
        selectedobj.style.left=getposOffset(obj, "left")
        selectedobj.style.top=selectedobj.y-clearbrowseredge(obj, "bottomedge")+"px"
    }

    return clickreturnvalue()
}

function clickreturnvalue(){
    if (ie4||ns6) return false
    else return true
}

function contains_ns6(a, b) {
    while (b.parentNode)
    if ((b = b.parentNode) == a)
    return true;
    return false;
}

function dynamichide(e){
    if (ie4&&!dropmenuobj.contains(e.toElement))
     delayhidemenu()
    else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
     delayhidemenu()
}

function hidemenu(e){
    if (typeof dropmenuobj!="undefined"){
     if (ie4||ns6)
     dropmenuobj.style.visibility="hidden"
     selectedobj.style.visibility="hidden"
    }
}

function delayhidemenu(){
    if (ie4||ns6)
    delayhide=setTimeout("hidemenu()",disappeardelay)
}

function clearhidemenu(){
    if (typeof delayhide!="undefined")
    clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
    document.onclick=hidemenu


