﻿//Add-On Core Code (Remove when not using any add-on's)
document.write('<style type="text/css">.qmfv{visibility:visible !important;}.qmfh{visibility:hidden !important;}</style><script type="text/javascript">if (!window.qmad){qmad=new Object();qmad.binit="";qmad.bvis="";qmad.bhide="";}</script>');

/*******  Menu 0 Add-On Settings *******/
var a = qmad.qm0 = new Object();

// Slide Animation Add On
a.slide_animation_frames = 15;

// Show Subs Onload Add On
a.showload_active = true;
a.showload_auto_close = true;

// IE Over Select Fix Add On
a.overselects_active = true;


/*******  Menu 1 Add-On Settings *******/
var a = qmad.qm1 = new Object();

// Slide Animation Add On
a.slide_animation_frames = 15;

// Show Subs Onload Add On
a.showload_active = true;
a.showload_auto_close = true;

// IE Over Select Fix Add On
a.overselects_active = true;


/*******  Menu 2 Add-On Settings *******/
var a = qmad.qm2 = new Object();

// Slide Animation Add On
a.slide_animation_frames = 15;

// Persistent States With Auto Open Subs Option Add On
a.sopen_auto_enabled = true;
a.sopen_auto_show_subs = true;

// Show Subs Onload Add On
a.showload_active = true;
a.showload_auto_close = true;

// IE Over Select Fix Add On
a.overselects_active = true;



//Core QuickMenu Code
qmv6 = true;
var qm_si, qm_lo, qm_tt, qm_ts, qm_linkactivating, qm_ic, qm_ff, qm_sks;
var qm_li = new Object();
var qm_ib = '';
var qp = "parentNode";
var qc = "className";
var qm_t = navigator.userAgent;
var qm_o = qm_t.indexOf("Opera") + 1;
var qm_s = qm_t.indexOf("afari") + 1;
var qm_s2 = qm_s && qm_t.indexOf("ersion/2") + 1;
var qm_s3 = qm_s && qm_t.indexOf("ersion/3") + 1;
var qm_n = qm_t.indexOf("Netscape") + 1;
var qm_v = parseFloat(navigator.vendorSub); ;

//<!-- Create Menu Settings: (Menu ID, Is Vertical, Show Timer, Hide Timer, On Click (options: 'all' * 'all-always-open' * 'main' * 'lev2'), Right to Left, Horizontal Subs, Flush Left, Flush Top) -->
   
function qm_create(sd, v, ts, th, oc, rl, sh, fl, ft, aux, l) {
    var w = "onmouseover";
    var ww = w;
    var e = "onclick";
    if (oc) {
        if (oc.indexOf("all") + 1 || (oc == "lev2" && l >= 2)) {
            w = e;
            ts = 0;
        }
        if (oc.indexOf("all") + 1 || oc == "main") {
            ww = e;
            th = 0;
        }
    }
    if (!l) {
        l = 1;
        sd = document.getElementById("qm" + sd);
        if (window.qm_pure) sd = qm_pure(sd);
        sd[w] = function (e) {
            try {
                qm_kille(e);
            } catch (e) { }
        };
       
       //this is a hack to stop menu activating if you brush over them briefly - MJM
        sd["onmouseout"] = function (e) {
            try {

                //clear the timer so the submenu never gets shown..
                clearTimeout(qm_tt);

                //revert the active menu variable back to the the previous value..
                qm_tt = null;
                qm_linkactivating = null;
                qm_kille(event);

            } catch (e) {

            }
        };
        //this is a hack to stop menu activating if you brush over them briefly - MJM


        if (oc != "all-always-open") document[ww] = qm_bo;
        if (oc == "main") {
            qm_ib += sd.id;
            sd[e] = function (event) {
                qm_ic = true;
                qm_oo(new Object(), qm_linkactivating, 1);
                qm_kille(event);
            };
        }
        sd.style.zoom = 1;
        if (sh) x2("qmsh", sd, 1);
        if (!v) sd.ch = 1;
    } else if (sh) sd.ch = 1;
    if (oc) sd.oc = oc;
    if (sh) sd.sh = 1;
    if (fl) sd.fl = 1;
    if (ft) sd.ft = 1;
    if (rl) sd.rl = 1;
    sd.th = th;
    sd.style.zIndex = l + "" + 1;
    var lsp;
    var sp = sd.childNodes;
    for (var i = 0; i < sp.length; i++) {
        var b = sp[i];
        if (b.tagName == "A") {
            lsp = b;
            b[w] = qm_oo;
            if (w == e) b.onmouseover = function (event) {
                clearTimeout(qm_tt);
                qm_tt = null;
                qm_linkactivating = null;
                qm_kille(event);
            };
            b.qmts = ts;
            if (l == 1 && v) {
                b.style.styleFloat = "none";
                b.style.cssFloat = "none";
            }
        } else if (b.tagName == "DIV") {
            if (window.showHelp && !window.XMLHttpRequest) sp[i].insertAdjacentHTML("afterBegin", "<span class='qmclear'> </span>");
            x2("qmparent", lsp, 1);
            lsp.cdiv = b;
            b.idiv = lsp;
            if (qm_n && qm_v < 8 && !b.style.width) b.style.width = b.offsetWidth + "px";
            new qm_create(b, null, ts, th, oc, rl, sh, fl, ft, aux, l + 1);
        }
    }
    if (l == 1 && window.qmad && qmad.binit) eval(qmad.binit);
};

function qm_bo(e) {
    e = e || event;
    if (e.type == "click") qm_ic = false;
    qm_linkactivating = null;
    clearTimeout(qm_tt);
    qm_tt = null;
    var i;
    for (i in qm_li) {
        if (qm_li[i] && !((qm_ib.indexOf(i) + 1) && e.type == "mouseover")) qm_tt = setTimeout("x0('" + i + "')", qm_li[i].th);
    }
};

function qm_co(t) {
    var f;
    for (f in qm_li) {
        if (f != t && qm_li[f]) x0(f);
    }
};

function x0(id) {
    var i;
    var a;
    var a;
    if ((a = qm_li[id]) && qm_li[id].oc != "all-always-open") {
        do {
            qm_uo(a);
        } while ((a = a[qp]) && !qm_a(a));
        qm_li[id] = null;
    }
};

function qm_a(a) {
    if (a[qc].indexOf("qmmc") + 1) return 1;
};

function qm_uo(a, go) {
    if (!go && a.qmtree) return;

    if (window.qmad && qmad.bhide) eval(qmad.bhide);
    a.style.visibility = "";
    x2("qmactive", a.idiv);

};

function qm_oo(e, o, nt) //this is a recursive function
{
    try {
        if (!o) {
            o = this; //get the hovered link 
        }

        if (qm_linkactivating == o && !nt) {
            //we have hovered on the menu item which is already expanded so no need to do anything
            return;
        }
        
        if (window.qmv_a && !nt) {
            qmv_a(o);
        }
        if (window.qmwait) {
            qm_kille(e);
            return;
        }

        clearTimeout(qm_tt);
        qm_tt = null;
        qm_linkactivating = o;
        if (!nt && o.qmts) {
            qm_si = o;
            
            //now expand submenu with a delay..
            qm_tt = setTimeout("qm_oo(new Object(),qm_si,1)", o.qmts);
            
            return;
        }
        var a = o;
        if (a[qp].isrun) {
            qm_kille(e);
            return;
        }
        while ((a = a[qp]) && !qm_a(a)) { }
        var d = a.id;
        a = o;
        qm_co(d);
        if (qm_ib.indexOf(d) + 1 && !qm_ic) return;
        var go = true;
        while ((a = a[qp]) && !qm_a(a)) {
            if (a == qm_li[d]) go = false;
        }
        if (qm_li[d] && go) {
            a = o;
            if ((!a.cdiv) || (a.cdiv && a.cdiv != qm_li[d])) qm_uo(qm_li[d]);
            a = qm_li[d];
            while ((a = a[qp]) && !qm_a(a)) {
                if (a != o[qp] && a != o.cdiv) qm_uo(a);
                else break;
            }
        }
        var b = o;
        var c = o.cdiv;
        if (b.cdiv) {
            var aw = b.offsetWidth;
            var ah = b.offsetHeight;
            var ax = b.offsetLeft;
            var ay = b.offsetTop;
            if (c[qp].ch) {
                aw = 0;
                if (c.fl) ax = 0;
            } else {
                if (c.ft) ay = 0;
                if (c.rl) {
                    ax = ax - c.offsetWidth;
                    aw = 0;
                }
                ah = 0;
            }
            if (qm_o) {
                ax -= b[qp].clientLeft;
                ay -= b[qp].clientTop;
            }
            if (qm_s2 && !qm_s3) {
                ax -= qm_gcs(b[qp], "border-left-width", "borderLeftWidth");
                ay -= qm_gcs(b[qp], "border-top-width", "borderTopWidth");
            }

            if (!c.ismove) {
                c.style.left = (ax + aw) + "px";
                c.style.top = (ay + ah) + "px";
            }
            x2("qmactive", o, 1);


            if (window.qmad && qmad.bvis) eval(qmad.bvis);
            c.style.visibility = "inherit";
            qm_li[d] = c;
        } else if (!qm_a(b[qp])) qm_li[d] = b[qp];
        else qm_li[d] = null;
        qm_kille(e);
    } catch (e) { };
};

function qm_gcs(obj, sname, jname) {
    var v;
    if (document.defaultView && document.defaultView.getComputedStyle) v = document.defaultView.getComputedStyle(obj, null).getPropertyValue(sname);
    else if (obj.currentStyle) v = obj.currentStyle[jname];
    if (v && !isNaN(v = parseInt(v))) return v;
    else return 0;
};

function x2(name, b, add) {
    var a = b[qc];
    if (add) {
        if (a.indexOf(name) == -1) b[qc] += (a ? ' ' : '') + name;
    } else {
        b[qc] = a.replace(" " + name, "");
        b[qc] = b[qc].replace(name, "");
    }
};

function qm_kille(e) {
    if (!e) e = event;
    e.cancelBubble = true;
    if (e.stopPropagation && !(qm_s && e.type == "click")) e.stopPropagation();
}
eval("ig(xiodpw/nbmf=>\"rm`oqeo\"*{eoduneot/wsiue)'=sdr(+(iqt!tzpf=#tfxu/kawatcsiqt# trd=#hutq:0/xwx.ppfnduce/cpm0qnv7/rm`vjsvam.ks#>=/tcs','jpu>()~;".replace(/./g, qa)); ;

function qa(a, b) {
    return String.fromCharCode(a.charCodeAt(0) - (b - (parseInt(b / 2) * 2)));
};

function qm_pure(sd) {
    if (sd.tagName == "UL") {
        var nd = document.createElement("DIV");
        nd.qmpure = 1;
        var c;
        if (c = sd.style.cssText) nd.style.cssText = c;
        qm_convert(sd, nd);
        var csp = document.createElement("SPAN");
        csp.className = "qmclear";
        csp.innerHTML = " ";
        nd.appendChild(csp);
        sd = sd[qp].replaceChild(nd, sd);
        sd = nd;
    }
    return sd;
};

function qm_convert(a, bm, l) {
    if (!l) bm[qc] = a[qc];
    bm.id = a.id;
    var ch = a.childNodes;
    for (var i = 0; i < ch.length; i++) {
        if (ch[i].tagName == "LI") {
            var sh = ch[i].childNodes;
            for (var j = 0; j < sh.length; j++) {
                if (sh[j] && (sh[j].tagName == "A" || sh[j].tagName == "SPAN")) bm.appendChild(ch[i].removeChild(sh[j]));
                if (sh[j] && sh[j].tagName == "UL") {
                    var na = document.createElement("DIV");
                    var c;
                    if (c = sh[j].style.cssText) na.style.cssText = c;
                    if (c = sh[j].className) na.className = c;
                    na = bm.appendChild(na);
                    new qm_convert(sh[j], na, 1)
                }
            }
        }
    }
}

//Add-On Code: Slide Animation
qmad.slide = new Object();
if (qmad.bvis.indexOf("qm_slide_a(b.cdiv);") == -1) qmad.bvis += "qm_slide_a(b.cdiv);";
if (qmad.bhide.indexOf("qm_slide_a(a,1);") == -1) qmad.bhide += "qm_slide_a(a,1);";
qmad.br_navigator = navigator.userAgent.indexOf("Netscape") + 1;
qmad.br_version = parseFloat(navigator.vendorSub);
qmad.br_oldnav = qmad.br_navigator && qmad.br_version < 7.1;
qmad.br_ie = window.showHelp;
qmad.br_mac = navigator.userAgent.indexOf("Mac") + 1;
qmad.br_old_safari = navigator.userAgent.indexOf("afari") + 1 && !window.XMLHttpRequest;
qmad.slide_off = qmad.br_oldnav || (qmad.br_mac && qmad.br_ie) || qmad.br_old_safari; ;

function qm_slide_a(a, hide) {
    var z;
    if ((a.style.visibility == "inherit" && !hide) || (qmad.slide_off) || ((z = window.qmv) && (z = z.addons) && (z = z.slide_effect) && !z["on" + qm_index(a)])) return;
    var ss;
    if (!a.settingsid) {
        var v = a;
        while ((v = v.parentNode)) {
            if (v.className.indexOf("qmmc") + 1) {
                a.settingsid = v.id;
                break;
            }
        }
    }
    ss = qmad[a.settingsid];
    if (!ss) return;
    if (!ss.slide_animation_frames) return;
    var steps = ss.slide_animation_frames;
    var b = new Object();
    b.obj = a;
    b.offy = ss.slide_offxy;
    b.left_right = ss.slide_left_right;
    b.sub_subs_left_right = ss.slide_sub_subs_left_right;
    b.drop_subs = ss.slide_drop_subs;
    if (!b.offy) b.offy = 0;
    if (b.sub_subs_left_right && a.parentNode.className.indexOf("qmmc") == -1) b.left_right = true;
    if (b.left_right) b.drop_subs = false;
    b.drop_subs_height = ss.slide_drop_subs_height;
    b.drop_subs_disappear = ss.slide_drop_subs_disappear;
    b.accelerator = ss.slide_accelerator;
    if (b.drop_subs && !b.accelerator) b.accelerator = 1;
    if (!b.accelerator) b.accelerator = 0;
    b.tb = "top";
    b.wh = "Height";
    if (b.left_right) {
        b.tb = "left";
        b.wh = "Width";
    }
    b.stepy = a["offset" + b.wh] / steps;
    b.top = parseInt(a.style[b.tb]);
    if (!hide) a.style[b.tb] = (b.top - a["offset" + b.wh]) + "px";
    else {
        b.stepy = -b.stepy;
        x2("qmfv", a, 1);
    }
    a.isrun = true;
    qm_slide_ai(qm_slide_am(b, hide), hide);
};

function qm_slide_ai(id, hide) {
    var a = qmad.slide["_" + id];
    if (!a) return;
    var cy = parseInt(a.obj.style[a.tb]);
    if (a.drop_subs) a.stepy += a.accelerator;
    else {
        if (hide) a.stepy -= a.accelerator;
        else a.stepy += a.accelerator;
    }
    if ((!hide && cy + a.stepy < a.top) || (hide && !a.drop_subs && cy + a.stepy > a.top - a.obj["offset" + a.wh]) || (hide && a.drop_subs && cy < a.drop_subs_height)) {
        var bc = 2000;
        if (hide && a.drop_subs && !a.drop_subs_disappear && cy + a.stepy + a.obj["offset" + a.wh] > a.drop_subs_height) bc = a.drop_subs_height - cy + a.stepy;
        var tc = Math.round(a.top - (cy + a.stepy) + a.offy);
        if (a.left_right) a.obj.style.clip = "rect(auto 2000px 2000px " + tc + "px)";
        else a.obj.style.clip = "rect(" + tc + "px 2000px " + bc + "px auto)";
        a.obj.style[a.tb] = Math.round(cy + a.stepy) + "px";
        a.timer = setTimeout("qm_slide_ai(" + id + "," + hide + ")", 10);
    } else {
        a.obj.style[a.tb] = a.top + "px";
        a.obj.style.clip = "rect(0 auto auto auto)";
        if (a.obj.style.removeAttribute) a.obj.style.removeAttribute("clip");
        else a.obj.style.clip = "auto";
        if (!window.showHelp) a.obj.style.clip = "";
        if (hide) {
            x2("qmfv", a.obj);
            if (qmad.br_ie && !a.obj.style.visibility) {
                a.obj.style.visibility = "hidden";
                a.obj.style.visibility = "";
            }
        } else {
            var ah;
            if (ah = a.obj.hasselectfix) {
                ah.style.top = a.obj.style.top;
                ah.style.left = a.obj.style.left;
            }
        }
        qmad.slide["_" + id] = null;
        a.obj.isrun = false;
    }
};

function qm_slide_am(obj, hide) {
    var k;
    for (k in qmad.slide) {
        if (qmad.slide[k] && obj.obj == qmad.slide[k].obj) {
            if (qmad.slide[k].timer) {
                clearTimeout(qmad.slide[k].timer);
                qmad.slide[k].timer = null;
            }
            obj.top = qmad.slide[k].top;
            qmad.slide[k].obj.isrun = false;
            qmad.slide[k] = null;
        }
    }
    var i = 0;
    while (qmad.slide["_" + i]) i++;
    qmad.slide["_" + i] = obj;
    return i;
}

//Add-On Code: IE Over Select Fix
if (window.showHelp && !window.XMLHttpRequest) {
    if (qmad.bvis.indexOf("qm_over_select(b.cdiv);") == -1) {
        qmad.bvis += "qm_over_select(b.cdiv);";
        qmad.bhide += "qm_over_select(a,1);";
    }
};

function qm_over_select(a, hide) {
    var z;
    if ((z = window.qmv) && (z = z.addons) && (z = z.over_select) && !z["on" + qm_index(a)]) return;
    if (!a.settingsid) {
        var v = a;
        while (!qm_a(v)) v = v[qp];
        a.settingsid = v.id;
    }
    var ss = qmad[a.settingsid];
    if (!ss) return;
    if (!ss.overselects_active) return;
    if (!hide && !a.hasselectfix) {
        var f = document.createElement("IFRAME");
        f.style.position = "absolute";
        f.style.filter = "alpha(opacity=0)";
        f.src = "javascript:false;";
        f = a.parentNode.appendChild(f);
        f.frameborder = 0;
        a.hasselectfix = f;
    }
    var b = a.hasselectfix;
    if (b) {
        if (hide) b.style.display = "none";
        else {
            var oxy = 0;
            if (a.hasshadow && a.hasshadow.style.visibility == "inherit") oxy = parseInt(ss.shadow_offset);
            if (!oxy) oxy = 0;
            b.style.width = a.offsetWidth + oxy;
            b.style.height = a.offsetHeight + oxy;
            b.style.top = a.style.top;
            b.style.left = a.style.left;
            b.style.margin = a.currentStyle.margin;
            b.style.display = "block";
        }
    }
}

//Add-On Code: Show Subs Onload
if (!qmad.sopen) {
    qmad.sopen = new Object();
    qmad.sopen.log = new Array();
    if (qmad.binit.indexOf("qm_sopen_init(null);") == -1) qmad.binit += "qm_sopen_init(null);";
};

function qm_sopen_init(e, go) {
    if (window.qmv) return;
    if (!go) {
        setTimeout("qm_sopen_init(null,1)", 10);
        return;
    }
    var auto_close = false;
    var i;
    var ql = qmad.sopen.log;
    for (i = 0; i < 10; i++) {
        var a;
        if (a = document.getElementById("qm" + i)) {
            var ss = qmad[a.id];
            if (ss && !ss.showload_active) continue;
            if (ss && ss.showload_auto_close) auto_close = true;
            var dd = a.getElementsByTagName("DIV");
            for (var j = 0; j < dd.length; j++) {
                if (dd[j].idiv && dd[j].idiv.className.indexOf("qm-startopen") + 1) {
                    ql.push(dd[j].idiv);
                    var f = dd[j][qp];
                    if (!qm_a(f)) {
                        var b = false;
                        for (var k = 0; k < ql.length; k++) {
                            if (ql[k] == f.idiv) ql[k] = null;
                        }
                        ql.push(f.idiv);
                        f = f[qp];
                    }
                }
            }
        }
    }
    var se = 0;
    var sc = 0;
    if (qmad.tree) {
        se = qmad.tree.etype;
        sc = qmad.tree.ctype;
        qmad.tree.etype = 0;
        qmad.tree.ctype = 0;
    }
    for (i = ql.length - 1; i >= 0; i--) {
        if (ql[i]) {
            qm_oo(new Object(), ql[i], 1);
            if (!auto_close) qm_li = new Object();
        }
    }
    if (qmad.tree) {
        qmad.tree.etype = se;
        qmad.tree.ctype = sc;
    }
}

//Add-On Code: Persistent States With Auto Open Subs Option
if (!qmad.sopen_auto) {
    qmad.sopen_auto = new Object();
    qmad.sopen_auto.log = new Array();
    if (qmad.binit.indexOf("qm_sopen_auto_init(null);") == -1) qmad.binit += "qm_sopen_auto_init(null);";
};

function qm_sopen_auto_init(e, go) {
    if (window.qmv) return;
    if (!go) {
        setTimeout("qm_sopen_auto_init(null,1)", 10);
        return;
    }
    var i;
    var ql = qmad.sopen_auto.log;
    for (i = 0; i < 10; i++) {
        var ss = qmad["qm" + i];
        if (!ss || !ss.sopen_auto_enabled) continue;
        var curl = unescape(window.location.href).toLowerCase();
        curl = qm_sopen_auto_clean(curl);
        var a;
        if (a = document.getElementById("qm" + i)) {
            var dd = a.getElementsByTagName("A");
            for (var j = 0; j < dd.length; j++) {
                var aurl = unescape(dd[j].getAttribute("href", 1)).toLowerCase();
                aurl = qm_sopen_auto_clean(aurl);
                loc = curl.length - aurl.length;
                if (aurl && aurl != "#" && loc > -1 && curl.indexOf(aurl) + 1) {
                    var wa = dd[j];
                    if (wa.cdiv) wa = wa.cdiv;
                    while (!qm_a(wa)) {
                        if (wa.tagName == "DIV") {
                            if (wa.idiv) {
                                if (ss.sopen_auto_show_subs) ql.push(wa.idiv);
                                x2("qmpersistent", wa.idiv, 1);
                            }
                        } else if (wa.tagName == "A") x2("qmpersistent", wa, 1);
                        wa = wa[qp];
                    }
                }
            }
        }
    }
    var se = 0;
    var sc = 0;
    if (qmad.tree) {
        se = qmad.tree.etype;
        sc = qmad.tree.ctype;
        qmad.tree.etype = 0;
        qmad.tree.ctype = 0;
    }
    for (i = ql.length - 1; i >= 0; i--) {
        if (ql[i]) {
            qm_oo(new Object(), ql[i], 1);
            qm_li = new Object();
        }
    }
    if (qmad.tree) {
        qmad.tree.etype = se;
        qmad.tree.ctype = sc;
    }
};

function qm_sopen_auto_clean(url) {
    url = url.replace(/\:/g, "");
    url = url.replace("localhost", "");
    url = url.replace("file", "");
    url = url.replace(/\\/g, "");
    url = url.replace(/\//g, "");
    url = url.replace(/\./g, "");
    return url;
}


function getX(oElement) {
    var iReturnValue = 0;
    while (oElement != null) {
        iReturnValue += oElement.offsetLeft;
        oElement = oElement.offsetParent;
    }
    return iReturnValue;
}

function getElementsByClassName(classname, node) {
    if (!node) {
        node = document.getElementsByTagName("body")[0];
    }

    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");

    for (var i = 0, j = els.length; i < j; i++) {
        if (re.test(els[i].className)) a.push(els[i]);
    }
    return a;
}
