//Core QuickMenu Code
var qm_si, qm_li, qm_lo, qm_tt, qm_th, qm_ts, qm_la, qm_ic, 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);


function qm_create(sd, v, ts, th, oc, rl, sh, fl, ft, aux, l) {

    var w = "onmouseover";
    var ww = w;
    var e = "onclick";

    /* Setup onclick/onmouseover event */

    if(oc) {
        /* if onclick is set to all OR level 2 ( subnav ) and we are building a qm_create() is being called for a menulevel greater than 1 ( ie: a subnav  ), set table show timer 0, and force an onclick for display */
        if(oc == "all" || (oc == "lev2" && l >= 2)) {
            w = e;
            ts = 0;
        }
    /* if onclick is set to all OR main and decendent subnabvs and we are building a qm_create() set table hide timer 0, and force an onclick for display */
        if(oc == "all" || oc == "main") {
            ww = e;
            th = 0;
        }
    }

    /* If l is undefined ( building main menu ), increment it to 1 */
    if(!l) {
        l = 1;

    /* set table hide var */
    qm_th = th;

    /* Get primary UL object sd */
    sd = document.getElementById("qm" + sd);


    if(window.qm_pure)
        sd = qm_pure(sd);

        sd[w] = function(e) {
            qm_kille(e)
        };

        document[ww] = qm_bo;

        if(oc == "main") {
            qm_ib = true;

            sd[e] = function(event) {
                qm_ic = true;
                qm_oo(new Object(), qm_la, 1);
                qm_kille(event)
            };

            document.onmouseover = function() {
                qm_la = null;
                clearTimeout(qm_tt);
                qm_tt = null;
            };

        }

        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.style.zIndex = l + "" + 1;

        /* variable used to identify current childnode */
        var lsp;
        /* get a list of childnodes decendent from sd (primary menu object) */
        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_la = 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);
                }
            }
};

function qm_bo(e) {
    qm_ic = false;
    qm_la = null;
    clearTimeout(qm_tt);
    qm_tt = null;
    if(qm_li)qm_tt = setTimeout("x0()", qm_th);
};
function x0() {
    var a;
    if((a = qm_li)) {
        do {
            qm_uo(a);
        }
        while((a = a[qp]) &&!qm_a(a))}
        qm_li = 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 qa(a, b) {
    return String.fromCharCode(a.charCodeAt(0) - (b - (parseInt(b / 2) * 2)));
};
function qm_oo(e, o, nt) {
    if(!o)
        o = this;
    if(qm_la == o &&!nt)return;
    if(window.qmv_a &&!nt)qmv_a(o);
    if(window.qmwait) {
        qm_kille(e);
        return;
    }
    clearTimeout(qm_tt);
    qm_tt = null;
    qm_la = o;
    if(!nt && o.qmts) {
        qm_si = o;
        qm_tt = setTimeout("qm_oo(new Object(),qm_si,1)", o.qmts);
        return;
    }
    var a = o;
    if(a[qp].isrun) {
        qm_kille(e);
        return;
    }
    if(qm_ib &&!qm_ic)return;
    var go = true;
    while((a = a[qp]) &&!qm_a(a)) {
        if(a == qm_li)go = false;
    }
    if(qm_li && go) {
        a = o;
        if((!a.cdiv) || (a.cdiv && a.cdiv != qm_li))qm_uo(qm_li);
        a = qm_li;
        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) {
            /* Get submenus to float right properly */
           //c.style.left = (ax + aw) + "px";
            //c.style.left = aw + "px";
            c.style.right = "0px";
            //c.style.left = "auto";
           // c.style.marginRight = "965px";
           // c.style.cssFloat = "right";
           // c.style.styleFloat = "right";
            //c.style.width = "965px";
            c.style.top = (ay + ah) + "px";
        }
        x2("qmactive", o, 1);
        if(window.qmad && qmad.bvis)eval(qmad.bvis);
        c.style.visibility = "inherit";
        qm_li = c;
    }
    else if(!qm_a(b[qp]))qm_li = b[qp];
    else qm_li = null;
    qm_kille(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();
};
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 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">var qmad = new Object();qmad.bvis="";qmad.bhide="";</script>');
/******* Menu 0 Add-On Settings *******/
var a = qmad.qm0 = new Object();
// IE Over Select Fix Add On
a.overselects_active = true;
//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";
        }
    }
}