var menuwidth='110px' //default menu width
var menubgcolor='#F0F0F0'  //menu bgcolor
var disappeardelay=160  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?
// var hidemenumodel_onclick="yes" //hide menu when user clicks within menu?
// var hidemenutype_onclick="yes" //hide menu when user clicks within menu?

var horizontaloffset=2

/////No further editting 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();clearhidemodelmenu();clearhidetypemenu();" onMouseout="dynamichide(event);dynamichidemodel(event);dynamichidetype(event)"></div>')

document.write('<div id="modelmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu();clearhidemodelmenu();clearhidetypemenu();" onMouseout="dynamichidemodel(event);dynamichidetype(event)"></div>')

document.write('<div id="typemenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu();clearhidemodelmenu();clearhidetypemenu();" onMouseout="dynamichidetype(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(menuObj, obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
menuObj.style.left=menuObj.style.top="-500px"
if (menuwidth!=""){
menuObj.widthobj=menuObj.style
menuObj.widthobj.width=menuwidth
}
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(menuObj, obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
menuObj.contentmeasure=menuObj.offsetWidth
if (windowedge-menuObj.x < menuObj.contentmeasure)
edgeoffset=menuObj.contentmeasure-obj.offsetWidth
}
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
menuObj.contentmeasure=menuObj.offsetHeight
if (windowedge-menuObj.y < menuObj.contentmeasure){ //move up?
edgeoffset=menuObj.contentmeasure+obj.offsetHeight
if ((menuObj.y-topedge)<menuObj.contentmeasure) //up no good either?
edgeoffset=menuObj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function populatemenu(menuObj, what){
if (ie4||ns6)
menuObj.innerHTML=what.join("")
}


function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(dropmenuobj, menucontents)

if (ie4||ns6){
showhide(dropmenuobj, dropmenuobj.style, e, "visible", "hidden", menuwidth)

dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(dropmenuobj, obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(dropmenuobj, obj, "bottomedge")+obj.offsetHeight+"px"
}

return clickreturnvalue()
}

function dropmodelmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemodelmenu()
dropmodelmenuobj=document.getElementById? document.getElementById("modelmenudiv") : modelmenudiv
populatemenu(dropmodelmenuobj, menucontents)

if (ie4||ns6){
showhide(dropmodelmenuobj, dropmodelmenuobj.style, e, "visible", "hidden", menuwidth)
dropmodelmenuobj.x=getposOffset(obj, "left")
dropmodelmenuobj.y=getposOffset(obj, "top")
dropmodelmenuobj.style.left=dropmodelmenuobj.x-clearbrowseredge(dropmodelmenuobj, obj, "rightedge")+obj.offsetWidth+horizontaloffset-5+"px"
dropmodelmenuobj.style.top=dropmodelmenuobj.y-clearbrowseredge(dropmodelmenuobj, obj, "bottomedge")+1+"px"
}

return clickreturnvalue()
}

function droptypemenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidetypemenu()
droptypemenuobj=document.getElementById? document.getElementById("typemenudiv") : typemenudiv
populatemenu(droptypemenuobj, menucontents)

if (ie4||ns6){
showhide(droptypemenuobj, droptypemenuobj.style, e, "visible", "hidden", menuwidth)
droptypemenuobj.x=getposOffset(obj, "left")
droptypemenuobj.y=getposOffset(obj, "top")
droptypemenuobj.style.left=droptypemenuobj.x-clearbrowseredge(droptypemenuobj, obj, "rightedge")+obj.offsetWidth+horizontaloffset-5+"px"
droptypemenuobj.style.top=droptypemenuobj.y-clearbrowseredge(droptypemenuobj, obj, "bottomedge")+1+"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 dynamichidemodel(e){
if (ie4&&!dropmodelmenuobj.contains(e.toElement))
delayhidemenumodel()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenumodel()
}

function dynamichidetype(e){
if (ie4&&!droptypemenuobj.contains(e.toElement))
delayhidemenutype()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenutype()
}

function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

function hidemenumodel(e){
if (typeof dropmodelmenuobj!="undefined"){
if (ie4||ns6)
dropmodelmenuobj.style.visibility="hidden"
}
}

function hidemenutype(e){
if (typeof droptypemenuobj!="undefined"){
if (ie4||ns6)
droptypemenuobj.style.visibility="hidden"
}
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}

function delayhidemenumodel(){
if (ie4||ns6)
delayhidemodel=setTimeout("hidemenumodel()",disappeardelay)
}

function delayhidemenutype(){
if (ie4||ns6)
delayhidetype=setTimeout("hidemenutype()",disappeardelay)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

function clearhidemodelmenu(){
if (typeof delayhidemodel!="undefined")
clearTimeout(delayhidemodel)
}

function clearhidetypemenu(){
if (typeof delayhidetype!="undefined")
clearTimeout(delayhidetype)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

// if (hidemenumodel_onclick=="yes")
// document.onclick=hidemenumodel

// if (hidemenutype_onclick=="yes")
// document.onclick=hidemenutype

var highlightbehavior="TR"

var ns6=document.getElementById&&!document.all
var ie=document.all

function changeto(e,highlightcolor){
source=ie? event.srcElement : e.target
if (source.tagName=="TABLE")
return
while(source.tagName!=highlightbehavior && source.tagName!="HTML")
source=ns6? source.parentNode : source.parentElement
if (source.className!=highlightcolor && source.id!="ignoreHighligh")
source.className=highlightcolor
}

function contains_ns6(master, slave) { //check if slave is contained by master
while (slave.parentNode)
if ((slave = slave.parentNode) == master)
return true;
return false;
}

function changeback(e,originalcolor){
if (ie&&(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignoreHighligh")||source.tagName=="TABLE")
return
//else if (ns6&&(contains_ns6(source, e.relatedTarget)||source.id=="ignoreHighligh"))
//return
if (ie&&event.toElement!=source||ns6&&e.relatedTarget!=source)
source.className=originalcolor
}