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 = 1; //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)
        dropmenuobj.style.left=dropmenuobj.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;
        dropmenuobj.contentmeasure = dropmenuobj.offsetWidth;
        if ((windowedge-dropmenuobj.x-obj.offsetWidth) < (dropmenuobj.contentmeasure))
            edgeoffset = dropmenuobj.contentmeasure + obj.offsetWidth + (horizontaloffset*2);
    } 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;
        dropmenuobj.contentmeasure=dropmenuobj.offsetHeight;
        if ((windowedge-dropmenuobj.y) < (dropmenuobj.contentmeasure)) { 
            edgeoffset=dropmenuobj.contentmeasure - obj.offsetHeight;
            if ((dropmenuobj.y-topedge) < (dropmenuobj.contentmeasure)) 
                edgeoffset=dropmenuobj.y;
        }
    }
    
    return edgeoffset;
}

function dropdownmenu(obj, e, dropmenuID) {
    
    if (window.event) 
        event.cancelBubble=true;
    else if (e.stopPropagation) 
        e.stopPropagation();
    //hide previous menu
    if (typeof dropmenuobj!="undefined") 
        dropmenuobj.style.visibility="hidden";
    clearhidemenu();
    if (ie5||ns6) {
        obj.onmouseout=delayhidemenu;
        dropmenuobj=document.getElementById(dropmenuID);
        if (hidemenu_onclick) 
            dropmenuobj.onclick=function(){dropmenuobj.style.visibility='hidden'};
        dropmenuobj.onmouseover=clearhidemenu;
        dropmenuobj.onmouseout=ie5? function(){ dynamichide(event)} : function(event){ dynamichide(event)};
        showhide(dropmenuobj.style, e, "visible", "hidden");
        dropmenuobj.x=getposOffset(obj, "left");
        dropmenuobj.y=getposOffset(obj, "top");
        dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px";
        dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
    }
    return clickreturnvalue();
}

function clickreturnvalue() {
    if ((ie5||ns6) && !enableanchorlink) 
        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 (ie5&&!dropmenuobj.contains(e.toElement))
        delayhidemenu();
    else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
        delayhidemenu();
}

function delayhidemenu() {
    delayhide=setTimeout("dropmenuobj.style.visibility='hidden'",disappeardelay);
}

function clearhidemenu() {
    if (typeof delayhide!="undefined")
        clearTimeout(delayhide);
}