
jQuery.effects ||
function (r, i) {
    function e(j) {
        var f;
        if (j && j.constructor == Array && j.length == 3) {
            return j
        }
        if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(j)) {
            return [parseInt(f[1], 10), parseInt(f[2], 10), parseInt(f[3], 10)]
        }
        if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(j)) {
            return [parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55, parseFloat(f[3]) * 2.55]
        }
        if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(j)) {
            return [parseInt(f[1], 16), parseInt(f[2], 16), parseInt(f[3], 16)]
        }
        if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(j)) {
            return [parseInt(f[1] + f[1], 16), parseInt(f[2] + f[2], 16), parseInt(f[3] + f[3], 16)]
        }
        if (/rgba\(0, 0, 0, 0\)/.exec(j)) {
            return d.transparent
        }
        return d[r.trim(j).toLowerCase()]
    }
    function x(k, j) {
        var f;
        do {
            f = r.curCSS(k, j);
            if (f != "" && f != "transparent" || r.nodeName(k, "body")) {
                break
            }
            j = "backgroundColor"
        } while (k = k.parentNode);
        return e(f)
    }
    function c() {
        var m = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
            j = {},
            f, l;
        if (m && m.length && m[0] && m[m[0]]) {
            for (var k = m.length; k--;) {
                f = m[k];
                if (typeof m[f] == "string") {
                    l = f.replace(/\-(\w)/g, function (o, n) {
                        return n.toUpperCase()
                    });
                    j[l] = m[f]
                }
            }
        } else {
            for (f in m) {
                if (typeof m[f] === "string") {
                    j[f] = m[f]
                }
            }
        }
        return j
    }
    function b(k) {
        var j, f;
        for (j in k) {
            f = k[j];
            if (f == null || r.isFunction(f) || j in w || /scrollbar/.test(j) || !/color/i.test(j) && isNaN(parseFloat(f))) {
                delete k[j]
            }
        }
        return k
    }
    function v(l, j) {
        var f = {
            _: 0
        },
            k;
        for (k in j) {
            if (l[k] != j[k]) {
                f[k] = j[k]
            }
        }
        return f
    }
    function h(l, j, f, k) {
        if (typeof l == "object") {
            k = j;
            f = null;
            j = l;
            l = j.effect
        }
        if (r.isFunction(j)) {
            k = j;
            f = null;
            j = {}
        }
        if (typeof j == "number" || r.fx.speeds[j]) {
            k = f;
            f = j;
            j = {}
        }
        if (r.isFunction(f)) {
            k = f;
            f = null
        }
        j = j || {};
        f = f || j.duration;
        f = r.fx.off ? 0 : typeof f == "number" ? f : f in r.fx.speeds ? r.fx.speeds[f] : r.fx.speeds._default;
        k = k || j.complete;
        return [l, j, f, k]
    }
    function g(f) {
        if (!f || typeof f === "number" || r.fx.speeds[f]) {
            return true
        }
        if (typeof f === "string" && !r.effects[f]) {
            return true
        }
        return false
    }
    r.effects = {};
    r.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], function (j, f) {
        r.fx.step[f] = function (k) {
            if (!k.colorInit) {
                k.start = x(k.elem, f);
                k.end = e(k.end);
                k.colorInit = true
            }
            k.elem.style[f] = "rgb(" + Math.max(Math.min(parseInt(k.pos * (k.end[0] - k.start[0]) + k.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(k.pos * (k.end[1] - k.start[1]) + k.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(k.pos * (k.end[2] - k.start[2]) + k.start[2], 10), 255), 0) + ")"
        }
    });
    var d = {
        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]
    },
        a = ["add", "remove", "toggle"],
        w = {
            border: 1,
            borderBottom: 1,
            borderColor: 1,
            borderLeft: 1,
            borderRight: 1,
            borderTop: 1,
            borderWidth: 1,
            margin: 1,
            padding: 1
        };
    r.effects.animateClass = function (l, j, f, k) {
        if (r.isFunction(f)) {
            k = f;
            f = null
        }
        return this.queue(function () {
            var q = r(this),
                p = q.attr("style") || " ",
                n = b(c.call(this)),
                o, m = q.attr("class");
            r.each(a, function (s, t) {
                l[t] && q[t + "Class"](l[t])
            });
            o = b(c.call(this));
            q.attr("class", m);
            q.animate(v(n, o), {
                queue: false,
                duration: j,
                easing: f,
                complete: function () {
                    r.each(a, function (s, t) {
                        l[t] && q[t + "Class"](l[t])
                    });
                    if (typeof q.attr("style") == "object") {
                        q.attr("style").cssText = "";
                        q.attr("style").cssText = p
                    } else {
                        q.attr("style", p)
                    }
                    k && k.apply(this, arguments);
                    r.dequeue(this)
                }
            })
        })
    };
    r.fn.extend({
        _addClass: r.fn.addClass,
        addClass: function (l, j, f, k) {
            return j ? r.effects.animateClass.apply(this, [{
                add: l
            },
            j, f, k]) : this._addClass(l)
        },
        _removeClass: r.fn.removeClass,
        removeClass: function (l, j, f, k) {
            return j ? r.effects.animateClass.apply(this, [{
                remove: l
            },
            j, f, k]) : this._removeClass(l)
        },
        _toggleClass: r.fn.toggleClass,
        toggleClass: function (m, j, f, l, k) {
            return typeof j == "boolean" || j === i ? f ? r.effects.animateClass.apply(this, [j ? {
                add: m
            } : {
                remove: m
            },
            f, l, k]) : this._toggleClass(m, j) : r.effects.animateClass.apply(this, [{
                toggle: m
            },
            j, f, l])
        },
        switchClass: function (m, j, f, l, k) {
            return r.effects.animateClass.apply(this, [{
                add: j,
                remove: m
            },
            f, l, k])
        }
    });
    r.extend(r.effects, {
        version: "1.8.14",
        save: function (k, j) {
            for (var f = 0; f < j.length; f++) {
                j[f] !== null && k.data("ec.storage." + j[f], k[0].style[j[f]])
            }
        },
        restore: function (k, j) {
            for (var f = 0; f < j.length; f++) {
                j[f] !== null && k.css(j[f], k.data("ec.storage." + j[f]))
            }
        },
        setMode: function (j, f) {
            if (f == "toggle") {
                f = j.is(":hidden") ? "show" : "hide"
            }
            return f
        },
        getBaseline: function (k, j) {
            var f;
            switch (k[0]) {
            case "top":
                f = 0;
                break;
            case "middle":
                f = 0.5;
                break;
            case "bottom":
                f = 1;
                break;
            default:
                f = k[0] / j.height
            }
            switch (k[1]) {
            case "left":
                k = 0;
                break;
            case "center":
                k = 0.5;
                break;
            case "right":
                k = 1;
                break;
            default:
                k = k[1] / j.width
            }
            return {
                x: k,
                y: f
            }
        },
        createWrapper: function (k) {
            if (k.parent().is(".ui-effects-wrapper")) {
                return k.parent()
            }
            var j = {
                width: k.outerWidth(true),
                height: k.outerHeight(true),
                "float": k.css("float")
            },
                f = r("<div></div>").addClass("ui-effects-wrapper").css({
                    fontSize: "100%",
                    background: "transparent",
                    border: "none",
                    margin: 0,
                    padding: 0
                });
            k.wrap(f);
            f = k.parent();
            if (k.css("position") == "static") {
                f.css({
                    position: "relative"
                });
                k.css({
                    position: "relative"
                })
            } else {
                r.extend(j, {
                    position: k.css("position"),
                    zIndex: k.css("z-index")
                });
                r.each(["top", "left", "bottom", "right"], function (m, l) {
                    j[l] = k.css(l);
                    if (isNaN(parseInt(j[l], 10))) {
                        j[l] = "auto"
                    }
                });
                k.css({
                    position: "relative",
                    top: 0,
                    left: 0,
                    right: "auto",
                    bottom: "auto"
                })
            }
            return f.css(j).show()
        },
        removeWrapper: function (f) {
            if (f.parent().is(".ui-effects-wrapper")) {
                return f.parent().replaceWith(f)
            }
            return f
        },
        setTransition: function (l, j, f, k) {
            k = k || {};
            r.each(j, function (n, m) {
                unit = l.cssUnit(m);
                if (unit[0] > 0) {
                    k[m] = unit[0] * f + unit[1]
                }
            });
            return k
        }
    });
    r.fn.extend({
        effect: function (l) {
            var j = h.apply(this, arguments),
                f = {
                    options: j[1],
                    duration: j[2],
                    callback: j[3]
                };
            j = f.options.mode;
            var k = r.effects[l];
            if (r.fx.off || !k) {
                return j ? this[j](f.duration, f.callback) : this.each(function () {
                    f.callback && f.callback.call(this)
                })
            }
            return k.call(this, f)
        },
        _show: r.fn.show,
        show: function (j) {
            if (g(j)) {
                return this._show.apply(this, arguments)
            } else {
                var f = h.apply(this, arguments);
                f[1].mode = "show";
                return this.effect.apply(this, f)
            }
        },
        _hide: r.fn.hide,
        hide: function (j) {
            if (g(j)) {
                return this._hide.apply(this, arguments)
            } else {
                var f = h.apply(this, arguments);
                f[1].mode = "hide";
                return this.effect.apply(this, f)
            }
        },
        __toggle: r.fn.toggle,
        toggle: function (j) {
            if (g(j) || typeof j === "boolean" || r.isFunction(j)) {
                return this.__toggle.apply(this, arguments)
            } else {
                var f = h.apply(this, arguments);
                f[1].mode = "toggle";
                return this.effect.apply(this, f)
            }
        },
        cssUnit: function (k) {
            var j = this.css(k),
                f = [];
            r.each(["em", "px", "%", "pt"], function (m, l) {
                if (j.indexOf(l) > 0) {
                    f = [parseFloat(j), l]
                }
            });
            return f
        }
    });
    r.easing.jswing = r.easing.swing;
    r.extend(r.easing, {
        def: "easeOutQuad",
        swing: function (m, j, f, l, k) {
            return r.easing[r.easing.def](m, j, f, l, k)
        },
        easeInQuad: function (m, j, f, l, k) {
            return l * (j /= k) * j + f
        },
        easeOutQuad: function (m, j, f, l, k) {
            return -l * (j /= k) * (j - 2) + f
        },
        easeInOutQuad: function (m, j, f, l, k) {
            if ((j /= k / 2) < 1) {
                return l / 2 * j * j + f
            }
            return -l / 2 * (--j * (j - 2) - 1) + f
        },
        easeInCubic: function (m, j, f, l, k) {
            return l * (j /= k) * j * j + f
        },
        easeOutCubic: function (m, j, f, l, k) {
            return l * ((j = j / k - 1) * j * j + 1) + f
        },
        easeInOutCubic: function (m, j, f, l, k) {
            if ((j /= k / 2) < 1) {
                return l / 2 * j * j * j + f
            }
            return l / 2 * ((j -= 2) * j * j + 2) + f
        },
        easeInQuart: function (m, j, f, l, k) {
            return l * (j /= k) * j * j * j + f
        },
        easeOutQuart: function (m, j, f, l, k) {
            return -l * ((j = j / k - 1) * j * j * j - 1) + f
        },
        easeInOutQuart: function (m, j, f, l, k) {
            if ((j /= k / 2) < 1) {
                return l / 2 * j * j * j * j + f
            }
            return -l / 2 * ((j -= 2) * j * j * j - 2) + f
        },
        easeInQuint: function (m, j, f, l, k) {
            return l * (j /= k) * j * j * j * j + f
        },
        easeOutQuint: function (m, j, f, l, k) {
            return l * ((j = j / k - 1) * j * j * j * j + 1) + f
        },
        easeInOutQuint: function (m, j, f, l, k) {
            if ((j /= k / 2) < 1) {
                return l / 2 * j * j * j * j * j + f
            }
            return l / 2 * ((j -= 2) * j * j * j * j + 2) + f
        },
        easeInSine: function (m, j, f, l, k) {
            return -l * Math.cos(j / k * (Math.PI / 2)) + l + f
        },
        easeOutSine: function (m, j, f, l, k) {
            return l * Math.sin(j / k * (Math.PI / 2)) + f
        },
        easeInOutSine: function (m, j, f, l, k) {
            return -l / 2 * (Math.cos(Math.PI * j / k) - 1) + f
        },
        easeInExpo: function (m, j, f, l, k) {
            return j == 0 ? f : l * Math.pow(2, 10 * (j / k - 1)) + f
        },
        easeOutExpo: function (m, j, f, l, k) {
            return j == k ? f + l : l * (-Math.pow(2, -10 * j / k) + 1) + f
        },
        easeInOutExpo: function (m, j, f, l, k) {
            if (j == 0) {
                return f
            }
            if (j == k) {
                return f + l
            }
            if ((j /= k / 2) < 1) {
                return l / 2 * Math.pow(2, 10 * (j - 1)) + f
            }
            return l / 2 * (-Math.pow(2, -10 * --j) + 2) + f
        },
        easeInCirc: function (m, j, f, l, k) {
            return -l * (Math.sqrt(1 - (j /= k) * j) - 1) + f
        },
        easeOutCirc: function (m, j, f, l, k) {
            return l * Math.sqrt(1 - (j = j / k - 1) * j) + f
        },
        easeInOutCirc: function (m, j, f, l, k) {
            if ((j /= k / 2) < 1) {
                return -l / 2 * (Math.sqrt(1 - j * j) - 1) + f
            }
            return l / 2 * (Math.sqrt(1 - (j -= 2) * j) + 1) + f
        },
        easeInElastic: function (o, j, f, n, m) {
            o = 1.70158;
            var l = 0,
                k = n;
            if (j == 0) {
                return f
            }
            if ((j /= m) == 1) {
                return f + n
            }
            l || (l = m * 0.3);
            if (k < Math.abs(n)) {
                k = n;
                o = l / 4
            } else {
                o = l / (2 * Math.PI) * Math.asin(n / k)
            }
            return -(k * Math.pow(2, 10 * (j -= 1)) * Math.sin((j * m - o) * 2 * Math.PI / l)) + f
        },
        easeOutElastic: function (o, j, f, n, m) {
            o = 1.70158;
            var l = 0,
                k = n;
            if (j == 0) {
                return f
            }
            if ((j /= m) == 1) {
                return f + n
            }
            l || (l = m * 0.3);
            if (k < Math.abs(n)) {
                k = n;
                o = l / 4
            } else {
                o = l / (2 * Math.PI) * Math.asin(n / k)
            }
            return k * Math.pow(2, -10 * j) * Math.sin((j * m - o) * 2 * Math.PI / l) + n + f
        },
        easeInOutElastic: function (o, j, f, n, m) {
            o = 1.70158;
            var l = 0,
                k = n;
            if (j == 0) {
                return f
            }
            if ((j /= m / 2) == 2) {
                return f + n
            }
            l || (l = m * 0.3 * 1.5);
            if (k < Math.abs(n)) {
                k = n;
                o = l / 4
            } else {
                o = l / (2 * Math.PI) * Math.asin(n / k)
            }
            if (j < 1) {
                return -0.5 * k * Math.pow(2, 10 * (j -= 1)) * Math.sin((j * m - o) * 2 * Math.PI / l) + f
            }
            return k * Math.pow(2, -10 * (j -= 1)) * Math.sin((j * m - o) * 2 * Math.PI / l) * 0.5 + n + f
        },
        easeInBack: function (n, j, f, m, l, k) {
            if (k == i) {
                k = 1.70158
            }
            return m * (j /= l) * j * ((k + 1) * j - k) + f
        },
        easeOutBack: function (n, j, f, m, l, k) {
            if (k == i) {
                k = 1.70158
            }
            return m * ((j = j / l - 1) * j * ((k + 1) * j + k) + 1) + f
        },
        easeInOutBack: function (n, j, f, m, l, k) {
            if (k == i) {
                k = 1.70158
            }
            if ((j /= l / 2) < 1) {
                return m / 2 * j * j * (((k *= 1.525) + 1) * j - k) + f
            }
            return m / 2 * ((j -= 2) * j * (((k *= 1.525) + 1) * j + k) + 2) + f
        },
        easeInBounce: function (m, j, f, l, k) {
            return l - r.easing.easeOutBounce(m, k - j, 0, l, k) + f
        },
        easeOutBounce: function (m, j, f, l, k) {
            return (j /= k) < 1 / 2.75 ? l * 7.5625 * j * j + f : j < 2 / 2.75 ? l * (7.5625 * (j -= 1.5 / 2.75) * j + 0.75) + f : j < 2.5 / 2.75 ? l * (7.5625 * (j -= 2.25 / 2.75) * j + 0.9375) + f : l * (7.5625 * (j -= 2.625 / 2.75) * j + 0.984375) + f
        },
        easeInOutBounce: function (m, j, f, l, k) {
            if (j < k / 2) {
                return r.easing.easeInBounce(m, j * 2, 0, l, k) * 0.5 + f
            }
            return r.easing.easeOutBounce(m, j * 2 - k, 0, l, k) * 0.5 + l * 0.5 + f
        }
    })
}(jQuery);
