﻿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)
var dropmenuobj;
var topLevelMenuImgId;

/////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 (e.type == "click" && obj.display == "none" || e.type == "mouseover") {
        obj.display = "block";
    } else if (e.type == "click") {
        obj.display = "none";
        if (topLevelMenuImgId != null && topLevelMenuImgId != "") {
            imgRestore(topLevelMenuImgId);
        }
    }
}

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); //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;
        dropmenuobj.contentmeasure = dropmenuobj.offsetHeight;
        if (windowedge - dropmenuobj.y < dropmenuobj.contentmeasure) { //move menu up?
            edgeoffset = dropmenuobj.contentmeasure - obj.offsetHeight;
            if ((dropmenuobj.y - topedge) < dropmenuobj.contentmeasure) { //up no good either? (position at top of viewable window then)
                edgeoffset = dropmenuobj.y;
            }
        }
    }
    return edgeoffset
}

function dropdownmenu(obj, e, dropmenuID, imgId, newImgSrc) {
    if (window.event) {
        event.cancelBubble = true;
    } else if (e.stopPropagation) {
        e.stopPropagation();
    }
    if (typeof (dropmenuobj) != "undefined" && dropmenuobj != null) { //hide previous menu
        hideMenu();
    }
    clearhidemenu();
    if (ie5 || ns6) {
        obj.onmouseout = delayhidemenu;
        dropmenuobj = document.getElementById(dropmenuID);
        topLevelMenuImgId = imgId;
        swapImage(imgId, newImgSrc);
        if (hidemenu_onclick) dropmenuobj.onclick = function() { hideMenu(); };
        dropmenuobj.onmouseover = clearhidemenu;
        dropmenuobj.onmouseout = ie5 ? function() { dynamichide(event); } : function(event) { dynamichide(event); };
        showhide(dropmenuobj.style, e, "visible", "hidden");
    }
    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("hideMenu();", disappeardelay);
}

function hideMenu() {
    dropmenuobj.style.display = 'none';
    if (topLevelMenuImgId != null && topLevelMenuImgId != "") {
        imgRestore(topLevelMenuImgId);
        topLevelMenuImgId = null;
    }
}

function clearhidemenu() {
    if (typeof delayhide != "undefined") {
        clearTimeout(delayhide)
    }
}

function swapImage(imgId, newSrc) {
    var imgElement = document.getElementById(imgId);
    if (imgElement != null && (imgElement.oSrc == null || imgElement.oSrc == "")) {
        imgElement.oSrc = imgElement.src;
        imgElement.src = newSrc;
    }
}

function imgRestore(imgId) {
    var imgElement = document.getElementById(imgId);
    if (imgElement != null && imgElement.oSrc != null && imgElement.oSrc != "") {
        imgElement.src = imgElement.oSrc;
        imgElement.oSrc = null;
    }
}

//the following routines have been pulled out of the pages where they were inline
function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; } 
    }
}

function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}

function getLeftPosition(element) {
    var position = element.offsetLeft;

    var parent = null;
    if (BrowserDetect.browser == "Explorer")
        parent = element.parentElement;
    else
        parent = element.offsetParent;

    if (parent == null) return position;
    return position + getLeftPosition(parent);
}

function centerElement(elementId) {
    var element = document.getElementById(elementId);
    element.style.left = (document.body.offsetWidth - element.offsetWidth) / 2 + "px";
    element.style.top = "260px";
}

function adjustLeft(elementId, imgElementId) {
    var element = document.getElementById(elementId);
    var img = document.getElementById(imgElementId);
    var imgRightEdge = getLeftPosition(img) + img.offsetWidth;
    var menuLeftEdge = imgRightEdge - element.offsetWidth;
    element.style.left = menuLeftEdge + 'px';
    return;

    var element = document.getElementById(elementId);
    var winWidth = null;
    if (document.all) {
        winWidth = document.body.offsetWidth;
    }
    else {
        winWidth = window.innerWidth;
    }

    if (element != null && element.style != null) {
        var style = element.style;
        if (BrowserDetect.OS == "Mac") {
            if (BrowserDetect.browser == "Safari") {
                style.left = "642px";
            }
            else {
                style.left = "638px";
            }
        }
        else if (BrowserDetect.OS == "Windows") {
            if (BrowserDetect.browser == "Explorer") {
                if (BrowserDetect.version >= 7) {
                    if (winWidth > 780) {
                        style.left = ((winWidth / 2) + 208) + "px";
                    }
                    else {
                        style.left = "599px";
                    }
                    /*
                    if (winWidth > 700){
                    style.left = (winWidth/2) + "px";
                    }
                    else{
                    style.left = (winWidth - 283) + "px";
                    }*/
                }
                else {
                    //style.left = "700px";    
                    if (winWidth > 780) {
                        style.left = ((winWidth / 2) + 208) + "px";
                    }
                    else {
                        style.left = "599px";
                    }
                }
            }
            else if (BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Mozilla") {
                if (BrowserDetect.version >= 2) {
                    //style.left = "700px";   
                    if (winWidth > 810) {
                        style.left = ((winWidth / 2) + 190) + "px";
                    }
                    else {
                        style.left = "597px";
                    }
                }
                else {
                    if (winWidth > 810) {
                        style.left = ((winWidth / 2) + 190) + "px";
                    }
                    else {
                        style.left = "597px";
                    }
                    //style.left = "700px"; 
                }
            }
        }
    }
}

function MM_showHideLayers() { //v6.0
    var i, p, v, obj, args = MM_showHideLayers.arguments;
    for (i = 0; i < (args.length - 2); i += 3) if ((obj = MM_findObj(args[i])) != null) {
        v = args[i + 2];
        if (obj.style) { obj = obj.style; v = (v == 'show') ? 'block' : (v == 'hide') ? 'none' : v; }
        obj.display = v;
    }
}

function toggleFAQ(questionElement) {
    if (questionElement != null) {
        var liElement = questionElement.parentNode;
        var divElement = questionElement.nextSibling;
        var divFound = false;
        while (divElement != null && !divFound) {
            if (divElement.tagName != null) {
                divFound = divElement.tagName.toLowerCase() == "div";
                break;
            }
            divElement = divElement.nextSibling;
        }
        if (liElement != null) {
            liElement.className = (liElement.className == "faq") ? "faq_selected" : "faq";
        }
        if (divElement != null) {
            divElement.className = (divElement.className == "hidden") ? "visible" : "hidden";
        }
    }
}
