/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function () {
    var l = this,
        g, z = l.jQuery,
        q = l.$,
        o = l.jQuery = l.$ = function (F, G) {
            return new o.fn.init(F, G)
        },
        E = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
        f = /^.[^:#\[\.,]*$/;
    o.fn = o.prototype = {
        init: function (F, I) {
            F = F || document;
            if (F.nodeType) {
                this[0] = F;
                this.length = 1;
                this.context = F;
                return this
            }
            if (typeof F === "string") {
                var H = E.exec(F);
                if (H && (H[1] || !I)) {
                    if (H[1]) {
                        F = o.clean([H[1]], I)
                    } else {
                        var J = document.getElementById(H[3]);
                        if (J && J.id != H[3]) {
                            return o().find(F)
                        }
                        var G = o(J || []);
                        G.context = document;
                        G.selector = F;
                        return G
                    }
                } else {
                    return o(I).find(F)
                }
            } else {
                if (o.isFunction(F)) {
                    return o(document).ready(F)
                }
            }
            if (F.selector && F.context) {
                this.selector = F.selector;
                this.context = F.context
            }
            return this.setArray(o.isArray(F) ? F : o.makeArray(F))
        },
        selector: "",
        jquery: "1.3.2",
        size: function () {
            return this.length
        },
        get: function (F) {
            return F === g ? Array.prototype.slice.call(this) : this[F]
        },
        pushStack: function (G, I, F) {
            var H = o(G);
            H.prevObject = this;
            H.context = this.context;
            if (I === "find") {
                H.selector = this.selector + (this.selector ? " " : "") + F
            } else {
                if (I) {
                    H.selector = this.selector + "." + I + "(" + F + ")"
                }
            }
            return H
        },
        setArray: function (F) {
            this.length = 0;
            Array.prototype.push.apply(this, F);
            return this
        },
        each: function (G, F) {
            return o.each(this, G, F)
        },
        index: function (F) {
            return o.inArray(F && F.jquery ? F[0] : F, this)
        },
        attr: function (G, I, H) {
            var F = G;
            if (typeof G === "string") {
                if (I === g) {
                    return this[0] && o[H || "attr"](this[0], G)
                } else {
                    F = {};
                    F[G] = I
                }
            }
            return this.each(function (J) {
                for (G in F) {
                    o.attr(H ? this.style : this, G, o.prop(this, F[G], H, J, G))
                }
            })
        },
        css: function (F, G) {
            if ((F == "width" || F == "height") && parseFloat(G) < 0) {
                G = g
            }
            return this.attr(F, G, "curCSS")
        },
        text: function (G) {
            if (typeof G !== "object" && G != null) {
                return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(G))
            }
            var F = "";
            o.each(G || this, function () {
                o.each(this.childNodes, function () {
                    if (this.nodeType != 8) {
                        F += this.nodeType != 1 ? this.nodeValue : o.fn.text([this])
                    }
                })
            });
            return F
        },
        wrapAll: function (F) {
            if (this[0]) {
                var G = o(F, this[0].ownerDocument).clone();
                if (this[0].parentNode) {
                    G.insertBefore(this[0])
                }
                G.map(function () {
                    var H = this;
                    while (H.firstChild) {
                        H = H.firstChild
                    }
                    return H
                }).append(this)
            }
            return this
        },
        wrapInner: function (F) {
            return this.each(function () {
                o(this).contents().wrapAll(F)
            })
        },
        wrap: function (F) {
            return this.each(function () {
                o(this).wrapAll(F)
            })
        },
        append: function () {
            return this.domManip(arguments, true, function (F) {
                if (this.nodeType == 1) {
                    this.appendChild(F)
                }
            })
        },
        prepend: function () {
            return this.domManip(arguments, true, function (F) {
                if (this.nodeType == 1) {
                    this.insertBefore(F, this.firstChild)
                }
            })
        },
        before: function () {
            return this.domManip(arguments, false, function (F) {
                this.parentNode.insertBefore(F, this)
            })
        },
        after: function () {
            return this.domManip(arguments, false, function (F) {
                this.parentNode.insertBefore(F, this.nextSibling)
            })
        },
        end: function () {
            return this.prevObject || o([])
        },
        push: [].push,
        sort: [].sort,
        splice: [].splice,
        find: function (F) {
            if (this.length === 1) {
                var G = this.pushStack([], "find", F);
                G.length = 0;
                o.find(F, this[0], G);
                return G
            } else {
                return this.pushStack(o.unique(o.map(this, function (H) {
                    return o.find(F, H)
                })), "find", F)
            }
        },
        clone: function (H) {
            var F = this.map(function () {
                if (!o.support.noCloneEvent && !o.isXMLDoc(this)) {
                    var J = this.outerHTML;
                    if (!J) {
                        var K = this.ownerDocument.createElement("div");
                        K.appendChild(this.cloneNode(true));
                        J = K.innerHTML
                    }
                    return o.clean([J.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]
                } else {
                    return this.cloneNode(true)
                }
            });
            if (H === true) {
                var I = this.find("*").andSelf(),
                    G = 0;
                F.find("*").andSelf().each(function () {
                    if (this.nodeName !== I[G].nodeName) {
                        return
                    }
                    var J = o.data(I[G], "events");
                    for (var L in J) {
                        for (var K in J[L]) {
                            o.event.add(this, L, J[L][K], J[L][K].data)
                        }
                    }
                    G++
                })
            }
            return F
        },
        filter: function (F) {
            return this.pushStack(o.isFunction(F) && o.grep(this, function (H, G) {
                return F.call(H, G)
            }) || o.multiFilter(F, o.grep(this, function (G) {
                return G.nodeType === 1
            })), "filter", F)
        },
        closest: function (F) {
            var H = o.expr.match.POS.test(F) ? o(F) : null,
                G = 0;
            return this.map(function () {
                var I = this;
                while (I && I.ownerDocument) {
                    if (H ? H.index(I) > -1 : o(I).is(F)) {
                        o.data(I, "closest", G);
                        return I
                    }
                    I = I.parentNode;
                    G++
                }
            })
        },
        not: function (F) {
            if (typeof F === "string") {
                if (f.test(F)) {
                    return this.pushStack(o.multiFilter(F, this, true), "not", F)
                } else {
                    F = o.multiFilter(F, this)
                }
            }
            var G = F.length && F[F.length - 1] !== g && !F.nodeType;
            return this.filter(function () {
                return G ? o.inArray(this, F) < 0 : this != F
            })
        },
        add: function (F) {
            return this.pushStack(o.unique(o.merge(this.get(), typeof F === "string" ? o(F) : o.makeArray(F))))
        },
        is: function (F) {
            return !!F && o.multiFilter(F, this).length > 0
        },
        hasClass: function (F) {
            return !!F && this.is("." + F)
        },
        val: function (L) {
            if (L === g) {
                var F = this[0];
                if (F) {
                    if (o.nodeName(F, "option")) {
                        return (F.attributes.value || {}).specified ? F.value : F.text
                    }
                    if (o.nodeName(F, "select")) {
                        var J = F.selectedIndex,
                            M = [],
                            N = F.options,
                            I = F.type == "select-one";
                        if (J < 0) {
                            return null
                        }
                        for (var G = I ? J : 0, K = I ? J + 1 : N.length; G < K; G++) {
                            var H = N[G];
                            if (H.selected) {
                                L = o(H).val();
                                if (I) {
                                    return L
                                }
                                M.push(L)
                            }
                        }
                        return M
                    }
                    return (F.value || "").replace(/\r/g, "")
                }
                return g
            }
            if (typeof L === "number") {
                L += ""
            }
            return this.each(function () {
                if (this.nodeType != 1) {
                    return
                }
                if (o.isArray(L) && /radio|checkbox/.test(this.type)) {
                    this.checked = (o.inArray(this.value, L) >= 0 || o.inArray(this.name, L) >= 0)
                } else {
                    if (o.nodeName(this, "select")) {
                        var O = o.makeArray(L);
                        o("option", this).each(function () {
                            this.selected = (o.inArray(this.value, O) >= 0 || o.inArray(this.text, O) >= 0)
                        });
                        if (!O.length) {
                            this.selectedIndex = -1
                        }
                    } else {
                        this.value = L
                    }
                }
            })
        },
        html: function (F) {
            return F === g ? (this[0] ? this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append(F)
        },
        replaceWith: function (F) {
            return this.after(F).remove()
        },
        eq: function (F) {
            return this.slice(F, +F + 1)
        },
        slice: function () {
            return this.pushStack(Array.prototype.slice.apply(this, arguments), "slice", Array.prototype.slice.call(arguments).join(","))
        },
        map: function (F) {
            return this.pushStack(o.map(this, function (H, G) {
                return F.call(H, G, H)
            }))
        },
        andSelf: function () {
            return this.add(this.prevObject)
        },
        domManip: function (K, N, M) {
            if (this[0]) {
                var J = (this[0].ownerDocument || this[0]).createDocumentFragment(),
                    G = o.clean(K, (this[0].ownerDocument || this[0]), J),
                    I = J.firstChild;
                if (I) {
                    for (var H = 0, F = this.length; H < F; H++) {
                        M.call(L(this[H], I), this.length > 1 || H > 0 ? J.cloneNode(true) : J)
                    }
                }
                if (G) {
                    o.each(G, A)
                }
            }
            return this;

            function L(O, P) {
                return N && o.nodeName(O, "table") && o.nodeName(P, "tr") ? (O.getElementsByTagName("tbody")[0] || O.appendChild(O.ownerDocument.createElement("tbody"))) : O
            }
        }
    };
    o.fn.init.prototype = o.fn;

    function A(F, G) {
        if (G.src) {
            o.ajax({
                url: G.src,
                async: false,
                dataType: "script"
            })
        } else {
            o.globalEval(G.text || G.textContent || G.innerHTML || "")
        }
        if (G.parentNode) {
            G.parentNode.removeChild(G)
        }
    }
    function e() {
        return +new Date
    }
    o.extend = o.fn.extend = function () {
        var K = arguments[0] || {},
            I = 1,
            J = arguments.length,
            F = false,
            H;
        if (typeof K === "boolean") {
            F = K;
            K = arguments[1] || {};
            I = 2
        }
        if (typeof K !== "object" && !o.isFunction(K)) {
            K = {}
        }
        if (J == I) {
            K = this;
            --I
        }
        for (; I < J; I++) {
            if ((H = arguments[I]) != null) {
                for (var G in H) {
                    var L = K[G],
                        M = H[G];
                    if (K === M) {
                        continue
                    }
                    if (F && M && typeof M === "object" && !M.nodeType) {
                        K[G] = o.extend(F, L || (M.length != null ? [] : {}), M)
                    } else {
                        if (M !== g) {
                            K[G] = M
                        }
                    }
                }
            }
        }
        return K
    };
    var b = /z-?index|font-?weight|opacity|zoom|line-?height/i,
        r = document.defaultView || {},
        t = Object.prototype.toString;
    o.extend({
        noConflict: function (F) {
            l.$ = q;
            if (F) {
                l.jQuery = z
            }
            return o
        },
        isFunction: function (F) {
            return t.call(F) === "[object Function]"
        },
        isArray: function (F) {
            return t.call(F) === "[object Array]"
        },
        isXMLDoc: function (F) {
            return F.nodeType === 9 && F.documentElement.nodeName !== "HTML" || !! F.ownerDocument && o.isXMLDoc(F.ownerDocument)
        },
        globalEval: function (H) {
            if (H && /\S/.test(H)) {
                var G = document.getElementsByTagName("head")[0] || document.documentElement,
                    F = document.createElement("script");
                F.type = "text/javascript";
                if (o.support.scriptEval) {
                    F.appendChild(document.createTextNode(H))
                } else {
                    F.text = H
                }
                G.insertBefore(F, G.firstChild);
                G.removeChild(F)
            }
        },
        nodeName: function (G, F) {
            return G.nodeName && G.nodeName.toUpperCase() == F.toUpperCase()
        },
        each: function (H, L, G) {
            var F, I = 0,
                J = H.length;
            if (G) {
                if (J === g) {
                    for (F in H) {
                        if (L.apply(H[F], G) === false) {
                            break
                        }
                    }
                } else {
                    for (; I < J;) {
                        if (L.apply(H[I++], G) === false) {
                            break
                        }
                    }
                }
            } else {
                if (J === g) {
                    for (F in H) {
                        if (L.call(H[F], F, H[F]) === false) {
                            break
                        }
                    }
                } else {
                    for (var K = H[0]; I < J && L.call(K, I, K) !== false; K = H[++I]) {}
                }
            }
            return H
        },
        prop: function (I, J, H, G, F) {
            if (o.isFunction(J)) {
                J = J.call(I, G)
            }
            return typeof J === "number" && H == "curCSS" && !b.test(F) ? J + "px" : J
        },
        className: {
            add: function (F, G) {
                o.each((G || "").split(/\s+/), function (H, I) {
                    if (F.nodeType == 1 && !o.className.has(F.className, I)) {
                        F.className += (F.className ? " " : "") + I
                    }
                })
            },
            remove: function (F, G) {
                if (F.nodeType == 1) {
                    F.className = G !== g ? o.grep(F.className.split(/\s+/), function (H) {
                        return !o.className.has(G, H)
                    }).join(" ") : ""
                }
            },
            has: function (G, F) {
                return G && o.inArray(F, (G.className || G).toString().split(/\s+/)) > -1
            }
        },
        swap: function (I, H, J) {
            var F = {};
            for (var G in H) {
                F[G] = I.style[G];
                I.style[G] = H[G]
            }
            J.call(I);
            for (var G in H) {
                I.style[G] = F[G]
            }
        },
        css: function (I, G, K, F) {
            if (G == "width" || G == "height") {
                var M, H = {
                    position: "absolute",
                    visibility: "hidden",
                    display: "block"
                },
                    L = G == "width" ? ["Left", "Right"] : ["Top", "Bottom"];

                function J() {
                    M = G == "width" ? I.offsetWidth : I.offsetHeight;
                    if (F === "border") {
                        return
                    }
                    o.each(L, function () {
                        if (!F) {
                            M -= parseFloat(o.curCSS(I, "padding" + this, true)) || 0
                        }
                        if (F === "margin") {
                            M += parseFloat(o.curCSS(I, "margin" + this, true)) || 0
                        } else {
                            M -= parseFloat(o.curCSS(I, "border" + this + "Width", true)) || 0
                        }
                    })
                }
                if (I.offsetWidth !== 0) {
                    J()
                } else {
                    o.swap(I, H, J)
                }
                return Math.max(0, Math.round(M))
            }
            return o.curCSS(I, G, K)
        },
        curCSS: function (J, G, H) {
            var M, F = J.style;
            if (G == "opacity" && !o.support.opacity) {
                M = o.attr(F, "opacity");
                return M == "" ? "1" : M
            }
            if (G.match(/float/i)) {
                G = x
            }
            if (!H && F && F[G]) {
                M = F[G]
            } else {
                if (r.getComputedStyle) {
                    if (G.match(/float/i)) {
                        G = "float"
                    }
                    G = G.replace(/([A-Z])/g, "-$1").toLowerCase();
                    var N = r.getComputedStyle(J, null);
                    if (N) {
                        M = N.getPropertyValue(G)
                    }
                    if (G == "opacity" && M == "") {
                        M = "1"
                    }
                } else {
                    if (J.currentStyle) {
                        var K = G.replace(/\-(\w)/g, function (O, P) {
                            return P.toUpperCase()
                        });
                        M = J.currentStyle[G] || J.currentStyle[K];
                        if (!/^\d+(px)?$/i.test(M) && /^\d/.test(M)) {
                            var I = F.left,
                                L = J.runtimeStyle.left;
                            J.runtimeStyle.left = J.currentStyle.left;
                            F.left = M || 0;
                            M = F.pixelLeft + "px";
                            F.left = I;
                            J.runtimeStyle.left = L
                        }
                    }
                }
            }
            return M
        },
        clean: function (G, L, J) {
            L = L || document;
            if (typeof L.createElement === "undefined") {
                L = L.ownerDocument || L[0] && L[0].ownerDocument || document
            }
            if (!J && G.length === 1 && typeof G[0] === "string") {
                var I = /^<(\w+)\s*\/?>$/.exec(G[0]);
                if (I) {
                    return [L.createElement(I[1])]
                }
            }
            var H = [],
                F = [],
                M = L.createElement("div");
            o.each(G, function (Q, T) {
                if (typeof T === "number") {
                    T += ""
                }
                if (!T) {
                    return
                }
                if (typeof T === "string") {
                    T = T.replace(/(<(\w+)[^>]*?)\/>/g, function (V, W, U) {
                        return U.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? V : W + "></" + U + ">"
                    });
                    var P = T.replace(/^\s+/, "").substring(0, 10).toLowerCase();
                    var R = !P.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !P.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || P.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !P.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!P.indexOf("<td") || !P.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !P.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || !o.support.htmlSerialize && [1, "div<div>", "</div>"] || [0, "", ""];
                    M.innerHTML = R[1] + T + R[2];
                    while (R[0]--) {
                        M = M.lastChild
                    }
                    if (!o.support.tbody) {
                        var S = /<tbody/i.test(T),
                            O = !P.indexOf("<table") && !S ? M.firstChild && M.firstChild.childNodes : R[1] == "<table>" && !S ? M.childNodes : [];
                        for (var N = O.length - 1; N >= 0; --N) {
                            if (o.nodeName(O[N], "tbody") && !O[N].childNodes.length) {
                                O[N].parentNode.removeChild(O[N])
                            }
                        }
                    }
                    if (!o.support.leadingWhitespace && /^\s/.test(T)) {
                        M.insertBefore(L.createTextNode(T.match(/^\s*/)[0]), M.firstChild)
                    }
                    T = o.makeArray(M.childNodes)
                }
                if (T.nodeType) {
                    H.push(T)
                } else {
                    H = o.merge(H, T)
                }
            });
            if (J) {
                for (var K = 0; H[K]; K++) {
                    if (o.nodeName(H[K], "script") && (!H[K].type || H[K].type.toLowerCase() === "text/javascript")) {
                        F.push(H[K].parentNode ? H[K].parentNode.removeChild(H[K]) : H[K])
                    } else {
                        if (H[K].nodeType === 1) {
                            H.splice.apply(H, [K + 1, 0].concat(o.makeArray(H[K].getElementsByTagName("script"))))
                        }
                        J.appendChild(H[K])
                    }
                }
                return F
            }
            return H
        },
        attr: function (K, H, L) {
            if (!K || K.nodeType == 3 || K.nodeType == 8) {
                return g
            }
            var I = !o.isXMLDoc(K),
                M = L !== g;
            H = I && o.props[H] || H;
            if (K.tagName) {
                var G = /href|src|style/.test(H);
                if (H == "selected" && K.parentNode) {
                    K.parentNode.selectedIndex
                }
                if (H in K && I && !G) {
                    if (M) {
                        if (H == "type" && o.nodeName(K, "input") && K.parentNode) {
                            throw "type property can't be changed"
                        }
                        K[H] = L
                    }
                    if (o.nodeName(K, "form") && K.getAttributeNode(H)) {
                        return K.getAttributeNode(H).nodeValue
                    }
                    if (H == "tabIndex") {
                        var J = K.getAttributeNode("tabIndex");
                        return J && J.specified ? J.value : K.nodeName.match(/(button|input|object|select|textarea)/i) ? 0 : K.nodeName.match(/^(a|area)$/i) && K.href ? 0 : g
                    }
                    return K[H]
                }
                if (!o.support.style && I && H == "style") {
                    return o.attr(K.style, "cssText", L)
                }
                if (M) {
                    K.setAttribute(H, "" + L)
                }
                var F = !o.support.hrefNormalized && I && G ? K.getAttribute(H, 2) : K.getAttribute(H);
                return F === null ? g : F
            }
            if (!o.support.opacity && H == "opacity") {
                if (M) {
                    K.zoom = 1;
                    K.filter = (K.filter || "").replace(/alpha\([^)]*\)/, "") + (parseInt(L) + "" == "NaN" ? "" : "alpha(opacity=" + L * 100 + ")")
                }
                return K.filter && K.filter.indexOf("opacity=") >= 0 ? (parseFloat(K.filter.match(/opacity=([^)]*)/)[1]) / 100) + "" : ""
            }
            H = H.replace(/-([a-z])/ig, function (N, O) {
                return O.toUpperCase()
            });
            if (M) {
                K[H] = L
            }
            return K[H]
        },
        trim: function (F) {
            return (F || "").replace(/^\s+|\s+$/g, "")
        },
        makeArray: function (H) {
            var F = [];
            if (H != null) {
                var G = H.length;
                if (G == null || typeof H === "string" || o.isFunction(H) || H.setInterval) {
                    F[0] = H
                } else {
                    while (G) {
                        F[--G] = H[G]
                    }
                }
            }
            return F
        },
        inArray: function (H, I) {
            for (var F = 0, G = I.length; F < G; F++) {
                if (I[F] === H) {
                    return F
                }
            }
            return -1
        },
        merge: function (I, F) {
            var G = 0,
                H, J = I.length;
            if (!o.support.getAll) {
                while ((H = F[G++]) != null) {
                    if (H.nodeType != 8) {
                        I[J++] = H
                    }
                }
            } else {
                while ((H = F[G++]) != null) {
                    I[J++] = H
                }
            }
            return I
        },
        unique: function (L) {
            var G = [],
                F = {};
            try {
                for (var H = 0, I = L.length; H < I; H++) {
                    var K = o.data(L[H]);
                    if (!F[K]) {
                        F[K] = true;
                        G.push(L[H])
                    }
                }
            } catch (J) {
                G = L
            }
            return G
        },
        grep: function (G, K, F) {
            var H = [];
            for (var I = 0, J = G.length; I < J; I++) {
                if (!F != !K(G[I], I)) {
                    H.push(G[I])
                }
            }
            return H
        },
        map: function (F, K) {
            var G = [];
            for (var H = 0, I = F.length; H < I; H++) {
                var J = K(F[H], H);
                if (J != null) {
                    G[G.length] = J
                }
            }
            return G.concat.apply([], G)
        }
    });
    var D = navigator.userAgent.toLowerCase();
    o.browser = {
        version: (D.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1],
        safari: /webkit/.test(D),
        opera: /opera/.test(D),
        msie: /msie/.test(D) && !/opera/.test(D),
        mozilla: /mozilla/.test(D) && !/(compatible|webkit)/.test(D)
    };
    o.each({
        parent: function (F) {
            return F.parentNode
        },
        parents: function (F) {
            return o.dir(F, "parentNode")
        },
        next: function (F) {
            return o.nth(F, 2, "nextSibling")
        },
        prev: function (F) {
            return o.nth(F, 2, "previousSibling")
        },
        nextAll: function (F) {
            return o.dir(F, "nextSibling")
        },
        prevAll: function (F) {
            return o.dir(F, "previousSibling")
        },
        siblings: function (F) {
            return o.sibling(F.parentNode.firstChild, F)
        },
        children: function (F) {
            return o.sibling(F.firstChild)
        },
        contents: function (F) {
            return o.nodeName(F, "iframe") ? F.contentDocument || F.contentWindow.document : o.makeArray(F.childNodes)
        }
    }, function (F, G) {
        o.fn[F] = function (H) {
            var I = o.map(this, G);
            if (H && typeof H == "string") {
                I = o.multiFilter(H, I)
            }
            return this.pushStack(o.unique(I), F, H)
        }
    });
    o.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function (F, G) {
        o.fn[F] = function (H) {
            var K = [],
                M = o(H);
            for (var L = 0, I = M.length; L < I; L++) {
                var J = (L > 0 ? this.clone(true) : this).get();
                o.fn[G].apply(o(M[L]), J);
                K = K.concat(J)
            }
            return this.pushStack(K, F, H)
        }
    });
    o.each({
        removeAttr: function (F) {
            o.attr(this, F, "");
            if (this.nodeType == 1) {
                this.removeAttribute(F)
            }
        },
        addClass: function (F) {
            o.className.add(this, F)
        },
        removeClass: function (F) {
            o.className.remove(this, F)
        },
        toggleClass: function (G, F) {
            if (typeof F !== "boolean") {
                F = !o.className.has(this, G)
            }
            o.className[F ? "add" : "remove"](this, G)
        },
        remove: function (F) {
            if (!F || o.filter(F, [this]).length) {
                o("*", this).add([this]).each(function () {
                    o.event.remove(this);
                    o.removeData(this)
                });
                if (this.parentNode) {
                    this.parentNode.removeChild(this)
                }
            }
        },
        empty: function () {
            o(this).children().remove();
            while (this.firstChild) {
                this.removeChild(this.firstChild)
            }
        }
    }, function (F, G) {
        o.fn[F] = function () {
            return this.each(G, arguments)
        }
    });

    function j(F, G) {
        return F[0] && parseInt(o.curCSS(F[0], G, true), 10) || 0
    }
    var h = "jQuery" + e(),
        w = 0,
        B = {};
    o.extend({
        cache: {},
        data: function (G, F, H) {
            G = G == l ? B : G;
            var I = G[h];
            if (!I) {
                I = G[h] = ++w
            }
            if (F && !o.cache[I]) {
                o.cache[I] = {}
            }
            if (H !== g) {
                o.cache[I][F] = H
            }
            return F ? o.cache[I][F] : I
        },
        removeData: function (G, F) {
            G = G == l ? B : G;
            var I = G[h];
            if (F) {
                if (o.cache[I]) {
                    delete o.cache[I][F];
                    F = "";
                    for (F in o.cache[I]) {
                        break
                    }
                    if (!F) {
                        o.removeData(G)
                    }
                }
            } else {
                try {
                    delete G[h]
                } catch (H) {
                    if (G.removeAttribute) {
                        G.removeAttribute(h)
                    }
                }
                delete o.cache[I]
            }
        },
        queue: function (G, F, I) {
            if (G) {
                F = (F || "fx") + "queue";
                var H = o.data(G, F);
                if (!H || o.isArray(I)) {
                    H = o.data(G, F, o.makeArray(I))
                } else {
                    if (I) {
                        H.push(I)
                    }
                }
            }
            return H
        },
        dequeue: function (I, H) {
            var F = o.queue(I, H),
                G = F.shift();
            if (!H || H === "fx") {
                G = F[0]
            }
            if (G !== g) {
                G.call(I)
            }
        }
    });
    o.fn.extend({
        data: function (F, H) {
            var I = F.split(".");
            I[1] = I[1] ? "." + I[1] : "";
            if (H === g) {
                var G = this.triggerHandler("getData" + I[1] + "!", [I[0]]);
                if (G === g && this.length) {
                    G = o.data(this[0], F)
                }
                return G === g && I[1] ? this.data(I[0]) : G
            } else {
                return this.trigger("setData" + I[1] + "!", [I[0], H]).each(function () {
                    o.data(this, F, H)
                })
            }
        },
        removeData: function (F) {
            return this.each(function () {
                o.removeData(this, F)
            })
        },
        queue: function (F, G) {
            if (typeof F !== "string") {
                G = F;
                F = "fx"
            }
            if (G === g) {
                return o.queue(this[0], F)
            }
            return this.each(function () {
                var H = o.queue(this, F, G);
                if (F == "fx" && H.length == 1) {
                    H[0].call(this)
                }
            })
        },
        dequeue: function (F) {
            return this.each(function () {
                o.dequeue(this, F)
            })
        }
    });
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
    (function () {
        var S = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
            M = 0,
            I = Object.prototype.toString;
        var G = function (Z, V, ac, ad) {
            ac = ac || [];
            V = V || document;
            if (V.nodeType !== 1 && V.nodeType !== 9) {
                return []
            }
            if (!Z || typeof Z !== "string") {
                return ac
            }
            var aa = [],
                X, ag, aj, U, ae, W, Y = true;
            S.lastIndex = 0;
            while ((X = S.exec(Z)) !== null) {
                aa.push(X[1]);
                if (X[2]) {
                    W = RegExp.rightContext;
                    break
                }
            }
            if (aa.length > 1 && N.exec(Z)) {
                if (aa.length === 2 && J.relative[aa[0]]) {
                    ag = K(aa[0] + aa[1], V)
                } else {
                    ag = J.relative[aa[0]] ? [V] : G(aa.shift(), V);
                    while (aa.length) {
                        Z = aa.shift();
                        if (J.relative[Z]) {
                            Z += aa.shift()
                        }
                        ag = K(Z, ag)
                    }
                }
            } else {
                var af = ad ? {
                    expr: aa.pop(),
                    set: F(ad)
                } : G.find(aa.pop(), aa.length === 1 && V.parentNode ? V.parentNode : V, R(V));
                ag = G.filter(af.expr, af.set);
                if (aa.length > 0) {
                    aj = F(ag)
                } else {
                    Y = false
                }
                while (aa.length) {
                    var ai = aa.pop(),
                        ah = ai;
                    if (!J.relative[ai]) {
                        ai = ""
                    } else {
                        ah = aa.pop()
                    }
                    if (ah == null) {
                        ah = V
                    }
                    J.relative[ai](aj, ah, R(V))
                }
            }
            if (!aj) {
                aj = ag
            }
            if (!aj) {
                throw "Syntax error, unrecognized expression: " + (ai || Z)
            }
            if (I.call(aj) === "[object Array]") {
                if (!Y) {
                    ac.push.apply(ac, aj)
                } else {
                    if (V.nodeType === 1) {
                        for (var ab = 0; aj[ab] != null; ab++) {
                            if (aj[ab] && (aj[ab] === true || aj[ab].nodeType === 1 && L(V, aj[ab]))) {
                                ac.push(ag[ab])
                            }
                        }
                    } else {
                        for (var ab = 0; aj[ab] != null; ab++) {
                            if (aj[ab] && aj[ab].nodeType === 1) {
                                ac.push(ag[ab])
                            }
                        }
                    }
                }
            } else {
                F(aj, ac)
            }
            if (W) {
                G(W, V, ac, ad);
                if (H) {
                    hasDuplicate = false;
                    ac.sort(H);
                    if (hasDuplicate) {
                        for (var ab = 1; ab < ac.length; ab++) {
                            if (ac[ab] === ac[ab - 1]) {
                                ac.splice(ab--, 1)
                            }
                        }
                    }
                }
            }
            return ac
        };
        G.matches = function (U, V) {
            return G(U, null, null, V)
        };
        G.find = function (ab, U, ac) {
            var aa, Y;
            if (!ab) {
                return []
            }
            for (var X = 0, W = J.order.length; X < W; X++) {
                var Z = J.order[X],
                    Y;
                if ((Y = J.match[Z].exec(ab))) {
                    var V = RegExp.leftContext;
                    if (V.substr(V.length - 1) !== "\\") {
                        Y[1] = (Y[1] || "").replace(/\\/g, "");
                        aa = J.find[Z](Y, U, ac);
                        if (aa != null) {
                            ab = ab.replace(J.match[Z], "");
                            break
                        }
                    }
                }
            }
            if (!aa) {
                aa = U.getElementsByTagName("*")
            }
            return {
                set: aa,
                expr: ab
            }
        };
        G.filter = function (ae, ad, ah, X) {
            var W = ae,
                aj = [],
                ab = ad,
                Z, U, aa = ad && ad[0] && R(ad[0]);
            while (ae && ad.length) {
                for (var ac in J.filter) {
                    if ((Z = J.match[ac].exec(ae)) != null) {
                        var V = J.filter[ac],
                            ai, ag;
                        U = false;
                        if (ab == aj) {
                            aj = []
                        }
                        if (J.preFilter[ac]) {
                            Z = J.preFilter[ac](Z, ab, ah, aj, X, aa);
                            if (!Z) {
                                U = ai = true
                            } else {
                                if (Z === true) {
                                    continue
                                }
                            }
                        }
                        if (Z) {
                            for (var Y = 0;
                            (ag = ab[Y]) != null; Y++) {
                                if (ag) {
                                    ai = V(ag, Z, Y, ab);
                                    var af = X ^ !! ai;
                                    if (ah && ai != null) {
                                        if (af) {
                                            U = true
                                        } else {
                                            ab[Y] = false
                                        }
                                    } else {
                                        if (af) {
                                            aj.push(ag);
                                            U = true
                                        }
                                    }
                                }
                            }
                        }
                        if (ai !== g) {
                            if (!ah) {
                                ab = aj
                            }
                            ae = ae.replace(J.match[ac], "");
                            if (!U) {
                                return []
                            }
                            break
                        }
                    }
                }
                if (ae == W) {
                    if (U == null) {
                        throw "Syntax error, unrecognized expression: " + ae
                    } else {
                        break
                    }
                }
                W = ae
            }
            return ab
        };
        var J = G.selectors = {
            order: ["ID", "NAME", "TAG"],
            match: {
                ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
                ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
                TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
                CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
                POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
                PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
            },
            attrMap: {
                "class": "className",
                "for": "htmlFor"
            },
            attrHandle: {
                href: function (U) {
                    return U.getAttribute("href")
                }
            },
            relative: {
                "+": function (ab, U, aa) {
                    var Y = typeof U === "string",
                        ac = Y && !/\W/.test(U),
                        Z = Y && !ac;
                    if (ac && !aa) {
                        U = U.toUpperCase()
                    }
                    for (var X = 0, W = ab.length, V; X < W; X++) {
                        if ((V = ab[X])) {
                            while ((V = V.previousSibling) && V.nodeType !== 1) {}
                            ab[X] = Z || V && V.nodeName === U ? V || false : V === U
                        }
                    }
                    if (Z) {
                        G.filter(U, ab, true)
                    }
                },
                ">": function (aa, V, ab) {
                    var Y = typeof V === "string";
                    if (Y && !/\W/.test(V)) {
                        V = ab ? V : V.toUpperCase();
                        for (var W = 0, U = aa.length; W < U; W++) {
                            var Z = aa[W];
                            if (Z) {
                                var X = Z.parentNode;
                                aa[W] = X.nodeName === V ? X : false
                            }
                        }
                    } else {
                        for (var W = 0, U = aa.length; W < U; W++) {
                            var Z = aa[W];
                            if (Z) {
                                aa[W] = Y ? Z.parentNode : Z.parentNode === V
                            }
                        }
                        if (Y) {
                            G.filter(V, aa, true)
                        }
                    }
                },
                "": function (X, V, Z) {
                    var W = M++,
                        U = T;
                    if (!V.match(/\W/)) {
                        var Y = V = Z ? V : V.toUpperCase();
                        U = Q
                    }
                    U("parentNode", V, W, X, Y, Z)
                },
                "~": function (X, V, Z) {
                    var W = M++,
                        U = T;
                    if (typeof V === "string" && !V.match(/\W/)) {
                        var Y = V = Z ? V : V.toUpperCase();
                        U = Q
                    }
                    U("previousSibling", V, W, X, Y, Z)
                }
            },
            find: {
                ID: function (V, W, X) {
                    if (typeof W.getElementById !== "undefined" && !X) {
                        var U = W.getElementById(V[1]);
                        return U ? [U] : []
                    }
                },
                NAME: function (W, Z, aa) {
                    if (typeof Z.getElementsByName !== "undefined") {
                        var V = [],
                            Y = Z.getElementsByName(W[1]);
                        for (var X = 0, U = Y.length; X < U; X++) {
                            if (Y[X].getAttribute("name") === W[1]) {
                                V.push(Y[X])
                            }
                        }
                        return V.length === 0 ? null : V
                    }
                },
                TAG: function (U, V) {
                    return V.getElementsByTagName(U[1])
                }
            },
            preFilter: {
                CLASS: function (X, V, W, U, aa, ab) {
                    X = " " + X[1].replace(/\\/g, "") + " ";
                    if (ab) {
                        return X
                    }
                    for (var Y = 0, Z;
                    (Z = V[Y]) != null; Y++) {
                        if (Z) {
                            if (aa ^ (Z.className && (" " + Z.className + " ").indexOf(X) >= 0)) {
                                if (!W) {
                                    U.push(Z)
                                }
                            } else {
                                if (W) {
                                    V[Y] = false
                                }
                            }
                        }
                    }
                    return false
                },
                ID: function (U) {
                    return U[1].replace(/\\/g, "")
                },
                TAG: function (V, U) {
                    for (var W = 0; U[W] === false; W++) {}
                    return U[W] && R(U[W]) ? V[1] : V[1].toUpperCase()
                },
                CHILD: function (U) {
                    if (U[1] == "nth") {
                        var V = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(U[2] == "even" && "2n" || U[2] == "odd" && "2n+1" || !/\D/.test(U[2]) && "0n+" + U[2] || U[2]);
                        U[2] = (V[1] + (V[2] || 1)) - 0;
                        U[3] = V[3] - 0
                    }
                    U[0] = M++;
                    return U
                },
                ATTR: function (Y, V, W, U, Z, aa) {
                    var X = Y[1].replace(/\\/g, "");
                    if (!aa && J.attrMap[X]) {
                        Y[1] = J.attrMap[X]
                    }
                    if (Y[2] === "~=") {
                        Y[4] = " " + Y[4] + " "
                    }
                    return Y
                },
                PSEUDO: function (Y, V, W, U, Z) {
                    if (Y[1] === "not") {
                        if (Y[3].match(S).length > 1 || /^\w/.test(Y[3])) {
                            Y[3] = G(Y[3], null, null, V)
                        } else {
                            var X = G.filter(Y[3], V, W, true ^ Z);
                            if (!W) {
                                U.push.apply(U, X)
                            }
                            return false
                        }
                    } else {
                        if (J.match.POS.test(Y[0]) || J.match.CHILD.test(Y[0])) {
                            return true
                        }
                    }
                    return Y
                },
                POS: function (U) {
                    U.unshift(true);
                    return U
                }
            },
            filters: {
                enabled: function (U) {
                    return U.disabled === false && U.type !== "hidden"
                },
                disabled: function (U) {
                    return U.disabled === true
                },
                checked: function (U) {
                    return U.checked === true
                },
                selected: function (U) {
                    U.parentNode.selectedIndex;
                    return U.selected === true
                },
                parent: function (U) {
                    return !!U.firstChild
                },
                empty: function (U) {
                    return !U.firstChild
                },
                has: function (W, V, U) {
                    return !!G(U[3], W).length
                },
                header: function (U) {
                    return /h\d/i.test(U.nodeName)
                },
                text: function (U) {
                    return "text" === U.type
                },
                radio: function (U) {
                    return "radio" === U.type
                },
                checkbox: function (U) {
                    return "checkbox" === U.type
                },
                file: function (U) {
                    return "file" === U.type
                },
                password: function (U) {
                    return "password" === U.type
                },
                submit: function (U) {
                    return "submit" === U.type
                },
                image: function (U) {
                    return "image" === U.type
                },
                reset: function (U) {
                    return "reset" === U.type
                },
                button: function (U) {
                    return "button" === U.type || U.nodeName.toUpperCase() === "BUTTON"
                },
                input: function (U) {
                    return /input|select|textarea|button/i.test(U.nodeName)
                }
            },
            setFilters: {
                first: function (V, U) {
                    return U === 0
                },
                last: function (W, V, U, X) {
                    return V === X.length - 1
                },
                even: function (V, U) {
                    return U % 2 === 0
                },
                odd: function (V, U) {
                    return U % 2 === 1
                },
                lt: function (W, V, U) {
                    return V < U[3] - 0
                },
                gt: function (W, V, U) {
                    return V > U[3] - 0
                },
                nth: function (W, V, U) {
                    return U[3] - 0 == V
                },
                eq: function (W, V, U) {
                    return U[3] - 0 == V
                }
            },
            filter: {
                PSEUDO: function (aa, W, X, ab) {
                    var V = W[1],
                        Y = J.filters[V];
                    if (Y) {
                        return Y(aa, X, W, ab)
                    } else {
                        if (V === "contains") {
                            return (aa.textContent || aa.innerText || "").indexOf(W[3]) >= 0
                        } else {
                            if (V === "not") {
                                var Z = W[3];
                                for (var X = 0, U = Z.length; X < U; X++) {
                                    if (Z[X] === aa) {
                                        return false
                                    }
                                }
                                return true
                            }
                        }
                    }
                },
                CHILD: function (U, X) {
                    var aa = X[1],
                        V = U;
                    switch (aa) {
                    case "only":
                    case "first":
                        while (V = V.previousSibling) {
                            if (V.nodeType === 1) {
                                return false
                            }
                        }
                        if (aa == "first") {
                            return true
                        }
                        V = U;
                    case "last":
                        while (V = V.nextSibling) {
                            if (V.nodeType === 1) {
                                return false
                            }
                        }
                        return true;
                    case "nth":
                        var W = X[2],
                            ad = X[3];
                        if (W == 1 && ad == 0) {
                            return true
                        }
                        var Z = X[0],
                            ac = U.parentNode;
                        if (ac && (ac.sizcache !== Z || !U.nodeIndex)) {
                            var Y = 0;
                            for (V = ac.firstChild; V; V = V.nextSibling) {
                                if (V.nodeType === 1) {
                                    V.nodeIndex = ++Y
                                }
                            }
                            ac.sizcache = Z
                        }
                        var ab = U.nodeIndex - ad;
                        if (W == 0) {
                            return ab == 0
                        } else {
                            return (ab % W == 0 && ab / W >= 0)
                        }
                    }
                },
                ID: function (V, U) {
                    return V.nodeType === 1 && V.getAttribute("id") === U
                },
                TAG: function (V, U) {
                    return (U === "*" && V.nodeType === 1) || V.nodeName === U
                },
                CLASS: function (V, U) {
                    return (" " + (V.className || V.getAttribute("class")) + " ").indexOf(U) > -1
                },
                ATTR: function (Z, X) {
                    var W = X[1],
                        U = J.attrHandle[W] ? J.attrHandle[W](Z) : Z[W] != null ? Z[W] : Z.getAttribute(W),
                        aa = U + "",
                        Y = X[2],
                        V = X[4];
                    return U == null ? Y === "!=" : Y === "=" ? aa === V : Y === "*=" ? aa.indexOf(V) >= 0 : Y === "~=" ? (" " + aa + " ").indexOf(V) >= 0 : !V ? aa && U !== false : Y === "!=" ? aa != V : Y === "^=" ? aa.indexOf(V) === 0 : Y === "$=" ? aa.substr(aa.length - V.length) === V : Y === "|=" ? aa === V || aa.substr(0, V.length + 1) === V + "-" : false
                },
                POS: function (Y, V, W, Z) {
                    var U = V[2],
                        X = J.setFilters[U];
                    if (X) {
                        return X(Y, W, V, Z)
                    }
                }
            }
        };
        var N = J.match.POS;
        for (var P in J.match) {
            J.match[P] = RegExp(J.match[P].source + /(?![^\[]*\])(?![^\(]*\))/.source)
        }
        var F = function (V, U) {
            V = Array.prototype.slice.call(V);
            if (U) {
                U.push.apply(U, V);
                return U
            }
            return V
        };
        try {
            Array.prototype.slice.call(document.documentElement.childNodes)
        } catch (O) {
            F = function (Y, X) {
                var V = X || [];
                if (I.call(Y) === "[object Array]") {
                    Array.prototype.push.apply(V, Y)
                } else {
                    if (typeof Y.length === "number") {
                        for (var W = 0, U = Y.length; W < U; W++) {
                            V.push(Y[W])
                        }
                    } else {
                        for (var W = 0; Y[W]; W++) {
                            V.push(Y[W])
                        }
                    }
                }
                return V
            }
        }
        var H;
        if (document.documentElement.compareDocumentPosition) {
            H = function (V, U) {
                var W = V.compareDocumentPosition(U) & 4 ? -1 : V === U ? 0 : 1;
                if (W === 0) {
                    hasDuplicate = true
                }
                return W
            }
        } else {
            if ("sourceIndex" in document.documentElement) {
                H = function (V, U) {
                    var W = V.sourceIndex - U.sourceIndex;
                    if (W === 0) {
                        hasDuplicate = true
                    }
                    return W
                }
            } else {
                if (document.createRange) {
                    H = function (X, V) {
                        var W = X.ownerDocument.createRange(),
                            U = V.ownerDocument.createRange();
                        W.selectNode(X);
                        W.collapse(true);
                        U.selectNode(V);
                        U.collapse(true);
                        var Y = W.compareBoundaryPoints(Range.START_TO_END, U);
                        if (Y === 0) {
                            hasDuplicate = true
                        }
                        return Y
                    }
                }
            }
        }(function () {
            var V = document.createElement("form"),
                W = "script" + (new Date).getTime();
            V.innerHTML = "<input name='" + W + "'/>";
            var U = document.documentElement;
            U.insertBefore(V, U.firstChild);
            if ( !! document.getElementById(W)) {
                J.find.ID = function (Y, Z, aa) {
                    if (typeof Z.getElementById !== "undefined" && !aa) {
                        var X = Z.getElementById(Y[1]);
                        return X ? X.id === Y[1] || typeof X.getAttributeNode !== "undefined" && X.getAttributeNode("id").nodeValue === Y[1] ? [X] : g : []
                    }
                };
                J.filter.ID = function (Z, X) {
                    var Y = typeof Z.getAttributeNode !== "undefined" && Z.getAttributeNode("id");
                    return Z.nodeType === 1 && Y && Y.nodeValue === X
                }
            }
            U.removeChild(V)
        })();
        (function () {
            var U = document.createElement("div");
            U.appendChild(document.createComment(""));
            if (U.getElementsByTagName("*").length > 0) {
                J.find.TAG = function (V, Z) {
                    var Y = Z.getElementsByTagName(V[1]);
                    if (V[1] === "*") {
                        var X = [];
                        for (var W = 0; Y[W]; W++) {
                            if (Y[W].nodeType === 1) {
                                X.push(Y[W])
                            }
                        }
                        Y = X
                    }
                    return Y
                }
            }
            U.innerHTML = "<a href='#'></a>";
            if (U.firstChild && typeof U.firstChild.getAttribute !== "undefined" && U.firstChild.getAttribute("href") !== "#") {
                J.attrHandle.href = function (V) {
                    return V.getAttribute("href", 2)
                }
            }
        })();
        if (document.querySelectorAll) {
            (function () {
                var U = G,
                    V = document.createElement("div");
                V.innerHTML = "<p class='TEST'></p>";
                if (V.querySelectorAll && V.querySelectorAll(".TEST").length === 0) {
                    return
                }
                G = function (Z, Y, W, X) {
                    Y = Y || document;
                    if (!X && Y.nodeType === 9 && !R(Y)) {
                        try {
                            return F(Y.querySelectorAll(Z), W)
                        } catch (aa) {}
                    }
                    return U(Z, Y, W, X)
                };
                G.find = U.find;
                G.filter = U.filter;
                G.selectors = U.selectors;
                G.matches = U.matches
            })()
        }
        if (document.getElementsByClassName && document.documentElement.getElementsByClassName) {
            (function () {
                var U = document.createElement("div");
                U.innerHTML = "<div class='test e'></div><div class='test'></div>";
                if (U.getElementsByClassName("e").length === 0) {
                    return
                }
                U.lastChild.className = "e";
                if (U.getElementsByClassName("e").length === 1) {
                    return
                }
                J.order.splice(1, 0, "CLASS");
                J.find.CLASS = function (V, W, X) {
                    if (typeof W.getElementsByClassName !== "undefined" && !X) {
                        return W.getElementsByClassName(V[1])
                    }
                }
            })()
        }
        function Q(V, aa, Z, ae, ab, ad) {
            var ac = V == "previousSibling" && !ad;
            for (var X = 0, W = ae.length; X < W; X++) {
                var U = ae[X];
                if (U) {
                    if (ac && U.nodeType === 1) {
                        U.sizcache = Z;
                        U.sizset = X
                    }
                    U = U[V];
                    var Y = false;
                    while (U) {
                        if (U.sizcache === Z) {
                            Y = ae[U.sizset];
                            break
                        }
                        if (U.nodeType === 1 && !ad) {
                            U.sizcache = Z;
                            U.sizset = X
                        }
                        if (U.nodeName === aa) {
                            Y = U;
                            break
                        }
                        U = U[V]
                    }
                    ae[X] = Y
                }
            }
        }
        function T(V, aa, Z, ae, ab, ad) {
            var ac = V == "previousSibling" && !ad;
            for (var X = 0, W = ae.length; X < W; X++) {
                var U = ae[X];
                if (U) {
                    if (ac && U.nodeType === 1) {
                        U.sizcache = Z;
                        U.sizset = X
                    }
                    U = U[V];
                    var Y = false;
                    while (U) {
                        if (U.sizcache === Z) {
                            Y = ae[U.sizset];
                            break
                        }
                        if (U.nodeType === 1) {
                            if (!ad) {
                                U.sizcache = Z;
                                U.sizset = X
                            }
                            if (typeof aa !== "string") {
                                if (U === aa) {
                                    Y = true;
                                    break
                                }
                            } else {
                                if (G.filter(aa, [U]).length > 0) {
                                    Y = U;
                                    break
                                }
                            }
                        }
                        U = U[V]
                    }
                    ae[X] = Y
                }
            }
        }
        var L = document.compareDocumentPosition ?
        function (V, U) {
            return V.compareDocumentPosition(U) & 16
        } : function (V, U) {
            return V !== U && (V.contains ? V.contains(U) : true)
        };
        var R = function (U) {
            return U.nodeType === 9 && U.documentElement.nodeName !== "HTML" || !! U.ownerDocument && R(U.ownerDocument)
        };
        var K = function (U, ab) {
            var X = [],
                Y = "",
                Z, W = ab.nodeType ? [ab] : ab;
            while ((Z = J.match.PSEUDO.exec(U))) {
                Y += Z[0];
                U = U.replace(J.match.PSEUDO, "")
            }
            U = J.relative[U] ? U + "*" : U;
            for (var aa = 0, V = W.length; aa < V; aa++) {
                G(U, W[aa], X)
            }
            return G.filter(Y, X)
        };
        o.find = G;
        o.filter = G.filter;
        o.expr = G.selectors;
        o.expr[":"] = o.expr.filters;
        G.selectors.filters.hidden = function (U) {
            return U.offsetWidth === 0 || U.offsetHeight === 0
        };
        G.selectors.filters.visible = function (U) {
            return U.offsetWidth > 0 || U.offsetHeight > 0
        };
        G.selectors.filters.animated = function (U) {
            return o.grep(o.timers, function (V) {
                return U === V.elem
            }).length
        };
        o.multiFilter = function (W, U, V) {
            if (V) {
                W = ":not(" + W + ")"
            }
            return G.matches(W, U)
        };
        o.dir = function (W, V) {
            var U = [],
                X = W[V];
            while (X && X != document) {
                if (X.nodeType == 1) {
                    U.push(X)
                }
                X = X[V]
            }
            return U
        };
        o.nth = function (Y, U, W, X) {
            U = U || 1;
            var V = 0;
            for (; Y; Y = Y[W]) {
                if (Y.nodeType == 1 && ++V == U) {
                    break
                }
            }
            return Y
        };
        o.sibling = function (W, V) {
            var U = [];
            for (; W; W = W.nextSibling) {
                if (W.nodeType == 1 && W != V) {
                    U.push(W)
                }
            }
            return U
        };
        return;
        l.Sizzle = G
    })();
    o.event = {
        add: function (J, G, I, L) {
            if (J.nodeType == 3 || J.nodeType == 8) {
                return
            }
            if (J.setInterval && J != l) {
                J = l
            }
            if (!I.guid) {
                I.guid = this.guid++
            }
            if (L !== g) {
                var H = I;
                I = this.proxy(H);
                I.data = L
            }
            var F = o.data(J, "events") || o.data(J, "events", {}),
                K = o.data(J, "handle") || o.data(J, "handle", function () {
                    return typeof o !== "undefined" && !o.event.triggered ? o.event.handle.apply(arguments.callee.elem, arguments) : g
                });
            K.elem = J;
            o.each(G.split(/\s+/), function (N, O) {
                var P = O.split(".");
                O = P.shift();
                I.type = P.slice().sort().join(".");
                var M = F[O];
                if (o.event.specialAll[O]) {
                    o.event.specialAll[O].setup.call(J, L, P)
                }
                if (!M) {
                    M = F[O] = {};
                    if (!o.event.special[O] || o.event.special[O].setup.call(J, L, P) === false) {
                        if (J.addEventListener) {
                            J.addEventListener(O, K, false)
                        } else {
                            if (J.attachEvent) {
                                J.attachEvent("on" + O, K)
                            }
                        }
                    }
                }
                M[I.guid] = I;
                o.event.global[O] = true
            });
            J = null
        },
        guid: 1,
        global: {},
        remove: function (L, I, K) {
            if (L.nodeType == 3 || L.nodeType == 8) {
                return
            }
            var H = o.data(L, "events"),
                G, F;
            if (H) {
                if (I === g || (typeof I === "string" && I.charAt(0) == ".")) {
                    for (var J in H) {
                        this.remove(L, J + (I || ""))
                    }
                } else {
                    if (I.type) {
                        K = I.handler;
                        I = I.type
                    }
                    o.each(I.split(/\s+/), function (N, P) {
                        var R = P.split(".");
                        P = R.shift();
                        var O = RegExp("(^|\\.)" + R.slice().sort().join(".*\\.") + "(\\.|$)");
                        if (H[P]) {
                            if (K) {
                                delete H[P][K.guid]
                            } else {
                                for (var Q in H[P]) {
                                    if (O.test(H[P][Q].type)) {
                                        delete H[P][Q]
                                    }
                                }
                            }
                            if (o.event.specialAll[P]) {
                                o.event.specialAll[P].teardown.call(L, R)
                            }
                            for (G in H[P]) {
                                break
                            }
                            if (!G) {
                                if (!o.event.special[P] || o.event.special[P].teardown.call(L, R) === false) {
                                    if (L.removeEventListener) {
                                        L.removeEventListener(P, o.data(L, "handle"), false)
                                    } else {
                                        if (L.detachEvent) {
                                            L.detachEvent("on" + P, o.data(L, "handle"))
                                        }
                                    }
                                }
                                G = null;
                                delete H[P]
                            }
                        }
                    })
                }
                for (G in H) {
                    break
                }
                if (!G) {
                    var M = o.data(L, "handle");
                    if (M) {
                        M.elem = null
                    }
                    o.removeData(L, "events");
                    o.removeData(L, "handle")
                }
            }
        },
        trigger: function (J, L, I, F) {
            var H = J.type || J;
            if (!F) {
                J = typeof J === "object" ? J[h] ? J : o.extend(o.Event(H), J) : o.Event(H);
                if (H.indexOf("!") >= 0) {
                    J.type = H = H.slice(0, -1);
                    J.exclusive = true
                }
                if (!I) {
                    J.stopPropagation();
                    if (this.global[H]) {
                        o.each(o.cache, function () {
                            if (this.events && this.events[H]) {
                                o.event.trigger(J, L, this.handle.elem)
                            }
                        })
                    }
                }
                if (!I || I.nodeType == 3 || I.nodeType == 8) {
                    return g
                }
                J.result = g;
                J.target = I;
                L = o.makeArray(L);
                L.unshift(J)
            }
            J.currentTarget = I;
            var K = o.data(I, "handle");
            if (K) {
                K.apply(I, L)
            }
            if ((!I[H] || (o.nodeName(I, "a") && H == "click")) && I["on" + H] && I["on" + H].apply(I, L) === false) {
                J.result = false
            }
            if (!F && I[H] && !J.isDefaultPrevented() && !(o.nodeName(I, "a") && H == "click")) {
                this.triggered = true;
                try {
                    I[H]()
                } catch (M) {}
            }
            this.triggered = false;
            if (!J.isPropagationStopped()) {
                var G = I.parentNode || I.ownerDocument;
                if (G) {
                    o.event.trigger(J, L, G, true)
                }
            }
        },
        handle: function (L) {
            var K, F;
            L = arguments[0] = o.event.fix(L || l.event);
            L.currentTarget = this;
            var M = L.type.split(".");
            L.type = M.shift();
            K = !M.length && !L.exclusive;
            var J = RegExp("(^|\\.)" + M.slice().sort().join(".*\\.") + "(\\.|$)");
            F = (o.data(this, "events") || {})[L.type];
            for (var H in F) {
                var I = F[H];
                if (K || J.test(I.type)) {
                    L.handler = I;
                    L.data = I.data;
                    var G = I.apply(this, arguments);
                    if (G !== g) {
                        L.result = G;
                        if (G === false) {
                            L.preventDefault();
                            L.stopPropagation()
                        }
                    }
                    if (L.isImmediatePropagationStopped()) {
                        break
                    }
                }
            }
        },
        props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
        fix: function (I) {
            if (I[h]) {
                return I
            }
            var G = I;
            I = o.Event(G);
            for (var H = this.props.length, K; H;) {
                K = this.props[--H];
                I[K] = G[K]
            }
            if (!I.target) {
                I.target = I.srcElement || document
            }
            if (I.target.nodeType == 3) {
                I.target = I.target.parentNode
            }
            if (!I.relatedTarget && I.fromElement) {
                I.relatedTarget = I.fromElement == I.target ? I.toElement : I.fromElement
            }
            if (I.pageX == null && I.clientX != null) {
                var J = document.documentElement,
                    F = document.body;
                I.pageX = I.clientX + (J && J.scrollLeft || F && F.scrollLeft || 0) - (J.clientLeft || 0);
                I.pageY = I.clientY + (J && J.scrollTop || F && F.scrollTop || 0) - (J.clientTop || 0)
            }
            if (!I.which && ((I.charCode || I.charCode === 0) ? I.charCode : I.keyCode)) {
                I.which = I.charCode || I.keyCode
            }
            if (!I.metaKey && I.ctrlKey) {
                I.metaKey = I.ctrlKey
            }
            if (!I.which && I.button) {
                I.which = (I.button & 1 ? 1 : (I.button & 2 ? 3 : (I.button & 4 ? 2 : 0)))
            }
            return I
        },
        proxy: function (G, F) {
            F = F ||
            function () {
                return G.apply(this, arguments)
            };
            F.guid = G.guid = G.guid || F.guid || this.guid++;
            return F
        },
        special: {
            ready: {
                setup: C,
                teardown: function () {}
            }
        },
        specialAll: {
            live: {
                setup: function (F, G) {
                    o.event.add(this, G[0], c)
                },
                teardown: function (H) {
                    if (H.length) {
                        var F = 0,
                            G = RegExp("(^|\\.)" + H[0] + "(\\.|$)");
                        o.each((o.data(this, "events").live || {}), function () {
                            if (G.test(this.type)) {
                                F++
                            }
                        });
                        if (F < 1) {
                            o.event.remove(this, H[0], c)
                        }
                    }
                }
            }
        }
    };
    o.Event = function (F) {
        if (!this.preventDefault) {
            return new o.Event(F)
        }
        if (F && F.type) {
            this.originalEvent = F;
            this.type = F.type
        } else {
            this.type = F
        }
        this.timeStamp = e();
        this[h] = true
    };

    function k() {
        return false
    }
    function v() {
        return true
    }
    o.Event.prototype = {
        preventDefault: function () {
            this.isDefaultPrevented = v;
            var F = this.originalEvent;
            if (!F) {
                return
            }
            if (F.preventDefault) {
                F.preventDefault()
            }
            F.returnValue = false
        },
        stopPropagation: function () {
            this.isPropagationStopped = v;
            var F = this.originalEvent;
            if (!F) {
                return
            }
            if (F.stopPropagation) {
                F.stopPropagation()
            }
            F.cancelBubble = true
        },
        stopImmediatePropagation: function () {
            this.isImmediatePropagationStopped = v;
            this.stopPropagation()
        },
        isDefaultPrevented: k,
        isPropagationStopped: k,
        isImmediatePropagationStopped: k
    };
    var a = function (G) {
        var F = G.relatedTarget;
        while (F && F != this) {
            try {
                F = F.parentNode
            } catch (H) {
                F = this
            }
        }
        if (F != this) {
            G.type = G.data;
            o.event.handle.apply(this, arguments)
        }
    };
    o.each({
        mouseover: "mouseenter",
        mouseout: "mouseleave"
    }, function (G, F) {
        o.event.special[F] = {
            setup: function () {
                o.event.add(this, G, a, F)
            },
            teardown: function () {
                o.event.remove(this, G, a)
            }
        }
    });
    o.fn.extend({
        bind: function (G, H, F) {
            return G == "unload" ? this.one(G, H, F) : this.each(function () {
                o.event.add(this, G, F || H, F && H)
            })
        },
        one: function (H, I, G) {
            var F = o.event.proxy(G || I, function (J) {
                o(this).unbind(J, F);
                return (G || I).apply(this, arguments)
            });
            return this.each(function () {
                o.event.add(this, H, F, G && I)
            })
        },
        unbind: function (G, F) {
            return this.each(function () {
                o.event.remove(this, G, F)
            })
        },
        trigger: function (F, G) {
            return this.each(function () {
                o.event.trigger(F, G, this)
            })
        },
        triggerHandler: function (F, H) {
            if (this[0]) {
                var G = o.Event(F);
                G.preventDefault();
                G.stopPropagation();
                o.event.trigger(G, H, this[0]);
                return G.result
            }
        },
        toggle: function (H) {
            var F = arguments,
                G = 1;
            while (G < F.length) {
                o.event.proxy(H, F[G++])
            }
            return this.click(o.event.proxy(H, function (I) {
                this.lastToggle = (this.lastToggle || 0) % G;
                I.preventDefault();
                return F[this.lastToggle++].apply(this, arguments) || false
            }))
        },
        hover: function (F, G) {
            return this.mouseenter(F).mouseleave(G)
        },
        ready: function (F) {
            C();
            if (o.isReady) {
                F.call(document, o)
            } else {
                o.readyList.push(F)
            }
            return this
        },
        live: function (H, G) {
            var F = o.event.proxy(G);
            F.guid += this.selector + H;
            o(document).bind(i(H, this.selector), this.selector, F);
            return this
        },
        die: function (G, F) {
            o(document).unbind(i(G, this.selector), F ? {
                guid: F.guid + this.selector + G
            } : null);
            return this
        }
    });

    function c(I) {
        var F = RegExp("(^|\\.)" + I.type + "(\\.|$)"),
            H = true,
            G = [];
        o.each(o.data(this, "events").live || [], function (J, K) {
            if (F.test(K.type)) {
                var L = o(I.target).closest(K.data)[0];
                if (L) {
                    G.push({
                        elem: L,
                        fn: K
                    })
                }
            }
        });
        G.sort(function (K, J) {
            return o.data(K.elem, "closest") - o.data(J.elem, "closest")
        });
        o.each(G, function () {
            if (this.fn.call(this.elem, I, this.fn.data) === false) {
                return (H = false)
            }
        });
        return H
    }
    function i(G, F) {
        return ["live", G, F.replace(/\./g, "`").replace(/ /g, "|")].join(".")
    }
    o.extend({
        isReady: false,
        readyList: [],
        ready: function () {
            if (!o.isReady) {
                o.isReady = true;
                if (o.readyList) {
                    o.each(o.readyList, function () {
                        this.call(document, o)
                    });
                    o.readyList = null
                }
                o(document).triggerHandler("ready")
            }
        }
    });
    var y = false;

    function C() {
        if (y) {
            return
        }
        y = true;
        if (document.addEventListener) {
            document.addEventListener("DOMContentLoaded", function () {
                document.removeEventListener("DOMContentLoaded", arguments.callee, false);
                o.ready()
            }, false)
        } else {
            if (document.attachEvent) {
                document.attachEvent("onreadystatechange", function () {
                    if (document.readyState === "complete") {
                        document.detachEvent("onreadystatechange", arguments.callee);
                        o.ready()
                    }
                });
                if (document.documentElement.doScroll && l == l.top) {
                    (function () {
                        if (o.isReady) {
                            return
                        }
                        try {
                            document.documentElement.doScroll("left")
                        } catch (F) {
                            setTimeout(arguments.callee, 0);
                            return
                        }
                        o.ready()
                    })()
                }
            }
        }
        o.event.add(l, "load", o.ready)
    }
    o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","), function (G, F) {
        o.fn[F] = function (H) {
            return H ? this.bind(F, H) : this.trigger(F)
        }
    });
    o(l).bind("unload", function () {
        for (var F in o.cache) {
            if (F != 1 && o.cache[F].handle) {
                o.event.remove(o.cache[F].handle.elem)
            }
        }
    });
    (function () {
        o.support = {};
        var G = document.documentElement,
            H = document.createElement("script"),
            L = document.createElement("div"),
            K = "script" + (new Date).getTime();
        L.style.display = "none";
        L.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
        var I = L.getElementsByTagName("*"),
            F = L.getElementsByTagName("a")[0];
        if (!I || !I.length || !F) {
            return
        }
        o.support = {
            leadingWhitespace: L.firstChild.nodeType == 3,
            tbody: !L.getElementsByTagName("tbody").length,
            objectAll: !! L.getElementsByTagName("object")[0].getElementsByTagName("*").length,
            htmlSerialize: !! L.getElementsByTagName("link").length,
            style: /red/.test(F.getAttribute("style")),
            hrefNormalized: F.getAttribute("href") === "/a",
            opacity: F.style.opacity === "0.5",
            cssFloat: !! F.style.cssFloat,
            scriptEval: false,
            noCloneEvent: true,
            boxModel: null
        };
        H.type = "text/javascript";
        try {
            H.appendChild(document.createTextNode("window." + K + "=1;"))
        } catch (J) {}
        G.insertBefore(H, G.firstChild);
        if (l[K]) {
            o.support.scriptEval = true;
            delete l[K]
        }
        G.removeChild(H);
        if (L.attachEvent && L.fireEvent) {
            L.attachEvent("onclick", function () {
                o.support.noCloneEvent = false;
                L.detachEvent("onclick", arguments.callee)
            });
            L.cloneNode(true).fireEvent("onclick")
        }
        o(function () {
            var M = document.createElement("div");
            M.style.width = M.style.paddingLeft = "1px";
            document.body.appendChild(M);
            o.boxModel = o.support.boxModel = M.offsetWidth === 2;
            document.body.removeChild(M).style.display = "none"
        })
    })();
    var x = o.support.cssFloat ? "cssFloat" : "styleFloat";
    o.props = {
        "for": "htmlFor",
        "class": "className",
        "float": x,
        cssFloat: x,
        styleFloat: x,
        readonly: "readOnly",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        rowspan: "rowSpan",
        tabindex: "tabIndex"
    };
    o.fn.extend({
        _load: o.fn.load,
        load: function (H, K, L) {
            if (typeof H !== "string") {
                return this._load(H)
            }
            var J = H.indexOf(" ");
            if (J >= 0) {
                var F = H.slice(J, H.length);
                H = H.slice(0, J)
            }
            var I = "GET";
            if (K) {
                if (o.isFunction(K)) {
                    L = K;
                    K = null
                } else {
                    if (typeof K === "object") {
                        K = o.param(K);
                        I = "POST"
                    }
                }
            }
            var G = this;
            o.ajax({
                url: H,
                type: I,
                dataType: "html",
                data: K,
                complete: function (N, M) {
                    if (M == "success" || M == "notmodified") {
                        G.html(F ? o("<div/>").append(N.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(F) : N.responseText)
                    }
                    if (L) {
                        G.each(L, [N.responseText, M, N])
                    }
                }
            });
            return this
        },
        serialize: function () {
            return o.param(this.serializeArray())
        },
        serializeArray: function () {
            return this.map(function () {
                return this.elements ? o.makeArray(this.elements) : this
            }).filter(function () {
                return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password|search/i.test(this.type))
            }).map(function (F, G) {
                var H = o(this).val();
                return H == null ? null : o.isArray(H) ? o.map(H, function (J, I) {
                    return {
                        name: G.name,
                        value: J
                    }
                }) : {
                    name: G.name,
                    value: H
                }
            }).get()
        }
    });
    o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function (F, G) {
        o.fn[G] = function (H) {
            return this.bind(G, H)
        }
    });
    var s = e();
    o.extend({
        get: function (F, H, I, G) {
            if (o.isFunction(H)) {
                I = H;
                H = null
            }
            return o.ajax({
                type: "GET",
                url: F,
                data: H,
                success: I,
                dataType: G
            })
        },
        getScript: function (F, G) {
            return o.get(F, null, G, "script")
        },
        getJSON: function (F, G, H) {
            return o.get(F, G, H, "json")
        },
        post: function (F, H, I, G) {
            if (o.isFunction(H)) {
                I = H;
                H = {}
            }
            return o.ajax({
                type: "POST",
                url: F,
                data: H,
                success: I,
                dataType: G
            })
        },
        ajaxSetup: function (F) {
            o.extend(o.ajaxSettings, F)
        },
        ajaxSettings: {
            url: location.href,
            global: true,
            type: "GET",
            contentType: "application/x-www-form-urlencoded",
            processData: true,
            async: true,
            xhr: function () {
                return l.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest()
            },
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                script: "text/javascript, application/javascript",
                json: "application/json, text/javascript",
                text: "text/plain",
                _default: "*/*"
            }
        },
        lastModified: {},
        ajax: function (N) {
            N = o.extend(true, N, o.extend(true, {}, o.ajaxSettings, N));
            var X, G = /=\?(&|$)/g,
                S, W, H = N.type.toUpperCase();
            if (N.data && N.processData && typeof N.data !== "string") {
                N.data = o.param(N.data)
            }
            if (N.dataType == "jsonp") {
                if (H == "GET") {
                    if (!N.url.match(G)) {
                        N.url += (N.url.match(/\?/) ? "&" : "?") + (N.jsonp || "callback") + "=?"
                    }
                } else {
                    if (!N.data || !N.data.match(G)) {
                        N.data = (N.data ? N.data + "&" : "") + (N.jsonp || "callback") + "=?"
                    }
                }
                N.dataType = "json"
            }
            if (N.dataType == "json" && (N.data && N.data.match(G) || N.url.match(G))) {
                X = "jsonp" + s++;
                if (N.data) {
                    N.data = (N.data + "").replace(G, "=" + X + "$1")
                }
                N.url = N.url.replace(G, "=" + X + "$1");
                N.dataType = "script";
                l[X] = function (Y) {
                    W = Y;
                    J();
                    M();
                    l[X] = g;
                    try {
                        delete l[X]
                    } catch (Z) {}
                    if (I) {
                        I.removeChild(U)
                    }
                }
            }
            if (N.dataType == "script" && N.cache == null) {
                N.cache = false
            }
            if (N.cache === false && H == "GET") {
                var F = e();
                var V = N.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + F + "$2");
                N.url = V + ((V == N.url) ? (N.url.match(/\?/) ? "&" : "?") + "_=" + F : "")
            }
            if (N.data && H == "GET") {
                N.url += (N.url.match(/\?/) ? "&" : "?") + N.data;
                N.data = null
            }
            if (N.global && !o.active++) {
                o.event.trigger("ajaxStart")
            }
            var R = /^(\w+:)?\/\/([^\/?#]+)/.exec(N.url);
            if (N.dataType == "script" && H == "GET" && R && (R[1] && R[1] != location.protocol || R[2] != location.host)) {
                var I = document.getElementsByTagName("head")[0];
                var U = document.createElement("script");
                U.src = N.url;
                if (N.scriptCharset) {
                    U.charset = N.scriptCharset
                }
                if (!X) {
                    var P = false;
                    U.onload = U.onreadystatechange = function () {
                        if (!P && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
                            P = true;
                            J();
                            M();
                            U.onload = U.onreadystatechange = null;
                            I.removeChild(U)
                        }
                    }
                }
                I.appendChild(U);
                return g
            }
            var L = false;
            var K = N.xhr();
            if (N.username) {
                K.open(H, N.url, N.async, N.username, N.password)
            } else {
                K.open(H, N.url, N.async)
            }
            try {
                if (N.data) {
                    K.setRequestHeader("Content-Type", N.contentType)
                }
                if (N.ifModified) {
                    K.setRequestHeader("If-Modified-Since", o.lastModified[N.url] || "Thu, 01 Jan 1970 00:00:00 GMT")
                }
                K.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                K.setRequestHeader("Accept", N.dataType && N.accepts[N.dataType] ? N.accepts[N.dataType] + ", */*" : N.accepts._default)
            } catch (T) {}
            if (N.beforeSend && N.beforeSend(K, N) === false) {
                if (N.global && !--o.active) {
                    o.event.trigger("ajaxStop")
                }
                K.abort();
                return false
            }
            if (N.global) {
                o.event.trigger("ajaxSend", [K, N])
            }
            var O = function (Y) {
                if (K.readyState == 0) {
                    if (Q) {
                        clearInterval(Q);
                        Q = null;
                        if (N.global && !--o.active) {
                            o.event.trigger("ajaxStop")
                        }
                    }
                } else {
                    if (!L && K && (K.readyState == 4 || Y == "timeout")) {
                        L = true;
                        if (Q) {
                            clearInterval(Q);
                            Q = null
                        }
                        S = Y == "timeout" ? "timeout" : !o.httpSuccess(K) ? "error" : N.ifModified && o.httpNotModified(K, N.url) ? "notmodified" : "success";
                        if (S == "success") {
                            try {
                                W = o.httpData(K, N.dataType, N)
                            } catch (aa) {
                                S = "parsererror"
                            }
                        }
                        if (S == "success") {
                            var Z;
                            try {
                                Z = K.getResponseHeader("Last-Modified")
                            } catch (aa) {}
                            if (N.ifModified && Z) {
                                o.lastModified[N.url] = Z
                            }
                            if (!X) {
                                J()
                            }
                        } else {
                            o.handleError(N, K, S)
                        }
                        M();
                        if (Y) {
                            K.abort()
                        }
                        if (N.async) {
                            K = null
                        }
                    }
                }
            };
            if (N.async) {
                var Q = setInterval(O, 13);
                if (N.timeout > 0) {
                    setTimeout(function () {
                        if (K && !L) {
                            O("timeout")
                        }
                    }, N.timeout)
                }
            }
            try {
                K.send(N.data)
            } catch (T) {
                o.handleError(N, K, null, T)
            }
            if (!N.async) {
                O()
            }
            function J() {
                if (N.success) {
                    N.success(W, S)
                }
                if (N.global) {
                    o.event.trigger("ajaxSuccess", [K, N])
                }
            }
            function M() {
                if (N.complete) {
                    N.complete(K, S)
                }
                if (N.global) {
                    o.event.trigger("ajaxComplete", [K, N])
                }
                if (N.global && !--o.active) {
                    o.event.trigger("ajaxStop")
                }
            }
            return K
        },
        handleError: function (G, I, F, H) {
            if (G.error) {
                G.error(I, F, H)
            }
            if (G.global) {
                o.event.trigger("ajaxError", [I, G, H])
            }
        },
        active: 0,
        httpSuccess: function (G) {
            try {
                return !G.status && location.protocol == "file:" || (G.status >= 200 && G.status < 300) || G.status == 304 || G.status == 1223
            } catch (F) {}
            return false
        },
        httpNotModified: function (H, F) {
            try {
                var I = H.getResponseHeader("Last-Modified");
                return H.status == 304 || I == o.lastModified[F]
            } catch (G) {}
            return false
        },
        httpData: function (K, I, H) {
            var G = K.getResponseHeader("content-type"),
                F = I == "xml" || !I && G && G.indexOf("xml") >= 0,
                J = F ? K.responseXML : K.responseText;
            if (F && J.documentElement.tagName == "parsererror") {
                throw "parsererror"
            }
            if (H && H.dataFilter) {
                J = H.dataFilter(J, I)
            }
            if (typeof J === "string") {
                if (I == "script") {
                    o.globalEval(J)
                }
                if (I == "json") {
                    J = l["eval"]("(" + J + ")")
                }
            }
            return J
        },
        param: function (F) {
            var H = [];

            function I(J, K) {
                H[H.length] = encodeURIComponent(J) + "=" + encodeURIComponent(K)
            }
            if (o.isArray(F) || F.jquery) {
                o.each(F, function () {
                    I(this.name, this.value)
                })
            } else {
                for (var G in F) {
                    if (o.isArray(F[G])) {
                        o.each(F[G], function () {
                            I(G, this)
                        })
                    } else {
                        I(G, o.isFunction(F[G]) ? F[G]() : F[G])
                    }
                }
            }
            return H.join("&").replace(/%20/g, "+")
        }
    });
    var m = {},
        n, d = [
            ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"],
            ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"],
            ["opacity"]
        ];

    function u(G, F) {
        var H = {};
        o.each(d.concat.apply([], d.slice(0, F)), function () {
            H[this] = G
        });
        return H
    }
    o.fn.extend({
        show: function (K, M) {
            if (K) {
                return this.animate(u("show", 3), K, M)
            } else {
                for (var I = 0, G = this.length; I < G; I++) {
                    var F = o.data(this[I], "olddisplay");
                    this[I].style.display = F || "";
                    if (o.css(this[I], "display") === "none") {
                        var H = this[I].tagName,
                            L;
                        if (m[H]) {
                            L = m[H]
                        } else {
                            var J = o("<" + H + " />").appendTo("body");
                            L = J.css("display");
                            if (L === "none") {
                                L = "block"
                            }
                            J.remove();
                            m[H] = L
                        }
                        o.data(this[I], "olddisplay", L)
                    }
                }
                for (var I = 0, G = this.length; I < G; I++) {
                    this[I].style.display = o.data(this[I], "olddisplay") || ""
                }
                return this
            }
        },
        hide: function (I, J) {
            if (I) {
                return this.animate(u("hide", 3), I, J)
            } else {
                for (var H = 0, G = this.length; H < G; H++) {
                    var F = o.data(this[H], "olddisplay");
                    if (!F && F !== "none") {
                        o.data(this[H], "olddisplay", o.css(this[H], "display"))
                    }
                }
                for (var H = 0, G = this.length; H < G; H++) {
                    this[H].style.display = "none"
                }
                return this
            }
        },
        _toggle: o.fn.toggle,
        toggle: function (H, G) {
            var F = typeof H === "boolean";
            return o.isFunction(H) && o.isFunction(G) ? this._toggle.apply(this, arguments) : H == null || F ? this.each(function () {
                var I = F ? H : o(this).is(":hidden");
                o(this)[I ? "show" : "hide"]()
            }) : this.animate(u("toggle", 3), H, G)
        },
        fadeTo: function (F, H, G) {
            return this.animate({
                opacity: H
            }, F, G)
        },
        animate: function (J, G, I, H) {
            var F = o.speed(G, I, H);
            return this[F.queue === false ? "each" : "queue"](function () {
                var L = o.extend({}, F),
                    N, M = this.nodeType == 1 && o(this).is(":hidden"),
                    K = this;
                for (N in J) {
                    if (J[N] == "hide" && M || J[N] == "show" && !M) {
                        return L.complete.call(this)
                    }
                    if ((N == "height" || N == "width") && this.style) {
                        L.display = o.css(this, "display");
                        L.overflow = this.style.overflow
                    }
                }
                if (L.overflow != null) {
                    this.style.overflow = "hidden"
                }
                L.curAnim = o.extend({}, J);
                o.each(J, function (P, T) {
                    var S = new o.fx(K, L, P);
                    if (/toggle|show|hide/.test(T)) {
                        S[T == "toggle" ? M ? "show" : "hide" : T](J)
                    } else {
                        var R = T.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
                            U = S.cur(true) || 0;
                        if (R) {
                            var O = parseFloat(R[2]),
                                Q = R[3] || "px";
                            if (Q != "px") {
                                K.style[P] = (O || 1) + Q;
                                U = ((O || 1) / S.cur(true)) * U;
                                K.style[P] = U + Q
                            }
                            if (R[1]) {
                                O = ((R[1] == "-=" ? -1 : 1) * O) + U
                            }
                            S.custom(U, O, Q)
                        } else {
                            S.custom(U, T, "")
                        }
                    }
                });
                return true
            })
        },
        stop: function (G, F) {
            var H = o.timers;
            if (G) {
                this.queue([])
            }
            this.each(function () {
                for (var I = H.length - 1; I >= 0; I--) {
                    if (H[I].elem == this) {
                        if (F) {
                            H[I](true)
                        }
                        H.splice(I, 1)
                    }
                }
            });
            if (!F) {
                this.dequeue()
            }
            return this
        }
    });
    o.each({
        slideDown: u("show", 1),
        slideUp: u("hide", 1),
        slideToggle: u("toggle", 1),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        }
    }, function (F, G) {
        o.fn[F] = function (H, I) {
            return this.animate(G, H, I)
        }
    });
    o.extend({
        speed: function (H, I, G) {
            var F = typeof H === "object" ? H : {
                complete: G || !G && I || o.isFunction(H) && H,
                duration: H,
                easing: G && I || I && !o.isFunction(I) && I
            };
            F.duration = o.fx.off ? 0 : typeof F.duration === "number" ? F.duration : o.fx.speeds[F.duration] || o.fx.speeds._default;
            F.old = F.complete;
            F.complete = function () {
                if (F.queue !== false) {
                    o(this).dequeue()
                }
                if (o.isFunction(F.old)) {
                    F.old.call(this)
                }
            };
            return F
        },
        easing: {
            linear: function (H, I, F, G) {
                return F + G * H
            },
            swing: function (H, I, F, G) {
                return ((-Math.cos(H * Math.PI) / 2) + 0.5) * G + F
            }
        },
        timers: [],
        fx: function (G, F, H) {
            this.options = F;
            this.elem = G;
            this.prop = H;
            if (!F.orig) {
                F.orig = {}
            }
        }
    });
    o.fx.prototype = {
        update: function () {
            if (this.options.step) {
                this.options.step.call(this.elem, this.now, this)
            }(o.fx.step[this.prop] || o.fx.step._default)(this);
            if ((this.prop == "height" || this.prop == "width") && this.elem.style) {
                this.elem.style.display = "block"
            }
        },
        cur: function (G) {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
                return this.elem[this.prop]
            }
            var F = parseFloat(o.css(this.elem, this.prop, G));
            return F && F > -10000 ? F : parseFloat(o.curCSS(this.elem, this.prop)) || 0
        },
        custom: function (J, I, H) {
            this.startTime = e();
            this.start = J;
            this.end = I;
            this.unit = H || this.unit || "px";
            this.now = this.start;
            this.pos = this.state = 0;
            var F = this;

            function G(K) {
                return F.step(K)
            }
            G.elem = this.elem;
            if (G() && o.timers.push(G) && !n) {
                n = setInterval(function () {
                    var L = o.timers;
                    for (var K = 0; K < L.length; K++) {
                        if (!L[K]()) {
                            L.splice(K--, 1)
                        }
                    }
                    if (!L.length) {
                        clearInterval(n);
                        n = g
                    }
                }, 13)
            }
        },
        show: function () {
            this.options.orig[this.prop] = o.attr(this.elem.style, this.prop);
            this.options.show = true;
            this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
            o(this.elem).show()
        },
        hide: function () {
            this.options.orig[this.prop] = o.attr(this.elem.style, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        },
        step: function (I) {
            var H = e();
            if (I || H >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                var F = true;
                for (var G in this.options.curAnim) {
                    if (this.options.curAnim[G] !== true) {
                        F = false
                    }
                }
                if (F) {
                    if (this.options.display != null) {
                        this.elem.style.overflow = this.options.overflow;
                        this.elem.style.display = this.options.display;
                        if (o.css(this.elem, "display") == "none") {
                            this.elem.style.display = "block"
                        }
                    }
                    if (this.options.hide) {
                        o(this.elem).hide()
                    }
                    if (this.options.hide || this.options.show) {
                        for (var J in this.options.curAnim) {
                            o.attr(this.elem.style, J, this.options.orig[J])
                        }
                    }
                    this.options.complete.call(this.elem)
                }
                return false
            } else {
                var K = H - this.startTime;
                this.state = K / this.options.duration;
                this.pos = o.easing[this.options.easing || (o.easing.swing ? "swing" : "linear")](this.state, K, 0, 1, this.options.duration);
                this.now = this.start + ((this.end - this.start) * this.pos);
                this.update()
            }
            return true
        }
    };
    o.extend(o.fx, {
        speeds: {
            slow: 600,
            fast: 200,
            _default: 400
        },
        step: {
            opacity: function (F) {
                o.attr(F.elem.style, "opacity", F.now)
            },
            _default: function (F) {
                if (F.elem.style && F.elem.style[F.prop] != null) {
                    F.elem.style[F.prop] = F.now + F.unit
                } else {
                    F.elem[F.prop] = F.now
                }
            }
        }
    });
    if (document.documentElement.getBoundingClientRect) {
        o.fn.offset = function () {
            if (!this[0]) {
                return {
                    top: 0,
                    left: 0
                }
            }
            if (this[0] === this[0].ownerDocument.body) {
                return o.offset.bodyOffset(this[0])
            }
            var H = this[0].getBoundingClientRect(),
                K = this[0].ownerDocument,
                G = K.body,
                F = K.documentElement,
                M = F.clientTop || G.clientTop || 0,
                L = F.clientLeft || G.clientLeft || 0,
                J = H.top + (self.pageYOffset || o.boxModel && F.scrollTop || G.scrollTop) - M,
                I = H.left + (self.pageXOffset || o.boxModel && F.scrollLeft || G.scrollLeft) - L;
            return {
                top: J,
                left: I
            }
        }
    } else {
        o.fn.offset = function () {
            if (!this[0]) {
                return {
                    top: 0,
                    left: 0
                }
            }
            if (this[0] === this[0].ownerDocument.body) {
                return o.offset.bodyOffset(this[0])
            }
            o.offset.initialized || o.offset.initialize();
            var K = this[0],
                H = K.offsetParent,
                G = K,
                P = K.ownerDocument,
                N, I = P.documentElement,
                L = P.body,
                M = P.defaultView,
                F = M.getComputedStyle(K, null),
                O = K.offsetTop,
                J = K.offsetLeft;
            while ((K = K.parentNode) && K !== L && K !== I) {
                N = M.getComputedStyle(K, null);
                O -= K.scrollTop,
                J -= K.scrollLeft;
                if (K === H) {
                    O += K.offsetTop,
                    J += K.offsetLeft;
                    if (o.offset.doesNotAddBorder && !(o.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(K.tagName))) {
                        O += parseInt(N.borderTopWidth, 10) || 0,
                        J += parseInt(N.borderLeftWidth, 10) || 0
                    }
                    G = H,
                    H = K.offsetParent
                }
                if (o.offset.subtractsBorderForOverflowNotVisible && N.overflow !== "visible") {
                    O += parseInt(N.borderTopWidth, 10) || 0,
                    J += parseInt(N.borderLeftWidth, 10) || 0
                }
                F = N
            }
            if (F.position === "relative" || F.position === "static") {
                O += L.offsetTop,
                J += L.offsetLeft
            }
            if (F.position === "fixed") {
                O += Math.max(I.scrollTop, L.scrollTop),
                J += Math.max(I.scrollLeft, L.scrollLeft)
            }
            return {
                top: O,
                left: J
            }
        }
    }
    o.offset = {
        initialize: function () {
            if (this.initialized) {
                return
            }
            var M = document.body,
                G = document.createElement("div"),
                I, H, O, J, N, F, K = M.style.marginTop,
                L = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
            N = {
                position: "absolute",
                top: 0,
                left: 0,
                margin: 0,
                border: 0,
                width: "1px",
                height: "1px",
                visibility: "hidden"
            };
            for (F in N) {
                G.style[F] = N[F]
            }
            G.innerHTML = L;
            M.insertBefore(G, M.firstChild);
            I = G.firstChild,
            H = I.firstChild,
            J = I.nextSibling.firstChild.firstChild;
            this.doesNotAddBorder = (H.offsetTop !== 5);
            this.doesAddBorderForTableAndCells = (J.offsetTop === 5);
            I.style.overflow = "hidden",
            I.style.position = "relative";
            this.subtractsBorderForOverflowNotVisible = (H.offsetTop === -5);
            M.style.marginTop = "1px";
            this.doesNotIncludeMarginInBodyOffset = (M.offsetTop === 0);
            M.style.marginTop = K;
            M.removeChild(G);
            this.initialized = true
        },
        bodyOffset: function (F) {
            o.offset.initialized || o.offset.initialize();
            var H = F.offsetTop,
                G = F.offsetLeft;
            if (o.offset.doesNotIncludeMarginInBodyOffset) {
                H += parseInt(o.curCSS(F, "marginTop", true), 10) || 0,
                G += parseInt(o.curCSS(F, "marginLeft", true), 10) || 0
            }
            return {
                top: H,
                left: G
            }
        }
    };
    o.fn.extend({
        position: function () {
            var J = 0,
                I = 0,
                G;
            if (this[0]) {
                var H = this.offsetParent(),
                    K = this.offset(),
                    F = /^body|html$/i.test(H[0].tagName) ? {
                        top: 0,
                        left: 0
                    } : H.offset();
                K.top -= j(this, "marginTop");
                K.left -= j(this, "marginLeft");
                F.top += j(H, "borderTopWidth");
                F.left += j(H, "borderLeftWidth");
                G = {
                    top: K.top - F.top,
                    left: K.left - F.left
                }
            }
            return G
        },
        offsetParent: function () {
            var F = this[0].offsetParent || document.body;
            while (F && (!/^body|html$/i.test(F.tagName) && o.css(F, "position") == "static")) {
                F = F.offsetParent
            }
            return o(F)
        }
    });
    o.each(["Left", "Top"], function (G, F) {
        var H = "scroll" + F;
        o.fn[H] = function (I) {
            if (!this[0]) {
                return null
            }
            return I !== g ? this.each(function () {
                this == l || this == document ? l.scrollTo(!G ? I : o(l).scrollLeft(), G ? I : o(l).scrollTop()) : this[H] = I
            }) : this[0] == l || this[0] == document ? self[G ? "pageYOffset" : "pageXOffset"] || o.boxModel && document.documentElement[H] || document.body[H] : this[0][H]
        }
    });
    o.each(["Height", "Width"], function (J, H) {
        var F = J ? "Left" : "Top",
            I = J ? "Right" : "Bottom",
            G = H.toLowerCase();
        o.fn["inner" + H] = function () {
            return this[0] ? o.css(this[0], G, false, "padding") : null
        };
        o.fn["outer" + H] = function (L) {
            return this[0] ? o.css(this[0], G, false, L ? "margin" : "border") : null
        };
        var K = H.toLowerCase();
        o.fn[K] = function (L) {
            return this[0] == l ? document.compatMode == "CSS1Compat" && document.documentElement["client" + H] || document.body["client" + H] : this[0] == document ? Math.max(document.documentElement["client" + H], document.body["scroll" + H], document.documentElement["scroll" + H], document.body["offset" + H], document.documentElement["offset" + H]) : L === g ? (this.length ? o.css(this[0], K) : null) : this.css(K, typeof L === "string" ? L : L + "px")
        }
    })
})();
/*
 * jQuery Cycle Plugin (with Transition Definitions)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2009 M. Alsup
 * Version: 2.73 (04-NOV-2009)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires: jQuery v1.2.6 or later
 *
 * Originally based on the work of:
 *	1) Matt Oakes
 *	2) Torsten Baldes (http://medienfreunde.com/lab/innerfade/)
 *	3) Benjamin Sterling (http://www.benjaminsterling.com/experiments/jqShuffle/)
 */
(function (i) {
    var l = "2.73";
    if (i.support == undefined) {
        i.support = {
            opacity: !(i.browser.msie)
        }
    }
    function a(q) {
        if (i.fn.cycle.debug) {
            f(q)
        }
    }
    function f() {
        if (window.console && window.console.log) {
            window.console.log("[cycle] " + Array.prototype.join.call(arguments, " "))
        }
    }
    i.fn.cycle = function (r, q) {
        var s = {
            s: this.selector,
            c: this.context
        };
        if (this.length === 0 && r != "stop") {
            if (!i.isReady && s.s) {
                f("DOM not ready, queuing slideshow");
                i(function () {
                    i(s.s, s.c).cycle(r, q)
                });
                return this
            }
            f("terminating; zero elements found by selector" + (i.isReady ? "" : " (DOM not ready)"));
            return this
        }
        return this.each(function () {
            var w = m(this, r, q);
            if (w === false) {
                return
            }
            if (this.cycleTimeout) {
                clearTimeout(this.cycleTimeout)
            }
            this.cycleTimeout = this.cyclePause = 0;
            var x = i(this);
            var y = w.slideExpr ? i(w.slideExpr, this) : x.children();
            var u = y.get();
            if (u.length < 2) {
                f("terminating; too few slides: " + u.length);
                return
            }
            var t = k(x, y, u, w, s);
            if (t === false) {
                return
            }
            var v = t.continuous ? 10 : h(t.currSlide, t.nextSlide, t, !t.rev);
            if (v) {
                v += (t.delay || 0);
                if (v < 10) {
                    v = 10
                }
                a("first timeout: " + v);
                this.cycleTimeout = setTimeout(function () {
                    e(u, t, 0, !t.rev)
                }, v)
            }
        })
    };

    function m(q, t, r) {
        if (q.cycleStop == undefined) {
            q.cycleStop = 0
        }
        if (t === undefined || t === null) {
            t = {}
        }
        if (t.constructor == String) {
            switch (t) {
            case "stop":
                q.cycleStop++;
                if (q.cycleTimeout) {
                    clearTimeout(q.cycleTimeout)
                }
                q.cycleTimeout = 0;
                i(q).removeData("cycle.opts");
                return false;
            case "pause":
                q.cyclePause = 1;
                return false;
            case "resume":
                q.cyclePause = 0;
                if (r === true) {
                    t = i(q).data("cycle.opts");
                    if (!t) {
                        f("options not found, can not resume");
                        return false
                    }
                    if (q.cycleTimeout) {
                        clearTimeout(q.cycleTimeout);
                        q.cycleTimeout = 0
                    }
                    e(t.elements, t, 1, 1)
                }
                return false;
            case "prev":
            case "next":
                var u = i(q).data("cycle.opts");
                if (!u) {
                    f('options not found, "prev/next" ignored');
                    return false
                }
                i.fn.cycle[t](u);
                return false;
            default:
                t = {
                    fx: t
                }
            }
            return t
        } else {
            if (t.constructor == Number) {
                var s = t;
                t = i(q).data("cycle.opts");
                if (!t) {
                    f("options not found, can not advance slide");
                    return false
                }
                if (s < 0 || s >= t.elements.length) {
                    f("invalid slide index: " + s);
                    return false
                }
                t.nextSlide = s;
                if (q.cycleTimeout) {
                    clearTimeout(q.cycleTimeout);
                    q.cycleTimeout = 0
                }
                if (typeof r == "string") {
                    t.oneTimeFx = r
                }
                e(t.elements, t, 1, s >= t.currSlide);
                return false
            }
        }
        return t
    }
    function b(q, r) {
        if (!i.support.opacity && r.cleartype && q.style.filter) {
            try {
                q.style.removeAttribute("filter")
            } catch (s) {}
        }
    }
    function k(y, J, u, t, E) {
        var C = i.extend({}, i.fn.cycle.defaults, t || {}, i.metadata ? y.metadata() : i.meta ? y.data() : {});
        if (C.autostop) {
            C.countdown = C.autostopCount || u.length
        }
        var r = y[0];
        y.data("cycle.opts", C);
        C.$cont = y;
        C.stopCount = r.cycleStop;
        C.elements = u;
        C.before = C.before ? [C.before] : [];
        C.after = C.after ? [C.after] : [];
        C.after.unshift(function () {
            C.busy = 0
        });
        if (!i.support.opacity && C.cleartype) {
            C.after.push(function () {
                b(this, C)
            })
        }
        if (C.continuous) {
            C.after.push(function () {
                e(u, C, 0, !C.rev)
            })
        }
        n(C);
        if (!i.support.opacity && C.cleartype && !C.cleartypeNoBg) {
            g(J)
        }
        if (y.css("position") == "static") {
            y.css("position", "relative")
        }
        if (C.width) {
            y.width(C.width)
        }
        if (C.height && C.height != "auto") {
            y.height(C.height)
        }
        if (C.startingSlide) {
            C.startingSlide = parseInt(C.startingSlide)
        }
        if (C.random) {
            C.randomMap = [];
            for (var H = 0; H < u.length; H++) {
                C.randomMap.push(H)
            }
            C.randomMap.sort(function (L, w) {
                return Math.random() - 0.5
            });
            C.randomIndex = 0;
            C.startingSlide = C.randomMap[0]
        } else {
            if (C.startingSlide >= u.length) {
                C.startingSlide = 0
            }
        }
        C.currSlide = C.startingSlide = C.startingSlide || 0;
        var x = C.startingSlide;
        J.css({
            position: "absolute",
            top: 0,
            left: 0
        }).hide().each(function (w) {
            var L = x ? w >= x ? u.length - (w - x) : x - w : u.length - w;
            i(this).css("z-index", L)
        });
        i(u[x]).css("opacity", 1).show();
        b(u[x], C);
        if (C.fit && C.width) {
            J.width(C.width)
        }
        if (C.fit && C.height && C.height != "auto") {
            J.height(C.height)
        }
        var D = C.containerResize && !y.innerHeight();
        if (D) {
            var v = 0,
                B = 0;
            for (var F = 0; F < u.length; F++) {
                var q = i(u[F]),
                    K = q[0],
                    A = q.outerWidth(),
                    I = q.outerHeight();
                if (!A) {
                    A = K.offsetWidth
                }
                if (!I) {
                    I = K.offsetHeight
                }
                v = A > v ? A : v;
                B = I > B ? I : B
            }
            if (v > 0 && B > 0) {
                y.css({
                    width: v + "px",
                    height: B + "px"
                })
            }
        }
        if (C.pause) {
            y.hover(function () {
                this.cyclePause++
            }, function () {
                this.cyclePause--
            })
        }
        if (c(C) === false) {
            return false
        }
        var s = false;
        t.requeueAttempts = t.requeueAttempts || 0;
        J.each(function () {
            var N = i(this);
            this.cycleH = (C.fit && C.height) ? C.height : N.height();
            this.cycleW = (C.fit && C.width) ? C.width : N.width();
            if (N.is("img")) {
                var L = (i.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
                var O = (i.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
                var M = (i.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
                var w = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
                if (L || O || M || w) {
                    if (E.s && C.requeueOnImageNotLoaded && ++t.requeueAttempts < 100) {
                        f(t.requeueAttempts, " - img slide not loaded, requeuing slideshow: ", this.src, this.cycleW, this.cycleH);
                        setTimeout(function () {
                            i(E.s, E.c).cycle(t)
                        }, C.requeueTimeout);
                        s = true;
                        return false
                    } else {
                        f("could not determine size of image: " + this.src, this.cycleW, this.cycleH)
                    }
                }
            }
            return true
        });
        if (s) {
            return false
        }
        C.cssBefore = C.cssBefore || {};
        C.animIn = C.animIn || {};
        C.animOut = C.animOut || {};
        J.not(":eq(" + x + ")").css(C.cssBefore);
        if (C.cssFirst) {
            i(J[x]).css(C.cssFirst)
        }
        if (C.timeout) {
            C.timeout = parseInt(C.timeout);
            if (C.speed.constructor == String) {
                C.speed = i.fx.speeds[C.speed] || parseInt(C.speed)
            }
            if (!C.sync) {
                C.speed = C.speed / 2
            }
            while ((C.timeout - C.speed) < 250) {
                C.timeout += C.speed
            }
        }
        if (C.easing) {
            C.easeIn = C.easeOut = C.easing
        }
        if (!C.speedIn) {
            C.speedIn = C.speed
        }
        if (!C.speedOut) {
            C.speedOut = C.speed
        }
        C.slideCount = u.length;
        C.currSlide = C.lastSlide = x;
        if (C.random) {
            C.nextSlide = C.currSlide;
            if (++C.randomIndex == u.length) {
                C.randomIndex = 0
            }
            C.nextSlide = C.randomMap[C.randomIndex]
        } else {
            C.nextSlide = C.startingSlide >= (u.length - 1) ? 0 : C.startingSlide + 1
        }
        if (!C.multiFx) {
            var G = i.fn.cycle.transitions[C.fx];
            if (i.isFunction(G)) {
                G(y, J, C)
            } else {
                if (C.fx != "custom" && !C.multiFx) {
                    f("unknown transition: " + C.fx, "; slideshow terminating");
                    return false
                }
            }
        }
        var z = J[x];
        if (C.before.length) {
            C.before[0].apply(z, [z, z, C, true])
        }
        if (C.after.length > 1) {
            C.after[1].apply(z, [z, z, C, true])
        }
        if (C.next) {
            i(C.next).bind(C.prevNextEvent, function () {
                return o(C, C.rev ? -1 : 1)
            })
        }
        if (C.prev) {
            i(C.prev).bind(C.prevNextEvent, function () {
                return o(C, C.rev ? 1 : -1)
            })
        }
        if (C.pager) {
            d(u, C)
        }
        j(C, u);
        return C
    }
    function n(q) {
        q.original = {
            before: [],
            after: []
        };
        q.original.cssBefore = i.extend({}, q.cssBefore);
        q.original.cssAfter = i.extend({}, q.cssAfter);
        q.original.animIn = i.extend({}, q.animIn);
        q.original.animOut = i.extend({}, q.animOut);
        i.each(q.before, function () {
            q.original.before.push(this)
        });
        i.each(q.after, function () {
            q.original.after.push(this)
        })
    }
    function c(w) {
        var u, s, r = i.fn.cycle.transitions;
        if (w.fx.indexOf(",") > 0) {
            w.multiFx = true;
            w.fxs = w.fx.replace(/\s*/g, "").split(",");
            for (u = 0; u < w.fxs.length; u++) {
                var v = w.fxs[u];
                s = r[v];
                if (!s || !r.hasOwnProperty(v) || !i.isFunction(s)) {
                    f("discarding unknown transition: ", v);
                    w.fxs.splice(u, 1);
                    u--
                }
            }
            if (!w.fxs.length) {
                f("No valid transitions named; slideshow terminating.");
                return false
            }
        } else {
            if (w.fx == "all") {
                w.multiFx = true;
                w.fxs = [];
                for (p in r) {
                    s = r[p];
                    if (r.hasOwnProperty(p) && i.isFunction(s)) {
                        w.fxs.push(p)
                    }
                }
            }
        }
        if (w.multiFx && w.randomizeEffects) {
            var t = Math.floor(Math.random() * 20) + 30;
            for (u = 0; u < t; u++) {
                var q = Math.floor(Math.random() * w.fxs.length);
                w.fxs.push(w.fxs.splice(q, 1)[0])
            }
            a("randomized fx sequence: ", w.fxs)
        }
        return true
    }
    function j(r, q) {
        r.addSlide = function (u, v) {
            var t = i(u),
                w = t[0];
            if (!r.autostopCount) {
                r.countdown++
            }
            q[v ? "unshift" : "push"](w);
            if (r.els) {
                r.els[v ? "unshift" : "push"](w)
            }
            r.slideCount = q.length;
            t.css("position", "absolute");
            t[v ? "prependTo" : "appendTo"](r.$cont);
            if (v) {
                r.currSlide++;
                r.nextSlide++
            }
            if (!i.support.opacity && r.cleartype && !r.cleartypeNoBg) {
                g(t)
            }
            if (r.fit && r.width) {
                t.width(r.width)
            }
            if (r.fit && r.height && r.height != "auto") {
                $slides.height(r.height)
            }
            w.cycleH = (r.fit && r.height) ? r.height : t.height();
            w.cycleW = (r.fit && r.width) ? r.width : t.width();
            t.css(r.cssBefore);
            if (r.pager) {
                i.fn.cycle.createPagerAnchor(q.length - 1, w, i(r.pager), q, r)
            }
            if (i.isFunction(r.onAddSlide)) {
                r.onAddSlide(t)
            } else {
                t.hide()
            }
        }
    }
    i.fn.cycle.resetState = function (r, q) {
        q = q || r.fx;
        r.before = [];
        r.after = [];
        r.cssBefore = i.extend({}, r.original.cssBefore);
        r.cssAfter = i.extend({}, r.original.cssAfter);
        r.animIn = i.extend({}, r.original.animIn);
        r.animOut = i.extend({}, r.original.animOut);
        r.fxFn = null;
        i.each(r.original.before, function () {
            r.before.push(this)
        });
        i.each(r.original.after, function () {
            r.after.push(this)
        });
        var s = i.fn.cycle.transitions[q];
        if (i.isFunction(s)) {
            s(r.$cont, i(r.elements), r)
        }
    };

    function e(x, q, w, y) {
        if (w && q.busy && q.manualTrump) {
            i(x).stop(true, true);
            q.busy = false
        }
        if (q.busy) {
            return
        }
        var u = q.$cont[0],
            A = x[q.currSlide],
            z = x[q.nextSlide];
        if (u.cycleStop != q.stopCount || u.cycleTimeout === 0 && !w) {
            return
        }
        if (!w && !u.cyclePause && ((q.autostop && (--q.countdown <= 0)) || (q.nowrap && !q.random && q.nextSlide < q.currSlide))) {
            if (q.end) {
                q.end(q)
            }
            return
        }
        if (w || !u.cyclePause) {
            var v = q.fx;
            A.cycleH = A.cycleH || i(A).height();
            A.cycleW = A.cycleW || i(A).width();
            z.cycleH = z.cycleH || i(z).height();
            z.cycleW = z.cycleW || i(z).width();
            if (q.multiFx) {
                if (q.lastFx == undefined || ++q.lastFx >= q.fxs.length) {
                    q.lastFx = 0
                }
                v = q.fxs[q.lastFx];
                q.currFx = v
            }
            if (q.oneTimeFx) {
                v = q.oneTimeFx;
                q.oneTimeFx = null
            }
            i.fn.cycle.resetState(q, v);
            if (q.before.length) {
                i.each(q.before, function (B, C) {
                    if (u.cycleStop != q.stopCount) {
                        return
                    }
                    C.apply(z, [A, z, q, y])
                })
            }
            var s = function () {
                i.each(q.after, function (B, C) {
                    if (u.cycleStop != q.stopCount) {
                        return
                    }
                    C.apply(z, [A, z, q, y])
                })
            };
            if (q.nextSlide != q.currSlide) {
                q.busy = 1;
                if (q.fxFn) {
                    q.fxFn(A, z, q, s, y)
                } else {
                    if (i.isFunction(i.fn.cycle[q.fx])) {
                        i.fn.cycle[q.fx](A, z, q, s)
                    } else {
                        i.fn.cycle.custom(A, z, q, s, w && q.fastOnEvent)
                    }
                }
            }
            q.lastSlide = q.currSlide;
            if (q.random) {
                q.currSlide = q.nextSlide;
                if (++q.randomIndex == x.length) {
                    q.randomIndex = 0
                }
                q.nextSlide = q.randomMap[q.randomIndex]
            } else {
                var t = (q.nextSlide + 1) == x.length;
                q.nextSlide = t ? 0 : q.nextSlide + 1;
                q.currSlide = t ? x.length - 1 : q.nextSlide - 1
            }
            if (q.pager) {
                i.fn.cycle.updateActivePagerLink(q.pager, q.currSlide)
            }
        }
        var r = 0;
        if (q.timeout && !q.continuous) {
            r = h(A, z, q, y)
        } else {
            if (q.continuous && u.cyclePause) {
                r = 10
            }
        }
        if (r > 0) {
            u.cycleTimeout = setTimeout(function () {
                e(x, q, 0, !q.rev)
            }, r)
        }
    }
    i.fn.cycle.updateActivePagerLink = function (q, r) {
        i(q).each(function () {
            i(this).find("a").removeClass("current-slide").filter("a:eq(" + r + ")").addClass("current-slide")
        })
    };

    function h(v, s, u, r) {
        if (u.timeoutFn) {
            var q = u.timeoutFn(v, s, u, r);
            while ((q - u.speed) < 250) {
                q += u.speed
            }
            a("calculated timeout: " + q + "; speed: " + u.speed);
            if (q !== false) {
                return q
            }
        }
        return u.timeout
    }
    i.fn.cycle.next = function (q) {
        o(q, q.rev ? -1 : 1)
    };
    i.fn.cycle.prev = function (q) {
        o(q, q.rev ? 1 : -1)
    };

    function o(r, u) {
        var q = r.elements;
        var t = r.$cont[0],
            s = t.cycleTimeout;
        if (s) {
            clearTimeout(s);
            t.cycleTimeout = 0
        }
        if (r.random && u < 0) {
            r.randomIndex--;
            if (--r.randomIndex == -2) {
                r.randomIndex = q.length - 2
            } else {
                if (r.randomIndex == -1) {
                    r.randomIndex = q.length - 1
                }
            }
            r.nextSlide = r.randomMap[r.randomIndex]
        } else {
            if (r.random) {
                if (++r.randomIndex == q.length) {
                    r.randomIndex = 0
                }
                r.nextSlide = r.randomMap[r.randomIndex]
            } else {
                r.nextSlide = r.currSlide + u;
                if (r.nextSlide < 0) {
                    if (r.nowrap) {
                        return false
                    }
                    r.nextSlide = q.length - 1
                } else {
                    if (r.nextSlide >= q.length) {
                        if (r.nowrap) {
                            return false
                        }
                        r.nextSlide = 0
                    }
                }
            }
        }
        if (i.isFunction(r.prevNextClick)) {
            r.prevNextClick(u > 0, r.nextSlide, q[r.nextSlide])
        }
        e(q, r, 1, u >= 0);
        return false
    }
    function d(r, s) {
        var q = i(s.pager);
        i.each(r, function (t, u) {
            i.fn.cycle.createPagerAnchor(t, u, q, r, s)
        });
        i.fn.cycle.updateActivePagerLink(s.pager, s.startingSlide)
    }
    i.fn.cycle.createPagerAnchor = function (u, v, s, t, w) {
        var r;
        if (i.isFunction(w.pagerAnchorBuilder)) {
            r = w.pagerAnchorBuilder(u, v)
        } else {
            r = '<a href="#">' + (u + 1) + "</a>"
        }
        if (!r) {
            return
        }
        var x = i(r);
        if (x.parents("body").length === 0) {
            var q = [];
            if (s.length > 1) {
                s.each(function () {
                    var y = x.clone(true);
                    i(this).append(y);
                    q.push(y[0])
                });
                x = i(q)
            } else {
                x.appendTo(s)
            }
        }
        x.bind(w.pagerEvent, function (A) {
            A.preventDefault();
            w.nextSlide = u;
            var z = w.$cont[0],
                y = z.cycleTimeout;
            if (y) {
                clearTimeout(y);
                z.cycleTimeout = 0
            }
            if (i.isFunction(w.pagerClick)) {
                w.pagerClick(w.nextSlide, t[w.nextSlide])
            }
            e(t, w, 1, w.currSlide < u);
            return false
        });
        if (w.pagerEvent != "click") {
            x.click(function () {
                return false
            })
        }
        if (w.pauseOnPagerHover) {
            x.hover(function () {
                w.$cont[0].cyclePause++
            }, function () {
                w.$cont[0].cyclePause--
            })
        }
    };
    i.fn.cycle.hopsFromLast = function (t, s) {
        var r, q = t.lastSlide,
            u = t.currSlide;
        if (s) {
            r = u > q ? u - q : t.slideCount - q
        } else {
            r = u < q ? q - u : q + t.slideCount - u
        }
        return r
    };

    function g(s) {
        function r(t) {
            t = parseInt(t).toString(16);
            return t.length < 2 ? "0" + t : t
        }
        function q(w) {
            for (; w && w.nodeName.toLowerCase() != "html"; w = w.parentNode) {
                var t = i.css(w, "background-color");
                if (t.indexOf("rgb") >= 0) {
                    var u = t.match(/\d+/g);
                    return "#" + r(u[0]) + r(u[1]) + r(u[2])
                }
                if (t && t != "transparent") {
                    return t
                }
            }
            return "#ffffff"
        }
        s.each(function () {
            i(this).css("background-color", q(this))
        })
    }
    i.fn.cycle.commonReset = function (v, t, u, r, s, q) {
        i(u.elements).not(v).hide();
        u.cssBefore.opacity = 1;
        u.cssBefore.display = "block";
        if (r !== false && t.cycleW > 0) {
            u.cssBefore.width = t.cycleW
        }
        if (s !== false && t.cycleH > 0) {
            u.cssBefore.height = t.cycleH
        }
        u.cssAfter = u.cssAfter || {};
        u.cssAfter.display = "none";
        i(v).css("zIndex", u.slideCount + (q === true ? 1 : 0));
        i(t).css("zIndex", u.slideCount + (q === true ? 0 : 1))
    };
    i.fn.cycle.custom = function (B, v, q, s, r) {
        var A = i(B),
            w = i(v);
        var t = q.speedIn,
            z = q.speedOut,
            u = q.easeIn,
            y = q.easeOut;
        w.css(q.cssBefore);
        if (r) {
            if (typeof r == "number") {
                t = z = r
            } else {
                t = z = 1
            }
            u = y = null
        }
        var x = function () {
            w.animate(q.animIn, t, u, s)
        };
        A.animate(q.animOut, z, y, function () {
            if (q.cssAfter) {
                A.css(q.cssAfter)
            }
            if (!q.sync) {
                x()
            }
        });
        if (q.sync) {
            x()
        }
    };
    i.fn.cycle.transitions = {
        fade: function (r, s, q) {
            s.not(":eq(" + q.currSlide + ")").css("opacity", 0);
            q.before.push(function (v, t, u) {
                i.fn.cycle.commonReset(v, t, u);
                u.cssBefore.opacity = 0
            });
            q.animIn = {
                opacity: 1
            };
            q.animOut = {
                opacity: 0
            };
            q.cssBefore = {
                top: 0,
                left: 0
            }
        }
    };
    i.fn.cycle.ver = function () {
        return l
    };
    i.fn.cycle.defaults = {
        fx: "fade",
        timeout: 4000,
        timeoutFn: null,
        continuous: 0,
        speed: 1000,
        speedIn: null,
        speedOut: null,
        next: null,
        prev: null,
        prevNextClick: null,
        prevNextEvent: "click",
        pager: null,
        pagerClick: null,
        pagerEvent: "click",
        pagerAnchorBuilder: null,
        before: null,
        after: null,
        end: null,
        easing: null,
        easeIn: null,
        easeOut: null,
        shuffle: null,
        animIn: null,
        animOut: null,
        cssBefore: null,
        cssAfter: null,
        fxFn: null,
        height: "auto",
        startingSlide: 0,
        sync: 1,
        random: 0,
        fit: 0,
        containerResize: 1,
        pause: 0,
        pauseOnPagerHover: 0,
        autostop: 0,
        autostopCount: 0,
        delay: 0,
        slideExpr: null,
        cleartype: !i.support.opacity,
        cleartypeNoBg: false,
        nowrap: 0,
        fastOnEvent: 0,
        randomizeEffects: 1,
        rev: 0,
        manualTrump: true,
        requeueOnImageNotLoaded: true,
        requeueTimeout: 250
    }
})(jQuery);
/*
 * jQuery Cycle Plugin Transition Definitions
 * This script is a plugin for the jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2008 M. Alsup
 * Version:	 2.72
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function (a) {
    a.fn.cycle.transitions.none = function (c, d, b) {
        b.fxFn = function (g, e, f, h) {
            a(e).show();
            a(g).hide();
            h()
        }
    };
    a.fn.cycle.transitions.scrollUp = function (d, e, c) {
        d.css("overflow", "hidden");
        c.before.push(a.fn.cycle.commonReset);
        var b = d.height();
        c.cssBefore = {
            top: b,
            left: 0
        };
        c.cssFirst = {
            top: 0
        };
        c.animIn = {
            top: 0
        };
        c.animOut = {
            top: -b
        }
    };
    a.fn.cycle.transitions.scrollDown = function (d, e, c) {
        d.css("overflow", "hidden");
        c.before.push(a.fn.cycle.commonReset);
        var b = d.height();
        c.cssFirst = {
            top: 0
        };
        c.cssBefore = {
            top: -b,
            left: 0
        };
        c.animIn = {
            top: 0
        };
        c.animOut = {
            top: b
        }
    };
    a.fn.cycle.transitions.scrollLeft = function (d, e, c) {
        d.css("overflow", "hidden");
        c.before.push(a.fn.cycle.commonReset);
        var b = d.width();
        c.cssFirst = {
            left: 0
        };
        c.cssBefore = {
            left: b,
            top: 0
        };
        c.animIn = {
            left: 0
        };
        c.animOut = {
            left: 0 - b
        }
    };
    a.fn.cycle.transitions.scrollRight = function (d, e, c) {
        d.css("overflow", "hidden");
        c.before.push(a.fn.cycle.commonReset);
        var b = d.width();
        c.cssFirst = {
            left: 0
        };
        c.cssBefore = {
            left: -b,
            top: 0
        };
        c.animIn = {
            left: 0
        };
        c.animOut = {
            left: b
        }
    };
    a.fn.cycle.transitions.scrollHorz = function (c, d, b) {
        c.css("overflow", "hidden").width();
        b.before.push(function (h, f, g, e) {
            a.fn.cycle.commonReset(h, f, g);
            g.cssBefore.left = e ? (f.cycleW - 1) : (1 - f.cycleW);
            g.animOut.left = e ? -h.cycleW : h.cycleW
        });
        b.cssFirst = {
            left: 0
        };
        b.cssBefore = {
            top: 0
        };
        b.animIn = {
            left: 0
        };
        b.animOut = {
            top: 0
        }
    };
    a.fn.cycle.transitions.scrollVert = function (c, d, b) {
        c.css("overflow", "hidden");
        b.before.push(function (h, f, g, e) {
            a.fn.cycle.commonReset(h, f, g);
            g.cssBefore.top = e ? (1 - f.cycleH) : (f.cycleH - 1);
            g.animOut.top = e ? h.cycleH : -h.cycleH
        });
        b.cssFirst = {
            top: 0
        };
        b.cssBefore = {
            left: 0
        };
        b.animIn = {
            top: 0
        };
        b.animOut = {
            left: 0
        }
    };
    a.fn.cycle.transitions.slideX = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a(f.elements).not(g).hide();
            a.fn.cycle.commonReset(g, e, f, false, true);
            f.animIn.width = e.cycleW
        });
        b.cssBefore = {
            left: 0,
            top: 0,
            width: 0
        };
        b.animIn = {
            width: "show"
        };
        b.animOut = {
            width: 0
        }
    };
    a.fn.cycle.transitions.slideY = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a(f.elements).not(g).hide();
            a.fn.cycle.commonReset(g, e, f, true, false);
            f.animIn.height = e.cycleH
        });
        b.cssBefore = {
            left: 0,
            top: 0,
            height: 0
        };
        b.animIn = {
            height: "show"
        };
        b.animOut = {
            height: 0
        }
    };
    a.fn.cycle.transitions.shuffle = function (e, f, d) {
        var c, b = e.css("overflow", "visible").width();
        f.css({
            left: 0,
            top: 0
        });
        d.before.push(function (i, g, h) {
            a.fn.cycle.commonReset(i, g, h, true, true, true)
        });
        if (!d.speedAdjusted) {
            d.speed = d.speed / 2;
            d.speedAdjusted = true
        }
        d.random = 0;
        d.shuffle = d.shuffle || {
            left: -b,
            top: 15
        };
        d.els = [];
        for (c = 0; c < f.length; c++) {
            d.els.push(f[c])
        }
        for (c = 0; c < d.currSlide; c++) {
            d.els.push(d.els.shift())
        }
        d.fxFn = function (m, j, l, g, i) {
            var h = i ? a(m) : a(j);
            a(j).css(l.cssBefore);
            var k = l.slideCount;
            h.animate(l.shuffle, l.speedIn, l.easeIn, function () {
                var o = a.fn.cycle.hopsFromLast(l, i);
                for (var q = 0; q < o; q++) {
                    i ? l.els.push(l.els.shift()) : l.els.unshift(l.els.pop())
                }
                if (i) {
                    for (var r = 0, n = l.els.length; r < n; r++) {
                        a(l.els[r]).css("z-index", n - r + k)
                    }
                } else {
                    var s = a(m).css("z-index");
                    h.css("z-index", parseInt(s) + 1 + k)
                }
                h.animate({
                    left: 0,
                    top: 0
                }, l.speedOut, l.easeOut, function () {
                    a(i ? this : m).hide();
                    if (g) {
                        g()
                    }
                })
            })
        };
        d.cssBefore = {
            display: "block",
            opacity: 1,
            top: 0,
            left: 0
        }
    };
    a.fn.cycle.transitions.turnUp = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, true, false);
            f.cssBefore.top = e.cycleH;
            f.animIn.height = e.cycleH
        });
        b.cssFirst = {
            top: 0
        };
        b.cssBefore = {
            left: 0,
            height: 0
        };
        b.animIn = {
            top: 0
        };
        b.animOut = {
            height: 0
        }
    };
    a.fn.cycle.transitions.turnDown = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, true, false);
            f.animIn.height = e.cycleH;
            f.animOut.top = g.cycleH
        });
        b.cssFirst = {
            top: 0
        };
        b.cssBefore = {
            left: 0,
            top: 0,
            height: 0
        };
        b.animOut = {
            height: 0
        }
    };
    a.fn.cycle.transitions.turnLeft = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, true);
            f.cssBefore.left = e.cycleW;
            f.animIn.width = e.cycleW
        });
        b.cssBefore = {
            top: 0,
            width: 0
        };
        b.animIn = {
            left: 0
        };
        b.animOut = {
            width: 0
        }
    };
    a.fn.cycle.transitions.turnRight = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, true);
            f.animIn.width = e.cycleW;
            f.animOut.left = g.cycleW
        });
        b.cssBefore = {
            top: 0,
            left: 0,
            width: 0
        };
        b.animIn = {
            left: 0
        };
        b.animOut = {
            width: 0
        }
    };
    a.fn.cycle.transitions.zoom = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, false, true);
            f.cssBefore.top = e.cycleH / 2;
            f.cssBefore.left = e.cycleW / 2;
            f.animIn = {
                top: 0,
                left: 0,
                width: e.cycleW,
                height: e.cycleH
            };
            f.animOut = {
                width: 0,
                height: 0,
                top: g.cycleH / 2,
                left: g.cycleW / 2
            }
        });
        b.cssFirst = {
            top: 0,
            left: 0
        };
        b.cssBefore = {
            width: 0,
            height: 0
        }
    };
    a.fn.cycle.transitions.fadeZoom = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, false);
            f.cssBefore.left = e.cycleW / 2;
            f.cssBefore.top = e.cycleH / 2;
            f.animIn = {
                top: 0,
                left: 0,
                width: e.cycleW,
                height: e.cycleH
            }
        });
        b.cssBefore = {
            width: 0,
            height: 0
        };
        b.animOut = {
            opacity: 0
        }
    };
    a.fn.cycle.transitions.blindX = function (d, e, c) {
        var b = d.css("overflow", "hidden").width();
        c.before.push(function (h, f, g) {
            a.fn.cycle.commonReset(h, f, g);
            g.animIn.width = f.cycleW;
            g.animOut.left = h.cycleW
        });
        c.cssBefore = {
            left: b,
            top: 0
        };
        c.animIn = {
            left: 0
        };
        c.animOut = {
            left: b
        }
    };
    a.fn.cycle.transitions.blindY = function (d, e, c) {
        var b = d.css("overflow", "hidden").height();
        c.before.push(function (h, f, g) {
            a.fn.cycle.commonReset(h, f, g);
            g.animIn.height = f.cycleH;
            g.animOut.top = h.cycleH
        });
        c.cssBefore = {
            top: b,
            left: 0
        };
        c.animIn = {
            top: 0
        };
        c.animOut = {
            top: b
        }
    };
    a.fn.cycle.transitions.blindZ = function (e, f, d) {
        var c = e.css("overflow", "hidden").height();
        var b = e.width();
        d.before.push(function (i, g, h) {
            a.fn.cycle.commonReset(i, g, h);
            h.animIn.height = g.cycleH;
            h.animOut.top = i.cycleH
        });
        d.cssBefore = {
            top: c,
            left: b
        };
        d.animIn = {
            top: 0,
            left: 0
        };
        d.animOut = {
            top: c,
            left: b
        }
    };
    a.fn.cycle.transitions.growX = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, true);
            f.cssBefore.left = this.cycleW / 2;
            f.animIn = {
                left: 0,
                width: this.cycleW
            };
            f.animOut = {
                left: 0
            }
        });
        b.cssBefore = {
            width: 0,
            top: 0
        }
    };
    a.fn.cycle.transitions.growY = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, true, false);
            f.cssBefore.top = this.cycleH / 2;
            f.animIn = {
                top: 0,
                height: this.cycleH
            };
            f.animOut = {
                top: 0
            }
        });
        b.cssBefore = {
            height: 0,
            left: 0
        }
    };
    a.fn.cycle.transitions.curtainX = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, false, true, true);
            f.cssBefore.left = e.cycleW / 2;
            f.animIn = {
                left: 0,
                width: this.cycleW
            };
            f.animOut = {
                left: g.cycleW / 2,
                width: 0
            }
        });
        b.cssBefore = {
            top: 0,
            width: 0
        }
    };
    a.fn.cycle.transitions.curtainY = function (c, d, b) {
        b.before.push(function (g, e, f) {
            a.fn.cycle.commonReset(g, e, f, true, false, true);
            f.cssBefore.top = e.cycleH / 2;
            f.animIn = {
                top: 0,
                height: e.cycleH
            };
            f.animOut = {
                top: g.cycleH / 2,
                height: 0
            }
        });
        b.cssBefore = {
            left: 0,
            height: 0
        }
    };
    a.fn.cycle.transitions.cover = function (f, g, e) {
        var i = e.direction || "left";
        var b = f.css("overflow", "hidden").width();
        var c = f.height();
        e.before.push(function (j, d, h) {
            a.fn.cycle.commonReset(j, d, h);
            if (i == "right") {
                h.cssBefore.left = -b
            } else {
                if (i == "up") {
                    h.cssBefore.top = c
                } else {
                    if (i == "down") {
                        h.cssBefore.top = -c
                    } else {
                        h.cssBefore.left = b
                    }
                }
            }
        });
        e.animIn = {
            left: 0,
            top: 0
        };
        e.animOut = {
            opacity: 1
        };
        e.cssBefore = {
            top: 0,
            left: 0
        }
    };
    a.fn.cycle.transitions.uncover = function (f, g, e) {
        var i = e.direction || "left";
        var b = f.css("overflow", "hidden").width();
        var c = f.height();
        e.before.push(function (j, d, h) {
            a.fn.cycle.commonReset(j, d, h, true, true, true);
            if (i == "right") {
                h.animOut.left = b
            } else {
                if (i == "up") {
                    h.animOut.top = -c
                } else {
                    if (i == "down") {
                        h.animOut.top = c
                    } else {
                        h.animOut.left = -b
                    }
                }
            }
        });
        e.animIn = {
            left: 0,
            top: 0
        };
        e.animOut = {
            opacity: 1
        };
        e.cssBefore = {
            top: 0,
            left: 0
        }
    };
    a.fn.cycle.transitions.toss = function (e, f, d) {
        var b = e.css("overflow", "visible").width();
        var c = e.height();
        d.before.push(function (i, g, h) {
            a.fn.cycle.commonReset(i, g, h, true, true, true);
            if (!h.animOut.left && !h.animOut.top) {
                h.animOut = {
                    left: b * 2,
                    top: -c / 2,
                    opacity: 0
                }
            } else {
                h.animOut.opacity = 0
            }
        });
        d.cssBefore = {
            left: 0,
            top: 0
        };
        d.animIn = {
            left: 0
        }
    };
    a.fn.cycle.transitions.wipe = function (s, m, e) {
        var q = s.css("overflow", "hidden").width();
        var j = s.height();
        e.cssBefore = e.cssBefore || {};
        var g;
        if (e.clip) {
            if (/l2r/.test(e.clip)) {
                g = "rect(0px 0px " + j + "px 0px)"
            } else {
                if (/r2l/.test(e.clip)) {
                    g = "rect(0px " + q + "px " + j + "px " + q + "px)"
                } else {
                    if (/t2b/.test(e.clip)) {
                        g = "rect(0px " + q + "px 0px 0px)"
                    } else {
                        if (/b2t/.test(e.clip)) {
                            g = "rect(" + j + "px " + q + "px " + j + "px 0px)"
                        } else {
                            if (/zoom/.test(e.clip)) {
                                var o = parseInt(j / 2);
                                var f = parseInt(q / 2);
                                g = "rect(" + o + "px " + f + "px " + o + "px " + f + "px)"
                            }
                        }
                    }
                }
            }
        }
        e.cssBefore.clip = e.cssBefore.clip || g || "rect(0px 0px 0px 0px)";
        var k = e.cssBefore.clip.match(/(\d+)/g);
        var u = parseInt(k[0]),
            c = parseInt(k[1]),
            n = parseInt(k[2]),
            i = parseInt(k[3]);
        e.before.push(function (w, h, t) {
            if (w == h) {
                return
            }
            var d = a(w),
                b = a(h);
            a.fn.cycle.commonReset(w, h, t, true, true, false);
            t.cssAfter.display = "block";
            var r = 1,
                l = parseInt((t.speedIn / 13)) - 1;
            (function v() {
                var y = u ? u - parseInt(r * (u / l)) : 0;
                var z = i ? i - parseInt(r * (i / l)) : 0;
                var A = n < j ? n + parseInt(r * ((j - n) / l || 1)) : j;
                var x = c < q ? c + parseInt(r * ((q - c) / l || 1)) : q;
                b.css({
                    clip: "rect(" + y + "px " + x + "px " + A + "px " + z + "px)"
                });
                (r++ <= l) ? setTimeout(v, 13) : d.css("display", "none")
            })()
        });
        e.cssBefore = {
            display: "block",
            opacity: 1,
            top: 0,
            left: 0
        };
        e.animIn = {
            left: 0
        };
        e.animOut = {
            left: 0
        }
    }
})(jQuery);
(function (c) {
    var a = c.scrollTo = function (f, e, d) {
        c(window).scrollTo(f, e, d)
    };
    a.defaults = {
        axis: "xy",
        duration: parseFloat(c.fn.jquery) >= 1.3 ? 0 : 1
    };
    a.window = function (d) {
        return c(window)._scrollable()
    };
    c.fn._scrollable = function () {
        return this.map(function () {
            var e = this,
                d = !e.nodeName || c.inArray(e.nodeName.toLowerCase(), ["iframe", "#document", "html", "body"]) != -1;
            if (!d) {
                return e
            }
            var f = (e.contentWindow || e).document || e.ownerDocument || e;
            return c.browser.safari || f.compatMode == "BackCompat" ? f.body : f.documentElement
        })
    };
    c.fn.scrollTo = function (f, e, d) {
        if (typeof e == "object") {
            d = e;
            e = 0
        }
        if (typeof d == "function") {
            d = {
                onAfter: d
            }
        }
        if (f == "max") {
            f = 9000000000
        }
        d = c.extend({}, a.defaults, d);
        e = e || d.speed || d.duration;
        d.queue = d.queue && d.axis.length > 1;
        if (d.queue) {
            e /= 2
        }
        d.offset = b(d.offset);
        d.over = b(d.over);
        return this._scrollable().each(function () {
            var l = this,
                j = c(l),
                k = f,
                i, g = {},
                m = j.is("html,body");
            switch (typeof k) {
            case "number":
            case "string":
                if (/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)) {
                    k = b(k);
                    break
                }
                k = c(k, this);
            case "object":
                if (k.is || k.style) {
                    i = (k = c(k)).offset()
                }
            }
            c.each(d.axis.split(""), function (r, s) {
                var t = s == "x" ? "Left" : "Top",
                    v = t.toLowerCase(),
                    q = "scroll" + t,
                    o = l[q],
                    n = a.max(l, s);
                if (i) {
                    g[q] = i[v] + (m ? 0 : o - j.offset()[v]);
                    if (d.margin) {
                        g[q] -= parseInt(k.css("margin" + t)) || 0;
                        g[q] -= parseInt(k.css("border" + t + "Width")) || 0
                    }
                    g[q] += d.offset[v] || 0;
                    if (d.over[v]) {
                        g[q] += k[s == "x" ? "width" : "height"]() * d.over[v]
                    }
                } else {
                    var u = k[v];
                    g[q] = u.slice && u.slice(-1) == "%" ? parseFloat(u) / 100 * n : u
                }
                if (/^\d+$/.test(g[q])) {
                    g[q] = g[q] <= 0 ? 0 : Math.min(g[q], n)
                }
                if (!r && d.queue) {
                    if (o != g[q]) {
                        h(d.onAfterFirst)
                    }
                    delete g[q]
                }
            });
            h(d.onAfter);

            function h(n) {
                j.animate(g, e, d.easing, n &&
                function () {
                    n.call(this, f, d)
                })
            }
        }).end()
    };
    a.max = function (j, i) {
        var h = i == "x" ? "Width" : "Height",
            e = "scroll" + h;
        if (!c(j).is("html,body")) {
            return j[e] - c(j)[h.toLowerCase()]()
        }
        var g = "client" + h,
            f = j.ownerDocument.documentElement,
            d = j.ownerDocument.body;
        return Math.max(f[e], d[e]) - Math.min(f[g], d[g])
    };

    function b(d) {
        return typeof d == "object" ? d : {
            top: d,
            left: d
        }
    }
})(jQuery);
(function (a) {
    a.belowthefold = function (c, d) {
        var b = a(window).height() + a(window).scrollTop();
        return b <= a(c).offset().top - d.threshold
    };
    a.abovethetop = function (b, c) {
        var d = a(window).scrollTop();
        return d >= a(b).offset().top + a(b).height() - c.threshold
    };
    a.rightofscreen = function (c, d) {
        var b = a(window).width() + a(window).scrollLeft();
        return b <= a(c).offset().left - d.threshold
    };
    a.leftofscreen = function (b, c) {
        var d = a(window).scrollLeft();
        return d >= a(b).offset().left + a(b).width() - c.threshold
    };
    a.inviewport = function (b, c) {
        return !a.rightofscreen(b, c) && !a.leftofscreen(b, c) && !a.belowthefold(b, c) && !a.abovethetop(b, c)
    };
    a.extend(a.expr[":"], {
        "below-the-fold": function (c, d, b) {
            return a.belowthefold(c, {
                threshold: 0
            })
        },
        "above-the-top": function (c, d, b) {
            return a.abovethetop(c, {
                threshold: 0
            })
        },
        "left-of-screen": function (c, d, b) {
            return a.leftofscreen(c, {
                threshold: 0
            })
        },
        "right-of-screen": function (c, d, b) {
            return a.rightofscreen(c, {
                threshold: 0
            })
        },
        "in-viewport": function (c, d, b) {
            return a.inviewport(c, {
                threshold: 0
            })
        }
    })
})(jQuery);

