;
(function ($) {
    var _remove = $.fn.remove;
    $.fn.remove = function () {
        $("*", this).add(this).triggerHandler("remove");
        return _remove.apply(this, arguments);
    };

    function isVisible(element) {
        function checkStyles(element) {
            var style = element.style;
            return (style.display != 'none' && style.visibility != 'hidden');
        }
        var visible = checkStyles(element);
        (visible && $.each($.dir(element, 'parentNode'), function () {
            return (visible = checkStyles(this));
        }));
        return visible;
    }
    $.extend($.expr[':'], {
        data: function (a, i, m) {
            return $.data(a, m[3]);
        },
        tabbable: function (a, i, m) {
            var nodeName = a.nodeName.toLowerCase();
            return (a.tabIndex >= 0 && (('a' == nodeName && a.href) || (/input|select|textarea|button/.test(nodeName) && 'hidden' != a.type && !a.disabled)) && isVisible(a));
        }
    });
    $.keyCode = {
        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
    };

    function getter(namespace, plugin, method, args) {
        function getMethods(type) {
            var methods = $[namespace][plugin][type] || [];
            return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
        }
        var methods = getMethods('getter');
        if (args.length == 1 && typeof args[0] == 'string') {
            methods = methods.concat(getMethods('getterSetter'));
        }
        return ($.inArray(method, methods) != -1);
    }
    $.widget = function (name, prototype) {
        var namespace = name.split(".")[0];
        name = name.split(".")[1];
        $.fn[name] = function (options) {
            var isMethodCall = (typeof options == 'string'),
                args = Array.prototype.slice.call(arguments, 1);
            if (isMethodCall && options.substring(0, 1) == '_') {
                return this;
            }
            if (isMethodCall && getter(namespace, name, options, args)) {
                var instance = $.data(this[0], name);
                return (instance ? instance[options].apply(instance, args) : undefined);
            }
            return this.each(function () {
                var instance = $.data(this, name);
                (!instance && !isMethodCall && $.data(this, name, new $[namespace][name](this, options)));
                (instance && isMethodCall && $.isFunction(instance[options]) && instance[options].apply(instance, args));
            });
        };
        $[namespace][name] = function (element, options) {
            var self = this;
            this.widgetName = name;
            this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
            this.widgetBaseClass = namespace + '-' + name;
            this.options = $.extend({}, $.widget.defaults, $[namespace][name].defaults, $.metadata && $.metadata.get(element)[name], options);
            this.element = $(element).bind('setData.' + name, function (e, key, value) {
                return self._setData(key, value);
            }).bind('getData.' + name, function (e, key) {
                return self._getData(key);
            }).bind('remove', function () {
                return self.destroy();
            });
            this._init();
        };
        $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
        $[namespace][name].getterSetter = 'option';
    };
    $.widget.prototype = {
        _init: function () {},
        destroy: function () {
            this.element.removeData(this.widgetName);
        },
        option: function (key, value) {
            var options = key,
                self = this;
            if (typeof key == "string") {
                if (value === undefined) {
                    return this._getData(key);
                }
                options = {};
                options[key] = value;
            }
            $.each(options, function (key, value) {
                self._setData(key, value);
            });
        },
        _getData: function (key) {
            return this.options[key];
        },
        _setData: function (key, value) {
            this.options[key] = value;
            if (key == 'disabled') {
                this.element[value ? 'addClass' : 'removeClass'](this.widgetBaseClass + '-disabled');
            }
        },
        enable: function () {
            this._setData('disabled', false);
        },
        disable: function () {
            this._setData('disabled', true);
        },
        _trigger: function (type, e, data) {
            var eventName = (type == this.widgetEventPrefix ? type : this.widgetEventPrefix + type);
            e = e || $.event.fix({
                type: eventName,
                target: this.element[0]
            });
            return this.element.triggerHandler(eventName, [e, data], this.options[type]);
        }
    };
    $.widget.defaults = {
        disabled: false
    };
    $.ui = {
        plugin: {
            add: function (module, option, set) {
                var proto = $.ui[module].prototype;
                for (var i in set) {
                    proto.plugins[i] = proto.plugins[i] || [];
                    proto.plugins[i].push([option, set[i]]);
                }
            },
            call: function (instance, name, args) {
                var set = instance.plugins[name];
                if (!set) {
                    return;
                }
                for (var i = 0; i < set.length; i++) {
                    if (instance.options[set[i][0]]) {
                        set[i][1].apply(instance.element, args);
                    }
                }
            }
        },
        cssCache: {},
        css: function (name) {
            if ($.ui.cssCache[name]) {
                return $.ui.cssCache[name];
            }
            var tmp = $('<div class="ui-gen">').addClass(name).css({
                position: 'absolute',
                top: '-5000px',
                left: '-5000px',
                display: 'block'
            }).appendTo('body');
            $.ui.cssCache[name] = !! ((!(/auto|default/).test(tmp.css('cursor')) || (/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) || !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor'))));
            try {
                $('body').get(0).removeChild(tmp.get(0));
            } catch (e) {}
            return $.ui.cssCache[name];
        },
        disableSelection: function (el) {
            return $(el).attr('unselectable', 'on').css('MozUserSelect', 'none').bind('selectstart.ui', function () {
                return false;
            });
        },
        enableSelection: function (el) {
            return $(el).attr('unselectable', 'off').css('MozUserSelect', '').unbind('selectstart.ui');
        },
        hasScroll: function (e, a) {
            if ($(e).css('overflow') == 'hidden') {
                return false;
            }
            var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop',
                has = false;
            if (e[scroll] > 0) {
                return true;
            }
            e[scroll] = 1;
            has = (e[scroll] > 0);
            e[scroll] = 0;
            return has;
        }
    };
    $.ui.mouse = {
        _mouseInit: function () {
            var self = this;
            this.element.bind('mousedown.' + this.widgetName, function (e) {
                return self._mouseDown(e);
            });
            if ($.browser.msie) {
                this._mouseUnselectable = this.element.attr('unselectable');
                this.element.attr('unselectable', 'on');
            }
            this.started = false;
        },
        _mouseDestroy: function () {
            this.element.unbind('.' + this.widgetName);
            ($.browser.msie && this.element.attr('unselectable', this._mouseUnselectable));
        },
        _mouseDown: function (e) {
            (this._mouseStarted && this._mouseUp(e));
            this._mouseDownEvent = e;
            var self = this,
                btnIsLeft = (e.which == 1),
                elIsCancel = (typeof this.options.cancel == "string" ? $(e.target).parents().add(e.target).filter(this.options.cancel).length : false);
            if (!btnIsLeft || elIsCancel || !this._mouseCapture(e)) {
                return true;
            }
            this.mouseDelayMet = !this.options.delay;
            if (!this.mouseDelayMet) {
                this._mouseDelayTimer = setTimeout(function () {
                    self.mouseDelayMet = true;
                }, this.options.delay);
            }
            if (this._mouseDistanceMet(e) && this._mouseDelayMet(e)) {
                this._mouseStarted = (this._mouseStart(e) !== false);
                if (!this._mouseStarted) {
                    e.preventDefault();
                    return true;
                }
            }
            this._mouseMoveDelegate = function (e) {
                return self._mouseMove(e);
            };
            this._mouseUpDelegate = function (e) {
                return self._mouseUp(e);
            };
            $(document).bind('mousemove.' + this.widgetName, this._mouseMoveDelegate).bind('mouseup.' + this.widgetName, this._mouseUpDelegate);
            return false;
        },
        _mouseMove: function (e) {
            if ($.browser.msie && !e.button) {
                return this._mouseUp(e);
            }
            if (this._mouseStarted) {
                this._mouseDrag(e);
                return false;
            }
            if (this._mouseDistanceMet(e) && this._mouseDelayMet(e)) {
                this._mouseStarted = (this._mouseStart(this._mouseDownEvent, e) !== false);
                (this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e));
            }
            return !this._mouseStarted;
        },
        _mouseUp: function (e) {
            $(document).unbind('mousemove.' + this.widgetName, this._mouseMoveDelegate).unbind('mouseup.' + this.widgetName, this._mouseUpDelegate);
            if (this._mouseStarted) {
                this._mouseStarted = false;
                this._mouseStop(e);
            }
            return false;
        },
        _mouseDistanceMet: function (e) {
            return (Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance);
        },
        _mouseDelayMet: function (e) {
            return this.mouseDelayMet;
        },
        _mouseStart: function (e) {},
        _mouseDrag: function (e) {},
        _mouseStop: function (e) {},
        _mouseCapture: function (e) {
            return true;
        }
    };
    $.ui.mouse.defaults = {
        cancel: null,
        distance: 1,
        delay: 0
    };
})(jQuery);
(function ($) {
    $.fn.unwrap = $.fn.unwrap ||
    function (expr) {
        return this.each(function () {
            $(this).parents(expr).eq(0).after(this).remove();
        });
    };
    $.widget("ui.slider", {
        plugins: {},
        ui: function (e) {
            return {
                options: this.options,
                handle: this.currentHandle,
                value: this.options.axis != "both" || !this.options.axis ? Math.round(this.value(null, this.options.axis == "vertical" ? "y" : "x")) : {
                    x: Math.round(this.value(null, "x")),
                    y: Math.round(this.value(null, "y"))
                },
                range: this._getRange()
            };
        },
        _propagate: function (n, e) {
            $.ui.plugin.call(this, n, [e, this.ui()]);
            this.element.triggerHandler(n == "slide" ? n : "slide" + n, [e, this.ui()], this.options[n]);
        },
        destroy: function () {
            this.element.removeClass("ui-slider ui-slider-disabled").removeData("slider").unbind(".slider");
            if (this.handle && this.handle.length) {
                this.handle.unwrap("a");
                this.handle.each(function () {
                    $(this).data("mouse")._mouseDestroy();
                });
            }
            this.generated && this.generated.remove();
        },
        _setData: function (key, value) {
            $.widget.prototype._setData.apply(this, arguments);
            if (/min|max|steps/.test(key)) {
                this._initBoundaries();
            }
            if (key == "range") {
                value ? this.handle.length == 2 && this._createRange() : this._removeRange();
            }
        },
        _init: function () {
            var self = this;
            this.element.addClass("ui-slider");
            this._initBoundaries();
            this.handle = $(this.options.handle, this.element);
            if (!this.handle.length) {
                self.handle = self.generated = $(self.options.handles || [0]).map(function () {
                    var handle = $("<div/>").addClass("ui-slider-handle").appendTo(self.element);
                    if (this.id) handle.attr("id", this.id);
                    return handle[0];
                });
            }
            var handleclass = function (el) {
                this.element = $(el);
                this.element.data("mouse", this);
                this.options = self.options;
                this.element.bind("mousedown", function () {
                    if (self.currentHandle) this.blur(self.currentHandle);
                    self._focus(this, true);
                });
                this._mouseInit();
            };
            $.extend(handleclass.prototype, $.ui.mouse, {
                _mouseStart: function (e) {
                    return self._start.call(self, e, this.element[0]);
                },
                _mouseStop: function (e) {
                    return self._stop.call(self, e, this.element[0]);
                },
                _mouseDrag: function (e) {
                    return self._drag.call(self, e, this.element[0]);
                },
                _mouseCapture: function () {
                    return true;
                },
                trigger: function (e) {
                    this._mouseDown(e);
                }
            });
            $(this.handle).each(function () {
                new handleclass(this);
            }).wrap('<a href="#" style="outline:none;border:none;"></a>').parent().bind('click', function () {
                return false;
            }).bind('focus', function (e) {
                self._focus(this.firstChild);
            }).bind('blur', function (e) {
                self._blur(this.firstChild);
            }).bind('keydown', function (e) {
                if (!self.options.noKeyboard) return self._keydown(e.keyCode, this.firstChild);
            });
            this.element.bind('mousedown.slider', function (e) {
                self._click.apply(self, [e]);
                self.currentHandle.data("mouse").trigger(e);
                self.firstValue = self.firstValue + 1;
            });
            $.each(this.options.handles || [], function (index, handle) {
                self.moveTo(handle.start, index, true);
            });
            if (!isNaN(this.options.startValue)) this.moveTo(this.options.startValue, 0, true);
            this.previousHandle = $(this.handle[0]);
            if (this.handle.length == 2 && this.options.range) this._createRange();
        },
        _initBoundaries: function () {
            var element = this.element[0],
                o = this.options;
            this.actualSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            };
            $.extend(o, {
                axis: o.axis || (element.offsetWidth < element.offsetHeight ? 'vertical' : 'horizontal'),
                max: !isNaN(parseInt(o.max, 10)) ? {
                    x: parseInt(o.max, 10),
                    y: parseInt(o.max, 10)
                } : ({
                    x: o.max && o.max.x || 100,
                    y: o.max && o.max.y || 100
                }),
                min: !isNaN(parseInt(o.min, 10)) ? {
                    x: parseInt(o.min, 10),
                    y: parseInt(o.min, 10)
                } : ({
                    x: o.min && o.min.x || 0,
                    y: o.min && o.min.y || 0
                })
            });
            o.realMax = {
                x: o.max.x - o.min.x,
                y: o.max.y - o.min.y
            };
            o.stepping = {
                x: o.stepping && o.stepping.x || parseInt(o.stepping, 10) || (o.steps ? o.realMax.x / (o.steps.x || parseInt(o.steps, 10) || o.realMax.x) : 0),
                y: o.stepping && o.stepping.y || parseInt(o.stepping, 10) || (o.steps ? o.realMax.y / (o.steps.y || parseInt(o.steps, 10) || o.realMax.y) : 0)
            };
        },
        _keydown: function (keyCode, handle) {
            var k = keyCode;
            if (/(33|34|35|36|37|38|39|40)/.test(k)) {
                var o = this.options,
                    xpos, ypos;
                if (/(35|36)/.test(k)) {
                    xpos = (k == 35) ? o.max.x : o.min.x;
                    ypos = (k == 35) ? o.max.y : o.min.y;
                } else {
                    var oper = /(34|37|40)/.test(k) ? "-=" : "+=";
                    var step = /(37|38|39|40)/.test(k) ? "_oneStep" : "_pageStep";
                    xpos = oper + this[step]("x");
                    ypos = oper + this[step]("y");
                }
                this.moveTo({
                    x: xpos,
                    y: ypos
                }, handle);
                return false;
            }
            return true;
        },
        _focus: function (handle, hard) {
            this.currentHandle = $(handle).addClass('ui-slider-handle-active');
            if (hard) this.currentHandle.parent()[0].focus();
        },
        _blur: function (handle) {
            $(handle).removeClass('ui-slider-handle-active');
            if (this.currentHandle && this.currentHandle[0] == handle) {
                this.previousHandle = this.currentHandle;
                this.currentHandle = null;
            };
        },
        _click: function (e) {
            var pointer = [e.pageX, e.pageY];
            var clickedHandle = false;
            this.handle.each(function () {
                if (this == e.target) clickedHandle = true;
            });
            if (clickedHandle || this.options.disabled || !(this.currentHandle || this.previousHandle)) return;
            if (!this.currentHandle && this.previousHandle) this._focus(this.previousHandle, true);
            this.offset = this.element.offset();
            this.moveTo({
                y: this._convertValue(e.pageY - this.offset.top - this.currentHandle[0].offsetHeight / 2, "y"),
                x: this._convertValue(e.pageX - this.offset.left - this.currentHandle[0].offsetWidth / 2, "x")
            }, null, !this.options.distance);
        },
        _createRange: function () {
            if (this.rangeElement) return;
            this.rangeElement = $('<div></div>').addClass('ui-slider-range').css({
                position: 'absolute'
            }).appendTo(this.element);
            this._updateRange();
        },
        _removeRange: function () {
            this.rangeElement.remove();
            this.rangeElement = null;
        },
        _updateRange: function () {
            var prop = this.options.axis == "vertical" ? "top" : "left";
            var size = this.options.axis == "vertical" ? "height" : "width";
            this.rangeElement.css(prop, (parseInt($(this.handle[0]).css(prop), 10) || 0) + this._handleSize(0, this.options.axis == "vertical" ? "y" : "x") / 2);
            this.rangeElement.css(size, (parseInt($(this.handle[1]).css(prop), 10) || 0) - (parseInt($(this.handle[0]).css(prop), 10) || 0));
        },
        _getRange: function () {
            return this.rangeElement ? this._convertValue(parseInt(this.rangeElement.css(this.options.axis == "vertical" ? "height" : "width"), 10), this.options.axis == "vertical" ? "y" : "x") : null;
        },
        _handleIndex: function () {
            return this.handle.index(this.currentHandle[0]);
        },
        value: function (handle, axis) {
            if (this.handle.length == 1) this.currentHandle = this.handle;
            if (!axis) axis = this.options.axis == "vertical" ? "y" : "x";
            var curHandle = $(handle != undefined && handle !== null ? this.handle[handle] || handle : this.currentHandle);
            if (curHandle.data("mouse").sliderValue) {
                return parseInt(curHandle.data("mouse").sliderValue[axis], 10);
            } else {
                return parseInt(((parseInt(curHandle.css(axis == "x" ? "left" : "top"), 10) / (this.actualSize[axis == "x" ? "width" : "height"] - this._handleSize(handle, axis))) * this.options.realMax[axis]) + this.options.min[axis], 10);
            }
        },
        _convertValue: function (value, axis) {
            return this.options.min[axis] + (value / (this.actualSize[axis == "x" ? "width" : "height"] - this._handleSize(null, axis))) * this.options.realMax[axis];
        },
        _translateValue: function (value, axis) {
            return ((value - this.options.min[axis]) / this.options.realMax[axis]) * (this.actualSize[axis == "x" ? "width" : "height"] - this._handleSize(null, axis));
        },
        _translateRange: function (value, axis) {
            if (this.rangeElement) {
                if (this.currentHandle[0] == this.handle[0] && value >= this._translateValue(this.value(1), axis)) value = this._translateValue(this.value(1, axis) - this._oneStep(axis), axis);
                if (this.currentHandle[0] == this.handle[1] && value <= this._translateValue(this.value(0), axis)) value = this._translateValue(this.value(0, axis) + this._oneStep(axis), axis);
            }
            if (this.options.handles) {
                var handle = this.options.handles[this._handleIndex()];
                if (value < this._translateValue(handle.min, axis)) {
                    value = this._translateValue(handle.min, axis);
                } else if (value > this._translateValue(handle.max, axis)) {
                    value = this._translateValue(handle.max, axis);
                }
            }
            return value;
        },
        _translateLimits: function (value, axis) {
            if (value >= this.actualSize[axis == "x" ? "width" : "height"] - this._handleSize(null, axis)) value = this.actualSize[axis == "x" ? "width" : "height"] - this._handleSize(null, axis);
            if (value <= 0) value = 0;
            return value;
        },
        _handleSize: function (handle, axis) {
            return $(handle != undefined && handle !== null ? this.handle[handle] : this.currentHandle)[0]["offset" + (axis == "x" ? "Width" : "Height")];
        },
        _oneStep: function (axis) {
            return this.options.stepping[axis] || 1;
        },
        _pageStep: function (axis) {
            return 10;
        },
        _start: function (e, handle) {
            var o = this.options;
            if (o.disabled) return false;
            this.actualSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            };
            if (!this.currentHandle) this._focus(this.previousHandle, true);
            this.offset = this.element.offset();
            this.handleOffset = this.currentHandle.offset();
            this.clickOffset = {
                top: e.pageY - this.handleOffset.top,
                left: e.pageX - this.handleOffset.left
            };
            this.firstValue = this.value();
            this._propagate('start', e);
            this._drag(e, handle);
            return true;
        },
        _stop: function (e) {
            this._propagate('stop', e);
            if (this.firstValue != this.value()) this._propagate('change', e);
            this._focus(this.currentHandle, true);
            return false;
        },
        _drag: function (e, handle) {
            var o = this.options;
            var position = {
                top: e.pageY - this.offset.top - this.clickOffset.top,
                left: e.pageX - this.offset.left - this.clickOffset.left
            };
            if (!this.currentHandle) this._focus(this.previousHandle, true);
            position.left = this._translateLimits(position.left, "x");
            position.top = this._translateLimits(position.top, "y");
            if (o.stepping.x) {
                var value = this._convertValue(position.left, "x");
                value = Math.round(value / o.stepping.x) * o.stepping.x;
                position.left = this._translateValue(value, "x");
            }
            if (o.stepping.y) {
                var value = this._convertValue(position.top, "y");
                value = Math.round(value / o.stepping.y) * o.stepping.y;
                position.top = this._translateValue(value, "y");
            }
            position.left = this._translateRange(position.left, "x");
            position.top = this._translateRange(position.top, "y");
            if (o.axis != "vertical") this.currentHandle.css({
                left: position.left
            });
            if (o.axis != "horizontal") this.currentHandle.css({
                top: position.top
            });
            this.currentHandle.data("mouse").sliderValue = {
                x: Math.round(this._convertValue(position.left, "x")) || 0,
                y: Math.round(this._convertValue(position.top, "y")) || 0
            };
            if (this.rangeElement) this._updateRange();
            this._propagate('slide', e);
            return false;
        },
        moveTo: function (value, handle, noPropagation) {
            var o = this.options;
            this.actualSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            };
            if (handle == undefined && !this.currentHandle && this.handle.length != 1) return false;
            if (handle == undefined && !this.currentHandle) handle = 0;
            if (handle != undefined) this.currentHandle = this.previousHandle = $(this.handle[handle] || handle);
            if (value.x !== undefined && value.y !== undefined) {
                var x = value.x,
                    y = value.y;
            } else {
                var x = value,
                    y = value;
            }
            if (x !== undefined && x.constructor != Number) {
                var me = /^\-\=/.test(x),
                    pe = /^\+\=/.test(x);
                if (me || pe) {
                    x = this.value(null, "x") + parseInt(x.replace(me ? '=' : '+=', ''), 10);
                } else {
                    x = isNaN(parseInt(x, 10)) ? undefined : parseInt(x, 10);
                }
            }
            if (y !== undefined && y.constructor != Number) {
                var me = /^\-\=/.test(y),
                    pe = /^\+\=/.test(y);
                if (me || pe) {
                    y = this.value(null, "y") + parseInt(y.replace(me ? '=' : '+=', ''), 10);
                } else {
                    y = isNaN(parseInt(y, 10)) ? undefined : parseInt(y, 10);
                }
            }
            if (o.axis != "vertical" && x !== undefined) {
                if (o.stepping.x) x = Math.round(x / o.stepping.x) * o.stepping.x;
                x = this._translateValue(x, "x");
                x = this._translateLimits(x, "x");
                x = this._translateRange(x, "x");
                o.animate ? this.currentHandle.stop().animate({
                    left: x
                }, (Math.abs(parseInt(this.currentHandle.css("left")) - x)) * (!isNaN(parseInt(o.animate)) ? o.animate : 5)) : this.currentHandle.css({
                    left: x
                });
            }
            if (o.axis != "horizontal" && y !== undefined) {
                if (o.stepping.y) y = Math.round(y / o.stepping.y) * o.stepping.y;
                y = this._translateValue(y, "y");
                y = this._translateLimits(y, "y");
                y = this._translateRange(y, "y");
                o.animate ? this.currentHandle.stop().animate({
                    top: y
                }, (Math.abs(parseInt(this.currentHandle.css("top")) - y)) * (!isNaN(parseInt(o.animate)) ? o.animate : 5)) : this.currentHandle.css({
                    top: y
                });
            }
            if (this.rangeElement) this._updateRange();
            this.currentHandle.data("mouse").sliderValue = {
                x: Math.round(this._convertValue(x, "x")) || 0,
                y: Math.round(this._convertValue(y, "y")) || 0
            };
            if (!noPropagation) {
                this._propagate('start', null);
                this._propagate('stop', null);
                this._propagate('change', null);
                this._propagate("slide", null);
            }
        }
    });
    $.ui.slider.getter = "value";
    $.ui.slider.defaults = {
        handle: ".ui-slider-handle",
        distance: 1,
        animate: false
    };
})(jQuery);
