/*
 * jQuery UI Effects 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
(function(C){
    C.effects = C.effects || {};
    C.extend(C.effects, {
        version: "1.6",
        save: function(F, G){
            for (var E = 0; E < G.length; E++) {
                if (G[E] !== null) {
                    C.data(F[0], "ec.storage." + G[E], F[0].style[G[E]])
                }
            }
        },
        restore: function(F, G){
            for (var E = 0; E < G.length; E++) {
                if (G[E] !== null) {
                    F.css(G[E], C.data(F[0], "ec.storage." + G[E]))
                }
            }
        },
        setMode: function(E, F){
            if (F == "toggle") {
                F = E.is(":hidden") ? "show" : "hide"
            }
            return F
        },
        getBaseline: function(F, G){
            var H, E;
            switch (F[0]) {
                case "top":
                    H = 0;
                    break;
                case "middle":
                    H = 0.5;
                    break;
                case "bottom":
                    H = 1;
                    break;
                default:
                    H = F[0] / G.height
            }
            switch (F[1]) {
                case "left":
                    E = 0;
                    break;
                case "center":
                    E = 0.5;
                    break;
                case "right":
                    E = 1;
                    break;
                default:
                    E = F[1] / G.width
            }
            return {
                x: E,
                y: H
            }
        },
        createWrapper: function(F){
            if (F.parent().attr("id") == "fxWrapper") {
                return F
            }
            var E = {
                width: F.outerWidth({
                    margin: true
                }),
                height: F.outerHeight({
                    margin: true
                }),
                "float": F.css("float")
            };
            F.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
            var I = F.parent();
            if (F.css("position") == "static") {
                I.css({
                    position: "relative"
                });
                F.css({
                    position: "relative"
                })
            }
            else {
                var H = F.css("top");
                if (isNaN(parseInt(H))) {
                    H = "auto"
                }
                var G = F.css("left");
                if (isNaN(parseInt(G))) {
                    G = "auto"
                }
                I.css({
                    position: F.css("position"),
                    top: H,
                    left: G,
                    zIndex: F.css("z-index")
                }).show();
                F.css({
                    position: "relative",
                    top: 0,
                    left: 0
                })
            }
            I.css(E);
            return I
        },
        removeWrapper: function(E){
            if (E.parent().attr("id") == "fxWrapper") {
                return E.parent().replaceWith(E)
            }
            return E
        },
        setTransition: function(F, G, E, H){
            H = H || {};
            C.each(G, function(J, I){
                unit = F.cssUnit(I);
                if (unit[0] > 0) {
                    H[I] = unit[0] * E + unit[1]
                }
            });
            return H
        },
        animateClass: function(G, H, J, I){
            var E = (typeof J == "function" ? J : (I ? I : null));
            var F = (typeof J == "object" ? J : null);
            return this.each(function(){
                var O = {};
                var M = C(this);
                var N = M.attr("style") || "";
                if (typeof N == "object") {
                    N = N["cssText"]
                }
                if (G.toggle) {
                    M.hasClass(G.toggle) ? G.remove = G.toggle : G.add = G.toggle
                }
                var K = C.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle));
                if (G.add) {
                    M.addClass(G.add)
                }
                if (G.remove) {
                    M.removeClass(G.remove)
                }
                var L = C.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle));
                if (G.add) {
                    M.removeClass(G.add)
                }
                if (G.remove) {
                    M.addClass(G.remove)
                }
                for (var P in L) {
                    if (typeof L[P] != "function" && L[P] && P.indexOf("Moz") == -1 && P.indexOf("length") == -1 && L[P] != K[P] && (P.match(/color/i) || (!P.match(/color/i) && !isNaN(parseInt(L[P], 10)))) && (K.position != "static" || (K.position == "static" && !P.match(/left|top|bottom|right/)))) {
                        O[P] = L[P]
                    }
                }
                M.animate(O, H, F, function(){
                    if (typeof C(this).attr("style") == "object") {
                        C(this).attr("style")["cssText"] = "";
                        C(this).attr("style")["cssText"] = N
                    }
                    else {
                        C(this).attr("style", N)
                    }
                    if (G.add) {
                        C(this).addClass(G.add)
                    }
                    if (G.remove) {
                        C(this).removeClass(G.remove)
                    }
                    if (E) {
                        E.apply(this, arguments)
                    }
                })
            })
        }
    });
    C.fn.extend({
        _show: C.fn.show,
        _hide: C.fn.hide,
        __toggle: C.fn.toggle,
        _addClass: C.fn.addClass,
        _removeClass: C.fn.removeClass,
        _toggleClass: C.fn.toggleClass,
        effect: function(E, G, F, H){
            return C.effects[E] ? C.effects[E].call(this, {
                method: E,
                options: G || {},
                duration: F,
                callback: H
            }) : null
        },
        show: function(){
            if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0]))) {
                return this._show.apply(this, arguments)
            }
            else {
                var E = arguments[1] || {};
                E["mode"] = "show";
                return this.effect.apply(this, [arguments[0], E, arguments[2] || E.duration, arguments[3] || E.callback])
            }
        },
        hide: function(){
            if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0]))) {
                return this._hide.apply(this, arguments)
            }
            else {
                var E = arguments[1] || {};
                E["mode"] = "hide";
                return this.effect.apply(this, [arguments[0], E, arguments[2] || E.duration, arguments[3] || E.callback])
            }
        },
        toggle: function(){
            if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])) || (arguments[0].constructor == Function)) {
                return this.__toggle.apply(this, arguments)
            }
            else {
                var E = arguments[1] || {};
                E["mode"] = "toggle";
                return this.effect.apply(this, [arguments[0], E, arguments[2] || E.duration, arguments[3] || E.callback])
            }
        },
        addClass: function(F, E, H, G){
            return E ? C.effects.animateClass.apply(this, [{
                add: F
            }, E, H, G]) : this._addClass(F)
        },
        removeClass: function(F, E, H, G){
            return E ? C.effects.animateClass.apply(this, [{
                remove: F
            }, E, H, G]) : this._removeClass(F)
        },
        toggleClass: function(F, E, H, G){
            return E ? C.effects.animateClass.apply(this, [{
                toggle: F
            }, E, H, G]) : this._toggleClass(F)
        },
        morph: function(E, G, F, I, H){
            return C.effects.animateClass.apply(this, [{
                add: G,
                remove: E
            }, F, I, H])
        },
        switchClass: function(){
            return this.morph.apply(this, arguments)
        },
        cssUnit: function(E){
            var F = this.css(E), G = [];
            C.each(["em", "px", "%", "pt"], function(H, I){
                if (F.indexOf(I) > 0) {
                    G = [parseFloat(F), I]
                }
            });
            return G
        }
    });
    C.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(F, E){
        C.fx.step[E] = function(G){
            if (G.state == 0) {
                G.start = D(G.elem, E);
                G.end = B(G.end)
            }
            G.elem.style[E] = "rgb(" + [Math.max(Math.min(parseInt((G.pos * (G.end[0] - G.start[0])) + G.start[0]), 255), 0), Math.max(Math.min(parseInt((G.pos * (G.end[1] - G.start[1])) + G.start[1]), 255), 0), Math.max(Math.min(parseInt((G.pos * (G.end[2] - G.start[2])) + G.start[2]), 255), 0)].join(",") + ")"
        }
    });
    function B(F){
        var E;
        if (F && F.constructor == Array && F.length == 3) {
            return F
        }
        if (E = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)) {
            return [parseInt(E[1]), parseInt(E[2]), parseInt(E[3])]
        }
        if (E = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)) {
            return [parseFloat(E[1]) * 2.55, parseFloat(E[2]) * 2.55, parseFloat(E[3]) * 2.55]
        }
        if (E = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)) {
            return [parseInt(E[1], 16), parseInt(E[2], 16), parseInt(E[3], 16)]
        }
        if (E = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)) {
            return [parseInt(E[1] + E[1], 16), parseInt(E[2] + E[2], 16), parseInt(E[3] + E[3], 16)]
        }
        if (E = /rgba\(0, 0, 0, 0\)/.exec(F)) {
            return A["transparent"]
        }
        return A[C.trim(F).toLowerCase()]
    }
    function D(G, E){
        var F;
        do {
            F = C.curCSS(G, E);
            if (F != "" && F != "transparent" || C.nodeName(G, "body")) {
                break
            }
            E = "backgroundColor"
        }
        while (G = G.parentNode);
        return B(F)
    }
    var A = {
        aqua: [0, 255, 255],
        azure: [240, 255, 255],
        beige: [245, 245, 220],
        black: [0, 0, 0],
        blue: [0, 0, 255],
        brown: [165, 42, 42],
        cyan: [0, 255, 255],
        darkblue: [0, 0, 139],
        darkcyan: [0, 139, 139],
        darkgrey: [169, 169, 169],
        darkgreen: [0, 100, 0],
        darkkhaki: [189, 183, 107],
        darkmagenta: [139, 0, 139],
        darkolivegreen: [85, 107, 47],
        darkorange: [255, 140, 0],
        darkorchid: [153, 50, 204],
        darkred: [139, 0, 0],
        darksalmon: [233, 150, 122],
        darkviolet: [148, 0, 211],
        fuchsia: [255, 0, 255],
        gold: [255, 215, 0],
        green: [0, 128, 0],
        indigo: [75, 0, 130],
        khaki: [240, 230, 140],
        lightblue: [173, 216, 230],
        lightcyan: [224, 255, 255],
        lightgreen: [144, 238, 144],
        lightgrey: [211, 211, 211],
        lightpink: [255, 182, 193],
        lightyellow: [255, 255, 224],
        lime: [0, 255, 0],
        magenta: [255, 0, 255],
        maroon: [128, 0, 0],
        navy: [0, 0, 128],
        olive: [128, 128, 0],
        orange: [255, 165, 0],
        pink: [255, 192, 203],
        purple: [128, 0, 128],
        violet: [128, 0, 128],
        red: [255, 0, 0],
        silver: [192, 192, 192],
        white: [255, 255, 255],
        yellow: [255, 255, 0],
        transparent: [255, 255, 255]
    };
    C.easing.jswing = C.easing.swing;
    C.extend(C.easing, {
        def: "easeOutQuad",
        swing: function(F, G, E, I, H){
            return C.easing[C.easing.def](F, G, E, I, H)
        },
        easeInQuad: function(F, G, E, I, H){
            return I * (G /= H) * G + E
        },
        easeOutQuad: function(F, G, E, I, H){
            return -I * (G /= H) * (G - 2) + E
        },
        easeInOutQuad: function(F, G, E, I, H){
            if ((G /= H / 2) < 1) {
                return I / 2 * G * G + E
            }
            return -I / 2 * ((--G) * (G - 2) - 1) + E
        },
        easeInCubic: function(F, G, E, I, H){
            return I * (G /= H) * G * G + E
        },
        easeOutCubic: function(F, G, E, I, H){
            return I * ((G = G / H - 1) * G * G + 1) + E
        },
        easeInOutCubic: function(F, G, E, I, H){
            if ((G /= H / 2) < 1) {
                return I / 2 * G * G * G + E
            }
            return I / 2 * ((G -= 2) * G * G + 2) + E
        },
        easeInQuart: function(F, G, E, I, H){
            return I * (G /= H) * G * G * G + E
        },
        easeOutQuart: function(F, G, E, I, H){
            return -I * ((G = G / H - 1) * G * G * G - 1) + E
        },
        easeInOutQuart: function(F, G, E, I, H){
            if ((G /= H / 2) < 1) {
                return I / 2 * G * G * G * G + E
            }
            return -I / 2 * ((G -= 2) * G * G * G - 2) + E
        },
        easeInQuint: function(F, G, E, I, H){
            return I * (G /= H) * G * G * G * G + E
        },
        easeOutQuint: function(F, G, E, I, H){
            return I * ((G = G / H - 1) * G * G * G * G + 1) + E
        },
        easeInOutQuint: function(F, G, E, I, H){
            if ((G /= H / 2) < 1) {
                return I / 2 * G * G * G * G * G + E
            }
            return I / 2 * ((G -= 2) * G * G * G * G + 2) + E
        },
        easeInSine: function(F, G, E, I, H){
            return -I * Math.cos(G / H * (Math.PI / 2)) + I + E
        },
        easeOutSine: function(F, G, E, I, H){
            return I * Math.sin(G / H * (Math.PI / 2)) + E
        },
        easeInOutSine: function(F, G, E, I, H){
            return -I / 2 * (Math.cos(Math.PI * G / H) - 1) + E
        },
        easeInExpo: function(F, G, E, I, H){
            return (G == 0) ? E : I * Math.pow(2, 10 * (G / H - 1)) + E
        },
        easeOutExpo: function(F, G, E, I, H){
            return (G == H) ? E + I : I * (-Math.pow(2, -10 * G / H) + 1) + E
        },
        easeInOutExpo: function(F, G, E, I, H){
            if (G == 0) {
                return E
            }
            if (G == H) {
                return E + I
            }
            if ((G /= H / 2) < 1) {
                return I / 2 * Math.pow(2, 10 * (G - 1)) + E
            }
            return I / 2 * (-Math.pow(2, -10 * --G) + 2) + E
        },
        easeInCirc: function(F, G, E, I, H){
            return -I * (Math.sqrt(1 - (G /= H) * G) - 1) + E
        },
        easeOutCirc: function(F, G, E, I, H){
            return I * Math.sqrt(1 - (G = G / H - 1) * G) + E
        },
        easeInOutCirc: function(F, G, E, I, H){
            if ((G /= H / 2) < 1) {
                return -I / 2 * (Math.sqrt(1 - G * G) - 1) + E
            }
            return I / 2 * (Math.sqrt(1 - (G -= 2) * G) + 1) + E
        },
        easeInElastic: function(F, H, E, L, K){
            var I = 1.70158;
            var J = 0;
            var G = L;
            if (H == 0) {
                return E
            }
            if ((H /= K) == 1) {
                return E + L
            }
            if (!J) {
                J = K * 0.3
            }
            if (G < Math.abs(L)) {
                G = L;
                var I = J / 4
            }
            else {
                var I = J / (2 * Math.PI) * Math.asin(L / G)
            }
            return -(G * Math.pow(2, 10 * (H -= 1)) * Math.sin((H * K - I) * (2 * Math.PI) / J)) + E
        },
        easeOutElastic: function(F, H, E, L, K){
            var I = 1.70158;
            var J = 0;
            var G = L;
            if (H == 0) {
                return E
            }
            if ((H /= K) == 1) {
                return E + L
            }
            if (!J) {
                J = K * 0.3
            }
            if (G < Math.abs(L)) {
                G = L;
                var I = J / 4
            }
            else {
                var I = J / (2 * Math.PI) * Math.asin(L / G)
            }
            return G * Math.pow(2, -10 * H) * Math.sin((H * K - I) * (2 * Math.PI) / J) + L + E
        },
        easeInOutElastic: function(F, H, E, L, K){
            var I = 1.70158;
            var J = 0;
            var G = L;
            if (H == 0) {
                return E
            }
            if ((H /= K / 2) == 2) {
                return E + L
            }
            if (!J) {
                J = K * (0.3 * 1.5)
            }
            if (G < Math.abs(L)) {
                G = L;
                var I = J / 4
            }
            else {
                var I = J / (2 * Math.PI) * Math.asin(L / G)
            }
            if (H < 1) {
                return -0.5 * (G * Math.pow(2, 10 * (H -= 1)) * Math.sin((H * K - I) * (2 * Math.PI) / J)) + E
            }
            return G * Math.pow(2, -10 * (H -= 1)) * Math.sin((H * K - I) * (2 * Math.PI) / J) * 0.5 + L + E
        },
        easeInBack: function(F, G, E, J, I, H){
            if (H == undefined) {
                H = 1.70158
            }
            return J * (G /= I) * G * ((H + 1) * G - H) + E
        },
        easeOutBack: function(F, G, E, J, I, H){
            if (H == undefined) {
                H = 1.70158
            }
            return J * ((G = G / I - 1) * G * ((H + 1) * G + H) + 1) + E
        },
        easeInOutBack: function(F, G, E, J, I, H){
            if (H == undefined) {
                H = 1.70158
            }
            if ((G /= I / 2) < 1) {
                return J / 2 * (G * G * (((H *= (1.525)) + 1) * G - H)) + E
            }
            return J / 2 * ((G -= 2) * G * (((H *= (1.525)) + 1) * G + H) + 2) + E
        },
        easeInBounce: function(F, G, E, I, H){
            return I - C.easing.easeOutBounce(F, H - G, 0, I, H) + E
        },
        easeOutBounce: function(F, G, E, I, H){
            if ((G /= H) < (1 / 2.75)) {
                return I * (7.5625 * G * G) + E
            }
            else {
                if (G < (2 / 2.75)) {
                    return I * (7.5625 * (G -= (1.5 / 2.75)) * G + 0.75) + E
                }
                else {
                    if (G < (2.5 / 2.75)) {
                        return I * (7.5625 * (G -= (2.25 / 2.75)) * G + 0.9375) + E
                    }
                    else {
                        return I * (7.5625 * (G -= (2.625 / 2.75)) * G + 0.984375) + E
                    }
                }
            }
        },
        easeInOutBounce: function(F, G, E, I, H){
            if (G < H / 2) {
                return C.easing.easeInBounce(F, G * 2, 0, I, H) * 0.5 + E
            }
            return C.easing.easeOutBounce(F, G * 2 - H, 0, I, H) * 0.5 + I * 0.5 + E
        }
    })
})(jQuery);
/*
 * jQuery UI Effects Blind 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.blind = function(B){
        return this.queue(function(){
            var D = A(this), C = ["position", "top", "left"];
            var H = A.effects.setMode(D, B.options.mode || "hide");
            var G = B.options.direction || "vertical";
            A.effects.save(D, C);
            D.show();
            var J = A.effects.createWrapper(D).css({
                overflow: "hidden"
            });
            var E = (G == "vertical") ? "height" : "width";
            var I = (G == "vertical") ? J.height() : J.width();
            if (H == "show") {
                J.css(E, 0)
            }
            var F = {};
            F[E] = H == "show" ? I : 0;
            J.animate(F, B.duration, B.options.easing, function(){
                if (H == "hide") {
                    D.hide()
                }
                A.effects.restore(D, C);
                A.effects.removeWrapper(D);
                if (B.callback) {
                    B.callback.apply(D[0], arguments)
                }
                D.dequeue()
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Bounce 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.bounce = function(B){
        return this.queue(function(){
            var E = A(this), K = ["position", "top", "left"];
            var J = A.effects.setMode(E, B.options.mode || "effect");
            var M = B.options.direction || "up";
            var C = B.options.distance || 20;
            var D = B.options.times || 5;
            var G = B.duration || 250;
            if (/show|hide/.test(J)) {
                K.push("opacity")
            }
            A.effects.save(E, K);
            E.show();
            A.effects.createWrapper(E);
            var F = (M == "up" || M == "down") ? "top" : "left";
            var O = (M == "up" || M == "left") ? "pos" : "neg";
            var C = B.options.distance ||
            (F == "top" ? E.outerHeight({
                margin: true
            }) /
            3 : E.outerWidth({
                margin: true
            }) /
            3);
            if (J == "show") {
                E.css("opacity", 0).css(F, O == "pos" ? -C : C)
            }
            if (J == "hide") {
                C = C / (D * 2)
            }
            if (J != "hide") {
                D--
            }
            if (J == "show") {
                var H = {
                    opacity: 1
                };
                H[F] = (O == "pos" ? "+=" : "-=") + C;
                E.animate(H, G / 2, B.options.easing);
                C = C / 2;
                D--
            }
            for (var I = 0; I < D; I++) {
                var N = {}, L = {};
                N[F] = (O == "pos" ? "-=" : "+=") + C;
                L[F] = (O == "pos" ? "+=" : "-=") + C;
                E.animate(N, G / 2, B.options.easing).animate(L, G / 2, B.options.easing);
                C = (J == "hide") ? C * 2 : C / 2
            }
            if (J == "hide") {
                var H = {
                    opacity: 0
                };
                H[F] = (O == "pos" ? "-=" : "+=") + C;
                E.animate(H, G / 2, B.options.easing, function(){
                    E.hide();
                    A.effects.restore(E, K);
                    A.effects.removeWrapper(E);
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                })
            }
            else {
                var N = {}, L = {};
                N[F] = (O == "pos" ? "-=" : "+=") + C;
                L[F] = (O == "pos" ? "+=" : "-=") + C;
                E.animate(N, G / 2, B.options.easing).animate(L, G / 2, B.options.easing, function(){
                    A.effects.restore(E, K);
                    A.effects.removeWrapper(E);
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                })
            }
            E.queue("fx", function(){
                E.dequeue()
            });
            E.dequeue()
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Clip 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.clip = function(B){
        return this.queue(function(){
            var F = A(this), J = ["position", "top", "left", "height", "width"];
            var I = A.effects.setMode(F, B.options.mode || "hide");
            var K = B.options.direction || "vertical";
            A.effects.save(F, J);
            F.show();
            var C = A.effects.createWrapper(F).css({
                overflow: "hidden"
            });
            var E = F[0].tagName == "IMG" ? C : F;
            var G = {
                size: (K == "vertical") ? "height" : "width",
                position: (K == "vertical") ? "top" : "left"
            };
            var D = (K == "vertical") ? E.height() : E.width();
            if (I == "show") {
                E.css(G.size, 0);
                E.css(G.position, D / 2)
            }
            var H = {};
            H[G.size] = I == "show" ? D : 0;
            H[G.position] = I == "show" ? 0 : D / 2;
            E.animate(H, {
                queue: false,
                duration: B.duration,
                easing: B.options.easing,
                complete: function(){
                    if (I == "hide") {
                        F.hide()
                    }
                    A.effects.restore(F, J);
                    A.effects.removeWrapper(F);
                    if (B.callback) {
                        B.callback.apply(F[0], arguments)
                    }
                    F.dequeue()
                }
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Drop 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.drop = function(B){
        return this.queue(function(){
            var E = A(this), D = ["position", "top", "left", "opacity"];
            var I = A.effects.setMode(E, B.options.mode || "hide");
            var H = B.options.direction || "left";
            A.effects.save(E, D);
            E.show();
            A.effects.createWrapper(E);
            var F = (H == "up" || H == "down") ? "top" : "left";
            var C = (H == "up" || H == "left") ? "pos" : "neg";
            var J = B.options.distance ||
            (F == "top" ? E.outerHeight({
                margin: true
            }) /
            2 : E.outerWidth({
                margin: true
            }) /
            2);
            if (I == "show") {
                E.css("opacity", 0).css(F, C == "pos" ? -J : J)
            }
            var G = {
                opacity: I == "show" ? 1 : 0
            };
            G[F] = (I == "show" ? (C == "pos" ? "+=" : "-=") : (C == "pos" ? "-=" : "+=")) + J;
            E.animate(G, {
                queue: false,
                duration: B.duration,
                easing: B.options.easing,
                complete: function(){
                    if (I == "hide") {
                        E.hide()
                    }
                    A.effects.restore(E, D);
                    A.effects.removeWrapper(E);
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                    E.dequeue()
                }
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Explode 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.explode = function(B){
        return this.queue(function(){
            var I = B.options.pieces ? Math.round(Math.sqrt(B.options.pieces)) : 3;
            var E = B.options.pieces ? Math.round(Math.sqrt(B.options.pieces)) : 3;
            B.options.mode = B.options.mode == "toggle" ? (A(this).is(":visible") ? "hide" : "show") : B.options.mode;
            var H = A(this).show().css("visibility", "hidden");
            var J = H.offset();
            J.top -= parseInt(H.css("marginTop")) || 0;
            J.left -= parseInt(H.css("marginLeft")) || 0;
            var G = H.outerWidth(true);
            var C = H.outerHeight(true);
            for (var F = 0; F < I; F++) {
                for (var D = 0; D < E; D++) {
                    H.clone().appendTo("body").wrap("<div></div>").css({
                        position: "absolute",
                        visibility: "visible",
                        left: -D * (G / E),
                        top: -F * (C / I)
                    }).parent().addClass("effects-explode").css({
                        position: "absolute",
                        overflow: "hidden",
                        width: G / E,
                        height: C / I,
                        left: J.left + D * (G / E) + (B.options.mode == "show" ? (D - Math.floor(E / 2)) * (G / E) : 0),
                        top: J.top + F * (C / I) + (B.options.mode == "show" ? (F - Math.floor(I / 2)) * (C / I) : 0),
                        opacity: B.options.mode == "show" ? 0 : 1
                    }).animate({
                        left: J.left + D * (G / E) + (B.options.mode == "show" ? 0 : (D - Math.floor(E / 2)) * (G / E)),
                        top: J.top + F * (C / I) + (B.options.mode == "show" ? 0 : (F - Math.floor(I / 2)) * (C / I)),
                        opacity: B.options.mode == "show" ? 1 : 0
                    }, B.duration || 500)
                }
            }
            setTimeout(function(){
                B.options.mode == "show" ? H.css({
                    visibility: "visible"
                }) : H.css({
                    visibility: "visible"
                }).hide();
                if (B.callback) {
                    B.callback.apply(H[0])
                }
                H.dequeue();
                A(".effects-explode").remove()
            }, B.duration || 500)
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Fold 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.fold = function(B){
        return this.queue(function(){
            var E = A(this), J = ["position", "top", "left"];
            var G = A.effects.setMode(E, B.options.mode || "hide");
            var N = B.options.size || 15;
            var M = !(!B.options.horizFirst);
            A.effects.save(E, J);
            E.show();
            var D = A.effects.createWrapper(E).css({
                overflow: "hidden"
            });
            var H = ((G == "show") != M);
            var F = H ? ["width", "height"] : ["height", "width"];
            var C = H ? [D.width(), D.height()] : [D.height(), D.width()];
            var I = /([0-9]+)%/.exec(N);
            if (I) {
                N = parseInt(I[1]) / 100 * C[G == "hide" ? 0 : 1]
            }
            if (G == "show") {
                D.css(M ? {
                    height: 0,
                    width: N
                } : {
                    height: N,
                    width: 0
                })
            }
            var L = {}, K = {};
            L[F[0]] = G == "show" ? C[0] : N;
            K[F[1]] = G == "show" ? C[1] : 0;
            D.animate(L, B.duration / 2, B.options.easing).animate(K, B.duration / 2, B.options.easing, function(){
                if (G == "hide") {
                    E.hide()
                }
                A.effects.restore(E, J);
                A.effects.removeWrapper(E);
                if (B.callback) {
                    B.callback.apply(E[0], arguments)
                }
                E.dequeue()
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Highlight 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.highlight = function(B){
        return this.queue(function(){
            var E = A(this), D = ["backgroundImage", "backgroundColor", "opacity"];
            var H = A.effects.setMode(E, B.options.mode || "show");
            var C = B.options.color || "#ffff99";
            var G = E.css("backgroundColor");
            A.effects.save(E, D);
            E.show();
            E.css({
                backgroundImage: "none",
                backgroundColor: C
            });
            var F = {
                backgroundColor: G
            };
            if (H == "hide") {
                F["opacity"] = 0
            }
            E.animate(F, {
                queue: false,
                duration: B.duration,
                easing: B.options.easing,
                complete: function(){
                    if (H == "hide") {
                        E.hide()
                    }
                    A.effects.restore(E, D);
                    if (H == "show" && A.browser.msie) {
                        this.style.removeAttribute("filter")
                    }
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                    E.dequeue()
                }
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Pulsate 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.pulsate = function(B){
        return this.queue(function(){
            var D = A(this);
            var F = A.effects.setMode(D, B.options.mode || "show");
            var E = B.options.times || 5;
            if (F == "hide") {
                E--
            }
            if (D.is(":hidden")) {
                D.css("opacity", 0);
                D.show();
                D.animate({
                    opacity: 1
                }, B.duration / 2, B.options.easing);
                E = E - 2
            }
            for (var C = 0; C < E; C++) {
                D.animate({
                    opacity: 0
                }, B.duration / 2, B.options.easing).animate({
                    opacity: 1
                }, B.duration / 2, B.options.easing)
            }
            if (F == "hide") {
                D.animate({
                    opacity: 0
                }, B.duration / 2, B.options.easing, function(){
                    D.hide();
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                })
            }
            else {
                D.animate({
                    opacity: 0
                }, B.duration / 2, B.options.easing).animate({
                    opacity: 1
                }, B.duration / 2, B.options.easing, function(){
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                })
            }
            D.queue("fx", function(){
                D.dequeue()
            });
            D.dequeue()
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Scale 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.puff = function(B){
        return this.queue(function(){
            var F = A(this);
            var C = A.extend(true, {}, B.options);
            var H = A.effects.setMode(F, B.options.mode || "hide");
            var G = parseInt(B.options.percent) || 150;
            C.fade = true;
            var E = {
                height: F.height(),
                width: F.width()
            };
            var D = G / 100;
            F.from = (H == "hide") ? E : {
                height: E.height * D,
                width: E.width * D
            };
            C.from = F.from;
            C.percent = (H == "hide") ? G : 100;
            C.mode = H;
            F.effect("scale", C, B.duration, B.callback);
            F.dequeue()
        })
    };
    A.effects.scale = function(B){
        return this.queue(function(){
            var G = A(this);
            var D = A.extend(true, {}, B.options);
            var J = A.effects.setMode(G, B.options.mode || "effect");
            var H = parseInt(B.options.percent) || (parseInt(B.options.percent) == 0 ? 0 : (J == "hide" ? 0 : 100));
            var I = B.options.direction || "both";
            var C = B.options.origin;
            if (J != "effect") {
                D.origin = C || ["middle", "center"];
                D.restore = true
            }
            var F = {
                height: G.height(),
                width: G.width()
            };
            G.from = B.options.from ||
            (J == "show" ? {
                height: 0,
                width: 0
            } : F);
            var E = {
                y: I != "horizontal" ? (H / 100) : 1,
                x: I != "vertical" ? (H / 100) : 1
            };
            G.to = {
                height: F.height * E.y,
                width: F.width * E.x
            };
            if (B.options.fade) {
                if (J == "show") {
                    G.from.opacity = 0;
                    G.to.opacity = 1
                }
                if (J == "hide") {
                    G.from.opacity = 1;
                    G.to.opacity = 0
                }
            }
            D.from = G.from;
            D.to = G.to;
            D.mode = J;
            G.effect("size", D, B.duration, B.callback);
            G.dequeue()
        })
    };
    A.effects.size = function(B){
        return this.queue(function(){
            var C = A(this), N = ["position", "top", "left", "width", "height", "overflow", "opacity"];
            var M = ["position", "top", "left", "overflow", "opacity"];
            var J = ["width", "height", "overflow"];
            var P = ["fontSize"];
            var K = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"];
            var F = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"];
            var G = A.effects.setMode(C, B.options.mode || "effect");
            var I = B.options.restore || false;
            var E = B.options.scale || "both";
            var O = B.options.origin;
            var D = {
                height: C.height(),
                width: C.width()
            };
            C.from = B.options.from || D;
            C.to = B.options.to || D;
            if (O) {
                var H = A.effects.getBaseline(O, D);
                C.from.top = (D.height - C.from.height) * H.y;
                C.from.left = (D.width - C.from.width) * H.x;
                C.to.top = (D.height - C.to.height) * H.y;
                C.to.left = (D.width - C.to.width) * H.x
            }
            var L = {
                from: {
                    y: C.from.height / D.height,
                    x: C.from.width / D.width
                },
                to: {
                    y: C.to.height / D.height,
                    x: C.to.width / D.width
                }
            };
            if (E == "box" || E == "both") {
                if (L.from.y != L.to.y) {
                    N = N.concat(K);
                    C.from = A.effects.setTransition(C, K, L.from.y, C.from);
                    C.to = A.effects.setTransition(C, K, L.to.y, C.to)
                }
                if (L.from.x != L.to.x) {
                    N = N.concat(F);
                    C.from = A.effects.setTransition(C, F, L.from.x, C.from);
                    C.to = A.effects.setTransition(C, F, L.to.x, C.to)
                }
            }
            if (E == "content" || E == "both") {
                if (L.from.y != L.to.y) {
                    N = N.concat(P);
                    C.from = A.effects.setTransition(C, P, L.from.y, C.from);
                    C.to = A.effects.setTransition(C, P, L.to.y, C.to)
                }
            }
            A.effects.save(C, I ? N : M);
            C.show();
            A.effects.createWrapper(C);
            C.css("overflow", "hidden").css(C.from);
            if (E == "content" || E == "both") {
                K = K.concat(["marginTop", "marginBottom"]).concat(P);
                F = F.concat(["marginLeft", "marginRight"]);
                J = N.concat(K).concat(F);
                C.find("*[width]").each(function(){
                    child = A(this);
                    if (I) {
                        A.effects.save(child, J)
                    }
                    var Q = {
                        height: child.height(),
                        width: child.width()
                    };
                    child.from = {
                        height: Q.height * L.from.y,
                        width: Q.width * L.from.x
                    };
                    child.to = {
                        height: Q.height * L.to.y,
                        width: Q.width * L.to.x
                    };
                    if (L.from.y != L.to.y) {
                        child.from = A.effects.setTransition(child, K, L.from.y, child.from);
                        child.to = A.effects.setTransition(child, K, L.to.y, child.to)
                    }
                    if (L.from.x != L.to.x) {
                        child.from = A.effects.setTransition(child, F, L.from.x, child.from);
                        child.to = A.effects.setTransition(child, F, L.to.x, child.to)
                    }
                    child.css(child.from);
                    child.animate(child.to, B.duration, B.options.easing, function(){
                        if (I) {
                            A.effects.restore(child, J)
                        }
                    })
                })
            }
            C.animate(C.to, {
                queue: false,
                duration: B.duration,
                easing: B.options.easing,
                complete: function(){
                    if (G == "hide") {
                        C.hide()
                    }
                    A.effects.restore(C, I ? N : M);
                    A.effects.removeWrapper(C);
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                    C.dequeue()
                }
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Shake 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.shake = function(B){
        return this.queue(function(){
            var E = A(this), K = ["position", "top", "left"];
            var J = A.effects.setMode(E, B.options.mode || "effect");
            var M = B.options.direction || "left";
            var C = B.options.distance || 20;
            var D = B.options.times || 3;
            var G = B.duration || B.options.duration || 140;
            A.effects.save(E, K);
            E.show();
            A.effects.createWrapper(E);
            var F = (M == "up" || M == "down") ? "top" : "left";
            var O = (M == "up" || M == "left") ? "pos" : "neg";
            var H = {}, N = {}, L = {};
            H[F] = (O == "pos" ? "-=" : "+=") + C;
            N[F] = (O == "pos" ? "+=" : "-=") + C * 2;
            L[F] = (O == "pos" ? "-=" : "+=") + C * 2;
            E.animate(H, G, B.options.easing);
            for (var I = 1; I < D; I++) {
                E.animate(N, G, B.options.easing).animate(L, G, B.options.easing)
            }
            E.animate(N, G, B.options.easing).animate(H, G / 2, B.options.easing, function(){
                A.effects.restore(E, K);
                A.effects.removeWrapper(E);
                if (B.callback) {
                    B.callback.apply(this, arguments)
                }
            });
            E.queue("fx", function(){
                E.dequeue()
            });
            E.dequeue()
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Slide 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.slide = function(B){
        return this.queue(function(){
            var E = A(this), D = ["position", "top", "left"];
            var I = A.effects.setMode(E, B.options.mode || "show");
            var H = B.options.direction || "left";
            A.effects.save(E, D);
            E.show();
            A.effects.createWrapper(E).css({
                overflow: "hidden"
            });
            var F = (H == "up" || H == "down") ? "top" : "left";
            var C = (H == "up" || H == "left") ? "pos" : "neg";
            var J = B.options.distance ||
            (F == "top" ? E.outerHeight({
                margin: true
            }) : E.outerWidth({
                margin: true
            }));
            if (I == "show") {
                E.css(F, C == "pos" ? -J : J)
            }
            var G = {};
            G[F] = (I == "show" ? (C == "pos" ? "+=" : "-=") : (C == "pos" ? "-=" : "+=")) + J;
            E.animate(G, {
                queue: false,
                duration: B.duration,
                easing: B.options.easing,
                complete: function(){
                    if (I == "hide") {
                        E.hide()
                    }
                    A.effects.restore(E, D);
                    A.effects.removeWrapper(E);
                    if (B.callback) {
                        B.callback.apply(this, arguments)
                    }
                    E.dequeue()
                }
            })
        })
    }
})(jQuery);
/*
 * jQuery UI Effects Transfer 1.6
 *
 * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */
(function(A){
    A.effects.transfer = function(B){
        return this.queue(function(){
            var E = A(this);
            var G = A.effects.setMode(E, B.options.mode || "effect");
            var F = A(B.options.to);
            var C = E.offset();
            var D = A('<div class="ui-effects-transfer"></div>').appendTo(document.body);
            if (B.options.className) {
                D.addClass(B.options.className)
            }
            D.addClass(B.options.className);
            D.css({
                top: C.top,
                left: C.left,
                height: E.outerHeight() - parseInt(D.css("borderTopWidth")) - parseInt(D.css("borderBottomWidth")),
                width: E.outerWidth() - parseInt(D.css("borderLeftWidth")) - parseInt(D.css("borderRightWidth")),
                position: "absolute"
            });
            C = F.offset();
            animation = {
                top: C.top,
                left: C.left,
                height: F.outerHeight() - parseInt(D.css("borderTopWidth")) - parseInt(D.css("borderBottomWidth")),
                width: F.outerWidth() - parseInt(D.css("borderLeftWidth")) - parseInt(D.css("borderRightWidth"))
            };
            D.animate(animation, B.duration, B.options.easing, function(){
                D.remove();
                if (B.callback) {
                    B.callback.apply(E[0], arguments)
                }
                E.dequeue()
            })
        })
    }
})(jQuery);

