/*!
 * jQuery UI 1.8.1
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
jQuery.ui ||
function(c){
    c.ui = {
        version: "1.8.1",
        plugin: {
            add: function(a, b, d){
                a = c.ui[a].prototype;
                for (var e in d) {
                    a.plugins[e] = a.plugins[e] || [];
                    a.plugins[e].push([b, d[e]])
                }
            },
            call: function(a, b, d){
                if ((b = a.plugins[b]) && a.element[0].parentNode) 
                    for (var e = 0; e < b.length; e++) 
                        a.options[b[e][0]] && b[e][1].apply(a.element, d)
            }
        },
        contains: function(a, b){
            return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b)
        },
        hasScroll: function(a, b){
            if (c(a).css("overflow") == "hidden") 
                return false;
            b = b && b == "left" ? "scrollLeft" : "scrollTop";
            var d = false;
            if (a[b] > 0) 
                return true;
            a[b] = 1;
            d = a[b] > 0;
            a[b] = 0;
            return d
        },
        isOverAxis: function(a, b, d){
            return a > b && a < b + d
        },
        isOver: function(a, b, d, e, f, g){
            return c.ui.isOverAxis(a, d, f) && c.ui.isOverAxis(b, e, g)
        },
        keyCode: {
            ALT: 18,
            BACKSPACE: 8,
            CAPS_LOCK: 20,
            COMMA: 188,
            CONTROL: 17,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            INSERT: 45,
            LEFT: 37,
            NUMPAD_ADD: 107,
            NUMPAD_DECIMAL: 110,
            NUMPAD_DIVIDE: 111,
            NUMPAD_ENTER: 108,
            NUMPAD_MULTIPLY: 106,
            NUMPAD_SUBTRACT: 109,
            PAGE_DOWN: 34,
            PAGE_UP: 33,
            PERIOD: 190,
            RIGHT: 39,
            SHIFT: 16,
            SPACE: 32,
            TAB: 9,
            UP: 38
        }
    };
    c.fn.extend({
        _focus: c.fn.focus,
        focus: function(a, b){
            return typeof a === "number" ? this.each(function(){
                var d = this;
                setTimeout(function(){
                    c(d).focus();
                    b && b.call(d)
                }, a)
            }) : this._focus.apply(this, arguments)
        },
        enableSelection: function(){
            return this.attr("unselectable", "off").css("MozUserSelect", "")
        },
        disableSelection: function(){
            return this.attr("unselectable", "on").css("MozUserSelect", "none")
        },
        scrollParent: function(){
            var a;
            a = c.browser.msie && /(static|relative)/.test(this.css("position")) ||
            /absolute/.test(this.css("position")) ? this.parents().filter(function(){
                return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
            }).eq(0) : this.parents().filter(function(){
                return /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
            }).eq(0);
            return /fixed/.test(this.css("position")) || !a.length ? c(document) : a
        },
        zIndex: function(a){
            if (a !==
            undefined) 
                return this.css("zIndex", a);
            if (this.length) {
                a = c(this[0]);
                for (var b; a.length && a[0] !== document;) {
                    b = a.css("position");
                    if (b == "absolute" || b == "relative" || b == "fixed") {
                        b = parseInt(a.css("zIndex"));
                        if (!isNaN(b) && b != 0) 
                            return b
                    }
                    a = a.parent()
                }
            }
            return 0
        }
    });
    c.extend(c.expr[":"], {
        data: function(a, b, d){
            return !!c.data(a, d[3])
        },
        focusable: function(a){
            var b = a.nodeName.toLowerCase(), d = c.attr(a, "tabindex");
            return (/input|select|textarea|button|object/.test(b) ? !a.disabled : "a" == b || "area" == b ? a.href || !isNaN(d) : !isNaN(d)) &&
            !c(a)["area" == b ? "parents" : "closest"](":hidden").length
        },
        tabbable: function(a){
            var b = c.attr(a, "tabindex");
            return (isNaN(b) || b >= 0) && c(a).is(":focusable")
        }
    })
}(jQuery);
;
/*!
 * jQuery UI Widget 1.8.1
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Widget
 */
(function(b){
    var j = b.fn.remove;
    b.fn.remove = function(a, c){
        return this.each(function(){
            if (!c) 
                if (!a || b.filter(a, [this]).length) 
                    b("*", this).add(this).each(function(){
                        b(this).triggerHandler("remove")
                    });
            return j.call(b(this), a, c)
        })
    };
    b.widget = function(a, c, d){
        var e = a.split(".")[0], f;
        a = a.split(".")[1];
        f = e + "-" + a;
        if (!d) {
            d = c;
            c = b.Widget
        }
        b.expr[":"][f] = function(h){
            return !!b.data(h, a)
        };
        b[e] = b[e] ||
        {};
        b[e][a] = function(h, g){
            arguments.length && this._createWidget(h, g)
        };
        c = new c;
        c.options = b.extend({}, c.options);
        b[e][a].prototype = b.extend(true, c, {
            namespace: e,
            widgetName: a,
            widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a,
            widgetBaseClass: f
        }, d);
        b.widget.bridge(a, b[e][a])
    };
    b.widget.bridge = function(a, c){
        b.fn[a] = function(d){
            var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this;
            d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d;
            if (e && d.substring(0, 1) === "_") 
                return h;
            e ? this.each(function(){
                var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g;
                if (i !== g && i !== undefined) {
                    h = i;
                    return false
                }
            }) : this.each(function(){
                var g = b.data(this, a);
                if (g) {
                    d && g.option(d);
                    g._init()
                }
                else 
                    b.data(this, a, new c(d, this))
            });
            return h
        }
    };
    b.Widget = function(a, c){
        arguments.length && this._createWidget(a, c)
    };
    b.Widget.prototype = {
        widgetName: "widget",
        widgetEventPrefix: "",
        options: {
            disabled: false
        },
        _createWidget: function(a, c){
            this.element = b(c).data(this.widgetName, this);
            this.options = b.extend(true, {}, this.options, b.metadata && b.metadata.get(c)[this.widgetName], a);
            var d = this;
            this.element.bind("remove." + this.widgetName, function(){
                d.destroy()
            });
            this._create();
            this._init()
        },
        _create: function(){
        },
        _init: function(){
        },
        destroy: function(){
            this.element.unbind("." + this.widgetName).removeData(this.widgetName);
            this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled")
        },
        widget: function(){
            return this.element
        },
        option: function(a, c){
            var d = a, e = this;
            if (arguments.length === 0) 
                return b.extend({}, e.options);
            if (typeof a === "string") {
                if (c === undefined) 
                    return this.options[a];
                d = {};
                d[a] = c
            }
            b.each(d, function(f, h){
                e._setOption(f, h)
            });
            return e
        },
        _setOption: function(a, c){
            this.options[a] = c;
            if (a === "disabled") 
                this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c);
            return this
        },
        enable: function(){
            return this._setOption("disabled", false)
        },
        disable: function(){
            return this._setOption("disabled", true)
        },
        _trigger: function(a, c, d){
            var e = this.options[a];
            c = b.Event(c);
            c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase();
            d = d ||
            {};
            if (c.originalEvent) {
                a = b.event.props.length;
                for (var f; a;) {
                    f = b.event.props[--a];
                    c[f] = c.originalEvent[f]
                }
            }
            this.element.trigger(c, d);
            return !(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
        }
    }
})(jQuery);
;
/*
 * jQuery UI Accordion 1.8.1
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function(c){
    c.widget("ui.accordion", {
        options: {
            active: 0,
            animated: "slide",
            autoHeight: true,
            clearStyle: false,
            collapsible: false,
            event: "click",
            fillSpace: false,
            header: "> li > :first-child,> :not(li):even",
            icons: {
                header: "ui-icon-triangle-1-e",
                headerSelected: "ui-icon-triangle-1-s"
            },
            navigation: false,
            navigationFilter: function(){
                return this.href.toLowerCase() == location.href.toLowerCase()
            }
        },
        _create: function(){
            var a = this.options, b = this;
            this.running = 0;
            this.element.addClass("ui-accordion ui-widget ui-helper-reset");
            this.element[0].nodeName == "UL" && this.element.children("li").addClass("ui-accordion-li-fix");
            this.headers = this.element.find(a.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function(){
                c(this).addClass("ui-state-hover")
            }).bind("mouseleave.accordion", function(){
                c(this).removeClass("ui-state-hover")
            }).bind("focus.accordion", function(){
                c(this).addClass("ui-state-focus")
            }).bind("blur.accordion", function(){
                c(this).removeClass("ui-state-focus")
            });
            this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
            if (a.navigation) {
                var d = this.element.find("a").filter(a.navigationFilter);
                if (d.length) {
                    var f = d.closest(".ui-accordion-header");
                    this.active = f.length ? f : d.closest(".ui-accordion-content").prev()
                }
            }
            this.active = this._findActive(this.active || a.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
            this.active.next().addClass("ui-accordion-content-active");
            this._createIcons();
            this.resize();
            this.element.attr("role", "tablist");
            this.headers.attr("role", "tab").bind("keydown", function(g){
                return b._keydown(g)
            }).next().attr("role", "tabpanel");
            this.headers.not(this.active || "").attr("aria-expanded", "false").attr("tabIndex", "-1").next().hide();
            this.active.length ? this.active.attr("aria-expanded", "true").attr("tabIndex", "0") : this.headers.eq(0).attr("tabIndex", "0");
            c.browser.safari || this.headers.find("a").attr("tabIndex", "-1");
            a.event &&
            this.headers.bind(a.event +
            ".accordion", function(g){
                b._clickHandler.call(b, g, this);
                g.preventDefault()
            })
        },
        _createIcons: function(){
            var a = this.options;
            if (a.icons) {
                c("<span/>").addClass("ui-icon " + a.icons.header).prependTo(this.headers);
                this.active.find(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);
                this.element.addClass("ui-accordion-icons")
            }
        },
        _destroyIcons: function(){
            this.headers.children(".ui-icon").remove();
            this.element.removeClass("ui-accordion-icons")
        },
        destroy: function(){
            var a = this.options;
            this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");
            this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
            this.headers.find("a").removeAttr("tabIndex");
            this._destroyIcons();
            var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
            if (a.autoHeight || a.fillHeight) 
                b.css("height", "");
            return this
        },
        _setOption: function(a, b){
            c.Widget.prototype._setOption.apply(this, arguments);
            a == "active" && this.activate(b);
            if (a == "icons") {
                this._destroyIcons();
                b && this._createIcons()
            }
        },
        _keydown: function(a){
            var b = c.ui.keyCode;
            if (!(this.options.disabled || a.altKey || a.ctrlKey)) {
                var d = this.headers.length, f = this.headers.index(a.target), g = false;
                switch (a.keyCode) {
                    case b.RIGHT:
                    case b.DOWN:
                        g = this.headers[(f + 1) % d];
                        break;
                    case b.LEFT:
                    case b.UP:
                        g = this.headers[(f - 1 + d) % d];
                        break;
                    case b.SPACE:
                    case b.ENTER:
                        this._clickHandler({
                            target: a.target
                        }, a.target);
                        a.preventDefault()
                }
                if (g) {
                    c(a.target).attr("tabIndex", "-1");
                    c(g).attr("tabIndex", "0");
                    g.focus();
                    return false
                }
                return true
            }
        },
        resize: function(){
            var a = this.options, b;
            if (a.fillSpace) {
                if (c.browser.msie) {
                    var d = this.element.parent().css("overflow");
                    this.element.parent().css("overflow", "hidden")
                }
                b = this.element.parent().height();
                c.browser.msie && this.element.parent().css("overflow", d);
                this.headers.each(function(){
                    b -= c(this).outerHeight(true)
                });
                this.headers.next().each(function(){
                    c(this).height(Math.max(0, b - c(this).innerHeight() + c(this).height()))
                }).css("overflow", "auto")
            }
            else 
                if (a.autoHeight) {
                    b = 0;
                    this.headers.next().each(function(){
                        b = Math.max(b, c(this).height())
                    }).height(b)
                }
            return this
        },
        activate: function(a){
            this.options.active = a;
            a = this._findActive(a)[0];
            this._clickHandler({
                target: a
            }, a);
            return this
        },
        _findActive: function(a){
            return a ? typeof a == "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)")
        },
        _clickHandler: function(a, b){
            var d = this.options;
            if (!d.disabled) 
                if (a.target) {
                    a = c(a.currentTarget || b);
                    b = a[0] == this.active[0];
                    d.active = d.collapsible && b ? false : c(".ui-accordion-header", this.element).index(a);
                    if (!(this.running || !d.collapsible && b)) {
                        this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
                        if (!b) {
                            a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
                            a.next().addClass("ui-accordion-content-active")
                        }
                        e = a.next();
                        f = this.active.next();
                        g = {
                            options: d,
                            newHeader: b && d.collapsible ? c([]) : a,
                            oldHeader: this.active,
                            newContent: b && d.collapsible ? c([]) : e,
                            oldContent: f
                        };
                        d = this.headers.index(this.active[0]) > this.headers.index(a[0]);
                        this.active = b ? c([]) : a;
                        this._toggle(e, f, g, b, d)
                    }
                }
                else 
                    if (d.collapsible) {
                        this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
                        this.active.next().addClass("ui-accordion-content-active");
                        var f = this.active.next(), g = {
                            options: d,
                            newHeader: c([]),
                            oldHeader: d.active,
                            newContent: c([]),
                            oldContent: f
                        }, e = this.active = c([]);
                        this._toggle(e, f, g)
                    }
        },
        _toggle: function(a, b, d, f, g){
            var e = this.options, k = this;
            this.toShow = a;
            this.toHide = b;
            this.data = d;
            var i = function(){
                if (k) 
                    return k._completed.apply(k, arguments)
            };
            this._trigger("changestart", null, this.data);
            this.running = b.size() === 0 ? a.size() : b.size();
            if (e.animated) {
                d = {};
                d = e.collapsible && f ? {
                    toShow: c([]),
                    toHide: b,
                    complete: i,
                    down: g,
                    autoHeight: e.autoHeight || e.fillSpace
                } : {
                    toShow: a,
                    toHide: b,
                    complete: i,
                    down: g,
                    autoHeight: e.autoHeight || e.fillSpace
                };
                if (!e.proxied) 
                    e.proxied = e.animated;
                if (!e.proxiedDuration) 
                    e.proxiedDuration = e.duration;
                e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied;
                e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration;
                f = c.ui.accordion.animations;
                var h = e.duration, j = e.animated;
                if (j && !f[j] && !c.easing[j]) 
                    j = "slide";
                f[j] ||
                (f[j] = function(l){
                    this.slide(l, {
                        easing: j,
                        duration: h || 700
                    })
                });
                f[j](d)
            }
            else {
                if (e.collapsible && f) 
                    a.toggle();
                else {
                    b.hide();
                    a.show()
                }
                i(true)
            }
            b.prev().attr("aria-expanded", "false").attr("tabIndex", "-1");
            a.prev().attr("aria-expanded", "true").attr("tabIndex", "0")
        },
        _completed: function(a){
            var b = this.options;
            this.running = a ? 0 : --this.running;
            if (!this.running) {
                b.clearStyle && this.toShow.add(this.toHide).css({
                    height: "",
                    overflow: ""
                });
                this.toHide.removeClass("ui-accordion-content-active");
                this._trigger("change", null, this.data)
            }
        }
    });
    c.extend(c.ui.accordion, {
        version: "1.8.1",
        animations: {
            slide: function(a, b){
                a = c.extend({
                    easing: "swing",
                    duration: 300
                }, a, b);
                if (a.toHide.size()) 
                    if (a.toShow.size()) {
                        var d = a.toShow.css("overflow"), f = 0, g = {}, e = {}, k;
                        b = a.toShow;
                        k = b[0].style.width;
                        b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0));
                        c.each(["height", "paddingTop", "paddingBottom"], function(i, h){
                            e[h] = "hide";
                            i = ("" +
                            c.css(a.toShow[0], h)).match(/^([\d+-.]+)(.*)$/);
                            g[h] = {
                                value: i[1],
                                unit: i[2] || "px"
                            }
                        });
                        a.toShow.css({
                            height: 0,
                            overflow: "hidden"
                        }).show();
                        a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(e, {
                            step: function(i, h){
                                if (h.prop == "height") 
                                    f = h.end - h.start === 0 ? 0 : (h.now - h.start) / (h.end - h.start);
                                a.toShow[0].style[h.prop] = f * g[h.prop].value + g[h.prop].unit
                            },
                            duration: a.duration,
                            easing: a.easing,
                            complete: function(){
                                a.autoHeight || a.toShow.css("height", "");
                                a.toShow.css("width", k);
                                a.toShow.css({
                                    overflow: d
                                });
                                a.complete()
                            }
                        })
                    }
                    else 
                        a.toHide.animate({
                            height: "hide"
                        }, a);
                else 
                    a.toShow.animate({
                        height: "show"
                    }, a)
            },
            bounceslide: function(a){
                this.slide(a, {
                    easing: a.down ? "easeOutBounce" : "swing",
                    duration: a.down ? 1E3 : 200
                })
            }
        }
    })
})(jQuery);
;
/*
 * jQuery UI Effects 1.8.1
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects ||
function(f){
    function k(c){
        var a;
        if (c && c.constructor == Array && c.length == 3) 
            return c;
        if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)) 
            return [parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)];
        if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)) 
            return [parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55];
        if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) 
            return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)];
        if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) 
            return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)];
        if (/rgba\(0, 0, 0, 0\)/.exec(c)) 
            return l.transparent;
        return l[f.trim(c).toLowerCase()]
    }
    function q(c, a){
        var b;
        do {
            b = f.curCSS(c, a);
            if (b != "" && b != "transparent" || f.nodeName(c, "body")) 
                break;
            a = "backgroundColor"
        }
        while (c = c.parentNode);
        return k(b)
    }
    function m(){
        var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle, a = {}, b, d;
        if (c && c.length && c[0] && c[c[0]]) 
            for (var e = c.length; e--;) {
                b = c[e];
                if (typeof c[b] == "string") {
                    d = b.replace(/\-(\w)/g, function(g, h){
                        return h.toUpperCase()
                    });
                    a[d] = c[b]
                }
            }
        else 
            for (b in c) 
                if (typeof c[b] === "string") 
                    a[b] = c[b];
        return a
    }
    function n(c){
        var a, b;
        for (a in c) {
            b = c[a];
            if (b == null || f.isFunction(b) || a in r || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) 
                delete c[a]
        }
        return c
    }
    function s(c, a){
        var b = {
            _: 0
        }, d;
        for (d in a) 
            if (c[d] != a[d]) 
                b[d] = a[d];
        return b
    }
    function j(c, a, b, d){
        if (typeof c == "object") {
            d = a;
            b = null;
            a = c;
            c = a.effect
        }
        if (f.isFunction(a)) {
            d = a;
            b = null;
            a = {}
        }
        if (f.isFunction(b)) {
            d = b;
            b = null
        }
        if (typeof a == "number" || f.fx.speeds[a]) {
            d = b;
            b = a;
            a = {}
        }
        a = a ||
        {};
        b = b || a.duration;
        b = f.fx.off ? 0 : typeof b == "number" ? b : f.fx.speeds[b] || f.fx.speeds._default;
        d = d || a.complete;
        return [c, a, b, d]
    }
    f.effects = {};
    f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(c, a){
        f.fx.step[a] = function(b){
            if (!b.colorInit) {
                b.start = q(b.elem, a);
                b.end = k(b.end);
                b.colorInit = true
            }
            b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"
        }
    });
    var l = {
        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]
    }, o = ["add", "remove", "toggle"], r = {
        border: 1,
        borderBottom: 1,
        borderColor: 1,
        borderLeft: 1,
        borderRight: 1,
        borderTop: 1,
        borderWidth: 1,
        margin: 1,
        padding: 1
    };
    f.effects.animateClass = function(c, a, b, d){
        if (f.isFunction(b)) {
            d = b;
            b = null
        }
        return this.each(function(){
            var e = f(this), g = e.attr("style") || " ", h = n(m.call(this)), p, t = e.attr("className");
            f.each(o, function(u, i){
                c[i] && e[i + "Class"](c[i])
            });
            p = n(m.call(this));
            e.attr("className", t);
            e.animate(s(h, p), a, b, function(){
                f.each(o, function(u, i){
                    c[i] && e[i + "Class"](c[i])
                });
                if (typeof e.attr("style") == "object") {
                    e.attr("style").cssText = "";
                    e.attr("style").cssText = g
                }
                else 
                    e.attr("style", g);
                d && d.apply(this, arguments)
            })
        })
    };
    f.fn.extend({
        _addClass: f.fn.addClass,
        addClass: function(c, a, b, d){
            return a ? f.effects.animateClass.apply(this, [{
                add: c
            }, a, b, d]) : this._addClass(c)
        },
        _removeClass: f.fn.removeClass,
        removeClass: function(c, a, b, d){
            return a ? f.effects.animateClass.apply(this, [{
                remove: c
            }, a, b, d]) : this._removeClass(c)
        },
        _toggleClass: f.fn.toggleClass,
        toggleClass: function(c, a, b, d, e){
            return typeof a == "boolean" || a === undefined ? b ? f.effects.animateClass.apply(this, [a ? {
                add: c
            } : {
                remove: c
            }, b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this, [{
                toggle: c
            }, a, b, d])
        },
        switchClass: function(c, a, b, d, e){
            return f.effects.animateClass.apply(this, [{
                add: a,
                remove: c
            }, b, d, e])
        }
    });
    f.extend(f.effects, {
        version: "1.8.1",
        save: function(c, a){
            for (var b = 0; b < a.length; b++) 
                a[b] !==
                null &&
                c.data("ec.storage." + a[b], c[0].style[a[b]])
        },
        restore: function(c, a){
            for (var b = 0; b < a.length; b++) 
                a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b]))
        },
        setMode: function(c, a){
            if (a == "toggle") 
                a = c.is(":hidden") ? "show" : "hide";
            return a
        },
        getBaseline: function(c, a){
            var b;
            switch (c[0]) {
                case "top":
                    b = 0;
                    break;
                case "middle":
                    b = 0.5;
                    break;
                case "bottom":
                    b = 1;
                    break;
                default:
                    b = c[0] / a.height
            }
            switch (c[1]) {
                case "left":
                    c = 0;
                    break;
                case "center":
                    c = 0.5;
                    break;
                case "right":
                    c = 1;
                    break;
                default:
                    c = c[1] / a.width
            }
            return {
                x: c,
                y: b
            }
        },
        createWrapper: function(c){
            if (c.parent().is(".ui-effects-wrapper")) 
                return c.parent();
            var a = {
                width: c.outerWidth(true),
                height: c.outerHeight(true),
                "float": c.css("float")
            }, b = f("<div></div>").addClass("ui-effects-wrapper").css({
                fontSize: "100%",
                background: "transparent",
                border: "none",
                margin: 0,
                padding: 0
            });
            c.wrap(b);
            b = c.parent();
            if (c.css("position") == "static") {
                b.css({
                    position: "relative"
                });
                c.css({
                    position: "relative"
                })
            }
            else {
                f.extend(a, {
                    position: c.css("position"),
                    zIndex: c.css("z-index")
                });
                f.each(["top", "left", "bottom", "right"], function(d, e){
                    a[e] = c.css(e);
                    if (isNaN(parseInt(a[e], 10))) 
                        a[e] = "auto"
                });
                c.css({
                    position: "relative",
                    top: 0,
                    left: 0
                })
            }
            return b.css(a).show()
        },
        removeWrapper: function(c){
            if (c.parent().is(".ui-effects-wrapper")) 
                return c.parent().replaceWith(c);
            return c
        },
        setTransition: function(c, a, b, d){
            d = d ||
            {};
            f.each(a, function(e, g){
                unit = c.cssUnit(g);
                if (unit[0] > 0) 
                    d[g] = unit[0] * b + unit[1]
            });
            return d
        }
    });
    f.fn.extend({
        effect: function(c){
            var a = j.apply(this, arguments);
            a = {
                options: a[1],
                duration: a[2],
                callback: a[3]
            };
            var b = f.effects[c];
            return b && !f.fx.off ? b.call(this, a) : this
        },
        _show: f.fn.show,
        show: function(c){
            if (!c ||
            typeof c == "number" ||
            f.fx.speeds[c]) 
                return this._show.apply(this, arguments);
            else {
                var a = j.apply(this, arguments);
                a[1].mode = "show";
                return this.effect.apply(this, a)
            }
        },
        _hide: f.fn.hide,
        hide: function(c){
            if (!c || typeof c == "number" || f.fx.speeds[c]) 
                return this._hide.apply(this, arguments);
            else {
                var a = j.apply(this, arguments);
                a[1].mode = "hide";
                return this.effect.apply(this, a)
            }
        },
        __toggle: f.fn.toggle,
        toggle: function(c){
            if (!c || typeof c == "number" || f.fx.speeds[c] || typeof c == "boolean" || f.isFunction(c)) 
                return this.__toggle.apply(this, arguments);
            else {
                var a = j.apply(this, arguments);
                a[1].mode = "toggle";
                return this.effect.apply(this, a)
            }
        },
        cssUnit: function(c){
            var a = this.css(c), b = [];
            f.each(["em", "px", "%", "pt"], function(d, e){
                if (a.indexOf(e) > 0) 
                    b = [parseFloat(a), e]
            });
            return b
        }
    });
    f.easing.jswing = f.easing.swing;
    f.extend(f.easing, {
        def: "easeOutQuad",
        swing: function(c, a, b, d, e){
            return f.easing[f.easing.def](c, a, b, d, e)
        },
        easeInQuad: function(c, a, b, d, e){
            return d * (a /= e) * a + b
        },
        easeOutQuad: function(c, a, b, d, e){
            return -d * (a /= e) * (a - 2) + b
        },
        easeInOutQuad: function(c, a, b, d, e){
            if ((a /= e / 2) < 1) 
                return d / 2 * a * a + b;
            return -d / 2 * (--a * (a - 2) - 1) + b
        },
        easeInCubic: function(c, a, b, d, e){
            return d * (a /= e) * a * a + b
        },
        easeOutCubic: function(c, a, b, d, e){
            return d * ((a = a / e - 1) * a * a + 1) + b
        },
        easeInOutCubic: function(c, a, b, d, e){
            if ((a /= e / 2) < 1) 
                return d / 2 * a * a * a + b;
            return d / 2 * ((a -= 2) * a * a + 2) + b
        },
        easeInQuart: function(c, a, b, d, e){
            return d * (a /= e) * a * a * a + b
        },
        easeOutQuart: function(c, a, b, d, e){
            return -d * ((a = a / e - 1) * a * a * a - 1) + b
        },
        easeInOutQuart: function(c, a, b, d, e){
            if ((a /= e / 2) < 1) 
                return d / 2 * a * a * a * a + b;
            return -d / 2 * ((a -= 2) * a * a * a - 2) +
            b
        },
        easeInQuint: function(c, a, b, d, e){
            return d * (a /= e) * a * a * a * a + b
        },
        easeOutQuint: function(c, a, b, d, e){
            return d * ((a = a / e - 1) * a * a * a * a + 1) + b
        },
        easeInOutQuint: function(c, a, b, d, e){
            if ((a /= e / 2) < 1) 
                return d / 2 * a * a * a * a * a + b;
            return d / 2 * ((a -= 2) * a * a * a * a + 2) + b
        },
        easeInSine: function(c, a, b, d, e){
            return -d * Math.cos(a / e * (Math.PI / 2)) + d + b
        },
        easeOutSine: function(c, a, b, d, e){
            return d * Math.sin(a / e * (Math.PI / 2)) + b
        },
        easeInOutSine: function(c, a, b, d, e){
            return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b
        },
        easeInExpo: function(c, a, b, d, e){
            return a == 0 ? b : d *
            Math.pow(2, 10 * (a / e - 1)) +
            b
        },
        easeOutExpo: function(c, a, b, d, e){
            return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b
        },
        easeInOutExpo: function(c, a, b, d, e){
            if (a == 0) 
                return b;
            if (a == e) 
                return b + d;
            if ((a /= e / 2) < 1) 
                return d / 2 * Math.pow(2, 10 * (a - 1)) + b;
            return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b
        },
        easeInCirc: function(c, a, b, d, e){
            return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b
        },
        easeOutCirc: function(c, a, b, d, e){
            return d * Math.sqrt(1 - (a = a / e - 1) * a) + b
        },
        easeInOutCirc: function(c, a, b, d, e){
            if ((a /= e / 2) < 1) 
                return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b;
            return d / 2 *
            (Math.sqrt(1 -
            (a -= 2) *
            a) +
            1) +
            b
        },
        easeInElastic: function(c, a, b, d, e){
            c = 1.70158;
            var g = 0, h = d;
            if (a == 0) 
                return b;
            if ((a /= e) == 1) 
                return b + d;
            g || (g = e * 0.3);
            if (h < Math.abs(d)) {
                h = d;
                c = g / 4
            }
            else 
                c = g / (2 * Math.PI) * Math.asin(d / h);
            return -(h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b
        },
        easeOutElastic: function(c, a, b, d, e){
            c = 1.70158;
            var g = 0, h = d;
            if (a == 0) 
                return b;
            if ((a /= e) == 1) 
                return b + d;
            g || (g = e * 0.3);
            if (h < Math.abs(d)) {
                h = d;
                c = g / 4
            }
            else 
                c = g / (2 * Math.PI) * Math.asin(d / h);
            return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b
        },
        easeInOutElastic: function(c, a, b, d, e){
            c = 1.70158;
            var g = 0, h = d;
            if (a == 0) 
                return b;
            if ((a /= e / 2) == 2) 
                return b + d;
            g || (g = e * 0.3 * 1.5);
            if (h < Math.abs(d)) {
                h = d;
                c = g / 4
            }
            else 
                c = g / (2 * Math.PI) * Math.asin(d / h);
            if (a < 1) 
                return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b;
            return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b
        },
        easeInBack: function(c, a, b, d, e, g){
            if (g == undefined) 
                g = 1.70158;
            return d * (a /= e) * a * ((g + 1) * a - g) + b
        },
        easeOutBack: function(c, a, b, d, e, g){
            if (g == undefined) 
                g = 1.70158;
            return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b
        },
        easeInOutBack: function(c, a, b, d, e, g){
            if (g == undefined) 
                g = 1.70158;
            if ((a /= e / 2) < 1) 
                return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b;
            return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b
        },
        easeInBounce: function(c, a, b, d, e){
            return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b
        },
        easeOutBounce: function(c, a, b, d, e){
            return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b
        },
        easeInOutBounce: function(c, a, b, d, e){
            if (a < e / 2) 
                return f.easing.easeInBounce(c, a * 2, 0, d, e) *
                0.5 +
                b;
            return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
        }
    })
}(jQuery);
;

