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

    function e() {
        return +new Date
    }

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

            function G() {
                J = D == "width" ? F.offsetWidth : F.offsetHeight;
                var L = 0, K = 0;
                n.each(I, function () {
                    L += parseFloat(n.curCSS(F, "padding" + this, true)) || 0;
                    K += parseFloat(n.curCSS(F, "border" + this + "Width", true)) || 0
                });
                J -= Math.round(L + K)
            }

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

    var h = "jQuery" + e(), u = 0, z = {};
    n.extend({cache:{}, data:function (E, D, F) {
        E = E == l ? z : E;
        var G = E[h];
        if (!G) {
            G = E[h] = ++u
        }
        if (D && !n.cache[G]) {
            n.cache[G] = {}
        }
        if (F !== g) {
            n.cache[G][D] = F
        }
        return D ? n.cache[G][D] : G
    }, removeData:function (E, D) {
        E = E == l ? z : E;
        var G = E[h];
        if (D) {
            if (n.cache[G]) {
                delete n.cache[G][D];
                D = "";
                for (D in n.cache[G]) {
                    break
                }
                if (!D) {
                    n.removeData(E)
                }
            }
        } else {
            try {
                delete E[h]
            } catch (F) {
                if (E.removeAttribute) {
                    E.removeAttribute(h)
                }
            }
            delete n.cache[G]
        }
    }, queue:function (E, D, G) {
        if (E) {
            D = (D || "fx") + "queue";
            var F = n.data(E, D);
            if (!F || n.isArray(G)) {
                F = n.data(E, D, n.makeArray(G))
            } else {
                if (G) {
                    F.push(G)
                }
            }
        }
        return F
    }, dequeue:function (G, F) {
        var D = n.queue(G, F), E = D.shift();
        if (!F || F === "fx") {
            E = D[0]
        }
        if (E !== g) {
            E.call(G)
        }
    }});
    n.fn.extend({data:function (D, F) {
        var G = D.split(".");
        G[1] = G[1] ? "." + G[1] : "";
        if (F === g) {
            var E = this.triggerHandler("getData" + G[1] + "!", [G[0]]);
            if (E === g && this.length) {
                E = n.data(this[0], D)
            }
            return E === g && G[1] ? this.data(G[0]) : E
        } else {
            return this.trigger("setData" + G[1] + "!", [G[0], F]).each(function () {
                n.data(this, D, F)
            })
        }
    }, removeData:function (D) {
        return this.each(function () {
            n.removeData(this, D)
        })
    }, queue:function (D, E) {
        if (typeof D !== "string") {
            E = D;
            D = "fx"
        }
        if (E === g) {
            return n.queue(this[0], D)
        }
        return this.each(function () {
            var F = n.queue(this, D, E);
            if (D == "fx" && F.length == 1) {
                F[0].call(this)
            }
        })
    }, dequeue:function (D) {
        return this.each(function () {
            n.dequeue(this, D)
        })
    }});
    /*
     * Sizzle CSS Selector Engine - v0.9.1
     *  Copyright 2009, The Dojo Foundation
     *  Released under the MIT, BSD, and GPL Licenses.
     *  More information: http://sizzlejs.com/
     */
    (function () {
        var N = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g, I = 0, F = Object.prototype.toString;
        var E = function (ae, S, aa, V) {
            aa = aa || [];
            S = S || document;
            if (S.nodeType !== 1 && S.nodeType !== 9) {
                return[]
            }
            if (!ae || typeof ae !== "string") {
                return aa
            }
            var ab = [], ac, Y, ah, ag, Z, R, Q = true;
            N.lastIndex = 0;
            while ((ac = N.exec(ae)) !== null) {
                ab.push(ac[1]);
                if (ac[2]) {
                    R = RegExp.rightContext;
                    break
                }
            }
            if (ab.length > 1 && G.match.POS.exec(ae)) {
                if (ab.length === 2 && G.relative[ab[0]]) {
                    var U = "", X;
                    while ((X = G.match.POS.exec(ae))) {
                        U += X[0];
                        ae = ae.replace(G.match.POS, "")
                    }
                    Y = E.filter(U, E(/\s$/.test(ae) ? ae + "*" : ae, S))
                } else {
                    Y = G.relative[ab[0]] ? [S] : E(ab.shift(), S);
                    while (ab.length) {
                        var P = [];
                        ae = ab.shift();
                        if (G.relative[ae]) {
                            ae += ab.shift()
                        }
                        for (var af = 0, ad = Y.length; af < ad; af++) {
                            E(ae, Y[af], P)
                        }
                        Y = P
                    }
                }
            } else {
                var ai = V ? {expr:ab.pop(), set:D(V)} : E.find(ab.pop(), ab.length === 1 && S.parentNode ? S.parentNode : S);
                Y = E.filter(ai.expr, ai.set);
                if (ab.length > 0) {
                    ah = D(Y)
                } else {
                    Q = false
                }
                while (ab.length) {
                    var T = ab.pop(), W = T;
                    if (!G.relative[T]) {
                        T = ""
                    } else {
                        W = ab.pop()
                    }
                    if (W == null) {
                        W = S
                    }
                    G.relative[T](ah, W, M(S))
                }
            }
            if (!ah) {
                ah = Y
            }
            if (!ah) {
                throw"Syntax error, unrecognized expression: " + (T || ae)
            }
            if (F.call(ah) === "[object Array]") {
                if (!Q) {
                    aa.push.apply(aa, ah)
                } else {
                    if (S.nodeType === 1) {
                        for (var af = 0; ah[af] != null; af++) {
                            if (ah[af] && (ah[af] === true || ah[af].nodeType === 1 && H(S, ah[af]))) {
                                aa.push(Y[af])
                            }
                        }
                    } else {
                        for (var af = 0; ah[af] != null; af++) {
                            if (ah[af] && ah[af].nodeType === 1) {
                                aa.push(Y[af])
                            }
                        }
                    }
                }
            } else {
                D(ah, aa)
            }
            if (R) {
                E(R, S, aa, V)
            }
            return aa
        };
        E.matches = function (P, Q) {
            return E(P, null, null, Q)
        };
        E.find = function (V, S) {
            var W, Q;
            if (!V) {
                return[]
            }
            for (var R = 0, P = G.order.length; R < P; R++) {
                var T = G.order[R], Q;
                if ((Q = G.match[T].exec(V))) {
                    var U = RegExp.leftContext;
                    if (U.substr(U.length - 1) !== "\\") {
                        Q[1] = (Q[1] || "").replace(/\\/g, "");
                        W = G.find[T](Q, S);
                        if (W != null) {
                            V = V.replace(G.match[T], "");
                            break
                        }
                    }
                }
            }
            if (!W) {
                W = S.getElementsByTagName("*")
            }
            return{set:W, expr:V}
        };
        E.filter = function (S, ac, ad, T) {
            var Q = S, Y = [], ah = ac, V, ab;
            while (S && ac.length) {
                for (var U in G.filter) {
                    if ((V = G.match[U].exec(S)) != null) {
                        var Z = G.filter[U], R = null, X = 0, aa, ag;
                        ab = false;
                        if (ah == Y) {
                            Y = []
                        }
                        if (G.preFilter[U]) {
                            V = G.preFilter[U](V, ah, ad, Y, T);
                            if (!V) {
                                ab = aa = true
                            } else {
                                if (V === true) {
                                    continue
                                } else {
                                    if (V[0] === true) {
                                        R = [];
                                        var W = null, af;
                                        for (var ae = 0; (af = ah[ae]) !== g; ae++) {
                                            if (af && W !== af) {
                                                R.push(af);
                                                W = af
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (V) {
                            for (var ae = 0; (ag = ah[ae]) !== g; ae++) {
                                if (ag) {
                                    if (R && ag != R[X]) {
                                        X++
                                    }
                                    aa = Z(ag, V, X, R);
                                    var P = T ^ !!aa;
                                    if (ad && aa != null) {
                                        if (P) {
                                            ab = true
                                        } else {
                                            ah[ae] = false
                                        }
                                    } else {
                                        if (P) {
                                            Y.push(ag);
                                            ab = true
                                        }
                                    }
                                }
                            }
                        }
                        if (aa !== g) {
                            if (!ad) {
                                ah = Y
                            }
                            S = S.replace(G.match[U], "");
                            if (!ab) {
                                return[]
                            }
                            break
                        }
                    }
                }
                S = S.replace(/\s*,\s*/, "");
                if (S == Q) {
                    if (ab == null) {
                        throw"Syntax error, unrecognized expression: " + S
                    } else {
                        break
                    }
                }
                Q = S
            }
            return ah
        };
        var G = E.selectors = {order:["ID", "NAME", "TAG"], match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/, ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/, CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/}, attrMap:{"class":"className", "for":"htmlFor"}, attrHandle:{href:function (P) {
            return P.getAttribute("href")
        }}, relative:{"+":function (T, Q) {
            for (var R = 0, P = T.length; R < P; R++) {
                var S = T[R];
                if (S) {
                    var U = S.previousSibling;
                    while (U && U.nodeType !== 1) {
                        U = U.previousSibling
                    }
                    T[R] = typeof Q === "string" ? U || false : U === Q
                }
            }
            if (typeof Q === "string") {
                E.filter(Q, T, true)
            }
        }, ">":function (U, Q, V) {
            if (typeof Q === "string" && !/\W/.test(Q)) {
                Q = V ? Q : Q.toUpperCase();
                for (var R = 0, P = U.length; R < P; R++) {
                    var T = U[R];
                    if (T) {
                        var S = T.parentNode;
                        U[R] = S.nodeName === Q ? S : false
                    }
                }
            } else {
                for (var R = 0, P = U.length; R < P; R++) {
                    var T = U[R];
                    if (T) {
                        U[R] = typeof Q === "string" ? T.parentNode : T.parentNode === Q
                    }
                }
                if (typeof Q === "string") {
                    E.filter(Q, U, true)
                }
            }
        }, "":function (S, Q, U) {
            var R = "done" + (I++), P = O;
            if (!Q.match(/\W/)) {
                var T = Q = U ? Q : Q.toUpperCase();
                P = L
            }
            P("parentNode", Q, R, S, T, U)
        }, "~":function (S, Q, U) {
            var R = "done" + (I++), P = O;
            if (typeof Q === "string" && !Q.match(/\W/)) {
                var T = Q = U ? Q : Q.toUpperCase();
                P = L
            }
            P("previousSibling", Q, R, S, T, U)
        }}, find:{ID:function (Q, R) {
            if (R.getElementById) {
                var P = R.getElementById(Q[1]);
                return P ? [P] : []
            }
        }, NAME:function (P, Q) {
            return Q.getElementsByName ? Q.getElementsByName(P[1]) : null
        }, TAG:function (P, Q) {
            return Q.getElementsByTagName(P[1])
        }}, preFilter:{CLASS:function (S, Q, R, P, U) {
            S = " " + S[1].replace(/\\/g, "") + " ";
            for (var T = 0; Q[T]; T++) {
                if (U ^ (" " + Q[T].className + " ").indexOf(S) >= 0) {
                    if (!R) {
                        P.push(Q[T])
                    }
                } else {
                    if (R) {
                        Q[T] = false
                    }
                }
            }
            return false
        }, ID:function (P) {
            return P[1].replace(/\\/g, "")
        }, TAG:function (Q, P) {
            for (var R = 0; !P[R]; R++) {
            }
            return M(P[R]) ? Q[1] : Q[1].toUpperCase()
        }, CHILD:function (P) {
            if (P[1] == "nth") {
                var Q = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(P[2] == "even" && "2n" || P[2] == "odd" && "2n+1" || !/\D/.test(P[2]) && "0n+" + P[2] || P[2]);
                P[2] = (Q[1] + (Q[2] || 1)) - 0;
                P[3] = Q[3] - 0
            }
            P[0] = "done" + (I++);
            return P
        }, ATTR:function (Q) {
            var P = Q[1];
            if (G.attrMap[P]) {
                Q[1] = G.attrMap[P]
            }
            if (Q[2] === "~=") {
                Q[4] = " " + Q[4] + " "
            }
            return Q
        }, PSEUDO:function (T, Q, R, P, U) {
            if (T[1] === "not") {
                if (T[3].match(N).length > 1) {
                    T[3] = E(T[3], null, null, Q)
                } else {
                    var S = E.filter(T[3], Q, R, true ^ U);
                    if (!R) {
                        P.push.apply(P, S)
                    }
                    return false
                }
            } else {
                if (G.match.POS.test(T[0])) {
                    return true
                }
            }
            return T
        }, POS:function (P) {
            P.unshift(true);
            return P
        }}, filters:{enabled:function (P) {
            return P.disabled === false && P.type !== "hidden"
        }, disabled:function (P) {
            return P.disabled === true
        }, checked:function (P) {
            return P.checked === true
        }, selected:function (P) {
            P.parentNode.selectedIndex;
            return P.selected === true
        }, parent:function (P) {
            return !!P.firstChild
        }, empty:function (P) {
            return !P.firstChild
        }, has:function (R, Q, P) {
            return !!E(P[3], R).length
        }, header:function (P) {
            return/h\d/i.test(P.nodeName)
        }, text:function (P) {
            return"text" === P.type
        }, radio:function (P) {
            return"radio" === P.type
        }, checkbox:function (P) {
            return"checkbox" === P.type
        }, file:function (P) {
            return"file" === P.type
        }, password:function (P) {
            return"password" === P.type
        }, submit:function (P) {
            return"submit" === P.type
        }, image:function (P) {
            return"image" === P.type
        }, reset:function (P) {
            return"reset" === P.type
        }, button:function (P) {
            return"button" === P.type || P.nodeName.toUpperCase() === "BUTTON"
        }, input:function (P) {
            return/input|select|textarea|button/i.test(P.nodeName)
        }}, setFilters:{first:function (Q, P) {
            return P === 0
        }, last:function (R, Q, P, S) {
            return Q === S.length - 1
        }, even:function (Q, P) {
            return P % 2 === 0
        }, odd:function (Q, P) {
            return P % 2 === 1
        }, lt:function (R, Q, P) {
            return Q < P[3] - 0
        }, gt:function (R, Q, P) {
            return Q > P[3] - 0
        }, nth:function (R, Q, P) {
            return P[3] - 0 == Q
        }, eq:function (R, Q, P) {
            return P[3] - 0 == Q
        }}, filter:{CHILD:function (P, S) {
            var V = S[1], W = P.parentNode;
            var U = "child" + W.childNodes.length;
            if (W && (!W[U] || !P.nodeIndex)) {
                var T = 1;
                for (var Q = W.firstChild; Q; Q = Q.nextSibling) {
                    if (Q.nodeType == 1) {
                        Q.nodeIndex = T++
                    }
                }
                W[U] = T - 1
            }
            if (V == "first") {
                return P.nodeIndex == 1
            } else {
                if (V == "last") {
                    return P.nodeIndex == W[U]
                } else {
                    if (V == "only") {
                        return W[U] == 1
                    } else {
                        if (V == "nth") {
                            var Y = false, R = S[2], X = S[3];
                            if (R == 1 && X == 0) {
                                return true
                            }
                            if (R == 0) {
                                if (P.nodeIndex == X) {
                                    Y = true
                                }
                            } else {
                                if ((P.nodeIndex - X) % R == 0 && (P.nodeIndex - X) / R >= 0) {
                                    Y = true
                                }
                            }
                            return Y
                        }
                    }
                }
            }
        }, PSEUDO:function (V, R, S, W) {
            var Q = R[1], T = G.filters[Q];
            if (T) {
                return T(V, S, R, W)
            } else {
                if (Q === "contains") {
                    return(V.textContent || V.innerText || "").indexOf(R[3]) >= 0
                } else {
                    if (Q === "not") {
                        var U = R[3];
                        for (var S = 0, P = U.length; S < P; S++) {
                            if (U[S] === V) {
                                return false
                            }
                        }
                        return true
                    }
                }
            }
        }, ID:function (Q, P) {
            return Q.nodeType === 1 && Q.getAttribute("id") === P
        }, TAG:function (Q, P) {
            return(P === "*" && Q.nodeType === 1) || Q.nodeName === P
        }, CLASS:function (Q, P) {
            return P.test(Q.className)
        }, ATTR:function (T, R) {
            var P = G.attrHandle[R[1]] ? G.attrHandle[R[1]](T) : T[R[1]] || T.getAttribute(R[1]), U = P + "", S = R[2], Q = R[4];
            return P == null ? false : S === "=" ? U === Q : S === "*=" ? U.indexOf(Q) >= 0 : S === "~=" ? (" " + U + " ").indexOf(Q) >= 0 : !R[4] ? P : S === "!=" ? U != Q : S === "^=" ? U.indexOf(Q) === 0 : S === "$=" ? U.substr(U.length - Q.length) === Q : S === "|=" ? U === Q || U.substr(0, Q.length + 1) === Q + "-" : false
        }, POS:function (T, Q, R, U) {
            var P = Q[2], S = G.setFilters[P];
            if (S) {
                return S(T, R, Q, U)
            }
        }}};
        for (var K in G.match) {
            G.match[K] = RegExp(G.match[K].source + /(?![^\[]*\])(?![^\(]*\))/.source)
        }
        var D = function (Q, P) {
            Q = Array.prototype.slice.call(Q);
            if (P) {
                P.push.apply(P, Q);
                return P
            }
            return Q
        };
        try {
            Array.prototype.slice.call(document.documentElement.childNodes)
        } catch (J) {
            D = function (T, S) {
                var Q = S || [];
                if (F.call(T) === "[object Array]") {
                    Array.prototype.push.apply(Q, T)
                } else {
                    if (typeof T.length === "number") {
                        for (var R = 0, P = T.length; R < P; R++) {
                            Q.push(T[R])
                        }
                    } else {
                        for (var R = 0; T[R]; R++) {
                            Q.push(T[R])
                        }
                    }
                }
                return Q
            }
        }
        (function () {
            var Q = document.createElement("form"), R = "script" + (new Date).getTime();
            Q.innerHTML = "<input name='" + R + "'/>";
            var P = document.documentElement;
            P.insertBefore(Q, P.firstChild);
            if (!!document.getElementById(R)) {
                G.find.ID = function (T, U) {
                    if (U.getElementById) {
                        var S = U.getElementById(T[1]);
                        return S ? S.id === T[1] || S.getAttributeNode && S.getAttributeNode("id").nodeValue === T[1] ? [S] : g : []
                    }
                };
                G.filter.ID = function (U, S) {
                    var T = U.getAttributeNode && U.getAttributeNode("id");
                    return U.nodeType === 1 && T && T.nodeValue === S
                }
            }
            P.removeChild(Q)
        })();
        (function () {
            var P = document.createElement("div");
            P.appendChild(document.createComment(""));
            if (P.getElementsByTagName("*").length > 0) {
                G.find.TAG = function (Q, U) {
                    var T = U.getElementsByTagName(Q[1]);
                    if (Q[1] === "*") {
                        var S = [];
                        for (var R = 0; T[R]; R++) {
                            if (T[R].nodeType === 1) {
                                S.push(T[R])
                            }
                        }
                        T = S
                    }
                    return T
                }
            }
            P.innerHTML = "<a href='#'></a>";
            if (P.firstChild.getAttribute("href") !== "#") {
                G.attrHandle.href = function (Q) {
                    return Q.getAttribute("href", 2)
                }
            }
        })();
        if (document.querySelectorAll) {
            (function () {
                var P = E;
                E = function (T, S, Q, R) {
                    S = S || document;
                    if (!R && S.nodeType === 9) {
                        try {
                            return D(S.querySelectorAll(T), Q)
                        } catch (U) {
                        }
                    }
                    return P(T, S, Q, R)
                };
                E.find = P.find;
                E.filter = P.filter;
                E.selectors = P.selectors;
                E.matches = P.matches
            })()
        }
        if (document.documentElement.getElementsByClassName) {
            G.order.splice(1, 0, "CLASS");
            G.find.CLASS = function (P, Q) {
                return Q.getElementsByClassName(P[1])
            }
        }
        function L(Q, W, V, Z, X, Y) {
            for (var T = 0, R = Z.length; T < R; T++) {
                var P = Z[T];
                if (P) {
                    P = P[Q];
                    var U = false;
                    while (P && P.nodeType) {
                        var S = P[V];
                        if (S) {
                            U = Z[S];
                            break
                        }
                        if (P.nodeType === 1 && !Y) {
                            P[V] = T
                        }
                        if (P.nodeName === W) {
                            U = P;
                            break
                        }
                        P = P[Q]
                    }
                    Z[T] = U
                }
            }
        }

        function O(Q, V, U, Y, W, X) {
            for (var S = 0, R = Y.length; S < R; S++) {
                var P = Y[S];
                if (P) {
                    P = P[Q];
                    var T = false;
                    while (P && P.nodeType) {
                        if (P[U]) {
                            T = Y[P[U]];
                            break
                        }
                        if (P.nodeType === 1) {
                            if (!X) {
                                P[U] = S
                            }
                            if (typeof V !== "string") {
                                if (P === V) {
                                    T = true;
                                    break
                                }
                            } else {
                                if (E.filter(V, [P]).length > 0) {
                                    T = P;
                                    break
                                }
                            }
                        }
                        P = P[Q]
                    }
                    Y[S] = T
                }
            }
        }

        var H = document.compareDocumentPosition ? function (Q, P) {
            return Q.compareDocumentPosition(P) & 16
        } : function (Q, P) {
            return Q !== P && (Q.contains ? Q.contains(P) : true)
        };
        var M = function (P) {
            return P.documentElement && !P.body || P.tagName && P.ownerDocument && !P.ownerDocument.body
        };
        n.find = E;
        n.filter = E.filter;
        n.expr = E.selectors;
        n.expr[":"] = n.expr.filters;
        E.selectors.filters.hidden = function (P) {
            return"hidden" === P.type || n.css(P, "display") === "none" || n.css(P, "visibility") === "hidden"
        };
        E.selectors.filters.visible = function (P) {
            return"hidden" !== P.type && n.css(P, "display") !== "none" && n.css(P, "visibility") !== "hidden"
        };
        E.selectors.filters.animated = function (P) {
            return n.grep(n.timers,
                function (Q) {
                    return P === Q.elem
                }).length
        };
        n.multiFilter = function (R, P, Q) {
            if (Q) {
                R = ":not(" + R + ")"
            }
            return E.matches(R, P)
        };
        n.dir = function (R, Q) {
            var P = [], S = R[Q];
            while (S && S != document) {
                if (S.nodeType == 1) {
                    P.push(S)
                }
                S = S[Q]
            }
            return P
        };
        n.nth = function (T, P, R, S) {
            P = P || 1;
            var Q = 0;
            for (; T; T = T[R]) {
                if (T.nodeType == 1 && ++Q == P) {
                    break
                }
            }
            return T
        };
        n.sibling = function (R, Q) {
            var P = [];
            for (; R; R = R.nextSibling) {
                if (R.nodeType == 1 && R != Q) {
                    P.push(R)
                }
            }
            return P
        };
        return;
        l.Sizzle = E
    })();
    n.event = {add:function (H, E, G, J) {
        if (H.nodeType == 3 || H.nodeType == 8) {
            return
        }
        if (H.setInterval && H != l) {
            H = l
        }
        if (!G.guid) {
            G.guid = this.guid++
        }
        if (J !== g) {
            var F = G;
            G = this.proxy(F);
            G.data = J
        }
        var D = n.data(H, "events") || n.data(H, "events", {}), I = n.data(H, "handle") || n.data(H, "handle", function () {
            return typeof n !== "undefined" && !n.event.triggered ? n.event.handle.apply(arguments.callee.elem, arguments) : g
        });
        I.elem = H;
        n.each(E.split(/\s+/), function (L, M) {
            var N = M.split(".");
            M = N.shift();
            G.type = N.slice().sort().join(".");
            var K = D[M];
            if (n.event.specialAll[M]) {
                n.event.specialAll[M].setup.call(H, J, N)
            }
            if (!K) {
                K = D[M] = {};
                if (!n.event.special[M] || n.event.special[M].setup.call(H, J, N) === false) {
                    if (H.addEventListener) {
                        H.addEventListener(M, I, false)
                    } else {
                        if (H.attachEvent) {
                            H.attachEvent("on" + M, I)
                        }
                    }
                }
            }
            K[G.guid] = G;
            n.event.global[M] = true
        });
        H = null
    }, guid:1, global:{}, remove:function (J, G, I) {
        if (J.nodeType == 3 || J.nodeType == 8) {
            return
        }
        var F = n.data(J, "events"), E, D;
        if (F) {
            if (G === g || (typeof G === "string" && G.charAt(0) == ".")) {
                for (var H in F) {
                    this.remove(J, H + (G || ""))
                }
            } else {
                if (G.type) {
                    I = G.handler;
                    G = G.type
                }
                n.each(G.split(/\s+/), function (L, N) {
                    var P = N.split(".");
                    N = P.shift();
                    var M = RegExp("(^|\\.)" + P.slice().sort().join(".*\\.") + "(\\.|$)");
                    if (F[N]) {
                        if (I) {
                            delete F[N][I.guid]
                        } else {
                            for (var O in F[N]) {
                                if (M.test(F[N][O].type)) {
                                    delete F[N][O]
                                }
                            }
                        }
                        if (n.event.specialAll[N]) {
                            n.event.specialAll[N].teardown.call(J, P)
                        }
                        for (E in F[N]) {
                            break
                        }
                        if (!E) {
                            if (!n.event.special[N] || n.event.special[N].teardown.call(J, P) === false) {
                                if (J.removeEventListener) {
                                    J.removeEventListener(N, n.data(J, "handle"), false)
                                } else {
                                    if (J.detachEvent) {
                                        J.detachEvent("on" + N, n.data(J, "handle"))
                                    }
                                }
                            }
                            E = null;
                            delete F[N]
                        }
                    }
                })
            }
            for (E in F) {
                break
            }
            if (!E) {
                var K = n.data(J, "handle");
                if (K) {
                    K.elem = null
                }
                n.removeData(J, "events");
                n.removeData(J, "handle")
            }
        }
    }, trigger:function (H, J, G, D) {
        var F = H.type || H;
        if (!D) {
            H = typeof H === "object" ? H[h] ? H : n.extend(n.Event(F), H) : n.Event(F);
            if (F.indexOf("!") >= 0) {
                H.type = F = F.slice(0, -1);
                H.exclusive = true
            }
            if (!G) {
                H.stopPropagation();
                if (this.global[F]) {
                    n.each(n.cache, function () {
                        if (this.events && this.events[F]) {
                            n.event.trigger(H, J, this.handle.elem)
                        }
                    })
                }
            }
            if (!G || G.nodeType == 3 || G.nodeType == 8) {
                return g
            }
            H.result = g;
            H.target = G;
            J = n.makeArray(J);
            J.unshift(H)
        }
        H.currentTarget = G;
        var I = n.data(G, "handle");
        if (I) {
            I.apply(G, J)
        }
        if ((!G[F] || (n.nodeName(G, "a") && F == "click")) && G["on" + F] && G["on" + F].apply(G, J) === false) {
            H.result = false
        }
        if (!D && G[F] && !H.isDefaultPrevented() && !(n.nodeName(G, "a") && F == "click")) {
            this.triggered = true;
            try {
                G[F]()
            } catch (K) {
            }
        }
        this.triggered = false;
        if (!H.isPropagationStopped()) {
            var E = G.parentNode || G.ownerDocument;
            if (E) {
                n.event.trigger(H, J, E, true)
            }
        }
    }, handle:function (J) {
        var I, D;
        J = arguments[0] = n.event.fix(J || l.event);
        var K = J.type.split(".");
        J.type = K.shift();
        I = !K.length && !J.exclusive;
        var H = RegExp("(^|\\.)" + K.slice().sort().join(".*\\.") + "(\\.|$)");
        D = (n.data(this, "events") || {})[J.type];
        for (var F in D) {
            var G = D[F];
            if (I || H.test(G.type)) {
                J.handler = G;
                J.data = G.data;
                var E = G.apply(this, arguments);
                if (E !== g) {
                    J.result = E;
                    if (E === false) {
                        J.preventDefault();
                        J.stopPropagation()
                    }
                }
                if (J.isImmediatePropagationStopped()) {
                    break
                }
            }
        }
    }, props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), fix:function (G) {
        if (G[h]) {
            return G
        }
        var E = G;
        G = n.Event(E);
        for (var F = this.props.length, I; F;) {
            I = this.props[--F];
            G[I] = E[I]
        }
        if (!G.target) {
            G.target = G.srcElement || document
        }
        if (G.target.nodeType == 3) {
            G.target = G.target.parentNode
        }
        if (!G.relatedTarget && G.fromElement) {
            G.relatedTarget = G.fromElement == G.target ? G.toElement : G.fromElement
        }
        if (G.pageX == null && G.clientX != null) {
            var H = document.documentElement, D = document.body;
            G.pageX = G.clientX + (H && H.scrollLeft || D && D.scrollLeft || 0) - (H.clientLeft || 0);
            G.pageY = G.clientY + (H && H.scrollTop || D && D.scrollTop || 0) - (H.clientTop || 0)
        }
        if (!G.which && ((G.charCode || G.charCode === 0) ? G.charCode : G.keyCode)) {
            G.which = G.charCode || G.keyCode
        }
        if (!G.metaKey && G.ctrlKey) {
            G.metaKey = G.ctrlKey
        }
        if (!G.which && G.button) {
            G.which = (G.button & 1 ? 1 : (G.button & 2 ? 3 : (G.button & 4 ? 2 : 0)))
        }
        return G
    }, proxy:function (E, D) {
        D = D || function () {
            return E.apply(this, arguments)
        };
        D.guid = E.guid = E.guid || D.guid || this.guid++;
        return D
    }, special:{ready:{setup:A, teardown:function () {
    }}}, specialAll:{live:{setup:function (D, E) {
        n.event.add(this, E[0], c)
    }, teardown:function (F) {
        if (F.length) {
            var D = 0, E = RegExp("(^|\\.)" + F[0] + "(\\.|$)");
            n.each((n.data(this, "events").live || {}), function () {
                if (E.test(this.type)) {
                    D++
                }
            });
            if (D < 1) {
                n.event.remove(this, F[0], c)
            }
        }
    }}}};
    n.Event = function (D) {
        if (!this.preventDefault) {
            return new n.Event(D)
        }
        if (D && D.type) {
            this.originalEvent = D;
            this.type = D.type;
            this.timeStamp = D.timeStamp
        } else {
            this.type = D
        }
        if (!this.timeStamp) {
            this.timeStamp = e()
        }
        this[h] = true
    };
    function k() {
        return false
    }

    function t() {
        return true
    }

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

    function i(E, D) {
        return["live", E, D.replace(/\./g, "`").replace(/ /g, "|")].join(".")
    }

    n.extend({isReady:false, readyList:[], ready:function () {
        if (!n.isReady) {
            n.isReady = true;
            if (n.readyList) {
                n.each(n.readyList, function () {
                    this.call(document, n)
                });
                n.readyList = null
            }
            n(document).triggerHandler("ready")
        }
    }});
    var w = false;

    function A() {
        if (w) {
            return
        }
        w = true;
        if (document.addEventListener) {
            document.addEventListener("DOMContentLoaded", function () {
                document.removeEventListener("DOMContentLoaded", arguments.callee, false);
                n.ready()
            }, false)
        } else {
            if (document.attachEvent) {
                document.attachEvent("onreadystatechange", function () {
                    if (document.readyState === "complete") {
                        document.detachEvent("onreadystatechange", arguments.callee);
                        n.ready()
                    }
                });
                if (document.documentElement.doScroll && !l.frameElement) {
                    (function () {
                        if (n.isReady) {
                            return
                        }
                        try {
                            document.documentElement.doScroll("left")
                        } catch (D) {
                            setTimeout(arguments.callee, 0);
                            return
                        }
                        n.ready()
                    })()
                }
            }
        }
        n.event.add(l, "load", n.ready)
    }

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

        function K() {
            if (L.complete) {
                L.complete(I, Q)
            }
            if (L.global) {
                n.event.trigger("ajaxComplete", [I, L])
            }
            if (L.global && !--n.active) {
                n.event.trigger("ajaxStop")
            }
        }

        return I
    }, handleError:function (E, G, D, F) {
        if (E.error) {
            E.error(G, D, F)
        }
        if (E.global) {
            n.event.trigger("ajaxError", [G, E, F])
        }
    }, active:0, httpSuccess:function (E) {
        try {
            return !E.status && location.protocol == "file:" || (E.status >= 200 && E.status < 300) || E.status == 304 || E.status == 1223
        } catch (D) {
        }
        return false
    }, httpNotModified:function (F, D) {
        try {
            var G = F.getResponseHeader("Last-Modified");
            return F.status == 304 || G == n.lastModified[D]
        } catch (E) {
        }
        return false
    }, httpData:function (I, G, F) {
        var E = I.getResponseHeader("content-type"), D = G == "xml" || !G && E && E.indexOf("xml") >= 0, H = D ? I.responseXML : I.responseText;
        if (D && H.documentElement.tagName == "parsererror") {
            throw"parsererror"
        }
        if (F && F.dataFilter) {
            H = F.dataFilter(H, G)
        }
        if (typeof H === "string") {
            if (G == "script") {
                n.globalEval(H)
            }
            if (G == "json") {
                H = l["eval"]("(" + H + ")")
            }
        }
        return H
    }, param:function (D) {
        var F = [];

        function G(H, I) {
            F[F.length] = encodeURIComponent(H) + "=" + encodeURIComponent(I)
        }

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

    function s(E, D) {
        var F = {};
        n.each(d.concat.apply([], d.slice(0, D)), function () {
            F[this] = E
        });
        return F
    }

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

        function E(I) {
            return D.step(I)
        }

        E.elem = this.elem;
        n.timers.push(E);
        if (E() && n.timerId == null) {
            n.timerId = setInterval(function () {
                var J = n.timers;
                for (var I = 0; I < J.length; I++) {
                    if (!J[I]()) {
                        J.splice(I--, 1)
                    }
                }
                if (!J.length) {
                    clearInterval(n.timerId);
                    n.timerId = null
                }
            }, 13)
        }
    }, show:function () {
        this.options.orig[this.prop] = n.attr(this.elem.style, this.prop);
        this.options.show = true;
        this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
        n(this.elem).show()
    }, hide:function () {
        this.options.orig[this.prop] = n.attr(this.elem.style, this.prop);
        this.options.hide = true;
        this.custom(this.cur(), 0)
    }, step:function (G) {
        var F = e();
        if (G || F >= this.options.duration + this.startTime) {
            this.now = this.end;
            this.pos = this.state = 1;
            this.update();
            this.options.curAnim[this.prop] = true;
            var D = true;
            for (var E in this.options.curAnim) {
                if (this.options.curAnim[E] !== true) {
                    D = false
                }
            }
            if (D) {
                if (this.options.display != null) {
                    this.elem.style.overflow = this.options.overflow;
                    this.elem.style.display = this.options.display;
                    if (n.css(this.elem, "display") == "none") {
                        this.elem.style.display = "block"
                    }
                }
                if (this.options.hide) {
                    n(this.elem).hide()
                }
                if (this.options.hide || this.options.show) {
                    for (var H in this.options.curAnim) {
                        n.attr(this.elem.style, H, this.options.orig[H])
                    }
                }
            }
            if (D) {
                this.options.complete.call(this.elem)
            }
            return false
        } else {
            var I = F - this.startTime;
            this.state = I / this.options.duration;
            this.pos = n.easing[this.options.easing || (n.easing.swing ? "swing" : "linear")](this.state, I, 0, 1, this.options.duration);
            this.now = this.start + ((this.end - this.start) * this.pos);
            this.update()
        }
        return true
    }};
    n.extend(n.fx, {speeds:{slow:600, fast:200, _default:400}, step:{opacity:function (D) {
        n.attr(D.elem.style, "opacity", D.now)
    }, _default:function (D) {
        if (D.elem.style && D.elem.style[D.prop] != null) {
            D.elem.style[D.prop] = D.now + D.unit
        } else {
            D.elem[D.prop] = D.now
        }
    }}});
    if (document.documentElement.getBoundingClientRect) {
        n.fn.offset = function () {
            if (!this[0]) {
                return{top:0, left:0}
            }
            if (this[0] === this[0].ownerDocument.body) {
                return n.offset.bodyOffset(this[0])
            }
            var F = this[0].getBoundingClientRect(), I = this[0].ownerDocument, E = I.body, D = I.documentElement, K = D.clientTop || E.clientTop || 0, J = D.clientLeft || E.clientLeft || 0, H = F.top + (self.pageYOffset || n.boxModel && D.scrollTop || E.scrollTop) - K, G = F.left + (self.pageXOffset || n.boxModel && D.scrollLeft || E.scrollLeft) - J;
            return{top:H, left:G}
        }
    } else {
        n.fn.offset = function () {
            if (!this[0]) {
                return{top:0, left:0}
            }
            if (this[0] === this[0].ownerDocument.body) {
                return n.offset.bodyOffset(this[0])
            }
            n.offset.initialized || n.offset.initialize();
            var I = this[0], F = I.offsetParent, E = I, N = I.ownerDocument, L, G = N.documentElement, J = N.body, K = N.defaultView, D = K.getComputedStyle(I, null), M = I.offsetTop, H = I.offsetLeft;
            while ((I = I.parentNode) && I !== J && I !== G) {
                L = K.getComputedStyle(I, null);
                M -= I.scrollTop, H -= I.scrollLeft;
                if (I === F) {
                    M += I.offsetTop, H += I.offsetLeft;
                    if (n.offset.doesNotAddBorder && !(n.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(I.tagName))) {
                        M += parseInt(L.borderTopWidth, 10) || 0, H += parseInt(L.borderLeftWidth, 10) || 0
                    }
                    E = F, F = I.offsetParent
                }
                if (n.offset.subtractsBorderForOverflowNotVisible && L.overflow !== "visible") {
                    M += parseInt(L.borderTopWidth, 10) || 0, H += parseInt(L.borderLeftWidth, 10) || 0
                }
                D = L
            }
            if (D.position === "relative" || D.position === "static") {
                M += J.offsetTop, H += J.offsetLeft
            }
            if (D.position === "fixed") {
                M += Math.max(G.scrollTop, J.scrollTop), H += Math.max(G.scrollLeft, J.scrollLeft)
            }
            return{top:M, left:H}
        }
    }
    n.offset = {initialize:function () {
        if (this.initialized) {
            return
        }
        var K = document.body, E = document.createElement("div"), G, F, M, H, L, D, I = K.style.marginTop, J = '<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>';
        L = {position:"absolute", top:0, left:0, margin:0, border:0, width:"1px", height:"1px", visibility:"hidden"};
        for (D in L) {
            E.style[D] = L[D]
        }
        E.innerHTML = J;
        K.insertBefore(E, K.firstChild);
        G = E.firstChild, F = G.firstChild, H = G.nextSibling.firstChild.firstChild;
        this.doesNotAddBorder = (F.offsetTop !== 5);
        this.doesAddBorderForTableAndCells = (H.offsetTop === 5);
        G.style.overflow = "hidden", G.style.position = "relative";
        this.subtractsBorderForOverflowNotVisible = (F.offsetTop === -5);
        K.style.marginTop = "1px";
        this.doesNotIncludeMarginInBodyOffset = (K.offsetTop === 0);
        K.style.marginTop = I;
        K.removeChild(E);
        this.initialized = true
    }, bodyOffset:function (D) {
        n.offset.initialized || n.offset.initialize();
        var F = D.offsetTop, E = D.offsetLeft;
        if (n.offset.doesNotIncludeMarginInBodyOffset) {
            F += parseInt(n.curCSS(D, "marginTop", true), 10) || 0, E += parseInt(n.curCSS(D, "marginLeft", true), 10) || 0
        }
        return{top:F, left:E}
    }};
    n.fn.extend({position:function () {
        var H = 0, G = 0, E;
        if (this[0]) {
            var F = this.offsetParent(), I = this.offset(), D = /^body|html$/i.test(F[0].tagName) ? {top:0, left:0} : F.offset();
            I.top -= j(this, "marginTop");
            I.left -= j(this, "marginLeft");
            D.top += j(F, "borderTopWidth");
            D.left += j(F, "borderLeftWidth");
            E = {top:I.top - D.top, left:I.left - D.left}
        }
        return E
    }, offsetParent:function () {
        var D = this[0].offsetParent || document.body;
        while (D && (!/^body|html$/i.test(D.tagName) && n.css(D, "position") == "static")) {
            D = D.offsetParent
        }
        return n(D)
    }});
    n.each(["Left", "Top"], function (E, D) {
        var F = "scroll" + D;
        n.fn[F] = function (G) {
            if (!this[0]) {
                return null
            }
            return G !== g ? this.each(function () {
                this == l || this == document ? l.scrollTo(!E ? G : n(l).scrollLeft(), E ? G : n(l).scrollTop()) : this[F] = G
            }) : this[0] == l || this[0] == document ? self[E ? "pageYOffset" : "pageXOffset"] || n.boxModel && document.documentElement[F] || document.body[F] : this[0][F]
        }
    });
    n.each(["Height", "Width"], function (G, E) {
        var D = G ? "Left" : "Top", F = G ? "Right" : "Bottom";
        n.fn["inner" + E] = function () {
            return this[E.toLowerCase()]() + j(this, "padding" + D) + j(this, "padding" + F)
        };
        n.fn["outer" + E] = function (I) {
            return this["inner" + E]() + j(this, "border" + D + "Width") + j(this, "border" + F + "Width") + (I ? j(this, "margin" + D) + j(this, "margin" + F) : 0)
        };
        var H = E.toLowerCase();
        n.fn[H] = function (I) {
            return this[0] == l ? document.compatMode == "CSS1Compat" && document.documentElement["client" + E] || document.body["client" + E] : this[0] == document ? Math.max(document.documentElement["client" + E], document.body["scroll" + E], document.documentElement["scroll" + E], document.body["offset" + E], document.documentElement["offset" + E]) : I === g ? (this.length ? n.css(this[0], H) : null) : this.css(H, typeof I === "string" ? I : I + "px")
        }
    })
})();
