/*
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */ (function (d, a0) {
    function an() {
        if (!m.isReady) {
            try {
                aL.documentElement.doScroll("left")
            } catch (c) {
                setTimeout(an, 1);
                return
            }
            m.ready()
        }
    }
    function aF(c, s) {
        s.src ? m.ajax({
            url: s.src,
            async: false,
            dataType: "script"
        }) : m.globalEval(s.text || s.textContent || s.innerHTML || "");
        s.parentNode && s.parentNode.removeChild(s)
    }
    function a5(c, s, w, F, A, J) {
        var G = c.length;
        if (typeof s === "object") {
            for (var K in s) {
                a5(c, K, s[K], F, A, w)
            }
            return c
        }
        if (w !== a0) {
            F = !J && F && m.isFunction(w);
            for (K = 0; K < G; K++) {
                A(c[K], s, F ? w.call(c[K], K, A(c[K], s)) : w, J)
            }
            return c
        }
        return G ? A(c[0], s) : a0
    }
    function ab() {
        return (new Date).getTime()
    }
    function a9() {
        return false
    }
    function bd() {
        return true
    }
    function ar(c, s, w) {
        w[0].type = c;
        return m.event.handle.apply(s, w)
    }
    function aw(c) {
        var s, w = [],
            F = [],
            A = arguments,
            J, G, N, K, L, O;
        G = m.data(this, "events");
        if (!(c.liveFired === this || !G || !G.live || c.button && c.type === "click")) {
            c.liveFired = this;
            var P = G.live.slice(0);
            for (K = 0; K < P.length; K++) {
                G = P[K];
                G.origType.replace(av, "") === c.type ? F.push(G.selector) : P.splice(K--, 1)
            }
            J = m(c.target).closest(F, c.currentTarget);
            L = 0;
            for (O = J.length; L < O; L++) {
                for (K = 0; K < P.length; K++) {
                    G = P[K];
                    if (J[L].selector === G.selector) {
                        N = J[L].elem;
                        F = null;
                        if (G.preType === "mouseenter" || G.preType === "mouseleave") {
                            F = m(c.relatedTarget).closest(G.selector)[0]
                        }
                        if (!F || F !== N) {
                            w.push({
                                elem: N,
                                handleObj: G
                            })
                        }
                    }
                }
            }
            L = 0;
            for (O = w.length; L < O; L++) {
                J = w[L];
                c.currentTarget = J.elem;
                c.data = J.handleObj.data;
                c.handleObj = J.handleObj;
                if (J.handleObj.origHandler.apply(J.elem, A) === false) {
                    s = false;
                    break
                }
            }
            return s
        }
    }
    function aA(c, s) {
        return "live." + (c && c !== "*" ? c + "." : "") + s.replace(/\./g, "`").replace(/ /g, "&")
    }
    function aE(c) {
        return !c || !c.parentNode || c.parentNode.nodeType === 11
    }
    function aI(c, s) {
        var w = 0;
        s.each(function () {
            if (this.nodeName === (c[w] && c[w].nodeName)) {
                var F = m.data(c[w++]),
                    A = m.data(this, F);
                if (F = F && F.events) {
                    delete A.handle;
                    A.events = {};
                    for (var J in F) {
                        for (var G in F[J]) {
                            m.event.add(this, J, F[J][G], F[J][G].data)
                        }
                    }
                }
            }
        })
    }
    function aM(c, s, w) {
        var F, A, G;
        s = s && s[0] ? s[0].ownerDocument || s[0] : aL;
        if (c.length === 1 && typeof c[0] === "string" && c[0].length < 512 && s === aL && !aQ.test(c[0]) && (m.support.checkClone || !aT.test(c[0]))) {
            A = true;
            if (G = m.fragments[c[0]]) {
                if (G !== 1) {
                    F = G
                }
            }
        }
        if (!F) {
            F = s.createDocumentFragment();
            m.clean(c, s, F, w)
        }
        if (A) {
            m.fragments[c[0]] = G ? F : 1
        }
        return {
            fragment: F,
            cacheable: A
        }
    }
    function af(c, s) {
        var w = {};
        m.each(aX.concat.apply([], aX.slice(0, s)), function () {
            w[this] = c
        });
        return w
    }
    function a2(c) {
        return "scrollTo" in c && c.document ? c : c.nodeType === 9 ? c.defaultView || c.parentWindow : false
    }
    var m = function (c, s) {
            return new m.fn.init(c, s)
        },
        aJ = d.jQuery,
        aN = d.$,
        aL = d.document,
        aP, aR = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,
        aU = /^.[^:#\[\.,]*$/,
        aY = /\S/,
        a3 = /^(\s|\u00A0)+|(\s|\u00A0)+$/g,
        a7 = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
        az = navigator.userAgent,
        a6 = false,
        aD = [],
        aj, a = Object.prototype.toString,
        e = Object.prototype.hasOwnProperty,
        i = Array.prototype.push,
        aH = Array.prototype.slice,
        ba = Array.prototype.indexOf;
    m.fn = m.prototype = {
        init: function (c, s) {
            var w, A;
            if (!c) {
                return this
            }
            if (c.nodeType) {
                this.context = this[0] = c;
                this.length = 1;
                return this
            }
            if (c === "body" && !s) {
                this.context = aL;
                this[0] = aL.body;
                this.selector = "body";
                this.length = 1;
                return this
            }
            if (typeof c === "string") {
                if ((w = aR.exec(c)) && (w[1] || !s)) {
                    if (w[1]) {
                        A = s ? s.ownerDocument || s : aL;
                        if (c = a7.exec(c)) {
                            if (m.isPlainObject(s)) {
                                c = [aL.createElement(c[1])];
                                m.fn.attr.call(c, s, true)
                            } else {
                                c = [A.createElement(c[1])]
                            }
                        } else {
                            c = aM([w[1]], [A]);
                            c = (c.cacheable ? c.fragment.cloneNode(true) : c.fragment).childNodes
                        }
                        return m.merge(this, c)
                    } else {
                        if (s = aL.getElementById(w[2])) {
                            if (s.id !== w[2]) {
                                return aP.find(c)
                            }
                            this.length = 1;
                            this[0] = s
                        }
                        this.context = aL;
                        this.selector = c;
                        return this
                    }
                } else {
                    if (!s && /^\w+$/.test(c)) {
                        this.selector = c;
                        this.context = aL;
                        c = aL.getElementsByTagName(c);
                        return m.merge(this, c)
                    } else {
                        return !s || s.jquery ? (s || aP).find(c) : m(s).find(c)
                    }
                }
            } else {
                if (m.isFunction(c)) {
                    return aP.ready(c)
                }
            }
            if (c.selector !== a0) {
                this.selector = c.selector;
                this.context = c.context
            }
            return m.makeArray(c, this)
        },
        selector: "",
        jquery: "1.4.2",
        length: 0,
        size: function () {
            return this.length
        },
        toArray: function () {
            return aH.call(this, 0)
        },
        get: function (c) {
            return c == null ? this.toArray() : c < 0 ? this.slice(c)[0] : this[c]
        },
        pushStack: function (c, s, w) {
            var A = m();
            m.isArray(c) ? i.apply(A, c) : m.merge(A, c);
            A.prevObject = this;
            A.context = this.context;
            if (s === "find") {
                A.selector = this.selector + (this.selector ? " " : "") + w
            } else {
                if (s) {
                    A.selector = this.selector + "." + s + "(" + w + ")"
                }
            }
            return A
        },
        each: function (c, s) {
            return m.each(this, c, s)
        },
        ready: function (c) {
            m.bindReady();
            if (m.isReady) {
                c.call(aL, m)
            } else {
                aD && aD.push(c)
            }
            return this
        },
        eq: function (c) {
            return c === -1 ? this.slice(c) : this.slice(c, +c + 1)
        },
        first: function () {
            return this.eq(0)
        },
        last: function () {
            return this.eq(-1)
        },
        slice: function () {
            return this.pushStack(aH.apply(this, arguments), "slice", aH.call(arguments).join(","))
        },
        map: function (c) {
            return this.pushStack(m.map(this, function (s, w) {
                return c.call(s, w, s)
            }))
        },
        end: function () {
            return this.prevObject || m(null)
        },
        push: i,
        sort: [].sort,
        splice: [].splice
    };
    m.fn.init.prototype = m.fn;
    m.extend = m.fn.extend = function () {
        var c = arguments[0] || {},
            s = 1,
            w = arguments.length,
            F = false,
            A, J, G, K;
        if (typeof c === "boolean") {
            F = c;
            c = arguments[1] || {};
            s = 2
        }
        if (typeof c !== "object" && !m.isFunction(c)) {
            c = {}
        }
        if (w === s) {
            c = this;
            --s
        }
        for (; s < w; s++) {
            if ((A = arguments[s]) != null) {
                for (J in A) {
                    G = c[J];
                    K = A[J];
                    if (c !== K) {
                        if (F && K && (m.isPlainObject(K) || m.isArray(K))) {
                            G = G && (m.isPlainObject(G) || m.isArray(G)) ? G : m.isArray(K) ? [] : {};
                            c[J] = m.extend(F, G, K)
                        } else {
                            if (K !== a0) {
                                c[J] = K
                            }
                        }
                    }
                }
            }
        }
        return c
    };
    m.extend({
        noConflict: function (c) {
            d.$ = aN;
            if (c) {
                d.jQuery = aJ
            }
            return m
        },
        isReady: false,
        ready: function () {
            if (!m.isReady) {
                if (!aL.body) {
                    return setTimeout(m.ready, 13)
                }
                m.isReady = true;
                if (aD) {
                    for (var c, s = 0; c = aD[s++];) {
                        c.call(aL, m)
                    }
                    aD = null
                }
                m.fn.triggerHandler && m(aL).triggerHandler("ready")
            }
        },
        bindReady: function () {
            if (!a6) {
                a6 = true;
                if (aL.readyState === "complete") {
                    return m.ready()
                }
                if (aL.addEventListener) {
                    aL.addEventListener("DOMContentLoaded", aj, false);
                    d.addEventListener("load", m.ready, false)
                } else {
                    if (aL.attachEvent) {
                        aL.attachEvent("onreadystatechange", aj);
                        d.attachEvent("onload", m.ready);
                        var c = false;
                        try {
                            c = d.frameElement == null
                        } catch (s) {}
                        aL.documentElement.doScroll && c && an()
                    }
                }
            }
        },
        isFunction: function (c) {
            return a.call(c) === "[object Function]"
        },
        isArray: function (c) {
            return a.call(c) === "[object Array]"
        },
        isPlainObject: function (c) {
            if (!c || a.call(c) !== "[object Object]" || c.nodeType || c.setInterval) {
                return false
            }
            if (c.constructor && !e.call(c, "constructor") && !e.call(c.constructor.prototype, "isPrototypeOf")) {
                return false
            }
            var s;
            for (s in c) {}
            return s === a0 || e.call(c, s)
        },
        isEmptyObject: function (c) {
            for (var s in c) {
                return false
            }
            return true
        },
        error: function (c) {
            throw c
        },
        parseJSON: function (c) {
            if (typeof c !== "string" || !c) {
                return null
            }
            c = m.trim(c);
            if (/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
                return d.JSON && d.JSON.parse ? d.JSON.parse(c) : (new Function("return " + c))()
            } else {
                m.error("Invalid JSON: " + c)
            }
        },
        noop: function () {},
        globalEval: function (c) {
            if (c && aY.test(c)) {
                var s = aL.getElementsByTagName("head")[0] || aL.documentElement,
                    w = aL.createElement("script");
                w.type = "text/javascript";
                if (m.support.scriptEval) {
                    w.appendChild(aL.createTextNode(c))
                } else {
                    w.text = c
                }
                s.insertBefore(w, s.firstChild);
                s.removeChild(w)
            }
        },
        nodeName: function (c, s) {
            return c.nodeName && c.nodeName.toUpperCase() === s.toUpperCase()
        },
        each: function (c, s, w) {
            var F, A = 0,
                J = c.length,
                G = J === a0 || m.isFunction(c);
            if (w) {
                if (G) {
                    for (F in c) {
                        if (s.apply(c[F], w) === false) {
                            break
                        }
                    }
                } else {
                    for (; A < J;) {
                        if (s.apply(c[A++], w) === false) {
                            break
                        }
                    }
                }
            } else {
                if (G) {
                    for (F in c) {
                        if (s.call(c[F], F, c[F]) === false) {
                            break
                        }
                    }
                } else {
                    for (w = c[0]; A < J && s.call(w, A, w) !== false; w = c[++A]) {}
                }
            }
            return c
        },
        trim: function (c) {
            return (c || "").replace(a3, "")
        },
        makeArray: function (c, s) {
            s = s || [];
            if (c != null) {
                c.length == null || typeof c === "string" || m.isFunction(c) || typeof c !== "function" && c.setInterval ? i.call(s, c) : m.merge(s, c)
            }
            return s
        },
        inArray: function (c, s) {
            if (s.indexOf) {
                return s.indexOf(c)
            }
            for (var w = 0, A = s.length; w < A; w++) {
                if (s[w] === c) {
                    return w
                }
            }
            return -1
        },
        merge: function (c, s) {
            var w = c.length,
                F = 0;
            if (typeof s.length === "number") {
                for (var A = s.length; F < A; F++) {
                    c[w++] = s[F]
                }
            } else {
                for (; s[F] !== a0;) {
                    c[w++] = s[F++]
                }
            }
            c.length = w;
            return c
        },
        grep: function (c, s, w) {
            for (var F = [], A = 0, G = c.length; A < G; A++) {
                !w !== !s(c[A], A) && F.push(c[A])
            }
            return F
        },
        map: function (c, s, w) {
            for (var F = [], A, J = 0, G = c.length; J < G; J++) {
                A = s(c[J], J, w);
                if (A != null) {
                    F[F.length] = A
                }
            }
            return F.concat.apply([], F)
        },
        guid: 1,
        proxy: function (c, s, w) {
            if (arguments.length === 2) {
                if (typeof s === "string") {
                    w = c;
                    c = w[s];
                    s = a0
                } else {
                    if (s && !m.isFunction(s)) {
                        w = s;
                        s = a0
                    }
                }
            }
            if (!s && c) {
                s = function () {
                    return c.apply(w || this, arguments)
                }
            }
            if (c) {
                s.guid = c.guid = c.guid || s.guid || m.guid++
            }
            return s
        },
        uaMatch: function (c) {
            c = c.toLowerCase();
            c = /(webkit)[ \/]([\w.]+)/.exec(c) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(c) || /(msie) ([\w.]+)/.exec(c) || !/compatible/.test(c) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(c) || [];
            return {
                browser: c[1] || "",
                version: c[2] || "0"
            }
        },
        browser: {}
    });
    az = m.uaMatch(az);
    if (az.browser) {
        m.browser[az.browser] = true;
        m.browser.version = az.version
    }
    if (m.browser.webkit) {
        m.browser.safari = true
    }
    if (ba) {
        m.inArray = function (c, s) {
            return ba.call(s, c)
        }
    }
    aP = m(aL);
    if (aL.addEventListener) {
        aj = function () {
            aL.removeEventListener("DOMContentLoaded", aj, false);
            m.ready()
        }
    } else {
        if (aL.attachEvent) {
            aj = function () {
                if (aL.readyState === "complete") {
                    aL.detachEvent("onreadystatechange", aj);
                    m.ready()
                }
            }
        }
    }(function () {
        m.support = {};
        var c = aL.documentElement,
            s = aL.createElement("script"),
            w = aL.createElement("div"),
            F = "script" + ab();
        w.style.display = "none";
        w.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
        var A = w.getElementsByTagName("*"),
            J = w.getElementsByTagName("a")[0];
        if (!(!A || !A.length || !J)) {
            m.support = {
                leadingWhitespace: w.firstChild.nodeType === 3,
                tbody: !w.getElementsByTagName("tbody").length,
                htmlSerialize: !! w.getElementsByTagName("link").length,
                style: /red/.test(J.getAttribute("style")),
                hrefNormalized: J.getAttribute("href") === "/a",
                opacity: /^0.55$/.test(J.style.opacity),
                cssFloat: !! J.style.cssFloat,
                checkOn: w.getElementsByTagName("input")[0].value === "on",
                optSelected: aL.createElement("select").appendChild(aL.createElement("option")).selected,
                parentNode: w.removeChild(w.appendChild(aL.createElement("div"))).parentNode === null,
                deleteExpando: true,
                checkClone: false,
                scriptEval: false,
                noCloneEvent: true,
                boxModel: null
            };
            s.type = "text/javascript";
            try {
                s.appendChild(aL.createTextNode("window." + F + "=1;"))
            } catch (G) {}
            c.insertBefore(s, c.firstChild);
            if (d[F]) {
                m.support.scriptEval = true;
                delete d[F]
            }
            try {
                delete s.test
            } catch (L) {
                m.support.deleteExpando = false
            }
            c.removeChild(s);
            if (w.attachEvent && w.fireEvent) {
                w.attachEvent("onclick", function K() {
                    m.support.noCloneEvent = false;
                    w.detachEvent("onclick", K)
                });
                w.cloneNode(true).fireEvent("onclick")
            }
            w = aL.createElement("div");
            w.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
            c = aL.createDocumentFragment();
            c.appendChild(w.firstChild);
            m.support.checkClone = c.cloneNode(true).cloneNode(true).lastChild.checked;
            m(function () {
                var N = aL.createElement("div");
                N.style.width = N.style.paddingLeft = "1px";
                aL.body.appendChild(N);
                m.boxModel = m.support.boxModel = N.offsetWidth === 2;
                aL.body.removeChild(N).style.display = "none"
            });
            c = function (N) {
                var O = aL.createElement("div");
                N = "on" + N;
                var P = N in O;
                if (!P) {
                    O.setAttribute(N, "return;");
                    P = typeof O[N] === "function"
                }
                return P
            };
            m.support.submitBubbles = c("submit");
            m.support.changeBubbles = c("change");
            c = s = w = A = J = null
        }
    })();
    m.props = {
        "for": "htmlFor",
        "class": "className",
        readonly: "readOnly",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        rowspan: "rowSpan",
        colspan: "colSpan",
        tabindex: "tabIndex",
        usemap: "useMap",
        frameborder: "frameBorder"
    };
    var D = "jQuery" + ab(),
        bb = 0,
        be = {};
    m.extend({
        cache: {},
        expando: D,
        noData: {
            embed: true,
            object: true,
            applet: true
        },
        data: function (c, s, w) {
            if (!(c.nodeName && m.noData[c.nodeName.toLowerCase()])) {
                c = c == d ? be : c;
                var F = c[D],
                    A = m.cache;
                if (!F && typeof s === "string" && w === a0) {
                    return null
                }
                F || (F = ++bb);
                if (typeof s === "object") {
                    c[D] = F;
                    A[F] = m.extend(true, {}, s)
                } else {
                    if (!A[F]) {
                        c[D] = F;
                        A[F] = {}
                    }
                }
                c = A[F];
                if (w !== a0) {
                    c[s] = w
                }
                return typeof s === "string" ? c[s] : c
            }
        },
        removeData: function (c, s) {
            if (!(c.nodeName && m.noData[c.nodeName.toLowerCase()])) {
                c = c == d ? be : c;
                var w = c[D],
                    F = m.cache,
                    A = F[w];
                if (s) {
                    if (A) {
                        delete A[s];
                        m.isEmptyObject(A) && m.removeData(c)
                    }
                } else {
                    if (m.support.deleteExpando) {
                        delete c[m.expando]
                    } else {
                        c.removeAttribute && c.removeAttribute(m.expando)
                    }
                    delete F[w]
                }
            }
        }
    });
    m.fn.extend({
        data: function (c, s) {
            if (typeof c === "undefined" && this.length) {
                return m.data(this[0])
            } else {
                if (typeof c === "object") {
                    return this.each(function () {
                        m.data(this, c)
                    })
                }
            }
            var w = c.split(".");
            w[1] = w[1] ? "." + w[1] : "";
            if (s === a0) {
                var A = this.triggerHandler("getData" + w[1] + "!", [w[0]]);
                if (A === a0 && this.length) {
                    A = m.data(this[0], c)
                }
                return A === a0 && w[1] ? this.data(w[0]) : A
            } else {
                return this.trigger("setData" + w[1] + "!", [w[0], s]).each(function () {
                    m.data(this, c, s)
                })
            }
        },
        removeData: function (c) {
            return this.each(function () {
                m.removeData(this, c)
            })
        }
    });
    m.extend({
        queue: function (c, s, w) {
            if (c) {
                s = (s || "fx") + "queue";
                var A = m.data(c, s);
                if (!w) {
                    return A || []
                }
                if (!A || m.isArray(w)) {
                    A = m.data(c, s, m.makeArray(w))
                } else {
                    A.push(w)
                }
                return A
            }
        },
        dequeue: function (c, s) {
            s = s || "fx";
            var w = m.queue(c, s),
                A = w.shift();
            if (A === "inprogress") {
                A = w.shift()
            }
            if (A) {
                s === "fx" && w.unshift("inprogress");
                A.call(c, function () {
                    m.dequeue(c, s)
                })
            }
        }
    });
    m.fn.extend({
        queue: function (c, s) {
            if (typeof c !== "string") {
                s = c;
                c = "fx"
            }
            if (s === a0) {
                return m.queue(this[0], c)
            }
            return this.each(function () {
                var w = m.queue(this, c, s);
                c === "fx" && w[0] !== "inprogress" && m.dequeue(this, c)
            })
        },
        dequeue: function (c) {
            return this.each(function () {
                m.dequeue(this, c)
            })
        },
        delay: function (c, s) {
            c = m.fx ? m.fx.speeds[c] || c : c;
            s = s || "fx";
            return this.queue(s, function () {
                var w = this;
                setTimeout(function () {
                    m.dequeue(w, s)
                }, c)
            })
        },
        clearQueue: function (c) {
            return this.queue(c || "fx", [])
        }
    });
    var f = /[\n\t]/g,
        n = /\s+/,
        bf = /\r/g,
        b = /href|src|style/,
        g = /(button|input)/i,
        k = /(button|input|object|select|textarea)/i,
        p = /^(a|area)$/i,
        j = /radio|checkbox/;
    m.fn.extend({
        attr: function (c, s) {
            return a5(this, c, s, true, m.attr)
        },
        removeAttr: function (c) {
            return this.each(function () {
                m.attr(this, c, "");
                this.nodeType === 1 && this.removeAttribute(c)
            })
        },
        addClass: function (c) {
            if (m.isFunction(c)) {
                return this.each(function (N) {
                    var O = m(this);
                    O.addClass(c.call(this, N, O.attr("class")))
                })
            }
            if (c && typeof c === "string") {
                for (var s = (c || "").split(n), w = 0, F = this.length; w < F; w++) {
                    var A = this[w];
                    if (A.nodeType === 1) {
                        if (A.className) {
                            for (var J = " " + A.className + " ", G = A.className, L = 0, K = s.length; L < K; L++) {
                                if (J.indexOf(" " + s[L] + " ") < 0) {
                                    G += " " + s[L]
                                }
                            }
                            A.className = m.trim(G)
                        } else {
                            A.className = c
                        }
                    }
                }
            }
            return this
        },
        removeClass: function (c) {
            if (m.isFunction(c)) {
                return this.each(function (L) {
                    var N = m(this);
                    N.removeClass(c.call(this, L, N.attr("class")))
                })
            }
            if (c && typeof c === "string" || c === a0) {
                for (var s = (c || "").split(n), w = 0, F = this.length; w < F; w++) {
                    var A = this[w];
                    if (A.nodeType === 1 && A.className) {
                        if (c) {
                            for (var J = (" " + A.className + " ").replace(f, " "), G = 0, K = s.length; G < K; G++) {
                                J = J.replace(" " + s[G] + " ", " ")
                            }
                            A.className = m.trim(J)
                        } else {
                            A.className = ""
                        }
                    }
                }
            }
            return this
        },
        toggleClass: function (c, s) {
            var w = typeof c,
                A = typeof s === "boolean";
            if (m.isFunction(c)) {
                return this.each(function (F) {
                    var G = m(this);
                    G.toggleClass(c.call(this, F, G.attr("class"), s), s)
                })
            }
            return this.each(function () {
                if (w === "string") {
                    for (var F, J = 0, G = m(this), L = s, K = c.split(n); F = K[J++];) {
                        L = A ? L : !G.hasClass(F);
                        G[L ? "addClass" : "removeClass"](F)
                    }
                } else {
                    if (w === "undefined" || w === "boolean") {
                        this.className && m.data(this, "__className__", this.className);
                        this.className = this.className || c === false ? "" : m.data(this, "__className__") || ""
                    }
                }
            })
        },
        hasClass: function (c) {
            c = " " + c + " ";
            for (var s = 0, w = this.length; s < w; s++) {
                if ((" " + this[s].className + " ").replace(f, " ").indexOf(c) > -1) {
                    return true
                }
            }
            return false
        },
        val: function (c) {
            if (c === a0) {
                var s = this[0];
                if (s) {
                    if (m.nodeName(s, "option")) {
                        return (s.attributes.value || {}).specified ? s.value : s.text
                    }
                    if (m.nodeName(s, "select")) {
                        var w = s.selectedIndex,
                            F = [],
                            A = s.options;
                        s = s.type === "select-one";
                        if (w < 0) {
                            return null
                        }
                        var J = s ? w : 0;
                        for (w = s ? w + 1 : A.length; J < w; J++) {
                            var G = A[J];
                            if (G.selected) {
                                c = m(G).val();
                                if (s) {
                                    return c
                                }
                                F.push(c)
                            }
                        }
                        return F
                    }
                    if (j.test(s.type) && !m.support.checkOn) {
                        return s.getAttribute("value") === null ? "on" : s.value
                    }
                    return (s.value || "").replace(bf, "")
                }
                return a0
            }
            var K = m.isFunction(c);
            return this.each(function (L) {
                var N = m(this),
                    O = c;
                if (this.nodeType === 1) {
                    if (K) {
                        O = c.call(this, L, N.val())
                    }
                    if (typeof O === "number") {
                        O += ""
                    }
                    if (m.isArray(O) && j.test(this.type)) {
                        this.checked = m.inArray(N.val(), O) >= 0
                    } else {
                        if (m.nodeName(this, "select")) {
                            var P = m.makeArray(O);
                            m("option", this).each(function () {
                                this.selected = m.inArray(m(this).val(), P) >= 0
                            });
                            if (!P.length) {
                                this.selectedIndex = -1
                            }
                        } else {
                            this.value = O
                        }
                    }
                }
            })
        }
    });
    m.extend({
        attrFn: {
            val: true,
            css: true,
            html: true,
            text: true,
            data: true,
            width: true,
            height: true,
            offset: true
        },
        attr: function (c, s, w, F) {
            if (!c || c.nodeType === 3 || c.nodeType === 8) {
                return a0
            }
            if (F && s in m.attrFn) {
                return m(c)[s](w)
            }
            F = c.nodeType !== 1 || !m.isXMLDoc(c);
            var A = w !== a0;
            s = F && m.props[s] || s;
            if (c.nodeType === 1) {
                var G = b.test(s);
                if (s in c && F && !G) {
                    if (A) {
                        s === "type" && g.test(c.nodeName) && c.parentNode && m.error("type property can't be changed");
                        c[s] = w
                    }
                    if (m.nodeName(c, "form") && c.getAttributeNode(s)) {
                        return c.getAttributeNode(s).nodeValue
                    }
                    if (s === "tabIndex") {
                        return (s = c.getAttributeNode("tabIndex")) && s.specified ? s.value : k.test(c.nodeName) || p.test(c.nodeName) && c.href ? 0 : a0
                    }
                    return c[s]
                }
                if (!m.support.style && F && s === "style") {
                    if (A) {
                        c.style.cssText = "" + w
                    }
                    return c.style.cssText
                }
                A && c.setAttribute(s, "" + w);
                c = !m.support.hrefNormalized && F && G ? c.getAttribute(s, 2) : c.getAttribute(s);
                return c === null ? a0 : c
            }
            return m.style(c, s, w)
        }
    });
    var av = /\.(.*)$/,
        t = function (c) {
            return c.replace(/[^\w\s\.\|`]/g, function (s) {
                return "\\" + s
            })
        };
    m.event = {
        add: function (c, s, w, F) {
            if (!(c.nodeType === 3 || c.nodeType === 8)) {
                if (c.setInterval && c !== d && !c.frameElement) {
                    c = d
                }
                var A, J;
                if (w.handler) {
                    A = w;
                    w = A.handler
                }
                if (!w.guid) {
                    w.guid = m.guid++
                }
                if (J = m.data(c)) {
                    var G = J.events = J.events || {},
                        N = J.handle;
                    if (!N) {
                        J.handle = N = function () {
                            return typeof m !== "undefined" && !m.event.triggered ? m.event.handle.apply(N.elem, arguments) : a0
                        }
                    }
                    N.elem = c;
                    s = s.split(" ");
                    for (var K, L = 0, O; K = s[L++];) {
                        J = A ? m.extend({}, A) : {
                            handler: w,
                            data: F
                        };
                        if (K.indexOf(".") > -1) {
                            O = K.split(".");
                            K = O.shift();
                            J.namespace = O.slice(0).sort().join(".")
                        } else {
                            O = [];
                            J.namespace = ""
                        }
                        J.type = K;
                        J.guid = w.guid;
                        var P = G[K],
                            Q = m.event.special[K] || {};
                        if (!P) {
                            P = G[K] = [];
                            if (!Q.setup || Q.setup.call(c, F, O, N) === false) {
                                if (c.addEventListener) {
                                    c.addEventListener(K, N, false)
                                } else {
                                    c.attachEvent && c.attachEvent("on" + K, N)
                                }
                            }
                        }
                        if (Q.add) {
                            Q.add.call(c, J);
                            if (!J.handler.guid) {
                                J.handler.guid = w.guid
                            }
                        }
                        P.push(J);
                        m.event.global[K] = true
                    }
                    c = null
                }
            }
        },
        global: {},
        remove: function (c, s, F, J) {
            if (!(c.nodeType === 3 || c.nodeType === 8)) {
                var G, L = 0,
                    K, P, N, O, Q, R, T = m.data(c),
                    A = T && T.events;
                if (T && A) {
                    if (s && s.type) {
                        F = s.handler;
                        s = s.type
                    }
                    if (!s || typeof s === "string" && s.charAt(0) === ".") {
                        s = s || "";
                        for (G in A) {
                            m.event.remove(c, G + s)
                        }
                    } else {
                        for (s = s.split(" "); G = s[L++];) {
                            O = G;
                            K = G.indexOf(".") < 0;
                            P = [];
                            if (!K) {
                                P = G.split(".");
                                G = P.shift();
                                N = new RegExp("(^|\\.)" + m.map(P.slice(0).sort(), t).join("\\.(?:.*\\.)?") + "(\\.|$)")
                            }
                            if (Q = A[G]) {
                                if (F) {
                                    O = m.event.special[G] || {};
                                    for (w = J || 0; w < Q.length; w++) {
                                        R = Q[w];
                                        if (F.guid === R.guid) {
                                            if (K || N.test(R.namespace)) {
                                                J == null && Q.splice(w--, 1);
                                                O.remove && O.remove.call(c, R)
                                            }
                                            if (J != null) {
                                                break
                                            }
                                        }
                                    }
                                    if (Q.length === 0 || J != null && Q.length === 1) {
                                        if (!O.teardown || O.teardown.call(c, P) === false) {
                                            o(c, G, T.handle)
                                        }
                                        delete A[G]
                                    }
                                } else {
                                    for (var w = 0; w < Q.length; w++) {
                                        R = Q[w];
                                        if (K || N.test(R.namespace)) {
                                            m.event.remove(c, O, R.handler, w);
                                            Q.splice(w--, 1)
                                        }
                                    }
                                }
                            }
                        }
                        if (m.isEmptyObject(A)) {
                            if (s = T.handle) {
                                s.elem = null
                            }
                            delete T.events;
                            delete T.handle;
                            m.isEmptyObject(T) && m.removeData(c)
                        }
                    }
                }
            }
        },
        trigger: function (c, s, w, F) {
            var A = c.type || c;
            if (!F) {
                c = typeof c === "object" ? c[D] ? c : m.extend(m.Event(A), c) : m.Event(A);
                if (A.indexOf("!") >= 0) {
                    c.type = A = A.slice(0, -1);
                    c.exclusive = true
                }
                if (!w) {
                    c.stopPropagation();
                    m.event.global[A] && m.each(m.cache, function () {
                        this.events && this.events[A] && m.event.trigger(c, s, this.handle.elem)
                    })
                }
                if (!w || w.nodeType === 3 || w.nodeType === 8) {
                    return a0
                }
                c.result = a0;
                c.target = w;
                s = m.makeArray(s);
                s.unshift(c)
            }
            c.currentTarget = w;
            (F = m.data(w, "handle")) && F.apply(w, s);
            F = w.parentNode || w.ownerDocument;
            try {
                if (!(w && w.nodeName && m.noData[w.nodeName.toLowerCase()])) {
                    if (w["on" + A] && w["on" + A].apply(w, s) === false) {
                        c.result = false
                    }
                }
            } catch (J) {}
            if (!c.isPropagationStopped() && F) {
                m.event.trigger(c, s, F, true)
            } else {
                if (!c.isDefaultPrevented()) {
                    F = c.target;
                    var G, N = m.nodeName(F, "a") && A === "click",
                        K = m.event.special[A] || {};
                    if ((!K._default || K._default.call(w, c) === false) && !N && !(F && F.nodeName && m.noData[F.nodeName.toLowerCase()])) {
                        try {
                            if (F[A]) {
                                if (G = F["on" + A]) {
                                    F["on" + A] = null
                                }
                                m.event.triggered = true;
                                F[A]()
                            }
                        } catch (L) {}
                        if (G) {
                            F["on" + A] = G
                        }
                        m.event.triggered = false
                    }
                }
            }
        },
        handle: function (c) {
            var s, w, F, A;
            c = arguments[0] = m.event.fix(c || d.event);
            c.currentTarget = this;
            s = c.type.indexOf(".") < 0 && !c.exclusive;
            if (!s) {
                w = c.type.split(".");
                c.type = w.shift();
                F = new RegExp("(^|\\.)" + w.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)")
            }
            A = m.data(this, "events");
            w = A[c.type];
            if (A && w) {
                w = w.slice(0);
                A = 0;
                for (var J = w.length; A < J; A++) {
                    var G = w[A];
                    if (s || F.test(G.namespace)) {
                        c.handler = G.handler;
                        c.data = G.data;
                        c.handleObj = G;
                        G = G.handler.apply(this, arguments);
                        if (G !== a0) {
                            c.result = G;
                            if (G === false) {
                                c.preventDefault();
                                c.stopPropagation()
                            }
                        }
                        if (c.isImmediatePropagationStopped()) {
                            break
                        }
                    }
                }
            }
            return c.result
        },
        props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
        fix: function (c) {
            if (c[D]) {
                return c
            }
            var s = c;
            c = m.Event(s);
            for (var w = this.props.length, A; w;) {
                A = this.props[--w];
                c[A] = s[A]
            }
            if (!c.target) {
                c.target = c.srcElement || aL
            }
            if (c.target.nodeType === 3) {
                c.target = c.target.parentNode
            }
            if (!c.relatedTarget && c.fromElement) {
                c.relatedTarget = c.fromElement === c.target ? c.toElement : c.fromElement
            }
            if (c.pageX == null && c.clientX != null) {
                s = aL.documentElement;
                w = aL.body;
                c.pageX = c.clientX + (s && s.scrollLeft || w && w.scrollLeft || 0) - (s && s.clientLeft || w && w.clientLeft || 0);
                c.pageY = c.clientY + (s && s.scrollTop || w && w.scrollTop || 0) - (s && s.clientTop || w && w.clientTop || 0)
            }
            if (!c.which && (c.charCode || c.charCode === 0 ? c.charCode : c.keyCode)) {
                c.which = c.charCode || c.keyCode
            }
            if (!c.metaKey && c.ctrlKey) {
                c.metaKey = c.ctrlKey
            }
            if (!c.which && c.button !== a0) {
                c.which = c.button & 1 ? 1 : c.button & 2 ? 3 : c.button & 4 ? 2 : 0
            }
            return c
        },
        guid: 100000000,
        proxy: m.proxy,
        special: {
            ready: {
                setup: m.bindReady,
                teardown: m.noop
            },
            live: {
                add: function (c) {
                    m.event.add(this, c.origType, m.extend({}, c, {
                        handler: aw
                    }))
                },
                remove: function (c) {
                    var s = true,
                        w = c.origType.replace(av, "");
                    m.each(m.data(this, "events").live || [], function () {
                        if (w === this.origType.replace(av, "")) {
                            return s = false
                        }
                    });
                    s && m.event.remove(this, c.origType, aw)
                }
            },
            beforeunload: {
                setup: function (c, s, w) {
                    if (this.setInterval) {
                        this.onbeforeunload = w
                    }
                    return false
                },
                teardown: function (c, s) {
                    if (this.onbeforeunload === s) {
                        this.onbeforeunload = null
                    }
                }
            }
        }
    };
    var o = aL.removeEventListener ?
    function (c, s, w) {
        c.removeEventListener(s, w, false)
    } : function (c, s, w) {
        c.detachEvent("on" + s, w)
    };
    m.Event = function (c) {
        if (!this.preventDefault) {
            return new m.Event(c)
        }
        if (c && c.type) {
            this.originalEvent = c;
            this.type = c.type
        } else {
            this.type = c
        }
        this.timeStamp = ab();
        this[D] = true
    };
    m.Event.prototype = {
        preventDefault: function () {
            this.isDefaultPrevented = bd;
            var c = this.originalEvent;
            if (c) {
                c.preventDefault && c.preventDefault();
                c.returnValue = false
            }
        },
        stopPropagation: function () {
            this.isPropagationStopped = bd;
            var c = this.originalEvent;
            if (c) {
                c.stopPropagation && c.stopPropagation();
                c.cancelBubble = true
            }
        },
        stopImmediatePropagation: function () {
            this.isImmediatePropagationStopped = bd;
            this.stopPropagation()
        },
        isDefaultPrevented: a9,
        isPropagationStopped: a9,
        isImmediatePropagationStopped: a9
    };
    var r = function (c) {
            var s = c.relatedTarget;
            try {
                for (; s && s !== this;) {
                    s = s.parentNode
                }
                if (s !== this) {
                    c.type = c.data;
                    m.event.handle.apply(this, arguments)
                }
            } catch (w) {}
        },
        v = function (c) {
            c.type = c.data;
            m.event.handle.apply(this, arguments)
        };
    m.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout"
    }, function (c, s) {
        m.event.special[c] = {
            setup: function (w) {
                m.event.add(this, s, w && w.selector ? v : r, c)
            },
            teardown: function (w) {
                m.event.remove(this, s, w && w.selector ? v : r)
            }
        }
    });
    if (!m.support.submitBubbles) {
        m.event.special.submit = {
            setup: function () {
                if (this.nodeName.toLowerCase() !== "form") {
                    m.event.add(this, "click.specialSubmit", function (c) {
                        var s = c.target,
                            w = s.type;
                        if ((w === "submit" || w === "image") && m(s).closest("form").length) {
                            return ar("submit", this, arguments)
                        }
                    });
                    m.event.add(this, "keypress.specialSubmit", function (c) {
                        var s = c.target,
                            w = s.type;
                        if ((w === "text" || w === "password") && m(s).closest("form").length && c.keyCode === 13) {
                            return ar("submit", this, arguments)
                        }
                    })
                } else {
                    return false
                }
            },
            teardown: function () {
                m.event.remove(this, ".specialSubmit")
            }
        }
    }
    if (!m.support.changeBubbles) {
        var q = /textarea|input|select/i,
            u, B = function (c) {
                var s = c.type,
                    w = c.value;
                if (s === "radio" || s === "checkbox") {
                    w = c.checked
                } else {
                    if (s === "select-multiple") {
                        w = c.selectedIndex > -1 ? m.map(c.options, function (A) {
                            return A.selected
                        }).join("-") : ""
                    } else {
                        if (c.nodeName.toLowerCase() === "select") {
                            w = c.selectedIndex
                        }
                    }
                }
                return w
            },
            z = function (c, s) {
                var w = c.target,
                    F, A;
                if (!(!q.test(w.nodeName) || w.readOnly)) {
                    F = m.data(w, "_change_data");
                    A = B(w);
                    if (c.type !== "focusout" || w.type !== "radio") {
                        m.data(w, "_change_data", A)
                    }
                    if (!(F === a0 || A === F)) {
                        if (F != null || A) {
                            c.type = "change";
                            return m.event.trigger(c, s, w)
                        }
                    }
                }
            };
        m.event.special.change = {
            filters: {
                focusout: z,
                click: function (c) {
                    var s = c.target,
                        w = s.type;
                    if (w === "radio" || w === "checkbox" || s.nodeName.toLowerCase() === "select") {
                        return z.call(this, c)
                    }
                },
                keydown: function (c) {
                    var s = c.target,
                        w = s.type;
                    if (c.keyCode === 13 && s.nodeName.toLowerCase() !== "textarea" || c.keyCode === 32 && (w === "checkbox" || w === "radio") || w === "select-multiple") {
                        return z.call(this, c)
                    }
                },
                beforeactivate: function (c) {
                    c = c.target;
                    m.data(c, "_change_data", B(c))
                }
            },
            setup: function () {
                if (this.type === "file") {
                    return false
                }
                for (var c in u) {
                    m.event.add(this, c + ".specialChange", u[c])
                }
                return q.test(this.nodeName)
            },
            teardown: function () {
                m.event.remove(this, ".specialChange");
                return q.test(this.nodeName)
            }
        };
        u = m.event.special.change.filters
    }
    aL.addEventListener && m.each({
        focus: "focusin",
        blur: "focusout"
    }, function (c, s) {
        function w(A) {
            A = m.event.fix(A);
            A.type = s;
            return m.event.handle.call(this, A)
        }
        m.event.special[s] = {
            setup: function () {
                this.addEventListener(c, w, true)
            },
            teardown: function () {
                this.removeEventListener(c, w, true)
            }
        }
    });
    m.each(["bind", "one"], function (c, s) {
        m.fn[s] = function (w, F, A) {
            if (typeof w === "object") {
                for (var J in w) {
                    this[s](J, F, w[J], A)
                }
                return this
            }
            if (m.isFunction(F)) {
                A = F;
                F = a0
            }
            var G = s === "one" ? m.proxy(A, function (L) {
                m(this).unbind(L, G);
                return A.apply(this, arguments)
            }) : A;
            if (w === "unload" && s !== "one") {
                this.one(w, F, A)
            } else {
                J = 0;
                for (var K = this.length; J < K; J++) {
                    m.event.add(this[J], w, G, F)
                }
            }
            return this
        }
    });
    m.fn.extend({
        unbind: function (c, s) {
            if (typeof c === "object" && !c.preventDefault) {
                for (var w in c) {
                    this.unbind(w, c[w])
                }
            } else {
                w = 0;
                for (var A = this.length; w < A; w++) {
                    m.event.remove(this[w], c, s)
                }
            }
            return this
        },
        delegate: function (c, s, w, A) {
            return this.live(s, w, A, c)
        },
        undelegate: function (c, s, w) {
            return arguments.length === 0 ? this.unbind("live") : this.die(s, null, w, c)
        },
        trigger: function (c, s) {
            return this.each(function () {
                m.event.trigger(c, s, this)
            })
        },
        triggerHandler: function (c, s) {
            if (this[0]) {
                c = m.Event(c);
                c.preventDefault();
                c.stopPropagation();
                m.event.trigger(c, s, this[0]);
                return c.result
            }
        },
        toggle: function (c) {
            for (var s = arguments, w = 1; w < s.length;) {
                m.proxy(c, s[w++])
            }
            return this.click(m.proxy(c, function (F) {
                var A = (m.data(this, "lastToggle" + c.guid) || 0) % w;
                m.data(this, "lastToggle" + c.guid, A + 1);
                F.preventDefault();
                return s[A].apply(this, arguments) || false
            }))
        },
        hover: function (c, s) {
            return this.mouseenter(c).mouseleave(s || c)
        }
    });
    var E = {
        focus: "focusin",
        blur: "focusout",
        mouseenter: "mouseover",
        mouseleave: "mouseout"
    };
    m.each(["live", "die"], function (c, s) {
        m.fn[s] = function (w, F, A, J) {
            var G, N = 0,
                K, L, O = J || this.selector,
                P = J ? this : m(this.context);
            if (m.isFunction(F)) {
                A = F;
                F = a0
            }
            for (w = (w || "").split(" ");
            (G = w[N++]) != null;) {
                J = av.exec(G);
                K = "";
                if (J) {
                    K = J[0];
                    G = G.replace(av, "")
                }
                if (G === "hover") {
                    w.push("mouseenter" + K, "mouseleave" + K)
                } else {
                    L = G;
                    if (G === "focus" || G === "blur") {
                        w.push(E[G] + K);
                        G += K
                    } else {
                        G = (E[G] || G) + K
                    }
                    s === "live" ? P.each(function () {
                        m.event.add(this, aA(G, O), {
                            data: F,
                            selector: O,
                            handler: A,
                            origType: G,
                            origHandler: A,
                            preType: L
                        })
                    }) : P.unbind(aA(G, O), A)
                }
            }
            return this
        }
    });
    m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), function (c, s) {
        m.fn[s] = function (w) {
            return w ? this.bind(s, w) : this.trigger(s)
        };
        if (m.attrFn) {
            m.attrFn[s] = true
        }
    });
    d.attachEvent && !d.addEventListener && d.attachEvent("onunload", function () {
        for (var c in m.cache) {
            if (m.cache[c].handle) {
                try {
                    m.event.remove(m.cache[c].handle.elem)
                } catch (s) {}
            }
        }
    });
    (function () {
        function c(Y) {
            for (var Z = "", bh, bi = 0; Y[bi]; bi++) {
                bh = Y[bi];
                if (bh.nodeType === 3 || bh.nodeType === 4) {
                    Z += bh.nodeValue
                } else {
                    if (bh.nodeType !== 8) {
                        Z += c(bh.childNodes)
                    }
                }
            }
            return Z
        }
        function s(Y, Z, bh, bi, bk, bj) {
            bk = 0;
            for (var bm = bi.length; bk < bm; bk++) {
                var bl = bi[bk];
                if (bl) {
                    bl = bl[Y];
                    for (var bn = false; bl;) {
                        if (bl.sizcache === bh) {
                            bn = bi[bl.sizset];
                            break
                        }
                        if (bl.nodeType === 1 && !bj) {
                            bl.sizcache = bh;
                            bl.sizset = bk
                        }
                        if (bl.nodeName.toLowerCase() === Z) {
                            bn = bl;
                            break
                        }
                        bl = bl[Y]
                    }
                    bi[bk] = bn
                }
            }
        }
        function F(Y, Z, bh, bi, bk, bj) {
            bk = 0;
            for (var bm = bi.length; bk < bm; bk++) {
                var bl = bi[bk];
                if (bl) {
                    bl = bl[Y];
                    for (var bn = false; bl;) {
                        if (bl.sizcache === bh) {
                            bn = bi[bl.sizset];
                            break
                        }
                        if (bl.nodeType === 1) {
                            if (!bj) {
                                bl.sizcache = bh;
                                bl.sizset = bk
                            }
                            if (typeof Z !== "string") {
                                if (bl === Z) {
                                    bn = true;
                                    break
                                }
                            } else {
                                if (P.filter(Z, [bl]).length > 0) {
                                    bn = bl;
                                    break
                                }
                            }
                        }
                        bl = bl[Y]
                    }
                    bi[bk] = bn
                }
            }
        }
        var K = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
            G = 0,
            O = Object.prototype.toString,
            N = false,
            R = true;
        [0, 0].sort(function () {
            R = false;
            return 0
        });
        var P = function (Z, bh, bk, bl) {
                bk = bk || [];
                var bo = bh = bh || aL;
                if (bh.nodeType !== 1 && bh.nodeType !== 9) {
                    return []
                }
                if (!Z || typeof Z !== "string") {
                    return bk
                }
                for (var bn = [], br, bq, bs, bp, bi = true, bm = W(bh), bj = Z;
                (K.exec(""), br = K.exec(bj)) !== null;) {
                    bj = br[3];
                    bn.push(br[1]);
                    if (br[2]) {
                        bp = br[3];
                        break
                    }
                }
                if (bn.length > 1 && T.exec(Z)) {
                    if (bn.length === 2 && Q.relative[bn[0]]) {
                        bq = L(bn[0] + bn[1], bh)
                    } else {
                        for (bq = Q.relative[bn[0]] ? [bh] : P(bn.shift(), bh); bn.length;) {
                            Z = bn.shift();
                            if (Q.relative[Z]) {
                                Z += bn.shift()
                            }
                            bq = L(Z, bq)
                        }
                    }
                } else {
                    if (!bl && bn.length > 1 && bh.nodeType === 9 && !bm && Q.match.ID.test(bn[0]) && !Q.match.ID.test(bn[bn.length - 1])) {
                        br = P.find(bn.shift(), bh, bm);
                        bh = br.expr ? P.filter(br.expr, br.set)[0] : br.set[0]
                    }
                    if (bh) {
                        br = bl ? {
                            expr: bn.pop(),
                            set: X(bl)
                        } : P.find(bn.pop(), bn.length === 1 && (bn[0] === "~" || bn[0] === "+") && bh.parentNode ? bh.parentNode : bh, bm);
                        bq = br.expr ? P.filter(br.expr, br.set) : br.set;
                        if (bn.length > 0) {
                            bs = X(bq)
                        } else {
                            bi = false
                        }
                        for (; bn.length;) {
                            var Y = bn.pop();
                            br = Y;
                            if (Q.relative[Y]) {
                                br = bn.pop()
                            } else {
                                Y = ""
                            }
                            if (br == null) {
                                br = bh
                            }
                            Q.relative[Y](bs, br, bm)
                        }
                    } else {
                        bs = []
                    }
                }
                bs || (bs = bq);
                bs || P.error(Y || Z);
                if (O.call(bs) === "[object Array]") {
                    if (bi) {
                        if (bh && bh.nodeType === 1) {
                            for (Z = 0; bs[Z] != null; Z++) {
                                if (bs[Z] && (bs[Z] === true || bs[Z].nodeType === 1 && J(bh, bs[Z]))) {
                                    bk.push(bq[Z])
                                }
                            }
                        } else {
                            for (Z = 0; bs[Z] != null; Z++) {
                                bs[Z] && bs[Z].nodeType === 1 && bk.push(bq[Z])
                            }
                        }
                    } else {
                        bk.push.apply(bk, bs)
                    }
                } else {
                    X(bs, bk)
                }
                if (bp) {
                    P(bp, bo, bk, bl);
                    P.uniqueSort(bk)
                }
                return bk
            };
        P.uniqueSort = function (Y) {
            if (w) {
                N = R;
                Y.sort(w);
                if (N) {
                    for (var Z = 1; Z < Y.length; Z++) {
                        Y[Z] === Y[Z - 1] && Y.splice(Z--, 1)
                    }
                }
            }
            return Y
        };
        P.matches = function (Y, Z) {
            return P(Y, null, null, Z)
        };
        P.find = function (Y, Z, bh) {
            var bi, bk;
            if (!Y) {
                return []
            }
            for (var bj = 0, bm = Q.order.length; bj < bm; bj++) {
                var bl = Q.order[bj];
                if (bk = Q.leftMatch[bl].exec(Y)) {
                    var bn = bk[1];
                    bk.splice(1, 1);
                    if (bn.substr(bn.length - 1) !== "\\") {
                        bk[1] = (bk[1] || "").replace(/\\/g, "");
                        bi = Q.find[bl](bk, Z, bh);
                        if (bi != null) {
                            Y = Y.replace(Q.match[bl], "");
                            break
                        }
                    }
                }
            }
            bi || (bi = Z.getElementsByTagName("*"));
            return {
                set: bi,
                expr: Y
            }
        };
        P.filter = function (Z, bh, bl, bm) {
            for (var bp = Z, bo = [], bt = bh, br, bu, bq = bh && bh[0] && W(bh[0]); Z && bh.length;) {
                for (var bi in Q.filter) {
                    if ((br = Q.leftMatch[bi].exec(Z)) != null && br[2]) {
                        var bn = Q.filter[bi],
                            bk, Y;
                        Y = br[1];
                        bu = false;
                        br.splice(1, 1);
                        if (Y.substr(Y.length - 1) !== "\\") {
                            if (bt === bo) {
                                bo = []
                            }
                            if (Q.preFilter[bi]) {
                                if (br = Q.preFilter[bi](br, bt, bl, bo, bm, bq)) {
                                    if (br === true) {
                                        continue
                                    }
                                } else {
                                    bu = bk = true
                                }
                            }
                            if (br) {
                                for (var bs = 0;
                                (Y = bt[bs]) != null; bs++) {
                                    if (Y) {
                                        bk = bn(Y, br, bs, bt);
                                        var bj = bm ^ !! bk;
                                        if (bl && bk != null) {
                                            if (bj) {
                                                bu = true
                                            } else {
                                                bt[bs] = false
                                            }
                                        } else {
                                            if (bj) {
                                                bo.push(Y);
                                                bu = true
                                            }
                                        }
                                    }
                                }
                            }
                            if (bk !== a0) {
                                bl || (bt = bo);
                                Z = Z.replace(Q.match[bi], "");
                                if (!bu) {
                                    return []
                                }
                                break
                            }
                        }
                    }
                }
                if (Z === bp) {
                    if (bu == null) {
                        P.error(Z)
                    } else {
                        break
                    }
                }
                bp = Z
            }
            return bt
        };
        P.error = function (Y) {
            throw "Syntax error, unrecognized expression: " + Y
        };
        var Q = P.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\))?/
            },
            leftMatch: {},
            attrMap: {
                "class": "className",
                "for": "htmlFor"
            },
            attrHandle: {
                href: function (Y) {
                    return Y.getAttribute("href")
                }
            },
            relative: {
                "+": function (Y, Z) {
                    var bh = typeof Z === "string",
                        bi = bh && !/\W/.test(Z);
                    bh = bh && !bi;
                    if (bi) {
                        Z = Z.toLowerCase()
                    }
                    bi = 0;
                    for (var bk = Y.length, bj; bi < bk; bi++) {
                        if (bj = Y[bi]) {
                            for (;
                            (bj = bj.previousSibling) && bj.nodeType !== 1;) {}
                            Y[bi] = bh || bj && bj.nodeName.toLowerCase() === Z ? bj || false : bj === Z
                        }
                    }
                    bh && P.filter(Z, Y, true)
                },
                ">": function (Y, Z) {
                    var bh = typeof Z === "string";
                    if (bh && !/\W/.test(Z)) {
                        Z = Z.toLowerCase();
                        for (var bi = 0, bk = Y.length; bi < bk; bi++) {
                            var bj = Y[bi];
                            if (bj) {
                                bh = bj.parentNode;
                                Y[bi] = bh.nodeName.toLowerCase() === Z ? bh : false
                            }
                        }
                    } else {
                        bi = 0;
                        for (bk = Y.length; bi < bk; bi++) {
                            if (bj = Y[bi]) {
                                Y[bi] = bh ? bj.parentNode : bj.parentNode === Z
                            }
                        }
                        bh && P.filter(Z, Y, true)
                    }
                },
                "": function (Y, Z, bh) {
                    var bi = G++,
                        bk = F;
                    if (typeof Z === "string" && !/\W/.test(Z)) {
                        var bj = Z = Z.toLowerCase();
                        bk = s
                    }
                    bk("parentNode", Z, bi, Y, bj, bh)
                },
                "~": function (Y, Z, bh) {
                    var bi = G++,
                        bk = F;
                    if (typeof Z === "string" && !/\W/.test(Z)) {
                        var bj = Z = Z.toLowerCase();
                        bk = s
                    }
                    bk("previousSibling", Z, bi, Y, bj, bh)
                }
            },
            find: {
                ID: function (Y, Z, bh) {
                    if (typeof Z.getElementById !== "undefined" && !bh) {
                        return (Y = Z.getElementById(Y[1])) ? [Y] : []
                    }
                },
                NAME: function (Y, Z) {
                    if (typeof Z.getElementsByName !== "undefined") {
                        var bh = [];
                        Z = Z.getElementsByName(Y[1]);
                        for (var bi = 0, bj = Z.length; bi < bj; bi++) {
                            Z[bi].getAttribute("name") === Y[1] && bh.push(Z[bi])
                        }
                        return bh.length === 0 ? null : bh
                    }
                },
                TAG: function (Y, Z) {
                    return Z.getElementsByTagName(Y[1])
                }
            },
            preFilter: {
                CLASS: function (Y, Z, bh, bi, bk, bj) {
                    Y = " " + Y[1].replace(/\\/g, "") + " ";
                    if (bj) {
                        return Y
                    }
                    bj = 0;
                    for (var bl;
                    (bl = Z[bj]) != null; bj++) {
                        if (bl) {
                            if (bk ^ (bl.className && (" " + bl.className + " ").replace(/[\t\n]/g, " ").indexOf(Y) >= 0)) {
                                bh || bi.push(bl)
                            } else {
                                if (bh) {
                                    Z[bj] = false
                                }
                            }
                        }
                    }
                    return false
                },
                ID: function (Y) {
                    return Y[1].replace(/\\/g, "")
                },
                TAG: function (Y) {
                    return Y[1].toLowerCase()
                },
                CHILD: function (Y) {
                    if (Y[1] === "nth") {
                        var Z = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(Y[2] === "even" && "2n" || Y[2] === "odd" && "2n+1" || !/\D/.test(Y[2]) && "0n+" + Y[2] || Y[2]);
                        Y[2] = Z[1] + (Z[2] || 1) - 0;
                        Y[3] = Z[3] - 0
                    }
                    Y[0] = G++;
                    return Y
                },
                ATTR: function (Y, Z, bh, bi, bk, bj) {
                    Z = Y[1].replace(/\\/g, "");
                    if (!bj && Q.attrMap[Z]) {
                        Y[1] = Q.attrMap[Z]
                    }
                    if (Y[2] === "~=") {
                        Y[4] = " " + Y[4] + " "
                    }
                    return Y
                },
                PSEUDO: function (Y, Z, bh, bi, bj) {
                    if (Y[1] === "not") {
                        if ((K.exec(Y[3]) || "").length > 1 || /^\w/.test(Y[3])) {
                            Y[3] = P(Y[3], null, null, Z)
                        } else {
                            Y = P.filter(Y[3], Z, bh, true ^ bj);
                            bh || bi.push.apply(bi, Y);
                            return false
                        }
                    } else {
                        if (Q.match.POS.test(Y[0]) || Q.match.CHILD.test(Y[0])) {
                            return true
                        }
                    }
                    return Y
                },
                POS: function (Y) {
                    Y.unshift(true);
                    return Y
                }
            },
            filters: {
                enabled: function (Y) {
                    return Y.disabled === false && Y.type !== "hidden"
                },
                disabled: function (Y) {
                    return Y.disabled === true
                },
                checked: function (Y) {
                    return Y.checked === true
                },
                selected: function (Y) {
                    return Y.selected === true
                },
                parent: function (Y) {
                    return !!Y.firstChild
                },
                empty: function (Y) {
                    return !Y.firstChild
                },
                has: function (Y, Z, bh) {
                    return !!P(bh[3], Y).length
                },
                header: function (Y) {
                    return /h\d/i.test(Y.nodeName)
                },
                text: function (Y) {
                    return "text" === Y.type
                },
                radio: function (Y) {
                    return "radio" === Y.type
                },
                checkbox: function (Y) {
                    return "checkbox" === Y.type
                },
                file: function (Y) {
                    return "file" === Y.type
                },
                password: function (Y) {
                    return "password" === Y.type
                },
                submit: function (Y) {
                    return "submit" === Y.type
                },
                image: function (Y) {
                    return "image" === Y.type
                },
                reset: function (Y) {
                    return "reset" === Y.type
                },
                button: function (Y) {
                    return "button" === Y.type || Y.nodeName.toLowerCase() === "button"
                },
                input: function (Y) {
                    return /input|select|textarea|button/i.test(Y.nodeName)
                }
            },
            setFilters: {
                first: function (Y, Z) {
                    return Z === 0
                },
                last: function (Y, Z, bh, bi) {
                    return Z === bi.length - 1
                },
                even: function (Y, Z) {
                    return Z % 2 === 0
                },
                odd: function (Y, Z) {
                    return Z % 2 === 1
                },
                lt: function (Y, Z, bh) {
                    return Z < bh[3] - 0
                },
                gt: function (Y, Z, bh) {
                    return Z > bh[3] - 0
                },
                nth: function (Y, Z, bh) {
                    return bh[3] - 0 === Z
                },
                eq: function (Y, Z, bh) {
                    return bh[3] - 0 === Z
                }
            },
            filter: {
                PSEUDO: function (Y, Z, bh, bi) {
                    var bk = Z[1],
                        bj = Q.filters[bk];
                    if (bj) {
                        return bj(Y, bh, Z, bi)
                    } else {
                        if (bk === "contains") {
                            return (Y.textContent || Y.innerText || c([Y]) || "").indexOf(Z[3]) >= 0
                        } else {
                            if (bk === "not") {
                                Z = Z[3];
                                bh = 0;
                                for (bi = Z.length; bh < bi; bh++) {
                                    if (Z[bh] === Y) {
                                        return false
                                    }
                                }
                                return true
                            } else {
                                P.error("Syntax error, unrecognized expression: " + bk)
                            }
                        }
                    }
                },
                CHILD: function (Y, Z) {
                    var bh = Z[1],
                        bi = Y;
                    switch (bh) {
                    case "only":
                    case "first":
                        for (; bi = bi.previousSibling;) {
                            if (bi.nodeType === 1) {
                                return false
                            }
                        }
                        if (bh === "first") {
                            return true
                        }
                        bi = Y;
                    case "last":
                        for (; bi = bi.nextSibling;) {
                            if (bi.nodeType === 1) {
                                return false
                            }
                        }
                        return true;
                    case "nth":
                        bh = Z[2];
                        var bk = Z[3];
                        if (bh === 1 && bk === 0) {
                            return true
                        }
                        Z = Z[0];
                        var bj = Y.parentNode;
                        if (bj && (bj.sizcache !== Z || !Y.nodeIndex)) {
                            var bl = 0;
                            for (bi = bj.firstChild; bi; bi = bi.nextSibling) {
                                if (bi.nodeType === 1) {
                                    bi.nodeIndex = ++bl
                                }
                            }
                            bj.sizcache = Z
                        }
                        Y = Y.nodeIndex - bk;
                        return bh === 0 ? Y === 0 : Y % bh === 0 && Y / bh >= 0
                    }
                },
                ID: function (Y, Z) {
                    return Y.nodeType === 1 && Y.getAttribute("id") === Z
                },
                TAG: function (Y, Z) {
                    return Z === "*" && Y.nodeType === 1 || Y.nodeName.toLowerCase() === Z
                },
                CLASS: function (Y, Z) {
                    return (" " + (Y.className || Y.getAttribute("class")) + " ").indexOf(Z) > -1
                },
                ATTR: function (Y, Z) {
                    var bh = Z[1];
                    Y = Q.attrHandle[bh] ? Q.attrHandle[bh](Y) : Y[bh] != null ? Y[bh] : Y.getAttribute(bh);
                    bh = Y + "";
                    var bi = Z[2];
                    Z = Z[4];
                    return Y == null ? bi === "!=" : bi === "=" ? bh === Z : bi === "*=" ? bh.indexOf(Z) >= 0 : bi === "~=" ? (" " + bh + " ").indexOf(Z) >= 0 : !Z ? bh && Y !== false : bi === "!=" ? bh !== Z : bi === "^=" ? bh.indexOf(Z) === 0 : bi === "$=" ? bh.substr(bh.length - Z.length) === Z : bi === "|=" ? bh === Z || bh.substr(0, Z.length + 1) === Z + "-" : false
                },
                POS: function (Y, Z, bh, bi) {
                    var bj = Q.setFilters[Z[2]];
                    if (bj) {
                        return bj(Y, bh, Z, bi)
                    }
                }
            }
        },
            T = Q.match.POS;
        for (var V in Q.match) {
            Q.match[V] = new RegExp(Q.match[V].source + /(?![^\[]*\])(?![^\(]*\))/.source);
            Q.leftMatch[V] = new RegExp(/(^(?:.|\r|\n)*?)/.source + Q.match[V].source.replace(/\\(\d+)/g, function (Y, Z) {
                return "\\" + (Z - 0 + 1)
            }))
        }
        var X = function (Y, Z) {
                Y = Array.prototype.slice.call(Y, 0);
                if (Z) {
                    Z.push.apply(Z, Y);
                    return Z
                }
                return Y
            };
        try {
            Array.prototype.slice.call(aL.documentElement.childNodes, 0)
        } catch (A) {
            X = function (Y, Z) {
                Z = Z || [];
                if (O.call(Y) === "[object Array]") {
                    Array.prototype.push.apply(Z, Y)
                } else {
                    if (typeof Y.length === "number") {
                        for (var bh = 0, bi = Y.length; bh < bi; bh++) {
                            Z.push(Y[bh])
                        }
                    } else {
                        for (bh = 0; Y[bh]; bh++) {
                            Z.push(Y[bh])
                        }
                    }
                }
                return Z
            }
        }
        var w;
        if (aL.documentElement.compareDocumentPosition) {
            w = function (Y, Z) {
                if (!Y.compareDocumentPosition || !Z.compareDocumentPosition) {
                    if (Y == Z) {
                        N = true
                    }
                    return Y.compareDocumentPosition ? -1 : 1
                }
                Y = Y.compareDocumentPosition(Z) & 4 ? -1 : Y === Z ? 0 : 1;
                if (Y === 0) {
                    N = true
                }
                return Y
            }
        } else {
            if ("sourceIndex" in aL.documentElement) {
                w = function (Y, Z) {
                    if (!Y.sourceIndex || !Z.sourceIndex) {
                        if (Y == Z) {
                            N = true
                        }
                        return Y.sourceIndex ? -1 : 1
                    }
                    Y = Y.sourceIndex - Z.sourceIndex;
                    if (Y === 0) {
                        N = true
                    }
                    return Y
                }
            } else {
                if (aL.createRange) {
                    w = function (Y, Z) {
                        if (!Y.ownerDocument || !Z.ownerDocument) {
                            if (Y == Z) {
                                N = true
                            }
                            return Y.ownerDocument ? -1 : 1
                        }
                        var bh = Y.ownerDocument.createRange(),
                            bi = Z.ownerDocument.createRange();
                        bh.setStart(Y, 0);
                        bh.setEnd(Y, 0);
                        bi.setStart(Z, 0);
                        bi.setEnd(Z, 0);
                        Y = bh.compareBoundaryPoints(Range.START_TO_END, bi);
                        if (Y === 0) {
                            N = true
                        }
                        return Y
                    }
                }
            }
        }(function () {
            var Y = aL.createElement("div"),
                Z = "script" + (new Date).getTime();
            Y.innerHTML = "<a name='" + Z + "'/>";
            var bh = aL.documentElement;
            bh.insertBefore(Y, bh.firstChild);
            if (aL.getElementById(Z)) {
                Q.find.ID = function (bi, bk, bj) {
                    if (typeof bk.getElementById !== "undefined" && !bj) {
                        return (bk = bk.getElementById(bi[1])) ? bk.id === bi[1] || typeof bk.getAttributeNode !== "undefined" && bk.getAttributeNode("id").nodeValue === bi[1] ? [bk] : a0 : []
                    }
                };
                Q.filter.ID = function (bi, bk) {
                    var bj = typeof bi.getAttributeNode !== "undefined" && bi.getAttributeNode("id");
                    return bi.nodeType === 1 && bj && bj.nodeValue === bk
                }
            }
            bh.removeChild(Y);
            bh = Y = null
        })();
        (function () {
            var Y = aL.createElement("div");
            Y.appendChild(aL.createComment(""));
            if (Y.getElementsByTagName("*").length > 0) {
                Q.find.TAG = function (Z, bh) {
                    bh = bh.getElementsByTagName(Z[1]);
                    if (Z[1] === "*") {
                        Z = [];
                        for (var bi = 0; bh[bi]; bi++) {
                            bh[bi].nodeType === 1 && Z.push(bh[bi])
                        }
                        bh = Z
                    }
                    return bh
                }
            }
            Y.innerHTML = "<a href='#'></a>";
            if (Y.firstChild && typeof Y.firstChild.getAttribute !== "undefined" && Y.firstChild.getAttribute("href") !== "#") {
                Q.attrHandle.href = function (Z) {
                    return Z.getAttribute("href", 2)
                }
            }
            Y = null
        })();
        aL.querySelectorAll &&
        function () {
            var Y = P,
                Z = aL.createElement("div");
            Z.innerHTML = "<p class='TEST'></p>";
            if (!(Z.querySelectorAll && Z.querySelectorAll(".TEST").length === 0)) {
                P = function (bi, bk, bj, bm) {
                    bk = bk || aL;
                    if (!bm && bk.nodeType === 9 && !W(bk)) {
                        try {
                            return X(bk.querySelectorAll(bi), bj)
                        } catch (bl) {}
                    }
                    return Y(bi, bk, bj, bm)
                };
                for (var bh in Y) {
                    P[bh] = Y[bh]
                }
                Z = null
            }
        }();
        (function () {
            var Y = aL.createElement("div");
            Y.innerHTML = "<div class='test e'></div><div class='test'></div>";
            if (!(!Y.getElementsByClassName || Y.getElementsByClassName("e").length === 0)) {
                Y.lastChild.className = "e";
                if (Y.getElementsByClassName("e").length !== 1) {
                    Q.order.splice(1, 0, "CLASS");
                    Q.find.CLASS = function (Z, bh, bi) {
                        if (typeof bh.getElementsByClassName !== "undefined" && !bi) {
                            return bh.getElementsByClassName(Z[1])
                        }
                    };
                    Y = null
                }
            }
        })();
        var J = aL.compareDocumentPosition ?
        function (Y, Z) {
            return !!(Y.compareDocumentPosition(Z) & 16)
        } : function (Y, Z) {
            return Y !== Z && (Y.contains ? Y.contains(Z) : true)
        }, W = function (Y) {
            return (Y = (Y ? Y.ownerDocument || Y : 0).documentElement) ? Y.nodeName !== "HTML" : false
        }, L = function (Y, Z) {
            var bh = [],
                bi = "",
                bk;
            for (Z = Z.nodeType ? [Z] : Z; bk = Q.match.PSEUDO.exec(Y);) {
                bi += bk[0];
                Y = Y.replace(Q.match.PSEUDO, "")
            }
            Y = Q.relative[Y] ? Y + "*" : Y;
            bk = 0;
            for (var bj = Z.length; bk < bj; bk++) {
                P(Y, Z[bk], bh)
            }
            return P.filter(bi, bh)
        };
        m.find = P;
        m.expr = P.selectors;
        m.expr[":"] = m.expr.filters;
        m.unique = P.uniqueSort;
        m.text = c;
        m.isXMLDoc = W;
        m.contains = J
    })();
    var x = /Until$/,
        C = /^(?:parents|prevUntil|prevAll)/,
        H = /,/;
    aH = Array.prototype.slice;
    var U = function (c, s, w) {
            if (m.isFunction(s)) {
                return m.grep(c, function (F, G) {
                    return !!s.call(F, G, F) === w
                })
            } else {
                if (s.nodeType) {
                    return m.grep(c, function (F) {
                        return F === s === w
                    })
                } else {
                    if (typeof s === "string") {
                        var A = m.grep(c, function (F) {
                            return F.nodeType === 1
                        });
                        if (aU.test(s)) {
                            return m.filter(s, A, !w)
                        } else {
                            s = m.filter(s, A)
                        }
                    }
                }
            }
            return m.grep(c, function (F) {
                return m.inArray(F, s) >= 0 === w
            })
        };
    m.fn.extend({
        find: function (c) {
            for (var s = this.pushStack("", "find", c), w = 0, F = 0, A = this.length; F < A; F++) {
                w = s.length;
                m.find(c, this[F], s);
                if (F > 0) {
                    for (var J = w; J < s.length; J++) {
                        for (var G = 0; G < w; G++) {
                            if (s[G] === s[J]) {
                                s.splice(J--, 1);
                                break
                            }
                        }
                    }
                }
            }
            return s
        },
        has: function (c) {
            var s = m(c);
            return this.filter(function () {
                for (var w = 0, A = s.length; w < A; w++) {
                    if (m.contains(this, s[w])) {
                        return true
                    }
                }
            })
        },
        not: function (c) {
            return this.pushStack(U(this, c, false), "not", c)
        },
        filter: function (c) {
            return this.pushStack(U(this, c, true), "filter", c)
        },
        is: function (c) {
            return !!c && m.filter(c, this).length > 0
        },
        closest: function (c, s) {
            if (m.isArray(c)) {
                var w = [],
                    F = this[0],
                    A, J = {},
                    G;
                if (F && c.length) {
                    A = 0;
                    for (var L = c.length; A < L; A++) {
                        G = c[A];
                        J[G] || (J[G] = m.expr.match.POS.test(G) ? m(G, s || this.context) : G)
                    }
                    for (; F && F.ownerDocument && F !== s;) {
                        for (G in J) {
                            A = J[G];
                            if (A.jquery ? A.index(F) > -1 : m(F).is(A)) {
                                w.push({
                                    selector: G,
                                    elem: F
                                });
                                delete J[G]
                            }
                        }
                        F = F.parentNode
                    }
                }
                return w
            }
            var K = m.expr.match.POS.test(c) ? m(c, s || this.context) : null;
            return this.map(function (N, O) {
                for (; O && O.ownerDocument && O !== s;) {
                    if (K ? K.index(O) > -1 : m(O).is(c)) {
                        return O
                    }
                    O = O.parentNode
                }
                return null
            })
        },
        index: function (c) {
            if (!c || typeof c === "string") {
                return m.inArray(this[0], c ? m(c) : this.parent().children())
            }
            return m.inArray(c.jquery ? c[0] : c, this)
        },
        add: function (c, s) {
            c = typeof c === "string" ? m(c, s || this.context) : m.makeArray(c);
            s = m.merge(this.get(), c);
            return this.pushStack(aE(c[0]) || aE(s[0]) ? s : m.unique(s))
        },
        andSelf: function () {
            return this.add(this.prevObject)
        }
    });
    m.each({
        parent: function (c) {
            return (c = c.parentNode) && c.nodeType !== 11 ? c : null
        },
        parents: function (c) {
            return m.dir(c, "parentNode")
        },
        parentsUntil: function (c, s, w) {
            return m.dir(c, "parentNode", w)
        },
        next: function (c) {
            return m.nth(c, 2, "nextSibling")
        },
        prev: function (c) {
            return m.nth(c, 2, "previousSibling")
        },
        nextAll: function (c) {
            return m.dir(c, "nextSibling")
        },
        prevAll: function (c) {
            return m.dir(c, "previousSibling")
        },
        nextUntil: function (c, s, w) {
            return m.dir(c, "nextSibling", w)
        },
        prevUntil: function (c, s, w) {
            return m.dir(c, "previousSibling", w)
        },
        siblings: function (c) {
            return m.sibling(c.parentNode.firstChild, c)
        },
        children: function (c) {
            return m.sibling(c.firstChild)
        },
        contents: function (c) {
            return m.nodeName(c, "iframe") ? c.contentDocument || c.contentWindow.document : m.makeArray(c.childNodes)
        }
    }, function (c, s) {
        m.fn[c] = function (w, F) {
            var A = m.map(this, s, w);
            x.test(c) || (F = w);
            if (F && typeof F === "string") {
                A = m.filter(F, A)
            }
            A = this.length > 1 ? m.unique(A) : A;
            if ((this.length > 1 || H.test(F)) && C.test(c)) {
                A = A.reverse()
            }
            return this.pushStack(A, c, aH.call(arguments).join(","))
        }
    });
    m.extend({
        filter: function (c, s, w) {
            if (w) {
                c = ":not(" + c + ")"
            }
            return m.find.matches(c, s)
        },
        dir: function (c, s, w) {
            var A = [];
            for (c = c[s]; c && c.nodeType !== 9 && (w === a0 || c.nodeType !== 1 || !m(c).is(w));) {
                c.nodeType === 1 && A.push(c);
                c = c[s]
            }
            return A
        },
        nth: function (c, s, w) {
            s = s || 1;
            for (var A = 0; c; c = c[w]) {
                if (c.nodeType === 1 && ++A === s) {
                    break
                }
            }
            return c
        },
        sibling: function (c, s) {
            for (var w = []; c; c = c.nextSibling) {
                c.nodeType === 1 && c !== s && w.push(c)
            }
            return w
        }
    });
    var ad = / jQuery\d+="(?:\d+|null)"/g,
        aW = /^\s+/,
        ah = /(<([\w:]+)[^>]*?)\/>/g,
        M = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,
        al = /<([\w:]+)/,
        aa = /<tbody/i,
        ae = /<|&#?\w+;/,
        aQ = /<script|<object|<embed|<option|<style/i,
        aT = /checked\s*(?:[^=]|=\s*.checked.)/i,
        ao = function (c, s, w) {
            return M.test(w) ? c : s + "></" + w + ">"
        },
        y = {
            option: [1, "<select multiple='multiple'>", "</select>"],
            legend: [1, "<fieldset>", "</fieldset>"],
            thead: [1, "<table>", "</table>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
            col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
            area: [1, "<map>", "</map>"],
            _default: [0, "", ""]
        };
    y.optgroup = y.option;
    y.tbody = y.tfoot = y.colgroup = y.caption = y.thead;
    y.th = y.td;
    if (!m.support.htmlSerialize) {
        y._default = [1, "div<div>", "</div>"]
    }
    m.fn.extend({
        text: function (c) {
            if (m.isFunction(c)) {
                return this.each(function (s) {
                    var w = m(this);
                    w.text(c.call(this, s, w.text()))
                })
            }
            if (typeof c !== "object" && c !== a0) {
                return this.empty().append((this[0] && this[0].ownerDocument || aL).createTextNode(c))
            }
            return m.text(this)
        },
        wrapAll: function (c) {
            if (m.isFunction(c)) {
                return this.each(function (w) {
                    m(this).wrapAll(c.call(this, w))
                })
            }
            if (this[0]) {
                var s = m(c, this[0].ownerDocument).eq(0).clone(true);
                this[0].parentNode && s.insertBefore(this[0]);
                s.map(function () {
                    for (var w = this; w.firstChild && w.firstChild.nodeType === 1;) {
                        w = w.firstChild
                    }
                    return w
                }).append(this)
            }
            return this
        },
        wrapInner: function (c) {
            if (m.isFunction(c)) {
                return this.each(function (s) {
                    m(this).wrapInner(c.call(this, s))
                })
            }
            return this.each(function () {
                var s = m(this),
                    w = s.contents();
                w.length ? w.wrapAll(c) : s.append(c)
            })
        },
        wrap: function (c) {
            return this.each(function () {
                m(this).wrapAll(c)
            })
        },
        unwrap: function () {
            return this.parent().each(function () {
                m.nodeName(this, "body") || m(this).replaceWith(this.childNodes)
            }).end()
        },
        append: function () {
            return this.domManip(arguments, true, function (c) {
                this.nodeType === 1 && this.appendChild(c)
            })
        },
        prepend: function () {
            return this.domManip(arguments, true, function (c) {
                this.nodeType === 1 && this.insertBefore(c, this.firstChild)
            })
        },
        before: function () {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function (s) {
                    this.parentNode.insertBefore(s, this)
                })
            } else {
                if (arguments.length) {
                    var c = m(arguments[0]);
                    c.push.apply(c, this.toArray());
                    return this.pushStack(c, "before", arguments)
                }
            }
        },
        after: function () {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function (s) {
                    this.parentNode.insertBefore(s, this.nextSibling)
                })
            } else {
                if (arguments.length) {
                    var c = this.pushStack(this, "after", arguments);
                    c.push.apply(c, m(arguments[0]).toArray());
                    return c
                }
            }
        },
        remove: function (c, s) {
            for (var w = 0, A;
            (A = this[w]) != null; w++) {
                if (!c || m.filter(c, [A]).length) {
                    if (!s && A.nodeType === 1) {
                        m.cleanData(A.getElementsByTagName("*"));
                        m.cleanData([A])
                    }
                    A.parentNode && A.parentNode.removeChild(A)
                }
            }
            return this
        },
        empty: function () {
            for (var c = 0, s;
            (s = this[c]) != null; c++) {
                for (s.nodeType === 1 && m.cleanData(s.getElementsByTagName("*")); s.firstChild;) {
                    s.removeChild(s.firstChild)
                }
            }
            return this
        },
        clone: function (c) {
            var s = this.map(function () {
                if (!m.support.noCloneEvent && !m.isXMLDoc(this)) {
                    var w = this.outerHTML,
                        A = this.ownerDocument;
                    if (!w) {
                        w = A.createElement("div");
                        w.appendChild(this.cloneNode(true));
                        w = w.innerHTML
                    }
                    return m.clean([w.replace(ad, "").replace(/=([^="'>\s]+\/)>/g, '="$1">').replace(aW, "")], A)[0]
                } else {
                    return this.cloneNode(true)
                }
            });
            if (c === true) {
                aI(this, s);
                aI(this.find("*"), s.find("*"))
            }
            return s
        },
        html: function (c) {
            if (c === a0) {
                return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(ad, "") : null
            } else {
                if (typeof c === "string" && !aQ.test(c) && (m.support.leadingWhitespace || !aW.test(c)) && !y[(al.exec(c) || ["", ""])[1].toLowerCase()]) {
                    c = c.replace(ah, ao);
                    try {
                        for (var s = 0, w = this.length; s < w; s++) {
                            if (this[s].nodeType === 1) {
                                m.cleanData(this[s].getElementsByTagName("*"));
                                this[s].innerHTML = c
                            }
                        }
                    } catch (A) {
                        this.empty().append(c)
                    }
                } else {
                    m.isFunction(c) ? this.each(function (F) {
                        var J = m(this),
                            G = J.html();
                        J.empty().append(function () {
                            return c.call(this, F, G)
                        })
                    }) : this.empty().append(c)
                }
            }
            return this
        },
        replaceWith: function (c) {
            if (this[0] && this[0].parentNode) {
                if (m.isFunction(c)) {
                    return this.each(function (s) {
                        var w = m(this),
                            A = w.html();
                        w.replaceWith(c.call(this, s, A))
                    })
                }
                if (typeof c !== "string") {
                    c = m(c).detach()
                }
                return this.each(function () {
                    var s = this.nextSibling,
                        w = this.parentNode;
                    m(this).remove();
                    s ? m(s).before(c) : m(w).append(c)
                })
            } else {
                return this.pushStack(m(m.isFunction(c) ? c() : c), "replaceWith", c)
            }
        },
        detach: function (c) {
            return this.remove(c, true)
        },
        domManip: function (c, s, w) {
            function F(P) {
                return m.nodeName(P, "table") ? P.getElementsByTagName("tbody")[0] || P.appendChild(P.ownerDocument.createElement("tbody")) : P
            }
            var A, J, G = c[0],
                N = [],
                K;
            if (!m.support.checkClone && arguments.length === 3 && typeof G === "string" && aT.test(G)) {
                return this.each(function () {
                    m(this).domManip(c, s, w, true)
                })
            }
            if (m.isFunction(G)) {
                return this.each(function (P) {
                    var Q = m(this);
                    c[0] = G.call(this, P, s ? Q.html() : a0);
                    Q.domManip(c, s, w)
                })
            }
            if (this[0]) {
                A = G && G.parentNode;
                A = m.support.parentNode && A && A.nodeType === 11 && A.childNodes.length === this.length ? {
                    fragment: A
                } : aM(c, this, N);
                K = A.fragment;
                if (J = K.childNodes.length === 1 ? (K = K.firstChild) : K.firstChild) {
                    s = s && m.nodeName(J, "tr");
                    for (var L = 0, O = this.length; L < O; L++) {
                        w.call(s ? F(this[L], J) : this[L], L > 0 || A.cacheable || this.length > 1 ? K.cloneNode(true) : K)
                    }
                }
                N.length && m.each(N, aF)
            }
            return this
        }
    });
    m.fragments = {};
    m.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function (c, s) {
        m.fn[c] = function (w) {
            var F = [];
            w = m(w);
            var A = this.length === 1 && this[0].parentNode;
            if (A && A.nodeType === 11 && A.childNodes.length === 1 && w.length === 1) {
                w[s](this[0]);
                return this
            } else {
                A = 0;
                for (var J = w.length; A < J; A++) {
                    var G = (A > 0 ? this.clone(true) : this).get();
                    m.fn[s].apply(m(w[A]), G);
                    F = F.concat(G)
                }
                return this.pushStack(F, c, w.selector)
            }
        }
    });
    m.extend({
        clean: function (c, s, w, F) {
            s = s || aL;
            if (typeof s.createElement === "undefined") {
                s = s.ownerDocument || s[0] && s[0].ownerDocument || aL
            }
            for (var A = [], J = 0, G;
            (G = c[J]) != null; J++) {
                if (typeof G === "number") {
                    G += ""
                }
                if (G) {
                    if (typeof G === "string" && !ae.test(G)) {
                        G = s.createTextNode(G)
                    } else {
                        if (typeof G === "string") {
                            G = G.replace(ah, ao);
                            var N = (al.exec(G) || ["", ""])[1].toLowerCase(),
                                K = y[N] || y._default,
                                L = K[0],
                                O = s.createElement("div");
                            for (O.innerHTML = K[1] + G + K[2]; L--;) {
                                O = O.lastChild
                            }
                            if (!m.support.tbody) {
                                L = aa.test(G);
                                N = N === "table" && !L ? O.firstChild && O.firstChild.childNodes : K[1] === "<table>" && !L ? O.childNodes : [];
                                for (K = N.length - 1; K >= 0; --K) {
                                    m.nodeName(N[K], "tbody") && !N[K].childNodes.length && N[K].parentNode.removeChild(N[K])
                                }
                            }!m.support.leadingWhitespace && aW.test(G) && O.insertBefore(s.createTextNode(aW.exec(G)[0]), O.firstChild);
                            G = O.childNodes
                        }
                    }
                    if (G.nodeType) {
                        A.push(G)
                    } else {
                        A = m.merge(A, G)
                    }
                }
            }
            if (w) {
                for (J = 0; A[J]; J++) {
                    if (F && m.nodeName(A[J], "script") && (!A[J].type || A[J].type.toLowerCase() === "text/javascript")) {
                        F.push(A[J].parentNode ? A[J].parentNode.removeChild(A[J]) : A[J])
                    } else {
                        A[J].nodeType === 1 && A.splice.apply(A, [J + 1, 0].concat(m.makeArray(A[J].getElementsByTagName("script"))));
                        w.appendChild(A[J])
                    }
                }
            }
            return A
        },
        cleanData: function (c) {
            for (var s, w, F = m.cache, A = m.event.special, J = m.support.deleteExpando, G = 0, L;
            (L = c[G]) != null; G++) {
                if (w = L[m.expando]) {
                    s = F[w];
                    if (s.events) {
                        for (var K in s.events) {
                            A[K] ? m.event.remove(L, K) : o(L, K, s.handle)
                        }
                    }
                    if (J) {
                        delete L[m.expando]
                    } else {
                        L.removeAttribute && L.removeAttribute(m.expando)
                    }
                    delete F[w]
                }
            }
        }
    });
    var ai = /z-?index|font-?weight|opacity|zoom|line-?height/i,
        at = /alpha\([^)]*\)/,
        ax = /opacity=([^)]*)/,
        I = /float/i,
        S = /-([a-z])/ig,
        am = /([A-Z])/g,
        ap = /^-?\d+(?:px)?$/i,
        au = /^-?\d/,
        ay = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        aC = ["Left", "Right"],
        aG = ["Top", "Bottom"],
        aK = aL.defaultView && aL.defaultView.getComputedStyle,
        aB = m.support.cssFloat ? "cssFloat" : "styleFloat",
        ac = function (c, s) {
            return s.toUpperCase()
        };
    m.fn.css = function (c, s) {
        return a5(this, c, s, true, function (w, F, A) {
            if (A === a0) {
                return m.curCSS(w, F)
            }
            if (typeof A === "number" && !ai.test(F)) {
                A += "px"
            }
            m.style(w, F, A)
        })
    };
    m.extend({
        style: function (c, s, w) {
            if (!c || c.nodeType === 3 || c.nodeType === 8) {
                return a0
            }
            if ((s === "width" || s === "height") && parseFloat(w) < 0) {
                w = a0
            }
            var F = c.style || c,
                A = w !== a0;
            if (!m.support.opacity && s === "opacity") {
                if (A) {
                    F.zoom = 1;
                    s = parseInt(w, 10) + "" === "NaN" ? "" : "alpha(opacity=" + w * 100 + ")";
                    c = F.filter || m.curCSS(c, "filter") || "";
                    F.filter = at.test(c) ? c.replace(at, s) : s
                }
                return F.filter && F.filter.indexOf("opacity=") >= 0 ? parseFloat(ax.exec(F.filter)[1]) / 100 + "" : ""
            }
            if (I.test(s)) {
                s = aB
            }
            s = s.replace(S, ac);
            if (A) {
                F[s] = w
            }
            return F[s]
        },
        css: function (c, s, w, F) {
            if (s === "width" || s === "height") {
                var A, J = s === "width" ? aC : aG;

                function G() {
                    A = s === "width" ? c.offsetWidth : c.offsetHeight;
                    F !== "border" && m.each(J, function () {
                        F || (A -= parseFloat(m.curCSS(c, "padding" + this, true)) || 0);
                        if (F === "margin") {
                            A += parseFloat(m.curCSS(c, "margin" + this, true)) || 0
                        } else {
                            A -= parseFloat(m.curCSS(c, "border" + this + "Width", true)) || 0
                        }
                    })
                }
                c.offsetWidth !== 0 ? G() : m.swap(c, ay, G);
                return Math.max(0, Math.round(A))
            }
            return m.curCSS(c, s, w)
        },
        curCSS: function (c, s, w) {
            var F, A = c.style;
            if (!m.support.opacity && s === "opacity" && c.currentStyle) {
                F = ax.test(c.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : "";
                return F === "" ? "1" : F
            }
            if (I.test(s)) {
                s = aB
            }
            if (!w && A && A[s]) {
                F = A[s]
            } else {
                if (aK) {
                    if (I.test(s)) {
                        s = "float"
                    }
                    s = s.replace(am, "-$1").toLowerCase();
                    A = c.ownerDocument.defaultView;
                    if (!A) {
                        return null
                    }
                    if (c = A.getComputedStyle(c, null)) {
                        F = c.getPropertyValue(s)
                    }
                    if (s === "opacity" && F === "") {
                        F = "1"
                    }
                } else {
                    if (c.currentStyle) {
                        w = s.replace(S, ac);
                        F = c.currentStyle[s] || c.currentStyle[w];
                        if (!ap.test(F) && au.test(F)) {
                            s = A.left;
                            var G = c.runtimeStyle.left;
                            c.runtimeStyle.left = c.currentStyle.left;
                            A.left = w === "fontSize" ? "1em" : F || 0;
                            F = A.pixelLeft + "px";
                            A.left = s;
                            c.runtimeStyle.left = G
                        }
                    }
                }
            }
            return F
        },
        swap: function (c, s, w) {
            var F = {};
            for (var A in s) {
                F[A] = c.style[A];
                c.style[A] = s[A]
            }
            w.call(c);
            for (A in s) {
                c.style[A] = F[A]
            }
        }
    });
    if (m.expr && m.expr.filters) {
        m.expr.filters.hidden = function (c) {
            var s = c.offsetWidth,
                w = c.offsetHeight,
                A = c.nodeName.toLowerCase() === "tr";
            return s === 0 && w === 0 && !A ? true : s > 0 && w > 0 && !A ? false : m.curCSS(c, "display") === "none"
        };
        m.expr.filters.visible = function (c) {
            return !m.expr.filters.hidden(c)
        }
    }
    var aO = ab(),
        aS = /<script(.|\s)*?\/script>/gi,
        aV = /select|textarea/i,
        aZ = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,
        aq = /=\?(&|$)/,
        ag = /\?/,
        a4 = /(\?|&)_=.*?(&|$)/,
        a8 = /^(\w+:)?\/\/([^\/?#]+)/,
        bc = /%20/g,
        bg = m.fn.load;
    m.fn.extend({
        load: function (c, s, w) {
            if (typeof c !== "string") {
                return bg.call(this, c)
            } else {
                if (!this.length) {
                    return this
                }
            }
            var F = c.indexOf(" ");
            if (F >= 0) {
                var A = c.slice(F, c.length);
                c = c.slice(0, F)
            }
            F = "GET";
            if (s) {
                if (m.isFunction(s)) {
                    w = s;
                    s = null
                } else {
                    if (typeof s === "object") {
                        s = m.param(s, m.ajaxSettings.traditional);
                        F = "POST"
                    }
                }
            }
            var G = this;
            m.ajax({
                url: c,
                type: F,
                dataType: "html",
                data: s,
                complete: function (J, K) {
                    if (K === "success" || K === "notmodified") {
                        G.html(A ? m("<div />").append(J.responseText.replace(aS, "")).find(A) : J.responseText)
                    }
                    w && G.each(w, [J.responseText, K, J])
                }
            });
            return this
        },
        serialize: function () {
            return m.param(this.serializeArray())
        },
        serializeArray: function () {
            return this.map(function () {
                return this.elements ? m.makeArray(this.elements) : this
            }).filter(function () {
                return this.name && !this.disabled && (this.checked || aV.test(this.nodeName) || aZ.test(this.type))
            }).map(function (c, s) {
                c = m(this).val();
                return c == null ? null : m.isArray(c) ? m.map(c, function (w) {
                    return {
                        name: s.name,
                        value: w
                    }
                }) : {
                    name: s.name,
                    value: c
                }
            }).get()
        }
    });
    m.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (c, s) {
        m.fn[s] = function (w) {
            return this.bind(s, w)
        }
    });
    m.extend({
        get: function (c, s, w, A) {
            if (m.isFunction(s)) {
                A = A || w;
                w = s;
                s = null
            }
            return m.ajax({
                type: "GET",
                url: c,
                data: s,
                success: w,
                dataType: A
            })
        },
        getScript: function (c, s) {
            return m.get(c, null, s, "script")
        },
        getJSON: function (c, s, w) {
            return m.get(c, s, w, "json")
        },
        post: function (c, s, w, A) {
            if (m.isFunction(s)) {
                A = A || w;
                w = s;
                s = {}
            }
            return m.ajax({
                type: "POST",
                url: c,
                data: s,
                success: w,
                dataType: A
            })
        },
        ajaxSetup: function (c) {
            m.extend(m.ajaxSettings, c)
        },
        ajaxSettings: {
            url: location.href,
            global: true,
            type: "GET",
            contentType: "application/x-www-form-urlencoded",
            processData: true,
            async: true,
            xhr: d.XMLHttpRequest && (d.location.protocol !== "file:" || !d.ActiveXObject) ?
            function () {
                return new d.XMLHttpRequest
            } : function () {
                try {
                    return new d.ActiveXObject("Microsoft.XMLHTTP")
                } catch (c) {}
            },
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                script: "text/javascript, application/javascript",
                json: "application/json, text/javascript",
                text: "text/plain",
                _default: "*/*"
            }
        },
        lastModified: {},
        etag: {},
        ajax: function (c) {
            function s() {
                G.success && G.success.call(R, X, P, bh);
                G.global && K("ajaxSuccess", [bh, G])
            }
            function F() {
                G.complete && G.complete.call(R, bh, P);
                G.global && K("ajaxComplete", [bh, G]);
                G.global && !--m.active && m.event.trigger("ajaxStop")
            }
            function K(bk, bj) {
                (G.context ? m(G.context) : m.event).trigger(bk, bj)
            }
            var G = m.extend(true, {}, m.ajaxSettings, c),
                Q, P, X, R = c && c.context || G,
                W = G.type.toUpperCase();
            if (G.data && G.processData && typeof G.data !== "string") {
                G.data = m.param(G.data, G.traditional)
            }
            if (G.dataType === "jsonp") {
                if (W === "GET") {
                    aq.test(G.url) || (G.url += (ag.test(G.url) ? "&" : "?") + (G.jsonp || "callback") + "=?")
                } else {
                    if (!G.data || !aq.test(G.data)) {
                        G.data = (G.data ? G.data + "&" : "") + (G.jsonp || "callback") + "=?"
                    }
                }
                G.dataType = "json"
            }
            if (G.dataType === "json" && (G.data && aq.test(G.data) || aq.test(G.url))) {
                Q = G.jsonpCallback || "jsonp" + aO++;
                if (G.data) {
                    G.data = (G.data + "").replace(aq, "=" + Q + "$1")
                }
                G.url = G.url.replace(aq, "=" + Q + "$1");
                G.dataType = "script";
                d[Q] = d[Q] ||
                function (bk) {
                    X = bk;
                    s();
                    F();
                    d[Q] = a0;
                    try {
                        delete d[Q]
                    } catch (bj) {}
                    bi && bi.removeChild(A)
                }
            }
            if (G.dataType === "script" && G.cache === null) {
                G.cache = false
            }
            if (G.cache === false && W === "GET") {
                var Y = ab(),
                    Z = G.url.replace(a4, "$1_=" + Y + "$2");
                G.url = Z + (Z === G.url ? (ag.test(G.url) ? "&" : "?") + "_=" + Y : "")
            }
            if (G.data && W === "GET") {
                G.url += (ag.test(G.url) ? "&" : "?") + G.data
            }
            G.global && !m.active++ && m.event.trigger("ajaxStart");
            Y = (Y = a8.exec(G.url)) && (Y[1] && Y[1] !== location.protocol || Y[2] !== location.host);
            if (G.dataType === "script" && W === "GET" && Y) {
                var bi = aL.getElementsByTagName("head")[0] || aL.documentElement,
                    A = aL.createElement("script");
                A.src = G.url;
                if (G.scriptCharset) {
                    A.charset = G.scriptCharset
                }
                if (!Q) {
                    var w = false;
                    A.onload = A.onreadystatechange = function () {
                        if (!w && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                            w = true;
                            s();
                            F();
                            A.onload = A.onreadystatechange = null;
                            bi && A.parentNode && bi.removeChild(A)
                        }
                    }
                }
                bi.insertBefore(A, bi.firstChild);
                return a0
            }
            var J = false,
                bh = G.xhr();
            if (bh) {
                G.username ? bh.open(W, G.url, G.async, G.username, G.password) : bh.open(W, G.url, G.async);
                try {
                    if (G.data || c && c.contentType) {
                        bh.setRequestHeader("Content-Type", G.contentType)
                    }
                    if (G.ifModified) {
                        m.lastModified[G.url] && bh.setRequestHeader("If-Modified-Since", m.lastModified[G.url]);
                        m.etag[G.url] && bh.setRequestHeader("If-None-Match", m.etag[G.url])
                    }
                    Y || bh.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                    bh.setRequestHeader("Accept", G.dataType && G.accepts[G.dataType] ? G.accepts[G.dataType] + ", */*" : G.accepts._default)
                } catch (N) {}
                if (G.beforeSend && G.beforeSend.call(R, bh, G) === false) {
                    G.global && !--m.active && m.event.trigger("ajaxStop");
                    bh.abort();
                    return false
                }
                G.global && K("ajaxSend", [bh, G]);
                var L = bh.onreadystatechange = function (bk) {
                        if (!bh || bh.readyState === 0 || bk === "abort") {
                            J || F();
                            J = true;
                            if (bh) {
                                bh.onreadystatechange = m.noop
                            }
                        } else {
                            if (!J && bh && (bh.readyState === 4 || bk === "timeout")) {
                                J = true;
                                bh.onreadystatechange = m.noop;
                                P = bk === "timeout" ? "timeout" : !m.httpSuccess(bh) ? "error" : G.ifModified && m.httpNotModified(bh, G.url) ? "notmodified" : "success";
                                var bj;
                                if (P === "success") {
                                    try {
                                        X = m.httpData(bh, G.dataType, G)
                                    } catch (bl) {
                                        P = "parsererror";
                                        bj = bl
                                    }
                                }
                                if (P === "success" || P === "notmodified") {
                                    Q || s()
                                } else {
                                    m.handleError(G, bh, P, bj)
                                }
                                F();
                                bk === "timeout" && bh.abort();
                                if (G.async) {
                                    bh = null
                                }
                            }
                        }
                    };
                try {
                    var O = bh.abort;
                    bh.abort = function () {
                        bh && O.call(bh);
                        L("abort")
                    }
                } catch (T) {}
                G.async && G.timeout > 0 && setTimeout(function () {
                    bh && !J && L("timeout")
                }, G.timeout);
                try {
                    bh.send(W === "POST" || W === "PUT" || W === "DELETE" ? G.data : null)
                } catch (V) {
                    m.handleError(G, bh, null, V);
                    F()
                }
                G.async || L();
                return bh
            }
        },
        handleError: function (c, s, w, A) {
            if (c.error) {
                c.error.call(c.context || c, s, w, A)
            }
            if (c.global) {
                (c.context ? m(c.context) : m.event).trigger("ajaxError", [s, c, A])
            }
        },
        active: 0,
        httpSuccess: function (c) {
            try {
                return !c.status && location.protocol === "file:" || c.status >= 200 && c.status < 300 || c.status === 304 || c.status === 1223 || c.status === 0
            } catch (s) {}
            return false
        },
        httpNotModified: function (c, s) {
            var w = c.getResponseHeader("Last-Modified"),
                A = c.getResponseHeader("Etag");
            if (w) {
                m.lastModified[s] = w
            }
            if (A) {
                m.etag[s] = A
            }
            return c.status === 304 || c.status === 0
        },
        httpData: function (c, s, w) {
            var F = c.getResponseHeader("content-type") || "",
                A = s === "xml" || !s && F.indexOf("xml") >= 0;
            c = A ? c.responseXML : c.responseText;
            A && c.documentElement.nodeName === "parsererror" && m.error("parsererror");
            if (w && w.dataFilter) {
                c = w.dataFilter(c, s)
            }
            if (typeof c === "string") {
                if (s === "json" || !s && F.indexOf("json") >= 0) {
                    c = m.parseJSON(c)
                } else {
                    if (s === "script" || !s && F.indexOf("javascript") >= 0) {
                        m.globalEval(c)
                    }
                }
            }
            return c
        },
        param: function (c, s) {
            function w(J, K) {
                if (m.isArray(K)) {
                    m.each(K, function (L, N) {
                        s || /\[\]$/.test(J) ? F(J, N) : w(J + "[" + (typeof N === "object" || m.isArray(N) ? L : "") + "]", N)
                    })
                } else {
                    !s && K != null && typeof K === "object" ? m.each(K, function (L, N) {
                        w(J + "[" + L + "]", N)
                    }) : F(J, K)
                }
            }
            function F(J, K) {
                K = m.isFunction(K) ? K() : K;
                A[A.length] = encodeURIComponent(J) + "=" + encodeURIComponent(K)
            }
            var A = [];
            if (s === a0) {
                s = m.ajaxSettings.traditional
            }
            if (m.isArray(c) || c.jquery) {
                m.each(c, function () {
                    F(this.name, this.value)
                })
            } else {
                for (var G in c) {
                    w(G, c[G])
                }
            }
            return A.join("&").replace(bc, "+")
        }
    });
    var ak = {},
        h = /toggle|show|hide/,
        l = /^([+-]=)?([\d+-.]+)(.*)$/,
        a1, aX = [
            ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"],
            ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"],
            ["opacity"]
        ];
    m.fn.extend({
        show: function (c, s) {
            if (c || c === 0) {
                return this.animate(af("show", 3), c, s)
            } else {
                c = 0;
                for (s = this.length; c < s; c++) {
                    var w = m.data(this[c], "olddisplay");
                    this[c].style.display = w || "";
                    if (m.css(this[c], "display") === "none") {
                        w = this[c].nodeName;
                        var F;
                        if (ak[w]) {
                            F = ak[w]
                        } else {
                            var A = m("<" + w + " />").appendTo("body");
                            F = A.css("display");
                            if (F === "none") {
                                F = "block"
                            }
                            A.remove();
                            ak[w] = F
                        }
                        m.data(this[c], "olddisplay", F)
                    }
                }
                c = 0;
                for (s = this.length; c < s; c++) {
                    this[c].style.display = m.data(this[c], "olddisplay") || ""
                }
                return this
            }
        },
        hide: function (c, s) {
            if (c || c === 0) {
                return this.animate(af("hide", 3), c, s)
            } else {
                c = 0;
                for (s = this.length; c < s; c++) {
                    var w = m.data(this[c], "olddisplay");
                    !w && w !== "none" && m.data(this[c], "olddisplay", m.css(this[c], "display"))
                }
                c = 0;
                for (s = this.length; c < s; c++) {
                    this[c].style.display = "none"
                }
                return this
            }
        },
        _toggle: m.fn.toggle,
        toggle: function (c, s) {
            var w = typeof c === "boolean";
            if (m.isFunction(c) && m.isFunction(s)) {
                this._toggle.apply(this, arguments)
            } else {
                c == null || w ? this.each(function () {
                    var A = w ? c : m(this).is(":hidden");
                    m(this)[A ? "show" : "hide"]()
                }) : this.animate(af("toggle", 3), c, s)
            }
            return this
        },
        fadeTo: function (c, s, w) {
            return this.filter(":hidden").css("opacity", 0).show().end().animate({
                opacity: s
            }, c, w)
        },
        animate: function (c, s, w, F) {
            var A = m.speed(s, w, F);
            if (m.isEmptyObject(c)) {
                return this.each(A.complete)
            }
            return this[A.queue === false ? "each" : "queue"](function () {
                var J = m.extend({}, A),
                    G, N = this.nodeType === 1 && m(this).is(":hidden"),
                    K = this;
                for (G in c) {
                    var L = G.replace(S, ac);
                    if (G !== L) {
                        c[L] = c[G];
                        delete c[G];
                        G = L
                    }
                    if (c[G] === "hide" && N || c[G] === "show" && !N) {
                        return J.complete.call(this)
                    }
                    if ((G === "height" || G === "width") && this.style) {
                        J.display = m.css(this, "display");
                        J.overflow = this.style.overflow
                    }
                    if (m.isArray(c[G])) {
                        (J.specialEasing = J.specialEasing || {})[G] = c[G][1];
                        c[G] = c[G][0]
                    }
                }
                if (J.overflow != null) {
                    this.style.overflow = "hidden"
                }
                J.curAnim = m.extend({}, c);
                m.each(c, function (R, T) {
                    var V = new m.fx(K, J, R);
                    if (h.test(T)) {
                        V[T === "toggle" ? N ? "show" : "hide" : T](c)
                    } else {
                        var P = l.exec(T),
                            O = V.cur(true) || 0;
                        if (P) {
                            T = parseFloat(P[2]);
                            var Q = P[3] || "px";
                            if (Q !== "px") {
                                K.style[R] = (T || 1) + Q;
                                O = (T || 1) / V.cur(true) * O;
                                K.style[R] = O + Q
                            }
                            if (P[1]) {
                                T = (P[1] === "-=" ? -1 : 1) * T + O
                            }
                            V.custom(O, T, Q)
                        } else {
                            V.custom(O, T, "")
                        }
                    }
                });
                return true
            })
        },
        stop: function (c, s) {
            var w = m.timers;
            c && this.queue([]);
            this.each(function () {
                for (var A = w.length - 1; A >= 0; A--) {
                    if (w[A].elem === this) {
                        s && w[A](true);
                        w.splice(A, 1)
                    }
                }
            });
            s || this.dequeue();
            return this
        }
    });
    m.each({
        slideDown: af("show", 1),
        slideUp: af("hide", 1),
        slideToggle: af("toggle", 1),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        }
    }, function (c, s) {
        m.fn[c] = function (w, A) {
            return this.animate(s, w, A)
        }
    });
    m.extend({
        speed: function (c, s, w) {
            var A = c && typeof c === "object" ? c : {
                complete: w || !w && s || m.isFunction(c) && c,
                duration: c,
                easing: w && s || s && !m.isFunction(s) && s
            };
            A.duration = m.fx.off ? 0 : typeof A.duration === "number" ? A.duration : m.fx.speeds[A.duration] || m.fx.speeds._default;
            A.old = A.complete;
            A.complete = function () {
                A.queue !== false && m(this).dequeue();
                m.isFunction(A.old) && A.old.call(this)
            };
            return A
        },
        easing: {
            linear: function (c, s, w, A) {
                return w + A * c
            },
            swing: function (c, s, w, A) {
                return (-Math.cos(c * Math.PI) / 2 + 0.5) * A + w
            }
        },
        timers: [],
        fx: function (c, s, w) {
            this.options = s;
            this.elem = c;
            this.prop = w;
            if (!s.orig) {
                s.orig = {}
            }
        }
    });
    m.fx.prototype = {
        update: function () {
            this.options.step && this.options.step.call(this.elem, this.now, this);
            (m.fx.step[this.prop] || m.fx.step._default)(this);
            if ((this.prop === "height" || this.prop === "width") && this.elem.style) {
                this.elem.style.display = "block"
            }
        },
        cur: function (c) {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
                return this.elem[this.prop]
            }
            return (c = parseFloat(m.css(this.elem, this.prop, c))) && c > -10000 ? c : parseFloat(m.curCSS(this.elem, this.prop)) || 0
        },
        custom: function (c, s, w) {
            function F(G) {
                return A.step(G)
            }
            this.startTime = ab();
            this.start = c;
            this.end = s;
            this.unit = w || this.unit || "px";
            this.now = this.start;
            this.pos = this.state = 0;
            var A = this;
            F.elem = this.elem;
            if (F() && m.timers.push(F) && !a1) {
                a1 = setInterval(m.fx.tick, 13)
            }
        },
        show: function () {
            this.options.orig[this.prop] = m.style(this.elem, this.prop);
            this.options.show = true;
            this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
            m(this.elem).show()
        },
        hide: function () {
            this.options.orig[this.prop] = m.style(this.elem, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        },
        step: function (c) {
            var s = ab(),
                w = true;
            if (c || s >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                for (var F in this.options.curAnim) {
                    if (this.options.curAnim[F] !== true) {
                        w = false
                    }
                }
                if (w) {
                    if (this.options.display != null) {
                        this.elem.style.overflow = this.options.overflow;
                        c = m.data(this.elem, "olddisplay");
                        this.elem.style.display = c ? c : this.options.display;
                        if (m.css(this.elem, "display") === "none") {
                            this.elem.style.display = "block"
                        }
                    }
                    this.options.hide && m(this.elem).hide();
                    if (this.options.hide || this.options.show) {
                        for (var A in this.options.curAnim) {
                            m.style(this.elem, A, this.options.orig[A])
                        }
                    }
                    this.options.complete.call(this.elem)
                }
                return false
            } else {
                A = s - this.startTime;
                this.state = A / this.options.duration;
                c = this.options.easing || (m.easing.swing ? "swing" : "linear");
                this.pos = m.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || c](this.state, A, 0, 1, this.options.duration);
                this.now = this.start + (this.end - this.start) * this.pos;
                this.update()
            }
            return true
        }
    };
    m.extend(m.fx, {
        tick: function () {
            for (var c = m.timers, s = 0; s < c.length; s++) {
                c[s]() || c.splice(s--, 1)
            }
            c.length || m.fx.stop()
        },
        stop: function () {
            clearInterval(a1);
            a1 = null
        },
        speeds: {
            slow: 600,
            fast: 200,
            _default: 400
        },
        step: {
            opacity: function (c) {
                m.style(c.elem, "opacity", c.now)
            },
            _default: function (c) {
                if (c.elem.style && c.elem.style[c.prop] != null) {
                    c.elem.style[c.prop] = (c.prop === "width" || c.prop === "height" ? Math.max(0, c.now) : c.now) + c.unit
                } else {
                    c.elem[c.prop] = c.now
                }
            }
        }
    });
    if (m.expr && m.expr.filters) {
        m.expr.filters.animated = function (c) {
            return m.grep(m.timers, function (s) {
                return c === s.elem
            }).length
        }
    }
    m.fn.offset = "getBoundingClientRect" in aL.documentElement ?
    function (c) {
        var s = this[0];
        if (c) {
            return this.each(function (F) {
                m.offset.setOffset(this, c, F)
            })
        }
        if (!s || !s.ownerDocument) {
            return null
        }
        if (s === s.ownerDocument.body) {
            return m.offset.bodyOffset(s)
        }
        var w = s.getBoundingClientRect(),
            A = s.ownerDocument;
        s = A.body;
        A = A.documentElement;
        return {
            top: w.top + (self.pageYOffset || m.support.boxModel && A.scrollTop || s.scrollTop) - (A.clientTop || s.clientTop || 0),
            left: w.left + (self.pageXOffset || m.support.boxModel && A.scrollLeft || s.scrollLeft) - (A.clientLeft || s.clientLeft || 0)
        }
    } : function (c) {
        var s = this[0];
        if (c) {
            return this.each(function (O) {
                m.offset.setOffset(this, c, O)
            })
        }
        if (!s || !s.ownerDocument) {
            return null
        }
        if (s === s.ownerDocument.body) {
            return m.offset.bodyOffset(s)
        }
        m.offset.initialize();
        var w = s.offsetParent,
            F = s,
            A = s.ownerDocument,
            J, G = A.documentElement,
            N = A.body;
        F = (A = A.defaultView) ? A.getComputedStyle(s, null) : s.currentStyle;
        for (var K = s.offsetTop, L = s.offsetLeft;
        (s = s.parentNode) && s !== N && s !== G;) {
            if (m.offset.supportsFixedPosition && F.position === "fixed") {
                break
            }
            J = A ? A.getComputedStyle(s, null) : s.currentStyle;
            K -= s.scrollTop;
            L -= s.scrollLeft;
            if (s === w) {
                K += s.offsetTop;
                L += s.offsetLeft;
                if (m.offset.doesNotAddBorder && !(m.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(s.nodeName))) {
                    K += parseFloat(J.borderTopWidth) || 0;
                    L += parseFloat(J.borderLeftWidth) || 0
                }
                F = w;
                w = s.offsetParent
            }
            if (m.offset.subtractsBorderForOverflowNotVisible && J.overflow !== "visible") {
                K += parseFloat(J.borderTopWidth) || 0;
                L += parseFloat(J.borderLeftWidth) || 0
            }
            F = J
        }
        if (F.position === "relative" || F.position === "static") {
            K += N.offsetTop;
            L += N.offsetLeft
        }
        if (m.offset.supportsFixedPosition && F.position === "fixed") {
            K += Math.max(G.scrollTop, N.scrollTop);
            L += Math.max(G.scrollLeft, N.scrollLeft)
        }
        return {
            top: K,
            left: L
        }
    };
    m.offset = {
        initialize: function () {
            var c = aL.body,
                s = aL.createElement("div"),
                w, F, A, G = parseFloat(m.curCSS(c, "marginTop", true)) || 0;
            m.extend(s.style, {
                position: "absolute",
                top: 0,
                left: 0,
                margin: 0,
                border: 0,
                width: "1px",
                height: "1px",
                visibility: "hidden"
            });
            s.innerHTML = "<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>";
            c.insertBefore(s, c.firstChild);
            w = s.firstChild;
            F = w.firstChild;
            A = w.nextSibling.firstChild.firstChild;
            this.doesNotAddBorder = F.offsetTop !== 5;
            this.doesAddBorderForTableAndCells = A.offsetTop === 5;
            F.style.position = "fixed";
            F.style.top = "20px";
            this.supportsFixedPosition = F.offsetTop === 20 || F.offsetTop === 15;
            F.style.position = F.style.top = "";
            w.style.overflow = "hidden";
            w.style.position = "relative";
            this.subtractsBorderForOverflowNotVisible = F.offsetTop === -5;
            this.doesNotIncludeMarginInBodyOffset = c.offsetTop !== G;
            c.removeChild(s);
            m.offset.initialize = m.noop
        },
        bodyOffset: function (c) {
            var s = c.offsetTop,
                w = c.offsetLeft;
            m.offset.initialize();
            if (m.offset.doesNotIncludeMarginInBodyOffset) {
                s += parseFloat(m.curCSS(c, "marginTop", true)) || 0;
                w += parseFloat(m.curCSS(c, "marginLeft", true)) || 0
            }
            return {
                top: s,
                left: w
            }
        },
        setOffset: function (c, s, w) {
            if (/static/.test(m.curCSS(c, "position"))) {
                c.style.position = "relative"
            }
            var F = m(c),
                A = F.offset(),
                J = parseInt(m.curCSS(c, "top", true), 10) || 0,
                G = parseInt(m.curCSS(c, "left", true), 10) || 0;
            if (m.isFunction(s)) {
                s = s.call(c, w, A)
            }
            w = {
                top: s.top - A.top + J,
                left: s.left - A.left + G
            };
            "using" in s ? s.using.call(c, w) : F.css(w)
        }
    };
    m.fn.extend({
        position: function () {
            if (!this[0]) {
                return null
            }
            var c = this[0],
                s = this.offsetParent(),
                w = this.offset(),
                A = /^body|html$/i.test(s[0].nodeName) ? {
                    top: 0,
                    left: 0
                } : s.offset();
            w.top -= parseFloat(m.curCSS(c, "marginTop", true)) || 0;
            w.left -= parseFloat(m.curCSS(c, "marginLeft", true)) || 0;
            A.top += parseFloat(m.curCSS(s[0], "borderTopWidth", true)) || 0;
            A.left += parseFloat(m.curCSS(s[0], "borderLeftWidth", true)) || 0;
            return {
                top: w.top - A.top,
                left: w.left - A.left
            }
        },
        offsetParent: function () {
            return this.map(function () {
                for (var c = this.offsetParent || aL.body; c && !/^body|html$/i.test(c.nodeName) && m.css(c, "position") === "static";) {
                    c = c.offsetParent
                }
                return c
            })
        }
    });
    m.each(["Left", "Top"], function (c, s) {
        var w = "scroll" + s;
        m.fn[w] = function (F) {
            var A = this[0],
                G;
            if (!A) {
                return null
            }
            if (F !== a0) {
                return this.each(function () {
                    if (G = a2(this)) {
                        G.scrollTo(!c ? F : m(G).scrollLeft(), c ? F : m(G).scrollTop())
                    } else {
                        this[w] = F
                    }
                })
            } else {
                return (G = a2(A)) ? "pageXOffset" in G ? G[c ? "pageYOffset" : "pageXOffset"] : m.support.boxModel && G.document.documentElement[w] || G.document.body[w] : A[w]
            }
        }
    });
    m.each(["Height", "Width"], function (c, s) {
        var w = s.toLowerCase();
        m.fn["inner" + s] = function () {
            return this[0] ? m.css(this[0], w, false, "padding") : null
        };
        m.fn["outer" + s] = function (A) {
            return this[0] ? m.css(this[0], w, false, A ? "margin" : "border") : null
        };
        m.fn[w] = function (F) {
            var A = this[0];
            if (!A) {
                return F == null ? null : this
            }
            if (m.isFunction(F)) {
                return this.each(function (J) {
                    var G = m(this);
                    G[w](F.call(this, J, G[w]()))
                })
            }
            return "scrollTo" in A && A.document ? A.document.compatMode === "CSS1Compat" && A.document.documentElement["client" + s] || A.document.body["client" + s] : A.nodeType === 9 ? Math.max(A.documentElement["client" + s], A.body["scroll" + s], A.documentElement["scroll" + s], A.body["offset" + s], A.documentElement["offset" + s]) : F === a0 ? m.css(A, w) : this.css(w, typeof F === "string" ? F : F + "px")
        }
    });
    d.jQuery = d.$ = m
})(window);
(function (a) {
    a.address = function () {
        var a6 = function (d) {
                a(a.address).trigger(a.extend(a.Event(d), function () {
                    for (var f = {}, g = a.address.parameterNames(), i = 0, k = g.length; i < k; i++) {
                        f[g[i]] = a.address.parameter(g[i])
                    }
                    return {
                        value: a.address.value(),
                        path: a.address.path(),
                        pathNames: a.address.pathNames(),
                        parameterNames: g,
                        parameters: f,
                        queryString: a.address.queryString()
                    }
                }.call(a.address)))
            },
            c = function (d, f, g) {
                a(a.address).bind(d, f, g);
                return a.address
            },
            I = function () {
                return j.pushState && S.state !== am
            },
            aS = function () {
                return ("/" + ah.pathname.replace(new RegExp(S.state), "") + ah.search + (ar() ? "#" + ar() : "")).replace(q, "/")
            },
            ar = function () {
                var d = ah.href.indexOf("#");
                return d != -1 ? aa(ah.href.substr(d + 1), au) : ""
            },
            aY = function () {
                return I() ? aS() : ar()
            },
            aX = function () {
                return "javascript"
            },
            aK = function (d) {
                d = d.toString();
                return (S.strict && d.substr(0, 1) != "/" ? "/" : "") + d
            },
            aa = function (d, f) {
                if (S.crawlable && f) {
                    return (d != "" ? "!" : "") + d
                }
                return d.replace(/^\!/, "")
            },
            ac = function (d, f) {
                return parseInt(d.css(f), 10)
            },
            N = function (d) {
                for (var f, g, i = 0, k = d.childNodes.length; i < k; i++) {
                    if (d.childNodes[i].src) {
                        f = String(d.childNodes[i].src)
                    }
                    if (g = N(d.childNodes[i])) {
                        f = g
                    }
                }
                return f
            },
            aD = function () {
                if (!aQ) {
                    var d = aY(),
                        f = ae != d;
                    if (af && aF < 523) {
                        if (av != j.length) {
                            av = j.length;
                            if (ao[av - 1] !== am) {
                                ae = ao[av - 1]
                            }
                            ay(au)
                        }
                    } else {
                        if (f) {
                            if (ai && aF < 7) {
                                ah.reload()
                            } else {
                                ai && aF < 8 && S.history && a1(aZ, 50);
                                ae = d;
                                ay(au)
                            }
                        }
                    }
                }
            },
            ay = function (d) {
                a6(ab);
                a6(d ? ad : ag);
                a1(aj, 10)
            },
            aj = function () {
                if (S.tracker !== "null" && S.tracker !== null) {
                    var d = a.isFunction(S.tracker) ? S.tracker : aq[S.tracker],
                        f = (ah.pathname + ah.search + (a.address && !I() ? a.address.value() : "")).replace(/\/\//, "/").replace(/^\/$/, "");
                    if (a.isFunction(d)) {
                        d(f)
                    } else {
                        if (a.isFunction(aq.urchinTracker)) {} else {
                            if (aq.pageTracker !== am && a.isFunction(aq.pageTracker._trackPageview)) {} else {
                                aq._gaq !== am && a.isFunction(aq._gaq.push)
                            }
                        }
                    }
                }
            },
            aZ = function () {
                var d = aX() + ":" + au + ";document.open();document.writeln('<html><head><title>" + aA.title.replace("'", "\\'") + "</title><script>var " + aN + ' = "' + encodeURIComponent(aY()) + (aA.domain != ah.hostname ? '";document.domain="' + aA.domain : "") + "\";</script></head></html>');document.close();";
                if (aF < 7) {
                    aC.src = d
                } else {
                    aC.contentWindow.location.replace(d)
                }
            },
            an = function () {
                if (aG && al != -1) {
                    var d, f = aG.substr(al + 1).split("&");
                    for (aV = 0; aV < f.length; aV++) {
                        d = f[aV].split("=");
                        if (/^(autoUpdate|crawlable|history|strict|wrap)$/.test(d[0])) {
                            S[d[0]] = isNaN(d[1]) ? /^(true|yes)$/i.test(d[1]) : parseInt(d[1], 10) !== 0
                        }
                        if (/^(state|tracker)$/.test(d[0])) {
                            S[d[0]] = d[1]
                        }
                    }
                    aG = null
                }
                ae = aY()
            },
            at = function () {
                if (!ap) {
                    ap = ax;
                    an();
                    var d = function () {
                            a0.call(this);
                            a3.call(this)
                        },
                        f = a("body").ajaxComplete(d);
                    d();
                    if (S.wrap) {
                        a("body > *").wrapAll('<div style="padding:' + (ac(f, "marginTop") + ac(f, "paddingTop")) + "px " + (ac(f, "marginRight") + ac(f, "paddingRight")) + "px " + (ac(f, "marginBottom") + ac(f, "paddingBottom")) + "px " + (ac(f, "marginLeft") + ac(f, "paddingLeft")) + 'px;" />').parent().wrap('<div id="' + aN + '" style="height:100%;overflow:auto;position:relative;' + (af ? window.statusbar.visible && !/chrome/i.test(a2) ? "" : "resize:both;" : "") + '" />');
                        a("html, body").css({
                            height: "100%",
                            margin: 0,
                            padding: 0,
                            overflow: "hidden"
                        });
                        af && a('<style type="text/css" />').appendTo("head").text("#" + aN + "::-webkit-resizer { background-color: #fff; }")
                    }
                    if (ai && aF < 8) {
                        d = aA.getElementsByTagName("frameset")[0];
                        aC = aA.createElement((d ? "" : "i") + "frame");
                        if (d) {
                            d.insertAdjacentElement("beforeEnd", aC);
                            d[d.cols ? "cols" : "rows"] += ",0";
                            aC.noResize = ax;
                            aC.frameBorder = aC.frameSpacing = 0
                        } else {
                            aC.style.display = "none";
                            aC.style.width = aC.style.height = 0;
                            aC.tabIndex = -1;
                            aA.body.insertAdjacentElement("afterBegin", aC)
                        }
                        a1(function () {
                            a(aC).bind("load", function () {
                                var g = aC.contentWindow;
                                ae = g[aN] !== am ? a.address.decode(g[aN]) : "";
                                if (ae != aY()) {
                                    ay(au);
                                    ah.hash = aa(ae, ax)
                                }
                            });
                            aC.contentWindow[aN] === am && aZ()
                        }, 50)
                    } else {
                        if (af) {
                            if (aF < 418) {
                                a(aA.body).append('<form id="' + aN + '" style="position:absolute;top:-9999px;" method="get"></form>');
                                a4 = aA.getElementById(aN)
                            }
                            if (ah[aN] === am) {
                                ah[aN] = {}
                            }
                            if (ah[aN][ah.pathname] !== am) {
                                ao = ah[aN][ah.pathname].split(",")
                            }
                        }
                    }
                    a1(function () {
                        a6("init");
                        ay(au)
                    }, 1);
                    if (!I()) {
                        if (ai && aF > 7 || !ai && "on" + aI in aq) {
                            if (aq.addEventListener) {
                                aq.addEventListener(aI, aD, au)
                            } else {
                                aq.attachEvent && aq.attachEvent("on" + aI, aD)
                            }
                        } else {
                            a5(aD, 50)
                        }
                    }
                }
            },
            a0 = function () {
                var d, f = a("a"),
                    g = f.size(),
                    i = -1;
                a1(function () {
                    if (++i != g) {
                        d = a(f.get(i));
                        d.is('[rel*="address:"]') && d.address();
                        a1(arguments.callee, 1)
                    }
                }, 1)
            },
            a8 = function () {
                if (ae != aY()) {
                    ae = aY();
                    ay(au)
                }
            },
            h = function () {
                if (aq.removeEventListener) {
                    aq.removeEventListener(aI, aD, au)
                } else {
                    aq.detachEvent && aq.detachEvent("on" + aI, aD)
                }
            },
            a3 = function () {
                if (S.crawlable) {
                    var d = ah.pathname.replace(/\/$/, "");
                    a("body").html().indexOf("_escaped_fragment_") != -1 && a("a[href]:not([href^=http]), , a[href*=" + document.domain + "]").each(function () {
                        var f = a(this).attr("href").replace(/^http:/, "").replace(new RegExp(d + "/?$"), "");
                        if (f == "" || f.indexOf("_escaped_fragment_") != -1) {
                            a(this).attr("href", "#" + a.address.decode(f.replace(/\/(.*)\?_escaped_fragment_=(.*)$/, "!$2")))
                        }
                    })
                }
            },
            aw = function (d) {
                return d.replace(/\+/g, " ")
            },
            ak = function (d) {
                return az(aB(d)).replace(/%20/g, "+")
            },
            aE = function (d) {
                return d.split("#")[0].split("?")[0]
            },
            aH = function (d) {
                d = aE(d);
                var f = d.replace(q, "/").split("/");
                if (d.substr(0, 1) == "/" || d.length === 0) {
                    f.splice(0, 1)
                }
                d.substr(d.length - 1, 1) == "/" && f.splice(f.length - 1, 1);
                return f
            },
            aL = function (d) {
                d = d.split("?");
                return d.slice(1, d.length).join("?").split("#")[0]
            },
            aJ = function (d, f) {
                if (f = aL(f)) {
                    params = f.split("&");
                    f = [];
                    for (aV = 0; aV < params.length; aV++) {
                        var g = params[aV].split("=");
                        if (g[0] == d || a.address.decode(g[0]) == d) {
                            f.push(g.slice(1).join("="))
                        }
                    }
                    if (f.length !== 0) {
                        return f.length != 1 ? f : f[0]
                    }
                }
            },
            aM = function (d) {
                var f = aL(d);
                d = [];
                if (f && f.indexOf("=") != -1) {
                    f = f.split("&");
                    for (var g = 0; g < f.length; g++) {
                        var i = f[g].split("=")[0];
                        a.inArray(i, d) == -1 && d.push(i)
                    }
                }
                return d
            },
            aT = function (d) {
                d = d.split("#");
                return d.slice(1, d.length).join("#")
            },
            am, aN = "jQueryAddress",
            aI = "hashchange",
            ab = "change",
            ad = "internalChange",
            ag = "externalChange",
            ax = true,
            au = false,
            S = {
                autoUpdate: ax,
                crawlable: au,
                history: ax,
                strict: ax,
                wrap: au
            },
            aP = a.browser,
            aF = parseFloat(a.browser.version),
            aO = aP.mozilla,
            ai = aP.msie,
            aR = aP.opera,
            af = aP.webkit || aP.safari,
            a7 = au,
            aq = function () {
                try {
                    return top.document !== am ? top : window
                } catch (d) {
                    return window
                }
            }(),
            aA = aq.document,
            j = aq.history,
            ah = aq.location,
            a5 = setInterval,
            a1 = setTimeout,
            az = encodeURIComponent,
            aB = decodeURIComponent,
            q = /\/{2,9}/g,
            a2 = navigator.userAgent,
            aC, a4, aG = N(document),
            al = aG ? aG.indexOf("?") : -1,
            b = aA.title,
            av = j.length,
            aQ = au,
            ap = au,
            e = ax,
            aU = ax,
            aW = au,
            ao = [],
            ae = aY();
        if (ai) {
            aF = parseFloat(a2.substr(a2.indexOf("MSIE") + 4));
            if (aA.documentMode && aA.documentMode != aF) {
                aF = aA.documentMode != 8 ? 7 : 8
            }
            a(document).bind("propertychange", function () {
                if (aA.title != b && aA.title.indexOf("#" + aY()) != -1) {
                    aA.title = b
                }
            })
        }
        if (a7 = aO && aF >= 1 || ai && aF >= 6 || aR && aF >= 9.5 || af && aF >= 312) {
            for (var aV = 1; aV < av; aV++) {
                ao.push("")
            }
            ao.push(ae);
            if (aR) {
                history.navigationMode = "compatible"
            }
            if (document.readyState == "complete") {
                var y = setInterval(function () {
                    if (a.address) {
                        at();
                        clearInterval(y)
                    }
                }, 50)
            } else {
                an();
                a(at)
            }
            aP = aS();
            if (S.state !== am) {
                if (j.pushState) {
                    aP.substr(0, 3) == "/#/" && ah.replace(S.state.replace(/^\/$/, "") + aP.substr(2))
                } else {
                    aP != "/" && aP.replace(/^\/#/, "") != ar() && ah.replace(S.state.replace(/^\/$/, "") + "/#" + aP)
                }
            }
            a(window).bind({
                popstate: a8,
                unload: h
            })
        } else {
            !a7 && ar() != "" || af && aF < 418 && ar() != "" && ah.search != "" ? ah.replace(ah.href.substr(0, ah.href.indexOf("#"))) : aj()
        }
        return {
            bind: function (d, f, g) {
                return c(d, f, g)
            },
            init: function (d) {
                return c("init", d)
            },
            change: function (d) {
                return c(ab, d)
            },
            internalChange: function (d) {
                return c(ad, d)
            },
            externalChange: function (d) {
                return c(ag, d)
            },
            baseURL: function () {
                var d = ah.href;
                if (d.indexOf("#") != -1) {
                    d = d.substr(0, d.indexOf("#"))
                }
                if (/\/$/.test(d)) {
                    d = d.substr(0, d.length - 1)
                }
                return d
            },
            autoUpdate: function (d) {
                if (d !== am) {
                    S.autoUpdate = d;
                    return this
                }
                return S.autoUpdate
            },
            crawlable: function (d) {
                if (d !== am) {
                    S.crawlable = d;
                    return this
                }
                return S.crawlable
            },
            history: function (d) {
                if (d !== am) {
                    S.history = d;
                    return this
                }
                return S.history
            },
            state: function (d) {
                if (d !== am) {
                    S.state = d;
                    return this
                }
                return S.state
            },
            strict: function (d) {
                if (d !== am) {
                    S.strict = d;
                    return this
                }
                return S.strict
            },
            tracker: function (d) {
                if (d !== am) {
                    S.tracker = d;
                    return this
                }
                return S.tracker
            },
            wrap: function (d) {
                if (d !== am) {
                    S.wrap = d;
                    return this
                }
                return S.wrap
            },
            update: function () {
                aW = ax;
                this.value(ae);
                aW = au;
                return this
            },
            encode: function (d) {
                var f = aH(d),
                    g = aM(d),
                    i = aL(d),
                    n = aT(d),
                    k = d.substr(0, 1),
                    m = d.substr(d.length - 1),
                    l = "";
                a.each(f, function (p, o) {
                    l += "/" + ak(o)
                });
                if (i !== "") {
                    l += "?";
                    if (g.length === 0) {
                        l += i
                    } else {
                        a.each(g, function (p, o) {
                            p = aJ(o, d);
                            if (typeof p !== "string") {
                                a.each(p, function (s, r) {
                                    l += ak(o) + "=" + ak(r) + "&"
                                })
                            } else {
                                l += ak(o) + "=" + ak(p) + "&"
                            }
                        });
                        l = l.substr(0, l.length - 1)
                    }
                }
                if (n !== "") {
                    l += "#" + ak(n)
                }
                if (k != "/" && l.substr(0, 1) == "/") {
                    l = l.substr(1)
                }
                if (k == "/" && l.substr(0, 1) != "/") {
                    l = "/" + l
                }
                if (/#|&|\?/.test(m)) {
                    l += m
                }
                return l
            },
            decode: function (d) {
                if (d !== am) {
                    var f = [],
                        g = function (l) {
                            return aB(l.toString().replace(/\+/g, "%20"))
                        };
                    if (typeof d == "object" && d.length !== am) {
                        for (var i = 0, k = d.length; i < k; i++) {
                            f[i] = g(d[i])
                        }
                        return f
                    } else {
                        return g(d)
                    }
                }
            },
            title: function (d) {
                if (d !== am) {
                    a1(function () {
                        b = aA.title = d;
                        if (aU && aC && aC.contentWindow && aC.contentWindow.document) {
                            aC.contentWindow.document.title = d;
                            aU = au
                        }
                        if (!e && aO) {
                            ah.replace(ah.href.indexOf("#") != -1 ? ah.href : ah.href + "#")
                        }
                        e = au
                    }, 50);
                    return this
                }
                return aA.title
            },
            value: function (d) {
                if (d !== am) {
                    d = aK(d);
                    if (S.autoUpdate) {
                        d = this.encode(d)
                    }
                    if (d == "/") {
                        d = ""
                    }
                    if (ae == d && !aW) {
                        return
                    }
                    e = ax;
                    ae = d;
                    if (S.autoUpdate || aW) {
                        ay(ax);
                        if (I()) {
                            j[S.history ? "pushState" : "replaceState"]({}, "", S.state.replace(/\/$/, "") + (ae == "" ? "/" : ae))
                        } else {
                            aQ = ax;
                            ao[j.length] = ae;
                            if (af) {
                                if (S.history) {
                                    ah[aN][ah.pathname] = ao.toString();
                                    av = j.length + 1;
                                    if (aF < 418) {
                                        if (ah.search == "") {
                                            a4.action = "#" + aa(ae, ax);
                                            a4.submit()
                                        }
                                    } else {
                                        if (aF < 523 || ae == "") {
                                            d = aA.createEvent("MouseEvents");
                                            d.initEvent("click", ax, ax);
                                            var f = aA.createElement("a");
                                            f.href = "#" + aa(ae, ax);
                                            f.dispatchEvent(d)
                                        } else {
                                            ah.hash = "#" + aa(ae, ax)
                                        }
                                    }
                                } else {
                                    ah.replace("#" + aa(ae, ax))
                                }
                            } else {
                                if (ae != aY()) {
                                    if (S.history) {
                                        ah.hash = "#" + aa(this.decode(aK(ae)), ax)
                                    } else {
                                        ah.replace("#" + aa(ae, ax))
                                    }
                                }
                            }
                            ai && aF < 8 && S.history && a1(aZ, 50);
                            if (af) {
                                a1(function () {
                                    aQ = au
                                }, 1)
                            } else {
                                aQ = au
                            }
                        }
                    }
                    return this
                }
                if (!a7) {
                    return null
                }
                return this.decode(aK(ae))
            },
            path: function (d) {
                if (d !== am) {
                    var f = aL(aK(ae)),
                        g = aT(aK(ae));
                    this.value(d + (f ? "?" + f : "") + (g ? "#" + g : ""));
                    return this
                }
                return this.decode(aE(aK(ae)))
            },
            pathNames: function () {
                return this.decode(aH(aK(ae)))
            },
            queryString: function (d) {
                if (d !== am) {
                    var f = aT(aK(ae));
                    this.value(this.path() + (d ? "?" + d : "") + (f ? "#" + f : ""));
                    return this
                }
                return this.decode(aL(aK(ae)))
            },
            parameter: function (d, f, g) {
                var i, n;
                if (f !== am) {
                    var k = this.parameterNames();
                    n = [];
                    f = f ? az(f) : "";
                    for (i = 0; i < k.length; i++) {
                        var m = k[i],
                            l = this.parameter(m);
                        if (typeof l == "string") {
                            l = [l]
                        }
                        if (m == d) {
                            l = f === null || f === "" ? [] : g ? l.concat([f]) : [f]
                        }
                        for (var o = 0; o < l.length; o++) {
                            n.push(m + "=" + aw(ak(l[o])))
                        }
                    }
                    a.inArray(d, k) == -1 && f !== null && f !== "" && n.push(d + "=" + aw(ak(f)));
                    this.queryString(n.join("&"));
                    return this
                }
                return this.decode(aJ(d, aK(ae)))
            },
            parameterNames: function () {
                return this.decode(aM(aK(ae)))
            },
            hash: function (d) {
                if (d !== am) {
                    this.value(aK(ae).split("#")[0] + (d ? "#" + d : ""));
                    return this
                }
                return this.decode(aT(aK(ae)))
            }
        }
    }();
    a.fn.address = function (c) {
        if (!a(this).attr("address")) {
            var b = function (d) {
                    if (a(this).is("a")) {
                        var e = c ? c.call(this) : /address:/.test(a(this).attr("rel")) ? a(this).attr("rel").split("address:")[1].split(" ")[0] : a.address.state() !== undefined && a.address.state() != "/" ? a(this).attr("href").replace(new RegExp("^(.*" + a.address.state() + "|\\.)"), "") : a(this).attr("href").replace(/^(#\!?|\.)/, "");
                        a.address.value(e);
                        d.preventDefault()
                    }
                };
            a(this).click(b).live("click", b).live("submit", function (d) {
                if (a(this).is("form")) {
                    var e = a(this).attr("action");
                    e = c ? c.call(this) : (e.indexOf("?") != -1 ? e.replace(/&$/, "") : e + "?") + a.address.decode(a(this).serialize());
                    a.address.value(e);
                    d.preventDefault()
                }
            }).attr("address", true)
        }
        return this
    }
})(jQuery);
jQuery.Hashtable = function () {
    this.items = new Array();
    this.itemsCount = 0;
    this.add = function (b, c) {
        if (!this.containsKey(b)) {
            this.items[b] = c;
            this.itemsCount
        } else {
            throw "key '" + b + "' allready exists."
        }
    };
    this.get = function (b) {
        if (this.containsKey(b)) {
            return this.items[b]
        } else {
            return null
        }
    };
    this.remove = function (b) {
        if (this.containsKey(b)) {
            delete this.items[b];
            this.itemsCount--
        } else {
            throw "key '" + b + "' does not exists."
        }
    };
    this.containsKey = function (b) {
        return typeof (this.items[b]) != "undefined"
    };
    this.containsValue = function a(c) {
        for (var b in this.items) {
            if (this.items[b] == c) {
                return true
            }
        }
        return false
    };
    this.contains = function (b) {
        return this.containsKey(b) || this.containsValue(b)
    };
    this.clear = function () {
        this.items = new Array();
        itemsCount = 0
    };
    this.size = function () {
        return this.itemsCount
    };
    this.isEmpty = function () {
        return this.size() == 0
    }
};
jQuery.easing.jswing = jQuery.easing.swing;
jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function (h, g, a, e, f) {
        return jQuery.easing[jQuery.easing.def](h, g, a, e, f)
    },
    easeInQuad: function (h, g, a, e, f) {
        return e * (g /= f) * g + a
    },
    easeOutQuad: function (h, g, a, e, f) {
        return -e * (g /= f) * (g - 2) + a
    },
    easeInOutQuad: function (h, g, a, e, f) {
        if ((g /= f / 2) < 1) {
            return e / 2 * g * g + a
        }
        return -e / 2 * ((--g) * (g - 2) - 1) + a
    },
    easeInCubic: function (h, g, a, e, f) {
        return e * (g /= f) * g * g + a
    },
    easeOutCubic: function (h, g, a, e, f) {
        return e * ((g = g / f - 1) * g * g + 1) + a
    },
    easeInOutCubic: function (h, g, a, e, f) {
        if ((g /= f / 2) < 1) {
            return e / 2 * g * g * g + a
        }
        return e / 2 * ((g -= 2) * g * g + 2) + a
    },
    easeInQuart: function (h, g, a, e, f) {
        return e * (g /= f) * g * g * g + a
    },
    easeOutQuart: function (h, g, a, e, f) {
        return -e * ((g = g / f - 1) * g * g * g - 1) + a
    },
    easeInOutQuart: function (h, g, a, e, f) {
        if ((g /= f / 2) < 1) {
            return e / 2 * g * g * g * g + a
        }
        return -e / 2 * ((g -= 2) * g * g * g - 2) + a
    },
    easeInQuint: function (h, g, a, e, f) {
        return e * (g /= f) * g * g * g * g + a
    },
    easeOutQuint: function (h, g, a, e, f) {
        return e * ((g = g / f - 1) * g * g * g * g + 1) + a
    },
    easeInOutQuint: function (h, g, a, e, f) {
        if ((g /= f / 2) < 1) {
            return e / 2 * g * g * g * g * g + a
        }
        return e / 2 * ((g -= 2) * g * g * g * g + 2) + a
    },
    easeInSine: function (h, g, a, e, f) {
        return -e * Math.cos(g / f * (Math.PI / 2)) + e + a
    },
    easeOutSine: function (h, g, a, e, f) {
        return e * Math.sin(g / f * (Math.PI / 2)) + a
    },
    easeInOutSine: function (h, g, a, e, f) {
        return -e / 2 * (Math.cos(Math.PI * g / f) - 1) + a
    },
    easeInExpo: function (h, g, a, e, f) {
        return (g == 0) ? a : e * Math.pow(2, 10 * (g / f - 1)) + a
    },
    easeOutExpo: function (h, g, a, e, f) {
        return (g == f) ? a + e : e * (-Math.pow(2, -10 * g / f) + 1) + a
    },
    easeInOutExpo: function (h, g, a, e, f) {
        if (g == 0) {
            return a
        }
        if (g == f) {
            return a + e
        }
        if ((g /= f / 2) < 1) {
            return e / 2 * Math.pow(2, 10 * (g - 1)) + a
        }
        return e / 2 * (-Math.pow(2, -10 * --g) + 2) + a
    },
    easeInCirc: function (h, g, a, e, f) {
        return -e * (Math.sqrt(1 - (g /= f) * g) - 1) + a
    },
    easeOutCirc: function (h, g, a, e, f) {
        return e * Math.sqrt(1 - (g = g / f - 1) * g) + a
    },
    easeInOutCirc: function (h, g, a, e, f) {
        if ((g /= f / 2) < 1) {
            return -e / 2 * (Math.sqrt(1 - g * g) - 1) + a
        }
        return e / 2 * (Math.sqrt(1 - (g -= 2) * g) + 1) + a
    },
    easeInElastic: function (l, k, f, g, h) {
        var j = 1.70158;
        var i = 0;
        var e = g;
        if (k == 0) {
            return f
        }
        if ((k /= h) == 1) {
            return f + g
        }
        if (!i) {
            i = h * 0.3
        }
        if (e < Math.abs(g)) {
            e = g;
            var j = i / 4
        } else {
            var j = i / (2 * Math.PI) * Math.asin(g / e)
        }
        return -(e * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * h - j) * (2 * Math.PI) / i)) + f
    },
    easeOutElastic: function (l, k, f, g, h) {
        var j = 1.70158;
        var i = 0;
        var e = g;
        if (k == 0) {
            return f
        }
        if ((k /= h) == 1) {
            return f + g
        }
        if (!i) {
            i = h * 0.3
        }
        if (e < Math.abs(g)) {
            e = g;
            var j = i / 4
        } else {
            var j = i / (2 * Math.PI) * Math.asin(g / e)
        }
        return e * Math.pow(2, -10 * k) * Math.sin((k * h - j) * (2 * Math.PI) / i) + g + f
    },
    easeInOutElastic: function (l, k, f, g, h) {
        var j = 1.70158;
        var i = 0;
        var e = g;
        if (k == 0) {
            return f
        }
        if ((k /= h / 2) == 2) {
            return f + g
        }
        if (!i) {
            i = h * (0.3 * 1.5)
        }
        if (e < Math.abs(g)) {
            e = g;
            var j = i / 4
        } else {
            var j = i / (2 * Math.PI) * Math.asin(g / e)
        }
        if (k < 1) {
            return -0.5 * (e * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * h - j) * (2 * Math.PI) / i)) + f
        }
        return e * Math.pow(2, -10 * (k -= 1)) * Math.sin((k * h - j) * (2 * Math.PI) / i) * 0.5 + g + f
    },
    easeInBack: function (i, h, a, e, f, g) {
        if (g == undefined) {
            g = 1.70158
        }
        return e * (h /= f) * h * ((g + 1) * h - g) + a
    },
    easeOutBack: function (i, h, a, e, f, g) {
        if (g == undefined) {
            g = 1.70158
        }
        return e * ((h = h / f - 1) * h * ((g + 1) * h + g) + 1) + a
    },
    easeInOutBack: function (i, h, a, e, f, g) {
        if (g == undefined) {
            g = 1.70158
        }
        if ((h /= f / 2) < 1) {
            return e / 2 * (h * h * (((g *= (1.525)) + 1) * h - g)) + a
        }
        return e / 2 * ((h -= 2) * h * (((g *= (1.525)) + 1) * h + g) + 2) + a
    },
    easeInBounce: function (h, g, a, e, f) {
        return e - jQuery.easing.easeOutBounce(h, f - g, 0, e, f) + a
    },
    easeOutBounce: function (h, g, a, e, f) {
        if ((g /= f) < (1 / 2.75)) {
            return e * (7.5625 * g * g) + a
        } else {
            if (g < (2 / 2.75)) {
                return e * (7.5625 * (g -= (1.5 / 2.75)) * g + 0.75) + a
            } else {
                if (g < (2.5 / 2.75)) {
                    return e * (7.5625 * (g -= (2.25 / 2.75)) * g + 0.9375) + a
                } else {
                    return e * (7.5625 * (g -= (2.625 / 2.75)) * g + 0.984375) + a
                }
            }
        }
    },
    easeInOutBounce: function (h, g, a, e, f) {
        if (g < f / 2) {
            return jQuery.easing.easeInBounce(h, g * 2, 0, e, f) * 0.5 + a
        }
        return jQuery.easing.easeOutBounce(h, g * 2 - f, 0, e, f) * 0.5 + e * 0.5 + a
    }
});
/*
 * jQuery UI 1.8.5
 *
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */ (function (a, b) {
    function d(c) {
        return !a(c).parents().andSelf().filter(function () {
            return a.curCSS(this, "visibility") === "hidden" || a.expr.filters.hidden(this)
        }).length
    }
    a.ui = a.ui || {};
    if (!a.ui.version) {
        a.extend(a.ui, {
            version: "1.8.5",
            keyCode: {
                ALT: 18,
                BACKSPACE: 8,
                CAPS_LOCK: 20,
                COMMA: 188,
                COMMAND: 91,
                COMMAND_LEFT: 91,
                COMMAND_RIGHT: 93,
                CONTROL: 17,
                DELETE: 46,
                DOWN: 40,
                END: 35,
                ENTER: 13,
                ESCAPE: 27,
                HOME: 36,
                INSERT: 45,
                LEFT: 37,
                MENU: 93,
                NUMPAD_ADD: 107,
                NUMPAD_DECIMAL: 110,
                NUMPAD_DIVIDE: 111,
                NUMPAD_ENTER: 108,
                NUMPAD_MULTIPLY: 106,
                NUMPAD_SUBTRACT: 109,
                PAGE_DOWN: 34,
                PAGE_UP: 33,
                PERIOD: 190,
                RIGHT: 39,
                SHIFT: 16,
                SPACE: 32,
                TAB: 9,
                UP: 38,
                WINDOWS: 91
            }
        });
        a.fn.extend({
            _focus: a.fn.focus,
            focus: function (c, e) {
                return typeof c === "number" ? this.each(function () {
                    var f = this;
                    setTimeout(function () {
                        a(f).focus();
                        e && e.call(f)
                    }, c)
                }) : this._focus.apply(this, arguments)
            },
            scrollParent: function () {
                var c;
                c = a.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () {
                    return /(relative|absolute|fixed)/.test(a.curCSS(this, "position", 1)) && /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1))
                }).eq(0) : this.parents().filter(function () {
                    return /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1))
                }).eq(0);
                return /fixed/.test(this.css("position")) || !c.length ? a(document) : c
            },
            zIndex: function (c) {
                if (c !== b) {
                    return this.css("zIndex", c)
                }
                if (this.length) {
                    c = a(this[0]);
                    for (var e; c.length && c[0] !== document;) {
                        e = c.css("position");
                        if (e === "absolute" || e === "relative" || e === "fixed") {
                            e = parseInt(c.css("zIndex"));
                            if (!isNaN(e) && e != 0) {
                                return e
                            }
                        }
                        c = c.parent()
                    }
                }
                return 0
            },
            disableSelection: function () {
                return this.bind("mousedown.ui-disableSelection selectstart.ui-disableSelection", function (c) {
                    c.preventDefault()
                })
            },
            enableSelection: function () {
                return this.unbind(".ui-disableSelection")
            }
        });
        a.each(["Width", "Height"], function (c, f) {
            function g(e, h, i, n) {
                a.each(j, function () {
                    h -= parseFloat(a.curCSS(e, "padding" + this, true)) || 0;
                    if (i) {
                        h -= parseFloat(a.curCSS(e, "border" + this + "Width", true)) || 0
                    }
                    if (n) {
                        h -= parseFloat(a.curCSS(e, "margin" + this, true)) || 0
                    }
                });
                return h
            }
            var j = f === "Width" ? ["Left", "Right"] : ["Top", "Bottom"],
                k = f.toLowerCase(),
                l = {
                    innerWidth: a.fn.innerWidth,
                    innerHeight: a.fn.innerHeight,
                    outerWidth: a.fn.outerWidth,
                    outerHeight: a.fn.outerHeight
                };
            a.fn["inner" + f] = function (e) {
                if (e === b) {
                    return l["inner" + f].call(this)
                }
                return this.each(function () {
                    a.style(this, k, g(this, e) + "px")
                })
            };
            a.fn["outer" + f] = function (e, h) {
                if (typeof e !== "number") {
                    return l["outer" + f].call(this, e)
                }
                return this.each(function () {
                    a.style(this, k, g(this, e, true, h) + "px")
                })
            }
        });
        a.extend(a.expr[":"], {
            data: function (c, e, f) {
                return !!a.data(c, f[3])
            },
            focusable: function (c) {
                var e = c.nodeName.toLowerCase(),
                    f = a.attr(c, "tabindex");
                if ("area" === e) {
                    e = c.parentNode;
                    f = e.name;
                    if (!c.href || !f || e.nodeName.toLowerCase() !== "map") {
                        return false
                    }
                    c = a("img[usemap=#" + f + "]")[0];
                    return !!c && d(c)
                }
                return (/input|select|textarea|button|object/.test(e) ? !c.disabled : "a" == e ? c.href || !isNaN(f) : !isNaN(f)) && d(c)
            },
            tabbable: function (c) {
                var e = a.attr(c, "tabindex");
                return (isNaN(e) || e >= 0) && a(c).is(":focusable")
            }
        });
        a(function () {
            var c = document.createElement("div"),
                e = document.body;
            a.extend(c.style, {
                minHeight: "100px",
                height: "auto",
                padding: 0,
                borderWidth: 0
            });
            a.support.minHeight = e.appendChild(c).offsetHeight === 100;
            e.removeChild(c).style.display = "none"
        });
        a.extend(a.ui, {
            plugin: {
                add: function (c, f, g) {
                    c = a.ui[c].prototype;
                    for (var h in g) {
                        c.plugins[h] = c.plugins[h] || [];
                        c.plugins[h].push([f, g[h]])
                    }
                },
                call: function (c, f, g) {
                    if ((f = c.plugins[f]) && c.element[0].parentNode) {
                        for (var h = 0; h < f.length; h++) {
                            c.options[f[h][0]] && f[h][1].apply(c.element, g)
                        }
                    }
                }
            },
            contains: function (c, e) {
                return document.compareDocumentPosition ? c.compareDocumentPosition(e) & 16 : c !== e && c.contains(e)
            },
            hasScroll: function (c, e) {
                if (a(c).css("overflow") === "hidden") {
                    return false
                }
                e = e && e === "left" ? "scrollLeft" : "scrollTop";
                var f = false;
                if (c[e] > 0) {
                    return true
                }
                c[e] = 1;
                f = c[e] > 0;
                c[e] = 0;
                return f
            },
            isOverAxis: function (c, e, f) {
                return c > e && c < e + f
            },
            isOver: function (c, f, g, j, k, l) {
                return a.ui.isOverAxis(c, g, k) && a.ui.isOverAxis(f, j, l)
            }
        })
    }
})(jQuery);
/*
 * jQuery UI Widget 1.8.5
 *
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Widget
 */ (function (a, c) {
    if (a.cleanData) {
        var d = a.cleanData;
        a.cleanData = function (b) {
            for (var f = 0, g;
            (g = b[f]) != null; f++) {
                a(g).triggerHandler("remove")
            }
            d(b)
        }
    } else {
        var e = a.fn.remove;
        a.fn.remove = function (b, f) {
            return this.each(function () {
                if (!f) {
                    if (!b || a.filter(b, [this]).length) {
                        a("*", this).add([this]).each(function () {
                            a(this).triggerHandler("remove")
                        })
                    }
                }
                return e.call(a(this), b, f)
            })
        }
    }
    a.widget = function (b, g, h) {
        var i = b.split(".")[0],
            j;
        b = b.split(".")[1];
        j = i + "-" + b;
        if (!h) {
            h = g;
            g = a.Widget
        }
        a.expr[":"][j] = function (f) {
            return !!a.data(f, b)
        };
        a[i] = a[i] || {};
        a[i][b] = function (k, f) {
            arguments.length && this._createWidget(k, f)
        };
        g = new g;
        g.options = a.extend(true, {}, g.options);
        a[i][b].prototype = a.extend(true, g, {
            namespace: i,
            widgetName: b,
            widgetEventPrefix: a[i][b].prototype.widgetEventPrefix || b,
            widgetBaseClass: j
        }, h);
        a.widget.bridge(b, a[i][b])
    };
    a.widget.bridge = function (b, f) {
        a.fn[b] = function (g) {
            var i = typeof g === "string",
                j = Array.prototype.slice.call(arguments, 1),
                k = this;
            g = !i && j.length ? a.extend.apply(null, [true, g].concat(j)) : g;
            if (i && g.substring(0, 1) === "_") {
                return k
            }
            i ? this.each(function () {
                var h = a.data(this, b);
                if (!h) {
                    throw "cannot call methods on " + b + " prior to initialization; attempted to call method '" + g + "'"
                }
                if (!a.isFunction(h[g])) {
                    throw "no such method '" + g + "' for " + b + " widget instance"
                }
                var l = h[g].apply(h, j);
                if (l !== h && l !== c) {
                    k = l;
                    return false
                }
            }) : this.each(function () {
                var h = a.data(this, b);
                h ? h.option(g || {})._init() : a.data(this, b, new f(g, this))
            });
            return k
        }
    };
    a.Widget = function (b, f) {
        arguments.length && this._createWidget(b, f)
    };
    a.Widget.prototype = {
        widgetName: "widget",
        widgetEventPrefix: "",
        options: {
            disabled: false
        },
        _createWidget: function (b, f) {
            a.data(f, this.widgetName, this);
            this.element = a(f);
            this.options = a.extend(true, {}, this.options, a.metadata && a.metadata.get(f)[this.widgetName], b);
            var g = this;
            this.element.bind("remove." + this.widgetName, function () {
                g.destroy()
            });
            this._create();
            this._init()
        },
        _create: function () {},
        _init: function () {},
        destroy: function () {
            this.element.unbind("." + this.widgetName).removeData(this.widgetName);
            this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled")
        },
        widget: function () {
            return this.element
        },
        option: function (b, f) {
            var g = b,
                h = this;
            if (arguments.length === 0) {
                return a.extend({}, h.options)
            }
            if (typeof b === "string") {
                if (f === c) {
                    return this.options[b]
                }
                g = {};
                g[b] = f
            }
            a.each(g, function (i, j) {
                h._setOption(i, j)
            });
            return h
        },
        _setOption: function (b, f) {
            this.options[b] = f;
            if (b === "disabled") {
                this.widget()[f ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", f)
            }
            return this
        },
        enable: function () {
            return this._setOption("disabled", false)
        },
        disable: function () {
            return this._setOption("disabled", true)
        },
        _trigger: function (b, g, h) {
            var i = this.options[b];
            g = a.Event(g);
            g.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase();
            h = h || {};
            if (g.originalEvent) {
                b = a.event.props.length;
                for (var j; b;) {
                    j = a.event.props[--b];
                    g[j] = g.originalEvent[j]
                }
            }
            this.element.trigger(g, h);
            return !(a.isFunction(i) && i.call(this.element[0], g, h) === false || g.isDefaultPrevented())
        }
    }
})(jQuery);
/*
 * jQuery UI Mouse 1.8.5
 *
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Mouse
 *
 * Depends:
 *	jquery.ui.widget.js
 */ (function (a) {
    a.widget("ui.mouse", {
        options: {
            cancel: ":input,option",
            distance: 1,
            delay: 0
        },
        _mouseInit: function () {
            var b = this;
            this.element.bind("mousedown." + this.widgetName, function (c) {
                return b._mouseDown(c)
            }).bind("click." + this.widgetName, function (c) {
                if (b._preventClickEvent) {
                    b._preventClickEvent = false;
                    c.stopImmediatePropagation();
                    return false
                }
            });
            this.started = false
        },
        _mouseDestroy: function () {
            this.element.unbind("." + this.widgetName)
        },
        _mouseDown: function (c) {
            c.originalEvent = c.originalEvent || {};
            if (!c.originalEvent.mouseHandled) {
                this._mouseStarted && this._mouseUp(c);
                this._mouseDownEvent = c;
                var d = this,
                    g = c.which == 1,
                    h = typeof this.options.cancel == "string" ? a(c.target).parents().add(c.target).filter(this.options.cancel).length : false;
                if (!g || h || !this._mouseCapture(c)) {
                    return true
                }
                this.mouseDelayMet = !this.options.delay;
                if (!this.mouseDelayMet) {
                    this._mouseDelayTimer = setTimeout(function () {
                        d.mouseDelayMet = true
                    }, this.options.delay)
                }
                if (this._mouseDistanceMet(c) && this._mouseDelayMet(c)) {
                    this._mouseStarted = this._mouseStart(c) !== false;
                    if (!this._mouseStarted) {
                        c.preventDefault();
                        return true
                    }
                }
                this._mouseMoveDelegate = function (b) {
                    return d._mouseMove(b)
                };
                this._mouseUpDelegate = function (b) {
                    return d._mouseUp(b)
                };
                a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate);
                a.browser.safari || c.preventDefault();
                return c.originalEvent.mouseHandled = true
            }
        },
        _mouseMove: function (b) {
            if (a.browser.msie && !b.button) {
                return this._mouseUp(b)
            }
            if (this._mouseStarted) {
                this._mouseDrag(b);
                return b.preventDefault()
            }
            if (this._mouseDistanceMet(b) && this._mouseDelayMet(b)) {
                (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== false) ? this._mouseDrag(b) : this._mouseUp(b)
            }
            return !this._mouseStarted
        },
        _mouseUp: function (b) {
            a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
            if (this._mouseStarted) {
                this._mouseStarted = false;
                this._preventClickEvent = b.target == this._mouseDownEvent.target;
                this._mouseStop(b)
            }
            return false
        },
        _mouseDistanceMet: function (b) {
            return Math.max(Math.abs(this._mouseDownEvent.pageX - b.pageX), Math.abs(this._mouseDownEvent.pageY - b.pageY)) >= this.options.distance
        },
        _mouseDelayMet: function () {
            return this.mouseDelayMet
        },
        _mouseStart: function () {},
        _mouseDrag: function () {},
        _mouseStop: function () {},
        _mouseCapture: function () {
            return true
        }
    })
})(jQuery);
(function (a) {
    a.ui = a.ui || {};
    var b = /left|center|right/,
        d = /top|center|bottom/,
        e = a.fn.position,
        f = a.fn.offset;
    a.fn.position = function (i) {
        if (!i || !i.of) {
            return e.apply(this, arguments)
        }
        i = a.extend({}, i);
        var c = a(i.of),
            l = c[0],
            n = (i.collision || "flip").split(" "),
            m = i.offset ? i.offset.split(" ") : [0, 0],
            o, q, p;
        if (l.nodeType === 9) {
            o = c.width();
            q = c.height();
            p = {
                top: 0,
                left: 0
            }
        } else {
            if (l.scrollTo && l.document) {
                o = c.width();
                q = c.height();
                p = {
                    top: c.scrollTop(),
                    left: c.scrollLeft()
                }
            } else {
                if (l.preventDefault) {
                    i.at = "left top";
                    o = q = 0;
                    p = {
                        top: i.of.pageY,
                        left: i.of.pageX
                    }
                } else {
                    o = c.outerWidth();
                    q = c.outerHeight();
                    p = c.offset()
                }
            }
        }
        a.each(["my", "at"], function () {
            var g = (i[this] || "").split(" ");
            if (g.length === 1) {
                g = b.test(g[0]) ? g.concat(["center"]) : d.test(g[0]) ? ["center"].concat(g) : ["center", "center"]
            }
            g[0] = b.test(g[0]) ? g[0] : "center";
            g[1] = d.test(g[1]) ? g[1] : "center";
            i[this] = g
        });
        if (n.length === 1) {
            n[1] = n[0]
        }
        m[0] = parseInt(m[0], 10) || 0;
        if (m.length === 1) {
            m[1] = m[0]
        }
        m[1] = parseInt(m[1], 10) || 0;
        if (i.at[0] === "right") {
            p.left += o
        } else {
            if (i.at[0] === "center") {
                p.left += o / 2
            }
        }
        if (i.at[1] === "bottom") {
            p.top += q
        } else {
            if (i.at[1] === "center") {
                p.top += q / 2
            }
        }
        p.left += m[0];
        p.top += m[1];
        return this.each(function () {
            var g = a(this),
                j = g.outerWidth(),
                k = g.outerHeight(),
                s = parseInt(a.curCSS(this, "marginLeft", true)) || 0,
                u = parseInt(a.curCSS(this, "marginTop", true)) || 0,
                y = j + s + parseInt(a.curCSS(this, "marginRight", true)) || 0,
                z = k + u + parseInt(a.curCSS(this, "marginBottom", true)) || 0,
                h = a.extend({}, p),
                x;
            if (i.my[0] === "right") {
                h.left -= j
            } else {
                if (i.my[0] === "center") {
                    h.left -= j / 2
                }
            }
            if (i.my[1] === "bottom") {
                h.top -= k
            } else {
                if (i.my[1] === "center") {
                    h.top -= k / 2
                }
            }
            h.left = parseInt(h.left);
            h.top = parseInt(h.top);
            x = {
                left: h.left - s,
                top: h.top - u
            };
            a.each(["left", "top"], function (r, v) {
                a.ui.position[n[r]] && a.ui.position[n[r]][v](h, {
                    targetWidth: o,
                    targetHeight: q,
                    elemWidth: j,
                    elemHeight: k,
                    collisionPosition: x,
                    collisionWidth: y,
                    collisionHeight: z,
                    offset: m,
                    my: i.my,
                    at: i.at
                })
            });
            a.fn.bgiframe && g.bgiframe();
            g.offset(a.extend(h, {
                using: i.using
            }))
        })
    };
    a.ui.position = {
        fit: {
            left: function (g, c) {
                var h = a(window);
                h = c.collisionPosition.left + c.collisionWidth - h.width() - h.scrollLeft();
                g.left = h > 0 ? g.left - h : Math.max(g.left - c.collisionPosition.left, g.left)
            },
            top: function (g, c) {
                var h = a(window);
                h = c.collisionPosition.top + c.collisionHeight - h.height() - h.scrollTop();
                g.top = h > 0 ? g.top - h : Math.max(g.top - c.collisionPosition.top, g.top)
            }
        },
        flip: {
            left: function (i, c) {
                if (c.at[0] !== "center") {
                    var j = a(window);
                    j = c.collisionPosition.left + c.collisionWidth - j.width() - j.scrollLeft();
                    var l = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0,
                        k = c.at[0] === "left" ? c.targetWidth : -c.targetWidth,
                        m = -2 * c.offset[0];
                    i.left += c.collisionPosition.left < 0 ? l + k + m : j > 0 ? l + k + m : 0
                }
            },
            top: function (i, c) {
                if (c.at[1] !== "center") {
                    var j = a(window);
                    j = c.collisionPosition.top + c.collisionHeight - j.height() - j.scrollTop();
                    var l = c.my[1] === "top" ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0,
                        k = c.at[1] === "top" ? c.targetHeight : -c.targetHeight,
                        m = -2 * c.offset[1];
                    i.top += c.collisionPosition.top < 0 ? l + k + m : j > 0 ? l + k + m : 0
                }
            }
        }
    };
    if (!a.offset.setOffset) {
        a.offset.setOffset = function (i, c) {
            if (/static/.test(a.curCSS(i, "position"))) {
                i.style.position = "relative"
            }
            var j = a(i),
                l = j.offset(),
                k = parseInt(a.curCSS(i, "top", true), 10) || 0,
                m = parseInt(a.curCSS(i, "left", true), 10) || 0;
            l = {
                top: c.top - l.top + k,
                left: c.left - l.left + m
            };
            "using" in c ? c.using.call(i, l) : j.css(l)
        };
        a.fn.offset = function (g) {
            var c = this[0];
            if (!c || !c.ownerDocument) {
                return null
            }
            if (g) {
                return this.each(function () {
                    a.offset.setOffset(this, g)
                })
            }
            return f.call(this)
        }
    }
})(jQuery);
(function (a) {
    a.widget("ui.draggable", a.ui.mouse, {
        widgetEventPrefix: "drag",
        options: {
            addClasses: true,
            appendTo: "parent",
            axis: false,
            connectToSortable: false,
            containment: false,
            cursor: "auto",
            cursorAt: false,
            grid: false,
            handle: false,
            helper: "original",
            iframeFix: false,
            opacity: false,
            refreshPositions: false,
            revert: false,
            revertDuration: 500,
            scope: "default",
            scroll: true,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            snap: false,
            snapMode: "both",
            snapTolerance: 20,
            stack: false,
            zIndex: false
        },
        _create: function () {
            if (this.options.helper == "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) {
                this.element[0].style.position = "relative"
            }
            this.options.addClasses && this.element.addClass("ui-draggable");
            this.options.disabled && this.element.addClass("ui-draggable-disabled");
            this._mouseInit()
        },
        destroy: function () {
            if (this.element.data("draggable")) {
                this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
                this._mouseDestroy();
                return this
            }
        },
        _mouseCapture: function (c) {
            var d = this.options;
            if (this.helper || d.disabled || a(c.target).is(".ui-resizable-handle")) {
                return false
            }
            this.handle = this._getHandle(c);
            if (!this.handle) {
                return false
            }
            return true
        },
        _mouseStart: function (c) {
            var d = this.options;
            this.helper = this._createHelper(c);
            this._cacheHelperProportions();
            if (a.ui.ddmanager) {
                a.ui.ddmanager.current = this
            }
            this._cacheMargins();
            this.cssPosition = this.helper.css("position");
            this.scrollParent = this.helper.scrollParent();
            this.offset = this.positionAbs = this.element.offset();
            this.offset = {
                top: this.offset.top - this.margins.top,
                left: this.offset.left - this.margins.left
            };
            a.extend(this.offset, {
                click: {
                    left: c.pageX - this.offset.left,
                    top: c.pageY - this.offset.top
                },
                parent: this._getParentOffset(),
                relative: this._getRelativeOffset()
            });
            this.originalPosition = this.position = this._generatePosition(c);
            this.originalPageX = c.pageX;
            this.originalPageY = c.pageY;
            d.cursorAt && this._adjustOffsetFromHelper(d.cursorAt);
            d.containment && this._setContainment();
            if (this._trigger("start", c) === false) {
                this._clear();
                return false
            }
            this._cacheHelperProportions();
            a.ui.ddmanager && !d.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, c);
            this.helper.addClass("ui-draggable-dragging");
            this._mouseDrag(c, true);
            return true
        },
        _mouseDrag: function (c, d) {
            this.position = this._generatePosition(c);
            this.positionAbs = this._convertPositionTo("absolute");
            if (!d) {
                d = this._uiHash();
                if (this._trigger("drag", c, d) === false) {
                    this._mouseUp({});
                    return false
                }
                this.position = d.position
            }
            if (!this.options.axis || this.options.axis != "y") {
                this.helper[0].style.left = this.position.left + "px"
            }
            if (!this.options.axis || this.options.axis != "x") {
                this.helper[0].style.top = this.position.top + "px"
            }
            a.ui.ddmanager && a.ui.ddmanager.drag(this, c);
            return false
        },
        _mouseStop: function (d) {
            var e = false;
            if (a.ui.ddmanager && !this.options.dropBehaviour) {
                e = a.ui.ddmanager.drop(this, d)
            }
            if (this.dropped) {
                e = this.dropped;
                this.dropped = false
            }
            if (!this.element[0] || !this.element[0].parentNode) {
                return false
            }
            if (this.options.revert == "invalid" && !e || this.options.revert == "valid" && e || this.options.revert === true || a.isFunction(this.options.revert) && this.options.revert.call(this.element, e)) {
                var f = this;
                a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {
                    f._trigger("stop", d) !== false && f._clear()
                })
            } else {
                this._trigger("stop", d) !== false && this._clear()
            }
            return false
        },
        cancel: function () {
            this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear();
            return this
        },
        _getHandle: function (c) {
            var d = !this.options.handle || !a(this.options.handle, this.element).length ? true : false;
            a(this.options.handle, this.element).find("*").andSelf().each(function () {
                if (this == c.target) {
                    d = true
                }
            });
            return d
        },
        _createHelper: function (c) {
            var d = this.options;
            c = a.isFunction(d.helper) ? a(d.helper.apply(this.element[0], [c])) : d.helper == "clone" ? this.element.clone() : this.element;
            c.parents("body").length || c.appendTo(d.appendTo == "parent" ? this.element[0].parentNode : d.appendTo);
            c[0] != this.element[0] && !/(fixed|absolute)/.test(c.css("position")) && c.css("position", "absolute");
            return c
        },
        _adjustOffsetFromHelper: function (b) {
            if (typeof b == "string") {
                b = b.split(" ")
            }
            if (a.isArray(b)) {
                b = {
                    left: +b[0],
                    top: +b[1] || 0
                }
            }
            if ("left" in b) {
                this.offset.click.left = b.left + this.margins.left
            }
            if ("right" in b) {
                this.offset.click.left = this.helperProportions.width - b.right + this.margins.left
            }
            if ("top" in b) {
                this.offset.click.top = b.top + this.margins.top
            }
            if ("bottom" in b) {
                this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top
            }
        },
        _getParentOffset: function () {
            this.offsetParent = this.helper.offsetParent();
            var b = this.offsetParent.offset();
            if (this.cssPosition == "absolute" && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
                b.left += this.scrollParent.scrollLeft();
                b.top += this.scrollParent.scrollTop()
            }
            if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && a.browser.msie) {
                b = {
                    top: 0,
                    left: 0
                }
            }
            return {
                top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            }
        },
        _getRelativeOffset: function () {
            if (this.cssPosition == "relative") {
                var b = this.element.position();
                return {
                    top: b.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
                    left: b.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
                }
            } else {
                return {
                    top: 0,
                    left: 0
                }
            }
        },
        _cacheMargins: function () {
            this.margins = {
                left: parseInt(this.element.css("marginLeft"), 10) || 0,
                top: parseInt(this.element.css("marginTop"), 10) || 0
            }
        },
        _cacheHelperProportions: function () {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            }
        },
        _setContainment: function () {
            var d = this.options;
            if (d.containment == "parent") {
                d.containment = this.helper[0].parentNode
            }
            if (d.containment == "document" || d.containment == "window") {
                this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(d.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(d.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]
            }
            if (!/^(document|window|parent)$/.test(d.containment) && d.containment.constructor != Array) {
                var e = a(d.containment)[0];
                if (e) {
                    d = a(d.containment).offset();
                    var f = a(e).css("overflow") != "hidden";
                    this.containment = [d.left + (parseInt(a(e).css("borderLeftWidth"), 10) || 0) + (parseInt(a(e).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(e).css("borderTopWidth"), 10) || 0) + (parseInt(a(e).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (f ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(a(e).css("borderLeftWidth"), 10) || 0) - (parseInt(a(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (f ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(a(e).css("borderTopWidth"), 10) || 0) - (parseInt(a(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
                }
            } else {
                if (d.containment.constructor == Array) {
                    this.containment = d.containment
                }
            }
        },
        _convertPositionTo: function (d, e) {
            if (!e) {
                e = this.position
            }
            d = d == "absolute" ? 1 : -1;
            var g = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
                h = /(html|body)/i.test(g[0].tagName);
            return {
                top: e.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : h ? 0 : g.scrollTop()) * d),
                left: e.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : h ? 0 : g.scrollLeft()) * d)
            }
        },
        _generatePosition: function (d) {
            var h = this.options,
                i = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
                k = /(html|body)/i.test(i[0].tagName),
                j = d.pageX,
                l = d.pageY;
            if (this.originalPosition) {
                if (this.containment) {
                    if (d.pageX - this.offset.click.left < this.containment[0]) {
                        j = this.containment[0] + this.offset.click.left
                    }
                    if (d.pageY - this.offset.click.top < this.containment[1]) {
                        l = this.containment[1] + this.offset.click.top
                    }
                    if (d.pageX - this.offset.click.left > this.containment[2]) {
                        j = this.containment[2] + this.offset.click.left
                    }
                    if (d.pageY - this.offset.click.top > this.containment[3]) {
                        l = this.containment[3] + this.offset.click.top
                    }
                }
                if (h.grid) {
                    l = this.originalPageY + Math.round((l - this.originalPageY) / h.grid[1]) * h.grid[1];
                    l = this.containment ? !(l - this.offset.click.top < this.containment[1] || l - this.offset.click.top > this.containment[3]) ? l : !(l - this.offset.click.top < this.containment[1]) ? l - h.grid[1] : l + h.grid[1] : l;
                    j = this.originalPageX + Math.round((j - this.originalPageX) / h.grid[0]) * h.grid[0];
                    j = this.containment ? !(j - this.offset.click.left < this.containment[0] || j - this.offset.click.left > this.containment[2]) ? j : !(j - this.offset.click.left < this.containment[0]) ? j - h.grid[0] : j + h.grid[0] : j
                }
            }
            return {
                top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : k ? 0 : i.scrollTop()),
                left: j - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : k ? 0 : i.scrollLeft())
            }
        },
        _clear: function () {
            this.helper.removeClass("ui-draggable-dragging");
            this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove();
            this.helper = null;
            this.cancelHelperRemoval = false
        },
        _trigger: function (d, e, f) {
            f = f || this._uiHash();
            a.ui.plugin.call(this, d, [e, f]);
            if (d == "drag") {
                this.positionAbs = this._convertPositionTo("absolute")
            }
            return a.Widget.prototype._trigger.call(this, d, e, f)
        },
        plugins: {},
        _uiHash: function () {
            return {
                helper: this.helper,
                position: this.position,
                originalPosition: this.originalPosition,
                offset: this.positionAbs
            }
        }
    });
    a.extend(a.ui.draggable, {
        version: "1.8.5"
    });
    a.ui.plugin.add("draggable", "connectToSortable", {
        start: function (d, g) {
            var h = a(this).data("draggable"),
                j = h.options,
                i = a.extend({}, g, {
                    item: h.element
                });
            h.sortables = [];
            a(j.connectToSortable).each(function () {
                var b = a.data(this, "sortable");
                if (b && !b.options.disabled) {
                    h.sortables.push({
                        instance: b,
                        shouldRevert: b.options.revert
                    });
                    b._refreshItems();
                    b._trigger("activate", d, i)
                }
            })
        },
        stop: function (d, e) {
            var g = a(this).data("draggable"),
                h = a.extend({}, e, {
                    item: g.element
                });
            a.each(g.sortables, function () {
                if (this.instance.isOver) {
                    this.instance.isOver = 0;
                    g.cancelHelperRemoval = true;
                    this.instance.cancelHelperRemoval = false;
                    if (this.shouldRevert) {
                        this.instance.options.revert = true
                    }
                    this.instance._mouseStop(d);
                    this.instance.options.helper = this.instance.options._helper;
                    g.options.helper == "original" && this.instance.currentItem.css({
                        top: "auto",
                        left: "auto"
                    })
                } else {
                    this.instance.cancelHelperRemoval = false;
                    this.instance._trigger("deactivate", d, h)
                }
            })
        },
        drag: function (d, e) {
            var g = a(this).data("draggable"),
                h = this;
            a.each(g.sortables, function () {
                this.instance.positionAbs = g.positionAbs;
                this.instance.helperProportions = g.helperProportions;
                this.instance.offset.click = g.offset.click;
                if (this.instance._intersectsWith(this.instance.containerCache)) {
                    if (!this.instance.isOver) {
                        this.instance.isOver = 1;
                        this.instance.currentItem = a(h).clone().appendTo(this.instance.element).data("sortable-item", true);
                        this.instance.options._helper = this.instance.options.helper;
                        this.instance.options.helper = function () {
                            return e.helper[0]
                        };
                        d.target = this.instance.currentItem[0];
                        this.instance._mouseCapture(d, true);
                        this.instance._mouseStart(d, true, true);
                        this.instance.offset.click.top = g.offset.click.top;
                        this.instance.offset.click.left = g.offset.click.left;
                        this.instance.offset.parent.left -= g.offset.parent.left - this.instance.offset.parent.left;
                        this.instance.offset.parent.top -= g.offset.parent.top - this.instance.offset.parent.top;
                        g._trigger("toSortable", d);
                        g.dropped = this.instance.element;
                        g.currentItem = g.element;
                        this.instance.fromOutside = g
                    }
                    this.instance.currentItem && this.instance._mouseDrag(d)
                } else {
                    if (this.instance.isOver) {
                        this.instance.isOver = 0;
                        this.instance.cancelHelperRemoval = true;
                        this.instance.options.revert = false;
                        this.instance._trigger("out", d, this.instance._uiHash(this.instance));
                        this.instance._mouseStop(d, true);
                        this.instance.options.helper = this.instance.options._helper;
                        this.instance.currentItem.remove();
                        this.instance.placeholder && this.instance.placeholder.remove();
                        g._trigger("fromSortable", d);
                        g.dropped = false
                    }
                }
            })
        }
    });
    a.ui.plugin.add("draggable", "cursor", {
        start: function () {
            var c = a("body"),
                d = a(this).data("draggable").options;
            if (c.css("cursor")) {
                d._cursor = c.css("cursor")
            }
            c.css("cursor", d.cursor)
        },
        stop: function () {
            var b = a(this).data("draggable").options;
            b._cursor && a("body").css("cursor", b._cursor)
        }
    });
    a.ui.plugin.add("draggable", "iframeFix", {
        start: function () {
            var b = a(this).data("draggable").options;
            a(b.iframeFix === true ? "iframe" : b.iframeFix).each(function () {
                a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({
                    width: this.offsetWidth + "px",
                    height: this.offsetHeight + "px",
                    position: "absolute",
                    opacity: "0.001",
                    zIndex: 1000
                }).css(a(this).offset()).appendTo("body")
            })
        },
        stop: function () {
            a("div.ui-draggable-iframeFix").each(function () {
                this.parentNode.removeChild(this)
            })
        }
    });
    a.ui.plugin.add("draggable", "opacity", {
        start: function (c, d) {
            c = a(d.helper);
            d = a(this).data("draggable").options;
            if (c.css("opacity")) {
                d._opacity = c.css("opacity")
            }
            c.css("opacity", d.opacity)
        },
        stop: function (c, d) {
            c = a(this).data("draggable").options;
            c._opacity && a(d.helper).css("opacity", c._opacity)
        }
    });
    a.ui.plugin.add("draggable", "scroll", {
        start: function () {
            var b = a(this).data("draggable");
            if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") {
                b.overflowOffset = b.scrollParent.offset()
            }
        },
        drag: function (d) {
            var e = a(this).data("draggable"),
                g = e.options,
                h = false;
            if (e.scrollParent[0] != document && e.scrollParent[0].tagName != "HTML") {
                if (!g.axis || g.axis != "x") {
                    if (e.overflowOffset.top + e.scrollParent[0].offsetHeight - d.pageY < g.scrollSensitivity) {
                        e.scrollParent[0].scrollTop = h = e.scrollParent[0].scrollTop + g.scrollSpeed
                    } else {
                        if (d.pageY - e.overflowOffset.top < g.scrollSensitivity) {
                            e.scrollParent[0].scrollTop = h = e.scrollParent[0].scrollTop - g.scrollSpeed
                        }
                    }
                }
                if (!g.axis || g.axis != "y") {
                    if (e.overflowOffset.left + e.scrollParent[0].offsetWidth - d.pageX < g.scrollSensitivity) {
                        e.scrollParent[0].scrollLeft = h = e.scrollParent[0].scrollLeft + g.scrollSpeed
                    } else {
                        if (d.pageX - e.overflowOffset.left < g.scrollSensitivity) {
                            e.scrollParent[0].scrollLeft = h = e.scrollParent[0].scrollLeft - g.scrollSpeed
                        }
                    }
                }
            } else {
                if (!g.axis || g.axis != "x") {
                    if (d.pageY - a(document).scrollTop() < g.scrollSensitivity) {
                        h = a(document).scrollTop(a(document).scrollTop() - g.scrollSpeed)
                    } else {
                        if (a(window).height() - (d.pageY - a(document).scrollTop()) < g.scrollSensitivity) {
                            h = a(document).scrollTop(a(document).scrollTop() + g.scrollSpeed)
                        }
                    }
                }
                if (!g.axis || g.axis != "y") {
                    if (d.pageX - a(document).scrollLeft() < g.scrollSensitivity) {
                        h = a(document).scrollLeft(a(document).scrollLeft() - g.scrollSpeed)
                    } else {
                        if (a(window).width() - (d.pageX - a(document).scrollLeft()) < g.scrollSensitivity) {
                            h = a(document).scrollLeft(a(document).scrollLeft() + g.scrollSpeed)
                        }
                    }
                }
            }
            h !== false && a.ui.ddmanager && !g.dropBehaviour && a.ui.ddmanager.prepareOffsets(e, d)
        }
    });
    a.ui.plugin.add("draggable", "snap", {
        start: function () {
            var c = a(this).data("draggable"),
                d = c.options;
            c.snapElements = [];
            a(d.snap.constructor != String ? d.snap.items || ":data(draggable)" : d.snap).each(function () {
                var b = a(this),
                    e = b.offset();
                this != c.element[0] && c.snapElements.push({
                    item: this,
                    width: b.outerWidth(),
                    height: b.outerHeight(),
                    top: e.top,
                    left: e.left
                })
            })
        },
        drag: function (d, u) {
            for (var v = a(this).data("draggable"), x = v.options, w = x.snapTolerance, y = u.offset.left, F = y + v.helperProportions.width, E = u.offset.top, G = E + v.helperProportions.height, z = v.snapElements.length - 1; z >= 0; z--) {
                var A = v.snapElements[z].left,
                    C = A + v.snapElements[z].width,
                    B = v.snapElements[z].top,
                    D = B + v.snapElements[z].height;
                if (A - w < y && y < C + w && B - w < E && E < D + w || A - w < y && y < C + w && B - w < G && G < D + w || A - w < F && F < C + w && B - w < E && E < D + w || A - w < F && F < C + w && B - w < G && G < D + w) {
                    if (x.snapMode != "inner") {
                        var H = Math.abs(B - G) <= w,
                            I = Math.abs(D - E) <= w,
                            J = Math.abs(A - F) <= w,
                            K = Math.abs(C - y) <= w;
                        if (H) {
                            u.position.top = v._convertPositionTo("relative", {
                                top: B - v.helperProportions.height,
                                left: 0
                            }).top - v.margins.top
                        }
                        if (I) {
                            u.position.top = v._convertPositionTo("relative", {
                                top: D,
                                left: 0
                            }).top - v.margins.top
                        }
                        if (J) {
                            u.position.left = v._convertPositionTo("relative", {
                                top: 0,
                                left: A - v.helperProportions.width
                            }).left - v.margins.left
                        }
                        if (K) {
                            u.position.left = v._convertPositionTo("relative", {
                                top: 0,
                                left: C
                            }).left - v.margins.left
                        }
                    }
                    var L = H || I || J || K;
                    if (x.snapMode != "outer") {
                        H = Math.abs(B - E) <= w;
                        I = Math.abs(D - G) <= w;
                        J = Math.abs(A - y) <= w;
                        K = Math.abs(C - F) <= w;
                        if (H) {
                            u.position.top = v._convertPositionTo("relative", {
                                top: B,
                                left: 0
                            }).top - v.margins.top
                        }
                        if (I) {
                            u.position.top = v._convertPositionTo("relative", {
                                top: D - v.helperProportions.height,
                                left: 0
                            }).top - v.margins.top
                        }
                        if (J) {
                            u.position.left = v._convertPositionTo("relative", {
                                top: 0,
                                left: A
                            }).left - v.margins.left
                        }
                        if (K) {
                            u.position.left = v._convertPositionTo("relative", {
                                top: 0,
                                left: C - v.helperProportions.width
                            }).left - v.margins.left
                        }
                    }
                    if (!v.snapElements[z].snapping && (H || I || J || K || L)) {
                        v.options.snap.snap && v.options.snap.snap.call(v.element, d, a.extend(v._uiHash(), {
                            snapItem: v.snapElements[z].item
                        }))
                    }
                    v.snapElements[z].snapping = H || I || J || K || L
                } else {
                    v.snapElements[z].snapping && v.options.snap.release && v.options.snap.release.call(v.element, d, a.extend(v._uiHash(), {
                        snapItem: v.snapElements[z].item
                    }));
                    v.snapElements[z].snapping = false
                }
            }
        }
    });
    a.ui.plugin.add("draggable", "stack", {
        start: function () {
            var c = a(this).data("draggable").options;
            c = a.makeArray(a(c.stack)).sort(function (b, e) {
                return (parseInt(a(b).css("zIndex"), 10) || 0) - (parseInt(a(e).css("zIndex"), 10) || 0)
            });
            if (c.length) {
                var d = parseInt(c[0].style.zIndex) || 0;
                a(c).each(function (b) {
                    this.style.zIndex = d + b
                });
                this[0].style.zIndex = d + c.length
            }
        }
    });
    a.ui.plugin.add("draggable", "zIndex", {
        start: function (c, d) {
            c = a(d.helper);
            d = a(this).data("draggable").options;
            if (c.css("zIndex")) {
                d._zIndex = c.css("zIndex")
            }
            c.css("zIndex", d.zIndex)
        },
        stop: function (c, d) {
            c = a(this).data("draggable").options;
            c._zIndex && a(d.helper).css("zIndex", c._zIndex)
        }
    })
})(jQuery);
(function (a) {
    a.widget("ui.droppable", {
        widgetEventPrefix: "drop",
        options: {
            accept: "*",
            activeClass: false,
            addClasses: true,
            greedy: false,
            hoverClass: false,
            scope: "default",
            tolerance: "intersect"
        },
        _create: function () {
            var c = this.options,
                d = c.accept;
            this.isover = 0;
            this.isout = 1;
            this.accept = a.isFunction(d) ? d : function (b) {
                return b.is(d)
            };
            this.proportions = {
                width: this.element[0].offsetWidth,
                height: this.element[0].offsetHeight
            };
            a.ui.ddmanager.droppables[c.scope] = a.ui.ddmanager.droppables[c.scope] || [];
            a.ui.ddmanager.droppables[c.scope].push(this);
            c.addClasses && this.element.addClass("ui-droppable")
        },
        destroy: function () {
            for (var c = a.ui.ddmanager.droppables[this.options.scope], d = 0; d < c.length; d++) {
                c[d] == this && c.splice(d, 1)
            }
            this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");
            return this
        },
        _setOption: function (c, d) {
            if (c == "accept") {
                this.accept = a.isFunction(d) ? d : function (b) {
                    return b.is(d)
                }
            }
            a.Widget.prototype._setOption.apply(this, arguments)
        },
        _activate: function (c) {
            var d = a.ui.ddmanager.current;
            this.options.activeClass && this.element.addClass(this.options.activeClass);
            d && this._trigger("activate", c, this.ui(d))
        },
        _deactivate: function (c) {
            var d = a.ui.ddmanager.current;
            this.options.activeClass && this.element.removeClass(this.options.activeClass);
            d && this._trigger("deactivate", c, this.ui(d))
        },
        _over: function (c) {
            var d = a.ui.ddmanager.current;
            if (!(!d || (d.currentItem || d.element)[0] == this.element[0])) {
                if (this.accept.call(this.element[0], d.currentItem || d.element)) {
                    this.options.hoverClass && this.element.addClass(this.options.hoverClass);
                    this._trigger("over", c, this.ui(d))
                }
            }
        },
        _out: function (c) {
            var d = a.ui.ddmanager.current;
            if (!(!d || (d.currentItem || d.element)[0] == this.element[0])) {
                if (this.accept.call(this.element[0], d.currentItem || d.element)) {
                    this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
                    this._trigger("out", c, this.ui(d))
                }
            }
        },
        _drop: function (d, f) {
            var g = f || a.ui.ddmanager.current;
            if (!g || (g.currentItem || g.element)[0] == this.element[0]) {
                return false
            }
            var h = false;
            this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
                var b = a.data(this, "droppable");
                if (b.options.greedy && !b.options.disabled && b.options.scope == g.options.scope && b.accept.call(b.element[0], g.currentItem || g.element) && a.ui.intersect(g, a.extend(b, {
                    offset: b.element.offset()
                }), b.options.tolerance)) {
                    h = true;
                    return false
                }
            });
            if (h) {
                return false
            }
            if (this.accept.call(this.element[0], g.currentItem || g.element)) {
                this.options.activeClass && this.element.removeClass(this.options.activeClass);
                this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
                this._trigger("drop", d, this.ui(g));
                return this.element
            }
            return false
        },
        ui: function (b) {
            return {
                draggable: b.currentItem || b.element,
                helper: b.helper,
                position: b.position,
                offset: b.positionAbs
            }
        }
    });
    a.extend(a.ui.droppable, {
        version: "1.8.5"
    });
    a.ui.intersect = function (d, m, n) {
        if (!m.offset) {
            return false
        }
        var o = (d.positionAbs || d.position.absolute).left,
            q = o + d.helperProportions.width,
            p = (d.positionAbs || d.position.absolute).top,
            r = p + d.helperProportions.height,
            s = m.offset.left,
            v = s + m.proportions.width,
            u = m.offset.top,
            w = u + m.proportions.height;
        switch (n) {
        case "fit":
            return s <= o && q <= v && u <= p && r <= w;
        case "intersect":
            return s < o + d.helperProportions.width / 2 && q - d.helperProportions.width / 2 < v && u < p + d.helperProportions.height / 2 && r - d.helperProportions.height / 2 < w;
        case "pointer":
            return a.ui.isOver((d.positionAbs || d.position.absolute).top + (d.clickOffset || d.offset.click).top, (d.positionAbs || d.position.absolute).left + (d.clickOffset || d.offset.click).left, u, s, m.proportions.height, m.proportions.width);
        case "touch":
            return (p >= u && p <= w || r >= u && r <= w || p < u && r > w) && (o >= s && o <= v || q >= s && q <= v || o < s && q > v);
        default:
            return false
        }
    };
    a.ui.ddmanager = {
        current: null,
        droppables: {
            "default": []
        },
        prepareOffsets: function (d, i) {
            var j = a.ui.ddmanager.droppables[d.options.scope] || [],
                k = i ? i.type : null,
                m = (d.currentItem || d.element).find(":data(droppable)").andSelf(),
                l = 0;
            d: for (; l < j.length; l++) {
                if (!(j[l].options.disabled || d && !j[l].accept.call(j[l].element[0], d.currentItem || d.element))) {
                    for (var n = 0; n < m.length; n++) {
                        if (m[n] == j[l].element[0]) {
                            j[l].proportions.height = 0;
                            continue d
                        }
                    }
                    j[l].visible = j[l].element.css("display") != "none";
                    if (j[l].visible) {
                        j[l].offset = j[l].element.offset();
                        j[l].proportions = {
                            width: j[l].element[0].offsetWidth,
                            height: j[l].element[0].offsetHeight
                        };
                        k == "mousedown" && j[l]._activate.call(j[l], i)
                    }
                }
            }
        },
        drop: function (d, e) {
            var f = false;
            a.each(a.ui.ddmanager.droppables[d.options.scope] || [], function () {
                if (this.options) {
                    if (!this.options.disabled && this.visible && a.ui.intersect(d, this, this.options.tolerance)) {
                        f = f || this._drop.call(this, e)
                    }
                    if (!this.options.disabled && this.visible && this.accept.call(this.element[0], d.currentItem || d.element)) {
                        this.isout = 1;
                        this.isover = 0;
                        this._deactivate.call(this, e)
                    }
                }
            });
            return f
        },
        drag: function (c, d) {
            c.options.refreshPositions && a.ui.ddmanager.prepareOffsets(c, d);
            a.each(a.ui.ddmanager.droppables[c.options.scope] || [], function () {
                if (!(this.options.disabled || this.greedyChild || !this.visible)) {
                    var b = a.ui.intersect(c, this, this.options.tolerance);
                    if (b = !b && this.isover == 1 ? "isout" : b && this.isover == 0 ? "isover" : null) {
                        var f;
                        if (this.options.greedy) {
                            var h = this.element.parents(":data(droppable):eq(0)");
                            if (h.length) {
                                f = a.data(h[0], "droppable");
                                f.greedyChild = b == "isover" ? 1 : 0
                            }
                        }
                        if (f && b == "isover") {
                            f.isover = 0;
                            f.isout = 1;
                            f._out.call(f, d)
                        }
                        this[b] = 1;
                        this[b == "isout" ? "isover" : "isout"] = 0;
                        this[b == "isover" ? "_over" : "_out"].call(this, d);
                        if (f && b == "isout") {
                            f.isout = 0;
                            f.isover = 1;
                            f._over.call(f, d)
                        }
                    }
                }
            })
        }
    }
})(jQuery);
(function (a) {
    a.widget("ui.resizable", a.ui.mouse, {
        widgetEventPrefix: "resize",
        options: {
            alsoResize: false,
            animate: false,
            animateDuration: "slow",
            animateEasing: "swing",
            aspectRatio: false,
            autoHide: false,
            containment: false,
            ghost: false,
            grid: false,
            handles: "e,s,se",
            helper: false,
            maxHeight: null,
            maxWidth: null,
            minHeight: 10,
            minWidth: 10,
            zIndex: 1000
        },
        _create: function () {
            var h = this,
                e = this.options;
            this.element.addClass("ui-resizable");
            a.extend(this, {
                _aspectRatio: !! e.aspectRatio,
                aspectRatio: e.aspectRatio,
                originalElement: this.element,
                _proportionallyResizeElements: [],
                _helper: e.helper || e.ghost || e.animate ? e.helper || "ui-resizable-helper" : null
            });
            if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
                /relative/.test(this.element.css("position")) && a.browser.opera && this.element.css({
                    position: "relative",
                    top: "auto",
                    left: "auto"
                });
                this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
                    position: this.element.css("position"),
                    width: this.element.outerWidth(),
                    height: this.element.outerHeight(),
                    top: this.element.css("top"),
                    left: this.element.css("left")
                }));
                this.element = this.element.parent().data("resizable", this.element.data("resizable"));
                this.elementIsWrapper = true;
                this.element.css({
                    marginLeft: this.originalElement.css("marginLeft"),
                    marginTop: this.originalElement.css("marginTop"),
                    marginRight: this.originalElement.css("marginRight"),
                    marginBottom: this.originalElement.css("marginBottom")
                });
                this.originalElement.css({
                    marginLeft: 0,
                    marginTop: 0,
                    marginRight: 0,
                    marginBottom: 0
                });
                this.originalResizeStyle = this.originalElement.css("resize");
                this.originalElement.css("resize", "none");
                this._proportionallyResizeElements.push(this.originalElement.css({
                    position: "static",
                    zoom: 1,
                    display: "block"
                }));
                this.originalElement.css({
                    margin: this.originalElement.css("margin")
                });
                this._proportionallyResize()
            }
            this.handles = e.handles || (!a(".ui-resizable-handle", this.element).length ? "e,s,se" : {
                n: ".ui-resizable-n",
                e: ".ui-resizable-e",
                s: ".ui-resizable-s",
                w: ".ui-resizable-w",
                se: ".ui-resizable-se",
                sw: ".ui-resizable-sw",
                ne: ".ui-resizable-ne",
                nw: ".ui-resizable-nw"
            });
            if (this.handles.constructor == String) {
                if (this.handles == "all") {
                    this.handles = "n,e,s,w,se,sw,ne,nw"
                }
                var i = this.handles.split(",");
                this.handles = {};
                for (var j = 0; j < i.length; j++) {
                    var k = a.trim(i[j]),
                        l = a('<div class="ui-resizable-handle ' + ("ui-resizable-" + k) + '"></div>');
                    /sw|se|ne|nw/.test(k) && l.css({
                        zIndex: ++e.zIndex
                    });
                    "se" == k && l.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
                    this.handles[k] = ".ui-resizable-" + k;
                    this.element.append(l)
                }
            }
            this._renderAxis = function (d) {
                d = d || this.element;
                for (var f in this.handles) {
                    if (this.handles[f].constructor == String) {
                        this.handles[f] = a(this.handles[f], this.element).show()
                    }
                    if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
                        var g = a(this.handles[f], this.element),
                            m = 0;
                        m = /sw|ne|nw|se|n|s/.test(f) ? g.outerHeight() : g.outerWidth();
                        g = ["padding", /ne|nw|n/.test(f) ? "Top" : /se|sw|s/.test(f) ? "Bottom" : /^e$/.test(f) ? "Right" : "Left"].join("");
                        d.css(g, m);
                        this._proportionallyResize()
                    }
                    a(this.handles[f])
                }
            };
            this._renderAxis(this.element);
            this._handles = a(".ui-resizable-handle", this.element).disableSelection();
            this._handles.mouseover(function () {
                if (!h.resizing) {
                    if (this.className) {
                        var d = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)
                    }
                    h.axis = d && d[1] ? d[1] : "se"
                }
            });
            if (e.autoHide) {
                this._handles.hide();
                a(this.element).addClass("ui-resizable-autohide").hover(function () {
                    a(this).removeClass("ui-resizable-autohide");
                    h._handles.show()
                }, function () {
                    if (!h.resizing) {
                        a(this).addClass("ui-resizable-autohide");
                        h._handles.hide()
                    }
                })
            }
            this._mouseInit()
        },
        destroy: function () {
            this._mouseDestroy();
            var e = function (f) {
                    a(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
                };
            if (this.elementIsWrapper) {
                e(this.element);
                var d = this.element;
                d.after(this.originalElement.css({
                    position: d.css("position"),
                    width: d.outerWidth(),
                    height: d.outerHeight(),
                    top: d.css("top"),
                    left: d.css("left")
                })).remove()
            }
            this.originalElement.css("resize", this.originalResizeStyle);
            e(this.originalElement);
            return this
        },
        _mouseCapture: function (e) {
            var d = false;
            for (var f in this.handles) {
                if (a(this.handles[f])[0] == e.target) {
                    d = true
                }
            }
            return !this.options.disabled && d
        },
        _mouseStart: function (g) {
            var e = this.options,
                h = this.element.position(),
                i = this.element;
            this.resizing = true;
            this.documentScroll = {
                top: a(document).scrollTop(),
                left: a(document).scrollLeft()
            };
            if (i.is(".ui-draggable") || /absolute/.test(i.css("position"))) {
                i.css({
                    position: "absolute",
                    top: h.top,
                    left: h.left
                })
            }
            a.browser.opera && /relative/.test(i.css("position")) && i.css({
                position: "relative",
                top: "auto",
                left: "auto"
            });
            this._renderProxy();
            h = c(this.helper.css("left"));
            var j = c(this.helper.css("top"));
            if (e.containment) {
                h += a(e.containment).scrollLeft() || 0;
                j += a(e.containment).scrollTop() || 0
            }
            this.offset = this.helper.offset();
            this.position = {
                left: h,
                top: j
            };
            this.size = this._helper ? {
                width: i.outerWidth(),
                height: i.outerHeight()
            } : {
                width: i.width(),
                height: i.height()
            };
            this.originalSize = this._helper ? {
                width: i.outerWidth(),
                height: i.outerHeight()
            } : {
                width: i.width(),
                height: i.height()
            };
            this.originalPosition = {
                left: h,
                top: j
            };
            this.sizeDiff = {
                width: i.outerWidth() - i.width(),
                height: i.outerHeight() - i.height()
            };
            this.originalMousePosition = {
                left: g.pageX,
                top: g.pageY
            };
            this.aspectRatio = typeof e.aspectRatio == "number" ? e.aspectRatio : this.originalSize.width / this.originalSize.height || 1;
            e = a(".ui-resizable-" + this.axis).css("cursor");
            a("body").css("cursor", e == "auto" ? this.axis + "-resize" : e);
            i.addClass("ui-resizable-resizing");
            this._propagate("start", g);
            return true
        },
        _mouseDrag: function (f) {
            var e = this.helper,
                g = this.originalMousePosition,
                h = this._change[this.axis];
            if (!h) {
                return false
            }
            g = h.apply(this, [f, f.pageX - g.left || 0, f.pageY - g.top || 0]);
            if (this._aspectRatio || f.shiftKey) {
                g = this._updateRatio(g, f)
            }
            g = this._respectSize(g, f);
            this._propagate("resize", f);
            e.css({
                top: this.position.top + "px",
                left: this.position.left + "px",
                width: this.size.width + "px",
                height: this.size.height + "px"
            });
            !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize();
            this._updateCache(g);
            this._trigger("resize", f, this.ui());
            return false
        },
        _mouseStop: function (h) {
            this.resizing = false;
            var e = this.options,
                i = this;
            if (this._helper) {
                var j = this._proportionallyResizeElements,
                    k = j.length && /textarea/i.test(j[0].nodeName);
                j = k && a.ui.hasScroll(j[0], "left") ? 0 : i.sizeDiff.height;
                k = {
                    width: i.size.width - (k ? 0 : i.sizeDiff.width),
                    height: i.size.height - j
                };
                j = parseInt(i.element.css("left"), 10) + (i.position.left - i.originalPosition.left) || null;
                var l = parseInt(i.element.css("top"), 10) + (i.position.top - i.originalPosition.top) || null;
                e.animate || this.element.css(a.extend(k, {
                    top: l,
                    left: j
                }));
                i.helper.height(i.size.height);
                i.helper.width(i.size.width);
                this._helper && !e.animate && this._proportionallyResize()
            }
            a("body").css("cursor", "auto");
            this.element.removeClass("ui-resizable-resizing");
            this._propagate("stop", h);
            this._helper && this.helper.remove();
            return false
        },
        _updateCache: function (d) {
            this.offset = this.helper.offset();
            if (b(d.left)) {
                this.position.left = d.left
            }
            if (b(d.top)) {
                this.position.top = d.top
            }
            if (b(d.height)) {
                this.size.height = d.height
            }
            if (b(d.width)) {
                this.size.width = d.width
            }
        },
        _updateRatio: function (f) {
            var e = this.position,
                g = this.size,
                h = this.axis;
            if (f.height) {
                f.width = g.height * this.aspectRatio
            } else {
                if (f.width) {
                    f.height = g.width / this.aspectRatio
                }
            }
            if (h == "sw") {
                f.left = e.left + (g.width - f.width);
                f.top = null
            }
            if (h == "nw") {
                f.top = e.top + (g.height - f.height);
                f.left = e.left + (g.width - f.width)
            }
            return f
        },
        _respectSize: function (l) {
            var e = this.options,
                m = this.axis,
                n = b(l.width) && e.maxWidth && e.maxWidth < l.width,
                o = b(l.height) && e.maxHeight && e.maxHeight < l.height,
                p = b(l.width) && e.minWidth && e.minWidth > l.width,
                q = b(l.height) && e.minHeight && e.minHeight > l.height;
            if (p) {
                l.width = e.minWidth
            }
            if (q) {
                l.height = e.minHeight
            }
            if (n) {
                l.width = e.maxWidth
            }
            if (o) {
                l.height = e.maxHeight
            }
            var r = this.originalPosition.left + this.originalSize.width,
                s = this.position.top + this.size.height,
                u = /sw|nw|w/.test(m);
            m = /nw|ne|n/.test(m);
            if (p && u) {
                l.left = r - e.minWidth
            }
            if (n && u) {
                l.left = r - e.maxWidth
            }
            if (q && m) {
                l.top = s - e.minHeight
            }
            if (o && m) {
                l.top = s - e.maxHeight
            }
            if ((e = !l.width && !l.height) && !l.left && l.top) {
                l.top = null
            } else {
                if (e && !l.top && l.left) {
                    l.left = null
                }
            }
            return l
        },
        _proportionallyResize: function () {
            if (this._proportionallyResizeElements.length) {
                for (var g = this.helper || this.element, e = 0; e < this._proportionallyResizeElements.length; e++) {
                    var h = this._proportionallyResizeElements[e];
                    if (!this.borderDif) {
                        var i = [h.css("borderTopWidth"), h.css("borderRightWidth"), h.css("borderBottomWidth"), h.css("borderLeftWidth")],
                            j = [h.css("paddingTop"), h.css("paddingRight"), h.css("paddingBottom"), h.css("paddingLeft")];
                        this.borderDif = a.map(i, function (d, f) {
                            d = parseInt(d, 10) || 0;
                            f = parseInt(j[f], 10) || 0;
                            return d + f
                        })
                    }
                    a.browser.msie && (a(g).is(":hidden") || a(g).parents(":hidden").length) || h.css({
                        height: g.height() - this.borderDif[0] - this.borderDif[2] || 0,
                        width: g.width() - this.borderDif[1] - this.borderDif[3] || 0
                    })
                }
            }
        },
        _renderProxy: function () {
            var e = this.options;
            this.elementOffset = this.element.offset();
            if (this._helper) {
                this.helper = this.helper || a('<div style="overflow:hidden;"></div>');
                var d = a.browser.msie && a.browser.version < 7,
                    f = d ? 1 : 0;
                d = d ? 2 : -1;
                this.helper.addClass(this._helper).css({
                    width: this.element.outerWidth() + d,
                    height: this.element.outerHeight() + d,
                    position: "absolute",
                    left: this.elementOffset.left - f + "px",
                    top: this.elementOffset.top - f + "px",
                    zIndex: ++e.zIndex
                });
                this.helper.appendTo("body").disableSelection()
            } else {
                this.helper = this.element
            }
        },
        _change: {
            e: function (e, d) {
                return {
                    width: this.originalSize.width + d
                }
            },
            w: function (e, d) {
                return {
                    left: this.originalPosition.left + d,
                    width: this.originalSize.width - d
                }
            },
            n: function (e, d, f) {
                return {
                    top: this.originalPosition.top + f,
                    height: this.originalSize.height - f
                }
            },
            s: function (e, d, f) {
                return {
                    height: this.originalSize.height + f
                }
            },
            se: function (e, d, f) {
                return a.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, d, f]))
            },
            sw: function (e, d, f) {
                return a.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, d, f]))
            },
            ne: function (e, d, f) {
                return a.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, d, f]))
            },
            nw: function (e, d, f) {
                return a.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, d, f]))
            }
        },
        _propagate: function (e, d) {
            a.ui.plugin.call(this, e, [d, this.ui()]);
            e != "resize" && this._trigger(e, d, this.ui())
        },
        plugins: {},
        ui: function () {
            return {
                originalElement: this.originalElement,
                element: this.element,
                helper: this.helper,
                position: this.position,
                size: this.size,
                originalSize: this.originalSize,
                originalPosition: this.originalPosition
            }
        }
    });
    a.extend(a.ui.resizable, {
        version: "1.8.5"
    });
    a.ui.plugin.add("resizable", "alsoResize", {
        start: function () {
            var e = a(this).data("resizable").options,
                d = function (f) {
                    a(f).each(function () {
                        var g = a(this);
                        g.data("resizable-alsoresize", {
                            width: parseInt(g.width(), 10),
                            height: parseInt(g.height(), 10),
                            left: parseInt(g.css("left"), 10),
                            top: parseInt(g.css("top"), 10),
                            position: g.css("position")
                        })
                    })
                };
            if (typeof e.alsoResize == "object" && !e.alsoResize.parentNode) {
                if (e.alsoResize.length) {
                    e.alsoResize = e.alsoResize[0];
                    d(e.alsoResize)
                } else {
                    a.each(e.alsoResize, function (f) {
                        d(f)
                    })
                }
            } else {
                d(e.alsoResize)
            }
        },
        resize: function (i, e) {
            var j = a(this).data("resizable");
            i = j.options;
            var k = j.originalSize,
                l = j.originalPosition,
                m = {
                    height: j.size.height - k.height || 0,
                    width: j.size.width - k.width || 0,
                    top: j.position.top - l.top || 0,
                    left: j.position.left - l.left || 0
                },
                n = function (d, f) {
                    a(d).each(function () {
                        var g = a(this),
                            o = a(this).data("resizable-alsoresize"),
                            h = {},
                            s = f && f.length ? f : g.parents(e.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
                        a.each(s, function (p, q) {
                            if ((p = (o[q] || 0) + (m[q] || 0)) && p >= 0) {
                                h[q] = p || null
                            }
                        });
                        if (a.browser.opera && /relative/.test(g.css("position"))) {
                            j._revertToRelativePosition = true;
                            g.css({
                                position: "absolute",
                                top: "auto",
                                left: "auto"
                            })
                        }
                        g.css(h)
                    })
                };
            typeof i.alsoResize == "object" && !i.alsoResize.nodeType ? a.each(i.alsoResize, function (d, f) {
                n(d, f)
            }) : n(i.alsoResize)
        },
        stop: function () {
            var e = a(this).data("resizable"),
                d = e.options,
                f = function (g) {
                    a(g).each(function () {
                        var h = a(this);
                        h.css({
                            position: h.data("resizable-alsoresize").position
                        })
                    })
                };
            if (e._revertToRelativePosition) {
                e._revertToRelativePosition = false;
                typeof d.alsoResize == "object" && !d.alsoResize.nodeType ? a.each(d.alsoResize, function (g) {
                    f(g)
                }) : f(d.alsoResize)
            }
            a(this).removeData("resizable-alsoresize")
        }
    });
    a.ui.plugin.add("resizable", "animate", {
        stop: function (i) {
            var e = a(this).data("resizable"),
                j = e.options,
                k = e._proportionallyResizeElements,
                l = k.length && /textarea/i.test(k[0].nodeName),
                m = l && a.ui.hasScroll(k[0], "left") ? 0 : e.sizeDiff.height;
            l = {
                width: e.size.width - (l ? 0 : e.sizeDiff.width),
                height: e.size.height - m
            };
            m = parseInt(e.element.css("left"), 10) + (e.position.left - e.originalPosition.left) || null;
            var n = parseInt(e.element.css("top"), 10) + (e.position.top - e.originalPosition.top) || null;
            e.element.animate(a.extend(l, n && m ? {
                top: n,
                left: m
            } : {}), {
                duration: j.animateDuration,
                easing: j.animateEasing,
                step: function () {
                    var d = {
                        width: parseInt(e.element.css("width"), 10),
                        height: parseInt(e.element.css("height"), 10),
                        top: parseInt(e.element.css("top"), 10),
                        left: parseInt(e.element.css("left"), 10)
                    };
                    k && k.length && a(k[0]).css({
                        width: d.width,
                        height: d.height
                    });
                    e._updateCache(d);
                    e._propagate("resize", i)
                }
            })
        }
    });
    a.ui.plugin.add("resizable", "containment", {
        start: function () {
            var i = a(this).data("resizable"),
                e = i.element,
                j = i.options.containment;
            if (e = j instanceof a ? j.get(0) : /parent/.test(j) ? e.parent().get(0) : j) {
                i.containerElement = a(e);
                if (/document/.test(j) || j == document) {
                    i.containerOffset = {
                        left: 0,
                        top: 0
                    };
                    i.containerPosition = {
                        left: 0,
                        top: 0
                    };
                    i.parentData = {
                        element: a(document),
                        left: 0,
                        top: 0,
                        width: a(document).width(),
                        height: a(document).height() || document.body.parentNode.scrollHeight
                    }
                } else {
                    var k = a(e),
                        l = [];
                    a(["Top", "Right", "Left", "Bottom"]).each(function (d, f) {
                        l[d] = c(k.css("padding" + f))
                    });
                    i.containerOffset = k.offset();
                    i.containerPosition = k.position();
                    i.containerSize = {
                        height: k.innerHeight() - l[3],
                        width: k.innerWidth() - l[1]
                    };
                    j = i.containerOffset;
                    var m = i.containerSize.height,
                        n = i.containerSize.width;
                    n = a.ui.hasScroll(e, "left") ? e.scrollWidth : n;
                    m = a.ui.hasScroll(e) ? e.scrollHeight : m;
                    i.parentData = {
                        element: e,
                        left: j.left,
                        top: j.top,
                        width: n,
                        height: m
                    }
                }
            }
        },
        resize: function (i) {
            var e = a(this).data("resizable"),
                j = e.options,
                k = e.containerOffset,
                l = e.position;
            i = e._aspectRatio || i.shiftKey;
            var m = {
                top: 0,
                left: 0
            },
                n = e.containerElement;
            if (n[0] != document && /static/.test(n.css("position"))) {
                m = k
            }
            if (l.left < (e._helper ? k.left : 0)) {
                e.size.width += e._helper ? e.position.left - k.left : e.position.left - m.left;
                if (i) {
                    e.size.height = e.size.width / j.aspectRatio
                }
                e.position.left = j.helper ? k.left : 0
            }
            if (l.top < (e._helper ? k.top : 0)) {
                e.size.height += e._helper ? e.position.top - k.top : e.position.top;
                if (i) {
                    e.size.width = e.size.height * j.aspectRatio
                }
                e.position.top = e._helper ? k.top : 0
            }
            e.offset.left = e.parentData.left + e.position.left;
            e.offset.top = e.parentData.top + e.position.top;
            j = Math.abs((e._helper ? e.offset.left - m.left : e.offset.left - m.left) + e.sizeDiff.width);
            k = Math.abs((e._helper ? e.offset.top - m.top : e.offset.top - k.top) + e.sizeDiff.height);
            l = e.containerElement.get(0) == e.element.parent().get(0);
            m = /relative|absolute/.test(e.containerElement.css("position"));
            if (l && m) {
                j -= e.parentData.left
            }
            if (j + e.size.width >= e.parentData.width) {
                e.size.width = e.parentData.width - j;
                if (i) {
                    e.size.height = e.size.width / e.aspectRatio
                }
            }
            if (k + e.size.height >= e.parentData.height) {
                e.size.height = e.parentData.height - k;
                if (i) {
                    e.size.width = e.size.height * e.aspectRatio
                }
            }
        },
        stop: function () {
            var j = a(this).data("resizable"),
                e = j.options,
                k = j.containerOffset,
                l = j.containerPosition,
                m = j.containerElement,
                n = a(j.helper),
                o = n.offset(),
                p = n.outerWidth() - j.sizeDiff.width;
            n = n.outerHeight() - j.sizeDiff.height;
            j._helper && !e.animate && /relative/.test(m.css("position")) && a(this).css({
                left: o.left - l.left - k.left,
                width: p,
                height: n
            });
            j._helper && !e.animate && /static/.test(m.css("position")) && a(this).css({
                left: o.left - l.left - k.left,
                width: p,
                height: n
            })
        }
    });
    a.ui.plugin.add("resizable", "ghost", {
        start: function () {
            var e = a(this).data("resizable"),
                d = e.options,
                f = e.size;
            e.ghost = e.originalElement.clone();
            e.ghost.css({
                opacity: 0.25,
                display: "block",
                position: "relative",
                height: f.height,
                width: f.width,
                margin: 0,
                left: 0,
                top: 0
            }).addClass("ui-resizable-ghost").addClass(typeof d.ghost == "string" ? d.ghost : "");
            e.ghost.appendTo(e.helper)
        },
        resize: function () {
            var d = a(this).data("resizable");
            d.ghost && d.ghost.css({
                position: "relative",
                height: d.size.height,
                width: d.size.width
            })
        },
        stop: function () {
            var d = a(this).data("resizable");
            d.ghost && d.helper && d.helper.get(0).removeChild(d.ghost.get(0))
        }
    });
    a.ui.plugin.add("resizable", "grid", {
        resize: function () {
            var i = a(this).data("resizable"),
                e = i.options,
                j = i.size,
                k = i.originalSize,
                l = i.originalPosition,
                m = i.axis;
            e.grid = typeof e.grid == "number" ? [e.grid, e.grid] : e.grid;
            var n = Math.round((j.width - k.width) / (e.grid[0] || 1)) * (e.grid[0] || 1);
            e = Math.round((j.height - k.height) / (e.grid[1] || 1)) * (e.grid[1] || 1);
            if (/^(se|s|e)$/.test(m)) {
                i.size.width = k.width + n;
                i.size.height = k.height + e
            } else {
                if (/^(ne)$/.test(m)) {
                    i.size.width = k.width + n;
                    i.size.height = k.height + e;
                    i.position.top = l.top - e
                } else {
                    if (/^(sw)$/.test(m)) {
                        i.size.width = k.width + n;
                        i.size.height = k.height + e
                    } else {
                        i.size.width = k.width + n;
                        i.size.height = k.height + e;
                        i.position.top = l.top - e
                    }
                    i.position.left = l.left - n
                }
            }
        }
    });
    var c = function (d) {
            return parseInt(d, 10) || 0
        },
        b = function (d) {
            return !isNaN(parseInt(d, 10))
        }
})(jQuery);
(function (a) {
    a.widget("ui.selectable", a.ui.mouse, {
        options: {
            appendTo: "body",
            autoRefresh: true,
            distance: 0,
            filter: "*",
            tolerance: "touch"
        },
        _create: function () {
            var b = this;
            this.element.addClass("ui-selectable");
            this.dragged = false;
            var d;
            this.refresh = function () {
                d = a(b.options.filter, b.element[0]);
                d.each(function () {
                    var e = a(this),
                        c = e.offset();
                    a.data(this, "selectable-item", {
                        element: this,
                        $element: e,
                        left: c.left,
                        top: c.top,
                        right: c.left + e.outerWidth(),
                        bottom: c.top + e.outerHeight(),
                        startselected: false,
                        selected: e.hasClass("ui-selected"),
                        selecting: e.hasClass("ui-selecting"),
                        unselecting: e.hasClass("ui-unselecting")
                    })
                })
            };
            this.refresh();
            this.selectees = d.addClass("ui-selectee");
            this._mouseInit();
            this.helper = a("<div class='ui-selectable-helper'></div>")
        },
        destroy: function () {
            this.selectees.removeClass("ui-selectee").removeData("selectable-item");
            this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");
            this._mouseDestroy();
            return this
        },
        _mouseStart: function (b) {
            var g = this;
            this.opos = [b.pageX, b.pageY];
            if (!this.options.disabled) {
                var e = this.options;
                this.selectees = a(e.filter, this.element[0]);
                this._trigger("start", b);
                a(e.appendTo).append(this.helper);
                this.helper.css({
                    left: b.clientX,
                    top: b.clientY,
                    width: 0,
                    height: 0
                });
                e.autoRefresh && this.refresh();
                this.selectees.filter(".ui-selected").each(function () {
                    var c = a.data(this, "selectable-item");
                    c.startselected = true;
                    if (!b.metaKey) {
                        c.$element.removeClass("ui-selected");
                        c.selected = false;
                        c.$element.addClass("ui-unselecting");
                        c.unselecting = true;
                        g._trigger("unselecting", b, {
                            unselecting: c.element
                        })
                    }
                });
                a(b.target).parents().andSelf().each(function () {
                    var c = a.data(this, "selectable-item");
                    if (c) {
                        var d = !b.metaKey || !c.$element.hasClass("ui-selected");
                        c.$element.removeClass(d ? "ui-unselecting" : "ui-selected").addClass(d ? "ui-selecting" : "ui-unselecting");
                        c.unselecting = !d;
                        c.selecting = d;
                        (c.selected = d) ? g._trigger("selecting", b, {
                            selecting: c.element
                        }) : g._trigger("unselecting", b, {
                            unselecting: c.element
                        });
                        return false
                    }
                })
            }
        },
        _mouseDrag: function (k) {
            var m = this;
            this.dragged = true;
            if (!this.options.disabled) {
                var l = this.options,
                    e = this.opos[0],
                    n = this.opos[1],
                    o = k.pageX,
                    p = k.pageY;
                if (e > o) {
                    var q = o;
                    o = e;
                    e = q
                }
                if (n > p) {
                    q = p;
                    p = n;
                    n = q
                }
                this.helper.css({
                    left: e,
                    top: n,
                    width: o - e,
                    height: p - n
                });
                this.selectees.each(function () {
                    var b = a.data(this, "selectable-item");
                    if (!(!b || b.element == m.element[0])) {
                        var c = false;
                        if (l.tolerance == "touch") {
                            c = !(b.left > o || b.right < e || b.top > p || b.bottom < n)
                        } else {
                            if (l.tolerance == "fit") {
                                c = b.left > e && b.right < o && b.top > n && b.bottom < p
                            }
                        }
                        if (c) {
                            if (b.selected) {
                                b.$element.removeClass("ui-selected");
                                b.selected = false
                            }
                            if (b.unselecting) {
                                b.$element.removeClass("ui-unselecting");
                                b.unselecting = false
                            }
                            if (!b.selecting) {
                                b.$element.addClass("ui-selecting");
                                b.selecting = true;
                                m._trigger("selecting", k, {
                                    selecting: b.element
                                })
                            }
                        } else {
                            if (b.selecting) {
                                if (k.metaKey && b.startselected) {
                                    b.$element.removeClass("ui-selecting");
                                    b.selecting = false;
                                    b.$element.addClass("ui-selected");
                                    b.selected = true
                                } else {
                                    b.$element.removeClass("ui-selecting");
                                    b.selecting = false;
                                    if (b.startselected) {
                                        b.$element.addClass("ui-unselecting");
                                        b.unselecting = true
                                    }
                                    m._trigger("unselecting", k, {
                                        unselecting: b.element
                                    })
                                }
                            }
                            if (b.selected) {
                                if (!k.metaKey && !b.startselected) {
                                    b.$element.removeClass("ui-selected");
                                    b.selected = false;
                                    b.$element.addClass("ui-unselecting");
                                    b.unselecting = true;
                                    m._trigger("unselecting", k, {
                                        unselecting: b.element
                                    })
                                }
                            }
                        }
                    }
                });
                return false
            }
        },
        _mouseStop: function (b) {
            var d = this;
            this.dragged = false;
            a(".ui-unselecting", this.element[0]).each(function () {
                var c = a.data(this, "selectable-item");
                c.$element.removeClass("ui-unselecting");
                c.unselecting = false;
                c.startselected = false;
                d._trigger("unselected", b, {
                    unselected: c.element
                })
            });
            a(".ui-selecting", this.element[0]).each(function () {
                var c = a.data(this, "selectable-item");
                c.$element.removeClass("ui-selecting").addClass("ui-selected");
                c.selecting = false;
                c.selected = true;
                c.startselected = true;
                d._trigger("selected", b, {
                    selected: c.element
                })
            });
            this._trigger("stop", b);
            this.helper.remove();
            return false
        }
    });
    a.extend(a.ui.selectable, {
        version: "1.8.5"
    })
})(jQuery);
(function (a) {
    a.widget("ui.sortable", a.ui.mouse, {
        widgetEventPrefix: "sort",
        options: {
            appendTo: "parent",
            axis: false,
            connectWith: false,
            containment: false,
            cursor: "auto",
            cursorAt: false,
            dropOnEmpty: true,
            forcePlaceholderSize: false,
            forceHelperSize: false,
            grid: false,
            handle: false,
            helper: "original",
            items: "> *",
            opacity: false,
            placeholder: false,
            revert: false,
            scroll: true,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            scope: "default",
            tolerance: "intersect",
            zIndex: 1000
        },
        _create: function () {
            this.containerCache = {};
            this.element.addClass("ui-sortable");
            this.refresh();
            this.floating = this.items.length ? /left|right/.test(this.items[0].item.css("float")) : false;
            this.offset = this.element.offset();
            this._mouseInit()
        },
        destroy: function () {
            this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");
            this._mouseDestroy();
            for (var b = this.items.length - 1; b >= 0; b--) {
                this.items[b].item.removeData("sortable-item")
            }
            return this
        },
        _setOption: function (c, d) {
            if (c === "disabled") {
                this.options[c] = d;
                this.widget()[d ? "addClass" : "removeClass"]("ui-sortable-disabled")
            } else {
                a.Widget.prototype._setOption.apply(this, arguments)
            }
        },
        _mouseCapture: function (d, g) {
            if (this.reverting) {
                return false
            }
            if (this.options.disabled || this.options.type == "static") {
                return false
            }
            this._refreshItems(d);
            var h = null,
                i = this;
            a(d.target).parents().each(function () {
                if (a.data(this, "sortable-item") == i) {
                    h = a(this);
                    return false
                }
            });
            if (a.data(d.target, "sortable-item") == i) {
                h = a(d.target)
            }
            if (!h) {
                return false
            }
            if (this.options.handle && !g) {
                var j = false;
                a(this.options.handle, h).find("*").andSelf().each(function () {
                    if (this == d.target) {
                        j = true
                    }
                });
                if (!j) {
                    return false
                }
            }
            this.currentItem = h;
            this._removeCurrentsFromItems();
            return true
        },
        _mouseStart: function (d, f, g) {
            f = this.options;
            var h = this;
            this.currentContainer = this;
            this.refreshPositions();
            this.helper = this._createHelper(d);
            this._cacheHelperProportions();
            this._cacheMargins();
            this.scrollParent = this.helper.scrollParent();
            this.offset = this.currentItem.offset();
            this.offset = {
                top: this.offset.top - this.margins.top,
                left: this.offset.left - this.margins.left
            };
            this.helper.css("position", "absolute");
            this.cssPosition = this.helper.css("position");
            a.extend(this.offset, {
                click: {
                    left: d.pageX - this.offset.left,
                    top: d.pageY - this.offset.top
                },
                parent: this._getParentOffset(),
                relative: this._getRelativeOffset()
            });
            this.originalPosition = this._generatePosition(d);
            this.originalPageX = d.pageX;
            this.originalPageY = d.pageY;
            f.cursorAt && this._adjustOffsetFromHelper(f.cursorAt);
            this.domPosition = {
                prev: this.currentItem.prev()[0],
                parent: this.currentItem.parent()[0]
            };
            this.helper[0] != this.currentItem[0] && this.currentItem.hide();
            this._createPlaceholder();
            f.containment && this._setContainment();
            if (f.cursor) {
                if (a("body").css("cursor")) {
                    this._storedCursor = a("body").css("cursor")
                }
                a("body").css("cursor", f.cursor)
            }
            if (f.opacity) {
                if (this.helper.css("opacity")) {
                    this._storedOpacity = this.helper.css("opacity")
                }
                this.helper.css("opacity", f.opacity)
            }
            if (f.zIndex) {
                if (this.helper.css("zIndex")) {
                    this._storedZIndex = this.helper.css("zIndex")
                }
                this.helper.css("zIndex", f.zIndex)
            }
            if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
                this.overflowOffset = this.scrollParent.offset()
            }
            this._trigger("start", d, this._uiHash());
            this._preserveHelperProportions || this._cacheHelperProportions();
            if (!g) {
                for (g = this.containers.length - 1; g >= 0; g--) {
                    this.containers[g]._trigger("activate", d, h._uiHash(this))
                }
            }
            if (a.ui.ddmanager) {
                a.ui.ddmanager.current = this
            }
            a.ui.ddmanager && !f.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, d);
            this.dragging = true;
            this.helper.addClass("ui-sortable-helper");
            this._mouseDrag(d);
            return true
        },
        _mouseDrag: function (d) {
            this.position = this._generatePosition(d);
            this.positionAbs = this._convertPositionTo("absolute");
            if (!this.lastPositionAbs) {
                this.lastPositionAbs = this.positionAbs
            }
            if (this.options.scroll) {
                var g = this.options,
                    h = false;
                if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
                    if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - d.pageY < g.scrollSensitivity) {
                        this.scrollParent[0].scrollTop = h = this.scrollParent[0].scrollTop + g.scrollSpeed
                    } else {
                        if (d.pageY - this.overflowOffset.top < g.scrollSensitivity) {
                            this.scrollParent[0].scrollTop = h = this.scrollParent[0].scrollTop - g.scrollSpeed
                        }
                    }
                    if (this.overflowOffset.left + this.scrollParent[0].offsetWidth - d.pageX < g.scrollSensitivity) {
                        this.scrollParent[0].scrollLeft = h = this.scrollParent[0].scrollLeft + g.scrollSpeed
                    } else {
                        if (d.pageX - this.overflowOffset.left < g.scrollSensitivity) {
                            this.scrollParent[0].scrollLeft = h = this.scrollParent[0].scrollLeft - g.scrollSpeed
                        }
                    }
                } else {
                    if (d.pageY - a(document).scrollTop() < g.scrollSensitivity) {
                        h = a(document).scrollTop(a(document).scrollTop() - g.scrollSpeed)
                    } else {
                        if (a(window).height() - (d.pageY - a(document).scrollTop()) < g.scrollSensitivity) {
                            h = a(document).scrollTop(a(document).scrollTop() + g.scrollSpeed)
                        }
                    }
                    if (d.pageX - a(document).scrollLeft() < g.scrollSensitivity) {
                        h = a(document).scrollLeft(a(document).scrollLeft() - g.scrollSpeed)
                    } else {
                        if (a(window).width() - (d.pageX - a(document).scrollLeft()) < g.scrollSensitivity) {
                            h = a(document).scrollLeft(a(document).scrollLeft() + g.scrollSpeed)
                        }
                    }
                }
                h !== false && a.ui.ddmanager && !g.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, d)
            }
            this.positionAbs = this._convertPositionTo("absolute");
            if (!this.options.axis || this.options.axis != "y") {
                this.helper[0].style.left = this.position.left + "px"
            }
            if (!this.options.axis || this.options.axis != "x") {
                this.helper[0].style.top = this.position.top + "px"
            }
            for (g = this.items.length - 1; g >= 0; g--) {
                h = this.items[g];
                var i = h.item[0],
                    j = this._intersectsWithPointer(h);
                if (j) {
                    if (i != this.currentItem[0] && this.placeholder[j == 1 ? "next" : "prev"]()[0] != i && !a.ui.contains(this.placeholder[0], i) && (this.options.type == "semi-dynamic" ? !a.ui.contains(this.element[0], i) : true)) {
                        this.direction = j == 1 ? "down" : "up";
                        if (this.options.tolerance == "pointer" || this._intersectsWithSides(h)) {
                            this._rearrange(d, h)
                        } else {
                            break
                        }
                        this._trigger("change", d, this._uiHash());
                        break
                    }
                }
            }
            this._contactContainers(d);
            a.ui.ddmanager && a.ui.ddmanager.drag(this, d);
            this._trigger("sort", d, this._uiHash());
            this.lastPositionAbs = this.positionAbs;
            return false
        },
        _mouseStop: function (d, e) {
            if (d) {
                a.ui.ddmanager && !this.options.dropBehaviour && a.ui.ddmanager.drop(this, d);
                if (this.options.revert) {
                    var f = this;
                    e = f.placeholder.offset();
                    f.reverting = true;
                    a(this.helper).animate({
                        left: e.left - this.offset.parent.left - f.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
                        top: e.top - this.offset.parent.top - f.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
                    }, parseInt(this.options.revert, 10) || 500, function () {
                        f._clear(d)
                    })
                } else {
                    this._clear(d, e)
                }
                return false
            }
        },
        cancel: function () {
            var c = this;
            if (this.dragging) {
                this._mouseUp();
                this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
                for (var d = this.containers.length - 1; d >= 0; d--) {
                    this.containers[d]._trigger("deactivate", null, c._uiHash(this));
                    if (this.containers[d].containerCache.over) {
                        this.containers[d]._trigger("out", null, c._uiHash(this));
                        this.containers[d].containerCache.over = 0
                    }
                }
            }
            this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
            this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove();
            a.extend(this, {
                helper: null,
                dragging: false,
                reverting: false,
                _noFinalSort: null
            });
            this.domPosition.prev ? a(this.domPosition.prev).after(this.currentItem) : a(this.domPosition.parent).prepend(this.currentItem);
            return this
        },
        serialize: function (d) {
            var e = this._getItemsAsjQuery(d && d.connected),
                f = [];
            d = d || {};
            a(e).each(function () {
                var b = (a(d.item || this).attr(d.attribute || "id") || "").match(d.expression || /(.+)[-=_](.+)/);
                if (b) {
                    f.push((d.key || b[1] + "[]") + "=" + (d.key && d.expression ? b[1] : b[2]))
                }
            });
            !f.length && d.key && f.push(d.key + "=");
            return f.join("&")
        },
        toArray: function (d) {
            var e = this._getItemsAsjQuery(d && d.connected),
                f = [];
            d = d || {};
            e.each(function () {
                f.push(a(d.item || this).attr(d.attribute || "id") || "")
            });
            return f
        },
        _intersectsWith: function (d) {
            var m = this.positionAbs.left,
                n = m + this.helperProportions.width,
                o = this.positionAbs.top,
                p = o + this.helperProportions.height,
                q = d.left,
                r = q + d.width,
                s = d.top,
                v = s + d.height,
                u = this.offset.click.top,
                w = this.offset.click.left;
            u = o + u > s && o + u < v && m + w > q && m + w < r;
            return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > d[this.floating ? "width" : "height"] ? u : q < m + this.helperProportions.width / 2 && n - this.helperProportions.width / 2 < r && s < o + this.helperProportions.height / 2 && p - this.helperProportions.height / 2 < v
        },
        _intersectsWithPointer: function (d) {
            var e = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top, d.height);
            d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left, d.width);
            e = e && d;
            d = this._getDragVerticalDirection();
            var f = this._getDragHorizontalDirection();
            if (!e) {
                return false
            }
            return this.floating ? f && f == "right" || d == "down" ? 2 : 1 : d && (d == "down" ? 2 : 1)
        },
        _intersectsWithSides: function (d) {
            var f = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top + d.height / 2, d.height);
            d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left + d.width / 2, d.width);
            var g = this._getDragVerticalDirection(),
                h = this._getDragHorizontalDirection();
            return this.floating && h ? h == "right" && d || h == "left" && !d : g && (g == "down" && f || g == "up" && !f)
        },
        _getDragVerticalDirection: function () {
            var b = this.positionAbs.top - this.lastPositionAbs.top;
            return b != 0 && (b > 0 ? "down" : "up")
        },
        _getDragHorizontalDirection: function () {
            var b = this.positionAbs.left - this.lastPositionAbs.left;
            return b != 0 && (b > 0 ? "right" : "left")
        },
        refresh: function (b) {
            this._refreshItems(b);
            this.refreshPositions();
            return this
        },
        _connectWith: function () {
            var b = this.options;
            return b.connectWith.constructor == String ? [b.connectWith] : b.connectWith
        },
        _getItemsAsjQuery: function (d) {
            var i = [],
                j = [],
                k = this._connectWith();
            if (k && d) {
                for (d = k.length - 1; d >= 0; d--) {
                    for (var l = a(k[d]), m = l.length - 1; m >= 0; m--) {
                        var n = a.data(l[m], "sortable");
                        if (n && n != this && !n.options.disabled) {
                            j.push([a.isFunction(n.options.items) ? n.options.items.call(n.element) : a(n.options.items, n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), n])
                        }
                    }
                }
            }
            j.push([a.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
                options: this.options,
                item: this.currentItem
            }) : a(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
            for (d = j.length - 1; d >= 0; d--) {
                j[d][0].each(function () {
                    i.push(this)
                })
            }
            return a(i)
        },
        _removeCurrentsFromItems: function () {
            for (var d = this.currentItem.find(":data(sortable-item)"), e = 0; e < this.items.length; e++) {
                for (var f = 0; f < d.length; f++) {
                    d[f] == this.items[e].item[0] && this.items.splice(e, 1)
                }
            }
        },
        _refreshItems: function (d) {
            this.items = [];
            this.containers = [this];
            var j = this.items,
                k = [
                    [a.isFunction(this.options.items) ? this.options.items.call(this.element[0], d, {
                        item: this.currentItem
                    }) : a(this.options.items, this.element), this]
                ],
                l = this._connectWith();
            if (l) {
                for (var m = l.length - 1; m >= 0; m--) {
                    for (var n = a(l[m]), o = n.length - 1; o >= 0; o--) {
                        var p = a.data(n[o], "sortable");
                        if (p && p != this && !p.options.disabled) {
                            k.push([a.isFunction(p.options.items) ? p.options.items.call(p.element[0], d, {
                                item: this.currentItem
                            }) : a(p.options.items, p.element), p]);
                            this.containers.push(p)
                        }
                    }
                }
            }
            for (m = k.length - 1; m >= 0; m--) {
                d = k[m][1];
                l = k[m][0];
                o = 0;
                for (n = l.length; o < n; o++) {
                    p = a(l[o]);
                    p.data("sortable-item", d);
                    j.push({
                        item: p,
                        instance: d,
                        width: 0,
                        height: 0,
                        left: 0,
                        top: 0
                    })
                }
            }
        },
        refreshPositions: function (d) {
            if (this.offsetParent && this.helper) {
                this.offset.parent = this._getParentOffset()
            }
            for (var f = this.items.length - 1; f >= 0; f--) {
                var g = this.items[f],
                    h = this.options.toleranceElement ? a(this.options.toleranceElement, g.item) : g.item;
                if (!d) {
                    g.width = h.outerWidth();
                    g.height = h.outerHeight()
                }
                h = h.offset();
                g.left = h.left;
                g.top = h.top
            }
            if (this.options.custom && this.options.custom.refreshContainers) {
                this.options.custom.refreshContainers.call(this)
            } else {
                for (f = this.containers.length - 1; f >= 0; f--) {
                    h = this.containers[f].element.offset();
                    this.containers[f].containerCache.left = h.left;
                    this.containers[f].containerCache.top = h.top;
                    this.containers[f].containerCache.width = this.containers[f].element.outerWidth();
                    this.containers[f].containerCache.height = this.containers[f].element.outerHeight()
                }
            }
            return this
        },
        _createPlaceholder: function (d) {
            var f = d || this,
                g = f.options;
            if (!g.placeholder || g.placeholder.constructor == String) {
                var h = g.placeholder;
                g.placeholder = {
                    element: function () {
                        var b = a(document.createElement(f.currentItem[0].nodeName)).addClass(h || f.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
                        if (!h) {
                            b.style.visibility = "hidden"
                        }
                        return b
                    },
                    update: function (b, c) {
                        if (!(h && !g.forcePlaceholderSize)) {
                            c.height() || c.height(f.currentItem.innerHeight() - parseInt(f.currentItem.css("paddingTop") || 0, 10) - parseInt(f.currentItem.css("paddingBottom") || 0, 10));
                            c.width() || c.width(f.currentItem.innerWidth() - parseInt(f.currentItem.css("paddingLeft") || 0, 10) - parseInt(f.currentItem.css("paddingRight") || 0, 10))
                        }
                    }
                }
            }
            f.placeholder = a(g.placeholder.element.call(f.element, f.currentItem));
            f.currentItem.after(f.placeholder);
            g.placeholder.update(f, f.placeholder)
        },
        _contactContainers: function (d) {
            for (var i = null, j = null, k = this.containers.length - 1; k >= 0; k--) {
                if (!a.ui.contains(this.currentItem[0], this.containers[k].element[0])) {
                    if (this._intersectsWith(this.containers[k].containerCache)) {
                        if (!(i && a.ui.contains(this.containers[k].element[0], i.element[0]))) {
                            i = this.containers[k];
                            j = k
                        }
                    } else {
                        if (this.containers[k].containerCache.over) {
                            this.containers[k]._trigger("out", d, this._uiHash(this));
                            this.containers[k].containerCache.over = 0
                        }
                    }
                }
            }
            if (i) {
                if (this.containers.length === 1) {
                    this.containers[j]._trigger("over", d, this._uiHash(this));
                    this.containers[j].containerCache.over = 1
                } else {
                    if (this.currentContainer != this.containers[j]) {
                        i = 10000;
                        k = null;
                        for (var l = this.positionAbs[this.containers[j].floating ? "left" : "top"], m = this.items.length - 1; m >= 0; m--) {
                            if (a.ui.contains(this.containers[j].element[0], this.items[m].item[0])) {
                                var n = this.items[m][this.containers[j].floating ? "left" : "top"];
                                if (Math.abs(n - l) < i) {
                                    i = Math.abs(n - l);
                                    k = this.items[m]
                                }
                            }
                        }
                        if (k || this.options.dropOnEmpty) {
                            this.currentContainer = this.containers[j];
                            k ? this._rearrange(d, k, null, true) : this._rearrange(d, null, this.containers[j].element, true);
                            this._trigger("change", d, this._uiHash());
                            this.containers[j]._trigger("change", d, this._uiHash(this));
                            this.options.placeholder.update(this.currentContainer, this.placeholder);
                            this.containers[j]._trigger("over", d, this._uiHash(this));
                            this.containers[j].containerCache.over = 1
                        }
                    }
                }
            }
        },
        _createHelper: function (c) {
            var d = this.options;
            c = a.isFunction(d.helper) ? a(d.helper.apply(this.element[0], [c, this.currentItem])) : d.helper == "clone" ? this.currentItem.clone() : this.currentItem;
            c.parents("body").length || a(d.appendTo != "parent" ? d.appendTo : this.currentItem[0].parentNode)[0].appendChild(c[0]);
            if (c[0] == this.currentItem[0]) {
                this._storedCSS = {
                    width: this.currentItem[0].style.width,
                    height: this.currentItem[0].style.height,
                    position: this.currentItem.css("position"),
                    top: this.currentItem.css("top"),
                    left: this.currentItem.css("left")
                }
            }
            if (c[0].style.width == "" || d.forceHelperSize) {
                c.width(this.currentItem.width())
            }
            if (c[0].style.height == "" || d.forceHelperSize) {
                c.height(this.currentItem.height())
            }
            return c
        },
        _adjustOffsetFromHelper: function (b) {
            if (typeof b == "string") {
                b = b.split(" ")
            }
            if (a.isArray(b)) {
                b = {
                    left: +b[0],
                    top: +b[1] || 0
                }
            }
            if ("left" in b) {
                this.offset.click.left = b.left + this.margins.left
            }
            if ("right" in b) {
                this.offset.click.left = this.helperProportions.width - b.right + this.margins.left
            }
            if ("top" in b) {
                this.offset.click.top = b.top + this.margins.top
            }
            if ("bottom" in b) {
                this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top
            }
        },
        _getParentOffset: function () {
            this.offsetParent = this.helper.offsetParent();
            var b = this.offsetParent.offset();
            if (this.cssPosition == "absolute" && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
                b.left += this.scrollParent.scrollLeft();
                b.top += this.scrollParent.scrollTop()
            }
            if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && a.browser.msie) {
                b = {
                    top: 0,
                    left: 0
                }
            }
            return {
                top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            }
        },
        _getRelativeOffset: function () {
            if (this.cssPosition == "relative") {
                var b = this.currentItem.position();
                return {
                    top: b.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
                    left: b.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
                }
            } else {
                return {
                    top: 0,
                    left: 0
                }
            }
        },
        _cacheMargins: function () {
            this.margins = {
                left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
                top: parseInt(this.currentItem.css("marginTop"), 10) || 0
            }
        },
        _cacheHelperProportions: function () {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            }
        },
        _setContainment: function () {
            var d = this.options;
            if (d.containment == "parent") {
                d.containment = this.helper[0].parentNode
            }
            if (d.containment == "document" || d.containment == "window") {
                this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(d.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(d.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]
            }
            if (!/^(document|window|parent)$/.test(d.containment)) {
                var e = a(d.containment)[0];
                d = a(d.containment).offset();
                var f = a(e).css("overflow") != "hidden";
                this.containment = [d.left + (parseInt(a(e).css("borderLeftWidth"), 10) || 0) + (parseInt(a(e).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(e).css("borderTopWidth"), 10) || 0) + (parseInt(a(e).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (f ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(a(e).css("borderLeftWidth"), 10) || 0) - (parseInt(a(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (f ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(a(e).css("borderTopWidth"), 10) || 0) - (parseInt(a(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
            }
        },
        _convertPositionTo: function (d, f) {
            if (!f) {
                f = this.position
            }
            d = d == "absolute" ? 1 : -1;
            var g = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
                h = /(html|body)/i.test(g[0].tagName);
            return {
                top: f.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : h ? 0 : g.scrollTop()) * d),
                left: f.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : h ? 0 : g.scrollLeft()) * d)
            }
        },
        _generatePosition: function (d) {
            var h = this.options,
                i = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
                j = /(html|body)/i.test(i[0].tagName);
            if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
                this.offset.relative = this._getRelativeOffset()
            }
            var k = d.pageX,
                l = d.pageY;
            if (this.originalPosition) {
                if (this.containment) {
                    if (d.pageX - this.offset.click.left < this.containment[0]) {
                        k = this.containment[0] + this.offset.click.left
                    }
                    if (d.pageY - this.offset.click.top < this.containment[1]) {
                        l = this.containment[1] + this.offset.click.top
                    }
                    if (d.pageX - this.offset.click.left > this.containment[2]) {
                        k = this.containment[2] + this.offset.click.left
                    }
                    if (d.pageY - this.offset.click.top > this.containment[3]) {
                        l = this.containment[3] + this.offset.click.top
                    }
                }
                if (h.grid) {
                    l = this.originalPageY + Math.round((l - this.originalPageY) / h.grid[1]) * h.grid[1];
                    l = this.containment ? !(l - this.offset.click.top < this.containment[1] || l - this.offset.click.top > this.containment[3]) ? l : !(l - this.offset.click.top < this.containment[1]) ? l - h.grid[1] : l + h.grid[1] : l;
                    k = this.originalPageX + Math.round((k - this.originalPageX) / h.grid[0]) * h.grid[0];
                    k = this.containment ? !(k - this.offset.click.left < this.containment[0] || k - this.offset.click.left > this.containment[2]) ? k : !(k - this.offset.click.left < this.containment[0]) ? k - h.grid[0] : k + h.grid[0] : k
                }
            }
            return {
                top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : j ? 0 : i.scrollTop()),
                left: k - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : j ? 0 : i.scrollLeft())
            }
        },
        _rearrange: function (d, h, i, j) {
            i ? i[0].appendChild(this.placeholder[0]) : h.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? h.item[0] : h.item[0].nextSibling);
            this.counter = this.counter ? ++this.counter : 1;
            var k = this,
                l = this.counter;
            window.setTimeout(function () {
                l == k.counter && k.refreshPositions(!j)
            }, 0)
        },
        _clear: function (d, f) {
            this.reverting = false;
            var g = [];
            !this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem);
            this._noFinalSort = null;
            if (this.helper[0] == this.currentItem[0]) {
                for (var h in this._storedCSS) {
                    if (this._storedCSS[h] == "auto" || this._storedCSS[h] == "static") {
                        this._storedCSS[h] = ""
                    }
                }
                this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
            } else {
                this.currentItem.show()
            }
            this.fromOutside && !f && g.push(function (b) {
                this._trigger("receive", b, this._uiHash(this.fromOutside))
            });
            if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !f) {
                g.push(function (b) {
                    this._trigger("update", b, this._uiHash())
                })
            }
            if (!a.ui.contains(this.element[0], this.currentItem[0])) {
                f || g.push(function (b) {
                    this._trigger("remove", b, this._uiHash())
                });
                for (h = this.containers.length - 1; h >= 0; h--) {
                    if (a.ui.contains(this.containers[h].element[0], this.currentItem[0]) && !f) {
                        g.push(function (b) {
                            return function (c) {
                                b._trigger("receive", c, this._uiHash(this))
                            }
                        }.call(this, this.containers[h]));
                        g.push(function (b) {
                            return function (c) {
                                b._trigger("update", c, this._uiHash(this))
                            }
                        }.call(this, this.containers[h]))
                    }
                }
            }
            for (h = this.containers.length - 1; h >= 0; h--) {
                f || g.push(function (b) {
                    return function (c) {
                        b._trigger("deactivate", c, this._uiHash(this))
                    }
                }.call(this, this.containers[h]));
                if (this.containers[h].containerCache.over) {
                    g.push(function (b) {
                        return function (c) {
                            b._trigger("out", c, this._uiHash(this))
                        }
                    }.call(this, this.containers[h]));
                    this.containers[h].containerCache.over = 0
                }
            }
            this._storedCursor && a("body").css("cursor", this._storedCursor);
            this._storedOpacity && this.helper.css("opacity", this._storedOpacity);
            if (this._storedZIndex) {
                this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex)
            }
            this.dragging = false;
            if (this.cancelHelperRemoval) {
                if (!f) {
                    this._trigger("beforeStop", d, this._uiHash());
                    for (h = 0; h < g.length; h++) {
                        g[h].call(this, d)
                    }
                    this._trigger("stop", d, this._uiHash())
                }
                return false
            }
            f || this._trigger("beforeStop", d, this._uiHash());
            this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
            this.helper[0] != this.currentItem[0] && this.helper.remove();
            this.helper = null;
            if (!f) {
                for (h = 0; h < g.length; h++) {
                    g[h].call(this, d)
                }
                this._trigger("stop", d, this._uiHash())
            }
            this.fromOutside = false;
            return true
        },
        _trigger: function () {
            a.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel()
        },
        _uiHash: function (c) {
            var d = c || this;
            return {
                helper: d.helper,
                placeholder: d.placeholder || a([]),
                position: d.position,
                originalPosition: d.originalPosition,
                offset: d.positionAbs,
                item: d.currentItem,
                sender: c ? c.element : null
            }
        }
    });
    a.extend(a.ui.sortable, {
        version: "1.8.5"
    })
})(jQuery);
(function (a) {
    a.widget("ui.accordion", {
        options: {
            active: 0,
            animated: "slide",
            autoHeight: true,
            clearStyle: false,
            collapsible: false,
            event: "click",
            fillSpace: false,
            header: "> li > :first-child,> :not(li):even",
            icons: {
                header: "ui-icon-triangle-1-e",
                headerSelected: "ui-icon-triangle-1-s"
            },
            navigation: false,
            navigationFilter: function () {
                return this.href.toLowerCase() === location.href.toLowerCase()
            }
        },
        _create: function () {
            var c = this,
                e = c.options;
            c.running = 0;
            c.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
            c.headers = c.element.find(e.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function () {
                e.disabled || a(this).addClass("ui-state-hover")
            }).bind("mouseleave.accordion", function () {
                e.disabled || a(this).removeClass("ui-state-hover")
            }).bind("focus.accordion", function () {
                e.disabled || a(this).addClass("ui-state-focus")
            }).bind("blur.accordion", function () {
                e.disabled || a(this).removeClass("ui-state-focus")
            });
            c.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
            if (e.navigation) {
                var g = c.element.find("a").filter(e.navigationFilter).eq(0);
                if (g.length) {
                    var h = g.closest(".ui-accordion-header");
                    c.active = h.length ? h : g.closest(".ui-accordion-content").prev()
                }
            }
            c.active = c._findActive(c.active || e.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all ui-corner-top");
            c.active.next().addClass("ui-accordion-content-active");
            c._createIcons();
            c.resize();
            c.element.attr("role", "tablist");
            c.headers.attr("role", "tab").bind("keydown.accordion", function (b) {
                return c._keydown(b)
            }).next().attr("role", "tabpanel");
            c.headers.not(c.active || "").attr({
                "aria-expanded": "false",
                tabIndex: -1
            }).next().hide();
            c.active.length ? c.active.attr({
                "aria-expanded": "true",
                tabIndex: 0
            }) : c.headers.eq(0).attr("tabIndex", 0);
            a.browser.safari || c.headers.find("a").attr("tabIndex", -1);
            e.event && c.headers.bind(e.event.split(" ").join(".accordion ") + ".accordion", function (b) {
                c._clickHandler.call(c, b, this);
                b.preventDefault()
            })
        },
        _createIcons: function () {
            var b = this.options;
            if (b.icons) {
                a("<span></span>").addClass("ui-icon " + b.icons.header).prependTo(this.headers);
                this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected);
                this.element.addClass("ui-accordion-icons")
            }
        },
        _destroyIcons: function () {
            this.headers.children(".ui-icon").remove();
            this.element.removeClass("ui-accordion-icons")
        },
        destroy: function () {
            var c = this.options;
            this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");
            this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
            this.headers.find("a").removeAttr("tabIndex");
            this._destroyIcons();
            var d = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");
            if (c.autoHeight || c.fillHeight) {
                d.css("height", "")
            }
            return a.Widget.prototype.destroy.call(this)
        },
        _setOption: function (c, d) {
            a.Widget.prototype._setOption.apply(this, arguments);
            c == "active" && this.activate(d);
            if (c == "icons") {
                this._destroyIcons();
                d && this._createIcons()
            }
            if (c == "disabled") {
                this.headers.add(this.headers.next())[d ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
            }
        },
        _keydown: function (c) {
            if (!(this.options.disabled || c.altKey || c.ctrlKey)) {
                var e = a.ui.keyCode,
                    h = this.headers.length,
                    i = this.headers.index(c.target),
                    j = false;
                switch (c.keyCode) {
                case e.RIGHT:
                case e.DOWN:
                    j = this.headers[(i + 1) % h];
                    break;
                case e.LEFT:
                case e.UP:
                    j = this.headers[(i - 1 + h) % h];
                    break;
                case e.SPACE:
                case e.ENTER:
                    this._clickHandler({
                        target: c.target
                    }, c.target);
                    c.preventDefault()
                }
                if (j) {
                    a(c.target).attr("tabIndex", -1);
                    a(j).attr("tabIndex", 0);
                    j.focus();
                    return false
                }
                return true
            }
        },
        resize: function () {
            var c = this.options,
                e;
            if (c.fillSpace) {
                if (a.browser.msie) {
                    var f = this.element.parent().css("overflow");
                    this.element.parent().css("overflow", "hidden")
                }
                e = this.element.parent().height();
                a.browser.msie && this.element.parent().css("overflow", f);
                this.headers.each(function () {
                    e -= a(this).outerHeight(true)
                });
                this.headers.next().each(function () {
                    a(this).height(Math.max(0, e - a(this).innerHeight() + a(this).height()))
                }).css("overflow", "auto")
            } else {
                if (c.autoHeight) {
                    e = 0;
                    this.headers.next().each(function () {
                        e = Math.max(e, a(this).height("").height())
                    }).height(e)
                }
            }
            return this
        },
        activate: function (b) {
            this.options.active = b;
            b = this._findActive(b)[0];
            this._clickHandler({
                target: b
            }, b);
            return this
        },
        _findActive: function (b) {
            return b ? typeof b === "number" ? this.headers.filter(":eq(" + b + ")") : this.headers.not(this.headers.not(b)) : b === false ? a([]) : this.headers.filter(":eq(0)")
        },
        _clickHandler: function (c, e) {
            var i = this.options;
            if (!i.disabled) {
                if (c.target) {
                    c = a(c.currentTarget || e);
                    e = c[0] === this.active[0];
                    i.active = i.collapsible && e ? false : this.headers.index(c);
                    if (!(this.running || !i.collapsible && e)) {
                        this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(i.icons.headerSelected).addClass(i.icons.header);
                        if (!e) {
                            c.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(i.icons.header).addClass(i.icons.headerSelected);
                            c.next().addClass("ui-accordion-content-active")
                        }
                        l = c.next();
                        j = this.active.next();
                        k = {
                            options: i,
                            newHeader: e && i.collapsible ? a([]) : c,
                            oldHeader: this.active,
                            newContent: e && i.collapsible ? a([]) : l,
                            oldContent: j
                        };
                        i = this.headers.index(this.active[0]) > this.headers.index(c[0]);
                        this.active = e ? a([]) : c;
                        this._toggle(l, j, k, e, i)
                    }
                } else {
                    if (i.collapsible) {
                        this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(i.icons.headerSelected).addClass(i.icons.header);
                        this.active.next().addClass("ui-accordion-content-active");
                        var j = this.active.next(),
                            k = {
                                options: i,
                                newHeader: a([]),
                                oldHeader: i.active,
                                newContent: a([]),
                                oldContent: j
                            },
                            l = this.active = a([]);
                        this._toggle(l, j, k)
                    }
                }
            }
        },
        _toggle: function (c, l, m, o, p) {
            var q = this,
                n = q.options;
            q.toShow = c;
            q.toHide = l;
            q.data = m;
            var s = function () {
                    if (q) {
                        return q._completed.apply(q, arguments)
                    }
                };
            q._trigger("changestart", null, q.data);
            q.running = l.size() === 0 ? c.size() : l.size();
            if (n.animated) {
                m = {};
                m = n.collapsible && o ? {
                    toShow: a([]),
                    toHide: l,
                    complete: s,
                    down: p,
                    autoHeight: n.autoHeight || n.fillSpace
                } : {
                    toShow: c,
                    toHide: l,
                    complete: s,
                    down: p,
                    autoHeight: n.autoHeight || n.fillSpace
                };
                if (!n.proxied) {
                    n.proxied = n.animated
                }
                if (!n.proxiedDuration) {
                    n.proxiedDuration = n.duration
                }
                n.animated = a.isFunction(n.proxied) ? n.proxied(m) : n.proxied;
                n.duration = a.isFunction(n.proxiedDuration) ? n.proxiedDuration(m) : n.proxiedDuration;
                o = a.ui.accordion.animations;
                var r = n.duration,
                    u = n.animated;
                if (u && !o[u] && !a.easing[u]) {
                    u = "slide"
                }
                o[u] || (o[u] = function (b) {
                    this.slide(b, {
                        easing: u,
                        duration: r || 700
                    })
                });
                o[u](m)
            } else {
                if (n.collapsible && o) {
                    c.toggle()
                } else {
                    l.hide();
                    c.show()
                }
                s(true)
            }
            l.prev().attr({
                "aria-expanded": "false",
                tabIndex: -1
            }).blur();
            c.prev().attr({
                "aria-expanded": "true",
                tabIndex: 0
            }).focus()
        },
        _completed: function (b) {
            this.running = b ? 0 : --this.running;
            if (!this.running) {
                this.options.clearStyle && this.toShow.add(this.toHide).css({
                    height: "",
                    overflow: ""
                });
                this.toHide.removeClass("ui-accordion-content-active");
                this._trigger("change", null, this.data)
            }
        }
    });
    a.extend(a.ui.accordion, {
        version: "1.8.5",
        animations: {
            slide: function (c, i) {
                c = a.extend({
                    easing: "swing",
                    duration: 300
                }, c, i);
                if (c.toHide.size()) {
                    if (c.toShow.size()) {
                        var j = c.toShow.css("overflow"),
                            l = 0,
                            m = {},
                            n = {},
                            k;
                        i = c.toShow;
                        k = i[0].style.width;
                        i.width(parseInt(i.parent().width(), 10) - parseInt(i.css("paddingLeft"), 10) - parseInt(i.css("paddingRight"), 10) - (parseInt(i.css("borderLeftWidth"), 10) || 0) - (parseInt(i.css("borderRightWidth"), 10) || 0));
                        a.each(["height", "paddingTop", "paddingBottom"], function (d, b) {
                            n[b] = "hide";
                            d = ("" + a.css(c.toShow[0], b)).match(/^([\d+-.]+)(.*)$/);
                            m[b] = {
                                value: d[1],
                                unit: d[2] || "px"
                            }
                        });
                        c.toShow.css({
                            height: 0,
                            overflow: "hidden"
                        }).show();
                        c.toHide.filter(":hidden").each(c.complete).end().filter(":visible").animate(n, {
                            step: function (d, b) {
                                if (b.prop == "height") {
                                    l = b.end - b.start === 0 ? 0 : (b.now - b.start) / (b.end - b.start)
                                }
                                c.toShow[0].style[b.prop] = l * m[b.prop].value + m[b.prop].unit
                            },
                            duration: c.duration,
                            easing: c.easing,
                            complete: function () {
                                c.autoHeight || c.toShow.css("height", "");
                                c.toShow.css({
                                    width: k,
                                    overflow: j
                                });
                                c.complete()
                            }
                        })
                    } else {
                        c.toHide.animate({
                            height: "hide",
                            paddingTop: "hide",
                            paddingBottom: "hide"
                        }, c)
                    }
                } else {
                    c.toShow.animate({
                        height: "show",
                        paddingTop: "show",
                        paddingBottom: "show"
                    }, c)
                }
            },
            bounceslide: function (b) {
                this.slide(b, {
                    easing: b.down ? "easeOutBounce" : "swing",
                    duration: b.down ? 1000 : 200
                })
            }
        }
    })
})(jQuery);
(function (a) {
    a.widget("ui.autocomplete", {
        options: {
            appendTo: "body",
            delay: 300,
            minLength: 1,
            position: {
                my: "left top",
                at: "left bottom",
                collision: "none"
            },
            source: null
        },
        _create: function () {
            var c = this,
                d = this.element[0].ownerDocument;
            this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({
                role: "textbox",
                "aria-autocomplete": "list",
                "aria-haspopup": "true"
            }).bind("keydown.autocomplete", function (b) {
                if (!c.options.disabled) {
                    var e = a.ui.keyCode;
                    switch (b.keyCode) {
                    case e.PAGE_UP:
                        c._move("previousPage", b);
                        break;
                    case e.PAGE_DOWN:
                        c._move("nextPage", b);
                        break;
                    case e.UP:
                        c._move("previous", b);
                        b.preventDefault();
                        break;
                    case e.DOWN:
                        c._move("next", b);
                        b.preventDefault();
                        break;
                    case e.ENTER:
                    case e.NUMPAD_ENTER:
                        c.menu.element.is(":visible") && b.preventDefault();
                    case e.TAB:
                        if (!c.menu.active) {
                            return
                        }
                        c.menu.select(b);
                        break;
                    case e.ESCAPE:
                        c.element.val(c.term);
                        c.close(b);
                        break;
                    default:
                        clearTimeout(c.searching);
                        c.searching = setTimeout(function () {
                            if (c.term != c.element.val()) {
                                c.selectedItem = null;
                                c.search(null, b)
                            }
                        }, c.options.delay);
                        break
                    }
                }
            }).bind("focus.autocomplete", function () {
                if (!c.options.disabled) {
                    c.selectedItem = null;
                    c.previous = c.element.val()
                }
            }).bind("blur.autocomplete", function (b) {
                if (!c.options.disabled) {
                    clearTimeout(c.searching);
                    c.closing = setTimeout(function () {
                        c.close(b);
                        c._change(b)
                    }, 150)
                }
            });
            this._initSource();
            this.response = function () {
                return c._response.apply(c, arguments)
            };
            this.menu = a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo || "body", d)[0]).mousedown(function (b) {
                var e = c.menu.element[0];
                b.target === e && setTimeout(function () {
                    a(document).one("mousedown", function (g) {
                        g.target !== c.element[0] && g.target !== e && !a.ui.contains(e, g.target) && c.close()
                    })
                }, 1);
                setTimeout(function () {
                    clearTimeout(c.closing)
                }, 13)
            }).menu({
                focus: function (b, e) {
                    e = e.item.data("item.autocomplete");
                    false !== c._trigger("focus", null, {
                        item: e
                    }) && /^key/.test(b.originalEvent.type) && c.element.val(e.value)
                },
                selected: function (b, e) {
                    e = e.item.data("item.autocomplete");
                    var g = c.previous;
                    if (c.element[0] !== d.activeElement) {
                        c.element.focus();
                        c.previous = g
                    }
                    if (false !== c._trigger("select", b, {
                        item: e
                    })) {
                        c.term = e.value;
                        c.element.val(e.value)
                    }
                    c.close(b);
                    c.selectedItem = e
                },
                blur: function () {
                    c.menu.element.is(":visible") && c.element.val() !== c.term && c.element.val(c.term)
                }
            }).zIndex(this.element.zIndex() + 1).css({
                top: 0,
                left: 0
            }).hide().data("menu");
            a.fn.bgiframe && this.menu.element.bgiframe()
        },
        destroy: function () {
            this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
            this.menu.element.remove();
            a.Widget.prototype.destroy.call(this)
        },
        _setOption: function (c, d) {
            a.Widget.prototype._setOption.apply(this, arguments);
            c === "source" && this._initSource();
            if (c === "appendTo") {
                this.menu.element.appendTo(a(d || "body", this.element[0].ownerDocument)[0])
            }
        },
        _initSource: function () {
            var d = this,
                e, f;
            if (a.isArray(this.options.source)) {
                e = this.options.source;
                this.source = function (b, c) {
                    c(a.ui.autocomplete.filter(e, b.term))
                }
            } else {
                if (typeof this.options.source === "string") {
                    f = this.options.source;
                    this.source = function (b, c) {
                        d.xhr && d.xhr.abort();
                        d.xhr = a.getJSON(f, b, function (j, l, k) {
                            k === d.xhr && c(j);
                            d.xhr = null
                        })
                    }
                } else {
                    this.source = this.options.source
                }
            }
        },
        search: function (c, d) {
            c = c != null ? c : this.element.val();
            this.term = this.element.val();
            if (c.length < this.options.minLength) {
                return this.close(d)
            }
            clearTimeout(this.closing);
            if (this._trigger("search") !== false) {
                return this._search(c)
            }
        },
        _search: function (b) {
            this.element.addClass("ui-autocomplete-loading");
            this.source({
                term: b
            }, this.response)
        },
        _response: function (b) {
            if (b.length) {
                b = this._normalize(b);
                this._suggest(b);
                this._trigger("open")
            } else {
                this.close()
            }
            this.element.removeClass("ui-autocomplete-loading")
        },
        close: function (b) {
            clearTimeout(this.closing);
            if (this.menu.element.is(":visible")) {
                this._trigger("close", b);
                this.menu.element.hide();
                this.menu.deactivate()
            }
        },
        _change: function (b) {
            this.previous !== this.element.val() && this._trigger("change", b, {
                item: this.selectedItem
            })
        },
        _normalize: function (b) {
            if (b.length && b[0].label && b[0].value) {
                return b
            }
            return a.map(b, function (c) {
                if (typeof c === "string") {
                    return {
                        label: c,
                        value: c
                    }
                }
                return a.extend({
                    label: c.label || c.value,
                    value: c.value || c.label
                }, c)
            })
        },
        _suggest: function (d) {
            var e = this.menu.element.empty().zIndex(this.element.zIndex() + 1),
                f;
            this._renderMenu(e, d);
            this.menu.deactivate();
            this.menu.refresh();
            this.menu.element.show().position(a.extend({
                of: this.element
            }, this.options.position));
            d = e.width("").outerWidth();
            f = this.element.outerWidth();
            e.outerWidth(Math.max(d, f))
        },
        _renderMenu: function (d, e) {
            var f = this;
            a.each(e, function (b, c) {
                f._renderItem(d, c)
            })
        },
        _renderItem: function (c, d) {
            return a("<li></li>").data("item.autocomplete", d).append(a("<a></a>").text(d.label)).appendTo(c)
        },
        _move: function (c, d) {
            if (this.menu.element.is(":visible")) {
                if (this.menu.first() && /^previous/.test(c) || this.menu.last() && /^next/.test(c)) {
                    this.element.val(this.term);
                    this.menu.deactivate()
                } else {
                    this.menu[c](d)
                }
            } else {
                this.search(null, d)
            }
        },
        widget: function () {
            return this.menu.element
        }
    });
    a.extend(a.ui.autocomplete, {
        escapeRegex: function (b) {
            return b.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
        },
        filter: function (d, e) {
            var f = new RegExp(a.ui.autocomplete.escapeRegex(e), "i");
            return a.grep(d, function (b) {
                return f.test(b.label || b.value || b)
            })
        }
    })
})(jQuery);
(function (a) {
    a.widget("ui.menu", {
        _create: function () {
            var b = this;
            this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({
                role: "listbox",
                "aria-activedescendant": "ui-active-menuitem"
            }).click(function (c) {
                if (a(c.target).closest(".ui-menu-item a").length) {
                    c.preventDefault();
                    b.select(c)
                }
            });
            this.refresh()
        },
        refresh: function () {
            var b = this;
            this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function (c) {
                b.activate(c, a(this).parent())
            }).mouseleave(function () {
                b.deactivate()
            })
        },
        activate: function (e, g) {
            this.deactivate();
            if (this.hasScroll()) {
                var h = g.offset().top - this.element.offset().top,
                    i = this.element.attr("scrollTop"),
                    j = this.element.height();
                if (h < 0) {
                    this.element.attr("scrollTop", i + h)
                } else {
                    h >= j && this.element.attr("scrollTop", i + h - j + g.height())
                }
            }
            this.active = g.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end();
            this._trigger("focus", e, {
                item: g
            })
        },
        deactivate: function () {
            if (this.active) {
                this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
                this._trigger("blur");
                this.active = null
            }
        },
        next: function (b) {
            this.move("next", ".ui-menu-item:first", b)
        },
        previous: function (b) {
            this.move("prev", ".ui-menu-item:last", b)
        },
        first: function () {
            return this.active && !this.active.prevAll(".ui-menu-item").length
        },
        last: function () {
            return this.active && !this.active.nextAll(".ui-menu-item").length
        },
        move: function (d, e, f) {
            if (this.active) {
                d = this.active[d + "All"](".ui-menu-item").eq(0);
                d.length ? this.activate(f, d) : this.activate(f, this.element.children(e))
            } else {
                this.activate(f, this.element.children(e))
            }
        },
        nextPage: function (e) {
            if (this.hasScroll()) {
                if (!this.active || this.last()) {
                    this.activate(e, this.element.children(":first"))
                } else {
                    var f = this.active.offset().top,
                        g = this.element.height(),
                        h = this.element.children("li").filter(function () {
                            var b = a(this).offset().top - f - g + a(this).height();
                            return b < 10 && b > -10
                        });
                    h.length || (h = this.element.children(":last"));
                    this.activate(e, h)
                }
            } else {
                this.activate(e, this.element.children(!this.active || this.last() ? ":first" : ":last"))
            }
        },
        previousPage: function (d) {
            if (this.hasScroll()) {
                if (!this.active || this.first()) {
                    this.activate(d, this.element.children(":last"))
                } else {
                    var e = this.active.offset().top,
                        f = this.element.height();
                    result = this.element.children("li").filter(function () {
                        var b = a(this).offset().top - e + f - a(this).height();
                        return b < 10 && b > -10
                    });
                    result.length || (result = this.element.children(":first"));
                    this.activate(d, result)
                }
            } else {
                this.activate(d, this.element.children(!this.active || this.first() ? ":last" : ":first"))
            }
        },
        hasScroll: function () {
            return this.element.height() < this.element.attr("scrollHeight")
        },
        select: function (b) {
            this._trigger("selected", b, {
                item: this.active
            })
        }
    })
})(jQuery);
(function (b) {
    var c, e = function (a) {
            b(":ui-button", a.target.form).each(function () {
                var f = b(this).data("button");
                setTimeout(function () {
                    f.refresh()
                }, 1)
            })
        },
        d = function (a) {
            var f = a.name,
                g = a.form,
                h = b([]);
            if (f) {
                h = g ? b(g).find("[name='" + f + "']") : b("[name='" + f + "']", a.ownerDocument).filter(function () {
                    return !this.form
                })
            }
            return h
        };
    b.widget("ui.button", {
        options: {
            disabled: null,
            text: true,
            label: null,
            icons: {
                primary: null,
                secondary: null
            }
        },
        _create: function () {
            this.element.closest("form").unbind("reset.button").bind("reset.button", e);
            if (typeof this.options.disabled !== "boolean") {
                this.options.disabled = this.element.attr("disabled")
            }
            this._determineButtonType();
            this.hasTitle = !! this.buttonElement.attr("title");
            var a = this,
                f = this.options,
                g = this.type === "checkbox" || this.type === "radio",
                h = "ui-state-hover" + (!g ? " ui-state-active" : "");
            if (f.label === null) {
                f.label = this.buttonElement.html()
            }
            if (this.element.is(":disabled")) {
                f.disabled = true
            }
            this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function () {
                if (!f.disabled) {
                    b(this).addClass("ui-state-hover");
                    this === c && b(this).addClass("ui-state-active")
                }
            }).bind("mouseleave.button", function () {
                f.disabled || b(this).removeClass(h)
            }).bind("focus.button", function () {
                b(this).addClass("ui-state-focus")
            }).bind("blur.button", function () {
                b(this).removeClass("ui-state-focus")
            });
            g && this.element.bind("change.button", function () {
                a.refresh()
            });
            if (this.type === "checkbox") {
                this.buttonElement.bind("click.button", function () {
                    if (f.disabled) {
                        return false
                    }
                    b(this).toggleClass("ui-state-active");
                    a.buttonElement.attr("aria-pressed", a.element[0].checked)
                })
            } else {
                if (this.type === "radio") {
                    this.buttonElement.bind("click.button", function () {
                        if (f.disabled) {
                            return false
                        }
                        b(this).addClass("ui-state-active");
                        a.buttonElement.attr("aria-pressed", true);
                        var i = a.element[0];
                        d(i).not(i).map(function () {
                            return b(this).button("widget")[0]
                        }).removeClass("ui-state-active").attr("aria-pressed", false)
                    })
                } else {
                    this.buttonElement.bind("mousedown.button", function () {
                        if (f.disabled) {
                            return false
                        }
                        b(this).addClass("ui-state-active");
                        c = this;
                        b(document).one("mouseup", function () {
                            c = null
                        })
                    }).bind("mouseup.button", function () {
                        if (f.disabled) {
                            return false
                        }
                        b(this).removeClass("ui-state-active")
                    }).bind("keydown.button", function (i) {
                        if (f.disabled) {
                            return false
                        }
                        if (i.keyCode == b.ui.keyCode.SPACE || i.keyCode == b.ui.keyCode.ENTER) {
                            b(this).addClass("ui-state-active")
                        }
                    }).bind("keyup.button", function () {
                        b(this).removeClass("ui-state-active")
                    });
                    this.buttonElement.is("a") && this.buttonElement.keyup(function (i) {
                        i.keyCode === b.ui.keyCode.SPACE && b(this).click()
                    })
                }
            }
            this._setOption("disabled", f.disabled)
        },
        _determineButtonType: function () {
            this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button";
            if (this.type === "checkbox" || this.type === "radio") {
                this.buttonElement = this.element.parents().last().find("label[for=" + this.element.attr("id") + "]");
                this.element.addClass("ui-helper-hidden-accessible");
                var a = this.element.is(":checked");
                a && this.buttonElement.addClass("ui-state-active");
                this.buttonElement.attr("aria-pressed", a)
            } else {
                this.buttonElement = this.element
            }
        },
        widget: function () {
            return this.buttonElement
        },
        destroy: function () {
            this.element.removeClass("ui-helper-hidden-accessible");
            this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
            this.hasTitle || this.buttonElement.removeAttr("title");
            b.Widget.prototype.destroy.call(this)
        },
        _setOption: function (a, f) {
            b.Widget.prototype._setOption.apply(this, arguments);
            if (a === "disabled") {
                f ? this.element.attr("disabled", true) : this.element.removeAttr("disabled")
            }
            this._resetButton()
        },
        refresh: function () {
            var a = this.element.is(":disabled");
            a !== this.options.disabled && this._setOption("disabled", a);
            if (this.type === "radio") {
                d(this.element[0]).each(function () {
                    b(this).is(":checked") ? b(this).button("widget").addClass("ui-state-active").attr("aria-pressed", true) : b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false)
                })
            } else {
                if (this.type === "checkbox") {
                    this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false)
                }
            }
        },
        _resetButton: function () {
            if (this.type === "input") {
                this.options.label && this.element.val(this.options.label)
            } else {
                var a = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
                    f = b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),
                    g = this.options.icons,
                    h = g.primary && g.secondary;
                if (g.primary || g.secondary) {
                    a.addClass("ui-button-text-icon" + (h ? "s" : g.primary ? "-primary" : "-secondary"));
                    g.primary && a.prepend("<span class='ui-button-icon-primary ui-icon " + g.primary + "'></span>");
                    g.secondary && a.append("<span class='ui-button-icon-secondary ui-icon " + g.secondary + "'></span>");
                    if (!this.options.text) {
                        a.addClass(h ? "ui-button-icons-only" : "ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
                        this.hasTitle || a.attr("title", f)
                    }
                } else {
                    a.addClass("ui-button-text-only")
                }
            }
        }
    });
    b.widget("ui.buttonset", {
        _create: function () {
            this.element.addClass("ui-buttonset");
            this._init()
        },
        _init: function () {
            this.refresh()
        },
        _setOption: function (a, f) {
            a === "disabled" && this.buttons.button("option", a, f);
            b.Widget.prototype._setOption.apply(this, arguments)
        },
        refresh: function () {
            this.buttons = this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () {
                return b(this).button("widget")[0]
            }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end()
        },
        destroy: function () {
            this.element.removeClass("ui-buttonset");
            this.buttons.map(function () {
                return b(this).button("widget")[0]
            }).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
            b.Widget.prototype.destroy.call(this)
        }
    })
})(jQuery);
(function (a, b) {
    a.widget("ui.dialog", {
        options: {
            autoOpen: true,
            buttons: {},
            closeOnEscape: true,
            closeText: "close",
            dialogClass: "",
            draggable: true,
            hide: null,
            height: "auto",
            maxHeight: false,
            maxWidth: false,
            minHeight: 150,
            minWidth: 150,
            modal: false,
            position: {
                my: "center",
                at: "center",
                of: window,
                collision: "fit",
                using: function (c) {
                    var d = a(this).css(c).offset().top;
                    d < 0 && a(this).css("top", c.top - d)
                }
            },
            resizable: true,
            show: null,
            stack: true,
            title: "",
            width: 300,
            zIndex: 1000
        },
        _create: function () {
            this.originalTitle = this.element.attr("title");
            if (typeof this.originalTitle !== "string") {
                this.originalTitle = ""
            }
            this.options.title = this.options.title || this.originalTitle;
            var c = this,
                i = c.options,
                j = i.title || "&#160;",
                l = a.ui.dialog.getTitleId(c.element),
                m = (c.uiDialog = a("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + i.dialogClass).css({
                    zIndex: i.zIndex
                }).attr("tabIndex", -1).css("outline", 0).keydown(function (d) {
                    if (i.closeOnEscape && d.keyCode && d.keyCode === a.ui.keyCode.ESCAPE) {
                        c.close(d);
                        d.preventDefault()
                    }
                }).attr({
                    role: "dialog",
                    "aria-labelledby": l
                }).mousedown(function (d) {
                    c.moveToTop(false, d)
                });
            c.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(m);
            var k = (c.uiDialogTitlebar = a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(m),
                n = a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () {
                    n.addClass("ui-state-hover")
                }, function () {
                    n.removeClass("ui-state-hover")
                }).focus(function () {
                    n.addClass("ui-state-focus")
                }).blur(function () {
                    n.removeClass("ui-state-focus")
                }).click(function (d) {
                    c.close(d);
                    return false
                }).appendTo(k);
            (c.uiDialogTitlebarCloseText = a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(i.closeText).appendTo(n);
            a("<span></span>").addClass("ui-dialog-title").attr("id", l).html(j).prependTo(k);
            if (a.isFunction(i.beforeclose) && !a.isFunction(i.beforeClose)) {
                i.beforeClose = i.beforeclose
            }
            k.find("*").add(k).disableSelection();
            i.draggable && a.fn.draggable && c._makeDraggable();
            i.resizable && a.fn.resizable && c._makeResizable();
            c._createButtons(i.buttons);
            c._isOpen = false;
            a.fn.bgiframe && m.bgiframe()
        },
        _init: function () {
            this.options.autoOpen && this.open()
        },
        destroy: function () {
            var c = this;
            c.overlay && c.overlay.destroy();
            c.uiDialog.hide();
            c.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
            c.uiDialog.remove();
            c.originalTitle && c.element.attr("title", c.originalTitle);
            return c
        },
        widget: function () {
            return this.uiDialog
        },
        close: function (c) {
            var e = this,
                f;
            if (false !== e._trigger("beforeClose", c)) {
                e.overlay && e.overlay.destroy();
                e.uiDialog.unbind("keypress.ui-dialog");
                e._isOpen = false;
                if (e.options.hide) {
                    e.uiDialog.hide(e.options.hide, function () {
                        e._trigger("close", c)
                    })
                } else {
                    e.uiDialog.hide();
                    e._trigger("close", c)
                }
                a.ui.dialog.overlay.resize();
                if (e.options.modal) {
                    f = 0;
                    a(".ui-dialog").each(function () {
                        if (this !== e.uiDialog[0]) {
                            f = Math.max(f, a(this).css("z-index"))
                        }
                    });
                    a.ui.dialog.maxZ = f
                }
                return e
            }
        },
        isOpen: function () {
            return this._isOpen
        },
        moveToTop: function (c, e) {
            var g = this,
                h = g.options;
            if (h.modal && !c || !h.stack && !h.modal) {
                return g._trigger("focus", e)
            }
            if (h.zIndex > a.ui.dialog.maxZ) {
                a.ui.dialog.maxZ = h.zIndex
            }
            if (g.overlay) {
                a.ui.dialog.maxZ += 1;
                g.overlay.$el.css("z-index", a.ui.dialog.overlay.maxZ = a.ui.dialog.maxZ)
            }
            c = {
                scrollTop: g.element.attr("scrollTop"),
                scrollLeft: g.element.attr("scrollLeft")
            };
            a.ui.dialog.maxZ += 1;
            g.uiDialog.css("z-index", a.ui.dialog.maxZ);
            g.element.attr(c);
            g._trigger("focus", e);
            return g
        },
        open: function () {
            if (!this._isOpen) {
                var c = this,
                    e = c.options,
                    f = c.uiDialog;
                c.overlay = e.modal ? new a.ui.dialog.overlay(c) : null;
                f.next().length && f.appendTo("body");
                c._size();
                c._position(e.position);
                f.show(e.show);
                c.moveToTop(true);
                e.modal && f.bind("keypress.ui-dialog", function (h) {
                    if (h.keyCode === a.ui.keyCode.TAB) {
                        var i = a(":tabbable", this),
                            d = i.filter(":first");
                        i = i.filter(":last");
                        if (h.target === i[0] && !h.shiftKey) {
                            d.focus(1);
                            return false
                        } else {
                            if (h.target === d[0] && h.shiftKey) {
                                i.focus(1);
                                return false
                            }
                        }
                    }
                });
                a(c.element.find(":tabbable").get().concat(f.find(".ui-dialog-buttonpane :tabbable").get().concat(f.get()))).eq(0).focus();
                c._isOpen = true;
                c._trigger("open");
                return c
            }
        },
        _createButtons: function (c) {
            var e = this,
                h = false,
                i = a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),
                j = a("<div></div>").addClass("ui-dialog-buttonset").appendTo(i);
            e.uiDialog.find(".ui-dialog-buttonpane").remove();
            typeof c === "object" && c !== null && a.each(c, function () {
                return !(h = true)
            });
            if (h) {
                a.each(c, function (d, f) {
                    f = a.isFunction(f) ? {
                        click: f,
                        text: d
                    } : f;
                    d = a("<button></button>", f).unbind("click").click(function () {
                        f.click.apply(e.element[0], arguments)
                    }).appendTo(j);
                    a.fn.button && d.button()
                });
                i.appendTo(e.uiDialog)
            }
        },
        _makeDraggable: function () {
            function c(d) {
                return {
                    position: d.position,
                    offset: d.offset
                }
            }
            var e = this,
                h = e.options,
                i = a(document),
                j;
            e.uiDialog.draggable({
                cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
                handle: ".ui-dialog-titlebar",
                containment: "document",
                start: function (d, f) {
                    j = h.height === "auto" ? "auto" : a(this).height();
                    a(this).height(a(this).height()).addClass("ui-dialog-dragging");
                    e._trigger("dragStart", d, c(f))
                },
                drag: function (d, f) {
                    e._trigger("drag", d, c(f))
                },
                stop: function (d, f) {
                    h.position = [f.position.left - i.scrollLeft(), f.position.top - i.scrollTop()];
                    a(this).removeClass("ui-dialog-dragging").height(j);
                    e._trigger("dragStop", d, c(f));
                    a.ui.dialog.overlay.resize()
                }
            })
        },
        _makeResizable: function (c) {
            function e(d) {
                return {
                    originalPosition: d.originalPosition,
                    originalSize: d.originalSize,
                    position: d.position,
                    size: d.size
                }
            }
            c = c === b ? this.options.resizable : c;
            var h = this,
                i = h.options,
                j = h.uiDialog.css("position");
            c = typeof c === "string" ? c : "n,e,s,w,se,sw,ne,nw";
            h.uiDialog.resizable({
                cancel: ".ui-dialog-content",
                containment: "document",
                alsoResize: h.element,
                maxWidth: i.maxWidth,
                maxHeight: i.maxHeight,
                minWidth: i.minWidth,
                minHeight: h._minHeight(),
                handles: c,
                start: function (d, f) {
                    a(this).addClass("ui-dialog-resizing");
                    h._trigger("resizeStart", d, e(f))
                },
                resize: function (d, f) {
                    h._trigger("resize", d, e(f))
                },
                stop: function (d, f) {
                    a(this).removeClass("ui-dialog-resizing");
                    i.height = a(this).height();
                    i.width = a(this).width();
                    h._trigger("resizeStop", d, e(f));
                    a.ui.dialog.overlay.resize()
                }
            }).css("position", j).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
        },
        _minHeight: function () {
            var c = this.options;
            return c.height === "auto" ? c.minHeight : Math.min(c.minHeight, c.height)
        },
        _position: function (c) {
            var e = [],
                g = [0, 0],
                h;
            if (c) {
                if (typeof c === "string" || typeof c === "object" && "0" in c) {
                    e = c.split ? c.split(" ") : [c[0], c[1]];
                    if (e.length === 1) {
                        e[1] = e[0]
                    }
                    a.each(["left", "top"], function (f, d) {
                        if (+e[f] === e[f]) {
                            g[f] = e[f];
                            e[f] = d
                        }
                    });
                    c = {
                        my: e.join(" "),
                        at: e.join(" "),
                        offset: g.join(" ")
                    }
                }
                c = a.extend({}, a.ui.dialog.prototype.options.position, c)
            } else {
                c = a.ui.dialog.prototype.options.position
            }(h = this.uiDialog.is(":visible")) || this.uiDialog.show();
            this.uiDialog.css({
                top: 0,
                left: 0
            }).position(c);
            h || this.uiDialog.hide()
        },
        _setOption: function (c, h) {
            var i = this,
                k = i.uiDialog,
                l = k.is(":data(resizable)"),
                j = false;
            switch (c) {
            case "beforeclose":
                c = "beforeClose";
                break;
            case "buttons":
                i._createButtons(h);
                j = true;
                break;
            case "closeText":
                i.uiDialogTitlebarCloseText.text("" + h);
                break;
            case "dialogClass":
                k.removeClass(i.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + h);
                break;
            case "disabled":
                h ? k.addClass("ui-dialog-disabled") : k.removeClass("ui-dialog-disabled");
                break;
            case "draggable":
                h ? i._makeDraggable() : k.draggable("destroy");
                break;
            case "height":
                j = true;
                break;
            case "maxHeight":
                l && k.resizable("option", "maxHeight", h);
                j = true;
                break;
            case "maxWidth":
                l && k.resizable("option", "maxWidth", h);
                j = true;
                break;
            case "minHeight":
                l && k.resizable("option", "minHeight", h);
                j = true;
                break;
            case "minWidth":
                l && k.resizable("option", "minWidth", h);
                j = true;
                break;
            case "position":
                i._position(h);
                break;
            case "resizable":
                l && !h && k.resizable("destroy");
                l && typeof h === "string" && k.resizable("option", "handles", h);
                !l && h !== false && i._makeResizable(h);
                break;
            case "title":
                a(".ui-dialog-title", i.uiDialogTitlebar).html("" + (h || "&#160;"));
                break;
            case "width":
                j = true;
                break
            }
            a.Widget.prototype._setOption.apply(i, arguments);
            j && i._size()
        },
        _size: function () {
            var c = this.options,
                d;
            this.element.css({
                width: "auto",
                minHeight: 0,
                height: 0
            });
            if (c.minWidth > c.width) {
                c.width = c.minWidth
            }
            d = this.uiDialog.css({
                height: "auto",
                width: c.width
            }).height();
            this.element.css(c.height === "auto" ? {
                minHeight: Math.max(c.minHeight - d, 0),
                height: a.support.minHeight ? "auto" : Math.max(c.minHeight - d, 0)
            } : {
                minHeight: 0,
                height: Math.max(c.height - d, 0)
            }).show();
            this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
        }
    });
    a.extend(a.ui.dialog, {
        version: "1.8.5",
        uuid: 0,
        maxZ: 0,
        getTitleId: function (c) {
            c = c.attr("id");
            if (!c) {
                this.uuid += 1;
                c = this.uuid
            }
            return "ui-dialog-title-" + c
        },
        overlay: function (c) {
            this.$el = a.ui.dialog.overlay.create(c)
        }
    });
    a.extend(a.ui.dialog.overlay, {
        instances: [],
        oldInstances: [],
        maxZ: 0,
        events: a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (c) {
            return c + ".dialog-overlay"
        }).join(" "),
        create: function (c) {
            if (this.instances.length === 0) {
                setTimeout(function () {
                    a.ui.dialog.overlay.instances.length && a(document).bind(a.ui.dialog.overlay.events, function (e) {
                        if (a(e.target).zIndex() < a.ui.dialog.overlay.maxZ) {
                            return false
                        }
                    })
                }, 1);
                a(document).bind("keydown.dialog-overlay", function (e) {
                    if (c.options.closeOnEscape && e.keyCode && e.keyCode === a.ui.keyCode.ESCAPE) {
                        c.close(e);
                        e.preventDefault()
                    }
                });
                a(window).bind("resize.dialog-overlay", a.ui.dialog.overlay.resize)
            }
            var d = (this.oldInstances.pop() || a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({
                width: this.width(),
                height: this.height()
            });
            a.fn.bgiframe && d.bgiframe();
            this.instances.push(d);
            return d
        },
        destroy: function (c) {
            this.oldInstances.push(this.instances.splice(a.inArray(c, this.instances), 1)[0]);
            this.instances.length === 0 && a([document, window]).unbind(".dialog-overlay");
            c.remove();
            var d = 0;
            a.each(this.instances, function () {
                d = Math.max(d, this.css("z-index"))
            });
            this.maxZ = d
        },
        height: function () {
            var c, d;
            if (a.browser.msie && a.browser.version < 7) {
                c = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
                d = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
                return c < d ? a(window).height() + "px" : c + "px"
            } else {
                return a(document).height() + "px"
            }
        },
        width: function () {
            var c, d;
            if (a.browser.msie && a.browser.version < 7) {
                c = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
                d = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
                return c < d ? a(window).width() + "px" : c + "px"
            } else {
                return a(document).width() + "px"
            }
        },
        resize: function () {
            var c = a([]);
            a.each(a.ui.dialog.overlay.instances, function () {
                c = c.add(this)
            });
            c.css({
                width: 0,
                height: 0
            }).css({
                width: a.ui.dialog.overlay.width(),
                height: a.ui.dialog.overlay.height()
            })
        }
    });
    a.extend(a.ui.dialog.overlay.prototype, {
        destroy: function () {
            a.ui.dialog.overlay.destroy(this.$el)
        }
    })
})(jQuery);
(function (a) {
    a.widget("ui.slider", a.ui.mouse, {
        widgetEventPrefix: "slide",
        options: {
            animate: false,
            distance: 0,
            max: 100,
            min: 0,
            orientation: "horizontal",
            range: false,
            step: 1,
            value: 0,
            values: null
        },
        _create: function () {
            var c = this,
                d = this.options;
            this._mouseSliding = this._keySliding = false;
            this._animateOff = true;
            this._handleIndex = null;
            this._detectOrientation();
            this._mouseInit();
            this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all");
            d.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
            this.range = a([]);
            if (d.range) {
                if (d.range === true) {
                    this.range = a("<div></div>");
                    if (!d.values) {
                        d.values = [this._valueMin(), this._valueMin()]
                    }
                    if (d.values.length && d.values.length !== 2) {
                        d.values = [d.values[0], d.values[0]]
                    }
                } else {
                    this.range = a("<div></div>")
                }
                this.range.appendTo(this.element).addClass("ui-slider-range");
                if (d.range === "min" || d.range === "max") {
                    this.range.addClass("ui-slider-range-" + d.range)
                }
                this.range.addClass("ui-widget-header")
            }
            a(".ui-slider-handle", this.element).length === 0 && a("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
            if (d.values && d.values.length) {
                for (; a(".ui-slider-handle", this.element).length < d.values.length;) {
                    a("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle")
                }
            }
            this.handles = a(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all");
            this.handle = this.handles.eq(0);
            this.handles.add(this.range).filter("a").click(function (b) {
                b.preventDefault()
            }).hover(function () {
                d.disabled || a(this).addClass("ui-state-hover")
            }, function () {
                a(this).removeClass("ui-state-hover")
            }).focus(function () {
                if (d.disabled) {
                    a(this).blur()
                } else {
                    a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
                    a(this).addClass("ui-state-focus")
                }
            }).blur(function () {
                a(this).removeClass("ui-state-focus")
            });
            this.handles.each(function (b) {
                a(this).data("index.ui-slider-handle", b)
            });
            this.handles.keydown(function (b) {
                var j = true,
                    k = a(this).data("index.ui-slider-handle"),
                    m, l, n;
                if (!c.options.disabled) {
                    switch (b.keyCode) {
                    case a.ui.keyCode.HOME:
                    case a.ui.keyCode.END:
                    case a.ui.keyCode.PAGE_UP:
                    case a.ui.keyCode.PAGE_DOWN:
                    case a.ui.keyCode.UP:
                    case a.ui.keyCode.RIGHT:
                    case a.ui.keyCode.DOWN:
                    case a.ui.keyCode.LEFT:
                        j = false;
                        if (!c._keySliding) {
                            c._keySliding = true;
                            a(this).addClass("ui-state-active");
                            m = c._start(b, k);
                            if (m === false) {
                                return
                            }
                        }
                        break
                    }
                    n = c.options.step;
                    m = c.options.values && c.options.values.length ? (l = c.values(k)) : (l = c.value());
                    switch (b.keyCode) {
                    case a.ui.keyCode.HOME:
                        l = c._valueMin();
                        break;
                    case a.ui.keyCode.END:
                        l = c._valueMax();
                        break;
                    case a.ui.keyCode.PAGE_UP:
                        l = c._trimAlignValue(m + (c._valueMax() - c._valueMin()) / 5);
                        break;
                    case a.ui.keyCode.PAGE_DOWN:
                        l = c._trimAlignValue(m - (c._valueMax() - c._valueMin()) / 5);
                        break;
                    case a.ui.keyCode.UP:
                    case a.ui.keyCode.RIGHT:
                        if (m === c._valueMax()) {
                            return
                        }
                        l = c._trimAlignValue(m + n);
                        break;
                    case a.ui.keyCode.DOWN:
                    case a.ui.keyCode.LEFT:
                        if (m === c._valueMin()) {
                            return
                        }
                        l = c._trimAlignValue(m - n);
                        break
                    }
                    c._slide(b, k, l);
                    return j
                }
            }).keyup(function (b) {
                var f = a(this).data("index.ui-slider-handle");
                if (c._keySliding) {
                    c._keySliding = false;
                    c._stop(b, f);
                    c._change(b, f);
                    a(this).removeClass("ui-state-active")
                }
            });
            this._refreshValue();
            this._animateOff = false
        },
        destroy: function () {
            this.handles.remove();
            this.range.remove();
            this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
            this._mouseDestroy();
            return this
        },
        _mouseCapture: function (d) {
            var i = this.options,
                j, k, l, n, m;
            if (i.disabled) {
                return false
            }
            this.elementSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            };
            this.elementOffset = this.element.offset();
            j = this._normValueFromMouse({
                x: d.pageX,
                y: d.pageY
            });
            k = this._valueMax() - this._valueMin() + 1;
            n = this;
            this.handles.each(function (b) {
                var c = Math.abs(j - n.values(b));
                if (k > c) {
                    k = c;
                    l = a(this);
                    m = b
                }
            });
            if (i.range === true && this.values(1) === i.min) {
                m += 1;
                l = a(this.handles[m])
            }
            if (this._start(d, m) === false) {
                return false
            }
            this._mouseSliding = true;
            n._handleIndex = m;
            l.addClass("ui-state-active").focus();
            i = l.offset();
            this._clickOffset = !a(d.target).parents().andSelf().is(".ui-slider-handle") ? {
                left: 0,
                top: 0
            } : {
                left: d.pageX - i.left - l.width() / 2,
                top: d.pageY - i.top - l.height() / 2 - (parseInt(l.css("borderTopWidth"), 10) || 0) - (parseInt(l.css("borderBottomWidth"), 10) || 0) + (parseInt(l.css("marginTop"), 10) || 0)
            };
            this._slide(d, m, j);
            return this._animateOff = true
        },
        _mouseStart: function () {
            return true
        },
        _mouseDrag: function (c) {
            var d = this._normValueFromMouse({
                x: c.pageX,
                y: c.pageY
            });
            this._slide(c, this._handleIndex, d);
            return false
        },
        _mouseStop: function (b) {
            this.handles.removeClass("ui-state-active");
            this._mouseSliding = false;
            this._stop(b, this._handleIndex);
            this._change(b, this._handleIndex);
            this._clickOffset = this._handleIndex = null;
            return this._animateOff = false
        },
        _detectOrientation: function () {
            this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"
        },
        _normValueFromMouse: function (c) {
            var d;
            if (this.orientation === "horizontal") {
                d = this.elementSize.width;
                c = c.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)
            } else {
                d = this.elementSize.height;
                c = c.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)
            }
            d = c / d;
            if (d > 1) {
                d = 1
            }
            if (d < 0) {
                d = 0
            }
            if (this.orientation === "vertical") {
                d = 1 - d
            }
            c = this._valueMax() - this._valueMin();
            return this._trimAlignValue(this._valueMin() + d * c)
        },
        _start: function (d, e) {
            var f = {
                handle: this.handles[e],
                value: this.value()
            };
            if (this.options.values && this.options.values.length) {
                f.value = this.values(e);
                f.values = this.values()
            }
            return this._trigger("start", d, f)
        },
        _slide: function (d, f, g) {
            var h;
            if (this.options.values && this.options.values.length) {
                h = this.values(f ? 0 : 1);
                if (this.options.values.length === 2 && this.options.range === true && (f === 0 && g > h || f === 1 && g < h)) {
                    g = h
                }
                if (g !== this.values(f)) {
                    h = this.values();
                    h[f] = g;
                    d = this._trigger("slide", d, {
                        handle: this.handles[f],
                        value: g,
                        values: h
                    });
                    this.values(f ? 0 : 1);
                    d !== false && this.values(f, g, true)
                }
            } else {
                if (g !== this.value()) {
                    d = this._trigger("slide", d, {
                        handle: this.handles[f],
                        value: g
                    });
                    d !== false && this.value(g)
                }
            }
        },
        _stop: function (d, e) {
            var f = {
                handle: this.handles[e],
                value: this.value()
            };
            if (this.options.values && this.options.values.length) {
                f.value = this.values(e);
                f.values = this.values()
            }
            this._trigger("stop", d, f)
        },
        _change: function (d, e) {
            if (!this._keySliding && !this._mouseSliding) {
                var f = {
                    handle: this.handles[e],
                    value: this.value()
                };
                if (this.options.values && this.options.values.length) {
                    f.value = this.values(e);
                    f.values = this.values()
                }
                this._trigger("change", d, f)
            }
        },
        value: function (b) {
            if (arguments.length) {
                this.options.value = this._trimAlignValue(b);
                this._refreshValue();
                this._change(null, 0)
            }
            return this._value()
        },
        values: function (d, g) {
            var h, i, j;
            if (arguments.length > 1) {
                this.options.values[d] = this._trimAlignValue(g);
                this._refreshValue();
                this._change(null, d)
            }
            if (arguments.length) {
                if (a.isArray(arguments[0])) {
                    h = this.options.values;
                    i = arguments[0];
                    for (j = 0; j < h.length; j += 1) {
                        h[j] = this._trimAlignValue(i[j]);
                        this._change(null, j)
                    }
                    this._refreshValue()
                } else {
                    return this.options.values && this.options.values.length ? this._values(d) : this.value()
                }
            } else {
                return this._values()
            }
        },
        _setOption: function (d, f) {
            var g, h = 0;
            if (a.isArray(this.options.values)) {
                h = this.options.values.length
            }
            a.Widget.prototype._setOption.apply(this, arguments);
            switch (d) {
            case "disabled":
                if (f) {
                    this.handles.filter(".ui-state-focus").blur();
                    this.handles.removeClass("ui-state-hover");
                    this.handles.attr("disabled", "disabled");
                    this.element.addClass("ui-disabled")
                } else {
                    this.handles.removeAttr("disabled");
                    this.element.removeClass("ui-disabled")
                }
                break;
            case "orientation":
                this._detectOrientation();
                this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
                this._refreshValue();
                break;
            case "value":
                this._animateOff = true;
                this._refreshValue();
                this._change(null, 0);
                this._animateOff = false;
                break;
            case "values":
                this._animateOff = true;
                this._refreshValue();
                for (g = 0; g < h; g += 1) {
                    this._change(null, g)
                }
                this._animateOff = false;
                break
            }
        },
        _value: function () {
            var b = this.options.value;
            return b = this._trimAlignValue(b)
        },
        _values: function (d) {
            var e, f;
            if (arguments.length) {
                e = this.options.values[d];
                return e = this._trimAlignValue(e)
            } else {
                e = this.options.values.slice();
                for (f = 0; f < e.length; f += 1) {
                    e[f] = this._trimAlignValue(e[f])
                }
                return e
            }
        },
        _trimAlignValue: function (d) {
            if (d < this._valueMin()) {
                return this._valueMin()
            }
            if (d > this._valueMax()) {
                return this._valueMax()
            }
            var e = this.options.step > 0 ? this.options.step : 1,
                f = d % e;
            d = d - f;
            if (Math.abs(f) * 2 >= e) {
                d += f > 0 ? e : -e
            }
            return parseFloat(d.toFixed(5))
        },
        _valueMin: function () {
            return this.options.min
        },
        _valueMax: function () {
            return this.options.max
        },
        _refreshValue: function () {
            var d = this.options.range,
                k = this.options,
                m = this,
                n = !this._animateOff ? k.animate : false,
                o, q = {},
                p, r, s, u;
            if (this.options.values && this.options.values.length) {
                this.handles.each(function (b) {
                    o = (m.values(b) - m._valueMin()) / (m._valueMax() - m._valueMin()) * 100;
                    q[m.orientation === "horizontal" ? "left" : "bottom"] = o + "%";
                    a(this).stop(1, 1)[n ? "animate" : "css"](q, k.animate);
                    if (m.options.range === true) {
                        if (m.orientation === "horizontal") {
                            if (b === 0) {
                                m.range.stop(1, 1)[n ? "animate" : "css"]({
                                    left: o + "%"
                                }, k.animate)
                            }
                            if (b === 1) {
                                m.range[n ? "animate" : "css"]({
                                    width: o - p + "%"
                                }, {
                                    queue: false,
                                    duration: k.animate
                                })
                            }
                        } else {
                            if (b === 0) {
                                m.range.stop(1, 1)[n ? "animate" : "css"]({
                                    bottom: o + "%"
                                }, k.animate)
                            }
                            if (b === 1) {
                                m.range[n ? "animate" : "css"]({
                                    height: o - p + "%"
                                }, {
                                    queue: false,
                                    duration: k.animate
                                })
                            }
                        }
                    }
                    p = o
                })
            } else {
                r = this.value();
                s = this._valueMin();
                u = this._valueMax();
                o = u !== s ? (r - s) / (u - s) * 100 : 0;
                q[m.orientation === "horizontal" ? "left" : "bottom"] = o + "%";
                this.handle.stop(1, 1)[n ? "animate" : "css"](q, k.animate);
                if (d === "min" && this.orientation === "horizontal") {
                    this.range.stop(1, 1)[n ? "animate" : "css"]({
                        width: o + "%"
                    }, k.animate)
                }
                if (d === "max" && this.orientation === "horizontal") {
                    this.range[n ? "animate" : "css"]({
                        width: 100 - o + "%"
                    }, {
                        queue: false,
                        duration: k.animate
                    })
                }
                if (d === "min" && this.orientation === "vertical") {
                    this.range.stop(1, 1)[n ? "animate" : "css"]({
                        height: o + "%"
                    }, k.animate)
                }
                if (d === "max" && this.orientation === "vertical") {
                    this.range[n ? "animate" : "css"]({
                        height: 100 - o + "%"
                    }, {
                        queue: false,
                        duration: k.animate
                    })
                }
            }
        }
    });
    a.extend(a.ui.slider, {
        version: "1.8.5"
    })
})(jQuery);
(function (a, b) {
    function c() {
        return ++e
    }
    function f() {
        return ++g
    }
    var e = 0,
        g = 0;
    a.widget("ui.tabs", {
        options: {
            add: null,
            ajaxOptions: null,
            cache: false,
            cookie: null,
            collapsible: false,
            disable: null,
            disabled: [],
            enable: null,
            event: "click",
            fx: null,
            idPrefix: "ui-tabs-",
            load: null,
            panelTemplate: "<div></div>",
            remove: null,
            select: null,
            show: null,
            spinner: "<em>Loading&#8230;</em>",
            tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
        },
        _create: function () {
            this._tabify(true)
        },
        _setOption: function (d, h) {
            if (d == "selected") {
                this.options.collapsible && h == this.options.selected || this.select(h)
            } else {
                this.options[d] = h;
                this._tabify()
            }
        },
        _tabId: function (d) {
            return d.title && d.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + c()
        },
        _sanitizeSelector: function (d) {
            return d.replace(/:/g, "\\:")
        },
        _cookie: function () {
            var d = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + f());
            return a.cookie.apply(null, [d].concat(a.makeArray(arguments)))
        },
        _ui: function (d, h) {
            return {
                tab: d,
                panel: h,
                index: this.anchors.index(d)
            }
        },
        _cleanup: function () {
            this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () {
                var d = a(this);
                d.html(d.data("label.tabs")).removeData("label.tabs")
            })
        },
        _tabify: function (d) {
            function p(j, h) {
                j.css("display", "");
                !a.support.opacity && h.opacity && j[0].style.removeAttribute("filter")
            }
            var i = this,
                l = this.options,
                q = /^#.+/;
            this.list = this.element.find("ol,ul").eq(0);
            this.lis = a(" > li:has(a[href])", this.list);
            this.anchors = this.lis.map(function () {
                return a("a", this)[0]
            });
            this.panels = a([]);
            this.anchors.each(function (j, h) {
                var k = a(h).attr("href"),
                    m = k.split("#")[0],
                    n;
                if (m && (m === location.toString().split("#")[0] || (n = a("base")[0]) && m === n.href)) {
                    k = h.hash;
                    h.href = k
                }
                if (q.test(k)) {
                    i.panels = i.panels.add(i._sanitizeSelector(k))
                } else {
                    if (k && k !== "#") {
                        a.data(h, "href.tabs", k);
                        a.data(h, "load.tabs", k.replace(/#.*$/, ""));
                        k = i._tabId(h);
                        h.href = "#" + k;
                        h = a("#" + k);
                        if (!h.length) {
                            h = a(l.panelTemplate).attr("id", k).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[j - 1] || i.list);
                            h.data("destroy.tabs", true)
                        }
                        i.panels = i.panels.add(h)
                    } else {
                        l.disabled.push(j)
                    }
                }
            });
            if (d) {
                this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
                this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
                this.lis.addClass("ui-state-default ui-corner-top");
                this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");
                if (l.selected === b) {
                    location.hash && this.anchors.each(function (j, h) {
                        if (h.hash == location.hash) {
                            l.selected = j;
                            return false
                        }
                    });
                    if (typeof l.selected !== "number" && l.cookie) {
                        l.selected = parseInt(i._cookie(), 10)
                    }
                    if (typeof l.selected !== "number" && this.lis.filter(".ui-tabs-selected").length) {
                        l.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"))
                    }
                    l.selected = l.selected || (this.lis.length ? 0 : -1)
                } else {
                    if (l.selected === null) {
                        l.selected = -1
                    }
                }
                l.selected = l.selected >= 0 && this.anchors[l.selected] || l.selected < 0 ? l.selected : 0;
                l.disabled = a.unique(l.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"), function (h) {
                    return i.lis.index(h)
                }))).sort();
                a.inArray(l.selected, l.disabled) != -1 && l.disabled.splice(a.inArray(l.selected, l.disabled), 1);
                this.panels.addClass("ui-tabs-hide");
                this.lis.removeClass("ui-tabs-selected ui-state-active");
                if (l.selected >= 0 && this.anchors.length) {
                    this.panels.eq(l.selected).removeClass("ui-tabs-hide");
                    this.lis.eq(l.selected).addClass("ui-tabs-selected ui-state-active");
                    i.element.queue("tabs", function () {
                        i._trigger("show", null, i._ui(i.anchors[l.selected], i.panels[l.selected]))
                    });
                    this.load(l.selected)
                }
                a(window).bind("unload", function () {
                    i.lis.add(i.anchors).unbind(".tabs");
                    i.lis = i.anchors = i.panels = null
                })
            } else {
                l.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"))
            }
            this.element[l.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible");
            l.cookie && this._cookie(l.selected, l.cookie);
            d = 0;
            for (var u; u = this.lis[d]; d++) {
                a(u)[a.inArray(d, l.disabled) != -1 && !a(u).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled")
            }
            l.cache === false && this.anchors.removeData("cache.tabs");
            this.lis.add(this.anchors).unbind(".tabs");
            if (l.event !== "mouseover") {
                var v = function (j, h) {
                        h.is(":not(.ui-state-disabled)") && h.addClass("ui-state-" + j)
                    },
                    x = function (j, h) {
                        h.removeClass("ui-state-" + j)
                    };
                this.lis.bind("mouseover.tabs", function () {
                    v("hover", a(this))
                });
                this.lis.bind("mouseout.tabs", function () {
                    x("hover", a(this))
                });
                this.anchors.bind("focus.tabs", function () {
                    v("focus", a(this).closest("li"))
                });
                this.anchors.bind("blur.tabs", function () {
                    x("focus", a(this).closest("li"))
                })
            }
            var w, y;
            if (l.fx) {
                if (a.isArray(l.fx)) {
                    w = l.fx[0];
                    y = l.fx[1]
                } else {
                    w = y = l.fx
                }
            }
            var z = y ?
            function (j, h) {
                a(j).closest("li").addClass("ui-tabs-selected ui-state-active");
                h.hide().removeClass("ui-tabs-hide").animate(y, y.duration || "normal", function () {
                    p(h, y);
                    i._trigger("show", null, i._ui(j, h[0]))
                })
            } : function (j, h) {
                a(j).closest("li").addClass("ui-tabs-selected ui-state-active");
                h.removeClass("ui-tabs-hide");
                i._trigger("show", null, i._ui(j, h[0]))
            }, A = w ?
            function (j, h) {
                h.animate(w, w.duration || "normal", function () {
                    i.lis.removeClass("ui-tabs-selected ui-state-active");
                    h.addClass("ui-tabs-hide");
                    p(h, w);
                    i.element.dequeue("tabs")
                })
            } : function (j, h) {
                i.lis.removeClass("ui-tabs-selected ui-state-active");
                h.addClass("ui-tabs-hide");
                i.element.dequeue("tabs")
            };
            this.anchors.bind(l.event + ".tabs", function () {
                var j = this,
                    h = a(j).closest("li"),
                    k = i.panels.filter(":not(.ui-tabs-hide)"),
                    m = a(i._sanitizeSelector(j.hash));
                if (h.hasClass("ui-tabs-selected") && !l.collapsible || h.hasClass("ui-state-disabled") || h.hasClass("ui-state-processing") || i.panels.filter(":animated").length || i._trigger("select", null, i._ui(this, m[0])) === false) {
                    this.blur();
                    return false
                }
                l.selected = i.anchors.index(this);
                i.abort();
                if (l.collapsible) {
                    if (h.hasClass("ui-tabs-selected")) {
                        l.selected = -1;
                        l.cookie && i._cookie(l.selected, l.cookie);
                        i.element.queue("tabs", function () {
                            A(j, k)
                        }).dequeue("tabs");
                        this.blur();
                        return false
                    } else {
                        if (!k.length) {
                            l.cookie && i._cookie(l.selected, l.cookie);
                            i.element.queue("tabs", function () {
                                z(j, m)
                            });
                            i.load(i.anchors.index(this));
                            this.blur();
                            return false
                        }
                    }
                }
                l.cookie && i._cookie(l.selected, l.cookie);
                if (m.length) {
                    k.length && i.element.queue("tabs", function () {
                        A(j, k)
                    });
                    i.element.queue("tabs", function () {
                        z(j, m)
                    });
                    i.load(i.anchors.index(this))
                } else {
                    throw "jQuery UI Tabs: Mismatching fragment identifier."
                }
                a.browser.msie && this.blur()
            });
            this.anchors.bind("click.tabs", function () {
                return false
            })
        },
        _getIndex: function (d) {
            if (typeof d == "string") {
                d = this.anchors.index(this.anchors.filter("[href$=" + d + "]"))
            }
            return d
        },
        destroy: function () {
            var d = this.options;
            this.abort();
            this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");
            this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
            this.anchors.each(function () {
                var i = a.data(this, "href.tabs");
                if (i) {
                    this.href = i
                }
                var h = a(this).unbind(".tabs");
                a.each(["href", "load", "cache"], function (j, k) {
                    h.removeData(k + ".tabs")
                })
            });
            this.lis.unbind(".tabs").add(this.panels).each(function () {
                a.data(this, "destroy.tabs") ? a(this).remove() : a(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")
            });
            d.cookie && this._cookie(null, d.cookie);
            return this
        },
        add: function (d, l, i) {
            if (i === b) {
                i = this.anchors.length
            }
            var k = this,
                m = this.options;
            l = a(m.tabTemplate.replace(/#\{href\}/g, d).replace(/#\{label\}/g, l));
            d = !d.indexOf("#") ? d.replace("#", "") : this._tabId(a("a", l)[0]);
            l.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true);
            var n = a("#" + d);
            n.length || (n = a(m.panelTemplate).attr("id", d).data("destroy.tabs", true));
            n.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
            if (i >= this.lis.length) {
                l.appendTo(this.list);
                n.appendTo(this.list[0].parentNode)
            } else {
                l.insertBefore(this.lis[i]);
                n.insertBefore(this.panels[i])
            }
            m.disabled = a.map(m.disabled, function (h) {
                return h >= i ? ++h : h
            });
            this._tabify();
            if (this.anchors.length == 1) {
                m.selected = 0;
                l.addClass("ui-tabs-selected ui-state-active");
                n.removeClass("ui-tabs-hide");
                this.element.queue("tabs", function () {
                    k._trigger("show", null, k._ui(k.anchors[0], k.panels[0]))
                });
                this.load(0)
            }
            this._trigger("add", null, this._ui(this.anchors[i], this.panels[i]));
            return this
        },
        remove: function (d) {
            d = this._getIndex(d);
            var j = this.options,
                h = this.lis.eq(d).remove(),
                i = this.panels.eq(d).remove();
            if (h.hasClass("ui-tabs-selected") && this.anchors.length > 1) {
                this.select(d + (d + 1 < this.anchors.length ? 1 : -1))
            }
            j.disabled = a.map(a.grep(j.disabled, function (k) {
                return k != d
            }), function (k) {
                return k >= d ? --k : k
            });
            this._tabify();
            this._trigger("remove", null, this._ui(h.find("a")[0], i[0]));
            return this
        },
        enable: function (d) {
            d = this._getIndex(d);
            var h = this.options;
            if (a.inArray(d, h.disabled) != -1) {
                this.lis.eq(d).removeClass("ui-state-disabled");
                h.disabled = a.grep(h.disabled, function (i) {
                    return i != d
                });
                this._trigger("enable", null, this._ui(this.anchors[d], this.panels[d]));
                return this
            }
        },
        disable: function (d) {
            d = this._getIndex(d);
            var h = this.options;
            if (d != h.selected) {
                this.lis.eq(d).addClass("ui-state-disabled");
                h.disabled.push(d);
                h.disabled.sort();
                this._trigger("disable", null, this._ui(this.anchors[d], this.panels[d]))
            }
            return this
        },
        select: function (d) {
            d = this._getIndex(d);
            if (d == -1) {
                if (this.options.collapsible && this.options.selected != -1) {
                    d = this.options.selected
                } else {
                    return this
                }
            }
            this.anchors.eq(d).trigger(this.options.event + ".tabs");
            return this
        },
        load: function (d) {
            d = this._getIndex(d);
            var l = this,
                i = this.options,
                k = this.anchors.eq(d)[0],
                m = a.data(k, "load.tabs");
            this.abort();
            if (!m || this.element.queue("tabs").length !== 0 && a.data(k, "cache.tabs")) {
                this.element.dequeue("tabs")
            } else {
                this.lis.eq(d).addClass("ui-state-processing");
                if (i.spinner) {
                    var n = a("span", k);
                    n.data("label.tabs", n.html()).html(i.spinner)
                }
                this.xhr = a.ajax(a.extend({}, i.ajaxOptions, {
                    url: m,
                    success: function (h, o) {
                        a(l._sanitizeSelector(k.hash)).html(h);
                        l._cleanup();
                        i.cache && a.data(k, "cache.tabs", true);
                        l._trigger("load", null, l._ui(l.anchors[d], l.panels[d]));
                        try {
                            i.ajaxOptions.success(h, o)
                        } catch (j) {}
                    },
                    error: function (h, o) {
                        l._cleanup();
                        l._trigger("load", null, l._ui(l.anchors[d], l.panels[d]));
                        try {
                            i.ajaxOptions.error(h, o, d, k)
                        } catch (j) {}
                    }
                }));
                l.element.dequeue("tabs");
                return this
            }
        },
        abort: function () {
            this.element.queue([]);
            this.panels.stop(false, true);
            this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
            if (this.xhr) {
                this.xhr.abort();
                delete this.xhr
            }
            this._cleanup();
            return this
        },
        url: function (d, h) {
            this.anchors.eq(d).removeData("cache.tabs").data("load.tabs", h);
            return this
        },
        length: function () {
            return this.anchors.length
        }
    });
    a.extend(a.ui.tabs, {
        version: "1.8.5"
    });
    a.extend(a.ui.tabs.prototype, {
        rotation: null,
        rotate: function (d, k) {
            var i = this,
                j = this.options,
                l = i._rotate || (i._rotate = function (h) {
                    clearTimeout(i.rotation);
                    i.rotation = setTimeout(function () {
                        var m = j.selected;
                        i.select(++m < i.anchors.length ? m : 0)
                    }, d);
                    h && h.stopPropagation()
                });
            k = i._unrotate || (i._unrotate = !k ?
            function (h) {
                h.clientX && i.rotate(null)
            } : function () {
                t = j.selected;
                l()
            });
            if (d) {
                this.element.bind("tabsshow", l);
                this.anchors.bind(j.event + ".tabs", k);
                l()
            } else {
                clearTimeout(i.rotation);
                this.element.unbind("tabsshow", l);
                this.anchors.unbind(j.event + ".tabs", k);
                delete this._rotate;
                delete this._unrotate
            }
            return this
        }
    })
})(jQuery);
(function (d, G) {
    function L() {
        this.debug = false;
        this._curInst = null;
        this._keyEvent = false;
        this._disabledInputs = [];
        this._inDialog = this._datepickerShowing = false;
        this._mainDivId = "ui-datepicker-div";
        this._inlineClass = "ui-datepicker-inline";
        this._appendClass = "ui-datepicker-append";
        this._triggerClass = "ui-datepicker-trigger";
        this._dialogClass = "ui-datepicker-dialog";
        this._disableClass = "ui-datepicker-disabled";
        this._unselectableClass = "ui-datepicker-unselectable";
        this._currentClass = "ui-datepicker-current-day";
        this._dayOverClass = "ui-datepicker-days-cell-over";
        this.regional = [];
        this.regional[""] = {
            closeText: "Done",
            prevText: "Prev",
            nextText: "Next",
            currentText: "Today",
            monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
            monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
            dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
            dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
            dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
            weekHeader: "Wk",
            dateFormat: "mm/dd/yy",
            firstDay: 0,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ""
        };
        this._defaults = {
            showOn: "focus",
            showAnim: "fadeIn",
            showOptions: {},
            defaultDate: null,
            appendText: "",
            buttonText: "...",
            buttonImage: "",
            buttonImageOnly: false,
            hideIfNoPrevNext: false,
            navigationAsDateFormat: false,
            gotoCurrent: false,
            changeMonth: false,
            changeYear: false,
            yearRange: "c-10:c+10",
            showOtherMonths: false,
            selectOtherMonths: false,
            showWeek: false,
            calculateWeek: this.iso8601Week,
            shortYearCutoff: "+10",
            minDate: null,
            maxDate: null,
            duration: "fast",
            beforeShowDay: null,
            beforeShow: null,
            onSelect: null,
            onChangeMonthYear: null,
            onClose: null,
            numberOfMonths: 1,
            showCurrentAtPos: 0,
            stepMonths: 1,
            stepBigMonths: 12,
            altField: "",
            altFormat: "",
            constrainInput: true,
            showButtonPanel: false,
            autoSize: false
        };
        d.extend(this._defaults, this.regional[""]);
        this.dpDiv = d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')
    }
    function E(a, b) {
        d.extend(a, b);
        for (var c in b) {
            if (b[c] == null || b[c] == G) {
                a[c] = b[c]
            }
        }
        return a
    }
    d.extend(d.ui, {
        datepicker: {
            version: "1.8.5"
        }
    });
    var y = (new Date).getTime();
    d.extend(L.prototype, {
        markerClassName: "hasDatepicker",
        log: function () {
            this.debug && console.log.apply("", arguments)
        },
        _widgetDatepicker: function () {
            return this.dpDiv
        },
        setDefaults: function (a) {
            E(this._defaults, a || {});
            return this
        },
        _attachDatepicker: function (a, b) {
            var c = null;
            for (var e in this._defaults) {
                var f = a.getAttribute("date:" + e);
                if (f) {
                    c = c || {};
                    try {
                        c[e] = eval(f)
                    } catch (h) {
                        c[e] = f
                    }
                }
            }
            e = a.nodeName.toLowerCase();
            f = e == "div" || e == "span";
            if (!a.id) {
                this.uuid += 1;
                a.id = "dp" + this.uuid
            }
            var i = this._newInst(d(a), f);
            i.settings = d.extend({}, b || {}, c || {});
            if (e == "input") {
                this._connectDatepicker(a, i)
            } else {
                f && this._inlineDatepicker(a, i)
            }
        },
        _newInst: function (a, b) {
            return {
                id: a[0].id.replace(/([^A-Za-z0-9_])/g, "\\\\$1"),
                input: a,
                selectedDay: 0,
                selectedMonth: 0,
                selectedYear: 0,
                drawMonth: 0,
                drawYear: 0,
                inline: b,
                dpDiv: !b ? this.dpDiv : d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')
            }
        },
        _connectDatepicker: function (a, b) {
            var c = d(a);
            b.append = d([]);
            b.trigger = d([]);
            if (!c.hasClass(this.markerClassName)) {
                this._attachments(c, b);
                c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (e, f, h) {
                    b.settings[f] = h
                }).bind("getData.datepicker", function (e, f) {
                    return this._get(b, f)
                });
                this._autoSize(b);
                d.data(a, "datepicker", b)
            }
        },
        _attachments: function (a, b) {
            var c = this._get(b, "appendText"),
                e = this._get(b, "isRTL");
            b.append && b.append.remove();
            if (c) {
                b.append = d('<span class="' + this._appendClass + '">' + c + "</span>");
                a[e ? "before" : "after"](b.append)
            }
            a.unbind("focus", this._showDatepicker);
            b.trigger && b.trigger.remove();
            c = this._get(b, "showOn");
            if (c == "focus" || c == "both") {
                a.focus(this._showDatepicker)
            }
            if (c == "button" || c == "both") {
                c = this._get(b, "buttonText");
                var f = this._get(b, "buttonImage");
                b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({
                    src: f,
                    alt: c,
                    title: c
                }) : d('<button type="button"></button>').addClass(this._triggerClass).html(f == "" ? c : d("<img/>").attr({
                    src: f,
                    alt: c,
                    title: c
                })));
                a[e ? "before" : "after"](b.trigger);
                b.trigger.click(function () {
                    d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]);
                    return false
                })
            }
        },
        _autoSize: function (a) {
            if (this._get(a, "autoSize") && !a.inline) {
                var b = new Date(2009, 11, 20),
                    c = this._get(a, "dateFormat");
                if (c.match(/[DM]/)) {
                    var e = function (f) {
                            for (var h = 0, i = 0, g = 0; g < f.length; g++) {
                                if (f[g].length > h) {
                                    h = f[g].length;
                                    i = g
                                }
                            }
                            return i
                        };
                    b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort")));
                    b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay())
                }
                a.input.attr("size", this._formatDate(a, b).length)
            }
        },
        _inlineDatepicker: function (a, b) {
            var c = d(a);
            if (!c.hasClass(this.markerClassName)) {
                c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function (e, f, h) {
                    b.settings[f] = h
                }).bind("getData.datepicker", function (e, f) {
                    return this._get(b, f)
                });
                d.data(a, "datepicker", b);
                this._setDate(b, this._getDefaultDate(b), true);
                this._updateDatepicker(b);
                this._updateAlternate(b)
            }
        },
        _dialogDatepicker: function (a, b, c, e, f) {
            a = this._dialogInst;
            if (!a) {
                this.uuid += 1;
                this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
                this._dialogInput.keydown(this._doKeyDown);
                d("body").append(this._dialogInput);
                a = this._dialogInst = this._newInst(this._dialogInput, false);
                a.settings = {};
                d.data(this._dialogInput[0], "datepicker", a)
            }
            E(a.settings, e || {});
            b = b && b.constructor == Date ? this._formatDate(a, b) : b;
            this._dialogInput.val(b);
            this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null;
            if (!this._pos) {
                this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]
            }
            this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px");
            a.settings.onSelect = c;
            this._inDialog = true;
            this.dpDiv.addClass(this._dialogClass);
            this._showDatepicker(this._dialogInput[0]);
            d.blockUI && d.blockUI(this.dpDiv);
            d.data(this._dialogInput[0], "datepicker", a);
            return this
        },
        _destroyDatepicker: function (a) {
            var b = d(a),
                c = d.data(a, "datepicker");
            if (b.hasClass(this.markerClassName)) {
                var e = a.nodeName.toLowerCase();
                d.removeData(a, "datepicker");
                if (e == "input") {
                    c.append.remove();
                    c.trigger.remove();
                    b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)
                } else {
                    if (e == "div" || e == "span") {
                        b.removeClass(this.markerClassName).empty()
                    }
                }
            }
        },
        _enableDatepicker: function (a) {
            var b = d(a),
                c = d.data(a, "datepicker");
            if (b.hasClass(this.markerClassName)) {
                var e = a.nodeName.toLowerCase();
                if (e == "input") {
                    a.disabled = false;
                    c.trigger.filter("button").each(function () {
                        this.disabled = false
                    }).end().filter("img").css({
                        opacity: "1.0",
                        cursor: ""
                    })
                } else {
                    if (e == "div" || e == "span") {
                        b.children("." + this._inlineClass).children().removeClass("ui-state-disabled")
                    }
                }
                this._disabledInputs = d.map(this._disabledInputs, function (f) {
                    return f == a ? null : f
                })
            }
        },
        _disableDatepicker: function (a) {
            var b = d(a),
                c = d.data(a, "datepicker");
            if (b.hasClass(this.markerClassName)) {
                var e = a.nodeName.toLowerCase();
                if (e == "input") {
                    a.disabled = true;
                    c.trigger.filter("button").each(function () {
                        this.disabled = true
                    }).end().filter("img").css({
                        opacity: "0.5",
                        cursor: "default"
                    })
                } else {
                    if (e == "div" || e == "span") {
                        b.children("." + this._inlineClass).children().addClass("ui-state-disabled")
                    }
                }
                this._disabledInputs = d.map(this._disabledInputs, function (f) {
                    return f == a ? null : f
                });
                this._disabledInputs[this._disabledInputs.length] = a
            }
        },
        _isDisabledDatepicker: function (a) {
            if (!a) {
                return false
            }
            for (var b = 0; b < this._disabledInputs.length; b++) {
                if (this._disabledInputs[b] == a) {
                    return true
                }
            }
            return false
        },
        _getInst: function (a) {
            try {
                return d.data(a, "datepicker")
            } catch (b) {
                throw "Missing instance data for this datepicker"
            }
        },
        _optionDatepicker: function (a, b, c) {
            var e = this._getInst(a);
            if (arguments.length == 2 && typeof b == "string") {
                return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ? d.extend({}, e.settings) : this._get(e, b) : null
            }
            var f = b || {};
            if (typeof b == "string") {
                f = {};
                f[b] = c
            }
            if (e) {
                this._curInst == e && this._hideDatepicker();
                var h = this._getDateDatepicker(a, true);
                E(e.settings, f);
                this._attachments(d(a), e);
                this._autoSize(e);
                this._setDateDatepicker(a, h);
                this._updateDatepicker(e)
            }
        },
        _changeDatepicker: function (a, b, c) {
            this._optionDatepicker(a, b, c)
        },
        _refreshDatepicker: function (a) {
            (a = this._getInst(a)) && this._updateDatepicker(a)
        },
        _setDateDatepicker: function (a, b) {
            if (a = this._getInst(a)) {
                this._setDate(a, b);
                this._updateDatepicker(a);
                this._updateAlternate(a)
            }
        },
        _getDateDatepicker: function (a, b) {
            (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b);
            return a ? this._getDate(a) : null
        },
        _doKeyDown: function (a) {
            var b = d.datepicker._getInst(a.target),
                c = true,
                e = b.dpDiv.is(".ui-datepicker-rtl");
            b._keyEvent = true;
            if (d.datepicker._datepickerShowing) {
                switch (a.keyCode) {
                case 9:
                    d.datepicker._hideDatepicker();
                    c = false;
                    break;
                case 13:
                    c = d("td." + d.datepicker._dayOverClass, b.dpDiv).add(d("td." + d.datepicker._currentClass, b.dpDiv));
                    c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker();
                    return false;
                case 27:
                    d.datepicker._hideDatepicker();
                    break;
                case 33:
                    d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M");
                    break;
                case 34:
                    d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M");
                    break;
                case 35:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._clearDate(a.target)
                    }
                    c = a.ctrlKey || a.metaKey;
                    break;
                case 36:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._gotoToday(a.target)
                    }
                    c = a.ctrlKey || a.metaKey;
                    break;
                case 37:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._adjustDate(a.target, e ? +1 : -1, "D")
                    }
                    c = a.ctrlKey || a.metaKey;
                    if (a.originalEvent.altKey) {
                        d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M")
                    }
                    break;
                case 38:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._adjustDate(a.target, -7, "D")
                    }
                    c = a.ctrlKey || a.metaKey;
                    break;
                case 39:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._adjustDate(a.target, e ? -1 : +1, "D")
                    }
                    c = a.ctrlKey || a.metaKey;
                    if (a.originalEvent.altKey) {
                        d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M")
                    }
                    break;
                case 40:
                    if (a.ctrlKey || a.metaKey) {
                        d.datepicker._adjustDate(a.target, +7, "D")
                    }
                    c = a.ctrlKey || a.metaKey;
                    break;
                default:
                    c = false
                }
            } else {
                if (a.keyCode == 36 && a.ctrlKey) {
                    d.datepicker._showDatepicker(this)
                } else {
                    c = false
                }
            }
            if (c) {
                a.preventDefault();
                a.stopPropagation()
            }
        },
        _doKeyPress: function (a) {
            var b = d.datepicker._getInst(a.target);
            if (d.datepicker._get(b, "constrainInput")) {
                b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat"));
                var c = String.fromCharCode(a.charCode == G ? a.keyCode : a.charCode);
                return a.ctrlKey || c < " " || !b || b.indexOf(c) > -1
            }
        },
        _doKeyUp: function (a) {
            a = d.datepicker._getInst(a.target);
            if (a.input.val() != a.lastVal) {
                try {
                    if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) {
                        d.datepicker._setDateFromField(a);
                        d.datepicker._updateAlternate(a);
                        d.datepicker._updateDatepicker(a)
                    }
                } catch (b) {
                    d.datepicker.log(b)
                }
            }
            return true
        },
        _showDatepicker: function (a) {
            a = a.target || a;
            if (a.nodeName.toLowerCase() != "input") {
                a = d("input", a.parentNode)[0]
            }
            if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) {
                var b = d.datepicker._getInst(a);
                d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true);
                var c = d.datepicker._get(b, "beforeShow");
                E(b.settings, c ? c.apply(a, [a, b]) : {});
                b.lastVal = null;
                d.datepicker._lastInput = a;
                d.datepicker._setDateFromField(b);
                if (d.datepicker._inDialog) {
                    a.value = ""
                }
                if (!d.datepicker._pos) {
                    d.datepicker._pos = d.datepicker._findPos(a);
                    d.datepicker._pos[1] += a.offsetHeight
                }
                var e = false;
                d(a).parents().each(function () {
                    e |= d(this).css("position") == "fixed";
                    return !e
                });
                if (e && d.browser.opera) {
                    d.datepicker._pos[0] -= document.documentElement.scrollLeft;
                    d.datepicker._pos[1] -= document.documentElement.scrollTop
                }
                c = {
                    left: d.datepicker._pos[0],
                    top: d.datepicker._pos[1]
                };
                d.datepicker._pos = null;
                b.dpDiv.css({
                    position: "absolute",
                    display: "block",
                    top: "-1000px"
                });
                d.datepicker._updateDatepicker(b);
                c = d.datepicker._checkOffset(b, c, e);
                b.dpDiv.css({
                    position: d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute",
                    display: "none",
                    left: c.left + "px",
                    top: c.top + "px"
                });
                if (!b.inline) {
                    c = d.datepicker._get(b, "showAnim");
                    var f = d.datepicker._get(b, "duration"),
                        h = function () {
                            d.datepicker._datepickerShowing = true;
                            var i = d.datepicker._getBorders(b.dpDiv);
                            b.dpDiv.find("iframe.ui-datepicker-cover").css({
                                left: -i[0],
                                top: -i[1],
                                width: b.dpDiv.outerWidth(),
                                height: b.dpDiv.outerHeight()
                            })
                        };
                    b.dpDiv.zIndex(d(a).zIndex() + 1);
                    d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h);
                    if (!c || !f) {
                        h()
                    }
                    b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus();
                    d.datepicker._curInst = b
                }
            }
        },
        _updateDatepicker: function (a) {
            var b = this,
                c = d.datepicker._getBorders(a.dpDiv);
            a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({
                left: -c[0],
                top: -c[1],
                width: a.dpDiv.outerWidth(),
                height: a.dpDiv.outerHeight()
            }).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function () {
                d(this).removeClass("ui-state-hover");
                this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover");
                this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover")
            }).bind("mouseover", function () {
                if (!b._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) {
                    d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
                    d(this).addClass("ui-state-hover");
                    this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover");
                    this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover")
                }
            }).end().find("." + this._dayOverClass + " a").trigger("mouseover").end();
            c = this._getNumberOfMonths(a);
            var e = c[1];
            e > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", 17 * e + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
            a.dpDiv[(c[0] != 1 || c[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi");
            a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
            a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input.focus()
        },
        _getBorders: function (a) {
            var b = function (c) {
                    return {
                        thin: 1,
                        medium: 2,
                        thick: 3
                    }[c] || c
                };
            return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))]
        },
        _checkOffset: function (a, b, c) {
            var e = a.dpDiv.outerWidth(),
                f = a.dpDiv.outerHeight(),
                h = a.input ? a.input.outerWidth() : 0,
                i = a.input ? a.input.outerHeight() : 0,
                g = document.documentElement.clientWidth + d(document).scrollLeft(),
                k = document.documentElement.clientHeight + d(document).scrollTop();
            b.left -= this._get(a, "isRTL") ? e - h : 0;
            b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0;
            b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0;
            b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0);
            b.top -= Math.min(b.top, b.top + f > k && k > f ? Math.abs(f + i) : 0);
            return b
        },
        _findPos: function (a) {
            for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1);) {
                a = a[b ? "previousSibling" : "nextSibling"]
            }
            a = d(a).offset();
            return [a.left, a.top]
        },
        _hideDatepicker: function (a) {
            var b = this._curInst;
            if (!(!b || a && b != d.data(a, "datepicker"))) {
                if (this._datepickerShowing) {
                    a = this._get(b, "showAnim");
                    var c = this._get(b, "duration"),
                        e = function () {
                            d.datepicker._tidyDialog(b);
                            this._curInst = null
                        };
                    d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e);
                    a || e();
                    if (a = this._get(b, "onClose")) {
                        a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b])
                    }
                    this._datepickerShowing = false;
                    this._lastInput = null;
                    if (this._inDialog) {
                        this._dialogInput.css({
                            position: "absolute",
                            left: "0",
                            top: "-100px"
                        });
                        if (d.blockUI) {
                            d.unblockUI();
                            d("body").append(this.dpDiv)
                        }
                    }
                    this._inDialog = false
                }
            }
        },
        _tidyDialog: function (a) {
            a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
        },
        _checkExternalClick: function (a) {
            if (d.datepicker._curInst) {
                a = d(a.target);
                a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker()
            }
        },
        _adjustDate: function (a, b, c) {
            a = d(a);
            var e = this._getInst(a[0]);
            if (!this._isDisabledDatepicker(a[0])) {
                this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c);
                this._updateDatepicker(e)
            }
        },
        _gotoToday: function (a) {
            a = d(a);
            var b = this._getInst(a[0]);
            if (this._get(b, "gotoCurrent") && b.currentDay) {
                b.selectedDay = b.currentDay;
                b.drawMonth = b.selectedMonth = b.currentMonth;
                b.drawYear = b.selectedYear = b.currentYear
            } else {
                var c = new Date;
                b.selectedDay = c.getDate();
                b.drawMonth = b.selectedMonth = c.getMonth();
                b.drawYear = b.selectedYear = c.getFullYear()
            }
            this._notifyChange(b);
            this._adjustDate(a)
        },
        _selectMonthYear: function (a, b, c) {
            a = d(a);
            var e = this._getInst(a[0]);
            e._selectingMonthYear = false;
            e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10);
            this._notifyChange(e);
            this._adjustDate(a)
        },
        _clickMonthYear: function (a) {
            var b = this._getInst(d(a)[0]);
            b.input && b._selectingMonthYear && setTimeout(function () {
                b.input.focus()
            }, 0);
            b._selectingMonthYear = !b._selectingMonthYear
        },
        _selectDay: function (a, b, c, e) {
            var f = d(a);
            if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) {
                f = this._getInst(f[0]);
                f.selectedDay = f.currentDay = d("a", e).html();
                f.selectedMonth = f.currentMonth = b;
                f.selectedYear = f.currentYear = c;
                this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear))
            }
        },
        _clearDate: function (a) {
            a = d(a);
            this._getInst(a[0]);
            this._selectDate(a, "")
        },
        _selectDate: function (a, b) {
            a = this._getInst(d(a)[0]);
            b = b != null ? b : this._formatDate(a);
            a.input && a.input.val(b);
            this._updateAlternate(a);
            var c = this._get(a, "onSelect");
            if (c) {
                c.apply(a.input ? a.input[0] : null, [b, a])
            } else {
                a.input && a.input.trigger("change")
            }
            if (a.inline) {
                this._updateDatepicker(a)
            } else {
                this._hideDatepicker();
                this._lastInput = a.input[0];
                typeof a.input[0] != "object" && a.input.focus();
                this._lastInput = null
            }
        },
        _updateAlternate: function (a) {
            var b = this._get(a, "altField");
            if (b) {
                var c = this._get(a, "altFormat") || this._get(a, "dateFormat"),
                    e = this._getDate(a),
                    f = this.formatDate(c, e, this._getFormatConfig(a));
                d(b).each(function () {
                    d(this).val(f)
                })
            }
        },
        noWeekends: function (a) {
            a = a.getDay();
            return [a > 0 && a < 6, ""]
        },
        iso8601Week: function (a) {
            a = new Date(a.getTime());
            a.setDate(a.getDate() + 4 - (a.getDay() || 7));
            var b = a.getTime();
            a.setMonth(0);
            a.setDate(1);
            return Math.floor(Math.round((b - a) / 86400000) / 7) + 1
        },
        parseDate: function (a, b, c) {
            if (a == null || b == null) {
                throw "Invalid arguments"
            }
            b = typeof b == "object" ? b.toString() : b + "";
            if (b == "") {
                return null
            }
            for (var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff, f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, k = c = -1, l = -1, u = -1, j = false, o = function (p) {
                    (p = z + 1 < a.length && a.charAt(z + 1) == p) && z++;
                    return p
                }, m = function (p) {
                    o(p);
                    p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" ? 4 : p == "o" ? 3 : 2) + "}");
                    p = b.substring(s).match(p);
                    if (!p) {
                        throw "Missing number at position " + s
                    }
                    s += p[0].length;
                    return parseInt(p[0], 10)
                }, n = function (p, w, H) {
                    p = o(p) ? H : w;
                    for (w = 0; w < p.length; w++) {
                        if (b.substr(s, p[w].length).toLowerCase() == p[w].toLowerCase()) {
                            s += p[w].length;
                            return w + 1
                        }
                    }
                    throw "Unknown name at position " + s
                }, r = function () {
                    if (b.charAt(s) != a.charAt(z)) {
                        throw "Unexpected literal at position " + s
                    }
                    s++
                }, s = 0, z = 0; z < a.length; z++) {
                if (j) {
                    if (a.charAt(z) == "'" && !o("'")) {
                        j = false
                    } else {
                        r()
                    }
                } else {
                    switch (a.charAt(z)) {
                    case "d":
                        l = m("d");
                        break;
                    case "D":
                        n("D", f, h);
                        break;
                    case "o":
                        u = m("o");
                        break;
                    case "m":
                        k = m("m");
                        break;
                    case "M":
                        k = n("M", i, g);
                        break;
                    case "y":
                        c = m("y");
                        break;
                    case "@":
                        var v = new Date(m("@"));
                        c = v.getFullYear();
                        k = v.getMonth() + 1;
                        l = v.getDate();
                        break;
                    case "!":
                        v = new Date((m("!") - this._ticksTo1970) / 10000);
                        c = v.getFullYear();
                        k = v.getMonth() + 1;
                        l = v.getDate();
                        break;
                    case "'":
                        if (o("'")) {
                            r()
                        } else {
                            j = true
                        }
                        break;
                    default:
                        r()
                    }
                }
            }
            if (c == -1) {
                c = (new Date).getFullYear()
            } else {
                if (c < 100) {
                    c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100)
                }
            }
            if (u > -1) {
                k = 1;
                l = u;
                do {
                    e = this._getDaysInMonth(c, k - 1);
                    if (l <= e) {
                        break
                    }
                    k++;
                    l -= e
                } while (1)
            }
            v = this._daylightSavingAdjust(new Date(c, k - 1, l));
            if (v.getFullYear() != c || v.getMonth() + 1 != k || v.getDate() != l) {
                throw "Invalid date"
            }
            return v
        },
        ATOM: "yy-mm-dd",
        COOKIE: "D, dd M yy",
        ISO_8601: "yy-mm-dd",
        RFC_822: "D, d M y",
        RFC_850: "DD, dd-M-y",
        RFC_1036: "D, d M y",
        RFC_1123: "D, d M yy",
        RFC_2822: "D, d M yy",
        RSS: "D, d M y",
        TICKS: "!",
        TIMESTAMP: "@",
        W3C: "yy-mm-dd",
        _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 10000000,
        formatDate: function (a, b, c) {
            if (!b) {
                return ""
            }
            var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort,
                f = (c ? c.dayNames : null) || this._defaults.dayNames,
                h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort;
            c = (c ? c.monthNames : null) || this._defaults.monthNames;
            var i = function (o) {
                    (o = j + 1 < a.length && a.charAt(j + 1) == o) && j++;
                    return o
                },
                g = function (o, m, n) {
                    m = "" + m;
                    if (i(o)) {
                        for (; m.length < n;) {
                            m = "0" + m
                        }
                    }
                    return m
                },
                k = function (o, m, n, r) {
                    return i(o) ? r[m] : n[m]
                },
                l = "",
                u = false;
            if (b) {
                for (var j = 0; j < a.length; j++) {
                    if (u) {
                        if (a.charAt(j) == "'" && !i("'")) {
                            u = false
                        } else {
                            l += a.charAt(j)
                        }
                    } else {
                        switch (a.charAt(j)) {
                        case "d":
                            l += g("d", b.getDate(), 2);
                            break;
                        case "D":
                            l += k("D", b.getDay(), e, f);
                            break;
                        case "o":
                            l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 86400000, 3);
                            break;
                        case "m":
                            l += g("m", b.getMonth() + 1, 2);
                            break;
                        case "M":
                            l += k("M", b.getMonth(), h, c);
                            break;
                        case "y":
                            l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100;
                            break;
                        case "@":
                            l += b.getTime();
                            break;
                        case "!":
                            l += b.getTime() * 10000 + this._ticksTo1970;
                            break;
                        case "'":
                            if (i("'")) {
                                l += "'"
                            } else {
                                u = true
                            }
                            break;
                        default:
                            l += a.charAt(j)
                        }
                    }
                }
            }
            return l
        },
        _possibleChars: function (a) {
            for (var b = "", c = false, e = function (h) {
                    (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++;
                    return h
                }, f = 0; f < a.length; f++) {
                if (c) {
                    if (a.charAt(f) == "'" && !e("'")) {
                        c = false
                    } else {
                        b += a.charAt(f)
                    }
                } else {
                    switch (a.charAt(f)) {
                    case "d":
                    case "m":
                    case "y":
                    case "@":
                        b += "0123456789";
                        break;
                    case "D":
                    case "M":
                        return null;
                    case "'":
                        if (e("'")) {
                            b += "'"
                        } else {
                            c = true
                        }
                        break;
                    default:
                        b += a.charAt(f)
                    }
                }
            }
            return b
        },
        _get: function (a, b) {
            return a.settings[b] !== G ? a.settings[b] : this._defaults[b]
        },
        _setDateFromField: function (a, b) {
            if (a.input.val() != a.lastVal) {
                var c = this._get(a, "dateFormat"),
                    e = a.lastVal = a.input ? a.input.val() : null,
                    f, h;
                f = h = this._getDefaultDate(a);
                var i = this._getFormatConfig(a);
                try {
                    f = this.parseDate(c, e, i) || h
                } catch (g) {
                    this.log(g);
                    e = b ? "" : e
                }
                a.selectedDay = f.getDate();
                a.drawMonth = a.selectedMonth = f.getMonth();
                a.drawYear = a.selectedYear = f.getFullYear();
                a.currentDay = e ? f.getDate() : 0;
                a.currentMonth = e ? f.getMonth() : 0;
                a.currentYear = e ? f.getFullYear() : 0;
                this._adjustInstDate(a)
            }
        },
        _getDefaultDate: function (a) {
            return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date))
        },
        _determineDate: function (a, b, c) {
            var e = function (h) {
                    var i = new Date;
                    i.setDate(i.getDate() + h);
                    return i
                },
                f = function (h) {
                    try {
                        return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a))
                    } catch (i) {}
                    var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date,
                        k = g.getFullYear(),
                        l = g.getMonth();
                    g = g.getDate();
                    for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, j = u.exec(h); j;) {
                        switch (j[2] || "d") {
                        case "d":
                        case "D":
                            g += parseInt(j[1], 10);
                            break;
                        case "w":
                        case "W":
                            g += parseInt(j[1], 10) * 7;
                            break;
                        case "m":
                        case "M":
                            l += parseInt(j[1], 10);
                            g = Math.min(g, d.datepicker._getDaysInMonth(k, l));
                            break;
                        case "y":
                        case "Y":
                            k += parseInt(j[1], 10);
                            g = Math.min(g, d.datepicker._getDaysInMonth(k, l));
                            break
                        }
                        j = u.exec(h)
                    }
                    return new Date(k, l, g)
                };
            if (b = (b = b == null ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : b) && b.toString() == "Invalid Date" ? c : b) {
                b.setHours(0);
                b.setMinutes(0);
                b.setSeconds(0);
                b.setMilliseconds(0)
            }
            return this._daylightSavingAdjust(b)
        },
        _daylightSavingAdjust: function (a) {
            if (!a) {
                return null
            }
            a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0);
            return a
        },
        _setDate: function (a, b, c) {
            var e = !b,
                f = a.selectedMonth,
                h = a.selectedYear;
            b = this._restrictMinMax(a, this._determineDate(a, b, new Date));
            a.selectedDay = a.currentDay = b.getDate();
            a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth();
            a.drawYear = a.selectedYear = a.currentYear = b.getFullYear();
            if ((f != a.selectedMonth || h != a.selectedYear) && !c) {
                this._notifyChange(a)
            }
            this._adjustInstDate(a);
            if (a.input) {
                a.input.val(e ? "" : this._formatDate(a))
            }
        },
        _getDate: function (a) {
            return !a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
        },
        _generateHTML: function (a) {
            var b = new Date;
            b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate()));
            var c = this._get(a, "isRTL"),
                e = this._get(a, "showButtonPanel"),
                f = this._get(a, "hideIfNoPrevNext"),
                h = this._get(a, "navigationAsDateFormat"),
                i = this._getNumberOfMonths(a),
                g = this._get(a, "showCurrentAtPos"),
                k = this._get(a, "stepMonths"),
                l = i[0] != 1 || i[1] != 1,
                u = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)),
                j = this._getMinMaxDate(a, "min"),
                o = this._getMinMaxDate(a, "max");
            g = a.drawMonth - g;
            var m = a.drawYear;
            if (g < 0) {
                g += 12;
                m--
            }
            if (o) {
                var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate()));
                for (n = j && n < j ? j : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n;) {
                    g--;
                    if (g < 0) {
                        g = 11;
                        m--
                    }
                }
            }
            a.drawMonth = g;
            a.drawYear = m;
            n = this._get(a, "prevText");
            n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - k, 1)), this._getFormatConfig(a));
            n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>";
            var r = this._get(a, "nextText");
            r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m, g + k, 1)), this._getFormatConfig(a));
            f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>";
            k = this._get(a, "currentText");
            r = this._get(a, "gotoCurrent") && a.currentDay ? u : b;
            k = !h ? k : this.formatDate(k, r, this._getFormatConfig(a));
            h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + y + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : "";
            e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, r) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (c ? "" : h) + "</div>" : "";
            h = parseInt(this._get(a, "firstDay"), 10);
            h = isNaN(h) ? 0 : h;
            k = this._get(a, "showWeek");
            r = this._get(a, "dayNames");
            this._get(a, "dayNamesShort");
            var s = this._get(a, "dayNamesMin"),
                z = this._get(a, "monthNames"),
                v = this._get(a, "monthNamesShort"),
                p = this._get(a, "beforeShowDay"),
                w = this._get(a, "showOtherMonths"),
                H = this._get(a, "selectOtherMonths");
            this._get(a, "calculateWeek");
            for (var M = this._getDefaultDate(a), I = "", C = 0; C < i[0]; C++) {
                for (var N = "", D = 0; D < i[1]; D++) {
                    var J = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)),
                        t = " ui-corner-all",
                        x = "";
                    if (l) {
                        x += '<div class="ui-datepicker-group';
                        if (i[1] > 1) {
                            switch (D) {
                            case 0:
                                x += " ui-datepicker-group-first";
                                t = " ui-corner-" + (c ? "right" : "left");
                                break;
                            case i[1] - 1:
                                x += " ui-datepicker-group-last";
                                t = " ui-corner-" + (c ? "left" : "right");
                                break;
                            default:
                                x += " ui-datepicker-group-middle";
                                t = "";
                                break
                            }
                        }
                        x += '">'
                    }
                    x += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) && C == 0 ? c ? f : n : "") + (/all|right/.test(t) && C == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, j, o, C > 0 || D > 0, z, v) + '</div><table class="ui-datepicker-calendar"><thead><tr>';
                    var A = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : "";
                    for (t = 0; t < 7; t++) {
                        var q = (t + h) % 7;
                        A += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + r[q] + '">' + s[q] + "</span></th>"
                    }
                    x += A + "</tr></thead><tbody>";
                    A = this._getDaysInMonth(m, g);
                    if (m == a.selectedYear && g == a.selectedMonth) {
                        a.selectedDay = Math.min(a.selectedDay, A)
                    }
                    t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7;
                    A = l ? 6 : Math.ceil((t + A) / 7);
                    q = this._daylightSavingAdjust(new Date(m, g, 1 - t));
                    for (var O = 0; O < A; O++) {
                        x += "<tr>";
                        var P = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(q) + "</td>";
                        for (t = 0; t < 7; t++) {
                            var F = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""],
                                B = q.getMonth() != g,
                                K = B && !H || !F[0] || j && q < j || o && q > o;
                            P += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (B ? " ui-datepicker-other-month" : "") + (q.getTime() == J.getTime() && g == a.selectedMonth && a._keyEvent || M.getTime() == q.getTime() && M.getTime() == J.getTime() ? " " + this._dayOverClass : "") + (K ? " " + this._unselectableClass + " ui-state-disabled" : "") + (B && !w ? "" : " " + F[1] + (q.getTime() == u.getTime() ? " " + this._currentClass : "") + (q.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!B || w) && F[2] ? ' title="' + F[2] + '"' : "") + (K ? "" : ' onclick="DP_jQuery_' + y + ".datepicker._selectDay('#" + a.id + "'," + q.getMonth() + "," + q.getFullYear() + ', this);return false;"') + ">" + (B && !w ? "&#xa0;" : K ? '<span class="ui-state-default">' + q.getDate() + "</span>" : '<a class="ui-state-default' + (q.getTime() == b.getTime() ? " ui-state-highlight" : "") + (q.getTime() == J.getTime() ? " ui-state-active" : "") + (B ? " ui-priority-secondary" : "") + '" href="#">' + q.getDate() + "</a>") + "</td>";
                            q.setDate(q.getDate() + 1);
                            q = this._daylightSavingAdjust(q)
                        }
                        x += P + "</tr>"
                    }
                    g++;
                    if (g > 11) {
                        g = 0;
                        m++
                    }
                    x += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && D == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : "");
                    N += x
                }
                I += N
            }
            I += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : "");
            a._keyEvent = false;
            return I
        },
        _generateMonthYearHeader: function (a, b, c, e, f, h, i, g) {
            var k = this._get(a, "changeMonth"),
                l = this._get(a, "changeYear"),
                u = this._get(a, "showMonthAfterYear"),
                j = '<div class="ui-datepicker-title">',
                o = "";
            if (h || !k) {
                o += '<span class="ui-datepicker-month">' + i[b] + "</span>"
            } else {
                i = e && e.getFullYear() == c;
                var m = f && f.getFullYear() == c;
                o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">";
                for (var n = 0; n < 12; n++) {
                    if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth())) {
                        o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>"
                    }
                }
                o += "</select>"
            }
            u || (j += o + (h || !(k && l) ? "&#xa0;" : ""));
            if (h || !l) {
                j += '<span class="ui-datepicker-year">' + c + "</span>"
            } else {
                g = this._get(a, "yearRange").split(":");
                var r = (new Date).getFullYear();
                i = function (s) {
                    s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10);
                    return isNaN(s) ? r : s
                };
                b = i(g[0]);
                g = Math.max(b, i(g[1] || ""));
                b = e ? Math.max(b, e.getFullYear()) : b;
                g = f ? Math.min(g, f.getFullYear()) : g;
                for (j += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; b <= g; b++) {
                    j += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>"
                }
                j += "</select>"
            }
            j += this._get(a, "yearSuffix");
            if (u) {
                j += (h || !(k && l) ? "&#xa0;" : "") + o
            }
            j += "</div>";
            return j
        },
        _adjustInstDate: function (a, b, c) {
            var e = a.drawYear + (c == "Y" ? b : 0),
                f = a.drawMonth + (c == "M" ? b : 0);
            b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0);
            e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b)));
            a.selectedDay = e.getDate();
            a.drawMonth = a.selectedMonth = e.getMonth();
            a.drawYear = a.selectedYear = e.getFullYear();
            if (c == "M" || c == "Y") {
                this._notifyChange(a)
            }
        },
        _restrictMinMax: function (a, b) {
            var c = this._getMinMaxDate(a, "min");
            a = this._getMinMaxDate(a, "max");
            b = c && b < c ? c : b;
            return b = a && b > a ? a : b
        },
        _notifyChange: function (a) {
            var b = this._get(a, "onChangeMonthYear");
            if (b) {
                b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
            }
        },
        _getNumberOfMonths: function (a) {
            a = this._get(a, "numberOfMonths");
            return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a
        },
        _getMinMaxDate: function (a, b) {
            return this._determineDate(a, this._get(a, b + "Date"), null)
        },
        _getDaysInMonth: function (a, b) {
            return 32 - (new Date(a, b, 32)).getDate()
        },
        _getFirstDayOfMonth: function (a, b) {
            return (new Date(a, b, 1)).getDay()
        },
        _canAdjustMonth: function (a, b, c, e) {
            var f = this._getNumberOfMonths(a);
            c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1));
            b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth()));
            return this._isInRange(a, c)
        },
        _isInRange: function (a, b) {
            var c = this._getMinMaxDate(a, "min");
            a = this._getMinMaxDate(a, "max");
            return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime())
        },
        _getFormatConfig: function (a) {
            var b = this._get(a, "shortYearCutoff");
            b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10);
            return {
                shortYearCutoff: b,
                dayNamesShort: this._get(a, "dayNamesShort"),
                dayNames: this._get(a, "dayNames"),
                monthNamesShort: this._get(a, "monthNamesShort"),
                monthNames: this._get(a, "monthNames")
            }
        },
        _formatDate: function (a, b, c, e) {
            if (!b) {
                a.currentDay = a.selectedDay;
                a.currentMonth = a.selectedMonth;
                a.currentYear = a.selectedYear
            }
            b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
            return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a))
        }
    });
    d.fn.datepicker = function (a) {
        if (!d.datepicker.initialized) {
            d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);
            d.datepicker.initialized = true
        }
        var b = Array.prototype.slice.call(arguments, 1);
        if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) {
            return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b))
        }
        if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") {
            return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b))
        }
        return this.each(function () {
            typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a)
        })
    };
    d.datepicker = new L;
    d.datepicker.initialized = false;
    d.datepicker.uuid = (new Date).getTime();
    d.datepicker.version = "1.8.5";
    window["DP_jQuery_" + y] = d
})(jQuery);
(function (a, d) {
    a.widget("ui.progressbar", {
        options: {
            value: 0
        },
        min: 0,
        max: 100,
        _create: function () {
            this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({
                role: "progressbar",
                "aria-valuemin": this.min,
                "aria-valuemax": this.max,
                "aria-valuenow": this._value()
            });
            this.valueDiv = a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);
            this._refreshValue()
        },
        destroy: function () {
            this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
            this.valueDiv.remove();
            a.Widget.prototype.destroy.apply(this, arguments)
        },
        value: function (b) {
            if (b === d) {
                return this._value()
            }
            this._setOption("value", b);
            return this
        },
        _setOption: function (b, c) {
            if (b === "value") {
                this.options.value = c;
                this._refreshValue();
                this._trigger("change")
            }
            a.Widget.prototype._setOption.apply(this, arguments)
        },
        _value: function () {
            var b = this.options.value;
            if (typeof b !== "number") {
                b = 0
            }
            return Math.min(this.max, Math.max(this.min, b))
        },
        _refreshValue: function () {
            var b = this.value();
            this.valueDiv.toggleClass("ui-corner-right", b === this.max).width(b + "%");
            this.element.attr("aria-valuenow", b)
        }
    });
    a.extend(a.ui.progressbar, {
        version: "1.8.5"
    })
})(jQuery);
jQuery.effects ||
function (a, b) {
    function d(j) {
        var f;
        if (j && j.constructor == Array && j.length == 3) {
            return j
        }
        if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(j)) {
            return [parseInt(f[1], 10), parseInt(f[2], 10), parseInt(f[3], 10)]
        }
        if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(j)) {
            return [parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55, parseFloat(f[3]) * 2.55]
        }
        if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(j)) {
            return [parseInt(f[1], 16), parseInt(f[2], 16), parseInt(f[3], 16)]
        }
        if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(j)) {
            return [parseInt(f[1] + f[1], 16), parseInt(f[2] + f[2], 16), parseInt(f[3] + f[3], 16)]
        }
        if (/rgba\(0, 0, 0, 0\)/.exec(j)) {
            return e.transparent
        }
        return e[a.trim(j).toLowerCase()]
    }
    function q(k, f) {
        var j;
        do {
            j = a.curCSS(k, f);
            if (j != "" && j != "transparent" || a.nodeName(k, "body")) {
                break
            }
            f = "backgroundColor"
        } while (k = k.parentNode);
        return d(j)
    }
    function g() {
        var k = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
            f = {},
            j, l;
        if (k && k.length && k[0] && k[k[0]]) {
            for (var m = k.length; m--;) {
                j = k[m];
                if (typeof k[j] == "string") {
                    l = j.replace(/\-(\w)/g, function (n, o) {
                        return o.toUpperCase()
                    });
                    f[l] = k[j]
                }
            }
        } else {
            for (j in k) {
                if (typeof k[j] === "string") {
                    f[j] = k[j]
                }
            }
        }
        return f
    }
    function h(k) {
        var f, j;
        for (f in k) {
            j = k[f];
            if (j == null || a.isFunction(j) || f in u || /scrollbar/.test(f) || !/color/i.test(f) && isNaN(parseFloat(j))) {
                delete k[f]
            }
        }
        return k
    }
    function v(k, f) {
        var j = {
            _: 0
        },
            l;
        for (l in f) {
            if (k[l] != f[l]) {
                j[l] = f[l]
            }
        }
        return j
    }
    function c(k, f, j, l) {
        if (typeof k == "object") {
            l = f;
            j = null;
            f = k;
            k = f.effect
        }
        if (a.isFunction(f)) {
            l = f;
            j = null;
            f = {}
        }
        if (typeof f == "number" || a.fx.speeds[f]) {
            l = j;
            j = f;
            f = {}
        }
        if (a.isFunction(j)) {
            l = j;
            j = null
        }
        f = f || {};
        j = j || f.duration;
        j = a.fx.off ? 0 : typeof j == "number" ? j : a.fx.speeds[j] || a.fx.speeds._default;
        l = l || f.complete;
        return [k, f, j, l]
    }
    a.effects = {};
    a.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (j, f) {
        a.fx.step[f] = function (k) {
            if (!k.colorInit) {
                k.start = q(k.elem, f);
                k.end = d(k.end);
                k.colorInit = true
            }
            k.elem.style[f] = "rgb(" + Math.max(Math.min(parseInt(k.pos * (k.end[0] - k.start[0]) + k.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(k.pos * (k.end[1] - k.start[1]) + k.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(k.pos * (k.end[2] - k.start[2]) + k.start[2], 10), 255), 0) + ")"
        }
    });
    var e = {
        aqua: [0, 255, 255],
        azure: [240, 255, 255],
        beige: [245, 245, 220],
        black: [0, 0, 0],
        blue: [0, 0, 255],
        brown: [165, 42, 42],
        cyan: [0, 255, 255],
        darkblue: [0, 0, 139],
        darkcyan: [0, 139, 139],
        darkgrey: [169, 169, 169],
        darkgreen: [0, 100, 0],
        darkkhaki: [189, 183, 107],
        darkmagenta: [139, 0, 139],
        darkolivegreen: [85, 107, 47],
        darkorange: [255, 140, 0],
        darkorchid: [153, 50, 204],
        darkred: [139, 0, 0],
        darksalmon: [233, 150, 122],
        darkviolet: [148, 0, 211],
        fuchsia: [255, 0, 255],
        gold: [255, 215, 0],
        green: [0, 128, 0],
        indigo: [75, 0, 130],
        khaki: [240, 230, 140],
        lightblue: [173, 216, 230],
        lightcyan: [224, 255, 255],
        lightgreen: [144, 238, 144],
        lightgrey: [211, 211, 211],
        lightpink: [255, 182, 193],
        lightyellow: [255, 255, 224],
        lime: [0, 255, 0],
        magenta: [255, 0, 255],
        maroon: [128, 0, 0],
        navy: [0, 0, 128],
        olive: [128, 128, 0],
        orange: [255, 165, 0],
        pink: [255, 192, 203],
        purple: [128, 0, 128],
        violet: [128, 0, 128],
        red: [255, 0, 0],
        silver: [192, 192, 192],
        white: [255, 255, 255],
        yellow: [255, 255, 0],
        transparent: [255, 255, 255]
    },
        i = ["add", "remove", "toggle"],
        u = {
            border: 1,
            borderBottom: 1,
            borderColor: 1,
            borderLeft: 1,
            borderRight: 1,
            borderTop: 1,
            borderWidth: 1,
            margin: 1,
            padding: 1
        };
    a.effects.animateClass = function (k, f, j, l) {
        if (a.isFunction(j)) {
            l = j;
            j = null
        }
        return this.each(function () {
            var m = a(this),
                n = m.attr("style") || " ",
                o = h(g.call(this)),
                p, r = m.attr("className");
            a.each(i, function (w, s) {
                k[s] && m[s + "Class"](k[s])
            });
            p = h(g.call(this));
            m.attr("className", r);
            m.animate(v(o, p), f, j, function () {
                a.each(i, function (w, s) {
                    k[s] && m[s + "Class"](k[s])
                });
                if (typeof m.attr("style") == "object") {
                    m.attr("style").cssText = "";
                    m.attr("style").cssText = n
                } else {
                    m.attr("style", n)
                }
                l && l.apply(this, arguments)
            })
        })
    };
    a.fn.extend({
        _addClass: a.fn.addClass,
        addClass: function (k, f, j, l) {
            return f ? a.effects.animateClass.apply(this, [{
                add: k
            },
            f, j, l]) : this._addClass(k)
        },
        _removeClass: a.fn.removeClass,
        removeClass: function (k, f, j, l) {
            return f ? a.effects.animateClass.apply(this, [{
                remove: k
            },
            f, j, l]) : this._removeClass(k)
        },
        _toggleClass: a.fn.toggleClass,
        toggleClass: function (k, f, j, l, m) {
            return typeof f == "boolean" || f === b ? j ? a.effects.animateClass.apply(this, [f ? {
                add: k
            } : {
                remove: k
            },
            j, l, m]) : this._toggleClass(k, f) : a.effects.animateClass.apply(this, [{
                toggle: k
            },
            f, j, l])
        },
        switchClass: function (k, f, j, l, m) {
            return a.effects.animateClass.apply(this, [{
                add: f,
                remove: k
            },
            j, l, m])
        }
    });
    a.extend(a.effects, {
        version: "1.8.5",
        save: function (k, f) {
            for (var j = 0; j < f.length; j++) {
                f[j] !== null && k.data("ec.storage." + f[j], k[0].style[f[j]])
            }
        },
        restore: function (k, f) {
            for (var j = 0; j < f.length; j++) {
                f[j] !== null && k.css(f[j], k.data("ec.storage." + f[j]))
            }
        },
        setMode: function (j, f) {
            if (f == "toggle") {
                f = j.is(":hidden") ? "show" : "hide"
            }
            return f
        },
        getBaseline: function (k, f) {
            var j;
            switch (k[0]) {
            case "top":
                j = 0;
                break;
            case "middle":
                j = 0.5;
                break;
            case "bottom":
                j = 1;
                break;
            default:
                j = k[0] / f.height
            }
            switch (k[1]) {
            case "left":
                k = 0;
                break;
            case "center":
                k = 0.5;
                break;
            case "right":
                k = 1;
                break;
            default:
                k = k[1] / f.width
            }
            return {
                x: k,
                y: j
            }
        },
        createWrapper: function (k) {
            if (k.parent().is(".ui-effects-wrapper")) {
                return k.parent()
            }
            var f = {
                width: k.outerWidth(true),
                height: k.outerHeight(true),
                "float": k.css("float")
            },
                j = a("<div></div>").addClass("ui-effects-wrapper").css({
                    fontSize: "100%",
                    background: "transparent",
                    border: "none",
                    margin: 0,
                    padding: 0
                });
            k.wrap(j);
            j = k.parent();
            if (k.css("position") == "static") {
                j.css({
                    position: "relative"
                });
                k.css({
                    position: "relative"
                })
            } else {
                a.extend(f, {
                    position: k.css("position"),
                    zIndex: k.css("z-index")
                });
                a.each(["top", "left", "bottom", "right"], function (l, m) {
                    f[m] = k.css(m);
                    if (isNaN(parseInt(f[m], 10))) {
                        f[m] = "auto"
                    }
                });
                k.css({
                    position: "relative",
                    top: 0,
                    left: 0
                })
            }
            return j.css(f).show()
        },
        removeWrapper: function (f) {
            if (f.parent().is(".ui-effects-wrapper")) {
                return f.parent().replaceWith(f)
            }
            return f
        },
        setTransition: function (k, f, j, l) {
            l = l || {};
            a.each(f, function (m, n) {
                unit = k.cssUnit(n);
                if (unit[0] > 0) {
                    l[n] = unit[0] * j + unit[1]
                }
            });
            return l
        }
    });
    a.fn.extend({
        effect: function (k) {
            var f = c.apply(this, arguments);
            f = {
                options: f[1],
                duration: f[2],
                callback: f[3]
            };
            var j = a.effects[k];
            return j && !a.fx.off ? j.call(this, f) : this
        },
        _show: a.fn.show,
        show: function (j) {
            if (!j || typeof j == "number" || a.fx.speeds[j] || !a.effects[j]) {
                return this._show.apply(this, arguments)
            } else {
                var f = c.apply(this, arguments);
                f[1].mode = "show";
                return this.effect.apply(this, f)
            }
        },
        _hide: a.fn.hide,
        hide: function (j) {
            if (!j || typeof j == "number" || a.fx.speeds[j] || !a.effects[j]) {
                return this._hide.apply(this, arguments)
            } else {
                var f = c.apply(this, arguments);
                f[1].mode = "hide";
                return this.effect.apply(this, f)
            }
        },
        __toggle: a.fn.toggle,
        toggle: function (j) {
            if (!j || typeof j == "number" || a.fx.speeds[j] || !a.effects[j] || typeof j == "boolean" || a.isFunction(j)) {
                return this.__toggle.apply(this, arguments)
            } else {
                var f = c.apply(this, arguments);
                f[1].mode = "toggle";
                return this.effect.apply(this, f)
            }
        },
        cssUnit: function (k) {
            var f = this.css(k),
                j = [];
            a.each(["em", "px", "%", "pt"], function (l, m) {
                if (f.indexOf(m) > 0) {
                    j = [parseFloat(f), m]
                }
            });
            return j
        }
    });
    a.easing.jswing = a.easing.swing;
    a.extend(a.easing, {
        def: "easeOutQuad",
        swing: function (k, f, j, l, m) {
            return a.easing[a.easing.def](k, f, j, l, m)
        },
        easeInQuad: function (k, f, j, l, m) {
            return l * (f /= m) * f + j
        },
        easeOutQuad: function (k, f, j, l, m) {
            return -l * (f /= m) * (f - 2) + j
        },
        easeInOutQuad: function (k, f, j, l, m) {
            if ((f /= m / 2) < 1) {
                return l / 2 * f * f + j
            }
            return -l / 2 * (--f * (f - 2) - 1) + j
        },
        easeInCubic: function (k, f, j, l, m) {
            return l * (f /= m) * f * f + j
        },
        easeOutCubic: function (k, f, j, l, m) {
            return l * ((f = f / m - 1) * f * f + 1) + j
        },
        easeInOutCubic: function (k, f, j, l, m) {
            if ((f /= m / 2) < 1) {
                return l / 2 * f * f * f + j
            }
            return l / 2 * ((f -= 2) * f * f + 2) + j
        },
        easeInQuart: function (k, f, j, l, m) {
            return l * (f /= m) * f * f * f + j
        },
        easeOutQuart: function (k, f, j, l, m) {
            return -l * ((f = f / m - 1) * f * f * f - 1) + j
        },
        easeInOutQuart: function (k, f, j, l, m) {
            if ((f /= m / 2) < 1) {
                return l / 2 * f * f * f * f + j
            }
            return -l / 2 * ((f -= 2) * f * f * f - 2) + j
        },
        easeInQuint: function (k, f, j, l, m) {
            return l * (f /= m) * f * f * f * f + j
        },
        easeOutQuint: function (k, f, j, l, m) {
            return l * ((f = f / m - 1) * f * f * f * f + 1) + j
        },
        easeInOutQuint: function (k, f, j, l, m) {
            if ((f /= m / 2) < 1) {
                return l / 2 * f * f * f * f * f + j
            }
            return l / 2 * ((f -= 2) * f * f * f * f + 2) + j
        },
        easeInSine: function (k, f, j, l, m) {
            return -l * Math.cos(f / m * (Math.PI / 2)) + l + j
        },
        easeOutSine: function (k, f, j, l, m) {
            return l * Math.sin(f / m * (Math.PI / 2)) + j
        },
        easeInOutSine: function (k, f, j, l, m) {
            return -l / 2 * (Math.cos(Math.PI * f / m) - 1) + j
        },
        easeInExpo: function (k, f, j, l, m) {
            return f == 0 ? j : l * Math.pow(2, 10 * (f / m - 1)) + j
        },
        easeOutExpo: function (k, f, j, l, m) {
            return f == m ? j + l : l * (-Math.pow(2, -10 * f / m) + 1) + j
        },
        easeInOutExpo: function (k, f, j, l, m) {
            if (f == 0) {
                return j
            }
            if (f == m) {
                return j + l
            }
            if ((f /= m / 2) < 1) {
                return l / 2 * Math.pow(2, 10 * (f - 1)) + j
            }
            return l / 2 * (-Math.pow(2, -10 * --f) + 2) + j
        },
        easeInCirc: function (k, f, j, l, m) {
            return -l * (Math.sqrt(1 - (f /= m) * f) - 1) + j
        },
        easeOutCirc: function (k, f, j, l, m) {
            return l * Math.sqrt(1 - (f = f / m - 1) * f) + j
        },
        easeInOutCirc: function (k, f, j, l, m) {
            if ((f /= m / 2) < 1) {
                return -l / 2 * (Math.sqrt(1 - f * f) - 1) + j
            }
            return l / 2 * (Math.sqrt(1 - (f -= 2) * f) + 1) + j
        },
        easeInElastic: function (k, f, j, l, m) {
            k = 1.70158;
            var n = 0,
                o = l;
            if (f == 0) {
                return j
            }
            if ((f /= m) == 1) {
                return j + l
            }
            n || (n = m * 0.3);
            if (o < Math.abs(l)) {
                o = l;
                k = n / 4
            } else {
                k = n / (2 * Math.PI) * Math.asin(l / o)
            }
            return -(o * Math.pow(2, 10 * (f -= 1)) * Math.sin((f * m - k) * 2 * Math.PI / n)) + j
        },
        easeOutElastic: function (k, f, j, l, m) {
            k = 1.70158;
            var n = 0,
                o = l;
            if (f == 0) {
                return j
            }
            if ((f /= m) == 1) {
                return j + l
            }
            n || (n = m * 0.3);
            if (o < Math.abs(l)) {
                o = l;
                k = n / 4
            } else {
                k = n / (2 * Math.PI) * Math.asin(l / o)
            }
            return o * Math.pow(2, -10 * f) * Math.sin((f * m - k) * 2 * Math.PI / n) + l + j
        },
        easeInOutElastic: function (k, f, j, l, m) {
            k = 1.70158;
            var n = 0,
                o = l;
            if (f == 0) {
                return j
            }
            if ((f /= m / 2) == 2) {
                return j + l
            }
            n || (n = m * 0.3 * 1.5);
            if (o < Math.abs(l)) {
                o = l;
                k = n / 4
            } else {
                k = n / (2 * Math.PI) * Math.asin(l / o)
            }
            if (f < 1) {
                return -0.5 * o * Math.pow(2, 10 * (f -= 1)) * Math.sin((f * m - k) * 2 * Math.PI / n) + j
            }
            return o * Math.pow(2, -10 * (f -= 1)) * Math.sin((f * m - k) * 2 * Math.PI / n) * 0.5 + l + j
        },
        easeInBack: function (k, f, j, l, m, n) {
            if (n == b) {
                n = 1.70158
            }
            return l * (f /= m) * f * ((n + 1) * f - n) + j
        },
        easeOutBack: function (k, f, j, l, m, n) {
            if (n == b) {
                n = 1.70158
            }
            return l * ((f = f / m - 1) * f * ((n + 1) * f + n) + 1) + j
        },
        easeInOutBack: function (k, f, j, l, m, n) {
            if (n == b) {
                n = 1.70158
            }
            if ((f /= m / 2) < 1) {
                return l / 2 * f * f * (((n *= 1.525) + 1) * f - n) + j
            }
            return l / 2 * ((f -= 2) * f * (((n *= 1.525) + 1) * f + n) + 2) + j
        },
        easeInBounce: function (k, f, j, l, m) {
            return l - a.easing.easeOutBounce(k, m - f, 0, l, m) + j
        },
        easeOutBounce: function (k, f, j, l, m) {
            return (f /= m) < 1 / 2.75 ? l * 7.5625 * f * f + j : f < 2 / 2.75 ? l * (7.5625 * (f -= 1.5 / 2.75) * f + 0.75) + j : f < 2.5 / 2.75 ? l * (7.5625 * (f -= 2.25 / 2.75) * f + 0.9375) + j : l * (7.5625 * (f -= 2.625 / 2.75) * f + 0.984375) + j
        },
        easeInOutBounce: function (k, f, j, l, m) {
            if (f < m / 2) {
                return a.easing.easeInBounce(k, f * 2, 0, l, m) * 0.5 + j
            }
            return a.easing.easeOutBounce(k, f * 2 - m, 0, l, m) * 0.5 + l * 0.5 + j
        }
    })
}(jQuery);
(function (a) {
    a.effects.blind = function (b) {
        return this.queue(function () {
            var c = a(this),
                m = ["position", "top", "left"],
                l = a.effects.setMode(c, b.options.mode || "hide"),
                j = b.options.direction || "vertical";
            a.effects.save(c, m);
            c.show();
            var k = a.effects.createWrapper(c).css({
                overflow: "hidden"
            }),
                n = j == "vertical" ? "height" : "width";
            j = j == "vertical" ? k.height() : k.width();
            l == "show" && k.css(n, 0);
            var o = {};
            o[n] = l == "show" ? j : 0;
            k.animate(o, b.duration, b.options.easing, function () {
                l == "hide" && c.hide();
                a.effects.restore(c, m);
                a.effects.removeWrapper(c);
                b.callback && b.callback.apply(c[0], arguments);
                c.dequeue()
            })
        })
    }
})(jQuery);
(function (a) {
    a.effects.bounce = function (c) {
        return this.queue(function () {
            var b = a(this),
                v = ["position", "top", "left"],
                q = a.effects.setMode(b, c.options.mode || "effect"),
                n = c.options.direction || "up",
                e = c.options.distance || 20,
                w = c.options.times || 5,
                r = c.duration || 250;
            /show|hide/.test(q) && v.push("opacity");
            a.effects.save(b, v);
            b.show();
            a.effects.createWrapper(b);
            var o = n == "up" || n == "down" ? "top" : "left";
            n = n == "up" || n == "left" ? "pos" : "neg";
            e = c.options.distance || (o == "top" ? b.outerHeight({
                margin: true
            }) / 3 : b.outerWidth({
                margin: true
            }) / 3);
            if (q == "show") {
                b.css("opacity", 0).css(o, n == "pos" ? -e : e)
            }
            if (q == "hide") {
                e /= w * 2
            }
            q != "hide" && w--;
            if (q == "show") {
                var p = {
                    opacity: 1
                };
                p[o] = (n == "pos" ? "+=" : "-=") + e;
                b.animate(p, r / 2, c.options.easing);
                e /= 2;
                w--
            }
            for (p = 0; p < w; p++) {
                var s = {},
                    u = {};
                s[o] = (n == "pos" ? "-=" : "+=") + e;
                u[o] = (n == "pos" ? "+=" : "-=") + e;
                b.animate(s, r / 2, c.options.easing).animate(u, r / 2, c.options.easing);
                e = q == "hide" ? e * 2 : e / 2
            }
            if (q == "hide") {
                p = {
                    opacity: 0
                };
                p[o] = (n == "pos" ? "-=" : "+=") + e;
                b.animate(p, r / 2, c.options.easing, function () {
                    b.hide();
                    a.effects.restore(b, v);
                    a.effects.removeWrapper(b);
                    c.callback && c.callback.apply(this, arguments)
                })
            } else {
                s = {};
                u = {};
                s[o] = (n == "pos" ? "-=" : "+=") + e;
                u[o] = (n == "pos" ? "+=" : "-=") + e;
                b.animate(s, r / 2, c.options.easing).animate(u, r / 2, c.options.easing, function () {
                    a.effects.restore(b, v);
                    a.effects.removeWrapper(b);
                    c.callback && c.callback.apply(this, arguments)
                })
            }
            b.queue("fx", function () {
                b.dequeue()
            });
            b.dequeue()
        })
    }
})(jQuery);
(function (a) {
    a.effects.clip = function (b) {
        return this.queue(function () {
            var e = a(this),
                o = ["position", "top", "left", "height", "width"],
                l = a.effects.setMode(e, b.options.mode || "hide"),
                j = b.options.direction || "vertical";
            a.effects.save(e, o);
            e.show();
            var k = a.effects.createWrapper(e).css({
                overflow: "hidden"
            });
            k = e[0].tagName == "IMG" ? k : e;
            var m = {
                size: j == "vertical" ? "height" : "width",
                position: j == "vertical" ? "top" : "left"
            };
            j = j == "vertical" ? k.height() : k.width();
            if (l == "show") {
                k.css(m.size, 0);
                k.css(m.position, j / 2)
            }
            var n = {};
            n[m.size] = l == "show" ? j : 0;
            n[m.position] = l == "show" ? 0 : j / 2;
            k.animate(n, {
                queue: false,
                duration: b.duration,
                easing: b.options.easing,
                complete: function () {
                    l == "hide" && e.hide();
                    a.effects.restore(e, o);
                    a.effects.removeWrapper(e);
                    b.callback && b.callback.apply(e[0], arguments);
                    e.dequeue()
                }
            })
        })
    }
})(jQuery);
(function (a) {
    a.effects.drop = function (b) {
        return this.queue(function () {
            var c = a(this),
                m = ["position", "top", "left", "opacity"],
                j = a.effects.setMode(c, b.options.mode || "hide"),
                d = b.options.direction || "left";
            a.effects.save(c, m);
            c.show();
            a.effects.createWrapper(c);
            var k = d == "up" || d == "down" ? "top" : "left";
            d = d == "up" || d == "left" ? "pos" : "neg";
            var l = b.options.distance || (k == "top" ? c.outerHeight({
                margin: true
            }) / 2 : c.outerWidth({
                margin: true
            }) / 2);
            if (j == "show") {
                c.css("opacity", 0).css(k, d == "pos" ? -l : l)
            }
            var n = {
                opacity: j == "show" ? 1 : 0
            };
            n[k] = (j == "show" ? d == "pos" ? "+=" : "-=" : d == "pos" ? "-=" : "+=") + l;
            c.animate(n, {
                queue: false,
                duration: b.duration,
                easing: b.options.easing,
                complete: function () {
                    j == "hide" && c.hide();
                    a.effects.restore(c, m);
                    a.effects.removeWrapper(c);
                    b.callback && b.callback.apply(this, arguments);
                    c.dequeue()
                }
            })
        })
    }
})(jQuery);
(function (a) {
    a.effects.explode = function (b) {
        return this.queue(function () {
            var k = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3,
                l = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3;
            b.options.mode = b.options.mode == "toggle" ? a(this).is(":visible") ? "hide" : "show" : b.options.mode;
            var j = a(this).show().css("visibility", "hidden"),
                o = j.offset();
            o.top -= parseInt(j.css("marginTop"), 10) || 0;
            o.left -= parseInt(j.css("marginLeft"), 10) || 0;
            for (var p = j.outerWidth(true), q = j.outerHeight(true), m = 0; m < k; m++) {
                for (var n = 0; n < l; n++) {
                    j.clone().appendTo("body").wrap("<div></div>").css({
                        position: "absolute",
                        visibility: "visible",
                        left: -n * (p / l),
                        top: -m * (q / k)
                    }).parent().addClass("ui-effects-explode").css({
                        position: "absolute",
                        overflow: "hidden",
                        width: p / l,
                        height: q / k,
                        left: o.left + n * (p / l) + (b.options.mode == "show" ? (n - Math.floor(l / 2)) * (p / l) : 0),
                        top: o.top + m * (q / k) + (b.options.mode == "show" ? (m - Math.floor(k / 2)) * (q / k) : 0),
                        opacity: b.options.mode == "show" ? 0 : 1
                    }).animate({
                        left: o.left + n * (p / l) + (b.options.mode == "show" ? 0 : (n - Math.floor(l / 2)) * (p / l)),
                        top: o.top + m * (q / k) + (b.options.mode == "show" ? 0 : (m - Math.floor(k / 2)) * (q / k)),
                        opacity: b.options.mode == "show" ? 1 : 0
                    }, b.duration || 500)
                }
            }
            setTimeou
