“MediaWiki:Gadget-jquery.ui.js”的版本间的差异

来自萌娘文库
跳转至: 导航搜索
(创建页面,内容为“<pre> * https://zh.wikipedia.org/w/load.php?debug=false&lang=zh-cn&modules=jquery.ui&skin=vector: (function($, undefined) { var uuid = 0, runiqueI…”
 
(跨站同步)
1个标签Bot
 
第1行: 第1行:
/* <pre>
+
/* <pre> */
  * https://zh.wikipedia.org/w/load.php?debug=false&lang=zh-cn&modules=jquery.ui&skin=vector
+
/**
 +
  * -------------------------------------------------------------------------
 +
* !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 +
* -------------------------------------------------------------------------
 
  */
 
  */
(function($, undefined) {
+
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/jquery.ui/MediaWiki:Gadget-jquery.ui.js|user=[[U:AnnAngela]]|longId=95ea4fd62f6aa66f83f138743a52cf0a8d1c35a4|shortId=95ea4fd|message=auto: auto prefetch - commit from GitHub Actions}}';
     var uuid = 0,
+
 
        runiqueId = /^ui-id-\d+$/;
+
"use strict";
 +
mw.log.warn("This page is using the deprecated ResourceLoader module \"jquery.ui\".\nPlease use OOUI instead.");
 +
(function ($, undefined) {
 +
     var uuid = 0, runiqueId = /^ui-id-\d+$/;
 
     $.ui = $.ui || {};
 
     $.ui = $.ui || {};
 
     if ($.ui.version) {
 
     if ($.ui.version) {
第38行: 第44行:
 
     $.fn.extend({
 
     $.fn.extend({
 
         _focus: $.fn.focus,
 
         _focus: $.fn.focus,
         focus: function(delay, fn) {
+
         focus: function (delay, fn) {
             return typeof delay === "number" ? this.each(function() {
+
             return typeof delay === "number" ?
                var elem = this;
+
                this.each(function () {
                setTimeout(function() {
+
                    var elem = this;
                    $(elem).focus();
+
                    setTimeout(function () {
                    if (fn) {
+
                        $(elem).focus();
                        fn.call(elem);
+
                        if (fn) {
                    }
+
                            fn.call(elem);
                }, delay);
+
                        }
            }) : this._focus.apply(this, arguments);
+
                    }, delay);
 +
                }) :
 +
                this._focus.apply(this, arguments);
 
         },
 
         },
         scrollParent: function() {
+
         scrollParent: function () {
 
             var scrollParent;
 
             var scrollParent;
 
             if (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
 
             if (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
                 scrollParent = this.parents().filter(function() {
+
                 scrollParent = this.parents().filter(function () {
 
                     return (/(relative|absolute|fixed)/).test($.css(this, 'position')) && (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
 
                     return (/(relative|absolute|fixed)/).test($.css(this, 'position')) && (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
 
                 }).eq(0);
 
                 }).eq(0);
             } else {
+
             }
                 scrollParent = this.parents().filter(function() {
+
            else {
 +
                 scrollParent = this.parents().filter(function () {
 
                     return (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
 
                     return (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
 
                 }).eq(0);
 
                 }).eq(0);
第62行: 第71行:
 
             return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
 
             return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
 
         },
 
         },
         zIndex: function(zIndex) {
+
         zIndex: function (zIndex) {
 
             if (zIndex !== undefined) {
 
             if (zIndex !== undefined) {
 
                 return this.css("zIndex", zIndex);
 
                 return this.css("zIndex", zIndex);
 
             }
 
             }
 
             if (this.length) {
 
             if (this.length) {
                 var elem = $(this[0]),
+
                 var elem = $(this[0]), position, value;
                    position, value;
 
 
                 while (elem.length && elem[0] !== document) {
 
                 while (elem.length && elem[0] !== document) {
 
                     position = elem.css("position");
 
                     position = elem.css("position");
第82行: 第90行:
 
             return 0;
 
             return 0;
 
         },
 
         },
         uniqueId: function() {
+
         uniqueId: function () {
             return this.each(function() {
+
             return this.each(function () {
 
                 if (!this.id) {
 
                 if (!this.id) {
 
                     this.id = "ui-id-" + (++uuid);
 
                     this.id = "ui-id-" + (++uuid);
第89行: 第97行:
 
             });
 
             });
 
         },
 
         },
         removeUniqueId: function() {
+
         removeUniqueId: function () {
             return this.each(function() {
+
             return this.each(function () {
 
                 if (runiqueId.test(this.id)) {
 
                 if (runiqueId.test(this.id)) {
                     $(this).
+
                     $(this).removeAttr("id");
                    removeAttr("id");
 
 
                 }
 
                 }
 
             });
 
             });
 
         }
 
         }
 
     });
 
     });
 
 
     function focusable(element, isTabIndexNotNaN) {
 
     function focusable(element, isTabIndexNotNaN) {
 
         var map, mapName, img, nodeName = element.nodeName.toLowerCase();
 
         var map, mapName, img, nodeName = element.nodeName.toLowerCase();
第110行: 第116行:
 
             return !!img && visible(img);
 
             return !!img && visible(img);
 
         }
 
         }
         return (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled : "a" === nodeName ? element.href || isTabIndexNotNaN : isTabIndexNotNaN) && visible(element);
+
         return (/input|select|textarea|button|object/.test(nodeName) ?
 +
            !element.disabled :
 +
            "a" === nodeName ?
 +
                element.href || isTabIndexNotNaN :
 +
                isTabIndexNotNaN) &&
 +
            visible(element);
 
     }
 
     }
 
 
     function visible(element) {
 
     function visible(element) {
         return $.expr.pseudos.visible(element) && !$(element).parents().addBack().filter(function() {
+
         return $.expr.pseudos.visible(element) &&
            return $.css(this, "visibility") === "hidden";
+
            !$(element).parents().addBack().filter(function () {
        }).length;
+
                return $.css(this, "visibility") === "hidden";
 +
            }).length;
 
     }
 
     }
 
     $.extend($.expr.pseudos, {
 
     $.extend($.expr.pseudos, {
         data: $.expr.createPseudo ? $.expr.createPseudo(function(dataName) {
+
         data: $.expr.createPseudo ?
            return function(elem) {
+
            $.expr.createPseudo(function (dataName) {
                return !!$.data(elem, dataName);
+
                return function (elem) {
            };
+
                    return !!$.data(elem, dataName);
        }) : function(elem, i, match) {
+
                };
            return !!$.data(elem, match[3]);
+
            }) :
        },
+
            function (elem, i, match) {
         focusable: function(element) {
+
                return !!$.data(elem, match[3]);
 +
            },
 +
         focusable: function (element) {
 
             return focusable(element, !isNaN($.attr(element, "tabindex")));
 
             return focusable(element, !isNaN($.attr(element, "tabindex")));
 
         },
 
         },
         tabbable: function(element) {
+
         tabbable: function (element) {
             var tabIndex = $.
+
             var tabIndex = $.attr(element, "tabindex"), isTabIndexNaN = isNaN(tabIndex);
            attr(element, "tabindex"), isTabIndexNaN = isNaN(tabIndex);
 
 
             return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);
 
             return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);
 
         }
 
         }
 
     });
 
     });
     $(function() {
+
     $(function () {
         var body = document.body,
+
         var body = document.body, div = body.appendChild(div = document.createElement("div"));
            div = body.appendChild(div = document.createElement("div"));
 
 
         div.offsetHeight;
 
         div.offsetHeight;
 
         $.extend(div.style, {
 
         $.extend(div.style, {
第150行: 第161行:
 
     });
 
     });
 
     if (!$("<a>").outerWidth(1).jquery) {
 
     if (!$("<a>").outerWidth(1).jquery) {
         $.each(["Width", "Height"], function(i, name) {
+
         $.each(["Width", "Height"], function (i, name) {
             var side = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"],
+
             var side = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], type = name.toLowerCase(), orig = {
                type = name.toLowerCase(),
+
                innerWidth: $.fn.innerWidth,
                orig = {
+
                innerHeight: $.fn.innerHeight,
                    innerWidth: $.fn.innerWidth,
+
                outerWidth: $.fn.outerWidth,
                    innerHeight: $.fn.innerHeight,
+
                outerHeight: $.fn.outerHeight
                    outerWidth: $.fn.outerWidth,
+
            };
                    outerHeight: $.fn.outerHeight
 
                };
 
 
 
 
             function reduce(elem, size, border, margin) {
 
             function reduce(elem, size, border, margin) {
                 $.each(side, function() {
+
                 $.each(side, function () {
 
                     size -= parseFloat($.css(elem, "padding" + this)) || 0;
 
                     size -= parseFloat($.css(elem, "padding" + this)) || 0;
 
                     if (border) {
 
                     if (border) {
第172行: 第180行:
 
                 return size;
 
                 return size;
 
             }
 
             }
             $.fn["inner" + name] = function(size) {
+
             $.fn["inner" + name] = function (size) {
 
                 if (size === undefined) {
 
                 if (size === undefined) {
 
                     return orig["inner" + name].call(this);
 
                     return orig["inner" + name].call(this);
 
                 }
 
                 }
                 return this.each(function() {
+
                 return this.each(function () {
 
                     $(this).css(type, reduce(this, size) + "px");
 
                     $(this).css(type, reduce(this, size) + "px");
 
                 });
 
                 });
 
             };
 
             };
             $.fn["outer" + name] = function(size, margin) {
+
             $.fn["outer" + name] = function (size, margin) {
 
                 if (typeof size !== "number") {
 
                 if (typeof size !== "number") {
 
                     return orig["outer" + name].call(this, size);
 
                     return orig["outer" + name].call(this, size);
 
                 }
 
                 }
                 return this.each(function() {
+
                 return this.each(function () {
 
                     $(this).css(type, reduce(this, size, true, margin) + "px");
 
                     $(this).css(type, reduce(this, size, true, margin) + "px");
 
                 });
 
                 });
第191行: 第199行:
 
     }
 
     }
 
     if ($("<a>").data("a-b", "a").removeData("a-b").data("a-b")) {
 
     if ($("<a>").data("a-b", "a").removeData("a-b").data("a-b")) {
         $.fn.removeData = (function(removeData) {
+
         $.fn.removeData = (function (removeData) {
             return function(key) {
+
             return function (key) {
 
                 if (arguments.length) {
 
                 if (arguments.length) {
 
                     return removeData.call(this, $.camelCase(key));
 
                     return removeData.call(this, $.camelCase(key));
                 } else {
+
                 }
 +
                else {
 
                     return removeData.call(this);
 
                     return removeData.call(this);
 
                 }
 
                 }
 
             };
 
             };
 
         })($.fn.removeData);
 
         })($.fn.removeData);
     }(function() {
+
     }
 +
    (function () {
 
         var uaMatch = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || [];
 
         var uaMatch = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || [];
         $.ui.ie = uaMatch.length ? true : !1;
+
         $.ui.ie = uaMatch.length ? true : false;
 
         $.ui.ie6 = parseFloat(uaMatch[1], 10) === 6;
 
         $.ui.ie6 = parseFloat(uaMatch[1], 10) === 6;
 
     })();
 
     })();
 
     $.fn.extend({
 
     $.fn.extend({
         disableSelection: function() {
+
         disableSelection: function () {
             return this.bind(($.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(event) {
+
             return this.bind(($.support.selectstart ? "selectstart" : "mousedown") +
 +
                ".ui-disableSelection", function (event) {
 
                 event.preventDefault();
 
                 event.preventDefault();
 
             });
 
             });
 
         },
 
         },
         enableSelection: function() {
+
         enableSelection: function () {
 
             return this.unbind(".ui-disableSelection");
 
             return this.unbind(".ui-disableSelection");
 
         }
 
         }
第217行: 第228行:
 
     $.extend($.ui, {
 
     $.extend($.ui, {
 
         plugin: {
 
         plugin: {
             add: function(module, option, set) {
+
             add: function (module, option, set) {
 
                 var i, proto = $.ui[module].prototype;
 
                 var i, proto = $.ui[module].prototype;
 
                 for (i in set) {
 
                 for (i in set) {
第224行: 第235行:
 
                 }
 
                 }
 
             },
 
             },
             call: function(instance, name, args) {
+
             call: function (instance, name, args) {
 
                 var i, set = instance.plugins[name];
 
                 var i, set = instance.plugins[name];
 
                 if (!set || !instance.element[0].parentNode || instance.element[0].parentNode.nodeType === 11) {
 
                 if (!set || !instance.element[0].parentNode || instance.element[0].parentNode.nodeType === 11) {
第237行: 第248行:
 
         },
 
         },
 
         contains: $.contains,
 
         contains: $.contains,
         hasScroll: function(el, a) {
+
         hasScroll: function (el, a) {
 
             if ($(el).css("overflow") === "hidden") {
 
             if ($(el).css("overflow") === "hidden") {
 
                 return false;
 
                 return false;
 
             }
 
             }
             var scroll = (a && a === "left") ? "scrollLeft" : "scrollTop",
+
             var scroll = (a && a === "left") ? "scrollLeft" : "scrollTop", has = false;
                has = !1;
 
 
             if (el[scroll] > 0) {
 
             if (el[scroll] > 0) {
 
                 return true;
 
                 return true;
第251行: 第261行:
 
             return has;
 
             return has;
 
         },
 
         },
         isOverAxis: function(x, reference, size) {
+
         isOverAxis: function (x, reference, size) {
 
             return (x > reference) && (x < (reference + size));
 
             return (x > reference) && (x < (reference + size));
 
         },
 
         },
         isOver: function(y, x, top, left, height, width) {
+
         isOver: function (y, x, top, left, height, width) {
 
             return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
 
             return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
 
         }
 
         }
 
     });
 
     });
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     var uuid = 0,
+
     var uuid = 0, slice = Array.prototype.slice, _cleanData = $.cleanData;
        slice = Array.prototype.slice,
+
     $.cleanData = function (elems) {
        _cleanData = $.cleanData;
+
         for (var i = 0, elem; (elem = elems[i]) != null; i++) {
     $.
 
    cleanData = function(elems) {
 
         for (var i = 0, elem;
 
            (elem = elems[i]) != null; i++) {
 
 
             try {
 
             try {
 
                 $(elem).triggerHandler("remove");
 
                 $(elem).triggerHandler("remove");
             } catch (e) {}
+
             }
 +
            catch (e) { }
 
         }
 
         }
 
         _cleanData(elems);
 
         _cleanData(elems);
 
     };
 
     };
     $.widget = function(name, base, prototype) {
+
     $.widget = function (name, base, prototype) {
 
         var fullName, existingConstructor, constructor, basePrototype, namespace = name.split(".")[0];
 
         var fullName, existingConstructor, constructor, basePrototype, namespace = name.split(".")[0];
 
         name = name.split(".")[1];
 
         name = name.split(".")[1];
第281行: 第288行:
 
             base = $.Widget;
 
             base = $.Widget;
 
         }
 
         }
         $.expr.pseudos[fullName.toLowerCase()] = function(elem) {
+
         $.expr.pseudos[fullName.toLowerCase()] = function (elem) {
 
             return !!$.data(elem, fullName);
 
             return !!$.data(elem, fullName);
 
         };
 
         };
 
         $[namespace] = $[namespace] || {};
 
         $[namespace] = $[namespace] || {};
 
         existingConstructor = $[namespace][name];
 
         existingConstructor = $[namespace][name];
         constructor = $[namespace][name] = function(options, element) {
+
         constructor = $[namespace][name] = function (options, element) {
 
             if (!this._createWidget) {
 
             if (!this._createWidget) {
 
                 return new constructor(options, element);
 
                 return new constructor(options, element);
第301行: 第308行:
 
         basePrototype = new base();
 
         basePrototype = new base();
 
         basePrototype.options = $.widget.extend({}, basePrototype.options);
 
         basePrototype.options = $.widget.extend({}, basePrototype.options);
         $.each(prototype, function(prop, value) {
+
         $.each(prototype, function (prop, value) {
             if ($.isFunction(value)) {
+
             if (typeof value === "function") {
                 prototype[prop] = (function() {
+
                 prototype[prop] = (function () {
                     var _super = function() {
+
                     var _super = function () {
                            return base.prototype[prop].apply(this, arguments);
+
                        return base.prototype[prop].apply(this, arguments);
                        },
+
                    }, _superApply = function (args) {
                        _superApply = function(args) {
+
                        return base.prototype[prop].apply(this, args);
                            return base.prototype[prop].apply(this, args);
+
                    };
                        };
+
                     return function () {
                     return function() {
+
                         var __super = this._super, __superApply = this._superApply, returnValue;
                         var __super = this._super,
 
                            __superApply = this._superApply,
 
                            returnValue;
 
 
                         this._super = _super;
 
                         this._super = _super;
 
                         this._superApply = _superApply;
 
                         this._superApply = _superApply;
第334行: 第338行:
 
         });
 
         });
 
         if (existingConstructor) {
 
         if (existingConstructor) {
             $.each(existingConstructor._childConstructors, function(i, child) {
+
             $.each(existingConstructor._childConstructors, function (i, child) {
 
                 var childPrototype = child.prototype;
 
                 var childPrototype = child.prototype;
 
                 $.widget(childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto);
 
                 $.widget(childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto);
 
             });
 
             });
 
             delete existingConstructor._childConstructors;
 
             delete existingConstructor._childConstructors;
         } else {
+
         }
 +
        else {
 
             base._childConstructors.push(constructor);
 
             base._childConstructors.push(constructor);
 
         }
 
         }
 
         $.widget.bridge(name, constructor);
 
         $.widget.bridge(name, constructor);
 
     };
 
     };
     $
+
     $.widget.extend = function (target) {
        .widget.extend = function(target) {
+
        var input = slice.call(arguments, 1), inputIndex = 0, inputLength = input.length, key, value;
            var input = slice.call(arguments, 1),
+
        for (; inputIndex < inputLength; inputIndex++) {
                inputIndex = 0,
+
            for (key in input[inputIndex]) {
                inputLength = input.length,
+
                value = input[inputIndex][key];
                key, value;
+
                if (input[inputIndex].hasOwnProperty(key) && value !== undefined) {
            for (; inputIndex < inputLength; inputIndex++) {
+
                    if ($.isPlainObject(value)) {
                for (key in input[inputIndex]) {
+
                        target[key] = $.isPlainObject(target[key]) ?
                    value = input[inputIndex][key];
+
                            $.widget.extend({}, target[key], value) :
                    if (input[inputIndex].hasOwnProperty(key) && value !== undefined) {
+
                            $.widget.extend({}, value);
                        if ($.isPlainObject(value)) {
+
                    }
                            target[key] = $.isPlainObject(target[key]) ? $.widget.extend({}, target[key], value) : $.widget.extend({}, value);
+
                    else {
                        } else {
+
                        target[key] = value;
                            target[key] = value;
 
                        }
 
 
                     }
 
                     }
 
                 }
 
                 }
 
             }
 
             }
            return target;
+
        }
        };
+
        return target;
     $.widget.bridge = function(name, object) {
+
    };
 +
     $.widget.bridge = function (name, object) {
 
         var fullName = object.prototype.widgetFullName || name;
 
         var fullName = object.prototype.widgetFullName || name;
         $.fn[name] = function(options) {
+
         $.fn[name] = function (options) {
             var isMethodCall = typeof options === "string",
+
             var isMethodCall = typeof options === "string", args = slice.call(arguments, 1), returnValue = this;
                args = slice.call(arguments, 1),
+
             options = !isMethodCall && args.length ?
                returnValue = this;
+
                $.widget.extend.apply(null, [options].concat(args)) :
             options = !isMethodCall && args.length ? $.widget.extend.apply(null, [options].concat(args)) : options;
+
                options;
 
             if (isMethodCall) {
 
             if (isMethodCall) {
                 this.each(function() {
+
                 this.each(function () {
 
                     var methodValue, instance = $.data(this, fullName);
 
                     var methodValue, instance = $.data(this, fullName);
 
                     if (!instance) {
 
                     if (!instance) {
                         return $.error("cannot call methods on " + name + " prior to initialization; " + "attempted to call method '" + options + "'");
+
                         return $.error("cannot call methods on " + name + " prior to initialization; " +
 +
                            "attempted to call method '" + options + "'");
 
                     }
 
                     }
                     if (!$.isFunction(instance[
+
                     if (typeof instance[options] !== "function" || options.charAt(0) === "_") {
                            options]) || options.charAt(0) === "_") {
 
 
                         return $.error("no such method '" + options + "' for " + name + " widget instance");
 
                         return $.error("no such method '" + options + "' for " + name + " widget instance");
 
                     }
 
                     }
 
                     methodValue = instance[options].apply(instance, args);
 
                     methodValue = instance[options].apply(instance, args);
 
                     if (methodValue !== instance && methodValue !== undefined) {
 
                     if (methodValue !== instance && methodValue !== undefined) {
                         returnValue = methodValue && methodValue.jquery ? returnValue.pushStack(methodValue.get()) : methodValue;
+
                         returnValue = methodValue && methodValue.jquery ?
 +
                            returnValue.pushStack(methodValue.get()) :
 +
                            methodValue;
 
                         return false;
 
                         return false;
 
                     }
 
                     }
 
                 });
 
                 });
             } else {
+
             }
                 this.each(function() {
+
            else {
 +
                 this.each(function () {
 
                     var instance = $.data(this, fullName);
 
                     var instance = $.data(this, fullName);
 
                     if (instance) {
 
                     if (instance) {
 
                         instance.option(options || {})._init();
 
                         instance.option(options || {})._init();
                     } else {
+
                     }
 +
                    else {
 
                         $.data(this, fullName, new object(options, this));
 
                         $.data(this, fullName, new object(options, this));
 
                     }
 
                     }
第400行: 第408行:
 
         };
 
         };
 
     };
 
     };
     $.Widget = function() {};
+
     $.Widget = function () { };
 
     $.Widget._childConstructors = [];
 
     $.Widget._childConstructors = [];
 
     $.Widget.prototype = {
 
     $.Widget.prototype = {
第407行: 第415行:
 
         defaultElement: "<div>",
 
         defaultElement: "<div>",
 
         options: {
 
         options: {
             disabled: !1,
+
             disabled: false,
 
             create: null
 
             create: null
 
         },
 
         },
         _createWidget: function(options, element) {
+
         _createWidget: function (options, element) {
 
             element = $(element || this.defaultElement || this)[0];
 
             element = $(element || this.defaultElement || this)[0];
 
             this.element = $(element);
 
             this.element = $(element);
第418行: 第426行:
 
             this.bindings = $();
 
             this.bindings = $();
 
             this.hoverable = $();
 
             this.hoverable = $();
             this.
+
             this.focusable = $();
            focusable = $();
 
 
             if (element !== this) {
 
             if (element !== this) {
 
                 $.data(element, this.widgetName, this);
 
                 $.data(element, this.widgetName, this);
 
                 $.data(element, this.widgetFullName, this);
 
                 $.data(element, this.widgetFullName, this);
 
                 this._on(true, this.element, {
 
                 this._on(true, this.element, {
                     remove: function(event) {
+
                     remove: function (event) {
 
                         if (event.target === element) {
 
                         if (event.target === element) {
 
                             this.destroy();
 
                             this.destroy();
第430行: 第437行:
 
                     }
 
                     }
 
                 });
 
                 });
                 this.document = $(element.style ? element.ownerDocument : element.document || element);
+
                 this.document = $(element.style ?
 +
                    element.ownerDocument :
 +
                    element.document || element);
 
                 this.window = $(this.document[0].defaultView || this.document[0].parentWindow);
 
                 this.window = $(this.document[0].defaultView || this.document[0].parentWindow);
 
             }
 
             }
第441行: 第450行:
 
         _create: $.noop,
 
         _create: $.noop,
 
         _init: $.noop,
 
         _init: $.noop,
         destroy: function() {
+
         destroy: function () {
 
             this._destroy();
 
             this._destroy();
             this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData($.camelCase(this.widgetFullName));
+
             this.element
             this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled");
+
                .off(this.eventNamespace)
             this.bindings.unbind(this.eventNamespace);
+
                .removeData(this.widgetName)
 +
                .removeData(this.widgetFullName)
 +
                .removeData($.camelCase(this.widgetFullName));
 +
             this.widget()
 +
                .off(this.eventNamespace)
 +
                .removeAttr("aria-disabled")
 +
                .removeClass(this.widgetFullName + "-disabled " +
 +
                "ui-state-disabled");
 +
             this.bindings.off(this.eventNamespace);
 
             this.hoverable.removeClass("ui-state-hover");
 
             this.hoverable.removeClass("ui-state-hover");
 
             this.focusable.removeClass("ui-state-focus");
 
             this.focusable.removeClass("ui-state-focus");
 
         },
 
         },
 
         _destroy: $.noop,
 
         _destroy: $.noop,
         widget: function() {
+
         widget: function () {
 
             return this.element;
 
             return this.element;
 
         },
 
         },
         option: function(key, value) {
+
         option: function (key, value) {
             var options = key,
+
             var options = key, parts, curOption, i;
                parts, curOption, i;
 
 
             if (arguments.length === 0) {
 
             if (arguments.length === 0) {
 
                 return $.widget.extend({}, this.options);
 
                 return $.widget.extend({}, this.options);
第474行: 第490行:
 
                     }
 
                     }
 
                     curOption[key] = value;
 
                     curOption[key] = value;
                 } else {
+
                 }
 +
                else {
 
                     if (value === undefined) {
 
                     if (value === undefined) {
 
                         return this.options[key] === undefined ? null : this.options[key];
 
                         return this.options[key] === undefined ? null : this.options[key];
第484行: 第501行:
 
             return this;
 
             return this;
 
         },
 
         },
         _setOptions: function(options) {
+
         _setOptions: function (options) {
 
             var key;
 
             var key;
 
             for (key in options) {
 
             for (key in options) {
第491行: 第508行:
 
             return this;
 
             return this;
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             this.options[key] = value;
 
             this.options[key] = value;
 
             if (key === "disabled") {
 
             if (key === "disabled") {
                 this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!value).attr("aria-disabled", value);
+
                 this.widget()
                 this.hoverable
+
                    .toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!value)
                    .removeClass("ui-state-hover");
+
                    .attr("aria-disabled", value);
 +
                 this.hoverable.removeClass("ui-state-hover");
 
                 this.focusable.removeClass("ui-state-focus");
 
                 this.focusable.removeClass("ui-state-focus");
 
             }
 
             }
 
             return this;
 
             return this;
 
         },
 
         },
         enable: function() {
+
         enable: function () {
 
             return this._setOption("disabled", false);
 
             return this._setOption("disabled", false);
 
         },
 
         },
         disable: function() {
+
         disable: function () {
 
             return this._setOption("disabled", true);
 
             return this._setOption("disabled", true);
 
         },
 
         },
         _on: function(suppressDisabledCheck, element, handlers) {
+
         _on: function (suppressDisabledCheck, element, handlers) {
 
             var delegateElement, instance = this;
 
             var delegateElement, instance = this;
 
             if (typeof suppressDisabledCheck !== "boolean") {
 
             if (typeof suppressDisabledCheck !== "boolean") {
 
                 handlers = element;
 
                 handlers = element;
 
                 element = suppressDisabledCheck;
 
                 element = suppressDisabledCheck;
                 suppressDisabledCheck = !1;
+
                 suppressDisabledCheck = false;
 
             }
 
             }
 
             if (!handlers) {
 
             if (!handlers) {
第518行: 第536行:
 
                 element = this.element;
 
                 element = this.element;
 
                 delegateElement = this.widget();
 
                 delegateElement = this.widget();
             } else {
+
             }
 +
            else {
 
                 element = delegateElement = $(element);
 
                 element = delegateElement = $(element);
 
                 this.bindings = this.bindings.add(element);
 
                 this.bindings = this.bindings.add(element);
 
             }
 
             }
             $.each(handlers, function(event, handler) {
+
             $.each(handlers, function (event, handler) {
 
                 function handlerProxy() {
 
                 function handlerProxy() {
                     if (!suppressDisabledCheck && (instance.options.disabled === true || $(this).hasClass("ui-state-disabled"))) {
+
                     if (!suppressDisabledCheck &&
 +
                        (instance.options.disabled === true ||
 +
                            $(this).hasClass("ui-state-disabled"))) {
 
                         return;
 
                         return;
 
                     }
 
                     }
                     return (typeof handler === "string" ? instance[handler] : handler).apply(instance, arguments);
+
                     return (typeof handler === "string" ? instance[handler] : handler)
 +
                        .apply(instance, arguments);
 
                 }
 
                 }
 
                 if (typeof handler !== "string") {
 
                 if (typeof handler !== "string") {
                     handlerProxy.guid = handler.guid = handler.guid || handlerProxy.guid || $.guid++;
+
                     handlerProxy.guid = handler.guid =
 +
                        handler.guid || handlerProxy.guid || $.guid++;
 
                 }
 
                 }
                 var match = event.match(/^(\w+)\s*(.*)$/),
+
                 var match = event.match(/^(\w+)\s*(.*)$/), eventName = match[1] + instance.eventNamespace, selector = match[2];
                    eventName = match[1] + instance.eventNamespace,
 
                    selector = match[2];
 
 
                 if (selector) {
 
                 if (selector) {
                     delegateElement.delegate(selector, eventName, handlerProxy);
+
                     delegateElement.on(eventName, selector, handlerProxy);
                 } else {
+
                 }
 +
                else {
 
                     element.on(eventName, handlerProxy);
 
                     element.on(eventName, handlerProxy);
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _off: function(element, eventName) {
+
         _off: function (element, eventName) {
 
             eventName = (eventName || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace;
 
             eventName = (eventName || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace;
             element.unbind(eventName).undelegate(eventName);
+
             element.off(eventName);
 
         },
 
         },
         _delay: function(handler, delay) {
+
         _delay: function (handler, delay) {
 
             function handlerProxy() {
 
             function handlerProxy() {
                 return (typeof handler === "string" ? instance[handler] : handler).apply(instance, arguments);
+
                 return (typeof handler === "string" ? instance[handler] : handler)
 +
                    .apply(instance, arguments);
 
             }
 
             }
 
             var instance = this;
 
             var instance = this;
 
             return setTimeout(handlerProxy, delay || 0);
 
             return setTimeout(handlerProxy, delay || 0);
 
         },
 
         },
         _hoverable: function(element) {
+
         _hoverable: function (element) {
 
             this.hoverable = this.hoverable.add(element);
 
             this.hoverable = this.hoverable.add(element);
 
             this._on(element, {
 
             this._on(element, {
                 mouseenter: function(event) {
+
                 mouseenter: function (event) {
 
                     $(event.currentTarget).addClass("ui-state-hover");
 
                     $(event.currentTarget).addClass("ui-state-hover");
 
                 },
 
                 },
                 mouseleave: function(event) {
+
                 mouseleave: function (event) {
 
                     $(event.currentTarget).removeClass("ui-state-hover");
 
                     $(event.currentTarget).removeClass("ui-state-hover");
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _focusable: function(element) {
+
         _focusable: function (element) {
 
             this.focusable = this.focusable.add(element);
 
             this.focusable = this.focusable.add(element);
 
             this._on(element, {
 
             this._on(element, {
                 focusin: function(event) {
+
                 focusin: function (event) {
 
                     $(event.currentTarget).addClass("ui-state-focus");
 
                     $(event.currentTarget).addClass("ui-state-focus");
 
                 },
 
                 },
                 focusout: function(event) {
+
                 focusout: function (event) {
 
                     $(event.currentTarget).removeClass("ui-state-focus");
 
                     $(event.currentTarget).removeClass("ui-state-focus");
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _trigger: function(type, event, data) {
+
         _trigger: function (type, event, data) {
 
             var prop, orig, callback = this.options[type];
 
             var prop, orig, callback = this.options[type];
 
             data = data || {};
 
             data = data || {};
 
             event = $.Event(event);
 
             event = $.Event(event);
             event.type = (type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type).toLowerCase();
+
             event.type = (type === this.widgetEventPrefix ?
 +
                type :
 +
                this.widgetEventPrefix + type).toLowerCase();
 
             event.target = this.element[0];
 
             event.target = this.element[0];
 
             orig = event.originalEvent;
 
             orig = event.originalEvent;
第590行: 第615行:
 
             }
 
             }
 
             this.element.trigger(event, data);
 
             this.element.trigger(event, data);
             return !($.isFunction(callback) && callback.apply(this.element[0], [event].concat(data)) === false || event.isDefaultPrevented());
+
             return !(typeof callback === 'function' &&
 +
                callback.apply(this.element[0], [event].concat(data)) === false ||
 +
                event.isDefaultPrevented());
 
         }
 
         }
 
     };
 
     };
     $.each({
+
     $.each({ show: "fadeIn", hide: "fadeOut" }, function (method, defaultEffect) {
        show: "fadeIn",
+
         $.Widget.prototype["_" + method] = function (element, options, callback) {
        hide: "fadeOut"
 
    }, function(method, defaultEffect) {
 
         $.Widget.prototype["_" + method] = function(element, options, callback) {
 
 
             if (typeof options === "string") {
 
             if (typeof options === "string") {
                 options = {
+
                 options = { effect: options };
                    effect: options
 
                };
 
 
             }
 
             }
             var hasOptions, effectName = !options ? method : options === !0 || typeof options === "number" ? defaultEffect : options.effect || defaultEffect;
+
             var hasOptions, effectName = !options ?
 +
                method :
 +
                options === true || typeof options === "number" ?
 +
                    defaultEffect :
 +
                    options.effect || defaultEffect;
 
             options = options || {};
 
             options = options || {};
 
             if (typeof options === "number") {
 
             if (typeof options === "number") {
                 options = {
+
                 options = { duration: options };
                    duration: options
 
                };
 
 
             }
 
             }
 
             hasOptions = !$.isEmptyObject(options);
 
             hasOptions = !$.isEmptyObject(options);
第617行: 第641行:
 
             if (hasOptions && $.effects && ($.effects.effect[effectName] || $.uiBackCompat !== false && $.effects[effectName])) {
 
             if (hasOptions && $.effects && ($.effects.effect[effectName] || $.uiBackCompat !== false && $.effects[effectName])) {
 
                 element[method](options);
 
                 element[method](options);
             } else if (effectName !== method && element[effectName]) {
+
             }
 +
            else if (effectName !== method && element[effectName]) {
 
                 element[effectName](options.duration, options.easing, callback);
 
                 element[effectName](options.duration, options.easing, callback);
             } else {
+
             }
                 element.queue(function(next) {
+
            else {
 +
                 element.queue(function (next) {
 
                     $(this)[method]();
 
                     $(this)[method]();
 
                     if (callback) {
 
                     if (callback) {
第631行: 第657行:
 
     });
 
     });
 
     if ($.uiBackCompat !== false) {
 
     if ($.uiBackCompat !== false) {
         $.Widget.prototype._getCreateOptions = function() {
+
         $.Widget.prototype._getCreateOptions = function () {
 
             return $.metadata && $.metadata.get(this.element[0])[this.widgetName];
 
             return $.metadata && $.metadata.get(this.element[0])[this.widgetName];
 
         };
 
         };
 
     }
 
     }
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     var mouseHandled = !1;
+
     var mouseHandled = false;
     $(document).mouseup(function(e) {
+
     $(document).mouseup(function (e) {
         mouseHandled = !1;
+
         mouseHandled = false;
 
     });
 
     });
 
     $.widget("ui.mouse", {
 
     $.widget("ui.mouse", {
第648行: 第674行:
 
             delay: 0
 
             delay: 0
 
         },
 
         },
         _mouseInit: function() {
+
         _mouseInit: function () {
 
             var that = this;
 
             var that = this;
             this.element.on('mousedown.' + this.widgetName, function(event) {
+
             this.element
 +
                .on('mousedown.' + this.widgetName, function (event) {
 
                 return that._mouseDown(event);
 
                 return that._mouseDown(event);
             }).on('click.' + this.widgetName, function(event) {
+
             })
                 if (true === $.data(event.target, that.widgetName +
+
                .on('click.' + this.widgetName, function (event) {
                        '.preventClickEvent')) {
+
                 if (true === $.data(event.target, that.widgetName + '.preventClickEvent')) {
 
                     $.removeData(event.target, that.widgetName + '.preventClickEvent');
 
                     $.removeData(event.target, that.widgetName + '.preventClickEvent');
 
                     event.stopImmediatePropagation();
 
                     event.stopImmediatePropagation();
第660行: 第687行:
 
                 }
 
                 }
 
             });
 
             });
             this.started = !1;
+
             this.started = false;
 
         },
 
         },
         _mouseDestroy: function() {
+
         _mouseDestroy: function () {
 
             this.element.off('.' + this.widgetName);
 
             this.element.off('.' + this.widgetName);
 
             if (this._mouseMoveDelegate) {
 
             if (this._mouseMoveDelegate) {
                 $(document).off('mousemove.' + this.widgetName, this._mouseMoveDelegate).off('mouseup.' + this.widgetName, this._mouseUpDelegate);
+
                 $(document)
 +
                    .off('mousemove.' + this.widgetName, this._mouseMoveDelegate)
 +
                    .off('mouseup.' + this.widgetName, this._mouseUpDelegate);
 
             }
 
             }
 
         },
 
         },
         _mouseDown: function(event) {
+
         _mouseDown: function (event) {
 
             if (mouseHandled) {
 
             if (mouseHandled) {
 
                 return;
 
                 return;
             }(this._mouseStarted && this._mouseUp(event));
+
             }
 +
            (this._mouseStarted && this._mouseUp(event));
 
             this._mouseDownEvent = event;
 
             this._mouseDownEvent = event;
             var that = this,
+
             var that = this, btnIsLeft = (event.which === 1), elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
                btnIsLeft = (event.which === 1),
 
                elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
 
 
             if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
 
             if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
 
                 return true;
 
                 return true;
第681行: 第709行:
 
             this.mouseDelayMet = !this.options.delay;
 
             this.mouseDelayMet = !this.options.delay;
 
             if (!this.mouseDelayMet) {
 
             if (!this.mouseDelayMet) {
                 this._mouseDelayTimer = setTimeout(function() {
+
                 this._mouseDelayTimer = setTimeout(function () {
                     that.mouseDelayMet = !0;
+
                     that.mouseDelayMet = true;
 
                 }, this.options.delay);
 
                 }, this.options.delay);
 
             }
 
             }
 
             if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
 
             if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
                 this._mouseStarted = (this._mouseStart(event) !==
+
                 this._mouseStarted = (this._mouseStart(event) !== false);
                    false);
 
 
                 if (!this._mouseStarted) {
 
                 if (!this._mouseStarted) {
 
                     event.preventDefault();
 
                     event.preventDefault();
第696行: 第723行:
 
                 $.removeData(event.target, this.widgetName + '.preventClickEvent');
 
                 $.removeData(event.target, this.widgetName + '.preventClickEvent');
 
             }
 
             }
             this._mouseMoveDelegate = function(event) {
+
             this._mouseMoveDelegate = function (event) {
 
                 return that._mouseMove(event);
 
                 return that._mouseMove(event);
 
             };
 
             };
             this._mouseUpDelegate = function(event) {
+
             this._mouseUpDelegate = function (event) {
 
                 return that._mouseUp(event);
 
                 return that._mouseUp(event);
 
             };
 
             };
             $(document).on('mousemove.' + this.widgetName, this._mouseMoveDelegate).on('mouseup.' + this.widgetName, this._mouseUpDelegate);
+
             $(document)
 +
                .on('mousemove.' + this.widgetName, this._mouseMoveDelegate)
 +
                .on('mouseup.' + this.widgetName, this._mouseUpDelegate);
 
             event.preventDefault();
 
             event.preventDefault();
             mouseHandled = !0;
+
             mouseHandled = true;
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseMove: function(event) {
+
         _mouseMove: function (event) {
 
             if ($.ui.ie && !(document.documentMode >= 9) && !event.button) {
 
             if ($.ui.ie && !(document.documentMode >= 9) && !event.button) {
 
                 return this._mouseUp(event);
 
                 return this._mouseUp(event);
第716行: 第745行:
 
             }
 
             }
 
             if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
 
             if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
                 this._mouseStarted = (this._mouseStart(this._mouseDownEvent, event) !== false);
+
                 this._mouseStarted =
 +
                    (this._mouseStart(this._mouseDownEvent, event) !== false);
 
                 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
 
                 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
 
             }
 
             }
 
             return !this._mouseStarted;
 
             return !this._mouseStarted;
 
         },
 
         },
         _mouseUp: function(event) {
+
         _mouseUp: function (event) {
             $(document).off('mousemove.' + this.widgetName, this._mouseMoveDelegate).off('mouseup.' + this.widgetName, this._mouseUpDelegate);
+
             $(document)
 +
                .off('mousemove.' + this.widgetName, this._mouseMoveDelegate)
 +
                .off('mouseup.' + this.widgetName, this._mouseUpDelegate);
 
             if (this._mouseStarted) {
 
             if (this._mouseStarted) {
                 this._mouseStarted = !1;
+
                 this._mouseStarted = false;
 
                 if (event.target === this._mouseDownEvent.target) {
 
                 if (event.target === this._mouseDownEvent.target) {
 
                     $.data(event.target, this.widgetName + '.preventClickEvent', true);
 
                     $.data(event.target, this.widgetName + '.preventClickEvent', true);
第732行: 第764行:
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseDistanceMet: function(event) {
+
         _mouseDistanceMet: function (event) {
 
             return (Math.max(Math.abs(this._mouseDownEvent.pageX - event.pageX), Math.abs(this._mouseDownEvent.pageY - event.pageY)) >= this.options.distance);
 
             return (Math.max(Math.abs(this._mouseDownEvent.pageX - event.pageX), Math.abs(this._mouseDownEvent.pageY - event.pageY)) >= this.options.distance);
 
         },
 
         },
         _mouseDelayMet: function(event) {
+
         _mouseDelayMet: function (event) {
 
             return this.mouseDelayMet;
 
             return this.mouseDelayMet;
 
         },
 
         },
         _mouseStart: function(event) {},
+
         _mouseStart: function (event) { },
         _mouseDrag: function(event) {},
+
         _mouseDrag: function (event) { },
         _mouseStop: function(event) {},
+
         _mouseStop: function (event) { },
         _mouseCapture: function(event) {
+
         _mouseCapture: function (event) { return true; }
            return true;
 
        }
 
 
     });
 
     });
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.draggable", $.ui.mouse, {
 
     $.widget("ui.draggable", $.ui.mouse, {
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         widgetEventPrefix: "drag",
 
         widgetEventPrefix: "drag",
 
         options: {
 
         options: {
             addClasses: !0,
+
             addClasses: true,
 
             appendTo: "parent",
 
             appendTo: "parent",
             axis: !1,
+
             axis: false,
             connectToSortable: !1,
+
             connectToSortable: false,
             containment: !1,
+
             containment: false,
 
             cursor: "auto",
 
             cursor: "auto",
             cursorAt: !1,
+
             cursorAt: false,
             grid: !1,
+
             grid: false,
             handle: !1,
+
             handle: false,
 
             helper: "original",
 
             helper: "original",
             iframeFix: !1,
+
             iframeFix: false,
             opacity: !1,
+
             opacity: false,
             refreshPositions: !1,
+
             refreshPositions: false,
             revert: !1,
+
             revert: false,
 
             revertDuration: 500,
 
             revertDuration: 500,
 
             scope: "default",
 
             scope: "default",
             scroll: !0,
+
             scroll: true,
 
             scrollSensitivity: 20,
 
             scrollSensitivity: 20,
 
             scrollSpeed: 20,
 
             scrollSpeed: 20,
             snap: !1,
+
             snap: false,
 
             snapMode: "both",
 
             snapMode: "both",
 
             snapTolerance: 20,
 
             snapTolerance: 20,
             stack: !1,
+
             stack: false,
             zIndex: !1
+
             zIndex: false
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) this.element[0].style.position = 'relative';
+
             if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
 +
                this.element[0].style.position = 'relative';
 
             (this.options.addClasses && this.element.addClass("ui-draggable"));
 
             (this.options.addClasses && this.element.addClass("ui-draggable"));
 
             (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
 
             (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
 
             this._mouseInit();
 
             this._mouseInit();
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
 
             this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
 
             this._mouseDestroy();
 
             this._mouseDestroy();
 
         },
 
         },
         _mouseCapture: function(event) {
+
         _mouseCapture: function (event) {
 
             var o = this.options;
 
             var o = this.options;
             if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) return false;
+
             if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
 +
                return false;
 
             this.handle = this._getHandle(event);
 
             this.handle = this._getHandle(event);
             if (!this.handle) return false;
+
             if (!this.handle)
             $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
+
                return false;
                 $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({
+
             $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function () {
                     width: this.offsetWidth + "px",
+
                 $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                    height: this.offsetHeight + "px",
+
                    .css({
                     position: "absolute",
+
                     width: this.offsetWidth + "px", height: this.offsetHeight + "px",
                    opacity: "0.001",
+
                     position: "absolute", opacity: "0.001", zIndex: 1000
                    zIndex: 1000
+
                 })
                 }).css($(this).offset()).appendTo("body");
+
                    .css($(this).offset())
 +
                    .appendTo("body");
 
             });
 
             });
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseStart: function(event) {
+
         _mouseStart: function (event) {
 
             var o = this.options;
 
             var o = this.options;
 
             this.helper = this._createHelper(event);
 
             this.helper = this._createHelper(event);
 
             this.helper.addClass("ui-draggable-dragging");
 
             this.helper.addClass("ui-draggable-dragging");
 
             this._cacheHelperProportions();
 
             this._cacheHelperProportions();
             if ($.ui.ddmanager) $.ui.ddmanager.current = this;
+
             if ($.ui.ddmanager)
 +
                $.ui.ddmanager.current = this;
 
             this._cacheMargins();
 
             this._cacheMargins();
 
             this.cssPosition = this.helper.css("position");
 
             this.cssPosition = this.helper.css("position");
第828行: 第862行:
 
             this.originalPosition = this.position = this._generatePosition(event);
 
             this.originalPosition = this.position = this._generatePosition(event);
 
             (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
 
             (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
             if (o.containment) this._setContainment();
+
             if (o.containment)
 +
                this._setContainment();
 
             if (this._trigger("start", event) === false) {
 
             if (this._trigger("start", event) === false) {
 
                 this._clear();
 
                 this._clear();
第834行: 第869行:
 
             }
 
             }
 
             this._cacheHelperProportions();
 
             this._cacheHelperProportions();
             if ($.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, event);
+
             if ($.ui.ddmanager && !o.dropBehaviour)
 +
                $.ui.ddmanager.prepareOffsets(this, event);
 
             this._mouseDrag(event, true);
 
             this._mouseDrag(event, true);
             if ($.ui.ddmanager) $.ui.ddmanager.dragStart(this, event);
+
             if ($.ui.ddmanager)
 +
                $.ui.ddmanager.dragStart(this, event);
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseDrag: function(event, noPropagation) {
+
         _mouseDrag: function (event, noPropagation) {
 
             this.position = this._generatePosition(event);
 
             this.position = this._generatePosition(event);
 
             this.positionAbs = this._convertPositionTo("absolute");
 
             this.positionAbs = this._convertPositionTo("absolute");
第850行: 第887行:
 
                 this.position = ui.position;
 
                 this.position = ui.position;
 
             }
 
             }
             if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + 'px';
+
             if (!this.options.axis || this.options.axis != "y")
             if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + 'px';
+
                this.helper[0].style.left = this.position.left + 'px';
             if ($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
+
             if (!this.options.axis || this.options.axis != "x")
 +
                this.helper[0].style.top = this.position.top + 'px';
 +
             if ($.ui.ddmanager)
 +
                $.ui.ddmanager.drag(this, event);
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseStop: function(event) {
+
         _mouseStop: function (event) {
             var dropped = !1;
+
             var dropped = false;
             if ($.ui.ddmanager && !this.options.dropBehaviour) dropped = $.ui.ddmanager.drop(this, event);
+
             if ($.ui.ddmanager && !this.options.dropBehaviour)
 +
                dropped = $.ui.ddmanager.drop(this, event);
 
             if (this.dropped) {
 
             if (this.dropped) {
 
                 dropped = this.dropped;
 
                 dropped = this.dropped;
                 this.dropped = !1;
+
                 this.dropped = false;
 
             }
 
             }
             var element = this.element[0],
+
             var element = this.element[0], elementInDom = false;
                elementInDom = !1;
+
             while (element && (element = element.parentNode)) {
             while (element && (
 
                    element = element.parentNode)) {
 
 
                 if (element == document) {
 
                 if (element == document) {
                     elementInDom = !0;
+
                     elementInDom = true;
 
                 }
 
                 }
 
             }
 
             }
             if (!elementInDom && this.options.helper === "original") return false;
+
             if (!elementInDom && this.options.helper === "original")
             if ((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
+
                return false;
 +
             if ((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || (typeof this.options.revert === 'function' && this.options.revert.call(this.element, dropped))) {
 
                 var that = this;
 
                 var that = this;
                 $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
+
                 $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {
 
                     if (that._trigger("stop", event) !== false) {
 
                     if (that._trigger("stop", event) !== false) {
 
                         that._clear();
 
                         that._clear();
 
                     }
 
                     }
 
                 });
 
                 });
             } else {
+
             }
 +
            else {
 
                 if (this._trigger("stop", event) !== false) {
 
                 if (this._trigger("stop", event) !== false) {
 
                     this._clear();
 
                     this._clear();
第885行: 第926行:
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseUp: function(event) {
+
         _mouseUp: function (event) {
             $("div.ui-draggable-iframeFix").each(function() {
+
             $("div.ui-draggable-iframeFix").each(function () {
 
                 this.parentNode.removeChild(this);
 
                 this.parentNode.removeChild(this);
 
             });
 
             });
             if ($.ui.ddmanager) $.ui.ddmanager.dragStop(this, event);
+
             if ($.ui.ddmanager)
 +
                $.ui.ddmanager.dragStop(this, event);
 
             return $.ui.mouse.prototype._mouseUp.call(this, event);
 
             return $.ui.mouse.prototype._mouseUp.call(this, event);
 
         },
 
         },
         cancel: function() {
+
         cancel: function () {
 
             if (this.helper.is(".ui-draggable-dragging")) {
 
             if (this.helper.is(".ui-draggable-dragging")) {
 
                 this._mouseUp({});
 
                 this._mouseUp({});
             } else {
+
             }
 +
            else {
 
                 this._clear();
 
                 this._clear();
 
             }
 
             }
 
             return this;
 
             return this;
 
         },
 
         },
         _getHandle: function(event) {
+
         _getHandle: function (event) {
             var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : !1;
+
             var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
             $(this.options.handle, this.element).find("*").andSelf().each(function() {
+
             $(this.options.handle, this.element)
                 if (this == event.target) handle = !0;
+
                .find("*")
 +
                .addBack()
 +
                .each(function () {
 +
                 if (this == event.target)
 +
                    handle = true;
 
             });
 
             });
 
             return handle;
 
             return handle;
 
         },
 
         },
         _createHelper: function(event) {
+
         _createHelper: function (event) {
 
             var o = this.options;
 
             var o = this.options;
             var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
+
             var helper = typeof o.helper === 'function' ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
             if (!helper.parents('body').length) helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
+
             if (!helper.parents('body').length)
             if (helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) helper.css("position", "absolute");
+
                helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
 +
             if (helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
 +
                helper.css("position", "absolute");
 
             return helper;
 
             return helper;
 
         },
 
         },
         _adjustOffsetFromHelper: function(obj) {
+
         _adjustOffsetFromHelper: function (obj) {
 
             if (typeof obj == 'string') {
 
             if (typeof obj == 'string') {
 
                 obj = obj.split(' ');
 
                 obj = obj.split(' ');
 
             }
 
             }
             if ($.isArray(obj)) {
+
             if (Array.isArray(obj)) {
                 obj = {
+
                 obj = { left: +obj[0], top: +obj[1] || 0 };
                    left: +obj[0],
 
                    top: +obj[1] || 0
 
                };
 
 
             }
 
             }
 
             if ('left' in obj) {
 
             if ('left' in obj) {
第934行: 第980行:
 
             }
 
             }
 
             if ('bottom' in obj) {
 
             if ('bottom' in obj) {
                 this.offset.
+
                 this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
                click.top = this.helperProportions.height - obj.bottom + this.margins.top;
 
 
             }
 
             }
 
         },
 
         },
         _getParentOffset: function() {
+
         _getParentOffset: function () {
 
             this.offsetParent = this.helper.offsetParent();
 
             this.offsetParent = this.helper.offsetParent();
 
             var po = this.offsetParent.offset();
 
             var po = this.offsetParent.offset();
第945行: 第990行:
 
                 po.top += this.scrollParent.scrollTop();
 
                 po.top += this.scrollParent.scrollTop();
 
             }
 
             }
             if ((this.offsetParent[0] == document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie)) po = {
+
             if ((this.offsetParent[0] == document.body)
                top: 0,
+
                || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie))
                left: 0
+
                po = { top: 0, left: 0 };
            };
 
 
             return {
 
             return {
 
                 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
 
                 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
第954行: 第998行:
 
             };
 
             };
 
         },
 
         },
         _getRelativeOffset: function() {
+
         _getRelativeOffset: function () {
 
             if (this.cssPosition == "relative") {
 
             if (this.cssPosition == "relative") {
 
                 var p = this.element.position();
 
                 var p = this.element.position();
第961行: 第1,005行:
 
                     left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
 
                     left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
 
                 };
 
                 };
             } else {
+
             }
                 return {
+
            else {
                    top: 0,
+
                 return { top: 0, left: 0 };
                    left: 0
 
                };
 
 
             }
 
             }
 
         },
 
         },
         _cacheMargins: function() {
+
         _cacheMargins: function () {
 
             this.margins = {
 
             this.margins = {
 
                 left: (parseInt(this.element.css("marginLeft"), 10) || 0),
 
                 left: (parseInt(this.element.css("marginLeft"), 10) || 0),
第976行: 第1,018行:
 
             };
 
             };
 
         },
 
         },
         _cacheHelperProportions: function() {
+
         _cacheHelperProportions: function () {
 
             this.helperProportions = {
 
             this.helperProportions = {
 
                 width: this.helper.outerWidth(),
 
                 width: this.helper.outerWidth(),
第982行: 第1,024行:
 
             };
 
             };
 
         },
 
         },
         _setContainment: function() {
+
         _setContainment: function () {
 
             var o = this.options;
 
             var o = this.options;
             if (o.containment == 'parent') o.containment = this.helper[0].parentNode;
+
             if (o.containment == 'parent')
             if (o.containment == 'document' || o.containment == 'window') this.containment = [o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
+
                o.containment = this.helper[0].parentNode;
 +
             if (o.containment == 'document' || o.containment == 'window')
 +
                this.containment = [
 +
                    o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
 +
                    o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
 +
                    (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
 +
                    (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
 +
                ];
 
             if (!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
 
             if (!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
 
                 var c = $(o.containment);
 
                 var c = $(o.containment);
 
                 var ce = c[0];
 
                 var ce = c[0];
                 if (!ce) return;
+
                 if (!ce)
 +
                    return;
 
                 var co = c.offset();
 
                 var co = c.offset();
 
                 var over = ($(ce).css("overflow") != 'hidden');
 
                 var over = ($(ce).css("overflow") != 'hidden');
                 this.containment = [(parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0), (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0), (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom];
+
                 this.containment = [
 +
                    (parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0),
 +
                    (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0),
 +
                    (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
 +
                    (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom
 +
                ];
 
                 this.relative_container = c;
 
                 this.relative_container = c;
             } else if (o.containment.constructor ==
+
             }
                Array) {
+
            else if (o.containment.constructor == Array) {
 
                 this.containment = o.containment;
 
                 this.containment = o.containment;
 
             }
 
             }
 
         },
 
         },
         _convertPositionTo: function(d, pos) {
+
         _convertPositionTo: function (d, pos) {
             if (!pos) pos = this.position;
+
             if (!pos)
 +
                pos = this.position;
 
             var mod = d == "absolute" ? 1 : -1;
 
             var mod = d == "absolute" ? 1 : -1;
             var o = this.options,
+
             var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
                scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
 
                scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
 
 
             return {
 
             return {
                 top: (pos.top + this.offset.relative.top * mod + this.offset.parent.top * mod - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
+
                 top: (pos.top
                 left: (pos.left + this.offset.relative.left * mod + this.offset.parent.left * mod - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
+
                    + this.offset.relative.top * mod
 +
                    + this.offset.parent.top * mod
 +
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
 +
                 left: (pos.left
 +
                    + this.offset.relative.left * mod
 +
                    + this.offset.parent.left * mod
 +
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
 
             };
 
             };
 
         },
 
         },
         _generatePosition: function(event) {
+
         _generatePosition: function (event) {
             var o = this.options,
+
             var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
                scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
 
                scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
 
 
             var pageX = event.pageX;
 
             var pageX = event.pageX;
 
             var pageY = event.pageY;
 
             var pageY = event.pageY;
第1,021行: 第1,079行:
 
                     if (this.relative_container) {
 
                     if (this.relative_container) {
 
                         var co = this.relative_container.offset();
 
                         var co = this.relative_container.offset();
                         containment = [this.containment[0] + co.left, this.containment[1] + co.top, this.containment[2] + co.left, this.containment[3] + co.top];
+
                         containment = [this.containment[0] + co.left,
                     } else {
+
                            this.containment[1] + co.top,
 +
                            this.containment[2] + co.left,
 +
                            this.containment[3] + co.top];
 +
                     }
 +
                    else {
 
                         containment = this.containment;
 
                         containment = this.containment;
 
                     }
 
                     }
                     if (event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left;
+
                     if (event.pageX - this.offset.click.left < containment[0])
                     if (event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top;
+
                        pageX = containment[0] + this.offset.click.left;
                     if (event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left;
+
                     if (event.pageY - this.offset.click.top < containment[1])
                     if (event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top;
+
                        pageY = containment[1] + this.offset.click.top;
 +
                     if (event.pageX - this.offset.click.left > containment[2])
 +
                        pageX = containment[2] + this.offset.click.left;
 +
                     if (event.pageY - this.offset.click.top > containment[3])
 +
                        pageY = containment[3] + this.offset.click.top;
 
                 }
 
                 }
 
                 if (o.grid) {
 
                 if (o.grid) {
 
                     var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
 
                     var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
                     pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top <
+
                     pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
                        containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
 
 
                     var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
 
                     var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
 
                     pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
 
                     pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
第1,039行: 第1,104行:
 
             }
 
             }
 
             return {
 
             return {
                 top: (pageY - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
+
                 top: (pageY
                 left: (pageX - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
+
                    - this.offset.click.top
 +
                    - this.offset.relative.top
 +
                    - this.offset.parent.top
 +
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
 +
                 left: (pageX
 +
                    - this.offset.click.left
 +
                    - this.offset.relative.left
 +
                    - this.offset.parent.left
 +
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
 
             };
 
             };
 
         },
 
         },
         _clear: function() {
+
         _clear: function () {
 
             this.helper.removeClass("ui-draggable-dragging");
 
             this.helper.removeClass("ui-draggable-dragging");
             if (this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
+
             if (this.helper[0] != this.element[0] && !this.cancelHelperRemoval)
 +
                this.helper.remove();
 
             this.helper = null;
 
             this.helper = null;
             this.cancelHelperRemoval = !1;
+
             this.cancelHelperRemoval = false;
 
         },
 
         },
         _trigger: function(type, event, ui) {
+
         _trigger: function (type, event, ui) {
 
             ui = ui || this._uiHash();
 
             ui = ui || this._uiHash();
 
             $.ui.plugin.call(this, type, [event, ui]);
 
             $.ui.plugin.call(this, type, [event, ui]);
             if (type == "drag") this.positionAbs = this._convertPositionTo("absolute");
+
             if (type == "drag")
 +
                this.positionAbs = this._convertPositionTo("absolute");
 
             return $.Widget.prototype._trigger.call(this, type, event, ui);
 
             return $.Widget.prototype._trigger.call(this, type, event, ui);
 
         },
 
         },
 
         plugins: {},
 
         plugins: {},
         _uiHash: function(event) {
+
         _uiHash: function (event) {
 
             return {
 
             return {
 
                 helper: this.helper,
 
                 helper: this.helper,
第1,066行: 第1,141行:
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "connectToSortable", {
 
     $.ui.plugin.add("draggable", "connectToSortable", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var inst = $(this).data("draggable"),
+
             var inst = $(this).data("draggable"), o = inst.options, uiSortable = $.extend({}, ui, { item: inst.element });
                o = inst.options,
 
                uiSortable = $.extend({}, ui, {
 
                    item: inst.element
 
                });
 
 
             inst.sortables = [];
 
             inst.sortables = [];
             $(o.connectToSortable).each(function() {
+
             $(o.connectToSortable).each(function () {
 
                 var sortable = $.data(this, 'sortable');
 
                 var sortable = $.data(this, 'sortable');
 
                 if (sortable && !sortable.options.disabled) {
 
                 if (sortable && !sortable.options.disabled) {
第1,085行: 第1,156行:
 
             });
 
             });
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
             var inst = $(this).data("draggable"),
+
             var inst = $(this).data("draggable"), uiSortable = $.extend({}, ui, { item: inst.element });
                uiSortable = $.extend({}, ui, {
+
             $.each(inst.sortables, function () {
                    item: inst.element
 
                });
 
             $.each(inst.sortables, function() {
 
 
                 if (this.instance.isOver) {
 
                 if (this.instance.isOver) {
 
                     this.instance.isOver = 0;
 
                     this.instance.isOver = 0;
                     inst.cancelHelperRemoval = !0;
+
                     inst.cancelHelperRemoval = true;
                     this.instance.cancelHelperRemoval = !1;
+
                     this.instance.cancelHelperRemoval = false;
                     if (this.shouldRevert) this.instance.options.revert = !0;
+
                     if (this.shouldRevert)
 +
                        this.instance.options.revert = true;
 
                     this.instance._mouseStop(event);
 
                     this.instance._mouseStop(event);
 
                     this.instance.options.helper = this.instance.options._helper;
 
                     this.instance.options.helper = this.instance.options._helper;
                     if (inst.options.helper == 'original') this.instance.currentItem.css({
+
                     if (inst.options.helper == 'original')
                        top: 'auto',
+
                        this.instance.currentItem.css({ top: 'auto', left: 'auto' });
                        left: 'auto'
+
                 }
                    });
+
                else {
                 } else {
+
                     this.instance.cancelHelperRemoval = false;
                     this.instance.cancelHelperRemoval = !1;
 
 
                     this.instance._trigger("deactivate", event, uiSortable);
 
                     this.instance._trigger("deactivate", event, uiSortable);
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         drag: function(event, ui) {
+
         drag: function (event, ui) {
             var inst = $(this).data("draggable"),
+
             var inst = $(this).data("draggable"), that = this;
                that = this;
+
             var checkPos = function (o) {
             var checkPos = function(o) {
+
                 var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
                 var dyClick = this.offset.click.top,
+
                 var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
                    dxClick = this.offset.click.left;
+
                 var itemHeight = o.height, itemWidth = o.width;
                 var helperTop = this.positionAbs.top,
+
                 var itemTop = o.top, itemLeft = o.left;
                    helperLeft = this.positionAbs.left;
 
                 var itemHeight = o.height,
 
                    itemWidth = o.width;
 
                 var itemTop = o.top,
 
                    itemLeft = o.left;
 
 
                 return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
 
                 return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
 
             };
 
             };
             $.each(inst.sortables, function(i) {
+
             $.each(inst.sortables, function (i) {
                 var innermostIntersecting = !1;
+
                 var innermostIntersecting = false;
 
                 var thisSortable = this;
 
                 var thisSortable = this;
 
                 this.instance.positionAbs = inst.positionAbs;
 
                 this.instance.positionAbs = inst.positionAbs;
第1,129行: 第1,192行:
 
                 this.instance.offset.click = inst.offset.click;
 
                 this.instance.offset.click = inst.offset.click;
 
                 if (this.instance._intersectsWith(this.instance.containerCache)) {
 
                 if (this.instance._intersectsWith(this.instance.containerCache)) {
                     innermostIntersecting = !0;
+
                     innermostIntersecting = true;
                     $.each(inst.sortables, function() {
+
                     $.each(inst.sortables, function () {
 
                         this.instance.positionAbs = inst.positionAbs;
 
                         this.instance.positionAbs = inst.positionAbs;
 
                         this.instance.helperProportions = inst.helperProportions;
 
                         this.instance.helperProportions = inst.helperProportions;
 
                         this.instance.offset.click = inst.offset.click;
 
                         this.instance.offset.click = inst.offset.click;
                         if (this != thisSortable && this.instance._intersectsWith(this.instance.containerCache) && $.ui.contains(thisSortable.instance.element[0], this.instance.element[0])) innermostIntersecting = !1;
+
                         if (this != thisSortable
 +
                            && this.instance._intersectsWith(this.instance.containerCache)
 +
                            && $.ui.contains(thisSortable.instance.element[0], this.instance.element[0]))
 +
                            innermostIntersecting = false;
 
                         return innermostIntersecting;
 
                         return innermostIntersecting;
 
                     });
 
                     });
第1,143行: 第1,209行:
 
                         this.instance.currentItem = $(that).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
 
                         this.instance.currentItem = $(that).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
 
                         this.instance.options._helper = this.instance.options.helper;
 
                         this.instance.options._helper = this.instance.options.helper;
                         this.instance.options.helper = function() {
+
                         this.instance.options.helper = function () { return ui.helper[0]; };
                            return ui.helper[0];
 
                        };
 
 
                         event.target = this.instance.currentItem[0];
 
                         event.target = this.instance.currentItem[0];
 
                         this.instance._mouseCapture(event, true);
 
                         this.instance._mouseCapture(event, true);
 
                         this.instance._mouseStart(event, true, true);
 
                         this.instance._mouseStart(event, true, true);
 
                         this.instance.offset.click.top = inst.offset.click.top;
 
                         this.instance.offset.click.top = inst.offset.click.top;
                         this
+
                         this.instance.offset.click.left = inst.offset.click.left;
                            .instance.offset.click.left = inst.offset.click.left;
 
 
                         this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
 
                         this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
 
                         this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
 
                         this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
第1,159行: 第1,222行:
 
                         this.instance.fromOutside = inst;
 
                         this.instance.fromOutside = inst;
 
                     }
 
                     }
                     if (this.instance.currentItem) this.instance._mouseDrag(event);
+
                     if (this.instance.currentItem)
                 } else {
+
                        this.instance._mouseDrag(event);
 +
                 }
 +
                else {
 
                     if (this.instance.isOver) {
 
                     if (this.instance.isOver) {
 
                         this.instance.isOver = 0;
 
                         this.instance.isOver = 0;
                         this.instance.cancelHelperRemoval = !0;
+
                         this.instance.cancelHelperRemoval = true;
                         this.instance.options.revert = !1;
+
                         this.instance.options.revert = false;
 
                         this.instance._trigger('out', event, this.instance._uiHash(this.instance));
 
                         this.instance._trigger('out', event, this.instance._uiHash(this.instance));
 
                         this.instance._mouseStop(event, true);
 
                         this.instance._mouseStop(event, true);
 
                         this.instance.options.helper = this.instance.options._helper;
 
                         this.instance.options.helper = this.instance.options._helper;
 
                         this.instance.currentItem.remove();
 
                         this.instance.currentItem.remove();
                         if (this.instance.placeholder) this.instance.placeholder.remove();
+
                         if (this.instance.placeholder)
 +
                            this.instance.placeholder.remove();
 
                         inst._trigger("fromSortable", event);
 
                         inst._trigger("fromSortable", event);
                         inst.dropped = !1;
+
                         inst.dropped = false;
 
                     }
 
                     }
                 };
+
                 }
 +
                ;
 
             });
 
             });
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "cursor", {
 
     $.ui.plugin.add("draggable", "cursor", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var t = $('body'),
+
             var t = $('body'), o = $(this).data('draggable').options;
                o = $(this).data('draggable').options;
+
             if (t.css("cursor"))
             if (t.css("cursor")) o._cursor = t.css("cursor");
+
                o._cursor = t.css("cursor");
 
             t.css("cursor", o.cursor);
 
             t.css("cursor", o.cursor);
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
 
             var o = $(this).data('draggable').options;
 
             var o = $(this).data('draggable').options;
             if (o._cursor) $('body').css("cursor", o._cursor);
+
             if (o._cursor)
 +
                $('body').css("cursor", o._cursor);
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "opacity", {
 
     $.ui.plugin.add("draggable", "opacity", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var t = $(ui.helper),
+
             var t = $(ui.helper), o = $(this).data('draggable').options;
                o = $(this).data('draggable').options;
+
             if (t.css("opacity"))
             if (t.css("opacity")) o._opacity = t.css("opacity");
+
                o._opacity = t.css("opacity");
 
             t.css('opacity', o.opacity);
 
             t.css('opacity', o.opacity);
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
 
             var o = $(this).data('draggable').options;
 
             var o = $(this).data('draggable').options;
             if (o._opacity) $(ui.helper).css('opacity', o._opacity);
+
             if (o._opacity)
 +
                $(ui.helper).css('opacity', o._opacity);
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "scroll", {
 
     $.ui.plugin.add("draggable", "scroll", {
         start: function(event, ui) {
+
         start: function (event, ui) {
 
             var i = $(this).data("draggable");
 
             var i = $(this).data("draggable");
             if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
+
             if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML')
 +
                i.overflowOffset = i.scrollParent.offset();
 
         },
 
         },
         drag: function(event, ui) {
+
         drag: function (event, ui) {
             var i = $(this).data("draggable"),
+
             var i = $(this).data("draggable"), o = i.options, scrolled = false;
                o = i.options,
 
                scrolled = !1;
 
 
             if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
 
             if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
 
                 if (!o.axis || o.axis != 'x') {
 
                 if (!o.axis || o.axis != 'x') {
                     if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) i.scrollParent[0].scrollTop =
+
                     if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
                        scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
+
                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
                     else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity) i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
+
                     else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity)
 +
                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
 
                 }
 
                 }
 
                 if (!o.axis || o.axis != 'y') {
 
                 if (!o.axis || o.axis != 'y') {
                     if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
+
                     if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
                     else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity) i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
+
                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
 +
                     else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity)
 +
                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 if (!o.axis || o.axis != 'x') {
 
                 if (!o.axis || o.axis != 'x') {
                     if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
+
                     if (event.pageY - $(document).scrollTop() < o.scrollSensitivity)
                     else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
+
                        scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
 +
                     else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
 
                 }
 
                 }
 
                 if (!o.axis || o.axis != 'y') {
 
                 if (!o.axis || o.axis != 'y') {
                     if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
+
                     if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
                     else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
+
                        scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
 +
                     else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
 
                 }
 
                 }
 
             }
 
             }
             if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(i, event);
+
             if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
 +
                $.ui.ddmanager.prepareOffsets(i, event);
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "snap", {
 
     $.ui.plugin.add("draggable", "snap", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var i = $(this).data("draggable"),
+
             var i = $(this).data("draggable"), o = i.options;
                o = i.options;
 
 
             i.snapElements = [];
 
             i.snapElements = [];
             $(o.snap.constructor != String ? (o.snap.items || ':data(draggable)') : o.snap).each(function() {
+
             $(o.snap.constructor != String ? (o.snap.items || ':data(draggable)') : o.snap).each(function () {
 
                 var $t = $(this);
 
                 var $t = $(this);
 
                 var $o = $t.offset();
 
                 var $o = $t.offset();
                 if (this != i.element[0]) i.snapElements.push({
+
                 if (this != i.element[0])
                    item: this,
+
                    i.snapElements.push({
                    width: $t.outerWidth(),
+
                        item: this,
                    height: $t.outerHeight(),
+
                        width: $t.outerWidth(), height: $t.outerHeight(),
                    top: $o.top,
+
                        top: $o.top, left: $o.left
                    left: $o.left
+
                    });
                });
 
 
             });
 
             });
 
         },
 
         },
         drag: function(event, ui) {
+
         drag: function (event, ui) {
             var inst = $(this).data("draggable"),
+
             var inst = $(this).data("draggable"), o = inst.options;
                o = inst.options;
 
 
             var d = o.snapTolerance;
 
             var d = o.snapTolerance;
             var x1 = ui.offset.left,
+
             var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
                x2 = x1 + inst.helperProportions.width,
 
                y1 = ui.offset.top,
 
                y2 = y1 + inst.helperProportions.height;
 
 
             for (var i = inst.snapElements.length - 1; i >= 0; i--) {
 
             for (var i = inst.snapElements.length - 1; i >= 0; i--) {
                 var l = inst.snapElements[i].left,
+
                 var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
                    r = l + inst.snapElements[i].width,
 
                    t = inst.snapElements[i].top,
 
                    b = t + inst.
 
                snapElements[i].height;
 
 
                 if (!((l - d < x1 && x1 < r + d && t - d < y1 && y1 < b + d) || (l - d < x1 && x1 < r + d && t - d < y2 && y2 < b + d) || (l - d < x2 && x2 < r + d && t - d < y1 && y1 < b + d) || (l - d < x2 && x2 < r + d && t - d < y2 && y2 < b + d))) {
 
                 if (!((l - d < x1 && x1 < r + d && t - d < y1 && y1 < b + d) || (l - d < x1 && x1 < r + d && t - d < y2 && y2 < b + d) || (l - d < x2 && x2 < r + d && t - d < y1 && y1 < b + d) || (l - d < x2 && x2 < r + d && t - d < y2 && y2 < b + d))) {
                     if (inst.snapElements[i].snapping)(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), {
+
                     if (inst.snapElements[i].snapping)
                        snapItem: inst.snapElements[i].item
+
                        (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
                    })));
+
                     inst.snapElements[i].snapping = false;
                     inst.snapElements[i].snapping = !1;
 
 
                     continue;
 
                     continue;
 
                 }
 
                 }
第1,276行: 第1,342行:
 
                     var ls = Math.abs(l - x2) <= d;
 
                     var ls = Math.abs(l - x2) <= d;
 
                     var rs = Math.abs(r - x1) <= d;
 
                     var rs = Math.abs(r - x1) <= d;
                     if (ts) ui.position.top = inst._convertPositionTo("relative", {
+
                     if (ts)
                        top: t - inst.helperProportions.height,
+
                        ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
                        left: 0
+
                     if (bs)
                    }).top - inst.margins.top;
+
                        ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
                     if (bs) ui.position.top = inst._convertPositionTo("relative", {
+
                     if (ls)
                        top: b,
+
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
                        left: 0
+
                     if (rs)
                    }).top - inst.margins.top;
+
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
                     if (ls) ui.position.left = inst._convertPositionTo("relative", {
 
                        top: 0,
 
                        left: l - inst.helperProportions.width
 
                    }).left - inst.margins.left;
 
                     if (rs) ui.position.left = inst._convertPositionTo("relative", {
 
                        top: 0,
 
                        left: r
 
                    }).left - inst.margins.left;
 
 
                 }
 
                 }
 
                 var first = (ts || bs || ls || rs);
 
                 var first = (ts || bs || ls || rs);
                 if (o.snapMode !=
+
                 if (o.snapMode != 'outer') {
                    'outer') {
 
 
                     var ts = Math.abs(t - y1) <= d;
 
                     var ts = Math.abs(t - y1) <= d;
 
                     var bs = Math.abs(b - y2) <= d;
 
                     var bs = Math.abs(b - y2) <= d;
 
                     var ls = Math.abs(l - x1) <= d;
 
                     var ls = Math.abs(l - x1) <= d;
 
                     var rs = Math.abs(r - x2) <= d;
 
                     var rs = Math.abs(r - x2) <= d;
                     if (ts) ui.position.top = inst._convertPositionTo("relative", {
+
                     if (ts)
                        top: t,
+
                        ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
                        left: 0
+
                     if (bs)
                    }).top - inst.margins.top;
+
                        ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
                     if (bs) ui.position.top = inst._convertPositionTo("relative", {
+
                     if (ls)
                        top: b - inst.helperProportions.height,
+
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
                        left: 0
+
                     if (rs)
                    }).top - inst.margins.top;
+
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
                     if (ls) ui.position.left = inst._convertPositionTo("relative", {
 
                        top: 0,
 
                        left: l
 
                    }).left - inst.margins.left;
 
                     if (rs) ui.position.left = inst._convertPositionTo("relative", {
 
                        top: 0,
 
                        left: r - inst.helperProportions.width
 
                    }).left - inst.margins.left;
 
 
                 }
 
                 }
                 if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), {
+
                 if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
                    snapItem: inst.snapElements[i].item
+
                    (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
                })));
 
 
                 inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
 
                 inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
             };
+
             }
 +
            ;
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "stack", {
 
     $.ui.plugin.add("draggable", "stack", {
         start: function(event, ui) {
+
         start: function (event, ui) {
 
             var o = $(this).data("draggable").options;
 
             var o = $(this).data("draggable").options;
             var group = $.makeArray($(o.stack)).sort(function(a, b) {
+
             var group = $.makeArray($(o.stack)).sort(function (a, b) {
                 return (parseInt($(a).css("zIndex"), 10) ||
+
                 return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0);
                    0) - (parseInt($(b).css("zIndex"), 10) || 0);
 
 
             });
 
             });
 
             if (!group.length) {
 
             if (!group.length) {
第1,335行: 第1,383行:
 
             }
 
             }
 
             var min = parseInt(group[0].style.zIndex) || 0;
 
             var min = parseInt(group[0].style.zIndex) || 0;
             $(group).each(function(i) {
+
             $(group).each(function (i) {
 
                 this.style.zIndex = min + i;
 
                 this.style.zIndex = min + i;
 
             });
 
             });
第1,342行: 第1,390行:
 
     });
 
     });
 
     $.ui.plugin.add("draggable", "zIndex", {
 
     $.ui.plugin.add("draggable", "zIndex", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var t = $(ui.helper),
+
             var t = $(ui.helper), o = $(this).data("draggable").options;
                o = $(this).data("draggable").options;
+
             if (t.css("zIndex"))
             if (t.css("zIndex")) o._zIndex = t.css("zIndex");
+
                o._zIndex = t.css("zIndex");
 
             t.css('zIndex', o.zIndex);
 
             t.css('zIndex', o.zIndex);
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
 
             var o = $(this).data("draggable").options;
 
             var o = $(this).data("draggable").options;
             if (o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
+
             if (o._zIndex)
 +
                $(ui.helper).css('zIndex', o._zIndex);
 
         }
 
         }
 
     });
 
     });
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.droppable", {
 
     $.widget("ui.droppable", {
 
         version: "1.9.2",
 
         version: "1.9.2",
第1,360行: 第1,409行:
 
         options: {
 
         options: {
 
             accept: '*',
 
             accept: '*',
             activeClass: !1,
+
             activeClass: false,
             addClasses: !0,
+
             addClasses: true,
             greedy: !1,
+
             greedy: false,
             hoverClass: !1,
+
             hoverClass: false,
 
             scope: 'default',
 
             scope: 'default',
 
             tolerance: 'intersect'
 
             tolerance: 'intersect'
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             var o = this.options,
+
             var o = this.options, accept = o.accept;
                accept = o.accept;
 
 
             this.isover = 0;
 
             this.isover = 0;
 
             this.isout = 1;
 
             this.isout = 1;
             this.accept = $.isFunction(accept) ? accept : function(d) {
+
             this.accept = typeof accept === 'function' ? accept : function (d) {
 
                 return d.is(accept);
 
                 return d.is(accept);
 
             };
 
             };
             this.proportions = {
+
             this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
                width: this.element[0].offsetWidth,
+
             $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
                height: this.element[0].offsetHeight
 
            };
 
             $.ui.ddmanager.
 
            droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
 
 
             $.ui.ddmanager.droppables[o.scope].push(this);
 
             $.ui.ddmanager.droppables[o.scope].push(this);
 
             (o.addClasses && this.element.addClass("ui-droppable"));
 
             (o.addClasses && this.element.addClass("ui-droppable"));
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             var drop = $.ui.ddmanager.droppables[this.options.scope];
 
             var drop = $.ui.ddmanager.droppables[this.options.scope];
 
             for (var i = 0; i < drop.length; i++)
 
             for (var i = 0; i < drop.length; i++)
                 if (drop[i] == this) drop.splice(i, 1);
+
                 if (drop[i] == this)
 +
                    drop.splice(i, 1);
 
             this.element.removeClass("ui-droppable ui-droppable-disabled");
 
             this.element.removeClass("ui-droppable ui-droppable-disabled");
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key == 'accept') {
 
             if (key == 'accept') {
                 this.accept = $.isFunction(value) ? value : function(d) {
+
                 this.accept = typeof value === 'function' ? value : function (d) {
 
                     return d.is(value);
 
                     return d.is(value);
 
                 };
 
                 };
第1,398行: 第1,443行:
 
             $.Widget.prototype._setOption.apply(this, arguments);
 
             $.Widget.prototype._setOption.apply(this, arguments);
 
         },
 
         },
         _activate: function(event) {
+
         _activate: function (event) {
 
             var draggable = $.ui.ddmanager.current;
 
             var draggable = $.ui.ddmanager.current;
             if (this.options.activeClass) this.element.addClass(this.options.activeClass);
+
             if (this.options.activeClass)
 +
                this.element.addClass(this.options.activeClass);
 
             (draggable && this._trigger('activate', event, this.ui(draggable)));
 
             (draggable && this._trigger('activate', event, this.ui(draggable)));
 
         },
 
         },
         _deactivate: function(event) {
+
         _deactivate: function (event) {
 
             var draggable = $.ui.ddmanager.current;
 
             var draggable = $.ui.ddmanager.current;
             if (this.options.activeClass) this.element.removeClass(this.options.activeClass);
+
             if (this.options.activeClass)
 +
                this.element.removeClass(this.options.activeClass);
 
             (draggable && this._trigger('deactivate', event, this.ui(draggable)));
 
             (draggable && this._trigger('deactivate', event, this.ui(draggable)));
 
         },
 
         },
         _over: function(event) {
+
         _over: function (event) {
             var draggable = $.ui.
+
             var draggable = $.ui.ddmanager.current;
            ddmanager.current;
+
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return;
+
                return;
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                 if (this.options.hoverClass) this.element.addClass(this.options.hoverClass);
+
                 if (this.options.hoverClass)
 +
                    this.element.addClass(this.options.hoverClass);
 
                 this._trigger('over', event, this.ui(draggable));
 
                 this._trigger('over', event, this.ui(draggable));
 
             }
 
             }
 
         },
 
         },
         _out: function(event) {
+
         _out: function (event) {
 
             var draggable = $.ui.ddmanager.current;
 
             var draggable = $.ui.ddmanager.current;
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return;
+
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
 +
                return;
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                 if (this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
+
                 if (this.options.hoverClass)
 +
                    this.element.removeClass(this.options.hoverClass);
 
                 this._trigger('out', event, this.ui(draggable));
 
                 this._trigger('out', event, this.ui(draggable));
 
             }
 
             }
 
         },
 
         },
         _drop: function(event, custom) {
+
         _drop: function (event, custom) {
 
             var draggable = custom || $.ui.ddmanager.current;
 
             var draggable = custom || $.ui.ddmanager.current;
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false;
+
             if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
             var childrenIntersection = !1;
+
                return false;
             this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
+
             var childrenIntersection = false;
 +
             this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
 
                 var inst = $.data(this, 'droppable');
 
                 var inst = $.data(this, 'droppable');
                 if (inst.options.greedy && !
+
                 if (inst.options.greedy
                    inst.options.disabled && inst.options.scope == draggable.options.scope && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) && $.ui.intersect(draggable, $.extend(inst, {
+
                    && !inst.options.disabled
                        offset: inst.element.offset()
+
                    && inst.options.scope == draggable.options.scope
                    }), inst.options.tolerance)) {
+
                    && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
                     childrenIntersection = !0;
+
                    && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
 +
                     childrenIntersection = true;
 
                     return false;
 
                     return false;
 
                 }
 
                 }
 
             });
 
             });
             if (childrenIntersection) return false;
+
             if (childrenIntersection)
 +
                return false;
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
 
             if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                 if (this.options.activeClass) this.element.removeClass(this.options.activeClass);
+
                 if (this.options.activeClass)
                 if (this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
+
                    this.element.removeClass(this.options.activeClass);
 +
                 if (this.options.hoverClass)
 +
                    this.element.removeClass(this.options.hoverClass);
 
                 this._trigger('drop', event, this.ui(draggable));
 
                 this._trigger('drop', event, this.ui(draggable));
 
                 return this.element;
 
                 return this.element;
第1,448行: 第1,503行:
 
             return false;
 
             return false;
 
         },
 
         },
         ui: function(c) {
+
         ui: function (c) {
 
             return {
 
             return {
 
                 draggable: (c.currentItem || c.element),
 
                 draggable: (c.currentItem || c.element),
第1,457行: 第1,512行:
 
         }
 
         }
 
     });
 
     });
     $.ui.intersect = function(draggable, droppable, toleranceMode) {
+
     $.ui.intersect = function (draggable, droppable, toleranceMode) {
         if (!droppable.offset) return false;
+
         if (!droppable.offset)
         var x1 = (draggable.positionAbs || draggable.position.absolute).left,
+
            return false;
            x2 = x1 + draggable.helperProportions.width,
+
         var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
            y1 = (draggable.positionAbs || draggable.position.absolute).top,
+
         var l = droppable.offset.left, r = l + droppable.proportions.width, t = droppable.offset.top, b = t + droppable.proportions.height;
            y2 = y1 + draggable.helperProportions.height;
 
         var l = droppable.offset.left,
 
            r = l + droppable.proportions.width,
 
            t = droppable.offset.top,
 
            b = t + droppable.proportions.height;
 
 
         switch (toleranceMode) {
 
         switch (toleranceMode) {
 
             case 'fit':
 
             case 'fit':
                 return (l <= x1 && x2 <= r && t <= y1 && y2 <= b);
+
                 return (l <= x1 && x2 <= r
 +
                    && t <= y1 && y2 <= b);
 
                 break;
 
                 break;
 
             case 'intersect':
 
             case 'intersect':
                 return (l < x1 + (draggable.helperProportions.width / 2) && x2 - (draggable.helperProportions.width / 2) < r && t < y1 + (draggable.helperProportions.height / 2) && y2 - (draggable.helperProportions.height / 2) < b);
+
                 return (l < x1 + (draggable.helperProportions.width / 2)
 +
                    && x2 - (draggable.helperProportions.width / 2) < r
 +
                    && t < y1 + (draggable.helperProportions.height / 2)
 +
                    && y2 - (draggable.helperProportions.height / 2) < b);
 
                 break;
 
                 break;
 
             case 'pointer':
 
             case 'pointer':
                 var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
+
                 var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
                    draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
 
                    isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
 
 
                 return isOver;
 
                 return isOver;
 
                 break;
 
                 break;
 
             case 'touch':
 
             case 'touch':
                 return ((y1 >= t && y1 <= b) || (y2 >= t && y2 <= b) || (y1 < t && y2 > b)) && ((x1 >= l && x1 <= r) || (x2 >= l && x2 <= r) || (x1 < l && x2 > r));
+
                 return ((y1 >= t && y1 <= b) ||
 +
                    (y2 >= t && y2 <= b) ||
 +
                    (y1 < t && y2 > b)) && ((x1 >= l && x1 <= r) ||
 +
                    (x2 >= l && x2 <= r) ||
 +
                    (x1 < l && x2 > r));
 
                 break;
 
                 break;
 
             default:
 
             default:
第1,490行: 第1,546行:
 
     $.ui.ddmanager = {
 
     $.ui.ddmanager = {
 
         current: null,
 
         current: null,
         droppables: {
+
         droppables: { 'default': [] },
            'default': []
+
         prepareOffsets: function (t, event) {
        },
 
         prepareOffsets: function(t, event) {
 
 
             var m = $.ui.ddmanager.droppables[t.options.scope] || [];
 
             var m = $.ui.ddmanager.droppables[t.options.scope] || [];
 
             var type = event ? event.type : null;
 
             var type = event ? event.type : null;
             var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
+
             var list = (t.currentItem || t.element).find(":data(droppable)").addBack();
 
             droppablesLoop: for (var i = 0; i < m.length; i++) {
 
             droppablesLoop: for (var i = 0; i < m.length; i++) {
                 if (m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0], (t.currentItem || t.element)))) continue;
+
                 if (m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0], (t.currentItem || t.element))))
 +
                    continue;
 
                 for (var j = 0; j < list.length; j++) {
 
                 for (var j = 0; j < list.length; j++) {
 
                     if (list[j] == m[i].element[0]) {
 
                     if (list[j] == m[i].element[0]) {
第1,504行: 第1,559行:
 
                         continue droppablesLoop;
 
                         continue droppablesLoop;
 
                     }
 
                     }
                 };
+
                 }
 +
                ;
 
                 m[i].visible = m[i].element.css("display") != "none";
 
                 m[i].visible = m[i].element.css("display") != "none";
                 if (!m[i].visible) continue;
+
                 if (!m[i].visible)
                 if (type == "mousedown") m[i]._activate.call(m[i], event);
+
                    continue;
 +
                 if (type == "mousedown")
 +
                    m[i]._activate.call(m[i], event);
 
                 m[i].offset = m[i].element.offset();
 
                 m[i].offset = m[i].element.offset();
                 m[i].proportions = {
+
                 m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
                    width: m[i].element[0].offsetWidth,
 
                    height: m[i].element[0].offsetHeight
 
                };
 
 
             }
 
             }
 
         },
 
         },
         drop: function(draggable, event) {
+
         drop: function (draggable, event) {
             var dropped = !1;
+
             var dropped = false;
             $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
+
             $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function () {
                 if (!this.options) return;
+
                 if (!this.options)
                 if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) dropped = this._drop.call(this, event) || dropped;
+
                    return;
 +
                 if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
 +
                    dropped = this._drop.call(this, event) || dropped;
 
                 if (!this.options.disabled && this.visible && this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
 
                 if (!this.options.disabled && this.visible && this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
 
                     this.isout = 1;
 
                     this.isout = 1;
第1,528行: 第1,585行:
 
             return dropped;
 
             return dropped;
 
         },
 
         },
         dragStart: function(draggable, event) {
+
         dragStart: function (draggable, event) {
             draggable.element.parentsUntil("body").bind("scroll.droppable", function() {
+
             draggable.element.parentsUntil("body").bind("scroll.droppable", function () {
                 if (!draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
+
                 if (!draggable.options.refreshPositions)
 +
                    $.ui.ddmanager.prepareOffsets(draggable, event);
 
             });
 
             });
 
         },
 
         },
         drag: function(draggable, event) {
+
         drag: function (draggable, event) {
             if (draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
+
             if (draggable.options.refreshPositions)
             $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
+
                $.ui.ddmanager.prepareOffsets(draggable, event);
                 if (this.options.disabled || this.greedyChild || !this.visible) return;
+
             $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function () {
 +
                 if (this.options.disabled || this.greedyChild || !this.visible)
 +
                    return;
 
                 var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
 
                 var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
 
                 var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
 
                 var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
                 if (!c) return;
+
                 if (!c)
 +
                    return;
 
                 var parentInstance;
 
                 var parentInstance;
 
                 if (this.options.greedy) {
 
                 if (this.options.greedy) {
 
                     var scope = this.options.scope;
 
                     var scope = this.options.scope;
                     var parent = this.element.parents(
+
                     var parent = this.element.parents(':data(droppable)').filter(function () {
                        ':data(droppable)').filter(function() {
 
 
                         return $.data(this, 'droppable').options.scope === scope;
 
                         return $.data(this, 'droppable').options.scope === scope;
 
                     });
 
                     });
第1,567行: 第1,627行:
 
             });
 
             });
 
         },
 
         },
         dragStop: function(draggable, event) {
+
         dragStop: function (draggable, event) {
 
             draggable.element.parentsUntil("body").unbind("scroll.droppable");
 
             draggable.element.parentsUntil("body").unbind("scroll.droppable");
             if (!draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
+
             if (!draggable.options.refreshPositions)
 +
                $.ui.ddmanager.prepareOffsets(draggable, event);
 
         }
 
         }
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.resizable", $.ui.mouse, {
 
     $.widget("ui.resizable", $.ui.mouse, {
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         widgetEventPrefix: "resize",
 
         widgetEventPrefix: "resize",
 
         options: {
 
         options: {
             alsoResize: !1,
+
             alsoResize: false,
             animate: !1,
+
             animate: false,
 
             animateDuration: "slow",
 
             animateDuration: "slow",
 
             animateEasing: "swing",
 
             animateEasing: "swing",
             aspectRatio: !1,
+
             aspectRatio: false,
             autoHide: !1,
+
             autoHide: false,
             containment: !1,
+
             containment: false,
             ghost: !1,
+
             ghost: false,
             grid: !1,
+
             grid: false,
 
             handles: "e,s,se",
 
             handles: "e,s,se",
             helper: !1,
+
             helper: false,
 
             maxHeight: null,
 
             maxHeight: null,
 
             maxWidth: null,
 
             maxWidth: null,
第1,595行: 第1,656行:
 
             zIndex: 1000
 
             zIndex: 1000
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             var that = this,
+
             var that = this, o = this.options;
                o = this.options;
 
 
             this.element.addClass("ui-resizable");
 
             this.element.addClass("ui-resizable");
 
             $.extend(this, {
 
             $.extend(this, {
第1,615行: 第1,675行:
 
                 }));
 
                 }));
 
                 this.element = this.element.parent().data("resizable", this.element.data('resizable'));
 
                 this.element = this.element.parent().data("resizable", this.element.data('resizable'));
                 this.elementIsWrapper = !0;
+
                 this.elementIsWrapper = true;
                 this.element.css({
+
                 this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
                    marginLeft: this.originalElement.css("marginLeft"),
+
                 this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 });
                    marginTop: this.originalElement.css("marginTop"),
 
                    marginRight: this.originalElement.css("marginRight"),
 
                    marginBottom: this.originalElement.css("marginBottom")
 
                });
 
                 this.originalElement.css({
 
                    marginLeft: 0,
 
                    marginTop: 0,
 
                    marginRight: 0,
 
                    marginBottom: 0
 
                });
 
 
                 this.originalResizeStyle = this.originalElement.css('resize');
 
                 this.originalResizeStyle = this.originalElement.css('resize');
 
                 this.originalElement.css('resize', 'none');
 
                 this.originalElement.css('resize', 'none');
                 this._proportionallyResizeElements.push(this.originalElement.css({
+
                 this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
                    position: 'static',
+
                 this.originalElement.css({ margin: this.originalElement.css('margin') });
                    zoom: 1,
 
                    display: 'block'
 
                }));
 
                 this.originalElement.css({
 
                    margin: this.originalElement.css('margin')
 
                });
 
 
                 this._proportionallyResize();
 
                 this._proportionallyResize();
 
             }
 
             }
             this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : {
+
             this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
                n: '.ui-resizable-n',
 
                e: '.ui-resizable-e',
 
                s: '.ui-resizable-s',
 
                w: '.ui-resizable-w',
 
                se: '.ui-resizable-se',
 
                sw: '.ui-resizable-sw',
 
                ne: '.ui-resizable-ne',
 
                nw: '.ui-resizable-nw'
 
            });
 
 
             if (this.handles.constructor == String) {
 
             if (this.handles.constructor == String) {
                 if (this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
+
                 if (this.handles == 'all')
 +
                    this.handles = 'n,e,s,w,se,sw,ne,nw';
 
                 var n = this.handles.split(",");
 
                 var n = this.handles.split(",");
 
                 this.handles = {};
 
                 this.handles = {};
 
                 for (var i = 0; i < n.length; i++) {
 
                 for (var i = 0; i < n.length; i++) {
                     var handle = $.trim(n[i]),
+
                     var handle = n[i].trim(), hname = 'ui-resizable-' + handle;
                        hname = 'ui-resizable-' + handle;
+
                     var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
                     var axis = $(
+
                     axis.css({ zIndex: o.zIndex });
                        '<div class="ui-resizable-handle ' + hname + '"></div>');
 
                     axis.css({
 
                        zIndex: o.zIndex
 
                    });
 
 
                     if ('se' == handle) {
 
                     if ('se' == handle) {
 
                         axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
 
                         axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
                     };
+
                     }
 +
                    ;
 
                     this.handles[handle] = '.ui-resizable-' + handle;
 
                     this.handles[handle] = '.ui-resizable-' + handle;
 
                     this.element.append(axis);
 
                     this.element.append(axis);
 
                 }
 
                 }
 
             }
 
             }
             this._renderAxis = function(target) {
+
             this._renderAxis = function (target) {
 
                 target = target || this.element;
 
                 target = target || this.element;
 
                 for (var i in this.handles) {
 
                 for (var i in this.handles) {
                     if (this.handles[i].constructor == String) this.handles[i] = $(this.handles[i], this.element).show();
+
                     if (this.handles[i].constructor == String)
 +
                        this.handles[i] = $(this.handles[i], this.element).show();
 
                     if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
 
                     if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
                         var axis = $(this.handles[i], this.element),
+
                         var axis = $(this.handles[i], this.element), padWrapper = 0;
                            padWrapper = 0;
 
 
                         padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
 
                         padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
                         var padPos = ['padding', /ne|nw|n/.test(i) ? 'Top' : /se|sw|s/.test(i) ? 'Bottom' : /^e$/.test(i) ? 'Right' : 'Left'].join("");
+
                         var padPos = ['padding',
 +
                            /ne|nw|n/.test(i) ? 'Top' :
 +
                                /se|sw|s/.test(i) ? 'Bottom' :
 +
                                    /^e$/.test(i) ? 'Right' : 'Left'].join("");
 
                         target.css(padPos, padWrapper);
 
                         target.css(padPos, padWrapper);
 
                         this._proportionallyResize();
 
                         this._proportionallyResize();
 
                     }
 
                     }
                     if (!$(this.handles[i]).length) continue;
+
                     if (!$(this.handles[i]).length)
 +
                        continue;
 
                 }
 
                 }
 
             };
 
             };
 
             this._renderAxis(this.element);
 
             this._renderAxis(this.element);
             this._handles = $('.ui-resizable-handle', this.element).disableSelection();
+
             this._handles = $('.ui-resizable-handle', this.element)
             this._handles.mouseover(function() {
+
                .disableSelection();
 +
             this._handles.mouseover(function () {
 
                 if (!that.resizing) {
 
                 if (!that.resizing) {
                     if (this.className) var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
+
                     if (this.className)
 +
                        var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
 
                     that.axis = axis && axis[1] ? axis[1] : 'se';
 
                     that.axis = axis && axis[1] ? axis[1] : 'se';
 
                 }
 
                 }
第1,694行: 第1,733行:
 
             if (o.autoHide) {
 
             if (o.autoHide) {
 
                 this._handles.hide();
 
                 this._handles.hide();
                 $(this.element).addClass("ui-resizable-autohide").mouseenter(function() {
+
                 $(this.element)
                     if (o.disabled) return;
+
                    .addClass("ui-resizable-autohide")
 +
                    .mouseenter(function () {
 +
                     if (o.disabled)
 +
                        return;
 
                     $(this).removeClass("ui-resizable-autohide");
 
                     $(this).removeClass("ui-resizable-autohide");
 
                     that._handles.show();
 
                     that._handles.show();
                 }).mouseleave(function() {
+
                 })
                     if (o.disabled) return;
+
                    .mouseleave(function () {
 +
                     if (o.disabled)
 +
                        return;
 
                     if (!that.resizing) {
 
                     if (!that.resizing) {
 
                         $(this).addClass("ui-resizable-autohide");
 
                         $(this).addClass("ui-resizable-autohide");
第1,708行: 第1,752行:
 
             this._mouseInit();
 
             this._mouseInit();
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             this._mouseDestroy();
 
             this._mouseDestroy();
             var _destroy = function(exp) {
+
             var _destroy = function (exp) {
                 $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
+
                 $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
 +
                    .removeData("resizable").removeData("ui-resizable").off(".resizable").find('.ui-resizable-handle').remove();
 
             };
 
             };
 
             if (this.elementIsWrapper) {
 
             if (this.elementIsWrapper) {
第1,722行: 第1,767行:
 
                     top: wrapper.css('top'),
 
                     top: wrapper.css('top'),
 
                     left: wrapper.css('left')
 
                     left: wrapper.css('left')
                 }).insertAfter(
+
                 }).insertAfter(wrapper);
                    wrapper);
 
 
                 wrapper.remove();
 
                 wrapper.remove();
 
             }
 
             }
第1,730行: 第1,774行:
 
             return this;
 
             return this;
 
         },
 
         },
         _mouseCapture: function(event) {
+
         _mouseCapture: function (event) {
             var handle = !1;
+
             var handle = false;
 
             for (var i in this.handles) {
 
             for (var i in this.handles) {
 
                 if ($(this.handles[i])[0] == event.target) {
 
                 if ($(this.handles[i])[0] == event.target) {
                     handle = !0;
+
                     handle = true;
 
                 }
 
                 }
 
             }
 
             }
 
             return !this.options.disabled && handle;
 
             return !this.options.disabled && handle;
 
         },
 
         },
         _mouseStart: function(event) {
+
         _mouseStart: function (event) {
             var o = this.options,
+
             var o = this.options, iniPos = this.element.position(), el = this.element;
                iniPos = this.element.position(),
+
             this.resizing = true;
                el = this.element;
+
             this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
             this.resizing = !0;
 
             this.documentScroll = {
 
                top: $(document).scrollTop(),
 
                left: $(document).scrollLeft()
 
            };
 
 
             if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
 
             if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
                 el.css({
+
                 el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
                    position: 'absolute',
 
                    top: iniPos.top,
 
                    left: iniPos.left
 
                });
 
 
             }
 
             }
 
             this._renderProxy();
 
             this._renderProxy();
             var curleft = num(this.helper.css('left')),
+
             var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
                curtop = num(this.helper.css('top'));
 
 
             if (o.containment) {
 
             if (o.containment) {
 
                 curleft += $(o.containment).scrollLeft() || 0;
 
                 curleft += $(o.containment).scrollLeft() || 0;
第1,763行: 第1,797行:
 
             }
 
             }
 
             this.offset = this.helper.offset();
 
             this.offset = this.helper.offset();
             this.position = {
+
             this.position = { left: curleft, top: curtop };
                left: curleft,
+
             this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
                top: curtop
+
             this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
            };
+
             this.originalPosition = { left: curleft, top: curtop };
             this.size = this._helper ? {
+
             this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
                width: el.outerWidth(),
+
             this.originalMousePosition = { left: event.pageX, top: event.pageY };
                height: el.outerHeight()
 
            } : {
 
                width: el.width(),
 
                height: el.height()
 
            };
 
             this.originalSize = this._helper ? {
 
                width: el.outerWidth(),
 
                height: el.outerHeight()
 
            } : {
 
                width: el.width(),
 
                height: el.height()
 
            };
 
             this.originalPosition = {
 
                left: curleft,
 
                top: curtop
 
            };
 
             this.sizeDiff = {
 
                width: el.outerWidth() - el.width(),
 
                height: el.outerHeight() - el.height()
 
            };
 
             this.originalMousePosition = {
 
                left: event.pageX,
 
                top: event.pageY
 
            };
 
 
             this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
 
             this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
 
             var cursor = $('.ui-resizable-' + this.axis).css('cursor');
 
             var cursor = $('.ui-resizable-' + this.axis).css('cursor');
第1,800行: 第1,810行:
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseDrag: function(event) {
+
         _mouseDrag: function (event) {
             var el = this.helper,
+
             var el = this.helper, o = this.options, props = {}, that = this, smp = this.originalMousePosition, a = this.axis;
                o = this.options,
+
             var dx = (event.pageX - smp.left) || 0, dy = (event.pageY - smp.top) || 0;
                props = {},
 
                that = this,
 
                smp = this.originalMousePosition,
 
                a = this.axis;
 
             var dx = (event.pageX - smp.left) || 0,
 
                dy = (event.pageY - smp.top) || 0;
 
 
             var trigger = this._change[a];
 
             var trigger = this._change[a];
             if (!trigger) return false;
+
             if (!trigger)
 +
                return false;
 
             var data = trigger.apply(this, [event, dx, dy]);
 
             var data = trigger.apply(this, [event, dx, dy]);
 
             this._updateVirtualBoundaries(event.shiftKey);
 
             this._updateVirtualBoundaries(event.shiftKey);
第1,818行: 第1,823行:
 
             this._propagate("resize", event);
 
             this._propagate("resize", event);
 
             el.css({
 
             el.css({
                 top: this.position.top + "px",
+
                 top: this.position.top + "px", left: this.position.left + "px",
                left: this.position.left + "px",
+
                 width: this.size.width + "px", height: this.size.height + "px"
                 width: this.size.width + "px",
 
                height: this.size.height + "px"
 
 
             });
 
             });
             if (!this._helper && this._proportionallyResizeElements.length) this._proportionallyResize();
+
             if (!this._helper && this._proportionallyResizeElements.length)
 +
                this._proportionallyResize();
 
             this._updateCache(data);
 
             this._updateCache(data);
 
             this._trigger('resize', event, this.ui());
 
             this._trigger('resize', event, this.ui());
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseStop: function(event) {
+
         _mouseStop: function (event) {
             this.resizing = !1;
+
             this.resizing = false;
             var o = this.options,
+
             var o = this.options, that = this;
                that = this;
 
 
             if (this._helper) {
 
             if (this._helper) {
                 var pr = this._proportionallyResizeElements,
+
                 var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width;
                    ista = pr.length && (/textarea/i).test(pr[0].nodeName),
+
                 var s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }, left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
                    soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height,
+
                 if (!o.animate)
                    soffsetw = ista ? 0 : that.sizeDiff.width;
+
                    this.element.css($.extend(s, { top: top, left: left }));
                 var s = {
 
                        width: (that.helper.width() - soffsetw),
 
                        height: (that.helper.height() - soffseth)
 
                    },
 
                    left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null,
 
                    top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
 
                 if (!o.animate) this.element.css($.extend(s, {
 
                    top: top,
 
                    left: left
 
                }));
 
 
                 that.helper.height(that.size.height);
 
                 that.helper.height(that.size.height);
 
                 that.helper.width(that.size.width);
 
                 that.helper.width(that.size.width);
                 if (this._helper && !o.animate) this._proportionallyResize();
+
                 if (this._helper && !o.animate)
 +
                    this._proportionallyResize();
 
             }
 
             }
 
             $('body').css('cursor', 'auto');
 
             $('body').css('cursor', 'auto');
 
             this.element.removeClass("ui-resizable-resizing");
 
             this.element.removeClass("ui-resizable-resizing");
 
             this._propagate("stop", event);
 
             this._propagate("stop", event);
             if (this._helper) this.helper.remove();
+
             if (this._helper)
 +
                this.helper.remove();
 
             return false;
 
             return false;
 
         },
 
         },
         _updateVirtualBoundaries: function(forceAspectRatio) {
+
         _updateVirtualBoundaries: function (forceAspectRatio) {
             var o = this.options,
+
             var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
                pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
 
 
             b = {
 
             b = {
 
                 minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
 
                 minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
第1,871行: 第1,865行:
 
                 pMaxWidth = b.maxHeight * this.aspectRatio;
 
                 pMaxWidth = b.maxHeight * this.aspectRatio;
 
                 pMaxHeight = b.maxWidth / this.aspectRatio;
 
                 pMaxHeight = b.maxWidth / this.aspectRatio;
                 if (pMinWidth > b.minWidth) b.minWidth = pMinWidth;
+
                 if (pMinWidth > b.minWidth)
                 if (pMinHeight > b.minHeight) b.minHeight = pMinHeight;
+
                    b.minWidth = pMinWidth;
                 if (pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth;
+
                 if (pMinHeight > b.minHeight)
                 if (pMaxHeight < b.maxHeight) b.maxHeight =
+
                    b.minHeight = pMinHeight;
                    pMaxHeight;
+
                 if (pMaxWidth < b.maxWidth)
 +
                    b.maxWidth = pMaxWidth;
 +
                 if (pMaxHeight < b.maxHeight)
 +
                    b.maxHeight = pMaxHeight;
 
             }
 
             }
 
             this._vBoundaries = b;
 
             this._vBoundaries = b;
 
         },
 
         },
         _updateCache: function(data) {
+
         _updateCache: function (data) {
 
             var o = this.options;
 
             var o = this.options;
 
             this.offset = this.helper.offset();
 
             this.offset = this.helper.offset();
             if (isNumber(data.left)) this.position.left = data.left;
+
             if (isNumber(data.left))
             if (isNumber(data.top)) this.position.top = data.top;
+
                this.position.left = data.left;
             if (isNumber(data.height)) this.size.height = data.height;
+
             if (isNumber(data.top))
             if (isNumber(data.width)) this.size.width = data.width;
+
                this.position.top = data.top;
 +
             if (isNumber(data.height))
 +
                this.size.height = data.height;
 +
             if (isNumber(data.width))
 +
                this.size.width = data.width;
 
         },
 
         },
         _updateRatio: function(data, event) {
+
         _updateRatio: function (data, event) {
             var o = this.options,
+
             var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
                cpos = this.position,
+
             if (isNumber(data.height))
                csize = this.size,
+
                data.width = (data.height * this.aspectRatio);
                a = this.axis;
+
             else if (isNumber(data.width))
             if (isNumber(data.height)) data.width = (data.height * this.aspectRatio);
+
                data.height = (data.width / this.aspectRatio);
             else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio);
 
 
             if (a == 'sw') {
 
             if (a == 'sw') {
 
                 data.left = cpos.left + (csize.width - data.width);
 
                 data.left = cpos.left + (csize.width - data.width);
第1,904行: 第1,904行:
 
             return data;
 
             return data;
 
         },
 
         },
         _respectSize: function(data, event) {
+
         _respectSize: function (data, event) {
             var el = this.helper,
+
             var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
                o = this._vBoundaries,
+
             if (isminw)
                pRatio = this._aspectRatio || event.shiftKey,
+
                data.width = o.minWidth;
                a = this.axis,
+
             if (isminh)
                ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width),
+
                data.height = o.minHeight;
                ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data
+
             if (ismaxw)
                    .height),
+
                data.width = o.maxWidth;
                isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width),
+
             if (ismaxh)
                isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
+
                data.height = o.maxHeight;
             if (isminw) data.width = o.minWidth;
+
             var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
             if (isminh) data.height = o.minHeight;
+
             var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
             if (ismaxw) data.width = o.maxWidth;
+
             if (isminw && cw)
             if (ismaxh) data.height = o.maxHeight;
+
                data.left = dw - o.minWidth;
             var dw = this.originalPosition.left + this.originalSize.width,
+
             if (ismaxw && cw)
                dh = this.position.top + this.size.height;
+
                data.left = dw - o.maxWidth;
             var cw = /sw|nw|w/.test(a),
+
             if (isminh && ch)
                ch = /nw|ne|n/.test(a);
+
                data.top = dh - o.minHeight;
             if (isminw && cw) data.left = dw - o.minWidth;
+
             if (ismaxh && ch)
             if (ismaxw && cw) data.left = dw - o.maxWidth;
+
                data.top = dh - o.maxHeight;
             if (isminh && ch) data.top = dh - o.minHeight;
 
             if (ismaxh && ch) data.top = dh - o.maxHeight;
 
 
             var isNotwh = !data.width && !data.height;
 
             var isNotwh = !data.width && !data.height;
             if (isNotwh && !data.left && data.top) data.top = null;
+
             if (isNotwh && !data.left && data.top)
             else if (isNotwh && !data.top && data.left) data.left = null;
+
                data.top = null;
 +
             else if (isNotwh && !data.top && data.left)
 +
                data.left = null;
 
             return data;
 
             return data;
 
         },
 
         },
         _proportionallyResize: function() {
+
         _proportionallyResize: function () {
 
             var o = this.options;
 
             var o = this.options;
             if (!this._proportionallyResizeElements.length) return;
+
             if (!this._proportionallyResizeElements.length)
 +
                return;
 
             var element = this.helper || this.element;
 
             var element = this.helper || this.element;
 
             for (var i = 0; i < this._proportionallyResizeElements.length; i++) {
 
             for (var i = 0; i < this._proportionallyResizeElements.length; i++) {
 
                 var prel = this._proportionallyResizeElements[i];
 
                 var prel = this._proportionallyResizeElements[i];
 
                 if (!this.borderDif) {
 
                 if (!this.borderDif) {
                     var b = [
+
                     var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
                            prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')
+
                     this.borderDif = $.map(b, function (v, i) {
                        ],
+
                         var border = parseInt(v, 10) || 0, padding = parseInt(p[i], 10) || 0;
                        p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
 
                     this.borderDif = $.map(b, function(v, i) {
 
                         var border = parseInt(v, 10) || 0,
 
                            padding = parseInt(p[i], 10) || 0;
 
 
                         return border + padding;
 
                         return border + padding;
 
                     });
 
                     });
第1,952行: 第1,949行:
 
                     width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
 
                     width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
 
                 });
 
                 });
             };
+
             }
 +
            ;
 
         },
 
         },
         _renderProxy: function() {
+
         _renderProxy: function () {
             var el = this.element,
+
             var el = this.element, o = this.options;
                o = this.options;
 
 
             this.elementOffset = el.offset();
 
             this.elementOffset = el.offset();
 
             if (this._helper) {
 
             if (this._helper) {
 
                 this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
 
                 this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
                 var ie6offset = ($.ui.ie6 ? 1 : 0),
+
                 var ie6offset = ($.ui.ie6 ? 1 : 0), pxyoffset = ($.ui.ie6 ? 2 : -1);
                    pxyoffset = ($.ui.ie6 ? 2 : -1);
 
 
                 this.helper.addClass(this._helper).css({
 
                 this.helper.addClass(this._helper).css({
 
                     width: this.element.outerWidth() + pxyoffset,
 
                     width: this.element.outerWidth() + pxyoffset,
第1,970行: 第1,966行:
 
                     zIndex: ++o.zIndex
 
                     zIndex: ++o.zIndex
 
                 });
 
                 });
                 this.helper.appendTo("body").
+
                 this.helper
                disableSelection();
+
                    .appendTo("body")
             } else {
+
                    .disableSelection();
 +
             }
 +
            else {
 
                 this.helper = this.element;
 
                 this.helper = this.element;
 
             }
 
             }
 
         },
 
         },
 
         _change: {
 
         _change: {
             e: function(event, dx, dy) {
+
             e: function (event, dx, dy) {
                 return {
+
                 return { width: this.originalSize.width + dx };
                    width: this.originalSize.width + dx
 
                };
 
 
             },
 
             },
             w: function(event, dx, dy) {
+
             w: function (event, dx, dy) {
                 var o = this.options,
+
                 var o = this.options, cs = this.originalSize, sp = this.originalPosition;
                    cs = this.originalSize,
+
                 return { left: sp.left + dx, width: cs.width - dx };
                    sp = this.originalPosition;
 
                 return {
 
                    left: sp.left + dx,
 
                    width: cs.width - dx
 
                };
 
 
             },
 
             },
             n: function(event, dx, dy) {
+
             n: function (event, dx, dy) {
                 var o = this.options,
+
                 var o = this.options, cs = this.originalSize, sp = this.originalPosition;
                    cs = this.originalSize,
+
                 return { top: sp.top + dy, height: cs.height - dy };
                    sp = this.originalPosition;
 
                 return {
 
                    top: sp.top + dy,
 
                    height: cs.height - dy
 
                };
 
 
             },
 
             },
             s: function(event, dx, dy) {
+
             s: function (event, dx, dy) {
                 return {
+
                 return { height: this.originalSize.height + dy };
                    height: this.originalSize.height + dy
 
                };
 
 
             },
 
             },
             se: function(event, dx, dy) {
+
             se: function (event, dx, dy) {
 
                 return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
 
                 return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
 
             },
 
             },
             sw: function(event, dx, dy) {
+
             sw: function (event, dx, dy) {
 
                 return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
 
                 return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
 
             },
 
             },
             ne: function(event, dx, dy) {
+
             ne: function (event, dx, dy) {
 
                 return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
 
                 return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
 
             },
 
             },
             nw: function(event, dx, dy) {
+
             nw: function (event, dx, dy) {
 
                 return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
 
                 return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
 
             }
 
             }
 
         },
 
         },
         _propagate: function(n, event) {
+
         _propagate: function (n, event) {
             $.ui.plugin.call(
+
             $.ui.plugin.call(this, n, [event, this.ui()]);
                this, n, [event, this.ui()]);
 
 
             (n != "resize" && this._trigger(n, event, this.ui()));
 
             (n != "resize" && this._trigger(n, event, this.ui()));
 
         },
 
         },
 
         plugins: {},
 
         plugins: {},
         ui: function() {
+
         ui: function () {
 
             return {
 
             return {
 
                 originalElement: this.originalElement,
 
                 originalElement: this.originalElement,
第2,037行: 第2,020行:
 
     });
 
     });
 
     $.ui.plugin.add("resizable", "alsoResize", {
 
     $.ui.plugin.add("resizable", "alsoResize", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options;
                o = that.options;
+
             var _store = function (exp) {
             var _store = function(exp) {
+
                 $(exp).each(function () {
                 $(exp).each(function() {
 
 
                     var el = $(this);
 
                     var el = $(this);
 
                     el.data("resizable-alsoresize", {
 
                     el.data("resizable-alsoresize", {
                         width: parseInt(el.width(), 10),
+
                         width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
                        height: parseInt(el.height(), 10),
+
                         left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10)
                         left: parseInt(el.css('left'), 10),
 
                        top: parseInt(el.css('top'), 10)
 
 
                     });
 
                     });
 
                 });
 
                 });
 
             };
 
             };
             if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
+
             if (typeof (o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
 
                 if (o.alsoResize.length) {
 
                 if (o.alsoResize.length) {
 
                     o.alsoResize = o.alsoResize[0];
 
                     o.alsoResize = o.alsoResize[0];
 
                     _store(o.alsoResize);
 
                     _store(o.alsoResize);
                } else {
 
                    $.each(o.alsoResize, function(exp) {
 
                        _store(exp);
 
                    });
 
 
                 }
 
                 }
             } else {
+
                else {
 +
                    $.each(o.alsoResize, function (exp) { _store(exp); });
 +
                }
 +
             }
 +
            else {
 
                 _store(o.alsoResize);
 
                 _store(o.alsoResize);
 
             }
 
             }
 
         },
 
         },
         resize: function(event, ui) {
+
         resize: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, os = that.originalSize, op = that.originalPosition;
                o = that.options,
 
                os = that.originalSize,
 
                op = that.originalPosition;
 
 
             var delta = {
 
             var delta = {
                    height: (that.size.height - os.height) || 0,
+
                height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0,
                    width: (that.size.width - os.width) || 0,
+
                top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0
                    top: (that.position.top - op.top) || 0,
+
            }, _alsoResize = function (exp, c) {
                    left: (that.position.left - op.left) || 0
+
                $(exp).each(function () {
                },
+
                    var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
                _alsoResize = function(exp, c) {
+
                    $.each(css, function (i, prop) {
                    $(exp).each(function() {
+
                        var sum = (start[prop] || 0) + (delta[prop] || 0);
                        var el = $(this),
+
                        if (sum && sum >= 0)
                            start = $(this).data("resizable-alsoresize"),
+
                            style[prop] = sum || null;
                            style = {},
 
                            css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
                        $.each(css, function(i, prop) {
 
                            var sum = (start[prop] || 0) + (delta[prop] || 0);
 
                            if (sum && sum >= 0) style[prop] = sum || null;
 
                        });
 
                        el.css(style);
 
 
                     });
 
                     });
                };
+
                    el.css(style);
            if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
 
                $.each(o.alsoResize, function(exp, c) {
 
                    _alsoResize(exp, c);
 
 
                 });
 
                 });
             } else {
+
             };
 +
            if (typeof (o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
 +
                $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
 +
            }
 +
            else {
 
                 _alsoResize(o.alsoResize);
 
                 _alsoResize(o.alsoResize);
 
             }
 
             }
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
 
             $(this).removeData("resizable-alsoresize");
 
             $(this).removeData("resizable-alsoresize");
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("resizable", "animate", {
 
     $.ui.plugin.add("resizable", "animate", {
         stop: function(event, ui) {
+
         stop: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options;
                o = that.options;
+
             var pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width;
             var pr = that._proportionallyResizeElements,
+
             var style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
                ista = pr.length && (/textarea/i).test(pr[0].nodeName),
+
             that.element.animate($.extend(style, top && left ? { top: top, left: left } : {}), {
                soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height,
 
                soffsetw = ista ? 0 : that.sizeDiff.width;
 
             var style = {
 
                    width: (that.size.width - soffsetw),
 
                    height: (that.size.height - soffseth)
 
                },
 
                left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null,
 
                top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
 
             that.element.animate($.extend(style, top && left ? {
 
                top: top,
 
                left: left
 
            } : {}), {
 
 
                 duration: o.animateDuration,
 
                 duration: o.animateDuration,
 
                 easing: o.animateEasing,
 
                 easing: o.animateEasing,
                 step: function() {
+
                 step: function () {
 
                     var data = {
 
                     var data = {
 
                         width: parseInt(that.element.css('width'), 10),
 
                         width: parseInt(that.element.css('width'), 10),
第2,127行: 第2,086行:
 
                         left: parseInt(that.element.css('left'), 10)
 
                         left: parseInt(that.element.css('left'), 10)
 
                     };
 
                     };
                     if (pr && pr.length) $(pr[0]).css({
+
                     if (pr && pr.length)
                        width: data.width,
+
                        $(pr[0]).css({ width: data.width, height: data.height });
                        height: data.height
 
                    });
 
 
                     that._updateCache(data);
 
                     that._updateCache(data);
 
                     that._propagate("resize", event);
 
                     that._propagate("resize", event);
第2,138行: 第2,095行:
 
     });
 
     });
 
     $.ui.plugin.add("resizable", "containment", {
 
     $.ui.plugin.add("resizable", "containment", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, el = that.element;
                o = that.options,
+
             var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
                el = that.element;
+
             if (!ce)
             var oc = o.containment,
+
                 return;
                ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
 
             if (!
 
                 ce) return;
 
 
             that.containerElement = $(ce);
 
             that.containerElement = $(ce);
 
             if (/document/.test(oc) || oc == document) {
 
             if (/document/.test(oc) || oc == document) {
                 that.containerOffset = {
+
                 that.containerOffset = { left: 0, top: 0 };
                    left: 0,
+
                 that.containerPosition = { left: 0, top: 0 };
                    top: 0
 
                };
 
                 that.containerPosition = {
 
                    left: 0,
 
                    top: 0
 
                };
 
 
                 that.parentData = {
 
                 that.parentData = {
                     element: $(document),
+
                     element: $(document), left: 0, top: 0,
                    left: 0,
+
                     width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
                    top: 0,
 
                     width: $(document).width(),
 
                    height: $(document).height() || document.body.parentNode.scrollHeight
 
 
                 };
 
                 };
             } else {
+
             }
                 var element = $(ce),
+
            else {
                    p = [];
+
                 var element = $(ce), p = [];
                 $(["Top", "Right", "Left", "Bottom"]).each(function(i, name) {
+
                 $(["Top", "Right", "Left", "Bottom"]).each(function (i, name) { p[i] = num(element.css("padding" + name)); });
                    p[i] = num(element.css("padding" + name));
 
                });
 
 
                 that.containerOffset = element.offset();
 
                 that.containerOffset = element.offset();
 
                 that.containerPosition = element.position();
 
                 that.containerPosition = element.position();
                 that.containerSize = {
+
                 that.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
                    height: (element.innerHeight() - p[3]),
+
                 var co = that.containerOffset, ch = that.containerSize.height, cw = that.containerSize.width, width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
                    width: (element.innerWidth() - p[1])
 
                };
 
                 var co = that.containerOffset,
 
                    ch = that.containerSize.height,
 
                    cw = that.containerSize.width,
 
                    width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw),
 
                    height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
 
 
                 that.parentData = {
 
                 that.parentData = {
                     element: ce,
+
                     element: ce, left: co.left, top: co.top, width: width, height: height
                    left: co.left,
 
                    top: co.top,
 
                    width: width,
 
                    height: height
 
 
                 };
 
                 };
 
             }
 
             }
 
         },
 
         },
         resize: function(event, ui) {
+
         resize: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, ps = that.containerSize, co = that.containerOffset, cs = that.size, cp = that.position, pRatio = that._aspectRatio || event.shiftKey, cop = { top: 0, left: 0 }, ce = that.containerElement;
                o = that.options,
+
             if (ce[0] != document && (/static/).test(ce.css('position')))
                ps = that.containerSize,
+
                cop = co;
                co = that.containerOffset,
 
                cs = that.size,
 
                cp = that
 
                .position,
 
                pRatio = that._aspectRatio || event.shiftKey,
 
                cop = {
 
                    top: 0,
 
                    left: 0
 
                },
 
                ce = that.containerElement;
 
             if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
 
 
             if (cp.left < (that._helper ? co.left : 0)) {
 
             if (cp.left < (that._helper ? co.left : 0)) {
 
                 that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left));
 
                 that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left));
                 if (pRatio) that.size.height = that.size.width / that.aspectRatio;
+
                 if (pRatio)
 +
                    that.size.height = that.size.width / that.aspectRatio;
 
                 that.position.left = o.helper ? co.left : 0;
 
                 that.position.left = o.helper ? co.left : 0;
 
             }
 
             }
 
             if (cp.top < (that._helper ? co.top : 0)) {
 
             if (cp.top < (that._helper ? co.top : 0)) {
 
                 that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top);
 
                 that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top);
                 if (pRatio) that.size.width = that.size.height * that.aspectRatio;
+
                 if (pRatio)
 +
                    that.size.width = that.size.height * that.aspectRatio;
 
                 that.position.top = that._helper ? co.top : 0;
 
                 that.position.top = that._helper ? co.top : 0;
 
             }
 
             }
 
             that.offset.left = that.parentData.left + that.position.left;
 
             that.offset.left = that.parentData.left + that.position.left;
 
             that.offset.top = that.parentData.top + that.position.top;
 
             that.offset.top = that.parentData.top + that.position.top;
             var woset = Math.abs((that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width),
+
             var woset = Math.abs((that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width), hoset = Math.abs((that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height);
                hoset = Math.abs((that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height);
+
             var isParent = that.containerElement.get(0) == that.element.parent().get(0), isOffsetRelative = /relative|absolute/.test(that.containerElement.css('position'));
             var isParent = that.containerElement.get(0) == that.
+
             if (isParent && isOffsetRelative)
            element.parent().get(0), isOffsetRelative = /relative|absolute/.test(that.containerElement.css('position'));
+
                woset -= that.parentData.left;
             if (isParent && isOffsetRelative) woset -= that.parentData.left;
 
 
             if (woset + that.size.width >= that.parentData.width) {
 
             if (woset + that.size.width >= that.parentData.width) {
 
                 that.size.width = that.parentData.width - woset;
 
                 that.size.width = that.parentData.width - woset;
                 if (pRatio) that.size.height = that.size.width / that.aspectRatio;
+
                 if (pRatio)
 +
                    that.size.height = that.size.width / that.aspectRatio;
 
             }
 
             }
 
             if (hoset + that.size.height >= that.parentData.height) {
 
             if (hoset + that.size.height >= that.parentData.height) {
 
                 that.size.height = that.parentData.height - hoset;
 
                 that.size.height = that.parentData.height - hoset;
                 if (pRatio) that.size.width = that.size.height * that.aspectRatio;
+
                 if (pRatio)
 +
                    that.size.width = that.size.height * that.aspectRatio;
 
             }
 
             }
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, cp = that.position, co = that.containerOffset, cop = that.containerPosition, ce = that.containerElement;
                o = that.options,
+
             var helper = $(that.helper), ho = helper.offset(), w = helper.outerWidth() - that.sizeDiff.width, h = helper.outerHeight() - that.sizeDiff.height;
                cp = that.position,
+
             if (that._helper && !o.animate && (/relative/).test(ce.css('position')))
                co = that.containerOffset,
+
                $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
                cop = that.containerPosition,
+
             if (that._helper && !o.animate && (/static/).test(ce.css('position')))
                ce = that.containerElement;
+
                $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
             var helper = $(that.helper),
 
                ho = helper.offset(),
 
                w = helper.outerWidth() - that.sizeDiff.width,
 
                h = helper.outerHeight() - that.sizeDiff.height;
 
             if (that._helper && !o.animate && (/relative/).test(ce.css('position'))) $(this).css({
 
                left: ho.left - cop.left - co.left,
 
                width: w,
 
                height: h
 
            });
 
             if (that._helper && !o.animate && (/static/).test(ce.css('position'))) $(this).css({
 
                left: ho.left - cop.
 
                left - co.left,
 
                width: w,
 
                height: h
 
            });
 
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("resizable", "ghost", {
 
     $.ui.plugin.add("resizable", "ghost", {
         start: function(event, ui) {
+
         start: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, cs = that.size;
                o = that.options,
 
                cs = that.size;
 
 
             that.ghost = that.originalElement.clone();
 
             that.ghost = that.originalElement.clone();
             that.ghost.css({
+
             that.ghost
                opacity: .25,
+
                .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
                display: 'block',
+
                .addClass('ui-resizable-ghost')
                position: 'relative',
+
                .addClass(typeof o.ghost == 'string' ? o.ghost : '');
                height: cs.height,
 
                width: cs.width,
 
                margin: 0,
 
                left: 0,
 
                top: 0
 
            }).addClass('ui-resizable-ghost').addClass(typeof o.ghost == 'string' ? o.ghost : '');
 
 
             that.ghost.appendTo(that.helper);
 
             that.ghost.appendTo(that.helper);
 
         },
 
         },
         resize: function(event, ui) {
+
         resize: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options;
                o = that.options;
+
             if (that.ghost)
             if (that.ghost) that.ghost.css({
+
                that.ghost.css({ position: 'relative', height: that.size.height, width: that.size.width });
                position: 'relative',
 
                height: that.size.height,
 
                width: that.size.width
 
            });
 
 
         },
 
         },
         stop: function(event, ui) {
+
         stop: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options;
                o = that.options;
+
             if (that.ghost && that.helper)
             if (that.ghost && that.helper) that.helper.get(0).removeChild(that.ghost.get(0));
+
                that.helper.get(0).removeChild(that.ghost.get(0));
 
         }
 
         }
 
     });
 
     });
 
     $.ui.plugin.add("resizable", "grid", {
 
     $.ui.plugin.add("resizable", "grid", {
         resize: function(event, ui) {
+
         resize: function (event, ui) {
             var that = $(this).data("resizable"),
+
             var that = $(this).data("resizable"), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, ratio = o._aspectRatio || event.shiftKey;
                o = that.options,
+
             o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
                cs = that.size,
+
             var ox = Math.round((cs.width - os.width) / (o.grid[0] || 1)) * (o.grid[0] || 1), oy = Math.round((cs.height - os.height) / (o.grid[1] || 1)) * (o.grid[1] || 1);
                os = that.originalSize,
 
                op = that.originalPosition,
 
                a = that.axis,
 
                ratio = o._aspectRatio || event.shiftKey;
 
             o.grid = typeof o.
 
            grid == "number" ? [o.grid, o.grid] : o.grid;
 
             var ox = Math.round((cs.width - os.width) / (o.grid[0] || 1)) * (o.grid[0] || 1),
 
                oy = Math.round((cs.height - os.height) / (o.grid[1] || 1)) * (o.grid[1] || 1);
 
 
             if (/^(se|s|e)$/.test(a)) {
 
             if (/^(se|s|e)$/.test(a)) {
 
                 that.size.width = os.width + ox;
 
                 that.size.width = os.width + ox;
 
                 that.size.height = os.height + oy;
 
                 that.size.height = os.height + oy;
             } else if (/^(ne)$/.test(a)) {
+
             }
 +
            else if (/^(ne)$/.test(a)) {
 
                 that.size.width = os.width + ox;
 
                 that.size.width = os.width + ox;
 
                 that.size.height = os.height + oy;
 
                 that.size.height = os.height + oy;
 
                 that.position.top = op.top - oy;
 
                 that.position.top = op.top - oy;
             } else if (/^(sw)$/.test(a)) {
+
             }
 +
            else if (/^(sw)$/.test(a)) {
 
                 that.size.width = os.width + ox;
 
                 that.size.width = os.width + ox;
 
                 that.size.height = os.height + oy;
 
                 that.size.height = os.height + oy;
 
                 that.position.left = op.left - ox;
 
                 that.position.left = op.left - ox;
             } else {
+
             }
 +
            else {
 
                 that.size.width = os.width + ox;
 
                 that.size.width = os.width + ox;
 
                 that.size.height = os.height + oy;
 
                 that.size.height = os.height + oy;
第2,319行: 第2,211行:
 
         }
 
         }
 
     });
 
     });
     var num = function(v) {
+
     var num = function (v) {
 
         return parseInt(v, 10) || 0;
 
         return parseInt(v, 10) || 0;
 
     };
 
     };
     var isNumber = function(value) {
+
     var isNumber = function (value) {
 
         return !isNaN(parseInt(value, 10));
 
         return !isNaN(parseInt(value, 10));
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.selectable", $.ui.mouse, {
 
     $.widget("ui.selectable", $.ui.mouse, {
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         options: {
 
         options: {
 
             appendTo: 'body',
 
             appendTo: 'body',
             autoRefresh: !0,
+
             autoRefresh: true,
 
             distance: 0,
 
             distance: 0,
 
             filter: '*',
 
             filter: '*',
 
             tolerance: 'touch'
 
             tolerance: 'touch'
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             var that = this;
 
             var that = this;
 
             this.element.addClass("ui-selectable");
 
             this.element.addClass("ui-selectable");
             this.dragged = !1;
+
             this.dragged = false;
 
             var selectees;
 
             var selectees;
             this.refresh = function() {
+
             this.refresh = function () {
 
                 selectees = $(that.options.filter, that.element[0]);
 
                 selectees = $(that.options.filter, that.element[0]);
 
                 selectees.addClass("ui-selectee");
 
                 selectees.addClass("ui-selectee");
                 selectees.each(function() {
+
                 selectees.each(function () {
 
                     var $this = $(this);
 
                     var $this = $(this);
 
                     var pos = $this.offset();
 
                     var pos = $this.offset();
第2,354行: 第2,246行:
 
                         right: pos.left + $this.outerWidth(),
 
                         right: pos.left + $this.outerWidth(),
 
                         bottom: pos.top + $this.outerHeight(),
 
                         bottom: pos.top + $this.outerHeight(),
                         startselected: !1,
+
                         startselected: false,
 
                         selected: $this.hasClass('ui-selected'),
 
                         selected: $this.hasClass('ui-selected'),
 
                         selecting: $this.hasClass('ui-selecting'),
 
                         selecting: $this.hasClass('ui-selecting'),
第2,366行: 第2,258行:
 
             this.helper = $("<div class='ui-selectable-helper'></div>");
 
             this.helper = $("<div class='ui-selectable-helper'></div>");
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
             this.selectees.removeClass("ui-selectee").removeData("selectable-item");
+
             this.selectees
             this.element.removeClass("ui-selectable ui-selectable-disabled");
+
                .removeClass("ui-selectee")
 +
                .removeData("selectable-item");
 +
             this.element
 +
                .removeClass("ui-selectable ui-selectable-disabled");
 
             this._mouseDestroy();
 
             this._mouseDestroy();
 
         },
 
         },
         _mouseStart: function(event) {
+
         _mouseStart: function (event) {
 
             var that = this;
 
             var that = this;
 
             this.opos = [event.pageX, event.pageY];
 
             this.opos = [event.pageX, event.pageY];
             if (this.options.disabled) return;
+
             if (this.options.disabled)
 +
                return;
 
             var options = this.options;
 
             var options = this.options;
 
             this.selectees = $(options.filter, this.element[0]);
 
             this.selectees = $(options.filter, this.element[0]);
             this._trigger(
+
             this._trigger("start", event);
                "start", event);
 
 
             $(options.appendTo).append(this.helper);
 
             $(options.appendTo).append(this.helper);
 
             this.helper.css({
 
             this.helper.css({
第2,389行: 第2,284行:
 
                 this.refresh();
 
                 this.refresh();
 
             }
 
             }
             this.selectees.filter('.ui-selected').each(function() {
+
             this.selectees.filter('.ui-selected').each(function () {
 
                 var selectee = $.data(this, "selectable-item");
 
                 var selectee = $.data(this, "selectable-item");
                 selectee.startselected = !0;
+
                 selectee.startselected = true;
 
                 if (!event.metaKey && !event.ctrlKey) {
 
                 if (!event.metaKey && !event.ctrlKey) {
 
                     selectee.$element.removeClass('ui-selected');
 
                     selectee.$element.removeClass('ui-selected');
                     selectee.selected = !1;
+
                     selectee.selected = false;
 
                     selectee.$element.addClass('ui-unselecting');
 
                     selectee.$element.addClass('ui-unselecting');
                     selectee.unselecting = !0;
+
                     selectee.unselecting = true;
 
                     that._trigger("unselecting", event, {
 
                     that._trigger("unselecting", event, {
 
                         unselecting: selectee.element
 
                         unselecting: selectee.element
第2,402行: 第2,297行:
 
                 }
 
                 }
 
             });
 
             });
             $(event.target).parents().andSelf().each(function() {
+
             $(event.target).parents().addBack().each(function () {
 
                 var selectee = $.data(this, "selectable-item");
 
                 var selectee = $.data(this, "selectable-item");
 
                 if (selectee) {
 
                 if (selectee) {
 
                     var doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected');
 
                     var doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected');
                     selectee.$element.removeClass(doSelect ? "ui-unselecting" : "ui-selected").addClass(doSelect ? "ui-selecting" : "ui-unselecting");
+
                     selectee.$element
 +
                        .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
 +
                        .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
 
                     selectee.unselecting = !doSelect;
 
                     selectee.unselecting = !doSelect;
 
                     selectee.selecting = doSelect;
 
                     selectee.selecting = doSelect;
第2,414行: 第2,311行:
 
                             selecting: selectee.element
 
                             selecting: selectee.element
 
                         });
 
                         });
                     } else {
+
                     }
 +
                    else {
 
                         that._trigger("unselecting", event, {
 
                         that._trigger("unselecting", event, {
 
                             unselecting: selectee.element
 
                             unselecting: selectee.element
第2,423行: 第2,321行:
 
             });
 
             });
 
         },
 
         },
         _mouseDrag: function(event) {
+
         _mouseDrag: function (event) {
 
             var that = this;
 
             var that = this;
             this.dragged = !0;
+
             this.dragged = true;
             if (this.options.disabled) return;
+
             if (this.options.disabled)
 +
                return;
 
             var options = this.options;
 
             var options = this.options;
             var x1 = this.opos[0],
+
             var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
                y1 = this.opos[1],
 
                x2 = event.pageX,
 
                y2 = event.pageY;
 
 
             if (x1 > x2) {
 
             if (x1 > x2) {
 
                 var tmp = x2;
 
                 var tmp = x2;
第2,442行: 第2,338行:
 
                 y1 = tmp;
 
                 y1 = tmp;
 
             }
 
             }
             this.helper.css({
+
             this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });
                left: x1,
+
             this.selectees.each(function () {
                top: y1,
 
                width: x2 - x1,
 
                height: y2 - y1
 
            });
 
             this.selectees.each(function() {
 
 
                 var selectee = $.data(this, "selectable-item");
 
                 var selectee = $.data(this, "selectable-item");
                 if (!selectee || selectee.element == that.element[0]) return;
+
                 if (!selectee || selectee.element == that.element[0])
                 var hit = !1;
+
                    return;
 +
                 var hit = false;
 
                 if (options.tolerance == 'touch') {
 
                 if (options.tolerance == 'touch') {
 
                     hit = (!(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1));
 
                     hit = (!(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1));
                 } else if (options.tolerance == 'fit') {
+
                 }
 +
                else if (options.tolerance == 'fit') {
 
                     hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
 
                     hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
 
                 }
 
                 }
第2,460行: 第2,353行:
 
                     if (selectee.selected) {
 
                     if (selectee.selected) {
 
                         selectee.$element.removeClass('ui-selected');
 
                         selectee.$element.removeClass('ui-selected');
                         selectee.selected = !1;
+
                         selectee.selected = false;
 
                     }
 
                     }
 
                     if (selectee.unselecting) {
 
                     if (selectee.unselecting) {
 
                         selectee.$element.removeClass('ui-unselecting');
 
                         selectee.$element.removeClass('ui-unselecting');
                         selectee.unselecting = !1;
+
                         selectee.unselecting = false;
 
                     }
 
                     }
 
                     if (!selectee.selecting) {
 
                     if (!selectee.selecting) {
 
                         selectee.$element.addClass('ui-selecting');
 
                         selectee.$element.addClass('ui-selecting');
                         selectee.selecting = !0;
+
                         selectee.selecting = true;
 
                         that._trigger("selecting", event, {
 
                         that._trigger("selecting", event, {
 
                             selecting: selectee.element
 
                             selecting: selectee.element
 
                         });
 
                         });
 
                     }
 
                     }
                 } else {
+
                 }
 +
                else {
 
                     if (selectee.selecting) {
 
                     if (selectee.selecting) {
 
                         if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
 
                         if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
 
                             selectee.$element.removeClass('ui-selecting');
 
                             selectee.$element.removeClass('ui-selecting');
                             selectee.selecting = !1;
+
                             selectee.selecting = false;
 
                             selectee.$element.addClass('ui-selected');
 
                             selectee.$element.addClass('ui-selected');
                             selectee.selected = !0;
+
                             selectee.selected = true;
                         } else {
+
                         }
 +
                        else {
 
                             selectee.$element.removeClass('ui-selecting');
 
                             selectee.$element.removeClass('ui-selecting');
                             selectee.selecting = !1;
+
                             selectee.selecting = false;
 
                             if (selectee.startselected) {
 
                             if (selectee.startselected) {
 
                                 selectee.$element.addClass('ui-unselecting');
 
                                 selectee.$element.addClass('ui-unselecting');
                                 selectee.unselecting = !0;
+
                                 selectee.unselecting = true;
 
                             }
 
                             }
 
                             that._trigger("unselecting", event, {
 
                             that._trigger("unselecting", event, {
第2,495行: 第2,390行:
 
                         if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
 
                         if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
 
                             selectee.$element.removeClass('ui-selected');
 
                             selectee.$element.removeClass('ui-selected');
                             selectee.selected = !1;
+
                             selectee.selected = false;
 
                             selectee.$element.addClass('ui-unselecting');
 
                             selectee.$element.addClass('ui-unselecting');
                             selectee.unselecting = !0;
+
                             selectee.unselecting = true;
 
                             that._trigger("unselecting", event, {
 
                             that._trigger("unselecting", event, {
 
                                 unselecting: selectee.element
 
                                 unselecting: selectee.element
第2,507行: 第2,402行:
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseStop: function(event) {
+
         _mouseStop: function (event) {
 
             var that = this;
 
             var that = this;
             this.dragged = !1;
+
             this.dragged = false;
 
             var options = this.options;
 
             var options = this.options;
             $('.ui-unselecting', this.element[0]).each(function() {
+
             $('.ui-unselecting', this.element[0]).each(function () {
 
                 var selectee = $.data(this, "selectable-item");
 
                 var selectee = $.data(this, "selectable-item");
 
                 selectee.$element.removeClass('ui-unselecting');
 
                 selectee.$element.removeClass('ui-unselecting');
                 selectee.unselecting = !1;
+
                 selectee.unselecting = false;
                 selectee.startselected = !1;
+
                 selectee.startselected = false;
 
                 that._trigger("unselected", event, {
 
                 that._trigger("unselected", event, {
 
                     unselected: selectee.element
 
                     unselected: selectee.element
 
                 });
 
                 });
 
             });
 
             });
             $('.ui-selecting', this.element[0]).each(function() {
+
             $('.ui-selecting', this.element[0]).each(function () {
 
                 var selectee = $.data(this, "selectable-item");
 
                 var selectee = $.data(this, "selectable-item");
 
                 selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
 
                 selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
                 selectee.selecting = !1;
+
                 selectee.selecting = false;
                 selectee.selected = !0;
+
                 selectee.selected = true;
                 selectee.startselected = !0;
+
                 selectee.startselected = true;
 
                 that._trigger("selected", event, {
 
                 that._trigger("selected", event, {
 
                     selected: selectee.element
 
                     selected: selectee.element
第2,536行: 第2,431行:
 
     });
 
     });
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.sortable", $.ui.mouse, {
 
     $.widget("ui.sortable", $.ui.mouse, {
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         widgetEventPrefix: "sort",
 
         widgetEventPrefix: "sort",
         ready: !1,
+
         ready: false,
 
         options: {
 
         options: {
 
             appendTo: "parent",
 
             appendTo: "parent",
             axis: !1,
+
             axis: false,
             connectWith: !1,
+
             connectWith: false,
             containment: !1,
+
             containment: false,
 
             cursor: 'auto',
 
             cursor: 'auto',
             cursorAt: !1,
+
             cursorAt: false,
             dropOnEmpty: !0,
+
             dropOnEmpty: true,
             forcePlaceholderSize: !1,
+
             forcePlaceholderSize: false,
             forceHelperSize: !1,
+
             forceHelperSize: false,
             grid: !1,
+
             grid: false,
             handle: !1,
+
             handle: false,
 
             helper: "original",
 
             helper: "original",
 
             items: '> *',
 
             items: '> *',
             opacity: !1,
+
             opacity: false,
             placeholder: !1,
+
             placeholder: false,
             revert: !1,
+
             revert: false,
             scroll: !0,
+
             scroll: true,
 
             scrollSensitivity: 20,
 
             scrollSensitivity: 20,
 
             scrollSpeed: 20,
 
             scrollSpeed: 20,
第2,565行: 第2,460行:
 
             zIndex: 1000
 
             zIndex: 1000
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             var o = this.options;
 
             var o = this.options;
 
             this.containerCache = {};
 
             this.containerCache = {};
 
             this.element.addClass("ui-sortable");
 
             this.element.addClass("ui-sortable");
 
             this.refresh();
 
             this.refresh();
             this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : !1;
+
             this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
 
             this.offset = this.element.offset();
 
             this.offset = this.element.offset();
 
             this._mouseInit();
 
             this._mouseInit();
             this.ready = !0
+
             this.ready = true;
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
             this.element.removeClass("ui-sortable ui-sortable-disabled");
+
             this.element
 +
                .removeClass("ui-sortable ui-sortable-disabled");
 
             this._mouseDestroy();
 
             this._mouseDestroy();
             for (var i = this.items.length - 1; i >= 0; i--) this.items[i].item.removeData(this.widgetName + "-item");
+
             for (var i = this.items.length - 1; i >= 0; i--)
 +
                this.items[i].item.removeData(this.widgetName + "-item");
 
             return this;
 
             return this;
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key === "disabled") {
 
             if (key === "disabled") {
 
                 this.options[key] = value;
 
                 this.options[key] = value;
 
                 this.widget().toggleClass("ui-sortable-disabled", !!value);
 
                 this.widget().toggleClass("ui-sortable-disabled", !!value);
             } else {
+
             }
 +
            else {
 
                 $.Widget.prototype._setOption.apply(this, arguments);
 
                 $.Widget.prototype._setOption.apply(this, arguments);
 
             }
 
             }
 
         },
 
         },
         _mouseCapture: function(event, overrideHandle) {
+
         _mouseCapture: function (event, overrideHandle) {
 
             var that = this;
 
             var that = this;
 
             if (this.reverting) {
 
             if (this.reverting) {
 
                 return false;
 
                 return false;
 
             }
 
             }
             if (this.options.disabled || this.options.type == 'static') return false;
+
             if (this.options.disabled || this.options.type == 'static')
 +
                return false;
 
             this._refreshItems(event);
 
             this._refreshItems(event);
             var currentItem = null,
+
             var currentItem = null, nodes = $(event.target).parents().each(function () {
                nodes = $(event.target).parents().each(function() {
+
                if ($.data(this, that.widgetName + '-item') == that) {
                    if ($.data(this, that.widgetName + '-item') == that) {
+
                    currentItem = $(this);
                        currentItem = $(this);
+
                    return false;
                        return false;
+
                }
                    }
+
            });
                });
+
             if ($.data(event.target, that.widgetName + '-item') == that)
             if ($.data(event.target, that.widgetName + '-item') == that) currentItem = $(event.target);
+
                currentItem = $(event.target);
             if (!currentItem) return false;
+
             if (!currentItem)
 +
                return false;
 
             if (this.options.handle && !overrideHandle) {
 
             if (this.options.handle && !overrideHandle) {
                 var validHandle = !1;
+
                 var validHandle = false;
                 $(this.options.handle, currentItem).find("*").andSelf().each(function() {
+
                 $(this.options.handle, currentItem).find("*").addBack().each(function () { if (this == event.target)
                    if (this == event.target) validHandle = !0;
+
                    validHandle = true; });
                });
+
                 if (!validHandle)
                 if (!validHandle) return false;
+
                    return false;
 
             }
 
             }
 
             this.currentItem = currentItem;
 
             this.currentItem = currentItem;
第2,616行: 第2,516行:
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseStart: function(event, overrideHandle, noActivation) {
+
         _mouseStart: function (event, overrideHandle, noActivation) {
 
             var o = this.options;
 
             var o = this.options;
 
             this.currentContainer = this;
 
             this.currentContainer = this;
第2,627行: 第2,527行:
 
             this.offset = {
 
             this.offset = {
 
                 top: this.offset.top - this.margins.top,
 
                 top: this.offset.top - this.margins.top,
                 left: this.
+
                 left: this.offset.left - this.margins.left
                offset.left - this.margins.left
 
 
             };
 
             };
 
             $.extend(this.offset, {
 
             $.extend(this.offset, {
第2,644行: 第2,543行:
 
             this.originalPageY = event.pageY;
 
             this.originalPageY = event.pageY;
 
             (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
 
             (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
             this.domPosition = {
+
             this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
                prev: this.currentItem.prev()[0],
 
                parent: this.currentItem.parent()[0]
 
            };
 
 
             if (this.helper[0] != this.currentItem[0]) {
 
             if (this.helper[0] != this.currentItem[0]) {
 
                 this.currentItem.hide();
 
                 this.currentItem.hide();
 
             }
 
             }
 
             this._createPlaceholder();
 
             this._createPlaceholder();
             if (o.containment) this._setContainment();
+
             if (o.containment)
 +
                this._setContainment();
 
             if (o.cursor) {
 
             if (o.cursor) {
                 if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
+
                 if ($('body').css("cursor"))
 +
                    this._storedCursor = $('body').css("cursor");
 
                 $('body').css("cursor", o.cursor);
 
                 $('body').css("cursor", o.cursor);
 
             }
 
             }
 
             if (o.opacity) {
 
             if (o.opacity) {
                 if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
+
                 if (this.helper.css("opacity"))
 +
                    this._storedOpacity = this.helper.css("opacity");
 
                 this.helper.css("opacity", o.opacity);
 
                 this.helper.css("opacity", o.opacity);
 
             }
 
             }
 
             if (o.zIndex) {
 
             if (o.zIndex) {
                 if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
+
                 if (this.helper.css("zIndex"))
 +
                    this._storedZIndex = this.helper.css("zIndex");
 
                 this.helper.css("zIndex", o.zIndex);
 
                 this.helper.css("zIndex", o.zIndex);
 
             }
 
             }
             if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') this.overflowOffset = this.scrollParent.offset();
+
             if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
 +
                this.overflowOffset = this.scrollParent.offset();
 
             this._trigger("start", event, this._uiHash());
 
             this._trigger("start", event, this._uiHash());
             if (!this._preserveHelperProportions) this._cacheHelperProportions();
+
             if (!this._preserveHelperProportions)
 +
                this._cacheHelperProportions();
 
             if (!noActivation) {
 
             if (!noActivation) {
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
第2,673行: 第2,575行:
 
                 }
 
                 }
 
             }
 
             }
             if ($.ui.ddmanager) $.ui.ddmanager.current = this;
+
             if ($.ui.ddmanager)
             if ($.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, event);
+
                $.ui.ddmanager.current = this;
             this.dragging = !0;
+
             if ($.ui.ddmanager && !o.dropBehaviour)
 +
                $.ui.ddmanager.prepareOffsets(this, event);
 +
             this.dragging = true;
 
             this.helper.addClass("ui-sortable-helper");
 
             this.helper.addClass("ui-sortable-helper");
 
             this._mouseDrag(event);
 
             this._mouseDrag(event);
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseDrag: function(event) {
+
         _mouseDrag: function (event) {
 
             this.position = this._generatePosition(event);
 
             this.position = this._generatePosition(event);
 
             this.positionAbs = this._convertPositionTo("absolute");
 
             this.positionAbs = this._convertPositionTo("absolute");
第2,687行: 第2,591行:
 
             }
 
             }
 
             if (this.options.scroll) {
 
             if (this.options.scroll) {
                 var o = this.options,
+
                 var o = this.options, scrolled = false;
                    scrolled = !1;
 
 
                 if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
 
                 if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
                     if ((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
+
                     if ((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
                     else if (event.pageY - this.overflowOffset.top < o.scrollSensitivity) this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
+
                        this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
                     if ((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
+
                     else if (event.pageY - this.overflowOffset.top < o.scrollSensitivity)
                     else if (event.pageX - this.overflowOffset.left < o.scrollSensitivity) this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
+
                        this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
                 } else {
+
                     if ((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
                     if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
+
                        this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
                     else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
+
                     else if (event.pageX - this.overflowOffset.left < o.scrollSensitivity)
                     if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
+
                        this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
                     else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
+
                 }
 +
                else {
 +
                     if (event.pageY - $(document).scrollTop() < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
 +
                     else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
 +
                     if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
 +
                     else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
 +
                        scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
 
                 }
 
                 }
                 if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, event);
+
                 if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
 +
                    $.ui.ddmanager.prepareOffsets(this, event);
 
             }
 
             }
 
             this.positionAbs = this._convertPositionTo("absolute");
 
             this.positionAbs = this._convertPositionTo("absolute");
             if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + 'px';
+
             if (!this.options.axis || this.options.axis != "y")
             if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + 'px';
+
                this.helper[0].style.left = this.position.left + 'px';
 +
             if (!this.options.axis || this.options.axis != "x")
 +
                this.helper[0].style.top = this.position.top + 'px';
 
             for (var i = this.items.length - 1; i >= 0; i--) {
 
             for (var i = this.items.length - 1; i >= 0; i--) {
                 var item = this.items[i],
+
                 var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
                    itemElement = item.item[0],
+
                 if (!intersection)
                    intersection = this._intersectsWithPointer(item);
+
                    continue;
                 if (!intersection) continue;
+
                 if (item.instance !== this.currentContainer)
                 if (item.instance !== this.currentContainer) continue;
+
                    continue;
                 if (itemElement != this.currentItem[0] && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement && !$.contains(this.placeholder[0], itemElement) && (this.options.type == 'semi-dynamic' ? !$.contains(this.element[0], itemElement) : true)) {
+
                 if (itemElement != this.currentItem[0]
                     this.direction = intersection == 1 ?
+
                    && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement
                        "down" : "up";
+
                    && !$.contains(this.placeholder[0], itemElement)
 +
                    && (this.options.type == 'semi-dynamic' ? !$.contains(this.element[0], itemElement) : true)) {
 +
                     this.direction = intersection == 1 ? "down" : "up";
 
                     if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
 
                     if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
 
                         this._rearrange(event, item);
 
                         this._rearrange(event, item);
                     } else {
+
                     }
 +
                    else {
 
                         break;
 
                         break;
 
                     }
 
                     }
第2,724行: 第2,642行:
 
             }
 
             }
 
             this._contactContainers(event);
 
             this._contactContainers(event);
             if ($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
+
             if ($.ui.ddmanager)
 +
                $.ui.ddmanager.drag(this, event);
 
             this._trigger('sort', event, this._uiHash());
 
             this._trigger('sort', event, this._uiHash());
 
             this.lastPositionAbs = this.positionAbs;
 
             this.lastPositionAbs = this.positionAbs;
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseStop: function(event, noPropagation) {
+
         _mouseStop: function (event, noPropagation) {
             if (!event) return;
+
             if (!event)
             if ($.ui.ddmanager && !this.options.dropBehaviour) $.ui.ddmanager.drop(this, event);
+
                return;
 +
             if ($.ui.ddmanager && !this.options.dropBehaviour)
 +
                $.ui.ddmanager.drop(this, event);
 
             if (this.options.revert) {
 
             if (this.options.revert) {
 
                 var that = this;
 
                 var that = this;
 
                 var cur = this.placeholder.offset();
 
                 var cur = this.placeholder.offset();
                 this.reverting = !0;
+
                 this.reverting = true;
 
                 $(this.helper).animate({
 
                 $(this.helper).animate({
 
                     left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
 
                     left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
 
                     top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
 
                     top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
                 }, parseInt(this.options.revert, 10) || 500, function() {
+
                 }, parseInt(this.options.revert, 10) || 500, function () {
 
                     that._clear(event);
 
                     that._clear(event);
 
                 });
 
                 });
             } else {
+
             }
 +
            else {
 
                 this._clear(event, noPropagation);
 
                 this._clear(event, noPropagation);
 
             }
 
             }
 
             return false;
 
             return false;
 
         },
 
         },
         cancel: function() {
+
         cancel: function () {
 
             if (this.dragging) {
 
             if (this.dragging) {
                 this._mouseUp({
+
                 this._mouseUp({ target: null });
                    target: null
+
                 if (this.options.helper == "original")
                });
+
                    this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
                 if (this.options.helper == "original") this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
+
                 else
                 else this.currentItem.show();
+
                    this.currentItem.show();
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
 
                     this.containers[i]._trigger("deactivate", null, this._uiHash(this));
 
                     this.containers[i]._trigger("deactivate", null, this._uiHash(this));
第2,763行: 第2,685行:
 
             }
 
             }
 
             if (this.placeholder) {
 
             if (this.placeholder) {
                 if (this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+
                 if (this.placeholder[0].parentNode)
                 if (this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
+
                    this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
 +
                 if (this.options.helper != "original" && this.helper && this.helper[0].parentNode)
 +
                    this.helper.remove();
 
                 $.extend(this, {
 
                 $.extend(this, {
 
                     helper: null,
 
                     helper: null,
                     dragging: !1,
+
                     dragging: false,
                     reverting: !1,
+
                     reverting: false,
 
                     _noFinalSort: null
 
                     _noFinalSort: null
 
                 });
 
                 });
 
                 if (this.domPosition.prev) {
 
                 if (this.domPosition.prev) {
 
                     $(this.domPosition.prev).after(this.currentItem);
 
                     $(this.domPosition.prev).after(this.currentItem);
                 } else {
+
                 }
 +
                else {
 
                     $(this.domPosition.parent).prepend(this.currentItem);
 
                     $(this.domPosition.parent).prepend(this.currentItem);
 
                 }
 
                 }
第2,779行: 第2,704行:
 
             return this;
 
             return this;
 
         },
 
         },
         serialize: function(o) {
+
         serialize: function (o) {
 
             var items = this._getItemsAsjQuery(o && o.connected);
 
             var items = this._getItemsAsjQuery(o && o.connected);
 
             var str = [];
 
             var str = [];
 
             o = o || {};
 
             o = o || {};
             $(items).each(
+
             $(items).each(function () {
                function() {
+
                var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
                    var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
+
                if (res)
                    if (res) str.push((o.key || res[1] + '[]') + '=' + (o.key && o.expression ? res[1] : res[2]));
+
                    str.push((o.key || res[1] + '[]') + '=' + (o.key && o.expression ? res[1] : res[2]));
                });
+
            });
 
             if (!str.length && o.key) {
 
             if (!str.length && o.key) {
 
                 str.push(o.key + '=');
 
                 str.push(o.key + '=');
第2,793行: 第2,718行:
 
             return str.join('&');
 
             return str.join('&');
 
         },
 
         },
         toArray: function(o) {
+
         toArray: function (o) {
 
             var items = this._getItemsAsjQuery(o && o.connected);
 
             var items = this._getItemsAsjQuery(o && o.connected);
 
             var ret = [];
 
             var ret = [];
 
             o = o || {};
 
             o = o || {};
             items.each(function() {
+
             items.each(function () { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
                ret.push($(o.item || this).attr(o.attribute || 'id') || '');
 
            });
 
 
             return ret;
 
             return ret;
 
         },
 
         },
         _intersectsWith: function(item) {
+
         _intersectsWith: function (item) {
             var x1 = this.positionAbs.left,
+
             var x1 = this.positionAbs.left, x2 = x1 + this.helperProportions.width, y1 = this.positionAbs.top, y2 = y1 + this.helperProportions.height;
                x2 = x1 + this.helperProportions.width,
+
             var l = item.left, r = l + item.width, t = item.top, b = t + item.height;
                y1 = this.positionAbs.top,
+
             var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
                y2 = y1 + this.helperProportions.height;
 
             var l = item.left,
 
                r = l + item.width,
 
                t = item.top,
 
                b = t + item.height;
 
             var dyClick = this.offset.click.top,
 
                dxClick = this.offset.click.left;
 
 
             var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
 
             var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
             if (this.options.tolerance == "pointer" || this.options.forcePointerForContainers || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])) {
+
             if (this.options.tolerance == "pointer"
 +
                || this.options.forcePointerForContainers
 +
                || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])) {
 
                 return isOverElement;
 
                 return isOverElement;
             } else {
+
             }
                 return (l < x1 + (this.helperProportions.width / 2) && x2 - (this.helperProportions.width / 2) < r && t < y1 + (this.helperProportions.height / 2) && y2 - (this.helperProportions.height / 2) < b);
+
            else {
 +
                 return (l < x1 + (this.helperProportions.width / 2)
 +
                    && x2 - (this.helperProportions.width / 2) < r
 +
                    && t < y1 + (this.helperProportions.height / 2)
 +
                    && y2 - (this.helperProportions.height / 2) < b);
 
             }
 
             }
 
         },
 
         },
         _intersectsWithPointer: function(item) {
+
         _intersectsWithPointer: function (item) {
             var isOverElementHeight = (this.options.axis === 'x') || $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
+
             var isOverElementHeight = (this.options.axis === 'x') || $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), isOverElementWidth = (this.options.axis === 'y') || $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), isOverElement = isOverElementHeight && isOverElementWidth, verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection();
                isOverElementWidth = (this.options.axis === 'y') || $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
+
             if (!isOverElement)
                isOverElement = isOverElementHeight && isOverElementWidth,
+
                return false;
                verticalDirection = this._getDragVerticalDirection(),
+
             return this.floating ?
                horizontalDirection = this._getDragHorizontalDirection();
+
                (((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1)
             if (!isOverElement) return false;
+
                : (verticalDirection && (verticalDirection == "down" ? 2 : 1));
             return this.floating ? (((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1) : (verticalDirection && (verticalDirection == "down" ? 2 : 1));
 
 
         },
 
         },
         _intersectsWithSides: function(item) {
+
         _intersectsWithSides: function (item) {
             var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height / 2), item.height),
+
             var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height / 2), item.height), isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width / 2), item.width), verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection();
                isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width / 2), item.width),
 
                verticalDirection = this._getDragVerticalDirection(),
 
                horizontalDirection = this._getDragHorizontalDirection();
 
 
             if (this.floating && horizontalDirection) {
 
             if (this.floating && horizontalDirection) {
 
                 return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
 
                 return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
             } else {
+
             }
 +
            else {
 
                 return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
 
                 return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
 
             }
 
             }
 
         },
 
         },
         _getDragVerticalDirection: function() {
+
         _getDragVerticalDirection: function () {
 
             var delta = this.positionAbs.top - this.lastPositionAbs.top;
 
             var delta = this.positionAbs.top - this.lastPositionAbs.top;
 
             return delta != 0 && (delta > 0 ? "down" : "up");
 
             return delta != 0 && (delta > 0 ? "down" : "up");
 
         },
 
         },
         _getDragHorizontalDirection: function() {
+
         _getDragHorizontalDirection: function () {
 
             var delta = this.positionAbs.left - this.lastPositionAbs.left;
 
             var delta = this.positionAbs.left - this.lastPositionAbs.left;
 
             return delta != 0 && (delta > 0 ? "right" : "left");
 
             return delta != 0 && (delta > 0 ? "right" : "left");
 
         },
 
         },
         refresh: function(event) {
+
         refresh: function (event) {
 
             this._refreshItems(event);
 
             this._refreshItems(event);
 
             this.refreshPositions();
 
             this.refreshPositions();
 
             return this;
 
             return this;
 
         },
 
         },
         _connectWith: function() {
+
         _connectWith: function () {
 
             var options = this.options;
 
             var options = this.options;
             return options.connectWith.constructor == String ? [options.connectWith] : options.connectWith;
+
             return options.connectWith.constructor == String
 +
                ? [options.connectWith]
 +
                : options.connectWith;
 
         },
 
         },
         _getItemsAsjQuery: function(connected) {
+
         _getItemsAsjQuery: function (connected) {
 
             var items = [];
 
             var items = [];
 
             var queries = [];
 
             var queries = [];
第2,867行: 第2,788行:
 
                         var inst = $.data(cur[j], this.widgetName);
 
                         var inst = $.data(cur[j], this.widgetName);
 
                         if (inst && inst != this && !inst.options.disabled) {
 
                         if (inst && inst != this && !inst.options.disabled) {
                             queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
+
                             queries.push([typeof inst.options.items === 'function' ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
 
                         }
 
                         }
                     };
+
                     }
                 };
+
                    ;
 +
                 }
 +
                ;
 
             }
 
             }
             queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
+
             queries.push([typeof this.options.items === 'function' ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
                options: this.options,
 
                item: this.currentItem
 
            }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
 
 
             for (var i = queries.length - 1; i >= 0; i--) {
 
             for (var i = queries.length - 1; i >= 0; i--) {
                 queries[i][0].each(function() {
+
                 queries[i][0].each(function () {
 
                     items.push(this);
 
                     items.push(this);
 
                 });
 
                 });
             };
+
             }
 +
            ;
 
             return $(items);
 
             return $(items);
 
         },
 
         },
         _removeCurrentsFromItems: function() {
+
         _removeCurrentsFromItems: function () {
 
             var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
 
             var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
             this.items = $.grep(this.items, function(item) {
+
             this.items = $.grep(this.items, function (item) {
                 for (
+
                 for (var j = 0; j < list.length; j++) {
                    var j = 0; j < list.length; j++) {
+
                     if (list[j] == item.item[0])
                     if (list[j] == item.item[0]) return false;
+
                        return false;
                 };
+
                 }
 +
                ;
 
                 return true;
 
                 return true;
 
             });
 
             });
 
         },
 
         },
         _refreshItems: function(event) {
+
         _refreshItems: function (event) {
 
             this.items = [];
 
             this.items = [];
 
             this.containers = [this];
 
             this.containers = [this];
 
             var items = this.items;
 
             var items = this.items;
             var queries = [
+
             var queries = [[typeof this.options.items === 'function' ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
                [$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, {
 
                    item: this.currentItem
 
                }) : $(this.options.items, this.element), this]
 
            ];
 
 
             var connectWith = this._connectWith();
 
             var connectWith = this._connectWith();
 
             if (connectWith && this.ready) {
 
             if (connectWith && this.ready) {
第2,909行: 第2,827行:
 
                         var inst = $.data(cur[j], this.widgetName);
 
                         var inst = $.data(cur[j], this.widgetName);
 
                         if (inst && inst != this && !inst.options.disabled) {
 
                         if (inst && inst != this && !inst.options.disabled) {
                             queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, {
+
                             queries.push([typeof inst.options.items === 'function' ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
                                item: this.currentItem
 
                            }) : $(inst.options.items, inst.element), inst]);
 
 
                             this.containers.push(inst);
 
                             this.containers.push(inst);
 
                         }
 
                         }
                     };
+
                     }
                 };
+
                    ;
 +
                 }
 +
                ;
 
             }
 
             }
 
             for (var i = queries.length - 1; i >= 0; i--) {
 
             for (var i = queries.length - 1; i >= 0; i--) {
第2,926行: 第2,844行:
 
                         item: item,
 
                         item: item,
 
                         instance: targetData,
 
                         instance: targetData,
                         width: 0,
+
                         width: 0, height: 0,
                        height: 0,
+
                         left: 0, top: 0
                         left: 0,
 
                        top: 0
 
 
                     });
 
                     });
                 };
+
                 }
             };
+
                ;
 +
             }
 +
            ;
 
         },
 
         },
         refreshPositions: function(fast) {
+
         refreshPositions: function (fast) {
 
             if (this.offsetParent && this.helper) {
 
             if (this.offsetParent && this.helper) {
 
                 this.offset.parent = this._getParentOffset();
 
                 this.offset.parent = this._getParentOffset();
第2,940行: 第2,858行:
 
             for (var i = this.items.length - 1; i >= 0; i--) {
 
             for (var i = this.items.length - 1; i >= 0; i--) {
 
                 var item = this.items[i];
 
                 var item = this.items[i];
                 if (item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0]) continue;
+
                 if (item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])
 +
                    continue;
 
                 var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
 
                 var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
 
                 if (!fast) {
 
                 if (!fast) {
第2,949行: 第2,868行:
 
                 item.left = p.left;
 
                 item.left = p.left;
 
                 item.top = p.top;
 
                 item.top = p.top;
             };
+
             }
 +
            ;
 
             if (this.options.custom && this.options.custom.refreshContainers) {
 
             if (this.options.custom && this.options.custom.refreshContainers) {
 
                 this.options.custom.refreshContainers.call(this);
 
                 this.options.custom.refreshContainers.call(this);
             } else {
+
             }
 +
            else {
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
 
                 for (var i = this.containers.length - 1; i >= 0; i--) {
 
                     var p = this.containers[i].element.offset();
 
                     var p = this.containers[i].element.offset();
第2,958行: 第2,879行:
 
                     this.containers[i].containerCache.top = p.top;
 
                     this.containers[i].containerCache.top = p.top;
 
                     this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
 
                     this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
                     this.containers[i].containerCache.height = this.containers[i]
+
                     this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
                        .element.outerHeight();
+
                 }
                 };
+
                ;
 
             }
 
             }
 
             return this;
 
             return this;
 
         },
 
         },
         _createPlaceholder: function(that) {
+
         _createPlaceholder: function (that) {
 
             that = that || this;
 
             that = that || this;
 
             var o = that.options;
 
             var o = that.options;
第2,970行: 第2,891行:
 
                 var className = o.placeholder;
 
                 var className = o.placeholder;
 
                 o.placeholder = {
 
                 o.placeholder = {
                     element: function() {
+
                     element: function () {
                         var el = $(document.createElement(that.currentItem[0].nodeName)).addClass(className || that.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
+
                         var el = $(document.createElement(that.currentItem[0].nodeName))
                         if (!className) el.style.visibility = "hidden";
+
                            .addClass(className || that.currentItem[0].className + " ui-sortable-placeholder")
 +
                            .removeClass("ui-sortable-helper")[0];
 +
                         if (!className)
 +
                            el.style.visibility = "hidden";
 
                         return el;
 
                         return el;
 
                     },
 
                     },
                     update: function(container, p) {
+
                     update: function (container, p) {
                         if (className && !o.forcePlaceholderSize) return;
+
                         if (className && !o.forcePlaceholderSize)
 +
                            return;
 
                         if (!p.height()) {
 
                         if (!p.height()) {
 
                             p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css('paddingTop') || 0, 10) - parseInt(that.currentItem.css('paddingBottom') || 0, 10));
 
                             p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css('paddingTop') || 0, 10) - parseInt(that.currentItem.css('paddingBottom') || 0, 10));
                         };
+
                         }
 +
                        ;
 
                         if (!p.width()) {
 
                         if (!p.width()) {
 
                             p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css('paddingLeft') || 0, 10) - parseInt(that.currentItem.css('paddingRight') || 0, 10));
 
                             p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css('paddingLeft') || 0, 10) - parseInt(that.currentItem.css('paddingRight') || 0, 10));
                         };
+
                         }
 +
                        ;
 
                     }
 
                     }
 
                 };
 
                 };
第2,990行: 第2,917行:
 
             o.placeholder.update(that, that.placeholder);
 
             o.placeholder.update(that, that.placeholder);
 
         },
 
         },
         _contactContainers: function(event) {
+
         _contactContainers: function (event) {
             var innermostContainer = null,
+
             var innermostContainer = null, innermostIndex = null;
                innermostIndex = null;
 
 
             for (var i = this.containers.length - 1; i >= 0; i--) {
 
             for (var i = this.containers.length - 1; i >= 0; i--) {
                 if ($.contains(this.currentItem[0], this.containers[i].element[0])) continue;
+
                 if ($.contains(this.currentItem[0], this.containers[i].element[0]))
 +
                    continue;
 
                 if (this._intersectsWith(this.containers[i].containerCache)) {
 
                 if (this._intersectsWith(this.containers[i].containerCache)) {
                     if (innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) continue;
+
                     if (innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0]))
 +
                        continue;
 
                     innermostContainer = this.containers[i];
 
                     innermostContainer = this.containers[i];
 
                     innermostIndex = i;
 
                     innermostIndex = i;
                 } else {
+
                 }
 +
                else {
 
                     if (this.containers[i].containerCache.over) {
 
                     if (this.containers[i].containerCache.over) {
 
                         this.containers[i]._trigger("out", event, this._uiHash(this));
 
                         this.containers[i]._trigger("out", event, this._uiHash(this));
第3,006行: 第2,935行:
 
                 }
 
                 }
 
             }
 
             }
             if (!innermostContainer) return;
+
             if (!innermostContainer)
 +
                return;
 
             if (this.containers.length === 1) {
 
             if (this.containers.length === 1) {
 
                 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
 
                 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
 
                 this.containers[innermostIndex].containerCache.over = 1;
 
                 this.containers[innermostIndex].containerCache.over = 1;
             } else {
+
             }
 +
            else {
 
                 var dist = 10000;
 
                 var dist = 10000;
 
                 var itemWithLeastDistance = null;
 
                 var itemWithLeastDistance = null;
 
                 var posProperty = this.containers[innermostIndex].floating ? 'left' : 'top';
 
                 var posProperty = this.containers[innermostIndex].floating ? 'left' : 'top';
 
                 var sizeProperty = this.containers[innermostIndex].floating ? 'width' : 'height';
 
                 var sizeProperty = this.containers[innermostIndex].floating ? 'width' : 'height';
                 var base = this.
+
                 var base = this.positionAbs[posProperty] + this.offset.click[posProperty];
                positionAbs[posProperty] + this.offset.click[posProperty];
 
 
                 for (var j = this.items.length - 1; j >= 0; j--) {
 
                 for (var j = this.items.length - 1; j >= 0; j--) {
                     if (!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;
+
                     if (!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0]))
                     if (this.items[j].item[0] == this.currentItem[0]) continue;
+
                        continue;
 +
                     if (this.items[j].item[0] == this.currentItem[0])
 +
                        continue;
 
                     var cur = this.items[j].item.offset()[posProperty];
 
                     var cur = this.items[j].item.offset()[posProperty];
                     var nearBottom = !1;
+
                     var nearBottom = false;
 
                     if (Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)) {
 
                     if (Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)) {
                         nearBottom = !0;
+
                         nearBottom = true;
 
                         cur += this.items[j][sizeProperty];
 
                         cur += this.items[j][sizeProperty];
 
                     }
 
                     }
第3,032行: 第2,964行:
 
                     }
 
                     }
 
                 }
 
                 }
                 if (!itemWithLeastDistance && !this.options.dropOnEmpty) return;
+
                 if (!itemWithLeastDistance && !this.options.dropOnEmpty)
 +
                    return;
 
                 this.currentContainer = this.containers[innermostIndex];
 
                 this.currentContainer = this.containers[innermostIndex];
 
                 itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
 
                 itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
 
                 this._trigger("change", event, this._uiHash());
 
                 this._trigger("change", event, this._uiHash());
 
                 this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
 
                 this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
                 this.options.placeholder.update(this.currentContainer,
+
                 this.options.placeholder.update(this.currentContainer, this.placeholder);
                    this.placeholder);
 
 
                 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
 
                 this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
 
                 this.containers[innermostIndex].containerCache.over = 1;
 
                 this.containers[innermostIndex].containerCache.over = 1;
 
             }
 
             }
 
         },
 
         },
         _createHelper: function(event) {
+
         _createHelper: function (event) {
 
             var o = this.options;
 
             var o = this.options;
             var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
+
             var helper = typeof o.helper === 'function' ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
             if (!helper.parents('body').length) $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
+
             if (!helper.parents('body').length)
             if (helper[0] == this.currentItem[0]) this._storedCSS = {
+
                $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
                width: this.currentItem[0].style.width,
+
             if (helper[0] == this.currentItem[0])
                height: this.currentItem[0].style.height,
+
                this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
                position: this.currentItem.css("position"),
+
             if (helper[0].style.width == '' || o.forceHelperSize)
                top: this.currentItem.css("top"),
+
                helper.width(this.currentItem.width());
                left: this.currentItem.css("left")
+
             if (helper[0].style.height == '' || o.forceHelperSize)
            };
+
                helper.height(this.currentItem.height());
             if (helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
 
             if (helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
 
 
             return helper;
 
             return helper;
 
         },
 
         },
         _adjustOffsetFromHelper: function(obj) {
+
         _adjustOffsetFromHelper: function (obj) {
 
             if (typeof obj == 'string') {
 
             if (typeof obj == 'string') {
 
                 obj = obj.split(' ');
 
                 obj = obj.split(' ');
 
             }
 
             }
             if ($.isArray(obj)) {
+
             if (Array.isArray(obj)) {
                 obj = {
+
                 obj = { left: +obj[0], top: +obj[1] || 0 };
                    left: +obj[0],
 
                    top: +obj[1] || 0
 
                };
 
 
             }
 
             }
 
             if ('left' in obj) {
 
             if ('left' in obj) {
第3,081行: 第3,008行:
 
             }
 
             }
 
         },
 
         },
         _getParentOffset: function() {
+
         _getParentOffset: function () {
 
             this.offsetParent = this.helper.offsetParent();
 
             this.offsetParent = this.helper.offsetParent();
 
             var po = this.offsetParent.offset();
 
             var po = this.offsetParent.offset();
第3,088行: 第3,015行:
 
                 po.top += this.scrollParent.scrollTop();
 
                 po.top += this.scrollParent.scrollTop();
 
             }
 
             }
             if ((this.offsetParent[0] == document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie)) po = {
+
             if ((this.offsetParent[0] == document.body)
                top: 0,
+
                || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie))
                left: 0
+
                po = { top: 0, left: 0 };
            };
 
 
             return {
 
             return {
 
                 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
 
                 top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
第3,097行: 第3,023行:
 
             };
 
             };
 
         },
 
         },
         _getRelativeOffset: function() {
+
         _getRelativeOffset: function () {
 
             if (this.cssPosition == "relative") {
 
             if (this.cssPosition == "relative") {
 
                 var p = this.currentItem.position();
 
                 var p = this.currentItem.position();
第3,104行: 第3,030行:
 
                     left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
 
                     left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
 
                 };
 
                 };
             } else {
+
             }
                 return {
+
            else {
                    top: 0,
+
                 return { top: 0, left: 0 };
                    left: 0
 
                };
 
 
             }
 
             }
 
         },
 
         },
         _cacheMargins: function() {
+
         _cacheMargins: function () {
 
             this.margins = {
 
             this.margins = {
 
                 left: (parseInt(this.currentItem.css("marginLeft"), 10) || 0),
 
                 left: (parseInt(this.currentItem.css("marginLeft"), 10) || 0),
第3,117行: 第3,041行:
 
             };
 
             };
 
         },
 
         },
         _cacheHelperProportions: function() {
+
         _cacheHelperProportions: function () {
 
             this.helperProportions = {
 
             this.helperProportions = {
 
                 width: this.helper.outerWidth(),
 
                 width: this.helper.outerWidth(),
第3,123行: 第3,047行:
 
             };
 
             };
 
         },
 
         },
         _setContainment: function() {
+
         _setContainment: function () {
 
             var o = this.options;
 
             var o = this.options;
             if (o.containment == 'parent') o.containment = this.helper[0].parentNode;
+
             if (o.containment == 'parent')
             if (o.containment == 'document' || o.containment == 'window') this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, ($(o.containment == 'document' ?
+
                o.containment = this.helper[0].parentNode;
                document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
+
             if (o.containment == 'document' || o.containment == 'window')
 +
                this.containment = [
 +
                    0 - this.offset.relative.left - this.offset.parent.left,
 +
                    0 - this.offset.relative.top - this.offset.parent.top,
 +
                    $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
 +
                    ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
 +
                ];
 
             if (!(/^(document|window|parent)$/).test(o.containment)) {
 
             if (!(/^(document|window|parent)$/).test(o.containment)) {
 
                 var ce = $(o.containment)[0];
 
                 var ce = $(o.containment)[0];
 
                 var co = $(o.containment).offset();
 
                 var co = $(o.containment).offset();
 
                 var over = ($(ce).css("overflow") != 'hidden');
 
                 var over = ($(ce).css("overflow") != 'hidden');
                 this.containment = [co.left + (parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0) - this.margins.left, co.top + (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0) - this.margins.top, co.left + (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, co.top + (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top];
+
                 this.containment = [
 +
                    co.left + (parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0) - this.margins.left,
 +
                    co.top + (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0) - this.margins.top,
 +
                    co.left + (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left,
 +
                    co.top + (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top
 +
                ];
 
             }
 
             }
 
         },
 
         },
         _convertPositionTo: function(d, pos) {
+
         _convertPositionTo: function (d, pos) {
             if (!pos) pos = this.
+
             if (!pos)
            position;
+
                pos = this.position;
 
             var mod = d == "absolute" ? 1 : -1;
 
             var mod = d == "absolute" ? 1 : -1;
             var o = this.options,
+
             var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
                scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
 
                scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
 
 
             return {
 
             return {
                 top: (pos.top + this.offset.relative.top * mod + this.offset.parent.top * mod - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
+
                 top: (pos.top
                 left: (pos.left + this.offset.relative.left * mod + this.offset.parent.left * mod - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
+
                    + this.offset.relative.top * mod
 +
                    + this.offset.parent.top * mod
 +
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
 +
                 left: (pos.left
 +
                    + this.offset.relative.left * mod
 +
                    + this.offset.parent.left * mod
 +
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
 
             };
 
             };
 
         },
 
         },
         _generatePosition: function(event) {
+
         _generatePosition: function (event) {
             var o = this.options,
+
             var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
                scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
+
             if (this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
                scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
 
             if (this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] !=
 
                    this.offsetParent[0])) {
 
 
                 this.offset.relative = this._getRelativeOffset();
 
                 this.offset.relative = this._getRelativeOffset();
 
             }
 
             }
第3,159行: 第3,095行:
 
             if (this.originalPosition) {
 
             if (this.originalPosition) {
 
                 if (this.containment) {
 
                 if (this.containment) {
                     if (event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
+
                     if (event.pageX - this.offset.click.left < this.containment[0])
                     if (event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
+
                        pageX = this.containment[0] + this.offset.click.left;
                     if (event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
+
                     if (event.pageY - this.offset.click.top < this.containment[1])
                     if (event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
+
                        pageY = this.containment[1] + this.offset.click.top;
 +
                     if (event.pageX - this.offset.click.left > this.containment[2])
 +
                        pageX = this.containment[2] + this.offset.click.left;
 +
                     if (event.pageY - this.offset.click.top > this.containment[3])
 +
                        pageY = this.containment[3] + this.offset.click.top;
 
                 }
 
                 }
 
                 if (o.grid) {
 
                 if (o.grid) {
第3,168行: 第3,108行:
 
                     pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
 
                     pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
 
                     var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
 
                     var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
                     pageX = this.
+
                     pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
                    containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
 
 
                 }
 
                 }
 
             }
 
             }
 
             return {
 
             return {
                 top: (pageY - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
+
                 top: (pageY
                 left: (pageX - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
+
                    - this.offset.click.top
 +
                    - this.offset.relative.top
 +
                    - this.offset.parent.top
 +
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
 +
                 left: (pageX
 +
                    - this.offset.click.left
 +
                    - this.offset.relative.left
 +
                    - this.offset.parent.left
 +
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
 
             };
 
             };
 
         },
 
         },
         _rearrange: function(event, i, a, hardRefresh) {
+
         _rearrange: function (event, i, a, hardRefresh) {
 
             a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
 
             a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
 
             this.counter = this.counter ? ++this.counter : 1;
 
             this.counter = this.counter ? ++this.counter : 1;
 
             var counter = this.counter;
 
             var counter = this.counter;
             this._delay(function() {
+
             this._delay(function () {
                 if (counter == this.counter) this.refreshPositions(!hardRefresh);
+
                 if (counter == this.counter)
 +
                    this.refreshPositions(!hardRefresh);
 
             });
 
             });
 
         },
 
         },
         _clear: function(event, noPropagation) {
+
         _clear: function (event, noPropagation) {
             this.reverting = !1;
+
             this.reverting = false;
 
             var delayedTriggers = [];
 
             var delayedTriggers = [];
             if (!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem);
+
             if (!this._noFinalSort && this.currentItem.parent().length)
 +
                this.placeholder.before(this.currentItem);
 
             this._noFinalSort = null;
 
             this._noFinalSort = null;
 
             if (this.helper[0] == this.currentItem[0]) {
 
             if (this.helper[0] == this.currentItem[0]) {
 
                 for (var i in this._storedCSS) {
 
                 for (var i in this._storedCSS) {
                     if (this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
+
                     if (this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static')
 +
                        this._storedCSS[i] = '';
 
                 }
 
                 }
 
                 this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
 
                 this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
             } else {
+
             }
 +
            else {
 
                 this.currentItem.show();
 
                 this.currentItem.show();
 
             }
 
             }
             if (this.fromOutside && !noPropagation) delayedTriggers.push(function(event) {
+
             if (this.fromOutside && !noPropagation)
                this._trigger("receive", event, this._uiHash(this.fromOutside));
+
                delayedTriggers.push(function (event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
            });
+
             if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation)
             if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) {
+
                delayedTriggers.push(function (event) { this._trigger("update", event, this._uiHash()); });
                this._trigger("update", event, this._uiHash());
 
            });
 
 
             if (this !== this.currentContainer) {
 
             if (this !== this.currentContainer) {
 
                 if (!noPropagation) {
 
                 if (!noPropagation) {
                     delayedTriggers.push(function(event) {
+
                     delayedTriggers.push(function (event) { this._trigger("remove", event, this._uiHash()); });
                        this._trigger("remove", event, this._uiHash());
+
                     delayedTriggers.push((function (c) { return function (event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
                    });
+
                     delayedTriggers.push((function (c) { return function (event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
                     delayedTriggers.push((function(c) {
 
                        return function(event) {
 
                            c._trigger(
 
                                "receive", event, this._uiHash(this));
 
                        };
 
                    }).call(this, this.currentContainer));
 
                     delayedTriggers.push((function(c) {
 
                        return function(event) {
 
                            c._trigger("update", event, this._uiHash(this));
 
                        };
 
                    }).call(this, this.currentContainer));
 
 
                 }
 
                 }
 
             }
 
             }
 
             for (var i = this.containers.length - 1; i >= 0; i--) {
 
             for (var i = this.containers.length - 1; i >= 0; i--) {
                 if (!noPropagation) delayedTriggers.push((function(c) {
+
                 if (!noPropagation)
                    return function(event) {
+
                    delayedTriggers.push((function (c) { return function (event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
                        c._trigger("deactivate", event, this._uiHash(this));
 
                    };
 
                }).call(this, this.containers[i]));
 
 
                 if (this.containers[i].containerCache.over) {
 
                 if (this.containers[i].containerCache.over) {
                     delayedTriggers.push((function(c) {
+
                     delayedTriggers.push((function (c) { return function (event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
                        return function(event) {
 
                            c._trigger("out", event, this._uiHash(this));
 
                        };
 
                    }).call(this, this.containers[i]));
 
 
                     this.containers[i].containerCache.over = 0;
 
                     this.containers[i].containerCache.over = 0;
 
                 }
 
                 }
 
             }
 
             }
             if (this._storedCursor) $('body').css("cursor", this._storedCursor);
+
             if (this._storedCursor)
             if (this._storedOpacity) this.helper.css("opacity", this._storedOpacity);
+
                $('body').css("cursor", this._storedCursor);
             if (this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex);
+
             if (this._storedOpacity)
             this.dragging = !1;
+
                this.helper.css("opacity", this._storedOpacity);
 +
             if (this._storedZIndex)
 +
                this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex);
 +
             this.dragging = false;
 
             if (this.cancelHelperRemoval) {
 
             if (this.cancelHelperRemoval) {
 
                 if (!noPropagation) {
 
                 if (!noPropagation) {
 
                     this._trigger("beforeStop", event, this._uiHash());
 
                     this._trigger("beforeStop", event, this._uiHash());
                     for (
+
                     for (var i = 0; i < delayedTriggers.length; i++) {
                        var i = 0; i < delayedTriggers.length; i++) {
 
 
                         delayedTriggers[i].call(this, event);
 
                         delayedTriggers[i].call(this, event);
                     };
+
                     }
 +
                    ;
 
                     this._trigger("stop", event, this._uiHash());
 
                     this._trigger("stop", event, this._uiHash());
 
                 }
 
                 }
                 this.fromOutside = !1;
+
                 this.fromOutside = false;
 
                 return false;
 
                 return false;
 
             }
 
             }
             if (!noPropagation) this._trigger("beforeStop", event, this._uiHash());
+
             if (!noPropagation)
 +
                this._trigger("beforeStop", event, this._uiHash());
 
             this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
 
             this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
             if (this.helper[0] != this.currentItem[0]) this.helper.remove();
+
             if (this.helper[0] != this.currentItem[0])
 +
                this.helper.remove();
 
             this.helper = null;
 
             this.helper = null;
 
             if (!noPropagation) {
 
             if (!noPropagation) {
 
                 for (var i = 0; i < delayedTriggers.length; i++) {
 
                 for (var i = 0; i < delayedTriggers.length; i++) {
 
                     delayedTriggers[i].call(this, event);
 
                     delayedTriggers[i].call(this, event);
                 };
+
                 }
 +
                ;
 
                 this._trigger("stop", event, this._uiHash());
 
                 this._trigger("stop", event, this._uiHash());
 
             }
 
             }
             this.fromOutside = !1;
+
             this.fromOutside = false;
 
             return true;
 
             return true;
 
         },
 
         },
         _trigger: function() {
+
         _trigger: function () {
 
             if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
 
             if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
 
                 this.cancel();
 
                 this.cancel();
 
             }
 
             }
 
         },
 
         },
         _uiHash: function(_inst) {
+
         _uiHash: function (_inst) {
 
             var inst = _inst || this;
 
             var inst = _inst || this;
 
             return {
 
             return {
第3,284行: 第3,221行:
 
         }
 
         }
 
     });
 
     });
})(jQuery);;
+
})(jQuery);
(jQuery.effects || (function($, undefined) {
+
;
     var backCompat = $.uiBackCompat !== !1,
+
(jQuery.effects || (function ($, undefined) {
        dataSpace =
+
     var backCompat = $.uiBackCompat !== false, dataSpace = "ui-effects-";
        "ui-effects-";
 
 
     $.effects = {
 
     $.effects = {
 
         effect: {}
 
         effect: {}
 
     };
 
     };
     (function(jQuery, undefined) {
+
     (function (jQuery, undefined) {
         var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "),
+
         var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "), rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, stringParsers = [{
            rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
 
            stringParsers = [{
 
 
                 re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
 
                 re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
                 parse: function(execResult) {
+
                 parse: function (execResult) {
                     return [execResult[1], execResult[2], execResult[3], execResult[4]];
+
                     return [
 +
                        execResult[1],
 +
                        execResult[2],
 +
                        execResult[3],
 +
                        execResult[4]
 +
                    ];
 
                 }
 
                 }
 
             }, {
 
             }, {
 
                 re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
 
                 re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
                 parse: function(execResult) {
+
                 parse: function (execResult) {
                     return [execResult[1] * 2.55, execResult[2] * 2.55, execResult[3] * 2.55, execResult[4]];
+
                     return [
 +
                        execResult[1] * 2.55,
 +
                        execResult[2] * 2.55,
 +
                        execResult[3] * 2.55,
 +
                        execResult[4]
 +
                    ];
 
                 }
 
                 }
 
             }, {
 
             }, {
 
                 re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
 
                 re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
                 parse: function(execResult) {
+
                 parse: function (execResult) {
                     return [parseInt(execResult[1], 16), parseInt(execResult[2], 16), parseInt(execResult[3], 16)];
+
                     return [
 +
                        parseInt(execResult[1], 16),
 +
                        parseInt(execResult[2], 16),
 +
                        parseInt(execResult[3], 16)
 +
                    ];
 
                 }
 
                 }
 
             }, {
 
             }, {
 
                 re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
 
                 re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
                 parse: function(execResult) {
+
                 parse: function (execResult) {
                     return [parseInt(execResult[1] + execResult[1], 16), parseInt(
+
                     return [
                        execResult[2] + execResult[2], 16), parseInt(execResult[3] + execResult[3], 16)];
+
                        parseInt(execResult[1] + execResult[1], 16),
 +
                        parseInt(execResult[2] + execResult[2], 16),
 +
                        parseInt(execResult[3] + execResult[3], 16)
 +
                    ];
 
                 }
 
                 }
 
             }, {
 
             }, {
 
                 re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
 
                 re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
 
                 space: "hsla",
 
                 space: "hsla",
                 parse: function(execResult) {
+
                 parse: function (execResult) {
                     return [execResult[1], execResult[2] / 100, execResult[3] / 100, execResult[4]];
+
                     return [
 +
                        execResult[1],
 +
                        execResult[2] / 100,
 +
                        execResult[3] / 100,
 +
                        execResult[4]
 +
                    ];
 +
                }
 +
            }], color = jQuery.Color = function (color, green, blue, alpha) {
 +
            return new jQuery.Color.fn.parse(color, green, blue, alpha);
 +
        }, spaces = {
 +
            rgba: {
 +
                props: {
 +
                    red: {
 +
                        idx: 0,
 +
                        type: "byte"
 +
                    },
 +
                    green: {
 +
                        idx: 1,
 +
                        type: "byte"
 +
                    },
 +
                    blue: {
 +
                        idx: 2,
 +
                        type: "byte"
 +
                    }
 
                 }
 
                 }
            }],
 
            color = jQuery.Color = function(color, green, blue, alpha) {
 
                return new jQuery.Color.fn.parse(color, green, blue, alpha);
 
 
             },
 
             },
             spaces = {
+
             hsla: {
                 rgba: {
+
                 props: {
                     props: {
+
                     hue: {
                         red: {
+
                         idx: 0,
                            idx: 0,
+
                         type: "degrees"
                            type: "byte"
+
                     },
                        },
+
                     saturation: {
                        green: {
+
                         idx: 1,
                            idx: 1,
+
                         type: "percent"
                            type: "byte"
+
                    },
                        },
+
                    lightness: {
                         blue: {
+
                        idx: 2,
                            idx: 2,
+
                        type: "percent"
                            type: "byte"
 
                        }
 
                     }
 
                },
 
                hsla: {
 
                     props: {
 
                         hue: {
 
                            idx: 0,
 
                            type: "degrees"
 
                         },
 
                        saturation: {
 
                            idx: 1,
 
                            type: "percent"
 
                        },
 
                        lightness: {
 
                            idx: 2,
 
                            type: "percent"
 
                        }
 
 
                     }
 
                     }
 
                 }
 
                 }
 +
            }
 +
        }, propTypes = {
 +
            "byte": {
 +
                floor: true,
 +
                max: 255
 
             },
 
             },
             propTypes = {
+
             "percent": {
                "byte": {
+
                 max: 1
                    floor: !0,
 
                    max: 255
 
                },
 
                 "percent": {
 
                    max: 1
 
                },
 
                "degrees": {
 
                    mod: 360,
 
                    floor: !0
 
                }
 
 
             },
 
             },
             support = color.support = {},
+
             "degrees": {
            supportElem = jQuery("<p>")[0],
+
                mod: 360,
            colors, each = jQuery.each;
+
                floor: true
 +
            }
 +
        }, support = color.support = {}, supportElem = jQuery("<p>")[0], colors, each = jQuery.each;
 
         supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
 
         supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
 
         support.rgba = supportElem.style.backgroundColor.indexOf("rgba") > -1;
 
         support.rgba = supportElem.style.backgroundColor.indexOf("rgba") > -1;
         each(spaces, function(spaceName, space) {
+
         each(spaces, function (spaceName, space) {
 
             space.cache = "_" + spaceName;
 
             space.cache = "_" + spaceName;
 
             space.props.alpha = {
 
             space.props.alpha = {
第3,386行: 第3,336行:
 
             };
 
             };
 
         });
 
         });
 
 
         function clamp(value, prop, allowEmpty) {
 
         function clamp(value, prop, allowEmpty) {
 
             var type = propTypes[prop.type] || {};
 
             var type = propTypes[prop.type] || {};
第3,401行: 第3,350行:
 
             return 0 > value ? 0 : type.max < value ? type.max : value;
 
             return 0 > value ? 0 : type.max < value ? type.max : value;
 
         }
 
         }
 
 
         function stringParse(string) {
 
         function stringParse(string) {
             var inst = color(),
+
             var inst = color(), rgba = inst._rgba = [];
                rgba = inst._rgba = [];
 
 
             string = string.toLowerCase();
 
             string = string.toLowerCase();
             each(stringParsers, function(i, parser) {
+
             each(stringParsers, function (i, parser) {
                 var parsed, match = parser.re.exec(string),
+
                 var parsed, match = parser.re.exec(string), values = match && parser.parse(match), spaceName = parser.space || "rgba";
                    values = match && parser.parse(match),
 
                    spaceName = parser.space || "rgba";
 
 
                 if (values) {
 
                 if (values) {
 
                     parsed = inst[spaceName](values);
 
                     parsed = inst[spaceName](values);
第3,426行: 第3,371行:
 
         }
 
         }
 
         color.fn = jQuery.extend(color.prototype, {
 
         color.fn = jQuery.extend(color.prototype, {
             parse: function(red, green, blue, alpha) {
+
             parse: function (red, green, blue, alpha) {
 
                 if (red === undefined) {
 
                 if (red === undefined) {
 
                     this._rgba = [null, null, null, null];
 
                     this._rgba = [null, null, null, null];
 
                     return this;
 
                     return this;
 
                 }
 
                 }
                 if (red.jquery ||
+
                 if (red.jquery || red.nodeType) {
                    red.nodeType) {
 
 
                     red = jQuery(red).css(green);
 
                     red = jQuery(red).css(green);
 
                     green = undefined;
 
                     green = undefined;
 
                 }
 
                 }
                 var inst = this,
+
                 var inst = this, type = jQuery.type(red), rgba = this._rgba = [];
                    type = jQuery.type(red),
 
                    rgba = this._rgba = [];
 
 
                 if (green !== undefined) {
 
                 if (green !== undefined) {
 
                     red = [red, green, blue, alpha];
 
                     red = [red, green, blue, alpha];
第3,447行: 第3,389行:
 
                 }
 
                 }
 
                 if (type === "array") {
 
                 if (type === "array") {
                     each(spaces.rgba.props, function(key, prop) {
+
                     each(spaces.rgba.props, function (key, prop) {
 
                         rgba[prop.idx] = clamp(red[prop.idx], prop);
 
                         rgba[prop.idx] = clamp(red[prop.idx], prop);
 
                     });
 
                     });
第3,454行: 第3,396行:
 
                 if (type === "object") {
 
                 if (type === "object") {
 
                     if (red instanceof color) {
 
                     if (red instanceof color) {
                         each(spaces, function(spaceName, space) {
+
                         each(spaces, function (spaceName, space) {
 
                             if (red[space.cache]) {
 
                             if (red[space.cache]) {
 
                                 inst[space.cache] = red[space.cache].slice();
 
                                 inst[space.cache] = red[space.cache].slice();
 
                             }
 
                             }
 
                         });
 
                         });
                     } else {
+
                     }
                         each(spaces, function(spaceName, space) {
+
                    else {
 +
                         each(spaces, function (spaceName, space) {
 
                             var cache = space.cache;
 
                             var cache = space.cache;
                             each(space.props, function(key, prop) {
+
                             each(space.props, function (key, prop) {
 
                                 if (!inst[cache] && space.to) {
 
                                 if (!inst[cache] && space.to) {
 
                                     if (key === "alpha" || red[key] == null) {
 
                                     if (key === "alpha" || red[key] == null) {
第3,482行: 第3,425行:
 
                 }
 
                 }
 
             },
 
             },
             is: function(compare) {
+
             is: function (compare) {
                 var is = color(compare),
+
                 var is = color(compare), same = true, inst = this;
                    same = !0,
+
                 each(spaces, function (_, space) {
                    inst = this;
+
                    var localCache, isCache = is[space.cache];
                 each(spaces,
+
                    if (isCache) {
                    function(_, space) {
+
                        localCache = inst[space.cache] || space.to && space.to(inst._rgba) || [];
                        var localCache, isCache = is[space.cache];
+
                        each(space.props, function (_, prop) {
                        if (isCache) {
+
                            if (isCache[prop.idx] != null) {
                            localCache = inst[space.cache] || space.to && space.to(inst._rgba) || [];
+
                                same = (isCache[prop.idx] === localCache[prop.idx]);
                            each(space.props, function(_, prop) {
+
                                return same;
                                if (isCache[prop.idx] != null) {
+
                            }
                                    same = (isCache[prop.idx] === localCache[prop.idx]);
+
                        });
                                    return same;
+
                    }
                                }
+
                    return same;
                            });
+
                });
                        }
 
                        return same;
 
                    });
 
 
                 return same;
 
                 return same;
 
             },
 
             },
             _space: function() {
+
             _space: function () {
                 var used = [],
+
                 var used = [], inst = this;
                    inst = this;
+
                 each(spaces, function (spaceName, space) {
                 each(spaces, function(spaceName, space) {
 
 
                     if (inst[space.cache]) {
 
                     if (inst[space.cache]) {
 
                         used.push(spaceName);
 
                         used.push(spaceName);
第3,512行: 第3,451行:
 
                 return used.pop();
 
                 return used.pop();
 
             },
 
             },
             transition: function(other, distance) {
+
             transition: function (other, distance) {
                 var end = color(other),
+
                 var end = color(other), spaceName = end._space(), space = spaces[spaceName], startColor = this.alpha() === 0 ? color("transparent") : this, start = startColor[space.cache] || space.to(startColor._rgba), result = start.slice();
                    spaceName = end._space(),
 
                    space = spaces[spaceName],
 
                    startColor = this.alpha() === 0 ? color("transparent") : this,
 
                    start = startColor[space.cache] || space.to(startColor._rgba),
 
                    result = start.slice();
 
 
                 end = end[space.cache];
 
                 end = end[space.cache];
                 each(space.props, function(key, prop) {
+
                 each(space.props, function (key, prop) {
                     var index = prop.idx,
+
                     var index = prop.idx, startValue = start[index], endValue = end[index], type = propTypes[prop.type] || {};
                        startValue = start[index],
 
                        endValue = end[index],
 
                        type = propTypes[prop.type] || {};
 
 
                     if (endValue === null) {
 
                     if (endValue === null) {
 
                         return;
 
                         return;
第3,530行: 第3,461行:
 
                     if (startValue === null) {
 
                     if (startValue === null) {
 
                         result[index] = endValue;
 
                         result[index] = endValue;
                     } else {
+
                     }
 +
                    else {
 
                         if (type.mod) {
 
                         if (type.mod) {
 
                             if (endValue - startValue > type.mod / 2) {
 
                             if (endValue - startValue > type.mod / 2) {
 
                                 startValue += type.mod;
 
                                 startValue += type.mod;
                             } else if (startValue - endValue >
+
                             }
                                type.mod / 2) {
+
                            else if (startValue - endValue > type.mod / 2) {
 
                                 startValue -= type.mod;
 
                                 startValue -= type.mod;
 
                             }
 
                             }
第3,544行: 第3,476行:
 
                 return this[spaceName](result);
 
                 return this[spaceName](result);
 
             },
 
             },
             blend: function(opaque) {
+
             blend: function (opaque) {
 
                 if (this._rgba[3] === 1) {
 
                 if (this._rgba[3] === 1) {
 
                     return this;
 
                     return this;
 
                 }
 
                 }
                 var rgb = this._rgba.slice(),
+
                 var rgb = this._rgba.slice(), a = rgb.pop(), blend = color(opaque)._rgba;
                    a = rgb.pop(),
+
                 return color(jQuery.map(rgb, function (v, i) {
                    blend = color(opaque)._rgba;
 
                 return color(jQuery.map(rgb, function(v, i) {
 
 
                     return (1 - a) * blend[i] + a * v;
 
                     return (1 - a) * blend[i] + a * v;
 
                 }));
 
                 }));
 
             },
 
             },
             toRgbaString: function() {
+
             toRgbaString: function () {
                 var prefix = "rgba(",
+
                 var prefix = "rgba(", rgba = jQuery.map(this._rgba, function (v, i) {
                    rgba = jQuery.map(this._rgba, function(v, i) {
+
                    return v == null ? (i > 2 ? 1 : 0) : v;
                        return v == null ? (i > 2 ? 1 : 0) : v;
+
                });
                    });
 
 
                 if (rgba[3] === 1) {
 
                 if (rgba[3] === 1) {
 
                     rgba.pop();
 
                     rgba.pop();
第3,566行: 第3,495行:
 
                 return prefix + rgba.join() + ")";
 
                 return prefix + rgba.join() + ")";
 
             },
 
             },
             toHslaString: function() {
+
             toHslaString: function () {
                 var prefix = "hsla(",
+
                 var prefix = "hsla(", hsla = jQuery.map(this.hsla(), function (v, i) {
                    hsla = jQuery.map(this.hsla(), function(v, i) {
+
                    if (v == null) {
                        if (v == null) {
+
                        v = i > 2 ? 1 : 0;
                            v = i > 2 ? 1 : 0;
+
                    }
                        }
+
                    if (i && i < 3) {
                        if (i && i < 3) {
+
                        v = Math.round(v * 100) + "%";
                            v = Math.round(v * 100) + "%";
+
                    }
                        }
+
                    return v;
                        return v;
+
                });
                    });
 
 
                 if (hsla[3] === 1) {
 
                 if (hsla[3] === 1) {
 
                     hsla.pop();
 
                     hsla.pop();
第3,583行: 第3,511行:
 
                 return prefix + hsla.join() + ")";
 
                 return prefix + hsla.join() + ")";
 
             },
 
             },
             toHexString: function(includeAlpha) {
+
             toHexString: function (includeAlpha) {
                 var rgba = this._rgba.slice(),
+
                 var rgba = this._rgba.slice(), alpha = rgba.pop();
                    alpha = rgba.pop();
 
 
                 if (includeAlpha) {
 
                 if (includeAlpha) {
 
                     rgba.push(~~(alpha * 255));
 
                     rgba.push(~~(alpha * 255));
 
                 }
 
                 }
                 return "#" + jQuery.map(rgba, function(v) {
+
                 return "#" + jQuery.map(rgba, function (v) {
 
                     v = (v || 0).toString(16);
 
                     v = (v || 0).toString(16);
 
                     return v.length === 1 ? "0" + v : v;
 
                     return v.length === 1 ? "0" + v : v;
 
                 }).join("");
 
                 }).join("");
 
             },
 
             },
             toString: function() {
+
             toString: function () {
 
                 return this._rgba[3] === 0 ? "transparent" : this.toRgbaString();
 
                 return this._rgba[3] === 0 ? "transparent" : this.toRgbaString();
 
             }
 
             }
 
         });
 
         });
 
         color.fn.parse.prototype = color.fn;
 
         color.fn.parse.prototype = color.fn;
 
 
         function hue2rgb(p, q, h) {
 
         function hue2rgb(p, q, h) {
 
             h = (h + 1) % 1;
 
             h = (h + 1) % 1;
第3,613行: 第3,539行:
 
             return p;
 
             return p;
 
         }
 
         }
         spaces.hsla.to = function(rgba) {
+
         spaces.hsla.to = function (rgba) {
 
             if (rgba[0] == null || rgba[1] == null || rgba[2] == null) {
 
             if (rgba[0] == null || rgba[1] == null || rgba[2] == null) {
 
                 return [null, null, null, rgba[3]];
 
                 return [null, null, null, rgba[3]];
 
             }
 
             }
             var r = rgba[0] / 255,
+
             var r = rgba[0] / 255, g = rgba[1] / 255, b = rgba[2] / 255, a = rgba[3], max = Math.max(r, g, b), min = Math.min(r, g, b), diff = max - min, add = max + min, l = add * 0.5, h, s;
                g = rgba[1] / 255,
 
                b = rgba[2] / 255,
 
                a = rgba[3],
 
                max = Math.max(r, g, b),
 
                min = Math.min(r, g, b),
 
                diff = max - min,
 
                add = max + min,
 
                l = add * 0.5,
 
                h, s;
 
 
             if (min === max) {
 
             if (min === max) {
 
                 h = 0;
 
                 h = 0;
             } else if (r === max) {
+
             }
 +
            else if (r === max) {
 
                 h = (60 * (g - b) / diff) + 360;
 
                 h = (60 * (g - b) / diff) + 360;
             } else if (g === max) {
+
             }
 +
            else if (g === max) {
 
                 h = (60 * (b - r) / diff) + 120;
 
                 h = (60 * (b - r) / diff) + 120;
             } else {
+
             }
                 h = (60 * (r - g) / diff) + 240;
+
            else {
 +
                 h = (60 * (r - g) / diff) + 240;
 
             }
 
             }
 
             if (l === 0 || l === 1) {
 
             if (l === 0 || l === 1) {
 
                 s = l;
 
                 s = l;
             } else if (l <= 0.5) {
+
             }
 +
            else if (l <= 0.5) {
 
                 s = diff / add;
 
                 s = diff / add;
             } else {
+
             }
 +
            else {
 
                 s = diff / (2 - add);
 
                 s = diff / (2 - add);
 
             }
 
             }
 
             return [Math.round(h) % 360, s, l, a == null ? 1 : a];
 
             return [Math.round(h) % 360, s, l, a == null ? 1 : a];
 
         };
 
         };
         spaces.hsla.from = function(hsla) {
+
         spaces.hsla.from = function (hsla) {
 
             if (hsla[0] == null || hsla[1] == null || hsla[2] == null) {
 
             if (hsla[0] == null || hsla[1] == null || hsla[2] == null) {
 
                 return [null, null, null, hsla[3]];
 
                 return [null, null, null, hsla[3]];
 
             }
 
             }
             var h = hsla[0] / 360,
+
             var h = hsla[0] / 360, s = hsla[1], l = hsla[2], a = hsla[3], q = l <= 0.5 ? l * (1 + s) : l + s - l * s, p = 2 * l - q;
                s = hsla[1],
+
             return [
                l = hsla[2],
+
                Math.round(hue2rgb(p, q, h + (1 / 3)) * 255),
                a = hsla[3],
+
                Math.round(hue2rgb(p, q, h) * 255),
                q = l <= 0.5 ? l * (1 + s) : l + s - l * s,
+
                Math.round(hue2rgb(p, q, h - (1 / 3)) * 255),
                p = 2 * l - q;
+
                a
             return [Math.round(hue2rgb(p, q, h + (1 / 3)) * 255), Math.round(hue2rgb(p, q, h) * 255), Math.round(
+
            ];
                hue2rgb(p, q, h - (1 / 3)) * 255), a];
 
 
         };
 
         };
         each(spaces, function(spaceName, space) {
+
         each(spaces, function (spaceName, space) {
             var props = space.props,
+
             var props = space.props, cache = space.cache, to = space.to, from = space.from;
                cache = space.cache,
+
             color.fn[spaceName] = function (value) {
                to = space.to,
 
                from = space.from;
 
             color.fn[spaceName] = function(value) {
 
 
                 if (to && !this[cache]) {
 
                 if (to && !this[cache]) {
 
                     this[cache] = to(this._rgba);
 
                     this[cache] = to(this._rgba);
第3,670行: 第3,588行:
 
                     return this[cache].slice();
 
                     return this[cache].slice();
 
                 }
 
                 }
                 var ret, type = jQuery.type(value),
+
                 var ret, type = jQuery.type(value), arr = (type === "array" || type === "object") ? value : arguments, local = this[cache].slice();
                    arr = (type === "array" || type === "object") ? value : arguments,
+
                 each(props, function (key, prop) {
                    local = this[cache].slice();
 
                 each(props, function(key, prop) {
 
 
                     var val = arr[type === "object" ? key : prop.idx];
 
                     var val = arr[type === "object" ? key : prop.idx];
 
                     if (val == null) {
 
                     if (val == null) {
第3,684行: 第3,600行:
 
                     ret[cache] = local;
 
                     ret[cache] = local;
 
                     return ret;
 
                     return ret;
                 } else {
+
                 }
 +
                else {
 
                     return color(local);
 
                     return color(local);
 
                 }
 
                 }
 
             };
 
             };
             each(props, function(key, prop) {
+
             each(props, function (key, prop) {
 
                 if (color.fn[key]) {
 
                 if (color.fn[key]) {
 
                     return;
 
                     return;
 
                 }
 
                 }
                 color.fn[key] = function(value) {
+
                 color.fn[key] = function (value) {
                     var vtype = jQuery.type(value),
+
                     var vtype = jQuery.type(value), fn = (key === "alpha" ? (this._hsla ? "hsla" : "rgba") : spaceName), local = this[fn](), cur = local[prop.idx], match;
                        fn = (key === "alpha" ? (this._hsla ? "hsla" : "rgba") : spaceName),
 
                        local = this[fn](),
 
                        cur = local[prop.idx],
 
                        match;
 
 
                     if (vtype === "undefined") {
 
                     if (vtype === "undefined") {
 
                         return cur;
 
                         return cur;
第3,708行: 第3,621行:
 
                         return this;
 
                         return this;
 
                     }
 
                     }
                     if (vtype ===
+
                     if (vtype === "string") {
                        "string") {
 
 
                         match = rplusequals.exec(value);
 
                         match = rplusequals.exec(value);
 
                         if (match) {
 
                         if (match) {
第3,720行: 第3,632行:
 
             });
 
             });
 
         });
 
         });
         each(stepHooks, function(i, hook) {
+
         each(stepHooks, function (i, hook) {
 
             jQuery.cssHooks[hook] = {
 
             jQuery.cssHooks[hook] = {
                 set: function(elem, value) {
+
                 set: function (elem, value) {
 
                     var parsed, curElem, backgroundColor = "";
 
                     var parsed, curElem, backgroundColor = "";
 
                     if (jQuery.type(value) !== "string" || (parsed = stringParse(value))) {
 
                     if (jQuery.type(value) !== "string" || (parsed = stringParse(value))) {
第3,728行: 第3,640行:
 
                         if (!support.rgba && value._rgba[3] !== 1) {
 
                         if (!support.rgba && value._rgba[3] !== 1) {
 
                             curElem = hook === "backgroundColor" ? elem.parentNode : elem;
 
                             curElem = hook === "backgroundColor" ? elem.parentNode : elem;
                             while ((backgroundColor === "" || backgroundColor === "transparent") && curElem && curElem.style) {
+
                             while ((backgroundColor === "" || backgroundColor === "transparent") &&
 +
                                curElem && curElem.style) {
 
                                 try {
 
                                 try {
 
                                     backgroundColor = jQuery.css(curElem, "backgroundColor");
 
                                     backgroundColor = jQuery.css(curElem, "backgroundColor");
 
                                     curElem = curElem.parentNode;
 
                                     curElem = curElem.parentNode;
                                 } catch (e) {}
+
                                 }
 +
                                catch (e) {
 +
                                }
 
                             }
 
                             }
                             value = value.blend(backgroundColor && backgroundColor !== "transparent" ? backgroundColor : "_default");
+
                             value = value.blend(backgroundColor && backgroundColor !== "transparent" ?
 +
                                backgroundColor :
 +
                                "_default");
 
                         }
 
                         }
 
                         value = value.toRgbaString();
 
                         value = value.toRgbaString();
第3,740行: 第3,657行:
 
                     try {
 
                     try {
 
                         elem.style[hook] = value;
 
                         elem.style[hook] = value;
                     } catch (error) {}
+
                     }
 +
                    catch (error) {
 +
                    }
 
                 }
 
                 }
 
             };
 
             };
             jQuery.fx.step[hook] = function(fx) {
+
             jQuery.fx.step[hook] = function (fx) {
 
                 if (!fx.colorInit) {
 
                 if (!fx.colorInit) {
 
                     fx.start = color(fx.elem, hook);
 
                     fx.start = color(fx.elem, hook);
 
                     fx.end = color(fx.end);
 
                     fx.end = color(fx.end);
                     fx.colorInit = !0;
+
                     fx.colorInit = true;
 
                 }
 
                 }
 
                 jQuery.cssHooks[hook].set(fx.elem, fx.start.transition(fx.end, fx.pos));
 
                 jQuery.cssHooks[hook].set(fx.elem, fx.start.transition(fx.end, fx.pos));
第3,753行: 第3,672行:
 
         });
 
         });
 
         jQuery.cssHooks.borderColor = {
 
         jQuery.cssHooks.borderColor = {
             expand: function(value) {
+
             expand: function (value) {
 
                 var expanded = {};
 
                 var expanded = {};
                 each(["Top", "Right", "Bottom", "Left"], function(i, part) {
+
                 each(["Top", "Right", "Bottom", "Left"], function (i, part) {
 
                     expanded["border" + part + "Color"] = value;
 
                     expanded["border" + part + "Color"] = value;
 
                 });
 
                 });
第3,782行: 第3,701行:
 
         };
 
         };
 
     })(jQuery);
 
     })(jQuery);
     (function() {
+
     (function () {
         var classAnimationActions = ["add", "remove", "toggle"],
+
         var classAnimationActions = ["add", "remove", "toggle"], shorthandStyles = {
            shorthandStyles = {
+
            border: 1,
                border: 1,
+
            borderBottom: 1,
                borderBottom: 1,
+
            borderColor: 1,
                borderColor: 1,
+
            borderLeft: 1,
                borderLeft: 1,
+
            borderRight: 1,
                borderRight: 1,
+
            borderTop: 1,
                borderTop: 1,
+
            borderWidth: 1,
                borderWidth: 1,
+
            margin: 1,
                margin: 1,
+
            padding: 1
                padding: 1
+
        };
            };
+
         $.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function (_, prop) {
         $.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(_, prop) {
+
             $.fx.step[prop] = function (fx) {
             $.fx.step[prop] = function(fx) {
 
 
                 if (fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr) {
 
                 if (fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr) {
 
                     jQuery.style(fx.elem, prop, fx.end);
 
                     jQuery.style(fx.elem, prop, fx.end);
                     fx.setAttr = !0;
+
                     fx.setAttr = true;
 
                 }
 
                 }
 
             };
 
             };
 
         });
 
         });
 
 
         function getElementStyles() {
 
         function getElementStyles() {
             var
+
             var style = this.ownerDocument.defaultView ?
                style = this.ownerDocument.defaultView ? this.ownerDocument.defaultView.getComputedStyle(this, null) : this.currentStyle,
+
                this.ownerDocument.defaultView.getComputedStyle(this, null) :
                newStyle = {},
+
                this.currentStyle, newStyle = {}, key, len;
                key, len;
 
 
             if (style && style.length && style[0] && style[style[0]]) {
 
             if (style && style.length && style[0] && style[style[0]]) {
 
                 len = style.length;
 
                 len = style.length;
第3,817行: 第3,733行:
 
                     }
 
                     }
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 for (key in style) {
 
                 for (key in style) {
 
                     if (typeof style[key] === "string") {
 
                     if (typeof style[key] === "string") {
第3,826行: 第3,743行:
 
             return newStyle;
 
             return newStyle;
 
         }
 
         }
 
 
         function styleDifference(oldStyle, newStyle) {
 
         function styleDifference(oldStyle, newStyle) {
             var diff = {},
+
             var diff = {}, name, value;
                name, value;
 
 
             for (name in newStyle) {
 
             for (name in newStyle) {
 
                 value = newStyle[name];
 
                 value = newStyle[name];
第3,842行: 第3,757行:
 
             return diff;
 
             return diff;
 
         }
 
         }
         $.effects.animateClass = function(value, duration, easing, callback) {
+
         $.effects.animateClass = function (value, duration, easing, callback) {
 
             var o = $.speed(duration, easing, callback);
 
             var o = $.speed(duration, easing, callback);
             return this.queue(function() {
+
             return this.queue(function () {
                 var animated = $(this),
+
                 var animated = $(this), baseClass = animated.attr("class") || "", applyClassChange, allAnimations = o.children ? animated.find("*").addBack() : animated;
                    baseClass = animated.attr("class") || "",
+
                 allAnimations = allAnimations.map(function () {
                    applyClassChange, allAnimations = o.children ? animated.find("*").andSelf() : animated;
 
                 allAnimations = allAnimations.map(function() {
 
 
                     var el = $(this);
 
                     var el = $(this);
 
                     return {
 
                     return {
第3,855行: 第3,768行:
 
                     };
 
                     };
 
                 });
 
                 });
                 applyClassChange = function() {
+
                 applyClassChange = function () {
                     $.each(classAnimationActions, function(i, action) {
+
                     $.each(classAnimationActions, function (i, action) {
 
                         if (value[action]) {
 
                         if (value[action]) {
 
                             animated[action + "Class"](value[action]);
 
                             animated[action + "Class"](value[action]);
第3,863行: 第3,776行:
 
                 };
 
                 };
 
                 applyClassChange();
 
                 applyClassChange();
                 allAnimations = allAnimations.map(function() {
+
                 allAnimations = allAnimations.map(function () {
 
                     this.end = getElementStyles.call(this.el[0]);
 
                     this.end = getElementStyles.call(this.el[0]);
 
                     this.diff = styleDifference(this.start, this.end);
 
                     this.diff = styleDifference(this.start, this.end);
第3,869行: 第3,782行:
 
                 });
 
                 });
 
                 animated.attr("class", baseClass);
 
                 animated.attr("class", baseClass);
                 allAnimations = allAnimations.map(function() {
+
                 allAnimations = allAnimations.map(function () {
                     var styleInfo = this,
+
                     var styleInfo = this, dfd = $.Deferred(), opts = jQuery.extend({}, o, {
                        dfd = $.Deferred(),
+
                        queue: false,
                        opts = jQuery.extend({}, o, {
+
                        complete: function () {
                            queue: !1,
+
                            dfd.resolve(styleInfo);
                            complete: function() {
+
                        }
                                dfd.resolve(styleInfo);
+
                    });
                            }
 
                        });
 
 
                     this.el.animate(this.diff, opts);
 
                     this.el.animate(this.diff, opts);
 
                     return dfd.promise();
 
                     return dfd.promise();
 
                 });
 
                 });
                 $.when.apply($, allAnimations.get()).done(function() {
+
                 $.when.apply($, allAnimations.get()).done(function () {
 
                     applyClassChange();
 
                     applyClassChange();
                     $.each(arguments, function() {
+
                     $.each(arguments, function () {
 
                         var el = this.el;
 
                         var el = this.el;
                         $.each(this.diff, function(key) {
+
                         $.each(this.diff, function (key) {
 
                             el.css(key, '');
 
                             el.css(key, '');
 
                         });
 
                         });
第3,895行: 第3,806行:
 
         $.fn.extend({
 
         $.fn.extend({
 
             _addClass: $.fn.addClass,
 
             _addClass: $.fn.addClass,
             addClass: function(classNames, speed, easing, callback) {
+
             addClass: function (classNames, speed, easing, callback) {
                 return speed ? $.effects.animateClass.call(this, {
+
                 return speed ?
                    add: classNames
+
                    $.effects.animateClass.call(this, { add: classNames }, speed, easing, callback) :
                }, speed, easing, callback) : this._addClass(classNames);
+
                    this._addClass(classNames);
 
             },
 
             },
 
             _removeClass: $.fn.removeClass,
 
             _removeClass: $.fn.removeClass,
             removeClass: function(classNames, speed, easing, callback) {
+
             removeClass: function (classNames, speed, easing, callback) {
                 return speed ? $.effects.animateClass.call(this, {
+
                 return speed ?
                    remove: classNames
+
                    $.effects.animateClass.call(this, { remove: classNames }, speed, easing, callback) :
                }, speed, easing, callback) : this._removeClass(classNames);
+
                    this._removeClass(classNames);
 
             },
 
             },
 
             _toggleClass: $.fn.toggleClass,
 
             _toggleClass: $.fn.toggleClass,
             toggleClass: function(classNames, force, speed, easing, callback) {
+
             toggleClass: function (classNames, force, speed, easing, callback) {
 
                 if (typeof force === "boolean" || force === undefined) {
 
                 if (typeof force === "boolean" || force === undefined) {
 
                     if (!speed) {
 
                     if (!speed) {
 
                         return this._toggleClass(classNames, force);
 
                         return this._toggleClass(classNames, force);
                    } else {
 
                        return $.effects.animateClass.call(this, (force ? {
 
                            add: classNames
 
                        } : {
 
                            remove: classNames
 
                        }), speed, easing, callback);
 
 
                     }
 
                     }
                 } else {
+
                    else {
                     return $.effects.animateClass.call(this, {
+
                        return $.effects.animateClass.call(this, (force ? { add: classNames } : { remove: classNames }), speed, easing, callback);
                        toggle: classNames
+
                    }
                    }, force, speed, easing);
+
                 }
 +
                else {
 +
                     return $.effects.animateClass.call(this, { toggle: classNames }, force, speed, easing);
 
                 }
 
                 }
 
             },
 
             },
             switchClass: function(remove, add, speed, easing, callback) {
+
             switchClass: function (remove, add, speed, easing, callback) {
 
                 return $.effects.animateClass.call(this, {
 
                 return $.effects.animateClass.call(this, {
 
                     add: add,
 
                     add: add,
第3,932行: 第3,839行:
 
         });
 
         });
 
     })();
 
     })();
     (function() {
+
     (function () {
 
         $.extend($.effects, {
 
         $.extend($.effects, {
 
             version: "1.9.2",
 
             version: "1.9.2",
             save: function(element, set) {
+
             save: function (element, set) {
 
                 for (var i = 0; i < set.length; i++) {
 
                 for (var i = 0; i < set.length; i++) {
 
                     if (set[i] !== null) {
 
                     if (set[i] !== null) {
第3,942行: 第3,849行:
 
                 }
 
                 }
 
             },
 
             },
             restore: function(element, set) {
+
             restore: function (element, set) {
 
                 var val, i;
 
                 var val, i;
 
                 for (i = 0; i < set.length; i++) {
 
                 for (i = 0; i < set.length; i++) {
第3,954行: 第3,861行:
 
                 }
 
                 }
 
             },
 
             },
             setMode: function(el, mode) {
+
             setMode: function (el, mode) {
 
                 if (mode === "toggle") {
 
                 if (mode === "toggle") {
 
                     mode = el.is(":hidden") ? "show" : "hide";
 
                     mode = el.is(":hidden") ? "show" : "hide";
第3,960行: 第3,867行:
 
                 return mode;
 
                 return mode;
 
             },
 
             },
             getBaseline: function(origin, original) {
+
             getBaseline: function (origin, original) {
 
                 var y, x;
 
                 var y, x;
 
                 switch (origin[0]) {
 
                 switch (origin[0]) {
第3,972行: 第3,879行:
 
                         y = 1;
 
                         y = 1;
 
                         break;
 
                         break;
                     default:
+
                     default: y = origin[0] / original.height;
                        y = origin[0] / original.height;
 
 
                 }
 
                 }
 
                 switch (origin[1]) {
 
                 switch (origin[1]) {
第3,985行: 第3,891行:
 
                         x = 1;
 
                         x = 1;
 
                         break;
 
                         break;
                     default:
+
                     default: x = origin[1] / original.width;
                        x = origin[1] / original.width;
 
 
                 }
 
                 }
 
                 return {
 
                 return {
第3,993行: 第3,898行:
 
                 };
 
                 };
 
             },
 
             },
             createWrapper: function(element) {
+
             createWrapper: function (element) {
 
                 if (element.parent().is(".ui-effects-wrapper")) {
 
                 if (element.parent().is(".ui-effects-wrapper")) {
 
                     return element.parent();
 
                     return element.parent();
 
                 }
 
                 }
 
                 var props = {
 
                 var props = {
                        width: element.outerWidth(true),
+
                    width: element.outerWidth(true),
                        height: element.outerHeight(true),
+
                    height: element.outerHeight(true),
                        "float": element.css("float")
+
                    "float": element.css("float")
                    },
+
                }, wrapper = $("<div></div>")
                    wrapper = $("<div></div>").addClass("ui-effects-wrapper").css({
+
                    .addClass("ui-effects-wrapper")
                        fontSize: "100%",
+
                    .css({
                        background: "transparent",
+
                    fontSize: "100%",
                        border: "none",
+
                    background: "transparent",
                        margin: 0,
+
                    border: "none",
                        padding: 0
+
                    margin: 0,
                    }),
+
                    padding: 0
                    size = {
+
                }), size = {
                        width: element.width(),
+
                    width: element.width(),
                        height: element.height()
+
                    height: element.height()
                    },
+
                }, active = document.activeElement;
                    active = document.activeElement;
 
 
                 try {
 
                 try {
 
                     active.id;
 
                     active.id;
                 } catch (e) {
+
                 }
 +
                catch (e) {
 
                     active = document.body;
 
                     active = document.body;
 
                 }
 
                 }
                 element.
+
                 element.wrap(wrapper);
                wrap(wrapper);
 
 
                 if (element[0] === active || $.contains(element[0], active)) {
 
                 if (element[0] === active || $.contains(element[0], active)) {
 
                     $(active).focus();
 
                     $(active).focus();
第4,026行: 第3,930行:
 
                 wrapper = element.parent();
 
                 wrapper = element.parent();
 
                 if (element.css("position") === "static") {
 
                 if (element.css("position") === "static") {
                     wrapper.css({
+
                     wrapper.css({ position: "relative" });
                        position: "relative"
+
                     element.css({ position: "relative" });
                    });
+
                 }
                     element.css({
+
                else {
                        position: "relative"
 
                    });
 
                 } else {
 
 
                     $.extend(props, {
 
                     $.extend(props, {
 
                         position: element.css("position"),
 
                         position: element.css("position"),
 
                         zIndex: element.css("z-index")
 
                         zIndex: element.css("z-index")
 
                     });
 
                     });
                     $.each(["top", "left", "bottom", "right"], function(i, pos) {
+
                     $.each(["top", "left", "bottom", "right"], function (i, pos) {
 
                         props[pos] = element.css(pos);
 
                         props[pos] = element.css(pos);
 
                         if (isNaN(parseInt(props[pos], 10))) {
 
                         if (isNaN(parseInt(props[pos], 10))) {
第4,054行: 第3,955行:
 
                 return wrapper.css(props).show();
 
                 return wrapper.css(props).show();
 
             },
 
             },
             removeWrapper: function(element) {
+
             removeWrapper: function (element) {
 
                 var active = document.activeElement;
 
                 var active = document.activeElement;
 
                 if (element.parent().is(".ui-effects-wrapper")) {
 
                 if (element.parent().is(".ui-effects-wrapper")) {
第4,064行: 第3,965行:
 
                 return element;
 
                 return element;
 
             },
 
             },
             setTransition: function(element, list, factor, value) {
+
             setTransition: function (element, list, factor, value) {
 
                 value = value || {};
 
                 value = value || {};
                 $.each(list, function(i, x) {
+
                 $.each(list, function (i, x) {
 
                     var unit = element.cssUnit(x);
 
                     var unit = element.cssUnit(x);
 
                     if (unit[0] > 0) {
 
                     if (unit[0] > 0) {
第4,075行: 第3,976行:
 
             }
 
             }
 
         });
 
         });
 
 
         function _normalizeArguments(effect, options, speed, callback) {
 
         function _normalizeArguments(effect, options, speed, callback) {
 
             if ($.isPlainObject(effect)) {
 
             if ($.isPlainObject(effect)) {
第4,081行: 第3,981行:
 
                 effect = effect.effect;
 
                 effect = effect.effect;
 
             }
 
             }
             effect = {
+
             effect = { effect: effect };
                effect: effect
 
            };
 
 
             if (options == null) {
 
             if (options == null) {
 
                 options = {};
 
                 options = {};
 
             }
 
             }
             if ($.isFunction(options)) {
+
             if (typeof options === 'function') {
 
                 callback = options;
 
                 callback = options;
 
                 speed = null;
 
                 speed = null;
第4,097行: 第3,995行:
 
                 options = {};
 
                 options = {};
 
             }
 
             }
             if ($.isFunction(speed)) {
+
             if (typeof speed === 'function') {
 
                 callback = speed;
 
                 callback = speed;
 
                 speed = null;
 
                 speed = null;
第4,105行: 第4,003行:
 
             }
 
             }
 
             speed = speed || options.duration;
 
             speed = speed || options.duration;
             effect.duration = $.fx.off ? 0 : typeof speed === "number" ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
+
             effect.duration = $.fx.off ? 0 :
 +
                typeof speed === "number" ? speed :
 +
                    speed in $.fx.speeds ? $.fx.speeds[speed] :
 +
                        $.fx.speeds._default;
 
             effect.complete = callback || options.complete;
 
             effect.complete = callback || options.complete;
 
             return effect;
 
             return effect;
 
         }
 
         }
 
 
         function standardSpeed(speed) {
 
         function standardSpeed(speed) {
 
             if (!speed || typeof speed === "number" || $.fx.speeds[speed]) {
 
             if (!speed || typeof speed === "number" || $.fx.speeds[speed]) {
第4,123行: 第4,023行:
 
         }
 
         }
 
         $.fn.extend({
 
         $.fn.extend({
             effect: function() {
+
             effect: function () {
                 var args = _normalizeArguments.apply(this, arguments),
+
                 var args = _normalizeArguments.apply(this, arguments), mode = args.mode, queue = args.queue, effectMethod = $.effects.effect[args.effect], oldEffectMethod = !effectMethod && backCompat && $.effects[args.effect];
                    mode = args.mode,
 
                    queue = args.queue,
 
                    effectMethod = $.effects
 
                    .effect[args.effect],
 
                    oldEffectMethod = !effectMethod && backCompat && $.effects[args.effect];
 
 
                 if ($.fx.off || !(effectMethod || oldEffectMethod)) {
 
                 if ($.fx.off || !(effectMethod || oldEffectMethod)) {
 
                     if (mode) {
 
                     if (mode) {
 
                         return this[mode](args.duration, args.complete);
 
                         return this[mode](args.duration, args.complete);
                     } else {
+
                     }
                         return this.each(function() {
+
                    else {
 +
                         return this.each(function () {
 
                             if (args.complete) {
 
                             if (args.complete) {
 
                                 args.complete.call(this);
 
                                 args.complete.call(this);
第4,141行: 第4,037行:
 
                     }
 
                     }
 
                 }
 
                 }
 
 
                 function run(next) {
 
                 function run(next) {
                     var elem = $(this),
+
                     var elem = $(this), complete = args.complete, mode = args.mode;
                        complete = args.complete,
 
                        mode = args.mode;
 
 
 
 
                     function done() {
 
                     function done() {
                         if ($.isFunction(complete)) {
+
                         if (typeof complete === 'function') {
 
                             complete.call(elem[0]);
 
                             complete.call(elem[0]);
 
                         }
 
                         }
                         if ($.isFunction(next)) {
+
                         if (typeof next === 'function') {
 
                             next();
 
                             next();
 
                         }
 
                         }
第4,157行: 第4,049行:
 
                     if (elem.is(":hidden") ? mode === "hide" : mode === "show") {
 
                     if (elem.is(":hidden") ? mode === "hide" : mode === "show") {
 
                         done();
 
                         done();
                     } else {
+
                     }
 +
                    else {
 
                         effectMethod.call(elem[0], args, done);
 
                         effectMethod.call(elem[0], args, done);
 
                     }
 
                     }
 
                 }
 
                 }
 
                 if (effectMethod) {
 
                 if (effectMethod) {
                     return queue === !1 ? this.each(run) : this.queue(queue || "fx", run);
+
                     return queue === false ? this.each(run) : this.queue(queue || "fx", run);
                 } else {
+
                 }
 +
                else {
 
                     return oldEffectMethod.call(this, {
 
                     return oldEffectMethod.call(this, {
 
                         options: args,
 
                         options: args,
第4,173行: 第4,067行:
 
             },
 
             },
 
             _show: $.fn.show,
 
             _show: $.fn.show,
             show: function(speed) {
+
             show: function (speed) {
 
                 if (standardSpeed(speed)) {
 
                 if (standardSpeed(speed)) {
 
                     return this._show.apply(this, arguments);
 
                     return this._show.apply(this, arguments);
                 } else {
+
                 }
 +
                else {
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     args.mode = "show";
 
                     args.mode = "show";
第4,183行: 第4,078行:
 
             },
 
             },
 
             _hide: $.fn.hide,
 
             _hide: $.fn.hide,
             hide: function(speed) {
+
             hide: function (speed) {
 
                 if (standardSpeed(speed)) {
 
                 if (standardSpeed(speed)) {
 
                     return this._hide.apply(this, arguments);
 
                     return this._hide.apply(this, arguments);
                 } else {
+
                 }
 +
                else {
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     args.mode = "hide";
 
                     args.mode = "hide";
第4,193行: 第4,089行:
 
             },
 
             },
 
             __toggle: $.fn.toggle,
 
             __toggle: $.fn.toggle,
             toggle: function(speed) {
+
             toggle: function (speed) {
                 if (standardSpeed(speed) || typeof speed === "boolean" || $.isFunction(speed)) {
+
                 if (standardSpeed(speed) || typeof speed === "boolean" || typeof speed === 'function') {
 
                     return this.__toggle.apply(this, arguments);
 
                     return this.__toggle.apply(this, arguments);
                 } else {
+
                 }
 +
                else {
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     var args = _normalizeArguments.apply(this, arguments);
 
                     args.mode = "toggle";
 
                     args.mode = "toggle";
第4,202行: 第4,099行:
 
                 }
 
                 }
 
             },
 
             },
             cssUnit: function(key) {
+
             cssUnit: function (key) {
                 var style = this.css(key),
+
                 var style = this.css(key), val = [];
                    val = [];
+
                 $.each(["em", "px", "%", "pt"], function (i, unit) {
                 $.each(["em", "px", "%", "pt"], function(i, unit) {
 
 
                     if (style.indexOf(unit) > 0) {
 
                     if (style.indexOf(unit) > 0) {
 
                         val = [parseFloat(style), unit];
 
                         val = [parseFloat(style), unit];
第4,214行: 第4,110行:
 
         });
 
         });
 
     })();
 
     })();
     (function() {
+
     (function () {
 
         var baseEasings = {};
 
         var baseEasings = {};
         $.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(i, name) {
+
         $.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (i, name) {
             baseEasings[name] = function(p) {
+
             baseEasings[name] = function (p) {
 
                 return Math.pow(p, i + 2);
 
                 return Math.pow(p, i + 2);
 
             };
 
             };
 
         });
 
         });
 
         $.extend(baseEasings, {
 
         $.extend(baseEasings, {
             Sine: function(p) {
+
             Sine: function (p) {
 
                 return 1 - Math.cos(p * Math.PI / 2);
 
                 return 1 - Math.cos(p * Math.PI / 2);
 
             },
 
             },
             Circ: function(p) {
+
             Circ: function (p) {
 
                 return 1 - Math.sqrt(1 - p * p);
 
                 return 1 - Math.sqrt(1 - p * p);
 
             },
 
             },
             Elastic: function(p) {
+
             Elastic: function (p) {
                 return p === 0 || p === 1 ? p : -Math.pow(2, 8 * (p - 1)) * Math.sin(((p - 1) * 80 - 7.5) * Math.PI / 15);
+
                 return p === 0 || p === 1 ? p :
 +
                    -Math.pow(2, 8 * (p - 1)) * Math.sin(((p - 1) * 80 - 7.5) * Math.PI / 15);
 
             },
 
             },
             Back: function(p) {
+
             Back: function (p) {
 
                 return p * p * (3 * p - 2);
 
                 return p * p * (3 * p - 2);
 
             },
 
             },
             Bounce: function(p) {
+
             Bounce: function (p) {
 
                 var pow2, bounce = 4;
 
                 var pow2, bounce = 4;
                 while (p < ((pow2 = Math.pow(2, --bounce)) - 1) / 11) {}
+
                 while (p < ((pow2 = Math.pow(2, --bounce)) - 1) / 11) { }
 
                 return 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - p, 2);
 
                 return 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - p, 2);
 
             }
 
             }
 
         });
 
         });
         $.each(baseEasings, function(name, easeIn) {
+
         $.each(baseEasings, function (name, easeIn) {
 
             $.easing["easeIn" + name] = easeIn;
 
             $.easing["easeIn" + name] = easeIn;
             $.easing["easeOut" + name] = function(p) {
+
             $.easing["easeOut" + name] = function (p) {
 
                 return 1 - easeIn(1 - p);
 
                 return 1 - easeIn(1 - p);
 
             };
 
             };
             $.easing["easeInOut" + name] = function(p) {
+
             $.easing["easeInOut" + name] = function (p) {
                 return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn(p * -2 + 2) / 2;
+
                 return p < 0.5 ?
 +
                    easeIn(p * 2) / 2 :
 +
                    1 - easeIn(p * -2 + 2) / 2;
 
             };
 
             };
 
         });
 
         });
 
     })();
 
     })();
 
})(jQuery));
 
})(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
     var uid = 0,
+
     var uid = 0, hideProps = {}, showProps = {};
        hideProps = {},
+
     hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =
        showProps = {};
+
        hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
     hideProps.height = hideProps.paddingTop = hideProps.paddingBottom = hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
+
     showProps.height = showProps.paddingTop = showProps.paddingBottom =
     showProps.height = showProps.paddingTop = showProps.paddingBottom = showProps.borderTopWidth = showProps.borderBottomWidth = "show";
+
        showProps.borderTopWidth = showProps.borderBottomWidth = "show";
 
     $.widget("ui.accordion", {
 
     $.widget("ui.accordion", {
 
         version: "1.9.2",
 
         version: "1.9.2",
第4,262行: 第4,161行:
 
             active: 0,
 
             active: 0,
 
             animate: {},
 
             animate: {},
             collapsible: !1,
+
             collapsible: false,
 
             event: "click",
 
             event: "click",
 
             header: "> li > :first-child,> :not(li):even",
 
             header: "> li > :first-child,> :not(li):even",
第4,273行: 第4,172行:
 
             beforeActivate: null
 
             beforeActivate: null
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             var accordionId = this.accordionId = "ui-accordion-" + (this.element.attr("id") || ++uid),
+
             var accordionId = this.accordionId = "ui-accordion-" +
                options = this.options;
+
                (this.element.attr("id") || ++uid), options = this.options;
 
             this.prevShow = this.prevHide = $();
 
             this.prevShow = this.prevHide = $();
 
             this.element.addClass("ui-accordion ui-widget ui-helper-reset");
 
             this.element.addClass("ui-accordion ui-widget ui-helper-reset");
             this.headers = this.element.find(options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");
+
             this.headers = this.element.find(options.header)
 +
                .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");
 
             this._hoverable(this.headers);
 
             this._hoverable(this.headers);
 
             this._focusable(this.headers);
 
             this._focusable(this.headers);
             this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide();
+
             this.headers.next()
 +
                .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom")
 +
                .hide();
 
             if (!options.collapsible && (options.active === false || options.active == null)) {
 
             if (!options.collapsible && (options.active === false || options.active == null)) {
 
                 options.active = 0;
 
                 options.active = 0;
第4,288行: 第4,190行:
 
                 options.active += this.headers.length;
 
                 options.active += this.headers.length;
 
             }
 
             }
             this.active = this._findActive(options.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top");
+
             this.active = this._findActive(options.active)
             this.active.next().addClass("ui-accordion-content-active").show();
+
                .addClass("ui-accordion-header-active ui-state-active")
 +
                .toggleClass("ui-corner-all ui-corner-top");
 +
             this.active.next()
 +
                .addClass("ui-accordion-content-active")
 +
                .show();
 
             this._createIcons();
 
             this._createIcons();
 
             this.refresh();
 
             this.refresh();
 
             this.element.attr("role", "tablist");
 
             this.element.attr("role", "tablist");
             this.headers.attr("role", "tab").each(function(i) {
+
             this.headers
                 var header = $(this),
+
                .attr("role", "tab")
                    headerId = header.attr("id"),
+
                .each(function (i) {
                    panel = header.next(),
+
                 var header = $(this), headerId = header.attr("id"), panel = header.next(), panelId = panel.attr("id");
                    panelId = panel.attr("id");
 
 
                 if (!headerId) {
 
                 if (!headerId) {
 
                     headerId = accordionId + "-header-" + i;
 
                     headerId = accordionId + "-header-" + i;
第4,308行: 第4,213行:
 
                 header.attr("aria-controls", panelId);
 
                 header.attr("aria-controls", panelId);
 
                 panel.attr("aria-labelledby", headerId);
 
                 panel.attr("aria-labelledby", headerId);
             }).next().attr("role", "tabpanel");
+
             })
             this.headers.not(this.active).attr({
+
                .next()
 +
                .attr("role", "tabpanel");
 +
             this.headers
 +
                .not(this.active)
 +
                .attr({
 
                 "aria-selected": "false",
 
                 "aria-selected": "false",
 
                 tabIndex: -1
 
                 tabIndex: -1
             }).next().attr({
+
             })
 +
                .next()
 +
                .attr({
 
                 "aria-expanded": "false",
 
                 "aria-expanded": "false",
 
                 "aria-hidden": "true"
 
                 "aria-hidden": "true"
             }).hide();
+
             })
 +
                .hide();
 
             if (!this.active.length) {
 
             if (!this.active.length) {
 
                 this.headers.eq(0).attr("tabIndex", 0);
 
                 this.headers.eq(0).attr("tabIndex", 0);
             } else {
+
             }
 +
            else {
 
                 this.active.attr({
 
                 this.active.attr({
 
                     "aria-selected": "true",
 
                     "aria-selected": "true",
 
                     tabIndex: 0
 
                     tabIndex: 0
                 }).next().attr({
+
                 })
 +
                    .next()
 +
                    .attr({
 
                     "aria-expanded": "true",
 
                     "aria-expanded": "true",
 
                     "aria-hidden": "false"
 
                     "aria-hidden": "false"
 
                 });
 
                 });
 
             }
 
             }
             this._on(this.headers, {
+
             this._on(this.headers, { keydown: "_keydown" });
                keydown: "_keydown"
+
             this._on(this.headers.next(), { keydown: "_panelKeyDown" });
            });
+
             this._setupEvents(options.event);
             this._on(this.headers.next(), {
 
                keydown: "_panelKeyDown"
 
            });
 
             this._setupEvents(options.event);
 
 
         },
 
         },
         _getCreateEventData: function() {
+
         _getCreateEventData: function () {
 
             return {
 
             return {
 
                 header: this.active,
 
                 header: this.active,
第4,341行: 第4,252行:
 
             };
 
             };
 
         },
 
         },
         _createIcons: function() {
+
         _createIcons: function () {
 
             var icons = this.options.icons;
 
             var icons = this.options.icons;
 
             if (icons) {
 
             if (icons) {
                 $("<span>").
+
                 $("<span>")
                addClass("ui-accordion-header-icon ui-icon " + icons.header).prependTo(this.headers);
+
                    .addClass("ui-accordion-header-icon ui-icon " + icons.header)
                 this.active.children(".ui-accordion-header-icon").removeClass(icons.header).addClass(icons.activeHeader);
+
                    .prependTo(this.headers);
 +
                 this.active.children(".ui-accordion-header-icon")
 +
                    .removeClass(icons.header)
 +
                    .addClass(icons.activeHeader);
 
                 this.headers.addClass("ui-accordion-icons");
 
                 this.headers.addClass("ui-accordion-icons");
 
             }
 
             }
 
         },
 
         },
         _destroyIcons: function() {
+
         _destroyIcons: function () {
             this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove();
+
             this.headers
 +
                .removeClass("ui-accordion-icons")
 +
                .children(".ui-accordion-header-icon")
 +
                .remove();
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             var contents;
 
             var contents;
             this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");
+
             this.element
             this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function() {
+
                .removeClass("ui-accordion ui-widget ui-helper-reset")
 +
                .removeAttr("role");
 +
             this.headers
 +
                .removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top")
 +
                .removeAttr("role")
 +
                .removeAttr("aria-selected")
 +
                .removeAttr("aria-controls")
 +
                .removeAttr("tabIndex")
 +
                .each(function () {
 
                 if (/^ui-accordion/.test(this.id)) {
 
                 if (/^ui-accordion/.test(this.id)) {
 
                     this.removeAttribute("id");
 
                     this.removeAttribute("id");
第4,362行: 第4,287行:
 
             });
 
             });
 
             this._destroyIcons();
 
             this._destroyIcons();
             contents = this.headers.next().css("display", "").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").
+
             contents = this.headers.next()
            removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function() {
+
                .css("display", "")
 +
                .removeAttr("role")
 +
                .removeAttr("aria-expanded")
 +
                .removeAttr("aria-hidden")
 +
                .removeAttr("aria-labelledby")
 +
                .removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled")
 +
                .each(function () {
 
                 if (/^ui-accordion/.test(this.id)) {
 
                 if (/^ui-accordion/.test(this.id)) {
 
                     this.removeAttribute("id");
 
                     this.removeAttribute("id");
第4,372行: 第4,303行:
 
             }
 
             }
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key === "active") {
 
             if (key === "active") {
 
                 this._activate(value);
 
                 this._activate(value);
第4,394行: 第4,325行:
 
             }
 
             }
 
             if (key === "disabled") {
 
             if (key === "disabled") {
                 this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!value);
+
                 this.headers.add(this.headers.next())
 +
                    .toggleClass("ui-state-disabled", !!value);
 
             }
 
             }
 
         },
 
         },
         _keydown: function(event) {
+
         _keydown: function (event) {
 
             if (event.altKey || event.ctrlKey) {
 
             if (event.altKey || event.ctrlKey) {
 
                 return;
 
                 return;
 
             }
 
             }
             var keyCode = $.ui.keyCode,
+
             var keyCode = $.ui.keyCode, length = this.headers.length, currentIndex = this.headers.index(event.target), toFocus = false;
                length = this.headers.length,
 
                currentIndex = this.headers.index(event.target),
 
                toFocus = !1;
 
 
             switch (event.keyCode) {
 
             switch (event.keyCode) {
 
                 case keyCode.RIGHT:
 
                 case keyCode.RIGHT:
 
                 case keyCode.DOWN:
 
                 case keyCode.DOWN:
                     toFocus = this
+
                     toFocus = this.headers[(currentIndex + 1) % length];
                        .headers[(currentIndex + 1) % length];
 
 
                     break;
 
                     break;
 
                 case keyCode.LEFT:
 
                 case keyCode.LEFT:
第4,433行: 第4,361行:
 
             }
 
             }
 
         },
 
         },
         _panelKeyDown: function(event) {
+
         _panelKeyDown: function (event) {
 
             if (event.keyCode === $.ui.keyCode.UP && event.ctrlKey) {
 
             if (event.keyCode === $.ui.keyCode.UP && event.ctrlKey) {
 
                 $(event.currentTarget).prev().focus();
 
                 $(event.currentTarget).prev().focus();
 
             }
 
             }
 
         },
 
         },
         refresh: function() {
+
         refresh: function () {
             var maxHeight, overflow, heightStyle = this.options.heightStyle,
+
             var maxHeight, overflow, heightStyle = this.options.heightStyle, parent = this.element.parent();
                parent = this.element.parent();
 
 
             if (heightStyle === "fill") {
 
             if (heightStyle === "fill") {
 
                 if (!$.support.minHeight) {
 
                 if (!$.support.minHeight) {
第4,447行: 第4,374行:
 
                 }
 
                 }
 
                 maxHeight = parent.height();
 
                 maxHeight = parent.height();
                 this.element.siblings(":visible").each(function() {
+
                 this.element.siblings(":visible").each(function () {
                     var elem = $(this),
+
                     var elem = $(this), position = elem.css("position");
                        position = elem.css("position");
 
 
                     if (position === "absolute" || position === "fixed") {
 
                     if (position === "absolute" || position === "fixed") {
 
                         return;
 
                         return;
第4,458行: 第4,384行:
 
                     parent.css("overflow", overflow);
 
                     parent.css("overflow", overflow);
 
                 }
 
                 }
                 this.headers.each(function() {
+
                 this.headers.each(function () {
 
                     maxHeight -= $(this).outerHeight(true);
 
                     maxHeight -= $(this).outerHeight(true);
 
                 });
 
                 });
                 this.headers.next().each(function() {
+
                 this.headers.next()
                     $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
+
                    .each(function () {
                 }).css("overflow", "auto");
+
                     $(this).height(Math.max(0, maxHeight -
             } else if (heightStyle === "auto") {
+
                        $(this).innerHeight() + $(this).height()));
 +
                 })
 +
                    .css("overflow", "auto");
 +
             }
 +
            else if (heightStyle === "auto") {
 
                 maxHeight = 0;
 
                 maxHeight = 0;
                 this.headers.next().each(function() {
+
                 this.headers.next()
 +
                    .each(function () {
 
                     maxHeight = Math.max(maxHeight, $(this).css("height", "").height());
 
                     maxHeight = Math.max(maxHeight, $(this).css("height", "").height());
                 }).height(maxHeight);
+
                 })
 +
                    .height(maxHeight);
 
             }
 
             }
 
         },
 
         },
         _activate: function(index) {
+
         _activate: function (index) {
 
             var active = this._findActive(index)[0];
 
             var active = this._findActive(index)[0];
 
             if (active === this.active[0]) {
 
             if (active === this.active[0]) {
第4,483行: 第4,415行:
 
             });
 
             });
 
         },
 
         },
         _findActive: function(selector) {
+
         _findActive: function (selector) {
 
             return typeof selector === "number" ? this.headers.eq(selector) : $();
 
             return typeof selector === "number" ? this.headers.eq(selector) : $();
 
         },
 
         },
         _setupEvents: function(event) {
+
         _setupEvents: function (event) {
 
             var events = {};
 
             var events = {};
 
             if (!event) {
 
             if (!event) {
 
                 return;
 
                 return;
 
             }
 
             }
             $.each(event.split(" "), function(index, eventName) {
+
             $.each(event.split(" "), function (index, eventName) {
 
                 events[eventName] = "_eventHandler";
 
                 events[eventName] = "_eventHandler";
 
             });
 
             });
 
             this._on(this.headers, events);
 
             this._on(this.headers, events);
 
         },
 
         },
         _eventHandler: function(event) {
+
         _eventHandler: function (event) {
             var options = this.options,
+
             var options = this.options, active = this.active, clicked = $(event.currentTarget), clickedIsActive = clicked[0] === active[0], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : clicked.next(), toHide = active.next(), eventData = {
                active = this.active,
+
                oldHeader: active,
                clicked = $(event.currentTarget),
+
                oldPanel: toHide,
                clickedIsActive = clicked[0] === active[0],
+
                newHeader: collapsing ? $() : clicked,
                collapsing = clickedIsActive && options.collapsible,
+
                newPanel: toShow
                toShow = collapsing ? $() : clicked.next(),
+
            };
                toHide = active.next(),
 
                eventData = {
 
                    oldHeader: active,
 
                    oldPanel: toHide,
 
                    newHeader: collapsing ? $() : clicked,
 
                    newPanel: toShow
 
                };
 
 
             event.preventDefault();
 
             event.preventDefault();
             if ((clickedIsActive && !options.collapsible) || (this._trigger("beforeActivate", event, eventData) === false)) {
+
             if ((clickedIsActive && !options.collapsible) ||
 +
                (this._trigger("beforeActivate", event, eventData) === false)) {
 
                 return;
 
                 return;
 
             }
 
             }
第4,519行: 第4,445行:
 
             active.removeClass("ui-accordion-header-active ui-state-active");
 
             active.removeClass("ui-accordion-header-active ui-state-active");
 
             if (options.icons) {
 
             if (options.icons) {
                 active.children(".ui-accordion-header-icon").removeClass(options.icons.activeHeader).addClass(options.icons.header);
+
                 active.children(".ui-accordion-header-icon")
 +
                    .removeClass(options.icons.activeHeader)
 +
                    .addClass(options.icons.header);
 
             }
 
             }
 
             if (!clickedIsActive) {
 
             if (!clickedIsActive) {
                 clicked.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top");
+
                 clicked
 +
                    .removeClass("ui-corner-all")
 +
                    .addClass("ui-accordion-header-active ui-state-active ui-corner-top");
 
                 if (options.icons) {
 
                 if (options.icons) {
                     clicked.children(".ui-accordion-header-icon").removeClass(options.icons.header).addClass(options.icons.activeHeader);
+
                     clicked.children(".ui-accordion-header-icon")
 +
                        .removeClass(options.icons.header)
 +
                        .addClass(options.icons.activeHeader);
 
                 }
 
                 }
                 clicked.next().addClass(
+
                 clicked
                    "ui-accordion-content-active");
+
                    .next()
 +
                    .addClass("ui-accordion-content-active");
 
             }
 
             }
 
         },
 
         },
         _toggle: function(data) {
+
         _toggle: function (data) {
             var toShow = data.newPanel,
+
             var toShow = data.newPanel, toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
                toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
 
 
             this.prevShow.add(this.prevHide).stop(true, true);
 
             this.prevShow.add(this.prevHide).stop(true, true);
 
             this.prevShow = toShow;
 
             this.prevShow = toShow;
第4,538行: 第4,470行:
 
             if (this.options.animate) {
 
             if (this.options.animate) {
 
                 this._animate(toShow, toHide, data);
 
                 this._animate(toShow, toHide, data);
             } else {
+
             }
 +
            else {
 
                 toHide.hide();
 
                 toHide.hide();
 
                 toShow.show();
 
                 toShow.show();
第4,550行: 第4,483行:
 
             if (toShow.length && toHide.length) {
 
             if (toShow.length && toHide.length) {
 
                 toHide.prev().attr("tabIndex", -1);
 
                 toHide.prev().attr("tabIndex", -1);
             } else if (toShow.length) {
+
             }
                 this.headers.filter(function() {
+
            else if (toShow.length) {
 +
                 this.headers.filter(function () {
 
                     return $(this).attr("tabIndex") === 0;
 
                     return $(this).attr("tabIndex") === 0;
                 }).attr("tabIndex", -1);
+
                 })
 +
                    .attr("tabIndex", -1);
 
             }
 
             }
             toShow.attr({
+
             toShow
 +
                .attr({
 
                 "aria-expanded": "true",
 
                 "aria-expanded": "true",
 
                 "aria-hidden": "false"
 
                 "aria-hidden": "false"
             }).prev().attr({
+
             })
 +
                .prev()
 +
                .attr({
 
                 "aria-selected": "true",
 
                 "aria-selected": "true",
 
                 tabIndex: 0
 
                 tabIndex: 0
 
             });
 
             });
 
         },
 
         },
         _animate: function(toShow, toHide, data) {
+
         _animate: function (toShow, toHide, data) {
             var total, easing, duration, that = this,
+
             var total, easing, duration, that = this, adjust = 0, down = toShow.length &&
                adjust = 0,
+
                (!toHide.length || (toShow.index() < toHide.index())), animate = this.options.animate || {}, options = down && animate.down || animate, complete = function () {
                down = toShow.length && (!toHide.length || (toShow.index() < toHide.index())),
+
                that._toggleComplete(data);
                animate = this.options.animate || {},
+
            };
                options = down && animate.down || animate,
 
                complete = function() {
 
                    that.
 
                    _toggleComplete(data);
 
                };
 
 
             if (typeof options === "number") {
 
             if (typeof options === "number") {
 
                 duration = options;
 
                 duration = options;
第4,591行: 第4,524行:
 
                 duration: duration,
 
                 duration: duration,
 
                 easing: easing,
 
                 easing: easing,
                 step: function(now, fx) {
+
                 step: function (now, fx) {
 
                     fx.now = Math.round(now);
 
                     fx.now = Math.round(now);
 
                 }
 
                 }
 
             });
 
             });
             toShow.hide().animate(showProps, {
+
             toShow
 +
                .hide()
 +
                .animate(showProps, {
 
                 duration: duration,
 
                 duration: duration,
 
                 easing: easing,
 
                 easing: easing,
 
                 complete: complete,
 
                 complete: complete,
                 step: function(now, fx) {
+
                 step: function (now, fx) {
 
                     fx.now = Math.round(now);
 
                     fx.now = Math.round(now);
 
                     if (fx.prop !== "height") {
 
                     if (fx.prop !== "height") {
 
                         adjust += fx.now;
 
                         adjust += fx.now;
                     } else if (that.options.heightStyle !== "content") {
+
                     }
 +
                    else if (that.options.heightStyle !== "content") {
 
                         fx.now = Math.round(total - toHide.outerHeight() - adjust);
 
                         fx.now = Math.round(total - toHide.outerHeight() - adjust);
 
                         adjust = 0;
 
                         adjust = 0;
第4,610行: 第4,546行:
 
             });
 
             });
 
         },
 
         },
         _toggleComplete: function(data) {
+
         _toggleComplete: function (data) {
 
             var toHide = data.oldPanel;
 
             var toHide = data.oldPanel;
             toHide.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all");
+
             toHide
 +
                .removeClass("ui-accordion-content-active")
 +
                .prev()
 +
                .removeClass("ui-corner-top")
 +
                .addClass("ui-corner-all");
 
             if (toHide.length) {
 
             if (toHide.length) {
 
                 toHide.parent()[0].className = toHide.parent()[0].className;
 
                 toHide.parent()[0].className = toHide.parent()[0].className;
第4,620行: 第4,560行:
 
     });
 
     });
 
     if ($.uiBackCompat !== false) {
 
     if ($.uiBackCompat !== false) {
         (function($, prototype) {
+
         (function ($, prototype) {
 
             $.extend(prototype.options, {
 
             $.extend(prototype.options, {
                 navigation: !1,
+
                 navigation: false,
                 navigationFilter: function() {
+
                 navigationFilter: function () {
 
                     return this.href.toLowerCase() === location.href.toLowerCase();
 
                     return this.href.toLowerCase() === location.href.toLowerCase();
 
                 }
 
                 }
 
             });
 
             });
 
             var _create = prototype._create;
 
             var _create = prototype._create;
             prototype._create = function() {
+
             prototype._create = function () {
 
                 if (this.options.navigation) {
 
                 if (this.options.navigation) {
                     var that = this,
+
                     var that = this, headers = this.element.find(this.options.header), content = headers.next(), current = headers.add(content)
                        headers = this.element.find(this.options.header),
+
                        .find("a")
                        content = headers.next(),
+
                        .filter(this.options.navigationFilter)[0];
                        current = headers.add(content).find("a").filter(this.options.navigationFilter)[0];
 
 
                     if (current) {
 
                     if (current) {
                         headers.add(content).each(function(index) {
+
                         headers.add(content).each(function (index) {
 
                             if ($.contains(this, current)) {
 
                             if ($.contains(this, current)) {
 
                                 that.options.active = Math.floor(index / 2);
 
                                 that.options.active = Math.floor(index / 2);
第4,646行: 第4,585行:
 
             };
 
             };
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
         (function($, prototype) {
+
         (function ($, prototype) {
 
             $.extend(prototype.options, {
 
             $.extend(prototype.options, {
 
                 heightStyle: null,
 
                 heightStyle: null,
                 autoHeight: !0,
+
                 autoHeight: true,
                 clearStyle: !1,
+
                 clearStyle: false,
                 fillSpace: !1
+
                 fillSpace: false
 
             });
 
             });
             var _create = prototype._create,
+
             var _create = prototype._create, _setOption = prototype._setOption;
                _setOption = prototype._setOption;
 
 
             $.extend(prototype, {
 
             $.extend(prototype, {
                 _create: function() {
+
                 _create: function () {
                     this.options.heightStyle = this.options.heightStyle || this
+
                     this.options.heightStyle = this.options.heightStyle ||
                         ._mergeHeightStyle();
+
                         this._mergeHeightStyle();
 
                     _create.call(this);
 
                     _create.call(this);
 
                 },
 
                 },
                 _setOption: function(key) {
+
                 _setOption: function (key) {
 
                     if (key === "autoHeight" || key === "clearStyle" || key === "fillSpace") {
 
                     if (key === "autoHeight" || key === "clearStyle" || key === "fillSpace") {
 
                         this.options.heightStyle = this._mergeHeightStyle();
 
                         this.options.heightStyle = this._mergeHeightStyle();
第4,667行: 第4,605行:
 
                     _setOption.apply(this, arguments);
 
                     _setOption.apply(this, arguments);
 
                 },
 
                 },
                 _mergeHeightStyle: function() {
+
                 _mergeHeightStyle: function () {
 
                     var options = this.options;
 
                     var options = this.options;
 
                     if (options.fillSpace) {
 
                     if (options.fillSpace) {
第4,681行: 第4,619行:
 
             });
 
             });
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
         (function($, prototype) {
+
         (function ($, prototype) {
 
             $.extend(prototype.options.icons, {
 
             $.extend(prototype.options.icons, {
 
                 activeHeader: null,
 
                 activeHeader: null,
第4,687行: 第4,625行:
 
             });
 
             });
 
             var _createIcons = prototype._createIcons;
 
             var _createIcons = prototype._createIcons;
             prototype._createIcons = function() {
+
             prototype._createIcons = function () {
 
                 if (this.options.icons) {
 
                 if (this.options.icons) {
                     this.options.icons.activeHeader = this.options.icons.activeHeader || this.options.icons.headerSelected;
+
                     this.options.icons.activeHeader = this.options.icons.activeHeader ||
 +
                        this.options.icons.headerSelected;
 
                 }
 
                 }
 
                 _createIcons.call(this);
 
                 _createIcons.call(this);
 
             };
 
             };
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
         (function($, prototype) {
+
         (function ($, prototype) {
 
             prototype.activate = prototype._activate;
 
             prototype.activate = prototype._activate;
 
             var _findActive = prototype._findActive;
 
             var _findActive = prototype._findActive;
             prototype._findActive = function(index) {
+
             prototype._findActive = function (index) {
 
                 if (index === -1) {
 
                 if (index === -1) {
                     index = !1;
+
                     index = false;
 
                 }
 
                 }
                 if (index && typeof index !==
+
                 if (index && typeof index !== "number") {
                    "number") {
 
 
                     index = this.headers.index(this.headers.filter(index));
 
                     index = this.headers.index(this.headers.filter(index));
 
                     if (index === -1) {
 
                     if (index === -1) {
                         index = !1;
+
                         index = false;
 
                     }
 
                     }
 
                 }
 
                 }
第4,712行: 第4,650行:
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh;
 
         jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh;
         (function($, prototype) {
+
         (function ($, prototype) {
 
             $.extend(prototype.options, {
 
             $.extend(prototype.options, {
 
                 change: null,
 
                 change: null,
第4,718行: 第4,656行:
 
             });
 
             });
 
             var _trigger = prototype._trigger;
 
             var _trigger = prototype._trigger;
             prototype._trigger = function(type, event, data) {
+
             prototype._trigger = function (type, event, data) {
 
                 var ret = _trigger.apply(this, arguments);
 
                 var ret = _trigger.apply(this, arguments);
 
                 if (!ret) {
 
                 if (!ret) {
第4,730行: 第4,668行:
 
                         newContent: data.newPanel
 
                         newContent: data.newPanel
 
                     });
 
                     });
                 } else if (type === "activate") {
+
                 }
 +
                else if (type === "activate") {
 
                     ret = _trigger.call(this, "change", event, {
 
                     ret = _trigger.call(this, "change", event, {
 
                         oldHeader: data.oldHeader,
 
                         oldHeader: data.oldHeader,
第4,741行: 第4,680行:
 
             };
 
             };
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
         (function($, prototype) {
+
         (function ($, prototype) {
 
             $.extend(prototype.options, {
 
             $.extend(prototype.options, {
 
                 animate: null,
 
                 animate: null,
第4,747行: 第4,686行:
 
             });
 
             });
 
             var _create = prototype._create;
 
             var _create = prototype._create;
             prototype._create =
+
             prototype._create = function () {
                function() {
+
                var options = this.options;
                    var options = this.options;
+
                if (options.animate === null) {
                    if (options.animate === null) {
+
                    if (!options.animated) {
                        if (!options.animated) {
+
                        options.animate = false;
                            options.animate = !1;
+
                    }
                        } else if (options.animated === "slide") {
+
                    else if (options.animated === "slide") {
                            options.animate = 300;
+
                        options.animate = 300;
                        } else if (options.animated === "bounceslide") {
+
                    }
                            options.animate = {
+
                    else if (options.animated === "bounceslide") {
                                duration: 200,
+
                        options.animate = {
                                down: {
+
                            duration: 200,
                                    easing: "easeOutBounce",
+
                            down: {
                                    duration: 1000
+
                                easing: "easeOutBounce",
                                }
+
                                duration: 1000
                            };
+
                            }
                        } else {
+
                        };
                            options.animate = options.animated;
+
                    }
                        }
+
                    else {
 +
                        options.animate = options.animated;
 
                     }
 
                     }
                    _create.call(this);
+
                }
                };
+
                _create.call(this);
 +
            };
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
         }(jQuery, jQuery.ui.accordion.prototype));
 
     }
 
     }
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     var requestIndex = 0;
 
     var requestIndex = 0;
 
     $.widget("ui.autocomplete", {
 
     $.widget("ui.autocomplete", {
第4,779行: 第4,720行:
 
         options: {
 
         options: {
 
             appendTo: "body",
 
             appendTo: "body",
             autoFocus: !1,
+
             autoFocus: false,
 
             delay: 300,
 
             delay: 300,
 
             minLength: 1,
 
             minLength: 1,
第4,797行: 第4,738行:
 
         },
 
         },
 
         pending: 0,
 
         pending: 0,
         _create: function() {
+
         _create: function () {
 
             var suppressKeyPress, suppressKeyPressRepeat, suppressInput;
 
             var suppressKeyPress, suppressKeyPressRepeat, suppressInput;
 
             this.isMultiLine = this._isMultiLine();
 
             this.isMultiLine = this._isMultiLine();
 
             this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"];
 
             this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"];
             this.isNewMenu = !0;
+
             this.isNewMenu = true;
             this.element.addClass("ui-autocomplete-input").attr(
+
             this.element
                "autocomplete", "off");
+
                .addClass("ui-autocomplete-input")
 +
                .attr("autocomplete", "off");
 
             this._on(this.element, {
 
             this._on(this.element, {
                 keydown: function(event) {
+
                 keydown: function (event) {
 
                     if (this.element.prop("readOnly")) {
 
                     if (this.element.prop("readOnly")) {
                         suppressKeyPress = !0;
+
                         suppressKeyPress = true;
                         suppressInput = !0;
+
                         suppressInput = true;
                         suppressKeyPressRepeat = !0;
+
                         suppressKeyPressRepeat = true;
 
                         return;
 
                         return;
 
                     }
 
                     }
                     suppressKeyPress = !1;
+
                     suppressKeyPress = false;
                     suppressInput = !1;
+
                     suppressInput = false;
                     suppressKeyPressRepeat = !1;
+
                     suppressKeyPressRepeat = false;
 
                     var keyCode = $.ui.keyCode;
 
                     var keyCode = $.ui.keyCode;
 
                     switch (event.keyCode) {
 
                     switch (event.keyCode) {
 
                         case keyCode.PAGE_UP:
 
                         case keyCode.PAGE_UP:
                             suppressKeyPress = !0;
+
                             suppressKeyPress = true;
 
                             this._move("previousPage", event);
 
                             this._move("previousPage", event);
 
                             break;
 
                             break;
 
                         case keyCode.PAGE_DOWN:
 
                         case keyCode.PAGE_DOWN:
                             suppressKeyPress = !0;
+
                             suppressKeyPress = true;
 
                             this._move("nextPage", event);
 
                             this._move("nextPage", event);
 
                             break;
 
                             break;
 
                         case keyCode.UP:
 
                         case keyCode.UP:
                             suppressKeyPress = !0;
+
                             suppressKeyPress = true;
 
                             this._keyEvent("previous", event);
 
                             this._keyEvent("previous", event);
 
                             break;
 
                             break;
 
                         case keyCode.DOWN:
 
                         case keyCode.DOWN:
                             suppressKeyPress = !0;
+
                             suppressKeyPress = true;
 
                             this._keyEvent("next", event);
 
                             this._keyEvent("next", event);
 
                             break;
 
                             break;
第4,836行: 第4,778行:
 
                         case keyCode.NUMPAD_ENTER:
 
                         case keyCode.NUMPAD_ENTER:
 
                             if (this.menu.active) {
 
                             if (this.menu.active) {
                                 suppressKeyPress = !0;
+
                                 suppressKeyPress = true;
 
                                 event.preventDefault();
 
                                 event.preventDefault();
 
                                 this.menu.select(event);
 
                                 this.menu.select(event);
第4,854行: 第4,796行:
 
                             break;
 
                             break;
 
                         default:
 
                         default:
                             suppressKeyPressRepeat = !0;
+
                             suppressKeyPressRepeat = true;
                             this.
+
                             this._searchTimeout(event);
                            _searchTimeout(event);
 
 
                             break;
 
                             break;
 
                     }
 
                     }
 
                 },
 
                 },
                 keypress: function(event) {
+
                 keypress: function (event) {
 
                     if (suppressKeyPress) {
 
                     if (suppressKeyPress) {
                         suppressKeyPress = !1;
+
                         suppressKeyPress = false;
 
                         event.preventDefault();
 
                         event.preventDefault();
 
                         return;
 
                         return;
第4,885行: 第4,826行:
 
                     }
 
                     }
 
                 },
 
                 },
                 input: function(event) {
+
                 input: function (event) {
 
                     if (suppressInput) {
 
                     if (suppressInput) {
                         suppressInput = !1;
+
                         suppressInput = false;
 
                         event.preventDefault();
 
                         event.preventDefault();
 
                         return;
 
                         return;
第4,893行: 第4,834行:
 
                     this._searchTimeout(event);
 
                     this._searchTimeout(event);
 
                 },
 
                 },
                 focus: function() {
+
                 focus: function () {
 
                     this.selectedItem = null;
 
                     this.selectedItem = null;
 
                     this.previous = this._value();
 
                     this.previous = this._value();
 
                 },
 
                 },
                 blur: function(event) {
+
                 blur: function (event) {
 
                     if (this.cancelBlur) {
 
                     if (this.cancelBlur) {
 
                         delete this.cancelBlur;
 
                         delete this.cancelBlur;
第4,908行: 第4,849行:
 
             });
 
             });
 
             this._initSource();
 
             this._initSource();
             this.menu = $("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo || "body")[0]).menu({
+
             this.menu = $("<ul>")
 +
                .addClass("ui-autocomplete")
 +
                .appendTo(this.document.find(this.options.appendTo || "body")[0])
 +
                .menu({
 
                 input: $(),
 
                 input: $(),
 
                 role: null
 
                 role: null
             }).zIndex(this.element.zIndex() + 1).hide().data("menu");
+
             })
 +
                .zIndex(this.element.zIndex() + 1)
 +
                .hide()
 +
                .data("menu");
 
             this._on(this.menu.element, {
 
             this._on(this.menu.element, {
                 mousedown: function(event) {
+
                 mousedown: function (event) {
 
                     event.preventDefault();
 
                     event.preventDefault();
                     this.cancelBlur = !0;
+
                     this.cancelBlur = true;
                     this._delay(function() {
+
                     this._delay(function () {
 
                         delete this.cancelBlur;
 
                         delete this.cancelBlur;
 
                     });
 
                     });
 
                     var menuElement = this.menu.element[0];
 
                     var menuElement = this.menu.element[0];
 
                     if (!$(event.target).closest(".ui-menu-item").length) {
 
                     if (!$(event.target).closest(".ui-menu-item").length) {
                         this._delay(function() {
+
                         this._delay(function () {
 
                             var that = this;
 
                             var that = this;
                             this.document.one("mousedown", function(event) {
+
                             this.document.one("mousedown", function (event) {
                                 if (event.target !== that.element[0] && event.target !== menuElement && !$.contains(menuElement, event.target)) {
+
                                 if (event.target !== that.element[0] &&
 +
                                    event.target !== menuElement &&
 +
                                    !$.contains(menuElement, event.target)) {
 
                                     that.close();
 
                                     that.close();
 
                                 }
 
                                 }
第4,931行: 第4,880行:
 
                     }
 
                     }
 
                 },
 
                 },
                 menufocus: function(event, ui) {
+
                 menufocus: function (event, ui) {
 
                     if (this.isNewMenu) {
 
                     if (this.isNewMenu) {
                         this.isNewMenu = !1;
+
                         this.isNewMenu = false;
 
                         if (event.originalEvent && /^mouse/.test(event.originalEvent.type)) {
 
                         if (event.originalEvent && /^mouse/.test(event.originalEvent.type)) {
 
                             this.menu.blur();
 
                             this.menu.blur();
                             this.document.one("mousemove", function() {
+
                             this.document.one("mousemove", function () {
 
                                 $(event.target).trigger(event.originalEvent);
 
                                 $(event.target).trigger(event.originalEvent);
 
                             });
 
                             });
第4,943行: 第4,892行:
 
                     }
 
                     }
 
                     var item = ui.item.data("ui-autocomplete-item") || ui.item.data("item.autocomplete");
 
                     var item = ui.item.data("ui-autocomplete-item") || ui.item.data("item.autocomplete");
                     if (false !== this._trigger("focus", event, {
+
                     if (false !== this._trigger("focus", event, { item: item })) {
                            item: item
 
                        })) {
 
 
                         if (event.originalEvent && /^key/.test(event.originalEvent.type)) {
 
                         if (event.originalEvent && /^key/.test(event.originalEvent.type)) {
 
                             this._value(item.value);
 
                             this._value(item.value);
 
                         }
 
                         }
                     } else {
+
                     }
 +
                    else {
 
                         this.liveRegion.text(item.value);
 
                         this.liveRegion.text(item.value);
 
                     }
 
                     }
 
                 },
 
                 },
                 menuselect: function(event, ui) {
+
                 menuselect: function (event, ui) {
                     var item = ui.item.data(
+
                     var item = ui.item.data("ui-autocomplete-item") || ui.item.data("item.autocomplete"), previous = this.previous;
                            "ui-autocomplete-item") || ui.item.data("item.autocomplete"),
 
                        previous = this.previous;
 
 
                     if (this.element[0] !== this.document[0].activeElement) {
 
                     if (this.element[0] !== this.document[0].activeElement) {
 
                         this.element.focus();
 
                         this.element.focus();
 
                         this.previous = previous;
 
                         this.previous = previous;
                         this._delay(function() {
+
                         this._delay(function () {
 
                             this.previous = previous;
 
                             this.previous = previous;
 
                             this.selectedItem = item;
 
                             this.selectedItem = item;
 
                         });
 
                         });
 
                     }
 
                     }
                     if (false !== this._trigger("select", event, {
+
                     if (false !== this._trigger("select", event, { item: item })) {
                            item: item
 
                        })) {
 
 
                         this._value(item.value);
 
                         this._value(item.value);
 
                     }
 
                     }
第4,978行: 第4,922行:
 
                 role: "status",
 
                 role: "status",
 
                 "aria-live": "polite"
 
                 "aria-live": "polite"
             }).addClass("ui-helper-hidden-accessible").insertAfter(this.element);
+
             })
 +
                .addClass("ui-helper-hidden-accessible")
 +
                .insertAfter(this.element);
 
             if ($.fn.bgiframe) {
 
             if ($.fn.bgiframe) {
 
                 this.menu.element.bgiframe();
 
                 this.menu.element.bgiframe();
 
             }
 
             }
 
             this._on(this.window, {
 
             this._on(this.window, {
                 beforeunload: function() {
+
                 beforeunload: function () {
 
                     this.element.removeAttr("autocomplete");
 
                     this.element.removeAttr("autocomplete");
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             clearTimeout(this.searching);
 
             clearTimeout(this.searching);
             this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete");
+
             this.element
 +
                .removeClass("ui-autocomplete-input")
 +
                .removeAttr("autocomplete");
 
             this.menu.element.remove();
 
             this.menu.element.remove();
 
             this.liveRegion.remove();
 
             this.liveRegion.remove();
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             this._super(key, value);
 
             this._super(key, value);
 
             if (key === "source") {
 
             if (key === "source") {
第5,006行: 第4,954行:
 
             }
 
             }
 
         },
 
         },
         _isMultiLine: function() {
+
         _isMultiLine: function () {
 
             if (this.element.is("textarea")) {
 
             if (this.element.is("textarea")) {
 
                 return true;
 
                 return true;
第5,015行: 第4,963行:
 
             return this.element.prop("isContentEditable");
 
             return this.element.prop("isContentEditable");
 
         },
 
         },
         _initSource: function() {
+
         _initSource: function () {
 
             var array, url, that = this;
 
             var array, url, that = this;
             if ($.isArray(this.options.source)) {
+
             if (Array.isArray(this.options.source)) {
 
                 array = this.options.source;
 
                 array = this.options.source;
                 this.source = function(request, response) {
+
                 this.source = function (request, response) {
 
                     response($.ui.autocomplete.filter(array, request.term));
 
                     response($.ui.autocomplete.filter(array, request.term));
 
                 };
 
                 };
             } else if (typeof this.options.source === "string") {
+
             }
 +
            else if (typeof this.options.source === "string") {
 
                 url = this.options.source;
 
                 url = this.options.source;
                 this.source = function(request, response) {
+
                 this.source = function (request, response) {
 
                     if (that.xhr) {
 
                     if (that.xhr) {
 
                         that.xhr.abort();
 
                         that.xhr.abort();
第5,032行: 第4,981行:
 
                         data: request,
 
                         data: request,
 
                         dataType: "json",
 
                         dataType: "json",
                         success: function(data) {
+
                         success: function (data) {
 
                             response(data);
 
                             response(data);
 
                         },
 
                         },
                         error: function() {
+
                         error: function () {
 
                             response([]);
 
                             response([]);
 
                         }
 
                         }
 
                     });
 
                     });
 
                 };
 
                 };
             } else {
+
             }
 +
            else {
 
                 this.source = this.options.source;
 
                 this.source = this.options.source;
 
             }
 
             }
 
         },
 
         },
         _searchTimeout: function(event) {
+
         _searchTimeout: function (event) {
 
             clearTimeout(this.searching);
 
             clearTimeout(this.searching);
             this.searching = this._delay(function() {
+
             this.searching = this._delay(function () {
 
                 if (this.term !== this._value()) {
 
                 if (this.term !== this._value()) {
 
                     this.selectedItem = null;
 
                     this.selectedItem = null;
第5,053行: 第5,003行:
 
             }, this.options.delay);
 
             }, this.options.delay);
 
         },
 
         },
         search: function(value, event) {
+
         search: function (value, event) {
 
             value = value != null ? value : this._value();
 
             value = value != null ? value : this._value();
 
             this.term = this._value();
 
             this.term = this._value();
第5,064行: 第5,014行:
 
             return this._search(value);
 
             return this._search(value);
 
         },
 
         },
         _search: function(value) {
+
         _search: function (value) {
 
             this.pending++;
 
             this.pending++;
 
             this.element.addClass("ui-autocomplete-loading");
 
             this.element.addClass("ui-autocomplete-loading");
             this.cancelSearch = !1;
+
             this.cancelSearch = false;
             this.source({
+
             this.source({ term: value }, this._response());
                term: value
 
            }, this._response());
 
 
         },
 
         },
         _response: function() {
+
         _response: function () {
             var that = this,
+
             var that = this, index = ++requestIndex;
                index = ++requestIndex;
+
             return function (content) {
             return function(content) {
 
 
                 if (index === requestIndex) {
 
                 if (index === requestIndex) {
 
                     that.__response(content);
 
                     that.__response(content);
第5,085行: 第5,032行:
 
             };
 
             };
 
         },
 
         },
         __response: function(content) {
+
         __response: function (content) {
 
             if (content) {
 
             if (content) {
 
                 content = this._normalize(content);
 
                 content = this._normalize(content);
 
             }
 
             }
             this._trigger("response", null, {
+
             this._trigger("response", null, { content: content });
                content: content
 
            });
 
 
             if (!this.options.disabled && content && content.length && !this.cancelSearch) {
 
             if (!this.options.disabled && content && content.length && !this.cancelSearch) {
 
                 this._suggest(content);
 
                 this._suggest(content);
 
                 this._trigger("open");
 
                 this._trigger("open");
             } else {
+
             }
 +
            else {
 
                 this._close();
 
                 this._close();
 
             }
 
             }
 
         },
 
         },
         close: function(event) {
+
         close: function (event) {
             this.cancelSearch = !0;
+
             this.cancelSearch = true;
 
             this._close(event);
 
             this._close(event);
 
         },
 
         },
         _close: function(event) {
+
         _close: function (event) {
 
             if (this.menu.element.is(":visible")) {
 
             if (this.menu.element.is(":visible")) {
 
                 this.menu.element.hide();
 
                 this.menu.element.hide();
 
                 this.menu.blur();
 
                 this.menu.blur();
                 this.isNewMenu = !0;
+
                 this.isNewMenu = true;
 
                 this._trigger("close", event);
 
                 this._trigger("close", event);
 
             }
 
             }
 
         },
 
         },
         _change: function(event) {
+
         _change: function (event) {
 
             if (this.previous !== this._value()) {
 
             if (this.previous !== this._value()) {
                 this._trigger("change", event, {
+
                 this._trigger("change", event, { item: this.selectedItem });
                    item: this.selectedItem
 
                });
 
 
             }
 
             }
 
         },
 
         },
         _normalize: function(items) {
+
         _normalize: function (items) {
 
             if (items.length && items[0].label && items[0].value) {
 
             if (items.length && items[0].label && items[0].value) {
 
                 return items;
 
                 return items;
 
             }
 
             }
             return $.map(items, function(item) {
+
             return $.map(items, function (item) {
 
                 if (typeof item === "string") {
 
                 if (typeof item === "string") {
 
                     return {
 
                     return {
第5,135行: 第5,079行:
 
             });
 
             });
 
         },
 
         },
         _suggest: function(items) {
+
         _suggest: function (items) {
             var ul = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
+
             var ul = this.menu.element
 +
                .empty()
 +
                .zIndex(this.element.zIndex() + 1);
 
             this._renderMenu(ul, items);
 
             this._renderMenu(ul, items);
 
             this.menu.refresh();
 
             this.menu.refresh();
 
             ul.show();
 
             ul.show();
 
             this._resizeMenu();
 
             this._resizeMenu();
             ul.position($.extend({ of: this.element
+
             ul.position($.extend({
 +
                of: this.element
 
             }, this.options.position));
 
             }, this.options.position));
 
             if (this.options.autoFocus) {
 
             if (this.options.autoFocus) {
第5,147行: 第5,094行:
 
             }
 
             }
 
         },
 
         },
         _resizeMenu: function() {
+
         _resizeMenu: function () {
 
             var ul = this.menu.element;
 
             var ul = this.menu.element;
 
             ul.outerWidth(Math.max(ul.width("").outerWidth() + 1, this.element.outerWidth()));
 
             ul.outerWidth(Math.max(ul.width("").outerWidth() + 1, this.element.outerWidth()));
 
         },
 
         },
         _renderMenu: function(ul, items) {
+
         _renderMenu: function (ul, items) {
 
             var that = this;
 
             var that = this;
             $.each(items, function(index, item) {
+
             $.each(items, function (index, item) {
 
                 that._renderItemData(ul, item);
 
                 that._renderItemData(ul, item);
 
             });
 
             });
 
         },
 
         },
         _renderItemData: function(
+
         _renderItemData: function (ul, item) {
            ul, item) {
 
 
             return this._renderItem(ul, item).data("ui-autocomplete-item", item);
 
             return this._renderItem(ul, item).data("ui-autocomplete-item", item);
 
         },
 
         },
         _renderItem: function(ul, item) {
+
         _renderItem: function (ul, item) {
             return $("<li>").append($("<a>").text(item.label)).appendTo(ul);
+
             return $("<li>")
 +
                .append($("<a>").text(item.label))
 +
                .appendTo(ul);
 
         },
 
         },
         _move: function(direction, event) {
+
         _move: function (direction, event) {
 
             if (!this.menu.element.is(":visible")) {
 
             if (!this.menu.element.is(":visible")) {
 
                 this.search(null, event);
 
                 this.search(null, event);
 
                 return;
 
                 return;
 
             }
 
             }
             if (this.menu.isFirstItem() && /^previous/.test(direction) || this.menu.isLastItem() && /^next/.test(direction)) {
+
             if (this.menu.isFirstItem() && /^previous/.test(direction) ||
 +
                this.menu.isLastItem() && /^next/.test(direction)) {
 
                 this._value(this.term);
 
                 this._value(this.term);
 
                 this.menu.blur();
 
                 this.menu.blur();
第5,176行: 第5,125行:
 
             this.menu[direction](event);
 
             this.menu[direction](event);
 
         },
 
         },
         widget: function() {
+
         widget: function () {
 
             return this.menu.element;
 
             return this.menu.element;
 
         },
 
         },
         _value: function() {
+
         _value: function () {
 
             return this.valueMethod.apply(this.element, arguments);
 
             return this.valueMethod.apply(this.element, arguments);
 
         },
 
         },
         _keyEvent: function(keyEvent, event) {
+
         _keyEvent: function (keyEvent, event) {
 
             if (!this.isMultiLine || this.menu.element.is(":visible")) {
 
             if (!this.isMultiLine || this.menu.element.is(":visible")) {
 
                 this._move(keyEvent, event);
 
                 this._move(keyEvent, event);
第5,190行: 第5,139行:
 
     });
 
     });
 
     $.extend($.ui.autocomplete, {
 
     $.extend($.ui.autocomplete, {
         escapeRegex: function(value) {
+
         escapeRegex: function (value) {
 
             return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
 
             return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
 
         },
 
         },
         filter: function(array, term) {
+
         filter: function (array, term) {
 
             var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
 
             var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
             return $.grep(array, function(value) {
+
             return $.grep(array, function (value) {
 
                 return matcher.test(value.label || value.value || value);
 
                 return matcher.test(value.label || value.value || value);
 
             });
 
             });
第5,204行: 第5,153行:
 
             messages: {
 
             messages: {
 
                 noResults: "No search results.",
 
                 noResults: "No search results.",
                 results: function(amount) {
+
                 results: function (amount) {
                     return amount + (amount > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate.";
+
                     return amount + (amount > 1 ? " results are" : " result is") +
 +
                        " available, use up and down arrow keys to navigate.";
 
                 }
 
                 }
 
             }
 
             }
 
         },
 
         },
         __response: function(content) {
+
         __response: function (content) {
 
             var message;
 
             var message;
 
             this._superApply(arguments);
 
             this._superApply(arguments);
第5,217行: 第5,167行:
 
             if (content && content.length) {
 
             if (content && content.length) {
 
                 message = this.options.messages.results(content.length);
 
                 message = this.options.messages.results(content.length);
             } else {
+
             }
 +
            else {
 
                 message = this.options.messages.noResults;
 
                 message = this.options.messages.noResults;
 
             }
 
             }
第5,224行: 第5,175行:
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
     var lastActive, startXPos, startYPos, clickDragged, baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
+
     var lastActive, startXPos, startYPos, clickDragged, baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", stateClasses = "ui-state-hover ui-state-active ", typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", formResetHandler = function () {
        stateClasses = "ui-state-hover ui-state-active ",
+
        var buttons = $(this).find(":ui-button");
        typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
+
        setTimeout(function () {
        formResetHandler = function() {
+
            buttons.button("refresh");
            var buttons = $(this).find(":ui-button");
+
        }, 1);
            setTimeout(function() {
+
    }, radioGroup = function (radio) {
                buttons.
+
        var name = radio.name, form = radio.form, radios = $([]);
                button("refresh");
+
        if (name) {
            }, 1);
+
            if (form) {
        },
+
                radios = $(form).find("[name='" + name + "']");
        radioGroup = function(radio) {
+
            }
            var name = radio.name,
+
            else {
                form = radio.form,
+
                radios = $("[name='" + name + "']", radio.ownerDocument)
                radios = $([]);
+
                    .filter(function () {
            if (name) {
+
                    return !this.form;
                if (form) {
+
                });
                    radios = $(form).find("[name='" + name + "']");
 
                } else {
 
                    radios = $("[name='" + name + "']", radio.ownerDocument).filter(function() {
 
                        return !this.form;
 
                    });
 
                }
 
 
             }
 
             }
            return radios;
+
        }
        };
+
        return radios;
 +
    };
 
     $.widget("ui.button", {
 
     $.widget("ui.button", {
 
         version: "1.9.2",
 
         version: "1.9.2",
第5,255行: 第5,201行:
 
         options: {
 
         options: {
 
             disabled: null,
 
             disabled: null,
             text: !0,
+
             text: true,
 
             label: null,
 
             label: null,
 
             icons: {
 
             icons: {
第5,262行: 第5,208行:
 
             }
 
             }
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, formResetHandler);
+
             this.element.closest("form")
 +
                .off("reset" + this.eventNamespace)
 +
                .on("reset" + this.eventNamespace, formResetHandler);
 
             if (typeof this.options.disabled !== "boolean") {
 
             if (typeof this.options.disabled !== "boolean") {
 
                 this.options.disabled = !!this.element.prop("disabled");
 
                 this.options.disabled = !!this.element.prop("disabled");
             } else {
+
             }
 +
            else {
 
                 this.element.prop("disabled", this.options.disabled);
 
                 this.element.prop("disabled", this.options.disabled);
 
             }
 
             }
 
             this._determineButtonType();
 
             this._determineButtonType();
 
             this.hasTitle = !!this.buttonElement.attr("title");
 
             this.hasTitle = !!this.buttonElement.attr("title");
             var that = this,
+
             var that = this, options = this.options, toggleButton = this.type === "checkbox" || this.type === "radio", activeClass = !toggleButton ? "ui-state-active" : "", focusClass = "ui-state-focus";
                options = this.options,
 
                toggleButton = this.type === "checkbox" || this.type === "radio",
 
                activeClass = !toggleButton ? "ui-state-active" : "",
 
                focusClass = "ui-state-focus";
 
 
             if (options.label === null) {
 
             if (options.label === null) {
 
                 options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
 
                 options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
 
             }
 
             }
 
             this._hoverable(this.buttonElement);
 
             this._hoverable(this.buttonElement);
             this.buttonElement.addClass(baseClasses).attr("role", "button").bind("mouseenter" + this.eventNamespace, function() {
+
             this.buttonElement
 +
                .addClass(baseClasses)
 +
                .attr("role", "button")
 +
                .on("mouseenter" + this.eventNamespace, function () {
 
                 if (options.disabled) {
 
                 if (options.disabled) {
 
                     return;
 
                     return;
第5,287行: 第5,235行:
 
                     $(this).addClass("ui-state-active");
 
                     $(this).addClass("ui-state-active");
 
                 }
 
                 }
             }).bind("mouseleave" + this.eventNamespace, function() {
+
             })
 +
                .on("mouseleave" + this.eventNamespace, function () {
 
                 if (options.disabled) {
 
                 if (options.disabled) {
 
                     return;
 
                     return;
 
                 }
 
                 }
 
                 $(this).removeClass(activeClass);
 
                 $(this).removeClass(activeClass);
             }).bind("click" + this.eventNamespace, function(event) {
+
             })
 +
                .on("click" + this.eventNamespace, function (event) {
 
                 if (options.disabled) {
 
                 if (options.disabled) {
 
                     event.preventDefault();
 
                     event.preventDefault();
第5,298行: 第5,248行:
 
                 }
 
                 }
 
             });
 
             });
             this.element.bind("focus" + this.eventNamespace, function() {
+
             this.element
 +
                .on("focus" + this.eventNamespace, function () {
 
                 that.buttonElement.addClass(focusClass);
 
                 that.buttonElement.addClass(focusClass);
             }).bind("blur" + this.eventNamespace, function() {
+
             })
 +
                .on("blur" + this.eventNamespace, function () {
 
                 that.buttonElement.removeClass(focusClass);
 
                 that.buttonElement.removeClass(focusClass);
 
             });
 
             });
 
             if (toggleButton) {
 
             if (toggleButton) {
                 this.element.bind("change" + this.eventNamespace, function() {
+
                 this.element.on("change" + this.eventNamespace, function () {
 
                     if (clickDragged) {
 
                     if (clickDragged) {
 
                         return;
 
                         return;
第5,310行: 第5,262行:
 
                     that.refresh();
 
                     that.refresh();
 
                 });
 
                 });
                 this.buttonElement.bind("mousedown" + this.eventNamespace, function(event) {
+
                 this.buttonElement
 +
                    .on("mousedown" + this.eventNamespace, function (event) {
 
                     if (options.disabled) {
 
                     if (options.disabled) {
 
                         return;
 
                         return;
 
                     }
 
                     }
                     clickDragged = !1;
+
                     clickDragged = false;
 
                     startXPos = event.pageX;
 
                     startXPos = event.pageX;
 
                     startYPos = event.pageY;
 
                     startYPos = event.pageY;
                 }).bind("mouseup" + this.eventNamespace, function(event) {
+
                 })
 +
                    .on("mouseup" + this.eventNamespace, function (event) {
 
                     if (options.disabled) {
 
                     if (options.disabled) {
 
                         return;
 
                         return;
 
                     }
 
                     }
 
                     if (startXPos !== event.pageX || startYPos !== event.pageY) {
 
                     if (startXPos !== event.pageX || startYPos !== event.pageY) {
                         clickDragged = !0;
+
                         clickDragged = true;
 
                     }
 
                     }
 
                 });
 
                 });
 
             }
 
             }
 
             if (this.type === "checkbox") {
 
             if (this.type === "checkbox") {
                 this.buttonElement.bind("click" + this.eventNamespace, function() {
+
                 this.buttonElement.on("click" + this.eventNamespace, function () {
 
                     if (options.disabled || clickDragged) {
 
                     if (options.disabled || clickDragged) {
 
                         return false;
 
                         return false;
第5,334行: 第5,288行:
 
                     that.buttonElement.attr("aria-pressed", that.element[0].checked);
 
                     that.buttonElement.attr("aria-pressed", that.element[0].checked);
 
                 });
 
                 });
             } else if (this.type === "radio") {
+
             }
                 this.buttonElement.bind("click" + this.eventNamespace, function() {
+
            else if (this.type === "radio") {
 +
                 this.buttonElement.on("click" + this.eventNamespace, function () {
 
                     if (options.disabled || clickDragged) {
 
                     if (options.disabled || clickDragged) {
 
                         return false;
 
                         return false;
第5,342行: 第5,297行:
 
                     that.buttonElement.attr("aria-pressed", "true");
 
                     that.buttonElement.attr("aria-pressed", "true");
 
                     var radio = that.element[0];
 
                     var radio = that.element[0];
                     radioGroup(radio).not(radio).map(function() {
+
                     radioGroup(radio)
 +
                        .not(radio)
 +
                        .map(function () {
 
                         return $(this).button("widget")[0];
 
                         return $(this).button("widget")[0];
                     }).removeClass("ui-state-active").attr("aria-pressed", "false");
+
                     })
 +
                        .removeClass("ui-state-active")
 +
                        .attr("aria-pressed", "false");
 
                 });
 
                 });
             } else {
+
             }
                 this.buttonElement.bind("mousedown" + this.eventNamespace, function() {
+
            else {
 +
                 this.buttonElement
 +
                    .on("mousedown" + this.eventNamespace, function () {
 
                     if (options.disabled) {
 
                     if (options.disabled) {
 
                         return false;
 
                         return false;
第5,353行: 第5,314行:
 
                     $(this).addClass("ui-state-active");
 
                     $(this).addClass("ui-state-active");
 
                     lastActive = this;
 
                     lastActive = this;
                     that.document.one(
+
                     that.document.one("mouseup", function () {
                        "mouseup",
+
                        lastActive = null;
                        function() {
+
                    });
                            lastActive = null;
+
                 })
                        });
+
                    .on("mouseup" + this.eventNamespace, function () {
                 }).bind("mouseup" + this.eventNamespace, function() {
 
 
                     if (options.disabled) {
 
                     if (options.disabled) {
 
                         return false;
 
                         return false;
 
                     }
 
                     }
 
                     $(this).removeClass("ui-state-active");
 
                     $(this).removeClass("ui-state-active");
                 }).bind("keydown" + this.eventNamespace, function(event) {
+
                 })
 +
                    .on("keydown" + this.eventNamespace, function (event) {
 
                     if (options.disabled) {
 
                     if (options.disabled) {
 
                         return false;
 
                         return false;
第5,370行: 第5,331行:
 
                         $(this).addClass("ui-state-active");
 
                         $(this).addClass("ui-state-active");
 
                     }
 
                     }
                 }).bind("keyup" + this.eventNamespace, function() {
+
                 })
 +
                    .on("keyup" + this.eventNamespace, function () {
 
                     $(this).removeClass("ui-state-active");
 
                     $(this).removeClass("ui-state-active");
 
                 });
 
                 });
 
                 if (this.buttonElement.is("a")) {
 
                 if (this.buttonElement.is("a")) {
                     this.buttonElement.keyup(function(event) {
+
                     this.buttonElement.keyup(function (event) {
 
                         if (event.keyCode === $.ui.keyCode.SPACE) {
 
                         if (event.keyCode === $.ui.keyCode.SPACE) {
 
                             $(this).click();
 
                             $(this).click();
第5,384行: 第5,346行:
 
             this._resetButton();
 
             this._resetButton();
 
         },
 
         },
         _determineButtonType: function() {
+
         _determineButtonType: function () {
 
             var ancestor, labelSelector, checked;
 
             var ancestor, labelSelector, checked;
 
             if (this.element.is("[type=checkbox]")) {
 
             if (this.element.is("[type=checkbox]")) {
 
                 this.type = "checkbox";
 
                 this.type = "checkbox";
             } else if (this.element.is("[type=radio]")) {
+
             }
 +
            else if (this.element.is("[type=radio]")) {
 
                 this.type = "radio";
 
                 this.type = "radio";
             } else if (this.element.is("input")) {
+
             }
 +
            else if (this.element.is("input")) {
 
                 this.type = "input";
 
                 this.type = "input";
             } else {
+
             }
 +
            else {
 
                 this.type = "button";
 
                 this.type = "button";
 
             }
 
             }
 
             if (this.type === "checkbox" || this.type === "radio") {
 
             if (this.type === "checkbox" || this.type === "radio") {
                 ancestor = this.element.parents().
+
                 ancestor = this.element.parents().last();
                last();
 
 
                 labelSelector = "label[for='" + this.element.attr("id") + "']";
 
                 labelSelector = "label[for='" + this.element.attr("id") + "']";
 
                 this.buttonElement = ancestor.find(labelSelector);
 
                 this.buttonElement = ancestor.find(labelSelector);
第5,413行: 第5,377行:
 
                 }
 
                 }
 
                 this.buttonElement.prop("aria-pressed", checked);
 
                 this.buttonElement.prop("aria-pressed", checked);
             } else {
+
             }
 +
            else {
 
                 this.buttonElement = this.element;
 
                 this.buttonElement = this.element;
 
             }
 
             }
 
         },
 
         },
         widget: function() {
+
         widget: function () {
 
             return this.buttonElement;
 
             return this.buttonElement;
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
             this.element.removeClass("ui-helper-hidden-accessible");
+
             this.element
             this.buttonElement.removeClass(baseClasses + " " + stateClasses + " " + typeClasses).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
+
                .removeClass("ui-helper-hidden-accessible");
 +
             this.buttonElement
 +
                .removeClass(baseClasses + " " + stateClasses + " " + typeClasses)
 +
                .removeAttr("role")
 +
                .removeAttr("aria-pressed")
 +
                .html(this.buttonElement.find(".ui-button-text").html());
 
             if (!this.hasTitle) {
 
             if (!this.hasTitle) {
 
                 this.buttonElement.removeAttr("title");
 
                 this.buttonElement.removeAttr("title");
 
             }
 
             }
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             this._super(key, value);
 
             this._super(key, value);
             if (
+
             if (key === "disabled") {
                key === "disabled") {
 
 
                 if (value) {
 
                 if (value) {
 
                     this.element.prop("disabled", true);
 
                     this.element.prop("disabled", true);
                 } else {
+
                 }
 +
                else {
 
                     this.element.prop("disabled", false);
 
                     this.element.prop("disabled", false);
 
                 }
 
                 }
第5,440行: 第5,410行:
 
             this._resetButton();
 
             this._resetButton();
 
         },
 
         },
         refresh: function() {
+
         refresh: function () {
 
             var isDisabled = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled");
 
             var isDisabled = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled");
 
             if (isDisabled !== this.options.disabled) {
 
             if (isDisabled !== this.options.disabled) {
第5,446行: 第5,416行:
 
             }
 
             }
 
             if (this.type === "radio") {
 
             if (this.type === "radio") {
                 radioGroup(this.element[0]).each(function() {
+
                 radioGroup(this.element[0]).each(function () {
 
                     if ($(this).is(":checked")) {
 
                     if ($(this).is(":checked")) {
                         $(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true");
+
                         $(this).button("widget")
                     } else {
+
                            .addClass("ui-state-active")
                         $(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false");
+
                            .attr("aria-pressed", "true");
 +
                     }
 +
                    else {
 +
                         $(this).button("widget")
 +
                            .removeClass("ui-state-active")
 +
                            .attr("aria-pressed", "false");
 
                     }
 
                     }
 
                 });
 
                 });
             } else if (this.type === "checkbox") {
+
             }
 +
            else if (this.type === "checkbox") {
 
                 if (this.element.is(":checked")) {
 
                 if (this.element.is(":checked")) {
                     this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true");
+
                     this.buttonElement
                 } else {
+
                        .addClass("ui-state-active")
                     this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false");
+
                        .attr("aria-pressed", "true");
 +
                 }
 +
                else {
 +
                     this.buttonElement
 +
                        .removeClass("ui-state-active")
 +
                        .attr("aria-pressed", "false");
 
                 }
 
                 }
 
             }
 
             }
 
         },
 
         },
         _resetButton: function() {
+
         _resetButton: function () {
 
             if (this.type === "input") {
 
             if (this.type === "input") {
 
                 if (this.options.label) {
 
                 if (this.options.label) {
第5,468行: 第5,449行:
 
                 return;
 
                 return;
 
             }
 
             }
             var buttonElement = this.
+
             var buttonElement = this.buttonElement.removeClass(typeClasses), buttonText = $("<span></span>", this.document[0])
            buttonElement.removeClass(typeClasses), buttonText = $("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(buttonElement.empty()).text(), icons = this.options.icons, multipleIcons = icons.primary && icons.secondary, buttonClasses = [];
+
                .addClass("ui-button-text")
 +
                .html(this.options.label)
 +
                .appendTo(buttonElement.empty())
 +
                .text(), icons = this.options.icons, multipleIcons = icons.primary && icons.secondary, buttonClasses = [];
 
             if (icons.primary || icons.secondary) {
 
             if (icons.primary || icons.secondary) {
 
                 if (this.options.text) {
 
                 if (this.options.text) {
第5,483行: 第5,467行:
 
                     buttonClasses.push(multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only");
 
                     buttonClasses.push(multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only");
 
                     if (!this.hasTitle) {
 
                     if (!this.hasTitle) {
                         buttonElement.attr("title", $.trim(buttonText));
+
                         buttonElement.attr("title", buttonText.trim());
 
                     }
 
                     }
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 buttonClasses.push("ui-button-text-only");
 
                 buttonClasses.push("ui-button-text-only");
 
             }
 
             }
第5,497行: 第5,482行:
 
             items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"
 
             items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             this.element.addClass("ui-buttonset");
 
             this.element.addClass("ui-buttonset");
 
         },
 
         },
         _init: function() {
+
         _init: function () {
 
             this.refresh();
 
             this.refresh();
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key === "disabled") {
 
             if (key === "disabled") {
 
                 this.buttons.button("option", key, value);
 
                 this.buttons.button("option", key, value);
第5,509行: 第5,494行:
 
             this._super(key, value);
 
             this._super(key, value);
 
         },
 
         },
         refresh: function() {
+
         refresh: function () {
 
             var rtl = this.element.css("direction") === "rtl";
 
             var rtl = this.element.css("direction") === "rtl";
             this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() {
+
             this.buttons = this.element.find(this.options.items)
 +
                .filter(":ui-button")
 +
                .button("refresh")
 +
                .end()
 +
                .not(":ui-button")
 +
                .button()
 +
                .end()
 +
                .map(function () {
 
                 return $(this).button("widget")[0];
 
                 return $(this).button("widget")[0];
             }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(rtl ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(rtl ? "ui-corner-left" : "ui-corner-right").end().end();
+
             })
 +
                .removeClass("ui-corner-all ui-corner-left ui-corner-right")
 +
                .filter(":first")
 +
                .addClass(rtl ? "ui-corner-right" : "ui-corner-left")
 +
                .end()
 +
                .filter(":last")
 +
                .addClass(rtl ? "ui-corner-left" : "ui-corner-right")
 +
                .end()
 +
                .end();
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             this.element.removeClass("ui-buttonset");
 
             this.element.removeClass("ui-buttonset");
             this.buttons.map(function() {
+
             this.buttons
 +
                .map(function () {
 
                 return $(this).button("widget")[0];
 
                 return $(this).button("widget")[0];
             }).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
+
             })
 +
                .removeClass("ui-corner-left ui-corner-right")
 +
                .end()
 +
                .button("destroy");
 
         }
 
         }
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
     $.extend($.ui, {
+
     $.extend($.ui, { datepicker: { version: "1.9.2" } });
        datepicker: {
 
            version: "1.9.2"
 
        }
 
    });
 
 
     var PROP_NAME = 'datepicker';
 
     var PROP_NAME = 'datepicker';
 
     var dpuuid = new Date().getTime();
 
     var dpuuid = new Date().getTime();
 
     var instActive;
 
     var instActive;
 
 
     function Datepicker() {
 
     function Datepicker() {
         this.debug = !1;
+
         this.debug = false;
 
         this._curInst = null;
 
         this._curInst = null;
         this._keyEvent = !1;
+
         this._keyEvent = false;
 
         this._disabledInputs = [];
 
         this._disabledInputs = [];
         this._datepickerShowing = !1;
+
         this._datepickerShowing = false;
         this._inDialog = !1;
+
         this._inDialog = false;
 
         this._mainDivId = 'ui-datepicker-div';
 
         this._mainDivId = 'ui-datepicker-div';
 
         this._inlineClass = 'ui-datepicker-inline';
 
         this._inlineClass = 'ui-datepicker-inline';
第5,555行: 第5,554行:
 
             nextText: 'Next',
 
             nextText: 'Next',
 
             currentText: 'Today',
 
             currentText: 'Today',
             monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+
             monthNames: ['January', 'February', 'March', 'April', 'May', 'June',
 +
                'July', 'August', 'September', 'October', 'November', 'December'],
 
             monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
 
             monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
 
             dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
 
             dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
第5,563行: 第5,563行:
 
             dateFormat: 'mm/dd/yy',
 
             dateFormat: 'mm/dd/yy',
 
             firstDay: 0,
 
             firstDay: 0,
             isRTL: !1,
+
             isRTL: false,
             showMonthAfterYear: !1,
+
             showMonthAfterYear: false,
 
             yearSuffix: ''
 
             yearSuffix: ''
 
         };
 
         };
第5,575行: 第5,575行:
 
             buttonText: '...',
 
             buttonText: '...',
 
             buttonImage: '',
 
             buttonImage: '',
             buttonImageOnly: !1,
+
             buttonImageOnly: false,
             hideIfNoPrevNext: !1,
+
             hideIfNoPrevNext: false,
             navigationAsDateFormat: !1,
+
             navigationAsDateFormat: false,
             gotoCurrent: !1,
+
             gotoCurrent: false,
             changeMonth: !1,
+
             changeMonth: false,
             changeYear: !1,
+
             changeYear: false,
 
             yearRange: 'c-10:c+10',
 
             yearRange: 'c-10:c+10',
             showOtherMonths: !1,
+
             showOtherMonths: false,
             selectOtherMonths: !1,
+
             selectOtherMonths: false,
             showWeek: !1,
+
             showWeek: false,
 
             calculateWeek: this.iso8601Week,
 
             calculateWeek: this.iso8601Week,
 
             shortYearCutoff: '+10',
 
             shortYearCutoff: '+10',
第5,601行: 第5,601行:
 
             altField: '',
 
             altField: '',
 
             altFormat: '',
 
             altFormat: '',
             constrainInput: !0,
+
             constrainInput: true,
             showButtonPanel: !1,
+
             showButtonPanel: false,
             autoSize: !1,
+
             autoSize: false,
             disabled: !1
+
             disabled: false
 
         };
 
         };
         $.extend(
+
         $.extend(this._defaults, this.regional['']);
            this._defaults, this.regional['']);
 
 
         this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
 
         this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
 
     }
 
     }
第5,613行: 第5,612行:
 
         markerClassName: 'hasDatepicker',
 
         markerClassName: 'hasDatepicker',
 
         maxRows: 4,
 
         maxRows: 4,
         log: function() {
+
         log: function () {
             if (this.debug) console.log.apply('', arguments);
+
             if (this.debug)
 +
                console.log.apply('', arguments);
 
         },
 
         },
         _widgetDatepicker: function() {
+
         _widgetDatepicker: function () {
 
             return this.dpDiv;
 
             return this.dpDiv;
 
         },
 
         },
         setDefaults: function(settings) {
+
         setDefaults: function (settings) {
 
             extendRemove(this._defaults, settings || {});
 
             extendRemove(this._defaults, settings || {});
 
             return this;
 
             return this;
 
         },
 
         },
         _attachDatepicker: function(target, settings) {
+
         _attachDatepicker: function (target, settings) {
 
             var inlineSettings = null;
 
             var inlineSettings = null;
 
             for (var attrName in this._defaults) {
 
             for (var attrName in this._defaults) {
第5,631行: 第5,631行:
 
                     try {
 
                     try {
 
                         inlineSettings[attrName] = eval(attrValue);
 
                         inlineSettings[attrName] = eval(attrValue);
                     } catch (err) {
+
                     }
 +
                    catch (err) {
 
                         inlineSettings[attrName] = attrValue;
 
                         inlineSettings[attrName] = attrValue;
 
                     }
 
                     }
第5,644行: 第5,645行:
 
             var inst = this._newInst($(target), inline);
 
             var inst = this._newInst($(target), inline);
 
             inst.settings = $.extend({}, settings || {}, inlineSettings || {});
 
             inst.settings = $.extend({}, settings || {}, inlineSettings || {});
             if (
+
             if (nodeName == 'input') {
                nodeName == 'input') {
 
 
                 this._connectDatepicker(target, inst);
 
                 this._connectDatepicker(target, inst);
             } else if (inline) {
+
             }
 +
            else if (inline) {
 
                 this._inlineDatepicker(target, inst);
 
                 this._inlineDatepicker(target, inst);
 
             }
 
             }
 
         },
 
         },
         _newInst: function(target, inline) {
+
         _newInst: function (target, inline) {
 
             var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1');
 
             var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1');
             return {
+
             return { id: id, input: target,
                id: id,
+
                 selectedDay: 0, selectedMonth: 0, selectedYear: 0,
                input: target,
+
                 drawMonth: 0, drawYear: 0,
                 selectedDay: 0,
 
                selectedMonth: 0,
 
                selectedYear: 0,
 
                 drawMonth: 0,
 
                drawYear: 0,
 
 
                 inline: inline,
 
                 inline: inline,
                 dpDiv: (!inline ? this.dpDiv : bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))
+
                 dpDiv: (!inline ? this.dpDiv :
            };
+
                    bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))) };
 
         },
 
         },
         _connectDatepicker: function(target, inst) {
+
         _connectDatepicker: function (target, inst) {
 
             var input = $(target);
 
             var input = $(target);
 
             inst.append = $([]);
 
             inst.append = $([]);
 
             inst.trigger = $([]);
 
             inst.trigger = $([]);
             if (input.hasClass(this.markerClassName)) return;
+
             if (input.hasClass(this.markerClassName))
 +
                return;
 
             this._attachments(input, inst);
 
             this._attachments(input, inst);
             input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function(event, key, value) {
+
             input.addClass(this.markerClassName).keydown(this._doKeyDown).
 +
                keypress(this._doKeyPress).keyup(this._doKeyUp).
 +
                on("setData.datepicker", function (event, key, value) {
 
                 inst.settings[key] = value;
 
                 inst.settings[key] = value;
             }).bind("getData.datepicker", function(event, key) {
+
             }).on("getData.datepicker", function (event, key) {
 
                 return this._get(inst, key);
 
                 return this._get(inst, key);
 
             });
 
             });
第5,679行: 第5,678行:
 
             $.data(target, PROP_NAME, inst);
 
             $.data(target, PROP_NAME, inst);
 
             if (inst.settings.disabled) {
 
             if (inst.settings.disabled) {
                 this.
+
                 this._disableDatepicker(target);
                _disableDatepicker(target);
 
 
             }
 
             }
 
         },
 
         },
         _attachments: function(input, inst) {
+
         _attachments: function (input, inst) {
 
             var appendText = this._get(inst, 'appendText');
 
             var appendText = this._get(inst, 'appendText');
 
             var isRTL = this._get(inst, 'isRTL');
 
             var isRTL = this._get(inst, 'isRTL');
             if (inst.append) inst.append.remove();
+
             if (inst.append)
 +
                inst.append.remove();
 
             if (appendText) {
 
             if (appendText) {
 
                 inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
 
                 inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
 
                 input[isRTL ? 'before' : 'after'](inst.append);
 
                 input[isRTL ? 'before' : 'after'](inst.append);
 
             }
 
             }
             input.unbind('focus', this._showDatepicker);
+
             input.off('focus', this._showDatepicker);
             if (inst.trigger) inst.trigger.remove();
+
             if (inst.trigger)
 +
                inst.trigger.remove();
 
             var showOn = this._get(inst, 'showOn');
 
             var showOn = this._get(inst, 'showOn');
             if (showOn == 'focus' || showOn == 'both') input.focus(this._showDatepicker);
+
             if (showOn == 'focus' || showOn == 'both')
 +
                input.focus(this._showDatepicker);
 
             if (showOn == 'button' || showOn == 'both') {
 
             if (showOn == 'button' || showOn == 'both') {
 
                 var buttonText = this._get(inst, 'buttonText');
 
                 var buttonText = this._get(inst, 'buttonText');
 
                 var buttonImage = this._get(inst, 'buttonImage');
 
                 var buttonImage = this._get(inst, 'buttonImage');
                 inst.trigger = $(this._get(inst, 'buttonImageOnly') ? $('<img/>').addClass(this._triggerClass).attr({
+
                 inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
                    src: buttonImage,
+
                    $('<img/>').addClass(this._triggerClass).
                    alt: buttonText,
+
                        attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
                    title: buttonText
+
                    $('<button type="button"></button>').addClass(this._triggerClass).
                }) : $('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage == '' ? buttonText : $('<img/>').attr({
+
                        html(buttonImage == '' ? buttonText : $('<img/>').attr({ src: buttonImage, alt: buttonText, title: buttonText })));
                    src: buttonImage,
 
                    alt: buttonText,
 
                    title: buttonText
 
                })));
 
 
                 input[isRTL ? 'before' : 'after'](inst.trigger);
 
                 input[isRTL ? 'before' : 'after'](inst.trigger);
                 inst.trigger.
+
                 inst.trigger.click(function () {
                click(function() {
+
                     if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                     if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0]) $.datepicker._hideDatepicker();
+
                        $.datepicker._hideDatepicker();
 
                     else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
 
                     else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
 
                         $.datepicker._hideDatepicker();
 
                         $.datepicker._hideDatepicker();
 
                         $.datepicker._showDatepicker(input[0]);
 
                         $.datepicker._showDatepicker(input[0]);
                     } else $.datepicker._showDatepicker(input[0]);
+
                     }
 +
                    else
 +
                        $.datepicker._showDatepicker(input[0]);
 
                     return false;
 
                     return false;
 
                 });
 
                 });
 
             }
 
             }
 
         },
 
         },
         _autoSize: function(inst) {
+
         _autoSize: function (inst) {
 
             if (this._get(inst, 'autoSize') && !inst.inline) {
 
             if (this._get(inst, 'autoSize') && !inst.inline) {
 
                 var date = new Date(2009, 12 - 1, 20);
 
                 var date = new Date(2009, 12 - 1, 20);
 
                 var dateFormat = this._get(inst, 'dateFormat');
 
                 var dateFormat = this._get(inst, 'dateFormat');
 
                 if (dateFormat.match(/[DM]/)) {
 
                 if (dateFormat.match(/[DM]/)) {
                     var findMax = function(names) {
+
                     var findMax = function (names) {
 
                         var max = 0;
 
                         var max = 0;
 
                         var maxI = 0;
 
                         var maxI = 0;
第5,735行: 第5,734行:
 
                         return maxI;
 
                         return maxI;
 
                     };
 
                     };
                     date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? 'monthNames' : 'monthNamesShort'))));
+
                     date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
                     date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
+
                        'monthNames' : 'monthNamesShort'))));
 +
                     date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
 +
                        'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
 
                 }
 
                 }
 
                 inst.input.attr('size', this._formatDate(inst, date).length);
 
                 inst.input.attr('size', this._formatDate(inst, date).length);
 
             }
 
             }
 
         },
 
         },
         _inlineDatepicker: function(target, inst) {
+
         _inlineDatepicker: function (target, inst) {
 
             var divSpan = $(target);
 
             var divSpan = $(target);
             if (divSpan.hasClass(
+
             if (divSpan.hasClass(this.markerClassName))
                    this.markerClassName)) return;
+
                return;
             divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker", function(event, key, value) {
+
             divSpan.addClass(this.markerClassName).append(inst.dpDiv).
 +
                on("setData.datepicker", function (event, key, value) {
 
                 inst.settings[key] = value;
 
                 inst.settings[key] = value;
             }).bind("getData.datepicker", function(event, key) {
+
             }).on("getData.datepicker", function (event, key) {
 
                 return this._get(inst, key);
 
                 return this._get(inst, key);
 
             });
 
             });
第5,759行: 第5,761行:
 
             inst.dpDiv.css("display", "block");
 
             inst.dpDiv.css("display", "block");
 
         },
 
         },
         _dialogDatepicker: function(input, date, onSelect, settings, pos) {
+
         _dialogDatepicker: function (input, date, onSelect, settings, pos) {
 
             var inst = this._dialogInst;
 
             var inst = this._dialogInst;
 
             if (!inst) {
 
             if (!inst) {
 
                 this.uuid += 1;
 
                 this.uuid += 1;
 
                 var id = 'dp' + this.uuid;
 
                 var id = 'dp' + this.uuid;
                 this._dialogInput = $('<input type="text" id="' + id + '" style="position: absolute; top: -100px; width: 0px;"/>');
+
                 this._dialogInput = $('<input type="text" id="' + id +
 +
                    '" style="position: absolute; top: -100px; width: 0px;"/>');
 
                 this._dialogInput.keydown(this._doKeyDown);
 
                 this._dialogInput.keydown(this._doKeyDown);
 
                 $('body').append(this._dialogInput);
 
                 $('body').append(this._dialogInput);
第5,772行: 第5,775行:
 
             }
 
             }
 
             extendRemove(inst.settings, settings || {});
 
             extendRemove(inst.settings, settings || {});
             date = (date && date.constructor == Date ?
+
             date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
                this._formatDate(inst, date) : date);
 
 
             this._dialogInput.val(date);
 
             this._dialogInput.val(date);
 
             this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
 
             this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
第5,781行: 第5,783行:
 
                 var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
 
                 var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
 
                 var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
 
                 var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
                 this._pos = [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
+
                 this._pos =
 +
                    [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
 
             }
 
             }
 
             this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
 
             this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
 
             inst.settings.onSelect = onSelect;
 
             inst.settings.onSelect = onSelect;
             this._inDialog = !0;
+
             this._inDialog = true;
 
             this.dpDiv.addClass(this._dialogClass);
 
             this.dpDiv.addClass(this._dialogClass);
 
             this._showDatepicker(this._dialogInput[0]);
 
             this._showDatepicker(this._dialogInput[0]);
             if ($.blockUI) $.blockUI(this.dpDiv);
+
             if ($.blockUI)
 +
                $.blockUI(this.dpDiv);
 
             $.data(this._dialogInput[0], PROP_NAME, inst);
 
             $.data(this._dialogInput[0], PROP_NAME, inst);
 
             return this;
 
             return this;
 
         },
 
         },
         _destroyDatepicker: function(target) {
+
         _destroyDatepicker: function (target) {
 
             var $target = $(target);
 
             var $target = $(target);
 
             var inst = $.data(target, PROP_NAME);
 
             var inst = $.data(target, PROP_NAME);
第5,800行: 第5,804行:
 
             var nodeName = target.nodeName.toLowerCase();
 
             var nodeName = target.nodeName.toLowerCase();
 
             $.removeData(target, PROP_NAME);
 
             $.removeData(target, PROP_NAME);
             if (
+
             if (nodeName == 'input') {
                nodeName == 'input') {
 
 
                 inst.append.remove();
 
                 inst.append.remove();
 
                 inst.trigger.remove();
 
                 inst.trigger.remove();
                 $target.removeClass(this.markerClassName).unbind('focus', this._showDatepicker).unbind('keydown', this._doKeyDown).unbind('keypress', this._doKeyPress).unbind('keyup', this._doKeyUp);
+
                 $target.removeClass(this.markerClassName).
             } else if (nodeName == 'div' || nodeName == 'span') $target.removeClass(this.markerClassName).empty();
+
                    off('focus', this._showDatepicker).
 +
                    off('keydown', this._doKeyDown).
 +
                    off('keypress', this._doKeyPress).
 +
                    off('keyup', this._doKeyUp);
 +
             }
 +
            else if (nodeName == 'div' || nodeName == 'span')
 +
                $target.removeClass(this.markerClassName).empty();
 
         },
 
         },
         _enableDatepicker: function(target) {
+
         _enableDatepicker: function (target) {
 
             var $target = $(target);
 
             var $target = $(target);
 
             var inst = $.data(target, PROP_NAME);
 
             var inst = $.data(target, PROP_NAME);
第5,815行: 第5,824行:
 
             var nodeName = target.nodeName.toLowerCase();
 
             var nodeName = target.nodeName.toLowerCase();
 
             if (nodeName == 'input') {
 
             if (nodeName == 'input') {
                 target.disabled = !1;
+
                 target.disabled = false;
                 inst.trigger.filter('button').each(function() {
+
                 inst.trigger.filter('button').
                    this.disabled = !1;
+
                    each(function () { this.disabled = false; }).end().
                }).end().filter('img').css({
+
                    filter('img').css({ opacity: '1.0', cursor: '' });
                    opacity: '1.0',
+
             }
                    cursor: ''
+
            else if (nodeName == 'div' || nodeName == 'span') {
                });
 
             } else if (nodeName == 'div' || nodeName == 'span') {
 
 
                 var inline = $target.children('.' + this._inlineClass);
 
                 var inline = $target.children('.' + this._inlineClass);
 
                 inline.children().removeClass('ui-state-disabled');
 
                 inline.children().removeClass('ui-state-disabled');
                 inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", false);
+
                 inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
 +
                    prop("disabled", false);
 
             }
 
             }
             this._disabledInputs = $.map(this._disabledInputs, function(value) {
+
             this._disabledInputs = $.map(this._disabledInputs, function (value) { return (value == target ? null : value); });
                return (
 
                    value == target ? null : value);
 
            });
 
 
         },
 
         },
         _disableDatepicker: function(target) {
+
         _disableDatepicker: function (target) {
 
             var $target = $(target);
 
             var $target = $(target);
 
             var inst = $.data(target, PROP_NAME);
 
             var inst = $.data(target, PROP_NAME);
第5,840行: 第5,845行:
 
             var nodeName = target.nodeName.toLowerCase();
 
             var nodeName = target.nodeName.toLowerCase();
 
             if (nodeName == 'input') {
 
             if (nodeName == 'input') {
                 target.disabled = !0;
+
                 target.disabled = true;
                 inst.trigger.filter('button').each(function() {
+
                 inst.trigger.filter('button').
                    this.disabled = !0;
+
                    each(function () { this.disabled = true; }).end().
                }).end().filter('img').css({
+
                    filter('img').css({ opacity: '0.5', cursor: 'default' });
                    opacity: '0.5',
+
             }
                    cursor: 'default'
+
            else if (nodeName == 'div' || nodeName == 'span') {
                });
 
             } else if (nodeName == 'div' || nodeName == 'span') {
 
 
                 var inline = $target.children('.' + this._inlineClass);
 
                 var inline = $target.children('.' + this._inlineClass);
 
                 inline.children().addClass('ui-state-disabled');
 
                 inline.children().addClass('ui-state-disabled');
                 inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", true);
+
                 inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
 +
                    prop("disabled", true);
 
             }
 
             }
             this._disabledInputs = $.map(this._disabledInputs, function(value) {
+
             this._disabledInputs = $.map(this._disabledInputs, function (value) { return (value == target ? null : value); });
                return (value == target ? null : value);
 
            });
 
 
             this._disabledInputs[this._disabledInputs.length] = target;
 
             this._disabledInputs[this._disabledInputs.length] = target;
 
         },
 
         },
         _isDisabledDatepicker: function(target) {
+
         _isDisabledDatepicker: function (target) {
 
             if (!target) {
 
             if (!target) {
 
                 return false;
 
                 return false;
 
             }
 
             }
 
             for (var i = 0; i < this._disabledInputs.length; i++) {
 
             for (var i = 0; i < this._disabledInputs.length; i++) {
                 if (this._disabledInputs[i] == target) return true;
+
                 if (this._disabledInputs[i] == target)
 +
                    return true;
 
             }
 
             }
 
             return false;
 
             return false;
 
         },
 
         },
         _getInst: function(target) {
+
         _getInst: function (target) {
 
             try {
 
             try {
                 return $.data(
+
                 return $.data(target, PROP_NAME);
                    target, PROP_NAME);
+
             }
             } catch (err) {
+
            catch (err) {
 
                 throw 'Missing instance data for this datepicker';
 
                 throw 'Missing instance data for this datepicker';
 
             }
 
             }
 
         },
 
         },
         _optionDatepicker: function(target, name, value) {
+
         _optionDatepicker: function (target, name, value) {
 
             var inst = this._getInst(target);
 
             var inst = this._getInst(target);
 
             if (arguments.length == 2 && typeof name == 'string') {
 
             if (arguments.length == 2 && typeof name == 'string') {
                 return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) : (inst ? (name == 'all' ? $.extend({}, inst.settings) : this._get(inst, name)) : null));
+
                 return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
 +
                    (inst ? (name == 'all' ? $.extend({}, inst.settings) :
 +
                        this._get(inst, name)) : null));
 
             }
 
             }
 
             var settings = name || {};
 
             var settings = name || {};
第5,892行: 第5,897行:
 
                 var maxDate = this._getMinMaxDate(inst, 'max');
 
                 var maxDate = this._getMinMaxDate(inst, 'max');
 
                 extendRemove(inst.settings, settings);
 
                 extendRemove(inst.settings, settings);
                 if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined) inst.settings.minDate = this._formatDate(inst, minDate);
+
                 if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
                 if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined) inst.settings.maxDate = this._formatDate(inst, maxDate);
+
                    inst.settings.minDate = this._formatDate(inst, minDate);
 +
                 if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
 +
                    inst.settings.maxDate = this._formatDate(inst, maxDate);
 
                 this._attachments($(target), inst);
 
                 this._attachments($(target), inst);
 
                 this._autoSize(inst);
 
                 this._autoSize(inst);
第5,901行: 第5,908行:
 
             }
 
             }
 
         },
 
         },
         _changeDatepicker: function(target, name, value) {
+
         _changeDatepicker: function (target, name, value) {
 
             this._optionDatepicker(target, name, value);
 
             this._optionDatepicker(target, name, value);
 
         },
 
         },
         _refreshDatepicker: function(target) {
+
         _refreshDatepicker: function (target) {
 
             var inst = this._getInst(target);
 
             var inst = this._getInst(target);
 
             if (inst) {
 
             if (inst) {
第5,910行: 第5,917行:
 
             }
 
             }
 
         },
 
         },
         _setDateDatepicker: function(target, date) {
+
         _setDateDatepicker: function (target, date) {
 
             var inst = this._getInst(target);
 
             var inst = this._getInst(target);
 
             if (inst) {
 
             if (inst) {
第5,918行: 第5,925行:
 
             }
 
             }
 
         },
 
         },
         _getDateDatepicker: function(target, noDefault) {
+
         _getDateDatepicker: function (target, noDefault) {
 
             var inst = this._getInst(target);
 
             var inst = this._getInst(target);
             if (inst && !inst.inline) this._setDateFromField(inst, noDefault);
+
             if (inst && !inst.inline)
 +
                this._setDateFromField(inst, noDefault);
 
             return (inst ? this._getDate(inst) : null);
 
             return (inst ? this._getDate(inst) : null);
 
         },
 
         },
         _doKeyDown: function(event) {
+
         _doKeyDown: function (event) {
 
             var inst = $.datepicker._getInst(event.target);
 
             var inst = $.datepicker._getInst(event.target);
             var handled = !0;
+
             var handled = true;
 
             var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
 
             var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
             inst._keyEvent = !0;
+
             inst._keyEvent = true;
             if ($.datepicker._datepickerShowing) switch (event.keyCode) {
+
             if ($.datepicker._datepickerShowing)
 +
                switch (event.keyCode) {
 
                     case 9:
 
                     case 9:
 
                         $.datepicker._hideDatepicker();
 
                         $.datepicker._hideDatepicker();
                         handled = !1;
+
                         handled = false;
 
                         break;
 
                         break;
 
                     case 13:
 
                     case 13:
                         var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + $.datepicker._currentClass + ')', inst.dpDiv);
+
                         var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                         if (sel[0]) $.
+
                            $.datepicker._currentClass + ')', inst.dpDiv);
                        datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
+
                         if (sel[0])
 +
                            $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
 
                         var onSelect = $.datepicker._get(inst, 'onSelect');
 
                         var onSelect = $.datepicker._get(inst, 'onSelect');
 
                         if (onSelect) {
 
                         if (onSelect) {
 
                             var dateStr = $.datepicker._formatDate(inst);
 
                             var dateStr = $.datepicker._formatDate(inst);
 
                             onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
 
                             onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
                         } else $.datepicker._hideDatepicker();
+
                         }
 +
                        else
 +
                            $.datepicker._hideDatepicker();
 
                         return false;
 
                         return false;
 
                         break;
 
                         break;
第5,948行: 第5,960行:
 
                         break;
 
                         break;
 
                     case 33:
 
                     case 33:
                         $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, 'stepBigMonths') : -$.datepicker._get(inst, 'stepMonths')), 'M');
+
                         $.datepicker._adjustDate(event.target, (event.ctrlKey ?
 +
                            -$.datepicker._get(inst, 'stepBigMonths') :
 +
                            -$.datepicker._get(inst, 'stepMonths')), 'M');
 
                         break;
 
                         break;
 
                     case 34:
 
                     case 34:
                         $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, 'stepBigMonths') : +$.datepicker._get(inst, 'stepMonths')), 'M');
+
                         $.datepicker._adjustDate(event.target, (event.ctrlKey ?
 +
                            +$.datepicker._get(inst, 'stepBigMonths') :
 +
                            +$.datepicker._get(inst, 'stepMonths')), 'M');
 
                         break;
 
                         break;
 
                     case 35:
 
                     case 35:
                         if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
+
                         if (event.ctrlKey || event.metaKey)
 +
                            $.datepicker._clearDate(event.target);
 
                         handled = event.ctrlKey || event.metaKey;
 
                         handled = event.ctrlKey || event.metaKey;
 
                         break;
 
                         break;
 
                     case 36:
 
                     case 36:
                         if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
+
                         if (event.ctrlKey || event.metaKey)
 +
                            $.datepicker._gotoToday(event.target);
 
                         handled = event.ctrlKey || event.metaKey;
 
                         handled = event.ctrlKey || event.metaKey;
 
                         break;
 
                         break;
 
                     case 37:
 
                     case 37:
                         if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
+
                         if (event.ctrlKey || event.metaKey)
                         handled =
+
                            $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
                            event.ctrlKey || event.metaKey;
+
                         handled = event.ctrlKey || event.metaKey;
                         if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, 'stepBigMonths') : -$.datepicker._get(inst, 'stepMonths')), 'M');
+
                         if (event.originalEvent.altKey)
 +
                            $.datepicker._adjustDate(event.target, (event.ctrlKey ?
 +
                                -$.datepicker._get(inst, 'stepBigMonths') :
 +
                                -$.datepicker._get(inst, 'stepMonths')), 'M');
 
                         break;
 
                         break;
 
                     case 38:
 
                     case 38:
                         if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
+
                         if (event.ctrlKey || event.metaKey)
 +
                            $.datepicker._adjustDate(event.target, -7, 'D');
 
                         handled = event.ctrlKey || event.metaKey;
 
                         handled = event.ctrlKey || event.metaKey;
 
                         break;
 
                         break;
 
                     case 39:
 
                     case 39:
                         if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
+
                         if (event.ctrlKey || event.metaKey)
 +
                            $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
 
                         handled = event.ctrlKey || event.metaKey;
 
                         handled = event.ctrlKey || event.metaKey;
                         if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, 'stepBigMonths') : +$.datepicker._get(inst, 'stepMonths')), 'M');
+
                         if (event.originalEvent.altKey)
 +
                            $.datepicker._adjustDate(event.target, (event.ctrlKey ?
 +
                                +$.datepicker._get(inst, 'stepBigMonths') :
 +
                                +$.datepicker._get(inst, 'stepMonths')), 'M');
 
                         break;
 
                         break;
 
                     case 40:
 
                     case 40:
                         if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
+
                         if (event.ctrlKey || event.metaKey)
 +
                            $.datepicker._adjustDate(event.target, +7, 'D');
 
                         handled = event.ctrlKey || event.metaKey;
 
                         handled = event.ctrlKey || event.metaKey;
 
                         break;
 
                         break;
                     default:
+
                     default: handled = false;
                        handled = !1;
+
                 }
                 } else if (event.keyCode == 36 && event.ctrlKey) $.datepicker._showDatepicker(this);
+
            else if (event.keyCode == 36 && event.ctrlKey)
                else {
+
                $.datepicker._showDatepicker(this);
                    handled = !1;
+
            else {
                } if (handled) {
+
                handled = false;
 +
            }
 +
            if (handled) {
 
                 event.preventDefault();
 
                 event.preventDefault();
 
                 event.stopPropagation();
 
                 event.stopPropagation();
 
             }
 
             }
 
         },
 
         },
         _doKeyPress: function(event) {
+
         _doKeyPress: function (event) {
             var inst = $.datepicker.
+
             var inst = $.datepicker._getInst(event.target);
            _getInst(event.target);
 
 
             if ($.datepicker._get(inst, 'constrainInput')) {
 
             if ($.datepicker._get(inst, 'constrainInput')) {
 
                 var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
 
                 var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
第5,999行: 第6,027行:
 
             }
 
             }
 
         },
 
         },
         _doKeyUp: function(event) {
+
         _doKeyUp: function (event) {
 
             var inst = $.datepicker._getInst(event.target);
 
             var inst = $.datepicker._getInst(event.target);
 
             if (inst.input.val() != inst.lastVal) {
 
             if (inst.input.val() != inst.lastVal) {
第6,009行: 第6,037行:
 
                         $.datepicker._updateDatepicker(inst);
 
                         $.datepicker._updateDatepicker(inst);
 
                     }
 
                     }
                 } catch (err) {
+
                 }
 +
                catch (err) {
 
                     $.datepicker.log(err);
 
                     $.datepicker.log(err);
 
                 }
 
                 }
第6,015行: 第6,044行:
 
             return true;
 
             return true;
 
         },
 
         },
         _showDatepicker: function(input) {
+
         _showDatepicker: function (input) {
 
             input = input.target || input;
 
             input = input.target || input;
             if (input.nodeName.toLowerCase() != 'input') input = $('input', input.parentNode)[0];
+
             if (input.nodeName.toLowerCase() != 'input')
             if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) return;
+
                input = $('input', input.parentNode)[0];
 +
             if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input)
 +
                return;
 
             var inst = $.datepicker._getInst(input);
 
             var inst = $.datepicker._getInst(input);
 
             if ($.datepicker._curInst && $.datepicker._curInst != inst) {
 
             if ($.datepicker._curInst && $.datepicker._curInst != inst) {
第6,035行: 第6,066行:
 
             $.datepicker._lastInput = input;
 
             $.datepicker._lastInput = input;
 
             $.datepicker._setDateFromField(inst);
 
             $.datepicker._setDateFromField(inst);
             if ($.datepicker._inDialog) input.value = '';
+
             if ($.datepicker._inDialog)
 +
                input.value = '';
 
             if (!$.datepicker._pos) {
 
             if (!$.datepicker._pos) {
 
                 $.datepicker._pos = $.datepicker._findPos(input);
 
                 $.datepicker._pos = $.datepicker._findPos(input);
 
                 $.datepicker._pos[1] += input.offsetHeight;
 
                 $.datepicker._pos[1] += input.offsetHeight;
 
             }
 
             }
             var isFixed = !1;
+
             var isFixed = false;
             $(input).parents().each(function() {
+
             $(input).parents().each(function () {
 
                 isFixed |= $(this).css('position') == 'fixed';
 
                 isFixed |= $(this).css('position') == 'fixed';
 
                 return !isFixed;
 
                 return !isFixed;
 
             });
 
             });
             var offset = {
+
             var offset = { left: $.datepicker._pos[0], top: $.datepicker._pos[1] };
                left: $.datepicker._pos[0],
 
                top: $.datepicker._pos[1]
 
            };
 
 
             $.datepicker._pos = null;
 
             $.datepicker._pos = null;
 
             inst.dpDiv.empty();
 
             inst.dpDiv.empty();
             inst.dpDiv.css({
+
             inst.dpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' });
                position: 'absolute',
 
                display: 'block',
 
                top: '-1000px'
 
            });
 
 
             $.datepicker._updateDatepicker(inst);
 
             $.datepicker._updateDatepicker(inst);
             offset = $.datepicker.
+
             offset = $.datepicker._checkOffset(inst, offset, isFixed);
            _checkOffset(inst, offset, isFixed);
+
             inst.dpDiv.css({ position: ($.datepicker._inDialog && $.blockUI ?
             inst.dpDiv.css({
+
                    'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
                position: ($.datepicker._inDialog && $.blockUI ? 'static' : (isFixed ? 'fixed' : 'absolute')),
+
                 left: offset.left + 'px', top: offset.top + 'px' });
                display: 'none',
 
                 left: offset.left + 'px',
 
                top: offset.top + 'px'
 
            });
 
 
             if (!inst.inline) {
 
             if (!inst.inline) {
 
                 var showAnim = $.datepicker._get(inst, 'showAnim');
 
                 var showAnim = $.datepicker._get(inst, 'showAnim');
 
                 var duration = $.datepicker._get(inst, 'duration');
 
                 var duration = $.datepicker._get(inst, 'duration');
                 var postProcess = function() {
+
                 var postProcess = function () {
 
                     var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
 
                     var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
 
                     if (!!cover.length) {
 
                     if (!!cover.length) {
 
                         var borders = $.datepicker._getBorders(inst.dpDiv);
 
                         var borders = $.datepicker._getBorders(inst.dpDiv);
                         cover.css({
+
                         cover.css({ left: -borders[0], top: -borders[1],
                            left: -borders[0],
+
                             width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight() });
                            top: -borders[1],
 
                             width: inst.dpDiv.outerWidth(),
 
                            height: inst.dpDiv.outerHeight()
 
                        });
 
 
                     }
 
                     }
 
                 };
 
                 };
 
                 inst.dpDiv.zIndex($(input).zIndex() + 1);
 
                 inst.dpDiv.zIndex($(input).zIndex() + 1);
                 $.datepicker._datepickerShowing = !0;
+
                 $.datepicker._datepickerShowing = true;
                 if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim])) inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
+
                 if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim]))
                 else inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
+
                    inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
                 if (!showAnim || !duration) postProcess();
+
                 else
                 if (inst.input.is(':visible') && !inst.input.is(':disabled')) inst.input.focus();
+
                    inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
 +
                 if (!showAnim || !duration)
 +
                    postProcess();
 +
                 if (inst.input.is(':visible') && !inst.input.is(':disabled'))
 +
                    inst.input.focus();
 
                 $.datepicker._curInst = inst;
 
                 $.datepicker._curInst = inst;
 
             }
 
             }
 
         },
 
         },
         _updateDatepicker: function(inst) {
+
         _updateDatepicker: function (inst) {
 
             this.maxRows = 4;
 
             this.maxRows = 4;
 
             var borders = $.datepicker._getBorders(inst.dpDiv);
 
             var borders = $.datepicker._getBorders(inst.dpDiv);
第6,097行: 第6,118行:
 
             var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
 
             var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
 
             if (!!cover.length) {
 
             if (!!cover.length) {
                 cover.css({
+
                 cover.css({ left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight() });
                    left: -borders[0],
 
                    top: -borders[1],
 
                    width: inst.dpDiv.outerWidth(),
 
                    height: inst.dpDiv.outerHeight()
 
                })
 
 
             }
 
             }
 
             inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
 
             inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
第6,109行: 第6,125行:
 
             var width = 17;
 
             var width = 17;
 
             inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
 
             inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
             if (cols > 1) inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
+
             if (cols > 1)
             inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + 'Class']('ui-datepicker-multi');
+
                inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
             inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + 'Class']('ui-datepicker-rtl');
+
             inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
             if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement) inst.input.focus();
+
                'Class']('ui-datepicker-multi');
 +
             inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
 +
                'Class']('ui-datepicker-rtl');
 +
             if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
 +
                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
 +
                inst.input.focus();
 
             if (inst.yearshtml) {
 
             if (inst.yearshtml) {
 
                 var origyearshtml = inst.yearshtml;
 
                 var origyearshtml = inst.yearshtml;
                 setTimeout(function() {
+
                 setTimeout(function () {
 
                     if (origyearshtml === inst.yearshtml && inst.yearshtml) {
 
                     if (origyearshtml === inst.yearshtml && inst.yearshtml) {
 
                         inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
 
                         inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
第6,123行: 第6,144行:
 
             }
 
             }
 
         },
 
         },
         _getBorders: function(elem) {
+
         _getBorders: function (elem) {
             var convert = function(value) {
+
             var convert = function (value) {
                 return {
+
                 return { thin: 1, medium: 2, thick: 3 }[value] || value;
                    thin: 1,
 
                    medium: 2,
 
                    thick: 3
 
                } [value] || value;
 
 
             };
 
             };
             return [parseFloat(convert(elem.css('border-left-width'))), parseFloat(convert(elem.css('border-top-width')))];
+
             return [parseFloat(convert(elem.css('border-left-width'))),
 +
                parseFloat(convert(elem.css('border-top-width')))];
 
         },
 
         },
         _checkOffset: function(inst, offset, isFixed) {
+
         _checkOffset: function (inst, offset, isFixed) {
 
             var dpWidth = inst.dpDiv.outerWidth();
 
             var dpWidth = inst.dpDiv.outerWidth();
 
             var dpHeight = inst.dpDiv.outerHeight();
 
             var dpHeight = inst.dpDiv.outerHeight();
第6,140行: 第6,158行:
 
             var viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft());
 
             var viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft());
 
             var viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
 
             var viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
             offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) :
+
             offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
                0);
 
 
             offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
 
             offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
 
             offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
 
             offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
             offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0);
+
             offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
             offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(dpHeight + inputHeight) : 0);
+
                Math.abs(offset.left + dpWidth - viewWidth) : 0);
 +
             offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
 +
                Math.abs(dpHeight + inputHeight) : 0);
 
             return offset;
 
             return offset;
 
         },
 
         },
         _findPos: function(obj) {
+
         _findPos: function (obj) {
 
             var inst = this._getInst(obj);
 
             var inst = this._getInst(obj);
 
             var isRTL = this._get(inst, 'isRTL');
 
             var isRTL = this._get(inst, 'isRTL');
第6,157行: 第6,176行:
 
             return [position.left, position.top];
 
             return [position.left, position.top];
 
         },
 
         },
         _hideDatepicker: function(input) {
+
         _hideDatepicker: function (input) {
 
             var inst = this._curInst;
 
             var inst = this._curInst;
             if (!inst || (input && inst != $.data(input, PROP_NAME))) return;
+
             if (!inst || (input && inst != $.data(input, PROP_NAME)))
 +
                return;
 
             if (this._datepickerShowing) {
 
             if (this._datepickerShowing) {
 
                 var showAnim = this._get(inst, 'showAnim');
 
                 var showAnim = this._get(inst, 'showAnim');
 
                 var duration = this._get(inst, 'duration');
 
                 var duration = this._get(inst, 'duration');
                 var postProcess = function() {
+
                 var postProcess = function () {
                     $.datepicker.
+
                     $.datepicker._tidyDialog(inst);
                    _tidyDialog(inst);
 
 
                 };
 
                 };
                 if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim])) inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
+
                 if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim]))
                 else inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' : (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
+
                    inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
                 if (!showAnim) postProcess();
+
                 else
                 this._datepickerShowing = !1;
+
                    inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
 +
                        (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
 +
                 if (!showAnim)
 +
                    postProcess();
 +
                 this._datepickerShowing = false;
 
                 var onClose = this._get(inst, 'onClose');
 
                 var onClose = this._get(inst, 'onClose');
                 if (onClose) onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]);
+
                 if (onClose)
 +
                    onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]);
 
                 this._lastInput = null;
 
                 this._lastInput = null;
 
                 if (this._inDialog) {
 
                 if (this._inDialog) {
                     this._dialogInput.css({
+
                     this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
                        position: 'absolute',
 
                        left: '0',
 
                        top: '-100px'
 
                    });
 
 
                     if ($.blockUI) {
 
                     if ($.blockUI) {
 
                         $.unblockUI();
 
                         $.unblockUI();
第6,185行: 第6,205行:
 
                     }
 
                     }
 
                 }
 
                 }
                 this._inDialog = !1;
+
                 this._inDialog = false;
 
             }
 
             }
 
         },
 
         },
         _tidyDialog: function(inst) {
+
         _tidyDialog: function (inst) {
             inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
+
             inst.dpDiv.removeClass(this._dialogClass).off('.ui-datepicker-calendar');
 
         },
 
         },
         _checkExternalClick: function(event) {
+
         _checkExternalClick: function (event) {
             if (!$.datepicker._curInst) return;
+
             if (!$.datepicker._curInst)
             var $target = $(event.target),
+
                return;
                inst = $.datepicker._getInst($target[0]);
+
             var $target = $(event.target), inst = $.datepicker._getInst($target[0]);
             if ((($target[0].id != $.datepicker._mainDivId && $target.parents('#' + $.datepicker._mainDivId).length == 0 && !$target.hasClass($.datepicker.markerClassName) && !$target.closest("." + $.datepicker._triggerClass).length && $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))) || ($target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst)) $.datepicker._hideDatepicker();
+
             if ((($target[0].id != $.datepicker._mainDivId &&
 +
                $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
 +
                !$target.hasClass($.datepicker.markerClassName) &&
 +
                !$target.closest("." + $.datepicker._triggerClass).length &&
 +
                $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))) ||
 +
                ($target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst))
 +
                $.datepicker._hideDatepicker();
 
         },
 
         },
         _adjustDate: function(id, offset, period) {
+
         _adjustDate: function (id, offset, period) {
 
             var target = $(id);
 
             var target = $(id);
 
             var inst = this._getInst(target[0]);
 
             var inst = this._getInst(target[0]);
第6,203行: 第6,229行:
 
                 return;
 
                 return;
 
             }
 
             }
             this._adjustInstDate(inst, offset + (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), period);
+
             this._adjustInstDate(inst, offset +
 +
                (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), period);
 
             this._updateDatepicker(inst);
 
             this._updateDatepicker(inst);
 
         },
 
         },
         _gotoToday: function(id) {
+
         _gotoToday: function (id) {
 
             var target = $(id);
 
             var target = $(id);
 
             var inst = this._getInst(target[0]);
 
             var inst = this._getInst(target[0]);
第6,213行: 第6,240行:
 
                 inst.drawMonth = inst.selectedMonth = inst.currentMonth;
 
                 inst.drawMonth = inst.selectedMonth = inst.currentMonth;
 
                 inst.drawYear = inst.selectedYear = inst.currentYear;
 
                 inst.drawYear = inst.selectedYear = inst.currentYear;
             } else {
+
             }
 +
            else {
 
                 var date = new Date();
 
                 var date = new Date();
 
                 inst.selectedDay = date.getDate();
 
                 inst.selectedDay = date.getDate();
第6,219行: 第6,247行:
 
                 inst.drawYear = inst.selectedYear = date.getFullYear();
 
                 inst.drawYear = inst.selectedYear = date.getFullYear();
 
             }
 
             }
             this
+
             this._notifyChange(inst);
                ._notifyChange(inst);
 
 
             this._adjustDate(target);
 
             this._adjustDate(target);
 
         },
 
         },
         _selectMonthYear: function(id, select, period) {
+
         _selectMonthYear: function (id, select, period) {
 
             var target = $(id);
 
             var target = $(id);
 
             var inst = this._getInst(target[0]);
 
             var inst = this._getInst(target[0]);
             inst['selected' + (period == 'M' ? 'Month' : 'Year')] = inst['draw' + (period == 'M' ? 'Month' : 'Year')] = parseInt(select.options[select.selectedIndex].value, 10);
+
             inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
 +
                inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
 +
                    parseInt(select.options[select.selectedIndex].value, 10);
 
             this._notifyChange(inst);
 
             this._notifyChange(inst);
 
             this._adjustDate(target);
 
             this._adjustDate(target);
 
         },
 
         },
         _selectDay: function(id, month, year, td) {
+
         _selectDay: function (id, month, year, td) {
 
             var target = $(id);
 
             var target = $(id);
 
             if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
 
             if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
第6,241行: 第6,270行:
 
             this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear));
 
             this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear));
 
         },
 
         },
         _clearDate: function(id) {
+
         _clearDate: function (id) {
 
             var target = $(id);
 
             var target = $(id);
 
             var inst = this._getInst(target[0]);
 
             var inst = this._getInst(target[0]);
 
             this._selectDate(target, '');
 
             this._selectDate(target, '');
 
         },
 
         },
         _selectDate: function(id, dateStr) {
+
         _selectDate: function (id, dateStr) {
 
             var target = $(id);
 
             var target = $(id);
 
             var inst = this._getInst(target[0]);
 
             var inst = this._getInst(target[0]);
 
             dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
 
             dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
             if (inst
+
             if (inst.input)
                .input) inst.input.val(dateStr);
+
                inst.input.val(dateStr);
 
             this._updateAlternate(inst);
 
             this._updateAlternate(inst);
 
             var onSelect = this._get(inst, 'onSelect');
 
             var onSelect = this._get(inst, 'onSelect');
             if (onSelect) onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
+
             if (onSelect)
             else if (inst.input) inst.input.trigger('change');
+
                onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
             if (inst.inline) this._updateDatepicker(inst);
+
             else if (inst.input)
 +
                inst.input.trigger('change');
 +
             if (inst.inline)
 +
                this._updateDatepicker(inst);
 
             else {
 
             else {
 
                 this._hideDatepicker();
 
                 this._hideDatepicker();
 
                 this._lastInput = inst.input[0];
 
                 this._lastInput = inst.input[0];
                 if (typeof(inst.input[0]) != 'object') inst.input.focus();
+
                 if (typeof (inst.input[0]) != 'object')
 +
                    inst.input.focus();
 
                 this._lastInput = null;
 
                 this._lastInput = null;
 
             }
 
             }
 
         },
 
         },
         _updateAlternate: function(inst) {
+
         _updateAlternate: function (inst) {
 
             var altField = this._get(inst, 'altField');
 
             var altField = this._get(inst, 'altField');
 
             if (altField) {
 
             if (altField) {
第6,270行: 第6,303行:
 
                 var date = this._getDate(inst);
 
                 var date = this._getDate(inst);
 
                 var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
 
                 var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
                 $(altField).each(function() {
+
                 $(altField).each(function () { $(this).val(dateStr); });
                    $(this).val(dateStr);
 
                });
 
 
             }
 
             }
 
         },
 
         },
         noWeekends: function(date) {
+
         noWeekends: function (date) {
 
             var day = date.getDay();
 
             var day = date.getDay();
 
             return [(day > 0 && day < 6), ''];
 
             return [(day > 0 && day < 6), ''];
 
         },
 
         },
         iso8601Week: function(date) {
+
         iso8601Week: function (date) {
 
             var checkDate = new Date(date.getTime());
 
             var checkDate = new Date(date.getTime());
 
             checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
 
             checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
第6,285行: 第6,316行:
 
             checkDate.setMonth(0);
 
             checkDate.setMonth(0);
 
             checkDate.setDate(1);
 
             checkDate.setDate(1);
             return Math
+
             return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
                .floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
 
 
         },
 
         },
         parseDate: function(format, value, settings) {
+
         parseDate: function (format, value, settings) {
             if (format == null || value == null) throw 'Invalid arguments';
+
             if (format == null || value == null)
 +
                throw 'Invalid arguments';
 
             value = (typeof value == 'object' ? value.toString() : value + '');
 
             value = (typeof value == 'object' ? value.toString() : value + '');
             if (value == '') return null;
+
             if (value == '')
 +
                return null;
 
             var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
 
             var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
             shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
+
             shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
 +
                new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
 
             var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 
             var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 
             var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
 
             var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
第6,302行: 第6,335行:
 
             var day = -1;
 
             var day = -1;
 
             var doy = -1;
 
             var doy = -1;
             var literal = !1;
+
             var literal = false;
             var lookAhead = function(match) {
+
             var lookAhead = function (match) {
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                 if (matches) iFormat++;
+
                 if (matches)
 +
                    iFormat++;
 
                 return matches;
 
                 return matches;
 
             };
 
             };
             var getNumber =
+
             var getNumber = function (match) {
                function(match) {
+
                var isDoubled = lookAhead(match);
                    var isDoubled = lookAhead(match);
+
                var size = (match == '@' ? 14 : (match == '!' ? 20 :
                    var size = (match == '@' ? 14 : (match == '!' ? 20 : (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
+
                    (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
                    var digits = new RegExp('^\\d{1,' + size + '}');
+
                var digits = new RegExp('^\\d{1,' + size + '}');
                    var num = value.substring(iValue).match(digits);
+
                var num = value.substring(iValue).match(digits);
                    if (!num) throw 'Missing number at position ' + iValue;
+
                if (!num)
                    iValue += num[0].length;
+
                    throw 'Missing number at position ' + iValue;
                    return parseInt(num[0], 10);
+
                iValue += num[0].length;
                };
+
                return parseInt(num[0], 10);
             var getName = function(match, shortNames, longNames) {
+
            };
                 var names = $.map(lookAhead(match) ? longNames : shortNames, function(v, k) {
+
             var getName = function (match, shortNames, longNames) {
                     return [
+
                 var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
                        [k, v]
+
                     return [[k, v]];
                    ];
+
                 }).sort(function (a, b) {
                 }).sort(function(a, b) {
 
 
                     return -(a[1].length - b[1].length);
 
                     return -(a[1].length - b[1].length);
 
                 });
 
                 });
 
                 var index = -1;
 
                 var index = -1;
                 $.each(names, function(i, pair) {
+
                 $.each(names, function (i, pair) {
 
                     var name = pair[1];
 
                     var name = pair[1];
 
                     if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
 
                     if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
第6,335行: 第6,368行:
 
                     }
 
                     }
 
                 });
 
                 });
                 if (index != -1) return index + 1;
+
                 if (index != -1)
                 else throw 'Unknown name at position ' + iValue;
+
                    return index + 1;
 +
                 else
 +
                    throw 'Unknown name at position ' + iValue;
 
             };
 
             };
             var checkLiteral = function() {
+
             var checkLiteral = function () {
                 if (value.charAt(iValue) != format.charAt(iFormat)) throw 'Unexpected literal at position ' + iValue;
+
                 if (value.charAt(iValue) != format.charAt(iFormat))
 +
                    throw 'Unexpected literal at position ' + iValue;
 
                 iValue++;
 
                 iValue++;
 
             };
 
             };
第6,345行: 第6,381行:
 
             for (var iFormat = 0; iFormat < format.length; iFormat++) {
 
             for (var iFormat = 0; iFormat < format.length; iFormat++) {
 
                 if (literal)
 
                 if (literal)
                     if (format.charAt(iFormat) ==
+
                     if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                        "'" && !lookAhead("'")) literal = !1;
+
                         literal = false;
                    else checkLiteral();
+
                     else
                else switch (format.charAt(iFormat)) {
 
                    case 'd':
 
                         day = getNumber('d');
 
                        break;
 
                    case 'D':
 
                        getName('D', dayNamesShort, dayNames);
 
                        break;
 
                     case 'o':
 
                        doy = getNumber('o');
 
                        break;
 
                    case 'm':
 
                        month = getNumber('m');
 
                        break;
 
                    case 'M':
 
                        month = getName('M', monthNamesShort, monthNames);
 
                        break;
 
                    case 'y':
 
                        year = getNumber('y');
 
                        break;
 
                    case '@':
 
                        var date = new Date(getNumber('@'));
 
                        year = date.getFullYear();
 
                        month = date.getMonth() + 1;
 
                        day = date.getDate();
 
                        break;
 
                    case '!':
 
                        var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
 
                        year = date.getFullYear();
 
                        month = date.getMonth() + 1;
 
                        day = date.getDate();
 
                        break;
 
                    case "'":
 
                        if (lookAhead("'")) checkLiteral();
 
                        else literal = !0;
 
                        break;
 
                    default:
 
 
                         checkLiteral();
 
                         checkLiteral();
                 }
+
                 else
             }
+
                    switch (format.charAt(iFormat)) {
             if (iValue < value.length) {
+
                        case 'd':
                 var extra = value.substr(iValue);
+
                            day = getNumber('d');
                 if (!/^\s+/.test(extra)) {
+
                            break;
                     throw "Extra/unparsed characters found in date: " + extra;
+
                        case 'D':
                 }
+
                            getName('D', dayNamesShort, dayNames);
             }
+
                            break;
             if (year == -1) year = new Date().getFullYear();
+
                        case 'o':
             else if (year < 100) year += new Date().getFullYear() - new Date().getFullYear() % 100 + (year <= shortYearCutoff ? 0 : -100);
+
                            doy = getNumber('o');
             if (doy > -1) {
+
                            break;
                 month = 1;
+
                        case 'm':
 +
                            month = getNumber('m');
 +
                            break;
 +
                        case 'M':
 +
                            month = getName('M', monthNamesShort, monthNames);
 +
                            break;
 +
                        case 'y':
 +
                            year = getNumber('y');
 +
                            break;
 +
                        case '@':
 +
                            var date = new Date(getNumber('@'));
 +
                            year = date.getFullYear();
 +
                            month = date.getMonth() + 1;
 +
                            day = date.getDate();
 +
                            break;
 +
                        case '!':
 +
                            var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
 +
                            year = date.getFullYear();
 +
                            month = date.getMonth() + 1;
 +
                            day = date.getDate();
 +
                            break;
 +
                        case "'":
 +
                            if (lookAhead("'"))
 +
                                checkLiteral();
 +
                            else
 +
                                literal = true;
 +
                            break;
 +
                        default:
 +
                            checkLiteral();
 +
                    }
 +
             }
 +
             if (iValue < value.length) {
 +
                 var extra = value.substr(iValue);
 +
                 if (!/^\s+/.test(extra)) {
 +
                     throw "Extra/unparsed characters found in date: " + extra;
 +
                 }
 +
             }
 +
             if (year == -1)
 +
                year = new Date().getFullYear();
 +
             else if (year < 100)
 +
                year += new Date().getFullYear() - new Date().getFullYear() % 100 +
 +
                    (year <= shortYearCutoff ? 0 : -100);
 +
             if (doy > -1) {
 +
                 month = 1;
 
                 day = doy;
 
                 day = doy;
 
                 do {
 
                 do {
 
                     var dim = this._getDaysInMonth(year, month - 1);
 
                     var dim = this._getDaysInMonth(year, month - 1);
                     if (day <= dim) break;
+
                     if (day <= dim)
 +
                        break;
 
                     month++;
 
                     month++;
 
                     day -= dim;
 
                     day -= dim;
第6,406行: 第6,450行:
 
             }
 
             }
 
             var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
 
             var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
             if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) throw 'Invalid date';
+
             if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
 +
                throw 'Invalid date';
 
             return date;
 
             return date;
 
         },
 
         },
第6,421行: 第6,466行:
 
         TIMESTAMP: '@',
 
         TIMESTAMP: '@',
 
         W3C: 'yy-mm-dd',
 
         W3C: 'yy-mm-dd',
         _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
+
         _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
         formatDate: function(format, date, settings) {
+
            Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
             if (!date) return '';
+
         formatDate: function (format, date, settings) {
 +
             if (!date)
 +
                return '';
 
             var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 
             var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 
             var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
 
             var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
 
             var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
 
             var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
 
             var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
 
             var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
             var lookAhead = function(
+
             var lookAhead = function (match) {
                match) {
 
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                 if (matches) iFormat++;
+
                 if (matches)
 +
                    iFormat++;
 
                 return matches;
 
                 return matches;
 
             };
 
             };
             var formatNumber = function(match, value, len) {
+
             var formatNumber = function (match, value, len) {
 
                 var num = '' + value;
 
                 var num = '' + value;
 
                 if (lookAhead(match))
 
                 if (lookAhead(match))
                     while (num.length < len) num = '0' + num;
+
                     while (num.length < len)
 +
                        num = '0' + num;
 
                 return num;
 
                 return num;
 
             };
 
             };
             var formatName = function(match, value, shortNames, longNames) {
+
             var formatName = function (match, value, shortNames, longNames) {
 
                 return (lookAhead(match) ? longNames[value] : shortNames[value]);
 
                 return (lookAhead(match) ? longNames[value] : shortNames[value]);
 
             };
 
             };
 
             var output = '';
 
             var output = '';
             var literal = !1;
+
             var literal = false;
 
             if (date)
 
             if (date)
 
                 for (var iFormat = 0; iFormat < format.length; iFormat++) {
 
                 for (var iFormat = 0; iFormat < format.length; iFormat++) {
 
                     if (literal)
 
                     if (literal)
                         if (format.charAt(iFormat) == "'" && !lookAhead("'")) literal = !1;
+
                         if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                        else output += format.charAt(iFormat);
+
                             literal = false;
                    else switch (format.charAt(iFormat)) {
+
                         else
                        case 'd':
 
                             output += formatNumber('d', date.getDate(), 2);
 
                            break;
 
                        case 'D':
 
                            output += formatName('D', date.getDay(), dayNamesShort, dayNames);
 
                            break;
 
                        case 'o':
 
                            output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
 
                            break;
 
                        case 'm':
 
                            output += formatNumber('m', date.getMonth() + 1, 2);
 
                            break;
 
                        case 'M':
 
                            output += formatName('M',
 
                                date.getMonth(), monthNamesShort, monthNames);
 
                            break;
 
                        case 'y':
 
                            output += (lookAhead('y') ? date.getFullYear() : (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
 
                            break;
 
                        case '@':
 
                            output += date.getTime();
 
                            break;
 
                         case '!':
 
                            output += date.getTime() * 10000 + this._ticksTo1970;
 
                            break;
 
                        case "'":
 
                            if (lookAhead("'")) output += "'";
 
                            else literal = !0;
 
                            break;
 
                        default:
 
 
                             output += format.charAt(iFormat);
 
                             output += format.charAt(iFormat);
                     }
+
                     else
 +
                        switch (format.charAt(iFormat)) {
 +
                            case 'd':
 +
                                output += formatNumber('d', date.getDate(), 2);
 +
                                break;
 +
                            case 'D':
 +
                                output += formatName('D', date.getDay(), dayNamesShort, dayNames);
 +
                                break;
 +
                            case 'o':
 +
                                output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
 +
                                break;
 +
                            case 'm':
 +
                                output += formatNumber('m', date.getMonth() + 1, 2);
 +
                                break;
 +
                            case 'M':
 +
                                output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
 +
                                break;
 +
                            case 'y':
 +
                                output += (lookAhead('y') ? date.getFullYear() :
 +
                                    (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
 +
                                break;
 +
                            case '@':
 +
                                output += date.getTime();
 +
                                break;
 +
                            case '!':
 +
                                output += date.getTime() * 10000 + this._ticksTo1970;
 +
                                break;
 +
                            case "'":
 +
                                if (lookAhead("'"))
 +
                                    output += "'";
 +
                                else
 +
                                    literal = true;
 +
                                break;
 +
                            default:
 +
                                output += format.charAt(iFormat);
 +
                        }
 
                 }
 
                 }
 
             return output;
 
             return output;
 
         },
 
         },
         _possibleChars: function(format) {
+
         _possibleChars: function (format) {
 
             var chars = '';
 
             var chars = '';
             var literal = !1;
+
             var literal = false;
             var lookAhead = function(match) {
+
             var lookAhead = function (match) {
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
 
                 var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                 if (matches) iFormat++;
+
                 if (matches)
 +
                    iFormat++;
 
                 return matches;
 
                 return matches;
 
             };
 
             };
 
             for (var iFormat = 0; iFormat < format.length; iFormat++)
 
             for (var iFormat = 0; iFormat < format.length; iFormat++)
 
                 if (literal)
 
                 if (literal)
                     if (format.charAt(iFormat) == "'" && !lookAhead("'")) literal = !1;
+
                     if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                     else chars += format.charAt(iFormat);
+
                        literal = false;
            else switch (format.charAt(iFormat)) {
+
                     else
                case 'd':
+
                        chars += format.charAt(iFormat);
                case 'm':
+
                else
                case 'y':
+
                    switch (format.charAt(iFormat)) {
                case '@':
+
                        case 'd':
                    chars += '0123456789';
+
                        case 'm':
                    break;
+
                        case 'y':
                case 'D':
+
                        case '@':
                case 'M':
+
                            chars += '0123456789';
                    return null;
+
                            break;
                case "'":
+
                        case 'D':
                    if (lookAhead("'")) chars += "'";
+
                        case 'M':
                    else literal = !0;
+
                            return null;
                    break;
+
                        case "'":
                default:
+
                            if (lookAhead("'"))
                    chars += format.charAt(iFormat);
+
                                chars += "'";
            }
+
                            else
 +
                                literal = true;
 +
                            break;
 +
                        default:
 +
                            chars += format.charAt(iFormat);
 +
                    }
 
             return chars;
 
             return chars;
 
         },
 
         },
         _get: function(inst, name) {
+
         _get: function (inst, name) {
             return inst.settings[name] !== undefined ? inst.settings[name] : this._defaults[name];
+
             return inst.settings[name] !== undefined ?
 +
                inst.settings[name] : this._defaults[name];
 
         },
 
         },
         _setDateFromField: function(inst, noDefault) {
+
         _setDateFromField: function (inst, noDefault) {
 
             if (inst.input.val() == inst.lastVal) {
 
             if (inst.input.val() == inst.lastVal) {
 
                 return;
 
                 return;
第6,531行: 第6,591行:
 
             try {
 
             try {
 
                 date = this.parseDate(dateFormat, dates, settings) || defaultDate;
 
                 date = this.parseDate(dateFormat, dates, settings) || defaultDate;
             } catch (event) {
+
             }
 +
            catch (event) {
 
                 this.log(event);
 
                 this.log(event);
 
                 dates = (noDefault ? '' : dates);
 
                 dates = (noDefault ? '' : dates);
第6,543行: 第6,604行:
 
             this._adjustInstDate(inst);
 
             this._adjustInstDate(inst);
 
         },
 
         },
         _getDefaultDate: function(inst) {
+
         _getDefaultDate: function (inst) {
 
             return this._restrictMinMax(inst, this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
 
             return this._restrictMinMax(inst, this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
 
         },
 
         },
         _determineDate: function(inst, date, defaultDate) {
+
         _determineDate: function (inst, date, defaultDate) {
             var offsetNumeric = function(
+
             var offsetNumeric = function (offset) {
                offset) {
 
 
                 var date = new Date();
 
                 var date = new Date();
 
                 date.setDate(date.getDate() + offset);
 
                 date.setDate(date.getDate() + offset);
 
                 return date;
 
                 return date;
 
             };
 
             };
             var offsetString = function(offset) {
+
             var offsetString = function (offset) {
 
                 try {
 
                 try {
 
                     return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), offset, $.datepicker._getFormatConfig(inst));
 
                     return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), offset, $.datepicker._getFormatConfig(inst));
                 } catch (e) {}
+
                 }
                 var date = (offset.toLowerCase().match(/^c/) ? $.datepicker._getDate(inst) : null) || new Date();
+
                catch (e) {
 +
                }
 +
                 var date = (offset.toLowerCase().match(/^c/) ?
 +
                    $.datepicker._getDate(inst) : null) || new Date();
 
                 var year = date.getFullYear();
 
                 var year = date.getFullYear();
 
                 var month = date.getMonth();
 
                 var month = date.getMonth();
第6,588行: 第6,651行:
 
                 return new Date(year, month, day);
 
                 return new Date(year, month, day);
 
             };
 
             };
             var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) : (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
+
             var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
 +
                (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
 
             newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
 
             newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
 
             if (newDate) {
 
             if (newDate) {
第6,598行: 第6,662行:
 
             return this._daylightSavingAdjust(newDate);
 
             return this._daylightSavingAdjust(newDate);
 
         },
 
         },
         _daylightSavingAdjust: function(date) {
+
         _daylightSavingAdjust: function (date) {
             if (!date) return null;
+
             if (!date)
 +
                return null;
 
             date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
 
             date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
 
             return date;
 
             return date;
 
         },
 
         },
         _setDate: function(inst, date, noChange) {
+
         _setDate: function (inst, date, noChange) {
 
             var clear = !date;
 
             var clear = !date;
 
             var origMonth = inst.selectedMonth;
 
             var origMonth = inst.selectedMonth;
第6,611行: 第6,676行:
 
             inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
 
             inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
 
             inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
 
             inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
             if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) this._notifyChange(inst);
+
             if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
 +
                this._notifyChange(inst);
 
             this._adjustInstDate(inst);
 
             this._adjustInstDate(inst);
 
             if (inst.input) {
 
             if (inst.input) {
                 inst.input.
+
                 inst.input.val(clear ? '' : this._formatDate(inst));
                val(clear ? '' : this._formatDate(inst));
 
 
             }
 
             }
 
         },
 
         },
         _getDate: function(inst) {
+
         _getDate: function (inst) {
             var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
+
             var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
 +
                this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
 
             return startDate;
 
             return startDate;
 
         },
 
         },
         _attachHandlers: function(inst) {
+
         _attachHandlers: function (inst) {
 
             var stepMonths = this._get(inst, 'stepMonths');
 
             var stepMonths = this._get(inst, 'stepMonths');
 
             var id = '#' + inst.id.replace(/\\\\/g, "\\");
 
             var id = '#' + inst.id.replace(/\\\\/g, "\\");
             inst.dpDiv.find('[data-handler]').map(function() {
+
             inst.dpDiv.find('[data-handler]').map(function () {
 
                 var handler = {
 
                 var handler = {
                     prev: function() {
+
                     prev: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, -stepMonths, 'M');
 
                         window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, -stepMonths, 'M');
 
                     },
 
                     },
                     next: function() {
+
                     next: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, +stepMonths, 'M');
 
                         window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, +stepMonths, 'M');
 
                     },
 
                     },
                     hide: function() {
+
                     hide: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._hideDatepicker();
 
                         window['DP_jQuery_' + dpuuid].datepicker._hideDatepicker();
 
                     },
 
                     },
                     today: function() {
+
                     today: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._gotoToday(id);
 
                         window['DP_jQuery_' + dpuuid].datepicker._gotoToday(id);
 
                     },
 
                     },
                     selectDay: function() {
+
                     selectDay: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._selectDay(id, +this.getAttribute('data-month'), +this.getAttribute('data-year'), this);
 
                         window['DP_jQuery_' + dpuuid].datepicker._selectDay(id, +this.getAttribute('data-month'), +this.getAttribute('data-year'), this);
 
                         return false;
 
                         return false;
 
                     },
 
                     },
                     selectMonth: function() {
+
                     selectMonth: function () {
                         window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this,
+
                         window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'M');
                            'M');
 
 
                         return false;
 
                         return false;
 
                     },
 
                     },
                     selectYear: function() {
+
                     selectYear: function () {
 
                         window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'Y');
 
                         window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'Y');
 
                         return false;
 
                         return false;
 
                     }
 
                     }
 
                 };
 
                 };
                 $(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
+
                 $(this).on(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
 
             });
 
             });
 
         },
 
         },
         _generateHTML: function(inst) {
+
         _generateHTML: function (inst) {
 
             var today = new Date();
 
             var today = new Date();
 
             today = this._daylightSavingAdjust(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
 
             today = this._daylightSavingAdjust(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
第6,667行: 第6,732行:
 
             var stepMonths = this._get(inst, 'stepMonths');
 
             var stepMonths = this._get(inst, 'stepMonths');
 
             var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
 
             var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
             var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
+
             var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
 +
                new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
 
             var minDate = this._getMinMaxDate(inst, 'min');
 
             var minDate = this._getMinMaxDate(inst, 'min');
             var maxDate = this._getMinMaxDate(inst,
+
             var maxDate = this._getMinMaxDate(inst, 'max');
                'max');
 
 
             var drawMonth = inst.drawMonth - showCurrentAtPos;
 
             var drawMonth = inst.drawMonth - showCurrentAtPos;
 
             var drawYear = inst.drawYear;
 
             var drawYear = inst.drawYear;
第6,692行: 第6,757行:
 
             var prevText = this._get(inst, 'prevText');
 
             var prevText = this._get(inst, 'prevText');
 
             prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst)));
 
             prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst)));
             var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? '<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click"' + ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' : (hideIfNoPrevNext ? '' :
+
             var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
                '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
+
                '<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click"' +
 +
                    ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
 +
                (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
 
             var nextText = this._get(inst, 'nextText');
 
             var nextText = this._get(inst, 'nextText');
 
             nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst)));
 
             nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst)));
             var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? '<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click"' + ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' : (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
+
             var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
 +
                '<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click"' +
 +
                    ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
 +
                (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
 
             var currentText = this._get(inst, 'currentText');
 
             var currentText = this._get(inst, 'currentText');
 
             var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
 
             var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
             currentText = (!
+
             currentText = (!navigationAsDateFormat ? currentText :
                navigationAsDateFormat ? currentText : this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
+
                this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
             var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">' + this._get(inst, 'closeText') + '</button>' : '');
+
             var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">' +
             var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') + (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click"' + '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
+
                this._get(inst, 'closeText') + '</button>' : '');
 +
             var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
 +
                (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click"' +
 +
                    '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
 
             var firstDay = parseInt(this._get(inst, 'firstDay'), 10);
 
             var firstDay = parseInt(this._get(inst, 'firstDay'), 10);
 
             firstDay = (isNaN(firstDay) ? 0 : firstDay);
 
             firstDay = (isNaN(firstDay) ? 0 : firstDay);
第6,710行: 第6,783行:
 
             var dayNamesMin = this._get(inst, 'dayNamesMin');
 
             var dayNamesMin = this._get(inst, 'dayNamesMin');
 
             var monthNames = this._get(inst, 'monthNames');
 
             var monthNames = this._get(inst, 'monthNames');
             var
+
             var monthNamesShort = this._get(inst, 'monthNamesShort');
                monthNamesShort = this._get(inst, 'monthNamesShort');
 
 
             var beforeShowDay = this._get(inst, 'beforeShowDay');
 
             var beforeShowDay = this._get(inst, 'beforeShowDay');
 
             var showOtherMonths = this._get(inst, 'showOtherMonths');
 
             var showOtherMonths = this._get(inst, 'showOtherMonths');
第6,727行: 第6,799行:
 
                     if (isMultiMonth) {
 
                     if (isMultiMonth) {
 
                         calender += '<div class="ui-datepicker-group';
 
                         calender += '<div class="ui-datepicker-group';
                         if (numMonths[1] > 1) switch (col) {
+
                         if (numMonths[1] > 1)
                            case 0:
+
                            switch (col) {
                                calender += ' ui-datepicker-group-first';
+
                                case 0:
                                cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left');
+
                                    calender += ' ui-datepicker-group-first';
                                break;
+
                                    cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left');
                            case numMonths[1] - 1:
+
                                    break;
                                calender += ' ui-datepicker-group-last';
+
                                case numMonths[1] - 1:
                                cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right');
+
                                    calender += ' ui-datepicker-group-last';
                                break;
+
                                    cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right');
                            default:
+
                                    break;
                                calender += ' ui-datepicker-group-middle';
+
                                default:
                                cornerClass = '';
+
                                    calender += ' ui-datepicker-group-middle';
                                break;
+
                                    cornerClass = '';
                        }
+
                                    break;
 +
                            }
 
                         calender += '">';
 
                         calender += '">';
 
                     }
 
                     }
                     calender +=
+
                     calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
                        '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' + (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, row > 0 || col > 0, monthNames, monthNamesShort) + '</div><table class="ui-datepicker-calendar"><thead>' + '<tr>';
+
                        (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
 +
                        (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
 +
                        this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, row > 0 || col > 0, monthNames, monthNamesShort) +
 +
                        '</div><table class="ui-datepicker-calendar"><thead>' +
 +
                        '<tr>';
 
                     var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
 
                     var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
 
                     for (var dow = 0; dow < 7; dow++) {
 
                     for (var dow = 0; dow < 7; dow++) {
 
                         var day = (dow + firstDay) % 7;
 
                         var day = (dow + firstDay) % 7;
                         thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
+
                         thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
 +
                            '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
 
                     }
 
                     }
 
                     calender += thead + '</tr></thead><tbody>';
 
                     calender += thead + '</tr></thead><tbody>';
 
                     var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
 
                     var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
                     if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
+
                     if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
 +
                        inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
 
                     var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
 
                     var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
                     var curRows = Math.ceil((leadDays +
+
                     var curRows = Math.ceil((leadDays + daysInMonth) / 7);
                        daysInMonth) / 7);
 
 
                     var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows);
 
                     var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows);
 
                     this.maxRows = numRows;
 
                     this.maxRows = numRows;
第6,761行: 第6,839行:
 
                     for (var dRow = 0; dRow < numRows; dRow++) {
 
                     for (var dRow = 0; dRow < numRows; dRow++) {
 
                         calender += '<tr>';
 
                         calender += '<tr>';
                         var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' + this._get(inst, 'calculateWeek')(printDate) + '</td>');
+
                         var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
 +
                            this._get(inst, 'calculateWeek')(printDate) + '</td>');
 
                         for (var dow = 0; dow < 7; dow++) {
 
                         for (var dow = 0; dow < 7; dow++) {
                             var daySettings = (beforeShowDay ? beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
+
                             var daySettings = (beforeShowDay ?
 +
                                beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
 
                             var otherMonth = (printDate.getMonth() != drawMonth);
 
                             var otherMonth = (printDate.getMonth() != drawMonth);
                             var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
+
                             var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
                             tbody += '<td class="' + ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + (otherMonth ? ' ui-datepicker-other-month' : '') + ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ? ' ' + this._dayOverClass : '') + (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled' : '') + (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + (unselectable ? '' : ' data-handler="selectDay" data-event="click" data-month="' + printDate.getMonth() + '" data-year="' + printDate.getFullYear() + '"') + '>' + (otherMonth && !showOtherMonths ? '&#xa0;' : (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' + (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') + (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + (otherMonth ? ' ui-priority-secondary' : '') + '" href="#">' + printDate.getDate() + '</a>')) + '</td>';
+
                                (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
 +
                             tbody += '<td class="' +
 +
                                ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') +
 +
                                (otherMonth ? ' ui-datepicker-other-month' : '') +
 +
                                ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) ||
 +
                                    (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
 +
                                    ' ' + this._dayOverClass : '') +
 +
                                (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled' : '') +
 +
                                (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] +
 +
                                    (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') +
 +
                                    (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' +
 +
                                ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') +
 +
                                (unselectable ? '' : ' data-handler="selectDay" data-event="click" data-month="' + printDate.getMonth() + '" data-year="' + printDate.getFullYear() + '"') + '>' +
 +
                                (otherMonth && !showOtherMonths ? '&#xa0;' :
 +
                                    (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
 +
                                        (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
 +
                                        (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') +
 +
                                        (otherMonth ? ' ui-priority-secondary' : '') +
 +
                                        '" href="#">' + printDate.getDate() + '</a>')) + '</td>';
 
                             printDate.setDate(printDate.getDate() + 1);
 
                             printDate.setDate(printDate.getDate() + 1);
 
                             printDate = this._daylightSavingAdjust(printDate);
 
                             printDate = this._daylightSavingAdjust(printDate);
第6,777行: 第6,875行:
 
                         drawYear++;
 
                         drawYear++;
 
                     }
 
                     }
                     calender += '</tbody></table>' + (isMultiMonth ? '</div>' + ((numMonths[0] > 0 && col == numMonths[1] - 1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
+
                     calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
 +
                        ((numMonths[0] > 0 && col == numMonths[1] - 1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
 
                     group += calender;
 
                     group += calender;
 
                 }
 
                 }
 
                 html += group;
 
                 html += group;
 
             }
 
             }
             html += buttonPanel + ($.ui.ie6 && !inst.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
+
             html += buttonPanel + ($.ui.ie6 && !inst.inline ?
             inst._keyEvent = !1;
+
                '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
 +
             inst._keyEvent = false;
 
             return html;
 
             return html;
 
         },
 
         },
         _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, secondary, monthNames, monthNamesShort) {
+
         _generateMonthYearHeader: function (inst, drawMonth, drawYear, minDate, maxDate, secondary, monthNames, monthNamesShort) {
 
             var changeMonth = this._get(inst, 'changeMonth');
 
             var changeMonth = this._get(inst, 'changeMonth');
 
             var changeYear = this._get(inst, 'changeYear');
 
             var changeYear = this._get(inst, 'changeYear');
第6,792行: 第6,892行:
 
             var html = '<div class="ui-datepicker-title">';
 
             var html = '<div class="ui-datepicker-title">';
 
             var monthHtml = '';
 
             var monthHtml = '';
             if (secondary || !changeMonth) monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
+
             if (secondary || !changeMonth)
 +
                monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
 
             else {
 
             else {
 
                 var inMinYear = (minDate && minDate.getFullYear() == drawYear);
 
                 var inMinYear = (minDate && minDate.getFullYear() == drawYear);
 
                 var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
 
                 var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
                 monthHtml +=
+
                 monthHtml += '<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';
                    '<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';
 
 
                 for (var month = 0; month < 12; month++) {
 
                 for (var month = 0; month < 12; month++) {
                     if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) monthHtml += '<option value="' + month + '"' + (month == drawMonth ? ' selected="selected"' : '') + '>' + monthNamesShort[month] + '</option>';
+
                     if ((!inMinYear || month >= minDate.getMonth()) &&
 +
                        (!inMaxYear || month <= maxDate.getMonth()))
 +
                        monthHtml += '<option value="' + month + '"' +
 +
                            (month == drawMonth ? ' selected="selected"' : '') +
 +
                            '>' + monthNamesShort[month] + '</option>';
 
                 }
 
                 }
 
                 monthHtml += '</select>';
 
                 monthHtml += '</select>';
 
             }
 
             }
             if (!showMonthAfterYear) html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
+
             if (!showMonthAfterYear)
 +
                html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
 
             if (!inst.yearshtml) {
 
             if (!inst.yearshtml) {
 
                 inst.yearshtml = '';
 
                 inst.yearshtml = '';
                 if (secondary || !changeYear) html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
+
                 if (secondary || !changeYear)
 +
                    html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
 
                 else {
 
                 else {
 
                     var years = this._get(inst, 'yearRange').split(':');
 
                     var years = this._get(inst, 'yearRange').split(':');
 
                     var thisYear = new Date().getFullYear();
 
                     var thisYear = new Date().getFullYear();
                     var determineYear = function(value) {
+
                     var determineYear = function (value) {
                         var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : parseInt(value, 10)));
+
                         var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
 +
                            (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
 +
                                parseInt(value, 10)));
 
                         return (isNaN(year) ? thisYear : year);
 
                         return (isNaN(year) ? thisYear : year);
 
                     };
 
                     };
第6,820行: 第6,928行:
 
                     inst.yearshtml += '<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';
 
                     inst.yearshtml += '<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';
 
                     for (; year <= endYear; year++) {
 
                     for (; year <= endYear; year++) {
                         inst.yearshtml += '<option value="' + year + '"' + (year == drawYear ? ' selected="selected"' : '') + '>' + year + '</option>';
+
                         inst.yearshtml += '<option value="' + year + '"' +
 +
                            (year == drawYear ? ' selected="selected"' : '') +
 +
                            '>' + year + '</option>';
 
                     }
 
                     }
 
                     inst.yearshtml += '</select>';
 
                     inst.yearshtml += '</select>';
第6,828行: 第6,938行:
 
             }
 
             }
 
             html += this._get(inst, 'yearSuffix');
 
             html += this._get(inst, 'yearSuffix');
             if (showMonthAfterYear) html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
+
             if (showMonthAfterYear)
 +
                html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
 
             html += '</div>';
 
             html += '</div>';
 
             return html;
 
             return html;
 
         },
 
         },
         _adjustInstDate: function(inst, offset, period) {
+
         _adjustInstDate: function (inst, offset, period) {
 
             var year = inst.drawYear + (period == 'Y' ? offset : 0);
 
             var year = inst.drawYear + (period == 'Y' ? offset : 0);
 
             var month = inst.drawMonth + (period == 'M' ? offset : 0);
 
             var month = inst.drawMonth + (period == 'M' ? offset : 0);
             var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period == 'D' ? offset : 0);
+
             var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
 +
                (period == 'D' ? offset : 0);
 
             var date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
 
             var date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
 
             inst.selectedDay = date.getDate();
 
             inst.selectedDay = date.getDate();
 
             inst.drawMonth = inst.selectedMonth = date.getMonth();
 
             inst.drawMonth = inst.selectedMonth = date.getMonth();
 
             inst.drawYear = inst.selectedYear = date.getFullYear();
 
             inst.drawYear = inst.selectedYear = date.getFullYear();
             if (period == 'M' || period == 'Y') this._notifyChange(inst);
+
             if (period == 'M' || period == 'Y')
 +
                this._notifyChange(inst);
 
         },
 
         },
         _restrictMinMax: function(inst, date) {
+
         _restrictMinMax: function (inst, date) {
 
             var minDate = this._getMinMaxDate(inst, 'min');
 
             var minDate = this._getMinMaxDate(inst, 'min');
 
             var maxDate = this._getMinMaxDate(inst, 'max');
 
             var maxDate = this._getMinMaxDate(inst, 'max');
第6,849行: 第6,962行:
 
             return newDate;
 
             return newDate;
 
         },
 
         },
         _notifyChange: function(inst) {
+
         _notifyChange: function (inst) {
 
             var onChange = this._get(inst, 'onChangeMonthYear');
 
             var onChange = this._get(inst, 'onChangeMonthYear');
             if (onChange) onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]);
+
             if (onChange)
 +
                onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]);
 
         },
 
         },
         _getNumberOfMonths: function(inst) {
+
         _getNumberOfMonths: function (inst) {
 
             var numMonths = this._get(inst, 'numberOfMonths');
 
             var numMonths = this._get(inst, 'numberOfMonths');
 
             return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
 
             return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
 
         },
 
         },
         _getMinMaxDate: function(inst, minMax) {
+
         _getMinMaxDate: function (inst, minMax) {
 
             return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
 
             return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
 
         },
 
         },
         _getDaysInMonth: function(year, month) {
+
         _getDaysInMonth: function (year, month) {
 
             return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
 
             return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
 
         },
 
         },
         _getFirstDayOfMonth: function(year, month) {
+
         _getFirstDayOfMonth: function (year, month) {
 
             return new Date(year, month, 1).getDay();
 
             return new Date(year, month, 1).getDay();
 
         },
 
         },
         _canAdjustMonth: function(inst, offset, curYear,
+
         _canAdjustMonth: function (inst, offset, curYear, curMonth) {
            curMonth) {
 
 
             var numMonths = this._getNumberOfMonths(inst);
 
             var numMonths = this._getNumberOfMonths(inst);
 
             var date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
 
             var date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
             if (offset < 0) date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
+
             if (offset < 0)
 +
                date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
 
             return this._isInRange(inst, date);
 
             return this._isInRange(inst, date);
 
         },
 
         },
         _isInRange: function(inst, date) {
+
         _isInRange: function (inst, date) {
 
             var minDate = this._getMinMaxDate(inst, 'min');
 
             var minDate = this._getMinMaxDate(inst, 'min');
 
             var maxDate = this._getMinMaxDate(inst, 'max');
 
             var maxDate = this._getMinMaxDate(inst, 'max');
             return ((!minDate || date.getTime() >= minDate.getTime()) && (!maxDate || date.getTime() <= maxDate.getTime()));
+
             return ((!minDate || date.getTime() >= minDate.getTime()) &&
 +
                (!maxDate || date.getTime() <= maxDate.getTime()));
 
         },
 
         },
         _getFormatConfig: function(inst) {
+
         _getFormatConfig: function (inst) {
 
             var shortYearCutoff = this._get(inst, 'shortYearCutoff');
 
             var shortYearCutoff = this._get(inst, 'shortYearCutoff');
             shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
+
             shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
             return {
+
                new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
                shortYearCutoff: shortYearCutoff,
+
             return { shortYearCutoff: shortYearCutoff,
                 dayNamesShort: this._get(inst, 'dayNamesShort'),
+
                 dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
                dayNames: this._get(inst, 'dayNames'),
+
                 monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames') };
                 monthNamesShort: this._get(inst, 'monthNamesShort'),
 
                monthNames: this._get(inst, 'monthNames')
 
            };
 
 
         },
 
         },
         _formatDate: function(inst, day, month, year) {
+
         _formatDate: function (inst, day, month, year) {
 
             if (!day) {
 
             if (!day) {
                 inst.currentDay =
+
                 inst.currentDay = inst.selectedDay;
                    inst.selectedDay;
 
 
                 inst.currentMonth = inst.selectedMonth;
 
                 inst.currentMonth = inst.selectedMonth;
 
                 inst.currentYear = inst.selectedYear;
 
                 inst.currentYear = inst.selectedYear;
 
             }
 
             }
             var date = (day ? (typeof day == 'object' ? day : this._daylightSavingAdjust(new Date(year, month, day))) : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
+
             var date = (day ? (typeof day == 'object' ? day :
 +
                this._daylightSavingAdjust(new Date(year, month, day))) :
 +
                this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
 
             return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
 
             return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
 
         }
 
         }
 
     });
 
     });
 
 
     function bindHover(dpDiv) {
 
     function bindHover(dpDiv) {
 
         var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
 
         var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
         return dpDiv.delegate(selector, 'mouseout', function() {
+
         return dpDiv.on('mouseout', selector, function () {
 
             $(this).removeClass('ui-state-hover');
 
             $(this).removeClass('ui-state-hover');
             if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
+
             if (this.className.indexOf('ui-datepicker-prev') != -1)
             if (this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
+
                $(this).removeClass('ui-datepicker-prev-hover');
         }).delegate(selector, 'mouseover', function() {
+
             if (this.className.indexOf('ui-datepicker-next') != -1)
 +
                $(this).removeClass('ui-datepicker-next-hover');
 +
         })
 +
            .on('mouseover', selector, function () {
 
             if (!$.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
 
             if (!$.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
 
                 $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
 
                 $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
                 $
+
                 $(this).addClass('ui-state-hover');
                    (this).addClass('ui-state-hover');
+
                 if (this.className.indexOf('ui-datepicker-prev') != -1)
                 if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
+
                    $(this).addClass('ui-datepicker-prev-hover');
                 if (this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
+
                 if (this.className.indexOf('ui-datepicker-next') != -1)
 +
                    $(this).addClass('ui-datepicker-next-hover');
 
             }
 
             }
 
         });
 
         });
 
     }
 
     }
 
 
     function extendRemove(target, props) {
 
     function extendRemove(target, props) {
 
         $.extend(target, props);
 
         $.extend(target, props);
 
         for (var name in props)
 
         for (var name in props)
             if (props[name] == null || props[name] == undefined) target[name] = props[name];
+
             if (props[name] == null || props[name] == undefined)
 +
                target[name] = props[name];
 
         return target;
 
         return target;
     };
+
     }
     $.fn.datepicker = function(options) {
+
    ;
 +
     $.fn.datepicker = function (options) {
 
         if (!this.length) {
 
         if (!this.length) {
 
             return this;
 
             return this;
 
         }
 
         }
 
         if (!$.datepicker.initialized) {
 
         if (!$.datepicker.initialized) {
             $(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv);
+
             $(document).mousedown($.datepicker._checkExternalClick).
             $.datepicker.initialized = !0;
+
                find(document.body).append($.datepicker.dpDiv);
 +
             $.datepicker.initialized = true;
 
         }
 
         }
 
         var otherArgs = Array.prototype.slice.call(arguments, 1);
 
         var otherArgs = Array.prototype.slice.call(arguments, 1);
         if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) return $.datepicker['_' + options + 'Datepicker'].apply($.datepicker, [this[0]].concat(otherArgs));
+
         if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
         if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') return $.datepicker['_' + options + 'Datepicker'].apply($.datepicker, [this[0]].concat(otherArgs));
+
            return $.datepicker['_' + options + 'Datepicker'].
         return this.each(function() {
+
                apply($.datepicker, [this[0]].concat(otherArgs));
             typeof options == 'string' ? $.datepicker['_' + options + 'Datepicker'].apply($.datepicker, [this].concat(otherArgs)) : $.datepicker._attachDatepicker(this, options);
+
         if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
 +
            return $.datepicker['_' + options + 'Datepicker'].
 +
                apply($.datepicker, [this[0]].concat(otherArgs));
 +
         return this.each(function () {
 +
             typeof options == 'string' ?
 +
                $.datepicker['_' + options + 'Datepicker'].
 +
                    apply($.datepicker, [this].concat(otherArgs)) :
 +
                $.datepicker._attachDatepicker(this, options);
 
         });
 
         });
 
     };
 
     };
 
     $.datepicker = new Datepicker();
 
     $.datepicker = new Datepicker();
     $.datepicker.initialized = !1;
+
     $.datepicker.initialized = false;
 
     $.datepicker.uuid = new Date().getTime();
 
     $.datepicker.uuid = new Date().getTime();
 
     $.datepicker.version = "1.9.2";
 
     $.datepicker.version = "1.9.2";
 
     window['DP_jQuery_' + dpuuid] = $;
 
     window['DP_jQuery_' + dpuuid] = $;
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ",
+
     var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ", sizeRelatedOptions = {
        sizeRelatedOptions = {
+
        buttons: true,
            buttons: !0,
+
        height: true,
            height: !0,
+
        maxHeight: true,
            maxHeight: !0,
+
        maxWidth: true,
            maxWidth: !0,
+
        minHeight: true,
            minHeight: !0,
+
        minWidth: true,
            minWidth: !0,
+
        width: true
            width: !0
+
    }, resizableRelatedOptions = {
        },
+
        maxHeight: true,
        resizableRelatedOptions = {
+
        maxWidth: true,
            maxHeight: !0,
+
        minHeight: true,
            maxWidth: !0,
+
        minWidth: true
            minHeight: !0,
+
    };
            minWidth: !0
 
        };
 
 
     $.widget("ui.dialog", {
 
     $.widget("ui.dialog", {
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         options: {
 
         options: {
             autoOpen: !0,
+
             autoOpen: true,
 
             buttons: {},
 
             buttons: {},
             closeOnEscape: !0,
+
             closeOnEscape: true,
 
             closeText: "close",
 
             closeText: "close",
 
             dialogClass: "",
 
             dialogClass: "",
             draggable: !0,
+
             draggable: true,
 
             hide: null,
 
             hide: null,
 
             height: "auto",
 
             height: "auto",
             maxHeight: !1,
+
             maxHeight: false,
             maxWidth: !1,
+
             maxWidth: false,
 
             minHeight: 150,
 
             minHeight: 150,
 
             minWidth: 150,
 
             minWidth: 150,
             modal: !1,
+
             modal: false,
 
             position: {
 
             position: {
 
                 my: "center",
 
                 my: "center",
第6,983行: 第7,106行:
 
                 of: window,
 
                 of: window,
 
                 collision: "fit",
 
                 collision: "fit",
                 using: function(pos) {
+
                 using: function (pos) {
 
                     var topOffset = $(this).css(pos).offset().top;
 
                     var topOffset = $(this).css(pos).offset().top;
 
                     if (topOffset < 0) {
 
                     if (topOffset < 0) {
第6,990行: 第7,113行:
 
                 }
 
                 }
 
             },
 
             },
             resizable: !0,
+
             resizable: true,
 
             show: null,
 
             show: null,
             stack: !0,
+
             stack: true,
 
             title: "",
 
             title: "",
 
             width: 300,
 
             width: 300,
 
             zIndex: 1000
 
             zIndex: 1000
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             this.originalTitle = this.element.attr("title");
 
             this.originalTitle = this.element.attr("title");
 
             if (typeof this.originalTitle !== "string") {
 
             if (typeof this.originalTitle !== "string") {
第7,007行: 第7,130行:
 
             };
 
             };
 
             this.options.title = this.options.title || this.originalTitle;
 
             this.options.title = this.options.title || this.originalTitle;
             var that = this,
+
             var that = this, options = this.options, title = options.title || "&#160;", uiDialog, uiDialogTitlebar, uiDialogTitlebarClose, uiDialogTitle, uiDialogButtonPane;
                options = this.options,
+
             uiDialog = (this.uiDialog = $("<div>"))
                title = options.title || "&#160;",
+
                .addClass(uiDialogClasses + options.dialogClass)
                uiDialog, uiDialogTitlebar, uiDialogTitlebarClose, uiDialogTitle, uiDialogButtonPane;
+
                .css({
             uiDialog = (this.uiDialog = $("<div>")).addClass(uiDialogClasses + options.dialogClass).css({
 
 
                 display: "none",
 
                 display: "none",
                 outline: 0,
+
                 outline: "none",
 
                 zIndex: options.zIndex
 
                 zIndex: options.zIndex
             }).attr("tabIndex", -1).keydown(function(event) {
+
             })
                 if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && event.keyCode === $.ui.keyCode.ESCAPE) {
+
                .attr("tabIndex", -1)
 +
                .keydown(function (event) {
 +
                 if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
 +
                    event.keyCode === $.ui.keyCode.ESCAPE) {
 
                     that.close(event);
 
                     that.close(event);
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 }
 
                 }
             }).mousedown(function(event) {
+
             })
                 that.moveToTop(
+
                .mousedown(function (event) {
                    false, event);
+
                 that.moveToTop(false, event);
             }).appendTo("body");
+
             })
             this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog);
+
                .appendTo("body");
             uiDialogTitlebar = (this.uiDialogTitlebar = $("<div>")).addClass("ui-dialog-titlebar  ui-widget-header  " + "ui-corner-all  ui-helper-clearfix").bind("mousedown", function() {
+
             this.element
 +
                .show()
 +
                .removeAttr("title")
 +
                .addClass("ui-dialog-content ui-widget-content")
 +
                .appendTo(uiDialog);
 +
             uiDialogTitlebar = (this.uiDialogTitlebar = $("<div>"))
 +
                .addClass("ui-dialog-titlebar  ui-widget-header  " +
 +
                "ui-corner-all  ui-helper-clearfix")
 +
                .on("mousedown", function () {
 
                 uiDialog.focus();
 
                 uiDialog.focus();
             }).prependTo(uiDialog);
+
             })
             uiDialogTitlebarClose = $("<a href='#'></a>").addClass("ui-dialog-titlebar-close  ui-corner-all").attr("role", "button").click(function(event) {
+
                .prependTo(uiDialog);
 +
             uiDialogTitlebarClose = $("<a href='#'></a>")
 +
                .addClass("ui-dialog-titlebar-close  ui-corner-all")
 +
                .attr("role", "button")
 +
                .click(function (event) {
 
                 event.preventDefault();
 
                 event.preventDefault();
 
                 that.close(event);
 
                 that.close(event);
             }).appendTo(uiDialogTitlebar);
+
             })
             (this.uiDialogTitlebarCloseText = $("<span>")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose);
+
                .appendTo(uiDialogTitlebar);
             uiDialogTitle = $("<span>").uniqueId().addClass("ui-dialog-title").html(title).prependTo(uiDialogTitlebar);
+
             (this.uiDialogTitlebarCloseText = $("<span>"))
             uiDialogButtonPane = (this.uiDialogButtonPane = $("<div>")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
+
                .addClass("ui-icon ui-icon-closethick")
             (this.uiButtonSet = $("<div>")).addClass("ui-dialog-buttonset").appendTo(
+
                .text(options.closeText)
                uiDialogButtonPane);
+
                .appendTo(uiDialogTitlebarClose);
 +
             uiDialogTitle = $("<span>")
 +
                .uniqueId()
 +
                .addClass("ui-dialog-title")
 +
                .html(title)
 +
                .prependTo(uiDialogTitlebar);
 +
             uiDialogButtonPane = (this.uiDialogButtonPane = $("<div>"))
 +
                .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
 +
             (this.uiButtonSet = $("<div>"))
 +
                .addClass("ui-dialog-buttonset")
 +
                .appendTo(uiDialogButtonPane);
 
             uiDialog.attr({
 
             uiDialog.attr({
 
                 role: "dialog",
 
                 role: "dialog",
第7,051行: 第7,198行:
 
             }
 
             }
 
             this._createButtons(options.buttons);
 
             this._createButtons(options.buttons);
             this._isOpen = !1;
+
             this._isOpen = false;
 
             if ($.fn.bgiframe) {
 
             if ($.fn.bgiframe) {
 
                 uiDialog.bgiframe();
 
                 uiDialog.bgiframe();
 
             }
 
             }
             this._on(uiDialog, {
+
             this._on(uiDialog, { keydown: function (event) {
                keydown: function(event) {
 
 
                     if (!options.modal || event.keyCode !== $.ui.keyCode.TAB) {
 
                     if (!options.modal || event.keyCode !== $.ui.keyCode.TAB) {
 
                         return;
 
                         return;
 
                     }
 
                     }
                     var tabbables = $(":tabbable", uiDialog),
+
                     var tabbables = $(":tabbable", uiDialog), first = tabbables.filter(":first"), last = tabbables.filter(":last");
                        first = tabbables.filter(":first"),
 
                        last = tabbables.filter(":last");
 
 
                     if (event.target === last[0] && !event.shiftKey) {
 
                     if (event.target === last[0] && !event.shiftKey) {
 
                         first.focus(1);
 
                         first.focus(1);
 
                         return false;
 
                         return false;
                     } else if (event.target === first[0] && event.shiftKey) {
+
                     }
 +
                    else if (event.target === first[0] && event.shiftKey) {
 
                         last.focus(1);
 
                         last.focus(1);
 
                         return false;
 
                         return false;
 
                     }
 
                     }
                 }
+
                 } });
            });
 
 
         },
 
         },
         _init: function() {
+
         _init: function () {
 
             if (this.options.autoOpen) {
 
             if (this.options.autoOpen) {
 
                 this.open();
 
                 this.open();
 
             }
 
             }
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             var next, oldPosition = this.oldPosition;
 
             var next, oldPosition = this.oldPosition;
 
             if (this.overlay) {
 
             if (this.overlay) {
第7,084行: 第7,228行:
 
             }
 
             }
 
             this.uiDialog.hide();
 
             this.uiDialog.hide();
             this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
+
             this.element
 +
                .removeClass("ui-dialog-content ui-widget-content")
 +
                .hide()
 +
                .appendTo("body");
 
             this.uiDialog.remove();
 
             this.uiDialog.remove();
 
             if (this.originalTitle) {
 
             if (this.originalTitle) {
第7,092行: 第7,239行:
 
             if (next.length && next[0] !== this.element[0]) {
 
             if (next.length && next[0] !== this.element[0]) {
 
                 next.before(this.element);
 
                 next.before(this.element);
             } else {
+
             }
 +
            else {
 
                 oldPosition.parent.append(this.element);
 
                 oldPosition.parent.append(this.element);
 
             }
 
             }
 
         },
 
         },
         widget: function() {
+
         widget: function () {
 
             return this.uiDialog;
 
             return this.uiDialog;
 
         },
 
         },
         close: function(event) {
+
         close: function (event) {
             var that = this,
+
             var that = this, maxZ, thisZ;
                maxZ, thisZ;
 
 
             if (!this._isOpen) {
 
             if (!this._isOpen) {
 
                 return;
 
                 return;
第7,108行: 第7,255行:
 
                 return;
 
                 return;
 
             }
 
             }
             this._isOpen = !1;
+
             this._isOpen = false;
 
             if (this.overlay) {
 
             if (this.overlay) {
 
                 this.overlay.destroy();
 
                 this.overlay.destroy();
 
             }
 
             }
 
             if (this.options.hide) {
 
             if (this.options.hide) {
                 this._hide(this.uiDialog, this.options.hide, function() {
+
                 this._hide(this.uiDialog, this.options.hide, function () {
 
                     that._trigger("close", event);
 
                     that._trigger("close", event);
 
                 });
 
                 });
             } else {
+
             }
 +
            else {
 
                 this.uiDialog.hide();
 
                 this.uiDialog.hide();
 
                 this._trigger("close", event);
 
                 this._trigger("close", event);
第7,123行: 第7,271行:
 
             if (this.options.modal) {
 
             if (this.options.modal) {
 
                 maxZ = 0;
 
                 maxZ = 0;
                 $(".ui-dialog").each(function() {
+
                 $(".ui-dialog").each(function () {
 
                     if (this !== that.uiDialog[0]) {
 
                     if (this !== that.uiDialog[0]) {
 
                         thisZ = $(this).css("z-index");
 
                         thisZ = $(this).css("z-index");
第7,135行: 第7,283行:
 
             return this;
 
             return this;
 
         },
 
         },
         isOpen: function() {
+
         isOpen: function () {
 
             return this._isOpen;
 
             return this._isOpen;
 
         },
 
         },
         moveToTop: function(force, event) {
+
         moveToTop: function (force, event) {
             var options = this.options,
+
             var options = this.options, saveScroll;
                saveScroll;
+
             if ((options.modal && !force) ||
             if ((options.modal && !force) || (!options.stack && !options.modal)) {
+
                (!options.stack && !options.modal)) {
 
                 return this._trigger("focus", event);
 
                 return this._trigger("focus", event);
 
             }
 
             }
第7,162行: 第7,310行:
 
             return this;
 
             return this;
 
         },
 
         },
         open: function() {
+
         open: function () {
 
             if (this._isOpen) {
 
             if (this._isOpen) {
 
                 return;
 
                 return;
 
             }
 
             }
             var hasFocus, options = this.options,
+
             var hasFocus, options = this.options, uiDialog = this.uiDialog;
                uiDialog = this.uiDialog;
 
 
             this._size();
 
             this._size();
 
             this._position(options.position);
 
             this._position(options.position);
第7,176行: 第7,323行:
 
             if (!hasFocus.length) {
 
             if (!hasFocus.length) {
 
                 hasFocus = this.uiDialogButtonPane.find(":tabbable");
 
                 hasFocus = this.uiDialogButtonPane.find(":tabbable");
                 if (!hasFocus
+
                 if (!hasFocus.length) {
                    .length) {
 
 
                     hasFocus = uiDialog;
 
                     hasFocus = uiDialog;
 
                 }
 
                 }
 
             }
 
             }
 
             hasFocus.eq(0).focus();
 
             hasFocus.eq(0).focus();
             this._isOpen = !0;
+
             this._isOpen = true;
 
             this._trigger("open");
 
             this._trigger("open");
 
             return this;
 
             return this;
 
         },
 
         },
         _createButtons: function(buttons) {
+
         _createButtons: function (buttons) {
             var that = this,
+
             var that = this, hasButtons = false;
                hasButtons = !1;
 
 
             this.uiDialogButtonPane.remove();
 
             this.uiDialogButtonPane.remove();
 
             this.uiButtonSet.empty();
 
             this.uiButtonSet.empty();
 
             if (typeof buttons === "object" && buttons !== null) {
 
             if (typeof buttons === "object" && buttons !== null) {
                 $.each(buttons, function() {
+
                 $.each(buttons, function () {
 
                     return !(hasButtons = true);
 
                     return !(hasButtons = true);
 
                 });
 
                 });
 
             }
 
             }
 
             if (hasButtons) {
 
             if (hasButtons) {
                 $.each(buttons, function(name, props) {
+
                 $.each(buttons, function (name, props) {
 
                     var button, click;
 
                     var button, click;
                     props = $.isFunction(props) ? {
+
                     props = typeof props === 'function' ?
                         click: props,
+
                         { click: props, text: name } :
                        text: name
+
                        props;
                    } : props;
+
                     props = $.extend({ type: "button" }, props);
                     props = $.extend({
 
                        type: "button"
 
                    }, props);
 
 
                     click = props.click;
 
                     click = props.click;
                     props.click = function() {
+
                     props.click = function () {
 
                         click.apply(that.element[0], arguments);
 
                         click.apply(that.element[0], arguments);
 
                     };
 
                     };
                     button = $("<button></button>", props).appendTo(that.uiButtonSet);
+
                     button = $("<button></button>", props)
 +
                        .appendTo(that.uiButtonSet);
 
                     if ($.fn.button) {
 
                     if ($.fn.button) {
 
                         button.button();
 
                         button.button();
第7,217行: 第7,360行:
 
                 this.uiDialog.addClass("ui-dialog-buttons");
 
                 this.uiDialog.addClass("ui-dialog-buttons");
 
                 this.uiDialogButtonPane.appendTo(this.uiDialog);
 
                 this.uiDialogButtonPane.appendTo(this.uiDialog);
             } else {
+
             }
 +
            else {
 
                 this.uiDialog.removeClass("ui-dialog-buttons");
 
                 this.uiDialog.removeClass("ui-dialog-buttons");
 
             }
 
             }
 
         },
 
         },
         _makeDraggable: function() {
+
         _makeDraggable: function () {
             var that = this,
+
             var that = this, options = this.options;
                options = this.options;
 
 
 
 
             function filteredUi(ui) {
 
             function filteredUi(ui) {
 
                 return {
 
                 return {
第7,235行: 第7,377行:
 
                 handle: ".ui-dialog-titlebar",
 
                 handle: ".ui-dialog-titlebar",
 
                 containment: "document",
 
                 containment: "document",
                 start: function(event, ui) {
+
                 start: function (event, ui) {
                     $(this).addClass("ui-dialog-dragging");
+
                     $(this)
 +
                        .addClass("ui-dialog-dragging");
 
                     that._trigger("dragStart", event, filteredUi(ui));
 
                     that._trigger("dragStart", event, filteredUi(ui));
 
                 },
 
                 },
                 drag: function(event, ui) {
+
                 drag: function (event, ui) {
 
                     that._trigger("drag", event, filteredUi(ui));
 
                     that._trigger("drag", event, filteredUi(ui));
 
                 },
 
                 },
                 stop: function(event, ui) {
+
                 stop: function (event, ui) {
                     options.position = [ui.position.left - that.document.scrollLeft(), ui.position.top - that.document.scrollTop()];
+
                     options.position = [
                     $(this).removeClass("ui-dialog-dragging");
+
                        ui.position.left - that.document.scrollLeft(),
 +
                        ui.position.top - that.document.scrollTop()
 +
                    ];
 +
                     $(this)
 +
                        .removeClass("ui-dialog-dragging");
 
                     that._trigger("dragStop", event, filteredUi(ui));
 
                     that._trigger("dragStop", event, filteredUi(ui));
 
                     $.ui.dialog.overlay.resize();
 
                     $.ui.dialog.overlay.resize();
第7,250行: 第7,397行:
 
             });
 
             });
 
         },
 
         },
         _makeResizable: function(handles) {
+
         _makeResizable: function (handles) {
 
             handles = (handles === undefined ? this.options.resizable : handles);
 
             handles = (handles === undefined ? this.options.resizable : handles);
             var that = this,
+
             var that = this, options = this.options, position = this.uiDialog.css("position"), resizeHandles = typeof handles === 'string' ?
                options = this.options,
+
                handles :
                position = this.uiDialog.css("position"),
+
                "n,e,s,w,se,sw,ne,nw";
                resizeHandles = typeof handles === 'string' ? handles : "n,e,s,w,se,sw,ne,nw";
 
 
 
 
             function filteredUi(ui) {
 
             function filteredUi(ui) {
 
                 return {
 
                 return {
第7,268行: 第7,413行:
 
                 cancel: ".ui-dialog-content",
 
                 cancel: ".ui-dialog-content",
 
                 containment: "document",
 
                 containment: "document",
                 alsoResize: this.
+
                 alsoResize: this.element,
                element,
 
 
                 maxWidth: options.maxWidth,
 
                 maxWidth: options.maxWidth,
 
                 maxHeight: options.maxHeight,
 
                 maxHeight: options.maxHeight,
第7,275行: 第7,419行:
 
                 minHeight: this._minHeight(),
 
                 minHeight: this._minHeight(),
 
                 handles: resizeHandles,
 
                 handles: resizeHandles,
                 start: function(event, ui) {
+
                 start: function (event, ui) {
 
                     $(this).addClass("ui-dialog-resizing");
 
                     $(this).addClass("ui-dialog-resizing");
 
                     that._trigger("resizeStart", event, filteredUi(ui));
 
                     that._trigger("resizeStart", event, filteredUi(ui));
 
                 },
 
                 },
                 resize: function(event, ui) {
+
                 resize: function (event, ui) {
 
                     that._trigger("resize", event, filteredUi(ui));
 
                     that._trigger("resize", event, filteredUi(ui));
 
                 },
 
                 },
                 stop: function(event, ui) {
+
                 stop: function (event, ui) {
 
                     $(this).removeClass("ui-dialog-resizing");
 
                     $(this).removeClass("ui-dialog-resizing");
 
                     options.height = $(this).height();
 
                     options.height = $(this).height();
第7,289行: 第7,433行:
 
                     $.ui.dialog.overlay.resize();
 
                     $.ui.dialog.overlay.resize();
 
                 }
 
                 }
             }).css("position", position).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se");
+
             })
 +
                .css("position", position)
 +
                .find(".ui-resizable-se")
 +
                .addClass("ui-icon ui-icon-grip-diagonal-se");
 
         },
 
         },
         _minHeight: function() {
+
         _minHeight: function () {
 
             var options = this.options;
 
             var options = this.options;
 
             if (options.height === "auto") {
 
             if (options.height === "auto") {
 
                 return options.minHeight;
 
                 return options.minHeight;
             } else {
+
             }
 +
            else {
 
                 return Math.min(options.minHeight, options.height);
 
                 return Math.min(options.minHeight, options.height);
 
             }
 
             }
 
         },
 
         },
         _position: function(position) {
+
         _position: function (position) {
             var myAt = [],
+
             var myAt = [], offset = [0, 0], isVisible;
                offset = [0, 0],
 
                isVisible;
 
 
             if (position) {
 
             if (position) {
 
                 if (typeof position === "string" || (typeof position === "object" && "0" in position)) {
 
                 if (typeof position === "string" || (typeof position === "object" && "0" in position)) {
                     myAt = position.split ? position.split(" ") : [position[0],
+
                     myAt = position.split ? position.split(" ") : [position[0], position[1]];
                        position[1]
 
                    ];
 
 
                     if (myAt.length === 1) {
 
                     if (myAt.length === 1) {
 
                         myAt[1] = myAt[0];
 
                         myAt[1] = myAt[0];
 
                     }
 
                     }
                     $.each(["left", "top"], function(i, offsetPosition) {
+
                     $.each(["left", "top"], function (i, offsetPosition) {
 
                         if (+myAt[i] === myAt[i]) {
 
                         if (+myAt[i] === myAt[i]) {
 
                             offset[i] = myAt[i];
 
                             offset[i] = myAt[i];
第7,318行: 第7,462行:
 
                     });
 
                     });
 
                     position = {
 
                     position = {
                         my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " + myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
+
                         my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
 +
                            myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
 
                         at: myAt.join(" ")
 
                         at: myAt.join(" ")
 
                     };
 
                     };
 
                 }
 
                 }
 
                 position = $.extend({}, $.ui.dialog.prototype.options.position, position);
 
                 position = $.extend({}, $.ui.dialog.prototype.options.position, position);
             } else {
+
             }
 +
            else {
 
                 position = $.ui.dialog.prototype.options.position;
 
                 position = $.ui.dialog.prototype.options.position;
 
             }
 
             }
第7,335行: 第7,481行:
 
             }
 
             }
 
         },
 
         },
         _setOptions: function(options) {
+
         _setOptions: function (options) {
             var that = this,
+
             var that = this, resizableOptions = {}, resize = false;
                resizableOptions = {},
+
             $.each(options, function (key, value) {
                resize = !1;
 
             $.each(options, function(key, value) {
 
 
                 that._setOption(key, value);
 
                 that._setOption(key, value);
 
                 if (key in sizeRelatedOptions) {
 
                 if (key in sizeRelatedOptions) {
                     resize = !0;
+
                     resize = true;
 
                 }
 
                 }
 
                 if (key in resizableRelatedOptions) {
 
                 if (key in resizableRelatedOptions) {
第7,355行: 第7,499行:
 
             }
 
             }
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
             var isDraggable, isResizable,
+
             var isDraggable, isResizable, uiDialog = this.uiDialog;
                uiDialog = this.uiDialog;
 
 
             switch (key) {
 
             switch (key) {
 
                 case "buttons":
 
                 case "buttons":
第7,366行: 第7,509行:
 
                     break;
 
                     break;
 
                 case "dialogClass":
 
                 case "dialogClass":
                     uiDialog.removeClass(this.options.dialogClass).addClass(uiDialogClasses + value);
+
                     uiDialog
 +
                        .removeClass(this.options.dialogClass)
 +
                        .addClass(uiDialogClasses + value);
 
                     break;
 
                     break;
 
                 case "disabled":
 
                 case "disabled":
 
                     if (value) {
 
                     if (value) {
 
                         uiDialog.addClass("ui-dialog-disabled");
 
                         uiDialog.addClass("ui-dialog-disabled");
                     } else {
+
                     }
 +
                    else {
 
                         uiDialog.removeClass("ui-dialog-disabled");
 
                         uiDialog.removeClass("ui-dialog-disabled");
 
                     }
 
                     }
第7,400行: 第7,546行:
 
                     break;
 
                     break;
 
                 case "title":
 
                 case "title":
                     $(".ui-dialog-title", this.uiDialogTitlebar).html("" + (value || "&#160;"));
+
                     $(".ui-dialog-title", this.uiDialogTitlebar)
 +
                        .html("" + (value || "&#160;"));
 
                     break;
 
                     break;
 
             }
 
             }
 
             this._super(key, value);
 
             this._super(key, value);
 
         },
 
         },
         _size: function() {
+
         _size: function () {
             var
+
             var nonContentHeight, minContentHeight, autoHeight, options = this.options, isVisible = this.uiDialog.is(":visible");
                nonContentHeight, minContentHeight, autoHeight, options = this.options,
 
                isVisible = this.uiDialog.is(":visible");
 
 
             this.element.show().css({
 
             this.element.show().css({
 
                 width: "auto",
 
                 width: "auto",
第7,420行: 第7,565行:
 
                 height: "auto",
 
                 height: "auto",
 
                 width: options.width
 
                 width: options.width
             }).outerHeight();
+
             })
 +
                .outerHeight();
 
             minContentHeight = Math.max(0, options.minHeight - nonContentHeight);
 
             minContentHeight = Math.max(0, options.minHeight - nonContentHeight);
 
             if (options.height === "auto") {
 
             if (options.height === "auto") {
第7,428行: 第7,574行:
 
                         height: "auto"
 
                         height: "auto"
 
                     });
 
                     });
                 } else {
+
                 }
 +
                else {
 
                     this.uiDialog.show();
 
                     this.uiDialog.show();
 
                     autoHeight = this.element.css("height", "auto").height();
 
                     autoHeight = this.element.css("height", "auto").height();
第7,436行: 第7,583行:
 
                     this.element.height(Math.max(autoHeight, minContentHeight));
 
                     this.element.height(Math.max(autoHeight, minContentHeight));
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 this.element.height(Math.max(options.height - nonContentHeight, 0));
 
                 this.element.height(Math.max(options.height - nonContentHeight, 0));
 
             }
 
             }
第7,447行: 第7,595行:
 
         uuid: 0,
 
         uuid: 0,
 
         maxZ: 0,
 
         maxZ: 0,
         getTitleId: function($el) {
+
         getTitleId: function ($el) {
 
             var id = $el.attr("id");
 
             var id = $el.attr("id");
 
             if (!id) {
 
             if (!id) {
第7,453行: 第7,601行:
 
                 id = this.uuid;
 
                 id = this.uuid;
 
             }
 
             }
             return "ui-dialog-title-" +
+
             return "ui-dialog-title-" + id;
                id;
 
 
         },
 
         },
         overlay: function(dialog) {
+
         overlay: function (dialog) {
 
             this.$el = $.ui.dialog.overlay.create(dialog);
 
             this.$el = $.ui.dialog.overlay.create(dialog);
 
         }
 
         }
第7,464行: 第7,611行:
 
         oldInstances: [],
 
         oldInstances: [],
 
         maxZ: 0,
 
         maxZ: 0,
         events: $.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(event) {
+
         events: $.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (event) {
 
             return event + ".dialog-overlay";
 
             return event + ".dialog-overlay";
 
         }).join(" "),
 
         }).join(" "),
         create: function(dialog) {
+
         create: function (dialog) {
 
             if (this.instances.length === 0) {
 
             if (this.instances.length === 0) {
                 setTimeout(function() {
+
                 setTimeout(function () {
 
                     if ($.ui.dialog.overlay.instances.length) {
 
                     if ($.ui.dialog.overlay.instances.length) {
                         $(document).bind($.ui.dialog.overlay.events, function(event) {
+
                         $(document).on($.ui.dialog.overlay.events, function (event) {
 
                             if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
 
                             if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
 
                                 return false;
 
                                 return false;
第7,478行: 第7,625行:
 
                     }
 
                     }
 
                 }, 1);
 
                 }, 1);
                 $(window).bind("resize.dialog-overlay", $.ui.dialog.overlay.resize);
+
                 $(window).on("resize.dialog-overlay", $.ui.dialog.overlay.resize);
 
             }
 
             }
 
             var $el = (this.oldInstances.pop() || $("<div>").addClass("ui-widget-overlay"));
 
             var $el = (this.oldInstances.pop() || $("<div>").addClass("ui-widget-overlay"));
             $(document).bind("keydown.dialog-overlay", function(event) {
+
             $(document).on("keydown.dialog-overlay", function (event) {
 
                 var instances = $.ui.dialog.overlay.instances;
 
                 var instances = $.ui.dialog.overlay.instances;
                 if (instances.length !== 0 && instances[instances.length - 1] === $el && dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && event.keyCode === $.ui.keyCode.ESCAPE) {
+
                 if (instances.length !== 0 && instances[instances.length - 1] === $el &&
 +
                    dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
 +
                    event.keyCode === $.ui.keyCode.ESCAPE) {
 
                     dialog.close(event);
 
                     dialog.close(event);
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 }
 
                 }
 
             });
 
             });
             $el
+
             $el.appendTo(document.body).css({
                .appendTo(document.body).css({
+
                width: this.width(),
                    width: this.width(),
+
                height: this.height()
                    height: this.height()
+
            });
                });
 
 
             if ($.fn.bgiframe) {
 
             if ($.fn.bgiframe) {
 
                 $el.bgiframe();
 
                 $el.bgiframe();
第7,499行: 第7,647行:
 
             return $el;
 
             return $el;
 
         },
 
         },
         destroy: function($el) {
+
         destroy: function ($el) {
             var indexOf = $.inArray($el, this.instances),
+
             var indexOf = $.inArray($el, this.instances), maxZ = 0;
                maxZ = 0;
 
 
             if (indexOf !== -1) {
 
             if (indexOf !== -1) {
 
                 this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
 
                 this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
 
             }
 
             }
 
             if (this.instances.length === 0) {
 
             if (this.instances.length === 0) {
                 $([document, window]).unbind(".dialog-overlay");
+
                 $([document, window]).off(".dialog-overlay");
 
             }
 
             }
 
             $el.height(0).width(0).remove();
 
             $el.height(0).width(0).remove();
             $.each(this.instances, function() {
+
             $.each(this.instances, function () {
 
                 maxZ = Math.max(maxZ, this.css("z-index"));
 
                 maxZ = Math.max(maxZ, this.css("z-index"));
 
             });
 
             });
 
             this.maxZ = maxZ;
 
             this.maxZ = maxZ;
 
         },
 
         },
         height: function() {
+
         height: function () {
 
             var scrollHeight, offsetHeight;
 
             var scrollHeight, offsetHeight;
 
             if ($.ui.ie) {
 
             if ($.ui.ie) {
第7,521行: 第7,668行:
 
                 if (scrollHeight < offsetHeight) {
 
                 if (scrollHeight < offsetHeight) {
 
                     return $(window).height() + "px";
 
                     return $(window).height() + "px";
                 } else {
+
                 }
 +
                else {
 
                     return scrollHeight + "px";
 
                     return scrollHeight + "px";
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 return $(document).height() + "px";
 
                 return $(document).height() + "px";
 
             }
 
             }
 
         },
 
         },
         width: function() {
+
         width: function () {
 
             var scrollWidth, offsetWidth;
 
             var scrollWidth, offsetWidth;
 
             if ($.ui.ie) {
 
             if ($.ui.ie) {
第7,535行: 第7,684行:
 
                 if (scrollWidth < offsetWidth) {
 
                 if (scrollWidth < offsetWidth) {
 
                     return $(window).width() + "px";
 
                     return $(window).width() + "px";
                 } else {
+
                 }
 +
                else {
 
                     return scrollWidth + "px";
 
                     return scrollWidth + "px";
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 return $(document).width() + "px";
 
                 return $(document).width() + "px";
 
             }
 
             }
 
         },
 
         },
         resize: function() {
+
         resize: function () {
 
             var $overlays = $([]);
 
             var $overlays = $([]);
             $.each($.ui.dialog.overlay.instances, function() {
+
             $.each($.ui.dialog.overlay.instances, function () {
 
                 $overlays = $overlays.add(this);
 
                 $overlays = $overlays.add(this);
 
             });
 
             });
第7,557行: 第7,708行:
 
     });
 
     });
 
     $.extend($.ui.dialog.overlay.prototype, {
 
     $.extend($.ui.dialog.overlay.prototype, {
         destroy: function() {
+
         destroy: function () {
 
             $.ui.dialog.overlay.destroy(this.$el);
 
             $.ui.dialog.overlay.destroy(this.$el);
 
         }
 
         }
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
     var rvertical = /up|down|vertical/,
+
     var rvertical = /up|down|vertical/, rpositivemotion = /up|left|vertical|horizontal/;
        rpositivemotion = /up|left|vertical|horizontal/;
+
     $.effects.effect.blind = function (o, done) {
     $.effects.effect.blind = function(o, done) {
+
         var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), direction = o.direction || "up", vertical = rvertical.test(direction), ref = vertical ? "height" : "width", ref2 = vertical ? "top" : "left", motion = rpositivemotion.test(direction), animation = {}, show = mode === "show", wrapper, distance, margin;
         var el = $(this),
 
            props = ["position", "top", "bottom", "left", "right", "height", "width"],
 
            mode = $.effects.setMode(el, o.mode || "hide"),
 
            direction = o.direction || "up",
 
            vertical = rvertical.test(direction),
 
            ref = vertical ? "height" : "width",
 
            ref2 = vertical ? "top" : "left",
 
            motion = rpositivemotion.test(direction),
 
            animation = {},
 
            show = mode === "show",
 
            wrapper, distance, margin;
 
 
         if (el.parent().is(".ui-effects-wrapper")) {
 
         if (el.parent().is(".ui-effects-wrapper")) {
 
             $.effects.save(el.parent(), props);
 
             $.effects.save(el.parent(), props);
         } else {
+
         }
 +
        else {
 
             $.effects.save(el, props);
 
             $.effects.save(el, props);
 
         }
 
         }
第7,590行: 第7,731行:
 
         animation[ref] = show ? distance : 0;
 
         animation[ref] = show ? distance : 0;
 
         if (!motion) {
 
         if (!motion) {
             el.css(vertical ? "bottom" : "right", 0).css(vertical ? "top" : "left", "auto").css({
+
             el
                position: "absolute"
+
                .css(vertical ? "bottom" : "right", 0)
            });
+
                .css(vertical ? "top" : "left", "auto")
 +
                .css({ position: "absolute" });
 
             animation[ref2] = show ? margin : distance + margin;
 
             animation[ref2] = show ? margin : distance + margin;
 
         }
 
         }
第7,604行: 第7,746行:
 
             duration: o.duration,
 
             duration: o.duration,
 
             easing: o.easing,
 
             easing: o.easing,
             queue: !1,
+
             queue: false,
             complete: function() {
+
             complete: function () {
 
                 if (mode === "hide") {
 
                 if (mode === "hide") {
 
                     el.hide();
 
                     el.hide();
第7,616行: 第7,758行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     $.effects.effect.clip = function(o, done) {
+
     $.effects.effect.clip = function (o, done) {
         var el = $(this),
+
         var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), show = mode === "show", direction = o.direction || "vertical", vert = direction === "vertical", size = vert ? "height" : "width", position = vert ? "top" : "left", animation = {}, wrapper, animate, distance;
            props = ["position", "top", "bottom", "left", "right", "height", "width"],
 
            mode = $.effects.setMode(el, o.mode || "hide"),
 
            show = mode === "show",
 
            direction = o.direction ||
 
            "vertical",
 
            vert = direction === "vertical",
 
            size = vert ? "height" : "width",
 
            position = vert ? "top" : "left",
 
            animation = {},
 
            wrapper, animate, distance;
 
 
         $.effects.save(el, props);
 
         $.effects.save(el, props);
 
         el.show();
 
         el.show();
第7,643行: 第7,775行:
 
         animation[position] = show ? 0 : distance / 2;
 
         animation[position] = show ? 0 : distance / 2;
 
         animate.animate(animation, {
 
         animate.animate(animation, {
             queue: !1,
+
             queue: false,
 
             duration: o.duration,
 
             duration: o.duration,
 
             easing: o.easing,
 
             easing: o.easing,
             complete: function() {
+
             complete: function () {
 
                 if (!show) {
 
                 if (!show) {
 
                     el.hide();
 
                     el.hide();
第7,657行: 第7,789行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     $.effects.effect.drop = function(o, done) {
+
     $.effects.effect.drop = function (o, done) {
         var el = $(this),
+
         var el = $(this), props = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), show = mode === "show", direction = o.direction || "left", ref = (direction === "up" || direction === "down") ? "top" : "left", motion = (direction === "up" || direction === "left") ? "pos" : "neg", animation = {
            props = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"],
+
            opacity: show ? 1 : 0
            mode = $.effects.setMode(el, o.mode || "hide"),
+
        }, distance;
            show = mode === "show",
 
            direction = o.direction || "left",
 
            ref = (direction === "up" || direction === "down") ? "top" : "left",
 
            motion = (direction === "up" || direction === "left") ? "pos" : "neg",
 
            animation = {
 
                opacity: show ? 1 : 0
 
            },
 
            distance;
 
 
         $.effects.save(el, props);
 
         $.effects.save(el, props);
 
         el.show();
 
         el.show();
第7,675行: 第7,799行:
 
         distance = o.distance || el[ref === "top" ? "outerHeight" : "outerWidth"](true) / 2;
 
         distance = o.distance || el[ref === "top" ? "outerHeight" : "outerWidth"](true) / 2;
 
         if (show) {
 
         if (show) {
             el.css("opacity", 0).css(ref, motion === "pos" ? -distance : distance);
+
             el
 +
                .css("opacity", 0)
 +
                .css(ref, motion === "pos" ? -distance : distance);
 
         }
 
         }
         animation[ref] = (show ? (motion === "pos" ? "+=" : "-=") : (motion === "pos" ? "-=" : "+=")) + distance;
+
         animation[ref] = (show ?
 +
            (motion === "pos" ? "+=" : "-=") :
 +
            (motion === "pos" ? "-=" : "+=")) +
 +
            distance;
 
         el.animate(animation, {
 
         el.animate(animation, {
             queue: !1,
+
             queue: false,
 
             duration: o.duration,
 
             duration: o.duration,
 
             easing: o.easing,
 
             easing: o.easing,
             complete: function() {
+
             complete: function () {
 
                 if (mode === "hide") {
 
                 if (mode === "hide") {
 
                     el.hide();
 
                     el.hide();
第7,693行: 第7,822行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     $.effects.effect.highlight = function(o, done) {
+
     $.effects.effect.highlight = function (o, done) {
         var elem = $(this),
+
         var elem = $(this), props = ["backgroundImage", "backgroundColor", "opacity"], mode = $.effects.setMode(elem, o.mode || "show"), animation = {
            props = ["backgroundImage", "backgroundColor", "opacity"],
+
            backgroundColor: elem.css("backgroundColor")
            mode = $.effects.setMode(elem, o.mode || "show"),
+
        };
            animation = {
 
                backgroundColor: elem.css("backgroundColor")
 
            };
 
 
         if (mode === "hide") {
 
         if (mode === "hide") {
 
             animation.opacity = 0;
 
             animation.opacity = 0;
 
         }
 
         }
 
         $.effects.save(elem, props);
 
         $.effects.save(elem, props);
         elem.show().css({
+
         elem
 +
            .show()
 +
            .css({
 
             backgroundImage: "none",
 
             backgroundImage: "none",
 
             backgroundColor: o.color || "#ffff99"
 
             backgroundColor: o.color || "#ffff99"
         }).animate(animation, {
+
         })
             queue: !1,
+
            .animate(animation, {
 +
             queue: false,
 
             duration: o.duration,
 
             duration: o.duration,
 
             easing: o.easing,
 
             easing: o.easing,
             complete: function() {
+
             complete: function () {
 
                 if (mode === "hide") {
 
                 if (mode === "hide") {
 
                     elem.hide();
 
                     elem.hide();
第7,722行: 第7,851行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     $.effects.effect.puff = function(o, done) {
+
     $.effects.effect.puff = function (o, done) {
         var elem = $(this),
+
         var elem = $(this), mode = $.effects.setMode(elem, o.mode || "hide"), hide = mode === "hide", percent = parseInt(o.percent, 10) || 150, factor = percent / 100, original = {
            mode = $.effects.setMode(elem, o.mode || "hide"),
+
            height: elem.height(),
            hide = mode === "hide",
+
            width: elem.width(),
            percent = parseInt(o.percent, 10) || 150,
+
            outerHeight: elem.outerHeight(),
            factor = percent / 100,
+
            outerWidth: elem.outerWidth()
            original = {
+
        };
                height: elem.height(),
 
                width: elem.width(),
 
                outerHeight: elem.outerHeight(),
 
                outerWidth: elem.outerWidth()
 
            };
 
 
         $.extend(o, {
 
         $.extend(o, {
 
             effect: "scale",
 
             effect: "scale",
             queue: !1,
+
             queue: false,
             fade: !0,
+
             fade: true,
 
             mode: mode,
 
             mode: mode,
 
             complete: done,
 
             complete: done,
 
             percent: hide ? percent : 100,
 
             percent: hide ? percent : 100,
             from: hide ? original : {
+
             from: hide ?
                height: original.height * factor,
+
                original :
                width: original.width * factor,
+
                {
                outerHeight: original.outerHeight * factor,
+
                    height: original.height * factor,
                outerWidth: original.outerWidth * factor
+
                    width: original.width * factor,
            }
+
                    outerHeight: original.outerHeight * factor,
 +
                    outerWidth: original.outerWidth * factor
 +
                }
 
         });
 
         });
 
         elem.effect(o);
 
         elem.effect(o);
 
     };
 
     };
     $.effects.effect.scale = function(o, done) {
+
     $.effects.effect.scale = function (o, done) {
         var el = $(this),
+
         var el = $(this), options = $.extend(true, {}, o), mode = $.effects.setMode(el, o.mode || "effect"), percent = parseInt(o.percent, 10) ||
            options = $.extend(true, {}, o),
+
            (parseInt(o.percent, 10) === 0 ? 0 : (mode === "hide" ? 0 : 100)), direction = o.direction || "both", origin = o.origin, original = {
            mode = $.effects.setMode(el, o.mode || "effect"),
+
            height: el.height(),
            percent = parseInt(o.percent, 10) || (parseInt(o.percent, 10) === 0 ? 0 : (mode === "hide" ? 0 : 100)),
+
            width: el.width(),
            direction = o.direction || "both",
+
            outerHeight: el.outerHeight(),
            origin = o.origin,
+
            outerWidth: el.outerWidth()
            original = {
+
        }, factor = {
                height: el.height(),
+
            y: direction !== "horizontal" ? (percent / 100) : 1,
                width: el.width(),
+
            x: direction !== "vertical" ? (percent / 100) : 1
                outerHeight: el.outerHeight(),
+
        };
                outerWidth: el.
 
                outerWidth()
 
            },
 
            factor = {
 
                y: direction !== "horizontal" ? (percent / 100) : 1,
 
                x: direction !== "vertical" ? (percent / 100) : 1
 
            };
 
 
         options.effect = "size";
 
         options.effect = "size";
         options.queue = !1;
+
         options.queue = false;
 
         options.complete = done;
 
         options.complete = done;
 
         if (mode !== "effect") {
 
         if (mode !== "effect") {
 
             options.origin = origin || ["middle", "center"];
 
             options.origin = origin || ["middle", "center"];
             options.restore = !0;
+
             options.restore = true;
 
         }
 
         }
 
         options.from = o.from || (mode === "show" ? {
 
         options.from = o.from || (mode === "show" ? {
第7,800行: 第7,919行:
 
         el.effect(options);
 
         el.effect(options);
 
     };
 
     };
     $.effects.effect.size = function(o, done) {
+
     $.effects.effect.size = function (o, done) {
         var original, baseline, factor, el = $(this),
+
         var original, baseline, factor, el = $(this), props0 = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], props1 = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], props2 = ["width", "height", "overflow"], cProps = ["fontSize"], vProps = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], hProps = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], mode = $.effects.setMode(el, o.mode || "effect"), restore = o.restore || mode !== "effect", scale = o.scale || "both", origin = o.origin || ["middle", "center"], position = el.css("position"), props = restore ? props0 : props1, zero = {
            props0 = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"],
+
            height: 0,
            props1 = ["position", "top", "bottom", "left", "right", "overflow", "opacity"],
+
            width: 0,
            props2 = ["width", "height", "overflow"],
+
            outerHeight: 0,
            cProps = ["fontSize"],
+
            outerWidth: 0
            vProps = ["borderTopWidth",
+
        };
                "borderBottomWidth", "paddingTop", "paddingBottom"
 
            ],
 
            hProps = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
 
            mode = $.effects.setMode(el, o.mode || "effect"),
 
            restore = o.restore || mode !== "effect",
 
            scale = o.scale || "both",
 
            origin = o.origin || ["middle", "center"],
 
            position = el.css("position"),
 
            props = restore ? props0 : props1,
 
            zero = {
 
                height: 0,
 
                width: 0,
 
                outerHeight: 0,
 
                outerWidth: 0
 
            };
 
 
         if (mode === "show") {
 
         if (mode === "show") {
 
             el.show();
 
             el.show();
第7,834行: 第7,938行:
 
             el.from = o.to || zero;
 
             el.from = o.to || zero;
 
             el.to = o.from || original;
 
             el.to = o.from || original;
         } else {
+
         }
 +
        else {
 
             el.from = o.from || (mode === "show" ? zero : original);
 
             el.from = o.from || (mode === "show" ? zero : original);
 
             el.to = o.to || (mode === "hide" ? zero : original);
 
             el.to = o.to || (mode === "hide" ? zero : original);
第7,852行: 第7,957行:
 
                 props = props.concat(vProps);
 
                 props = props.concat(vProps);
 
                 el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
 
                 el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
                 el.to = $.effects.
+
                 el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
                setTransition(el, vProps, factor.to.y, el.to);
 
 
             }
 
             }
 
             if (factor.from.x !== factor.to.x) {
 
             if (factor.from.x !== factor.to.x) {
第7,884行: 第7,988行:
 
             hProps = hProps.concat(["marginLeft", "marginRight"]);
 
             hProps = hProps.concat(["marginLeft", "marginRight"]);
 
             props2 = props0.concat(vProps).concat(hProps);
 
             props2 = props0.concat(vProps).concat(hProps);
             el.find("*[width]").each(function() {
+
             el.find("*[width]").each(function () {
                 var child = $(this),
+
                 var child = $(this), c_original = {
                    c_original = {
+
                    height: child.height(),
                        height: child.height(),
+
                    width: child.width(),
                        width: child.width(),
+
                    outerHeight: child.outerHeight(),
                        outerHeight: child.outerHeight(),
+
                    outerWidth: child.outerWidth()
                        outerWidth: child.outerWidth()
+
                };
                    };
 
 
                 if (restore) {
 
                 if (restore) {
 
                     $.effects.save(child, props2);
 
                     $.effects.save(child, props2);
第7,913行: 第8,016行:
 
                 if (factor.from.x !== factor.to.x) {
 
                 if (factor.from.x !== factor.to.x) {
 
                     child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
 
                     child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
                     child.to = $.effects.setTransition(child, hProps, factor.to.x,
+
                     child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
                        child.to);
 
 
                 }
 
                 }
 
                 child.css(child.from);
 
                 child.css(child.from);
                 child.animate(child.to, o.duration, o.easing, function() {
+
                 child.animate(child.to, o.duration, o.easing, function () {
 
                     if (restore) {
 
                     if (restore) {
 
                         $.effects.restore(child, props2);
 
                         $.effects.restore(child, props2);
第7,925行: 第8,027行:
 
         }
 
         }
 
         el.animate(el.to, {
 
         el.animate(el.to, {
             queue: !1,
+
             queue: false,
 
             duration: o.duration,
 
             duration: o.duration,
 
             easing: o.easing,
 
             easing: o.easing,
             complete: function() {
+
             complete: function () {
 
                 if (el.to.opacity === 0) {
 
                 if (el.to.opacity === 0) {
 
                     el.css("opacity", el.from.opacity);
 
                     el.css("opacity", el.from.opacity);
第7,943行: 第8,045行:
 
                             left: el.to.left
 
                             left: el.to.left
 
                         });
 
                         });
                     } else {
+
                     }
                         $.each(["top", "left"], function(idx, pos) {
+
                    else {
                             el.css(pos, function(_, str) {
+
                         $.each(["top", "left"], function (idx, pos) {
                                 var val = parseInt(str, 10),
+
                             el.css(pos, function (_, str) {
                                    toRef = idx ? el.to.left : el.to.top;
+
                                 var val = parseInt(str, 10), toRef = idx ? el.to.left : el.to.top;
 
                                 if (str === "auto") {
 
                                 if (str === "auto") {
 
                                     return toRef + "px";
 
                                     return toRef + "px";
第7,962行: 第8,064行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     $.effects.effect.shake = function(o, done) {
+
     $.effects.effect.shake = function (o, done) {
         var el = $(this),
+
         var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "effect"), direction = o.direction || "left", distance = o.distance || 20, times = o.times || 3, anims = times * 2 + 1, speed = Math.round(o.duration / anims), ref = (direction === "up" || direction === "down") ? "top" : "left", positiveMotion = (direction === "up" || direction === "left"), animation = {}, animation1 = {}, animation2 = {}, i, queue = el.queue(), queuelen = queue.length;
            props = ["position", "top", "bottom", "left", "right", "height", "width"],
 
            mode = $.effects.setMode(el, o.mode || "effect"),
 
            direction = o.direction || "left",
 
            distance = o.distance || 20,
 
            times = o.times || 3,
 
            anims = times * 2 + 1,
 
            speed = Math.round(o.duration / anims),
 
            ref = (
 
                direction === "up" || direction === "down") ? "top" : "left",
 
            positiveMotion = (direction === "up" || direction === "left"),
 
            animation = {},
 
            animation1 = {},
 
            animation2 = {},
 
            i, queue = el.queue(),
 
            queuelen = queue.length;
 
 
         $.effects.save(el, props);
 
         $.effects.save(el, props);
 
         el.show();
 
         el.show();
第7,990行: 第8,077行:
 
             el.animate(animation1, speed, o.easing).animate(animation2, speed, o.easing);
 
             el.animate(animation1, speed, o.easing).animate(animation2, speed, o.easing);
 
         }
 
         }
         el.animate(animation1, speed, o.easing).animate(animation, speed / 2, o.easing).queue(function() {
+
         el
 +
            .animate(animation1, speed, o.easing)
 +
            .animate(animation, speed / 2, o.easing)
 +
            .queue(function () {
 
             if (mode === "hide") {
 
             if (mode === "hide") {
 
                 el.hide();
 
                 el.hide();
第8,004行: 第8,094行:
 
     };
 
     };
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
     var mouseHandled = !1;
+
     var mouseHandled = false;
 
     $.widget("ui.menu", {
 
     $.widget("ui.menu", {
 
         version: "1.9.2",
 
         version: "1.9.2",
第8,024行: 第8,114行:
 
             select: null
 
             select: null
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             this.activeMenu = this.element;
 
             this.activeMenu = this.element;
             this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({
+
             this.element
 +
                .uniqueId()
 +
                .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
 +
                .toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length)
 +
                .attr({
 
                 role: this.options.role,
 
                 role: this.options.role,
 
                 tabIndex: 0
 
                 tabIndex: 0
             }).bind("click" + this.eventNamespace, $.proxy(function(event) {
+
             })
 +
                .on("click" + this.eventNamespace, $.proxy(function (event) {
 
                 if (this.options.disabled) {
 
                 if (this.options.disabled) {
 
                     event.preventDefault();
 
                     event.preventDefault();
第8,035行: 第8,130行:
 
             }, this));
 
             }, this));
 
             if (this.options.disabled) {
 
             if (this.options.disabled) {
                 this.element.addClass("ui-state-disabled").attr("aria-disabled", "true");
+
                 this.element
 +
                    .addClass("ui-state-disabled")
 +
                    .attr("aria-disabled", "true");
 
             }
 
             }
 
             this._on({
 
             this._on({
                 "mousedown .ui-menu-item > a": function(event) {
+
                 "mousedown .ui-menu-item > a": function (event) {
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 },
 
                 },
                 "click .ui-state-disabled > a": function(event) {
+
                 "click .ui-state-disabled > a": function (event) {
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 },
 
                 },
                 "click .ui-menu-item:has(a)": function(event) {
+
                 "click .ui-menu-item:has(a)": function (event) {
 
                     var target = $(event.target).closest(".ui-menu-item");
 
                     var target = $(event.target).closest(".ui-menu-item");
 
                     if (!mouseHandled && target.not(".ui-state-disabled").length) {
 
                     if (!mouseHandled && target.not(".ui-state-disabled").length) {
                         mouseHandled = !0;
+
                         mouseHandled = true;
 
                         this.select(event);
 
                         this.select(event);
 
                         if (target.has(".ui-menu").length) {
 
                         if (target.has(".ui-menu").length) {
 
                             this.expand(event);
 
                             this.expand(event);
                         } else if (!this.element.is(":focus")) {
+
                         }
                             this.
+
                        else if (!this.element.is(":focus")) {
                            element.trigger("focus", [true]);
+
                             this.element.trigger("focus", [true]);
 
                             if (this.active && this.active.parents(".ui-menu").length === 1) {
 
                             if (this.active && this.active.parents(".ui-menu").length === 1) {
 
                                 clearTimeout(this.timer);
 
                                 clearTimeout(this.timer);
第8,060行: 第8,157行:
 
                     }
 
                     }
 
                 },
 
                 },
                 "mouseenter .ui-menu-item": function(event) {
+
                 "mouseenter .ui-menu-item": function (event) {
 
                     var target = $(event.currentTarget);
 
                     var target = $(event.currentTarget);
 
                     target.siblings().children(".ui-state-active").removeClass("ui-state-active");
 
                     target.siblings().children(".ui-state-active").removeClass("ui-state-active");
第8,067行: 第8,164行:
 
                 mouseleave: "collapseAll",
 
                 mouseleave: "collapseAll",
 
                 "mouseleave .ui-menu": "collapseAll",
 
                 "mouseleave .ui-menu": "collapseAll",
                 focus: function(event, keepActiveItem) {
+
                 focus: function (event, keepActiveItem) {
 
                     var item = this.active || this.element.children(".ui-menu-item").eq(0);
 
                     var item = this.active || this.element.children(".ui-menu-item").eq(0);
 
                     if (!keepActiveItem) {
 
                     if (!keepActiveItem) {
第8,073行: 第8,170行:
 
                     }
 
                     }
 
                 },
 
                 },
                 blur: function(event) {
+
                 blur: function (event) {
                     this._delay(function() {
+
                     this._delay(function () {
 
                         if (!$.contains(this.element[0], this.document[0].activeElement)) {
 
                         if (!$.contains(this.element[0], this.document[0].activeElement)) {
 
                             this.collapseAll(event);
 
                             this.collapseAll(event);
第8,084行: 第8,181行:
 
             this.refresh();
 
             this.refresh();
 
             this._on(this.document, {
 
             this._on(this.document, {
                 click: function(event) {
+
                 click: function (event) {
 
                     if (!$(event.target).closest(".ui-menu").length) {
 
                     if (!$(event.target).closest(".ui-menu").length) {
 
                         this.collapseAll(event);
 
                         this.collapseAll(event);
 
                     }
 
                     }
                     mouseHandled = !1;
+
                     mouseHandled = false;
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
             this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass(
+
             this.element
                "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show();
+
                .removeAttr("aria-activedescendant")
             this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() {
+
                .find(".ui-menu").addBack()
 +
                .removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons")
 +
                .removeAttr("role")
 +
                .removeAttr("tabIndex")
 +
                .removeAttr("aria-labelledby")
 +
                .removeAttr("aria-expanded")
 +
                .removeAttr("aria-hidden")
 +
                .removeAttr("aria-disabled")
 +
                .removeUniqueId()
 +
                .show();
 +
             this.element.find(".ui-menu-item")
 +
                .removeClass("ui-menu-item")
 +
                .removeAttr("role")
 +
                .removeAttr("aria-disabled")
 +
                .children("a")
 +
                .removeUniqueId()
 +
                .removeClass("ui-corner-all ui-state-hover")
 +
                .removeAttr("tabIndex")
 +
                .removeAttr("role")
 +
                .removeAttr("aria-haspopup")
 +
                .children().each(function () {
 
                 var elem = $(this);
 
                 var elem = $(this);
 
                 if (elem.data("ui-menu-submenu-carat")) {
 
                 if (elem.data("ui-menu-submenu-carat")) {
第8,103行: 第8,220行:
 
             this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content");
 
             this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content");
 
         },
 
         },
         _keydown: function(event) {
+
         _keydown: function (event) {
             var match, prev, character, skip, regex, preventDefault = !0;
+
             var match, prev, character, skip, regex, preventDefault = true;
 
 
 
             function escape(value) {
 
             function escape(value) {
 
                 return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
 
                 return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
第8,116行: 第8,232行:
 
                     this.nextPage(event);
 
                     this.nextPage(event);
 
                     break;
 
                     break;
                 case $.ui.
+
                 case $.ui.keyCode.HOME:
                keyCode.HOME:
 
 
                     this._move("first", "first", event);
 
                     this._move("first", "first", event);
 
                     break;
 
                     break;
第8,145行: 第8,260行:
 
                     break;
 
                     break;
 
                 default:
 
                 default:
                     preventDefault = !1;
+
                     preventDefault = false;
 
                     prev = this.previousFilter || "";
 
                     prev = this.previousFilter || "";
 
                     character = String.fromCharCode(event.keyCode);
 
                     character = String.fromCharCode(event.keyCode);
                     skip = !1;
+
                     skip = false;
 
                     clearTimeout(this.filterTimer);
 
                     clearTimeout(this.filterTimer);
 
                     if (character === prev) {
 
                     if (character === prev) {
                         skip = !0;
+
                         skip = true;
                     } else {
+
                     }
 +
                    else {
 
                         character = prev + character;
 
                         character = prev + character;
 
                     }
 
                     }
 
                     regex = new RegExp("^" + escape(character), "i");
 
                     regex = new RegExp("^" + escape(character), "i");
                     match = this.activeMenu.children(".ui-menu-item").filter(function() {
+
                     match = this.activeMenu.children(".ui-menu-item").filter(function () {
 
                         return regex.test($(this).children("a").text());
 
                         return regex.test($(this).children("a").text());
 
                     });
 
                     });
                     match = skip && match.index(this.active.next()) !== -1 ? this.active.nextAll(".ui-menu-item") : match;
+
                     match = skip && match.index(this.active.next()) !== -1 ?
 +
                        this.active.nextAll(".ui-menu-item") :
 +
                        match;
 
                     if (!match.length) {
 
                     if (!match.length) {
                         character = String.fromCharCode(
+
                         character = String.fromCharCode(event.keyCode);
                            event.keyCode);
 
 
                         regex = new RegExp("^" + escape(character), "i");
 
                         regex = new RegExp("^" + escape(character), "i");
                         match = this.activeMenu.children(".ui-menu-item").filter(function() {
+
                         match = this.activeMenu.children(".ui-menu-item").filter(function () {
 
                             return regex.test($(this).children("a").text());
 
                             return regex.test($(this).children("a").text());
 
                         });
 
                         });
第8,172行: 第8,289行:
 
                         if (match.length > 1) {
 
                         if (match.length > 1) {
 
                             this.previousFilter = character;
 
                             this.previousFilter = character;
                             this.filterTimer = this._delay(function() {
+
                             this.filterTimer = this._delay(function () {
 
                                 delete this.previousFilter;
 
                                 delete this.previousFilter;
 
                             }, 1000);
 
                             }, 1000);
                         } else {
+
                         }
 +
                        else {
 
                             delete this.previousFilter;
 
                             delete this.previousFilter;
 
                         }
 
                         }
                     } else {
+
                     }
 +
                    else {
 
                         delete this.previousFilter;
 
                         delete this.previousFilter;
 
                     }
 
                     }
第8,186行: 第8,305行:
 
             }
 
             }
 
         },
 
         },
         _activate: function(event) {
+
         _activate: function (event) {
 
             if (!this.active.is(".ui-state-disabled")) {
 
             if (!this.active.is(".ui-state-disabled")) {
 
                 if (this.active.children("a[aria-haspopup='true']").length) {
 
                 if (this.active.children("a[aria-haspopup='true']").length) {
 
                     this.expand(event);
 
                     this.expand(event);
                 } else {
+
                 }
 +
                else {
 
                     this.select(event);
 
                     this.select(event);
 
                 }
 
                 }
 
             }
 
             }
 
         },
 
         },
         refresh: function() {
+
         refresh: function () {
             var menus, icon = this.options.icons.submenu,
+
             var menus, icon = this.options.icons.submenu, submenus = this.element.find(this.options.menus);
                submenus = this.element.find(this.options.menus);
+
             submenus.filter(":not(.ui-menu)")
             submenus.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({
+
                .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
 +
                .hide()
 +
                .attr({
 
                 role: this.options.role,
 
                 role: this.options.role,
 
                 "aria-hidden": "true",
 
                 "aria-hidden": "true",
 
                 "aria-expanded": "false"
 
                 "aria-expanded": "false"
             }).each(function() {
+
             })
                 var menu = $(this),
+
                .each(function () {
                    item = menu.prev("a"),
+
                 var menu = $(this), item = menu.prev("a"), submenuCarat = $("<span>")
                    submenuCarat = $("<span>").
+
                    .addClass("ui-menu-icon ui-icon " + icon)
                addClass("ui-menu-icon ui-icon " + icon).data("ui-menu-submenu-carat", true);
+
                    .data("ui-menu-submenu-carat", true);
                 item.attr("aria-haspopup", "true").prepend(submenuCarat);
+
                 item
 +
                    .attr("aria-haspopup", "true")
 +
                    .prepend(submenuCarat);
 
                 menu.attr("aria-labelledby", item.attr("id"));
 
                 menu.attr("aria-labelledby", item.attr("id"));
 
             });
 
             });
 
             menus = submenus.add(this.element);
 
             menus = submenus.add(this.element);
             menus.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "presentation").children("a").uniqueId().addClass("ui-corner-all").attr({
+
             menus.children(":not(.ui-menu-item):has(a)")
 +
                .addClass("ui-menu-item")
 +
                .attr("role", "presentation")
 +
                .children("a")
 +
                .uniqueId()
 +
                .addClass("ui-corner-all")
 +
                .attr({
 
                 tabIndex: -1,
 
                 tabIndex: -1,
 
                 role: this._itemRole()
 
                 role: this._itemRole()
 
             });
 
             });
             menus.children(":not(.ui-menu-item)").each(function() {
+
             menus.children(":not(.ui-menu-item)").each(function () {
 
                 var item = $(this);
 
                 var item = $(this);
 
                 if (!/[^\-—–\s]/.test(item.text())) {
 
                 if (!/[^\-—–\s]/.test(item.text())) {
第8,226行: 第8,356行:
 
             }
 
             }
 
         },
 
         },
         _itemRole: function() {
+
         _itemRole: function () {
 
             return {
 
             return {
 
                 menu: "menuitem",
 
                 menu: "menuitem",
 
                 listbox: "option"
 
                 listbox: "option"
             } [this.options.role];
+
             }[this.options.role];
 
         },
 
         },
         focus: function(event, item) {
+
         focus: function (event, item) {
 
             var nested, focused;
 
             var nested, focused;
 
             this.blur(event, event && event.type === "focus");
 
             this.blur(event, event && event.type === "focus");
第8,238行: 第8,368行:
 
             this.active = item.first();
 
             this.active = item.first();
 
             focused = this.active.children("a").addClass("ui-state-focus");
 
             focused = this.active.children("a").addClass("ui-state-focus");
             if (
+
             if (this.options.role) {
                this.options.role) {
 
 
                 this.element.attr("aria-activedescendant", focused.attr("id"));
 
                 this.element.attr("aria-activedescendant", focused.attr("id"));
 
             }
 
             }
             this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");
+
             this.active
 +
                .parent()
 +
                .closest(".ui-menu-item")
 +
                .children("a:first")
 +
                .addClass("ui-state-active");
 
             if (event && event.type === "keydown") {
 
             if (event && event.type === "keydown") {
 
                 this._close();
 
                 this._close();
             } else {
+
             }
                 this.timer = this._delay(function() {
+
            else {
 +
                 this.timer = this._delay(function () {
 
                     this._close();
 
                     this._close();
 
                 }, this.delay);
 
                 }, this.delay);
第8,255行: 第8,389行:
 
             }
 
             }
 
             this.activeMenu = item.parent();
 
             this.activeMenu = item.parent();
             this._trigger("focus", event, {
+
             this._trigger("focus", event, { item: item });
                item: item
 
            });
 
 
         },
 
         },
         _scrollIntoView: function(item) {
+
         _scrollIntoView: function (item) {
 
             var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
 
             var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
 
             if (this._hasScroll()) {
 
             if (this._hasScroll()) {
第8,270行: 第8,402行:
 
                 if (offset < 0) {
 
                 if (offset < 0) {
 
                     this.activeMenu.scrollTop(scroll + offset);
 
                     this.activeMenu.scrollTop(scroll + offset);
                 } else if (offset + itemHeight > elementHeight) {
+
                 }
                     this.
+
                else if (offset + itemHeight > elementHeight) {
                    activeMenu.scrollTop(scroll + offset - elementHeight + itemHeight);
+
                     this.activeMenu.scrollTop(scroll + offset - elementHeight + itemHeight);
 
                 }
 
                 }
 
             }
 
             }
 
         },
 
         },
         blur: function(event, fromFocus) {
+
         blur: function (event, fromFocus) {
 
             if (!fromFocus) {
 
             if (!fromFocus) {
 
                 clearTimeout(this.timer);
 
                 clearTimeout(this.timer);
第8,285行: 第8,417行:
 
             this.active.children("a").removeClass("ui-state-focus");
 
             this.active.children("a").removeClass("ui-state-focus");
 
             this.active = null;
 
             this.active = null;
             this._trigger("blur", event, {
+
             this._trigger("blur", event, { item: this.active });
                item: this.active
 
            });
 
 
         },
 
         },
         _startOpening: function(submenu) {
+
         _startOpening: function (submenu) {
 
             clearTimeout(this.timer);
 
             clearTimeout(this.timer);
 
             if (submenu.attr("aria-hidden") !== "true") {
 
             if (submenu.attr("aria-hidden") !== "true") {
 
                 return;
 
                 return;
 
             }
 
             }
             this.timer = this._delay(function() {
+
             this.timer = this._delay(function () {
 
                 this._close();
 
                 this._close();
 
                 this._open(submenu);
 
                 this._open(submenu);
 
             }, this.delay);
 
             }, this.delay);
 
         },
 
         },
         _open: function(submenu) {
+
         _open: function (submenu) {
             var position = $.extend({ of: this.active
+
             var position = $.extend({
 +
                of: this.active
 
             }, this.options.position);
 
             }, this.options.position);
 
             clearTimeout(this.timer);
 
             clearTimeout(this.timer);
             this.element.find(".ui-menu").not(submenu.parents(".ui-menu")).hide().attr("aria-hidden", "true");
+
             this.element.find(".ui-menu").not(submenu.parents(".ui-menu"))
             submenu.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(position);
+
                .hide()
 +
                .attr("aria-hidden", "true");
 +
             submenu
 +
                .show()
 +
                .removeAttr("aria-hidden")
 +
                .attr("aria-expanded", "true")
 +
                .position(position);
 
         },
 
         },
         collapseAll: function(event, all) {
+
         collapseAll: function (event, all) {
 
             clearTimeout(this.timer);
 
             clearTimeout(this.timer);
             this.timer = this._delay(function() {
+
             this.timer = this._delay(function () {
                 var currentMenu = all ? this.element : $(event && event.target).closest(this.element.find(".ui-menu"));
+
                 var currentMenu = all ? this.element :
 +
                    $(event && event.target).closest(this.element.find(".ui-menu"));
 
                 if (!currentMenu.length) {
 
                 if (!currentMenu.length) {
                     currentMenu = this.
+
                     currentMenu = this.element;
                    element;
 
 
                 }
 
                 }
 
                 this._close(currentMenu);
 
                 this._close(currentMenu);
第8,319行: 第8,456行:
 
             }, this.delay);
 
             }, this.delay);
 
         },
 
         },
         _close: function(startMenu) {
+
         _close: function (startMenu) {
 
             if (!startMenu) {
 
             if (!startMenu) {
 
                 startMenu = this.active ? this.active.parent() : this.element;
 
                 startMenu = this.active ? this.active.parent() : this.element;
 
             }
 
             }
             startMenu.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find("a.ui-state-active").removeClass("ui-state-active");
+
             startMenu
 +
                .find(".ui-menu")
 +
                .hide()
 +
                .attr("aria-hidden", "true")
 +
                .attr("aria-expanded", "false")
 +
                .end()
 +
                .find("a.ui-state-active")
 +
                .removeClass("ui-state-active");
 
         },
 
         },
         collapse: function(event) {
+
         collapse: function (event) {
             var newItem = this.active && this.active.parent().closest(".ui-menu-item", this.element);
+
             var newItem = this.active &&
 +
                this.active.parent().closest(".ui-menu-item", this.element);
 
             if (newItem && newItem.length) {
 
             if (newItem && newItem.length) {
 
                 this._close();
 
                 this._close();
第8,332行: 第8,477行:
 
             }
 
             }
 
         },
 
         },
         expand: function(event) {
+
         expand: function (event) {
             var newItem = this.active && this.active.children(".ui-menu ").children(".ui-menu-item").first();
+
             var newItem = this.active &&
 +
                this.active
 +
                    .children(".ui-menu ")
 +
                    .children(".ui-menu-item")
 +
                    .first();
 
             if (newItem && newItem.length) {
 
             if (newItem && newItem.length) {
 
                 this._open(newItem.parent());
 
                 this._open(newItem.parent());
                 this._delay(function() {
+
                 this._delay(function () {
 
                     this.focus(event, newItem);
 
                     this.focus(event, newItem);
 
                 });
 
                 });
 
             }
 
             }
 
         },
 
         },
         next: function(event) {
+
         next: function (event) {
 
             this._move("next", "first", event);
 
             this._move("next", "first", event);
 
         },
 
         },
         previous: function(event) {
+
         previous: function (event) {
 
             this._move("prev", "last", event);
 
             this._move("prev", "last", event);
 
         },
 
         },
         isFirstItem: function() {
+
         isFirstItem: function () {
 
             return this.active && !this.active.prevAll(".ui-menu-item").length;
 
             return this.active && !this.active.prevAll(".ui-menu-item").length;
 
         },
 
         },
         isLastItem: function() {
+
         isLastItem: function () {
             return this.
+
             return this.active && !this.active.nextAll(".ui-menu-item").length;
            active && !this.active.nextAll(".ui-menu-item").length;
 
 
         },
 
         },
         _move: function(direction, filter, event) {
+
         _move: function (direction, filter, event) {
 
             var next;
 
             var next;
 
             if (this.active) {
 
             if (this.active) {
 
                 if (direction === "first" || direction === "last") {
 
                 if (direction === "first" || direction === "last") {
                     next = this.active[direction === "first" ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1);
+
                     next = this.active[direction === "first" ? "prevAll" : "nextAll"](".ui-menu-item")
                 } else {
+
                        .eq(-1);
                     next = this.active[direction + "All"](".ui-menu-item").eq(0);
+
                 }
 +
                else {
 +
                     next = this.active[direction + "All"](".ui-menu-item")
 +
                        .eq(0);
 
                 }
 
                 }
 
             }
 
             }
第8,368行: 第8,519行:
 
             this.focus(event, next);
 
             this.focus(event, next);
 
         },
 
         },
         nextPage: function(event) {
+
         nextPage: function (event) {
 
             var item, base, height;
 
             var item, base, height;
 
             if (!this.active) {
 
             if (!this.active) {
第8,380行: 第8,531行:
 
                 base = this.active.offset().top;
 
                 base = this.active.offset().top;
 
                 height = this.element.height();
 
                 height = this.element.height();
                 this.active.nextAll(".ui-menu-item").each(function() {
+
                 this.active.nextAll(".ui-menu-item").each(function () {
 
                     item = $(this);
 
                     item = $(this);
 
                     return item.offset().top - base - height < 0;
 
                     return item.offset().top - base - height < 0;
 
                 });
 
                 });
 
                 this.focus(event, item);
 
                 this.focus(event, item);
             } else {
+
             }
 +
            else {
 
                 this.focus(event, this.activeMenu.children(".ui-menu-item")[!this.active ? "first" : "last"]());
 
                 this.focus(event, this.activeMenu.children(".ui-menu-item")[!this.active ? "first" : "last"]());
 
             }
 
             }
 
         },
 
         },
         previousPage: function(event) {
+
         previousPage: function (event) {
 
             var item, base, height;
 
             var item, base, height;
 
             if (!this.active) {
 
             if (!this.active) {
第8,401行: 第8,553行:
 
                 base = this.active.offset().top;
 
                 base = this.active.offset().top;
 
                 height = this.element.height();
 
                 height = this.element.height();
                 this.active.prevAll(".ui-menu-item").each(function() {
+
                 this.active.prevAll(".ui-menu-item").each(function () {
 
                     item = $(this);
 
                     item = $(this);
 
                     return item.offset().top - base + height > 0;
 
                     return item.offset().top - base + height > 0;
 
                 });
 
                 });
 
                 this.focus(event, item);
 
                 this.focus(event, item);
             } else {
+
             }
 +
            else {
 
                 this.focus(event, this.activeMenu.children(".ui-menu-item").first());
 
                 this.focus(event, this.activeMenu.children(".ui-menu-item").first());
 
             }
 
             }
 
         },
 
         },
         _hasScroll: function() {
+
         _hasScroll: function () {
 
             return this.element.outerHeight() < this.element.prop("scrollHeight");
 
             return this.element.outerHeight() < this.element.prop("scrollHeight");
 
         },
 
         },
         select: function(event) {
+
         select: function (event) {
 
             this.active = this.active || $(event.target).closest(".ui-menu-item");
 
             this.active = this.active || $(event.target).closest(".ui-menu-item");
             var ui = {
+
             var ui = { item: this.active };
                item: this.active
 
            };
 
 
             if (!this.active.has(".ui-menu").length) {
 
             if (!this.active.has(".ui-menu").length) {
 
                 this.collapseAll(event, true);
 
                 this.collapseAll(event, true);
第8,425行: 第8,576行:
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
 
     $.ui = $.ui || {};
 
     $.ui = $.ui || {};
     var cachedScrollbarWidth, max = Math.max,
+
     var cachedScrollbarWidth, max = Math.max, abs = Math.abs, round = Math.round, rhorizontal = /left|center|right/, rvertical = /top|center|bottom/, roffset = /[\+\-]\d+%?/, rposition = /^\w+/, rpercent = /%$/, _position = $.fn.position;
        abs = Math.abs,
 
        round = Math.round,
 
        rhorizontal = /left|center|right/,
 
        rvertical = /top|center|bottom/,
 
        roffset = /[\+\-]\d+%?/,
 
        rposition = /^\w+/,
 
        rpercent = /%$/,
 
        _position = $.fn.position;
 
 
 
 
     function getOffsets(offsets, width, height) {
 
     function getOffsets(offsets, width, height) {
         return [parseInt(offsets[0], 10) * (rpercent.test(offsets[0]) ? width / 100 : 1), parseInt(offsets[1], 10) * (rpercent.test(offsets[1]) ? height / 100 : 1)];
+
         return [
 +
            parseInt(offsets[0], 10) * (rpercent.test(offsets[0]) ? width / 100 : 1),
 +
            parseInt(offsets[1], 10) * (rpercent.test(offsets[1]) ? height / 100 : 1)
 +
        ];
 
     }
 
     }
 
 
     function parseCss(element, property) {
 
     function parseCss(element, property) {
 
         return parseInt($.css(element, property), 10) || 0;
 
         return parseInt($.css(element, property), 10) || 0;
 
     }
 
     }
 
     $.position = {
 
     $.position = {
         scrollbarWidth: function() {
+
         scrollbarWidth: function () {
 
             if (cachedScrollbarWidth !== undefined) {
 
             if (cachedScrollbarWidth !== undefined) {
 
                 return cachedScrollbarWidth;
 
                 return cachedScrollbarWidth;
 
             }
 
             }
             var w1, w2, div = $("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),
+
             var w1, w2, div = $("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), innerDiv = div.children()[0];
                innerDiv = div.children()[0];
 
 
             $("body").append(div);
 
             $("body").append(div);
 
             w1 = innerDiv.offsetWidth;
 
             w1 = innerDiv.offsetWidth;
第8,461行: 第8,604行:
 
             return (cachedScrollbarWidth = w1 - w2);
 
             return (cachedScrollbarWidth = w1 - w2);
 
         },
 
         },
         getScrollInfo: function(within) {
+
         getScrollInfo: function (within) {
             var overflowX = within.isWindow ? "" : within.element.css("overflow-x"),
+
             var overflowX = within.isWindow ? "" : within.element.css("overflow-x"), overflowY = within.isWindow ? "" : within.element.css("overflow-y"), hasOverflowX = overflowX === "scroll" ||
                overflowY = within.isWindow ? "" : within.element.css("overflow-y"),
+
                (overflowX === "auto" && within.width < within.element[0].scrollWidth), hasOverflowY = overflowY === "scroll" ||
                hasOverflowX = overflowX === "scroll" || (overflowX === "auto" && within.width < within.element[0].scrollWidth),
+
                (overflowY === "auto" && within.height < within.element[0].scrollHeight);
                hasOverflowY = overflowY === "scroll" || (overflowY === "auto" && within.height < within.element[0].scrollHeight);
 
 
             return {
 
             return {
 
                 width: hasOverflowX ? $.position.scrollbarWidth() : 0,
 
                 width: hasOverflowX ? $.position.scrollbarWidth() : 0,
第8,471行: 第8,613行:
 
             };
 
             };
 
         },
 
         },
         getWithinInfo: function(element) {
+
        isWindow: function (obj) {
             var withinElement = $(element || window),
+
            return obj != null && obj === obj.window;
                isWindow = $.isWindow(withinElement[0]);
+
        },
 +
         getWithinInfo: function (element) {
 +
             var withinElement = $(element || window), isWindow = this.isWindow(withinElement[0]), isDocument = !!withinElement[0] && withinElement[0].nodeType === 9, hasOffset = !isWindow && !isDocument;
 
             return {
 
             return {
 
                 element: withinElement,
 
                 element: withinElement,
 
                 isWindow: isWindow,
 
                 isWindow: isWindow,
                 offset: withinElement.offset() || {
+
                 offset: hasOffset ? $(element).offset() : { left: 0, top: 0 },
                    left: 0,
 
                    top: 0
 
                },
 
 
                 scrollLeft: withinElement.scrollLeft(),
 
                 scrollLeft: withinElement.scrollLeft(),
 
                 scrollTop: withinElement.scrollTop(),
 
                 scrollTop: withinElement.scrollTop(),
第8,488行: 第8,629行:
 
         }
 
         }
 
     };
 
     };
     $.fn.position = function(options) {
+
     $.fn.position = function (options) {
 
         if (!options || !options.of) {
 
         if (!options || !options.of) {
 
             return _position.apply(this, arguments);
 
             return _position.apply(this, arguments);
 
         }
 
         }
 
         options = $.extend({}, options);
 
         options = $.extend({}, options);
         var atOffset, targetWidth, targetHeight, targetOffset, basePosition, target = $(options.of),
+
         var atOffset, targetWidth, targetHeight, targetOffset, basePosition, target = $(options.of), within = $.position.getWithinInfo(options.within), scrollInfo = $.position.getScrollInfo(within), targetElem = target[0], collision = (options.collision || "flip").split(" "), offsets = {};
            within = $.position.getWithinInfo(options.within),
 
            scrollInfo = $.position.getScrollInfo(within),
 
            targetElem = target[0],
 
            collision = (options.collision || "flip").split(" "),
 
            offsets = {};
 
 
         if (targetElem.nodeType === 9) {
 
         if (targetElem.nodeType === 9) {
 
             targetWidth = target.width();
 
             targetWidth = target.width();
 
             targetHeight = target.height();
 
             targetHeight = target.height();
             targetOffset = {
+
             targetOffset = { top: 0, left: 0 };
                top: 0,
+
         }
                left: 0
+
        else if ($.position.isWindow(targetElem)) {
            };
+
             targetWidth = target.width();
         } else if ($.isWindow(targetElem)) {
 
             targetWidth =
 
                target.width();
 
 
             targetHeight = target.height();
 
             targetHeight = target.height();
             targetOffset = {
+
             targetOffset = { top: target.scrollTop(), left: target.scrollLeft() };
                top: target.scrollTop(),
+
         }
                left: target.scrollLeft()
+
        else if (targetElem.preventDefault) {
            };
 
         } else if (targetElem.preventDefault) {
 
 
             options.at = "left top";
 
             options.at = "left top";
 
             targetWidth = targetHeight = 0;
 
             targetWidth = targetHeight = 0;
             targetOffset = {
+
             targetOffset = { top: targetElem.pageY, left: targetElem.pageX };
                top: targetElem.pageY,
+
         }
                left: targetElem.pageX
+
        else {
            };
 
         } else {
 
 
             targetWidth = target.outerWidth();
 
             targetWidth = target.outerWidth();
 
             targetHeight = target.outerHeight();
 
             targetHeight = target.outerHeight();
第8,527行: 第8,656行:
 
         }
 
         }
 
         basePosition = $.extend({}, targetOffset);
 
         basePosition = $.extend({}, targetOffset);
         $.each(["my", "at"], function() {
+
         $.each(["my", "at"], function () {
             var pos = (options[this] || "").split(" "),
+
             var pos = (options[this] || "").split(" "), horizontalOffset, verticalOffset;
                horizontalOffset, verticalOffset;
 
 
             if (pos.length === 1) {
 
             if (pos.length === 1) {
                 pos = rhorizontal.test(pos[0]) ? pos.concat(["center"]) : rvertical.test(pos[0]) ? ["center"].concat(pos) : ["center", "center"];
+
                 pos = rhorizontal.test(pos[0]) ?
 +
                    pos.concat(["center"]) :
 +
                    rvertical.test(pos[0]) ?
 +
                        ["center"].concat(pos) :
 +
                        ["center", "center"];
 
             }
 
             }
 
             pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center";
 
             pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center";
第8,537行: 第8,669行:
 
             horizontalOffset = roffset.exec(pos[0]);
 
             horizontalOffset = roffset.exec(pos[0]);
 
             verticalOffset = roffset.exec(pos[1]);
 
             verticalOffset = roffset.exec(pos[1]);
             offsets[this] = [horizontalOffset ? horizontalOffset[0] : 0, verticalOffset ? verticalOffset[0] : 0];
+
             offsets[this] = [
             options[this] = [rposition.exec(pos[0])[0], rposition.exec(pos[1])[0]];
+
                horizontalOffset ? horizontalOffset[0] : 0,
 +
                verticalOffset ? verticalOffset[0] : 0
 +
            ];
 +
             options[this] = [
 +
                rposition.exec(pos[0])[0],
 +
                rposition.exec(pos[1])[0]
 +
            ];
 
         });
 
         });
 
         if (collision.length === 1) {
 
         if (collision.length === 1) {
             collision[1] =
+
             collision[1] = collision[0];
                collision[0];
 
 
         }
 
         }
 
         if (options.at[0] === "right") {
 
         if (options.at[0] === "right") {
 
             basePosition.left += targetWidth;
 
             basePosition.left += targetWidth;
         } else if (options.at[0] === "center") {
+
         }
 +
        else if (options.at[0] === "center") {
 
             basePosition.left += targetWidth / 2;
 
             basePosition.left += targetWidth / 2;
 
         }
 
         }
 
         if (options.at[1] === "bottom") {
 
         if (options.at[1] === "bottom") {
 
             basePosition.top += targetHeight;
 
             basePosition.top += targetHeight;
         } else if (options.at[1] === "center") {
+
         }
 +
        else if (options.at[1] === "center") {
 
             basePosition.top += targetHeight / 2;
 
             basePosition.top += targetHeight / 2;
 
         }
 
         }
第8,557行: 第8,696行:
 
         basePosition.left += atOffset[0];
 
         basePosition.left += atOffset[0];
 
         basePosition.top += atOffset[1];
 
         basePosition.top += atOffset[1];
         return this.each(function() {
+
         return this.each(function () {
             var collisionPosition, using, elem = $(this),
+
             var collisionPosition, using, elem = $(this), elemWidth = elem.outerWidth(), elemHeight = elem.outerHeight(), marginLeft = parseCss(this, "marginLeft"), marginTop = parseCss(this, "marginTop"), collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + scrollInfo.width, collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + scrollInfo.height, position = $.extend({}, basePosition), myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
                elemWidth = elem.outerWidth(),
 
                elemHeight = elem.outerHeight(),
 
                marginLeft = parseCss(this, "marginLeft"),
 
                marginTop = parseCss(this, "marginTop"),
 
                collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + scrollInfo.width,
 
                collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + scrollInfo.height,
 
                position = $.extend({}, basePosition),
 
                myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
 
 
             if (options.my[0] === "right") {
 
             if (options.my[0] === "right") {
 
                 position.left -= elemWidth;
 
                 position.left -= elemWidth;
             } else if (options.my[0] === "center") {
+
             }
 +
            else if (options.my[0] === "center") {
 
                 position.left -= elemWidth / 2;
 
                 position.left -= elemWidth / 2;
 
             }
 
             }
             if (options.my[1] ===
+
             if (options.my[1] === "bottom") {
                "bottom") {
 
 
                 position.top -= elemHeight;
 
                 position.top -= elemHeight;
             } else if (options.my[1] === "center") {
+
             }
 +
            else if (options.my[1] === "center") {
 
                 position.top -= elemHeight / 2;
 
                 position.top -= elemHeight / 2;
 
             }
 
             }
第8,588行: 第8,720行:
 
                 marginTop: marginTop
 
                 marginTop: marginTop
 
             };
 
             };
             $.each(["left", "top"], function(i, dir) {
+
             $.each(["left", "top"], function (i, dir) {
 
                 if ($.ui.position[collision[i]]) {
 
                 if ($.ui.position[collision[i]]) {
 
                     $.ui.position[collision[i]][dir](position, {
 
                     $.ui.position[collision[i]][dir](position, {
第8,610行: 第8,742行:
 
             }
 
             }
 
             if (options.using) {
 
             if (options.using) {
                 using = function(props) {
+
                 using = function (props) {
                     var left = targetOffset.left - position.left,
+
                     var left = targetOffset.left - position.left, right = left + targetWidth - elemWidth, top = targetOffset.top - position.top, bottom = top + targetHeight - elemHeight, feedback = {
                        right = left + targetWidth - elemWidth,
+
                        target: {
                        top = targetOffset.top - position.top,
+
                            element: target,
                        bottom = top + targetHeight - elemHeight,
+
                            left: targetOffset.left,
                        feedback = {
+
                            top: targetOffset.top,
                            target: {
+
                            width: targetWidth,
                                element: target,
+
                            height: targetHeight
                                left: targetOffset.
+
                        },
                                left,
+
                        element: {
                                top: targetOffset.top,
+
                            element: elem,
                                width: targetWidth,
+
                            left: position.left,
                                height: targetHeight
+
                            top: position.top,
                            },
+
                            width: elemWidth,
                            element: {
+
                            height: elemHeight
                                element: elem,
+
                        },
                                left: position.left,
+
                        horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
                                top: position.top,
+
                        vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
                                width: elemWidth,
+
                    };
                                height: elemHeight
 
                            },
 
                            horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
 
                            vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
 
                        };
 
 
                     if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
 
                     if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
 
                         feedback.horizontal = "center";
 
                         feedback.horizontal = "center";
第8,642行: 第8,769行:
 
                     if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
 
                     if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
 
                         feedback.important = "horizontal";
 
                         feedback.important = "horizontal";
                     } else {
+
                     }
 +
                    else {
 
                         feedback.important = "vertical";
 
                         feedback.important = "vertical";
 
                     }
 
                     }
第8,648行: 第8,776行:
 
                 };
 
                 };
 
             }
 
             }
             elem.offset($.extend(position, {
+
             elem.offset($.extend(position, { using: using }));
                using: using
 
            }));
 
 
         });
 
         });
 
     };
 
     };
 
     $.ui.position = {
 
     $.ui.position = {
 
         fit: {
 
         fit: {
             left: function(position, data) {
+
             left: function (position, data) {
                 var within = data.within,
+
                 var within = data.within, withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, outerWidth = within.width, collisionPosLeft = position.left - data.collisionPosition.marginLeft, overLeft = withinOffset - collisionPosLeft, overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, newOverRight;
                    withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+
                 if (data.collisionWidth > outerWidth) {
                    outerWidth = within.width,
 
                    collisionPosLeft = position.left - data.collisionPosition.marginLeft,
 
                    overLeft = withinOffset - collisionPosLeft,
 
                    overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
 
                    newOverRight;
 
                 if (
 
                    data.collisionWidth > outerWidth) {
 
 
                     if (overLeft > 0 && overRight <= 0) {
 
                     if (overLeft > 0 && overRight <= 0) {
 
                         newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
 
                         newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
 
                         position.left += overLeft - newOverRight;
 
                         position.left += overLeft - newOverRight;
                     } else if (overRight > 0 && overLeft <= 0) {
+
                     }
 +
                    else if (overRight > 0 && overLeft <= 0) {
 
                         position.left = withinOffset;
 
                         position.left = withinOffset;
                     } else {
+
                     }
 +
                    else {
 
                         if (overLeft > overRight) {
 
                         if (overLeft > overRight) {
 
                             position.left = withinOffset + outerWidth - data.collisionWidth;
 
                             position.left = withinOffset + outerWidth - data.collisionWidth;
                         } else {
+
                         }
 +
                        else {
 
                             position.left = withinOffset;
 
                             position.left = withinOffset;
 
                         }
 
                         }
 
                     }
 
                     }
                 } else if (overLeft > 0) {
+
                 }
 +
                else if (overLeft > 0) {
 
                     position.left += overLeft;
 
                     position.left += overLeft;
                 } else if (overRight > 0) {
+
                 }
 +
                else if (overRight > 0) {
 
                     position.left -= overRight;
 
                     position.left -= overRight;
                 } else {
+
                 }
 +
                else {
 
                     position.left = max(position.left - collisionPosLeft, position.left);
 
                     position.left = max(position.left - collisionPosLeft, position.left);
 
                 }
 
                 }
 
             },
 
             },
             top: function(position, data) {
+
             top: function (position, data) {
                 var within = data.within,
+
                 var within = data.within, withinOffset = within.isWindow ? within.scrollTop : within.offset.top, outerHeight = data.within.height, collisionPosTop = position.top - data.collisionPosition.marginTop, overTop = withinOffset - collisionPosTop, overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, newOverBottom;
                    withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
 
                    outerHeight = data.within.height,
 
                    collisionPosTop = position.top - data.collisionPosition.marginTop,
 
                    overTop = withinOffset - collisionPosTop,
 
                    overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
 
                    newOverBottom;
 
 
                 if (data.collisionHeight > outerHeight) {
 
                 if (data.collisionHeight > outerHeight) {
 
                     if (overTop > 0 && overBottom <= 0) {
 
                     if (overTop > 0 && overBottom <= 0) {
                         newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
+
                         newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
                            withinOffset;
 
 
                         position.top += overTop - newOverBottom;
 
                         position.top += overTop - newOverBottom;
                     } else if (overBottom > 0 && overTop <= 0) {
+
                     }
 +
                    else if (overBottom > 0 && overTop <= 0) {
 
                         position.top = withinOffset;
 
                         position.top = withinOffset;
                     } else {
+
                     }
 +
                    else {
 
                         if (overTop > overBottom) {
 
                         if (overTop > overBottom) {
 
                             position.top = withinOffset + outerHeight - data.collisionHeight;
 
                             position.top = withinOffset + outerHeight - data.collisionHeight;
                         } else {
+
                         }
 +
                        else {
 
                             position.top = withinOffset;
 
                             position.top = withinOffset;
 
                         }
 
                         }
 
                     }
 
                     }
                 } else if (overTop > 0) {
+
                 }
 +
                else if (overTop > 0) {
 
                     position.top += overTop;
 
                     position.top += overTop;
                 } else if (overBottom > 0) {
+
                 }
 +
                else if (overBottom > 0) {
 
                     position.top -= overBottom;
 
                     position.top -= overBottom;
                 } else {
+
                 }
 +
                else {
 
                     position.top = max(position.top - collisionPosTop, position.top);
 
                     position.top = max(position.top - collisionPosTop, position.top);
 
                 }
 
                 }
第8,717行: 第8,841行:
 
         },
 
         },
 
         flip: {
 
         flip: {
             left: function(position, data) {
+
             left: function (position, data) {
                 var within = data.within,
+
                 var within = data.within, withinOffset = within.offset.left + within.scrollLeft, outerWidth = within.width, offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, collisionPosLeft = position.left - data.collisionPosition.marginLeft, overLeft = collisionPosLeft - offsetLeft, overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, myOffset = data.my[0] === "left" ?
                    withinOffset = within.offset.left + within.scrollLeft,
+
                    -data.elemWidth :
                    outerWidth = within.width,
+
                    data.my[0] === "right" ?
                    offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+
                        data.elemWidth :
                    collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+
                        0, atOffset = data.at[0] === "left" ?
                    overLeft = collisionPosLeft - offsetLeft,
+
                    data.targetWidth :
                    overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+
                    data.at[0] === "right" ?
                    myOffset = data.my[0] === "left" ? -data.elemWidth : data.my[0] === "right" ? data.elemWidth : 0,
+
                        -data.targetWidth :
                    atOffset = data.at[0] === "left" ? data.targetWidth : data.at[0] === "right" ? -data.targetWidth : 0,
+
                        0, offset = -2 * data.offset[0], newOverRight, newOverLeft;
                    offset = -2 * data.offset[0],
 
                    newOverRight, newOverLeft;
 
 
                 if (overLeft < 0) {
 
                 if (overLeft < 0) {
 
                     newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
 
                     newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
第8,734行: 第8,856行:
 
                         position.left += myOffset + atOffset + offset;
 
                         position.left += myOffset + atOffset + offset;
 
                     }
 
                     }
                 } else if (overRight > 0) {
+
                 }
 +
                else if (overRight > 0) {
 
                     newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
 
                     newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
 
                     if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
 
                     if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
第8,741行: 第8,864行:
 
                 }
 
                 }
 
             },
 
             },
             top: function(position, data) {
+
             top: function (position, data) {
                 var within = data.within,
+
                 var within = data.within, withinOffset = within.offset.top + within.scrollTop, outerHeight = within.height, offsetTop = within.isWindow ? within.scrollTop : within.offset.top, collisionPosTop = position.top - data.collisionPosition.marginTop, overTop = collisionPosTop - offsetTop, overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, top = data.my[1] === "top", myOffset = top ?
                    withinOffset = within.offset.top + within.scrollTop,
+
                    -data.elemHeight :
                    outerHeight = within.height,
+
                    data.my[1] === "bottom" ?
                    offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+
                        data.elemHeight :
                    collisionPosTop = position.top - data.collisionPosition.marginTop,
+
                        0, atOffset = data.at[1] === "top" ?
                    overTop = collisionPosTop - offsetTop,
+
                    data.targetHeight :
                    overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+
                    data.at[1] === "bottom" ?
                    top = data.my[1] === "top",
+
                        -data.targetHeight :
                    myOffset = top ? -data.elemHeight : data.my[1] === "bottom" ? data.elemHeight : 0,
+
                        0, offset = -2 * data.offset[1], newOverTop, newOverBottom;
                    atOffset = data.at[1] === "top" ? data.targetHeight : data.at[1] === "bottom" ? -data.targetHeight : 0,
 
                    offset = -2 * data.offset[1],
 
                    newOverTop, newOverBottom;
 
 
                 if (overTop < 0) {
 
                 if (overTop < 0) {
 
                     newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
 
                     newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
第8,759行: 第8,879行:
 
                         position.top += myOffset + atOffset + offset;
 
                         position.top += myOffset + atOffset + offset;
 
                     }
 
                     }
                 } else if (overBottom > 0) {
+
                 }
 +
                else if (overBottom > 0) {
 
                     newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
 
                     newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
 
                     if ((position.top + myOffset + atOffset + offset) > overBottom && (newOverTop > 0 || abs(newOverTop) < overBottom)) {
 
                     if ((position.top + myOffset + atOffset + offset) > overBottom && (newOverTop > 0 || abs(newOverTop) < overBottom)) {
第8,768行: 第8,889行:
 
         },
 
         },
 
         flipfit: {
 
         flipfit: {
             left: function() {
+
             left: function () {
 
                 $.ui.position.flip.left.apply(this, arguments);
 
                 $.ui.position.flip.left.apply(this, arguments);
 
                 $.ui.position.fit.left.apply(this, arguments);
 
                 $.ui.position.fit.left.apply(this, arguments);
 
             },
 
             },
             top: function() {
+
             top: function () {
 
                 $.ui.position.flip.top.apply(this, arguments);
 
                 $.ui.position.flip.top.apply(this, arguments);
 
                 $.ui.position.fit.top.apply(this, arguments);
 
                 $.ui.position.fit.top.apply(this, arguments);
第8,778行: 第8,899行:
 
         }
 
         }
 
     };
 
     };
     (function() {
+
     (function () {
         var testElement, testElementParent, testElementStyle, offsetLeft, i, body = document.getElementsByTagName("body")[0],
+
         var testElement, testElementParent, testElementStyle, offsetLeft, i, body = document.getElementsByTagName("body")[0], div = document.createElement("div");
            div = document.createElement("div");
 
 
         testElement = document.createElement(body ? "div" : "body");
 
         testElement = document.createElement(body ? "div" : "body");
 
         testElementStyle = {
 
         testElementStyle = {
第8,810行: 第8,930行:
 
     })();
 
     })();
 
     if ($.uiBackCompat !== false) {
 
     if ($.uiBackCompat !== false) {
         (function($) {
+
         (function ($) {
 
             var _position = $.fn.position;
 
             var _position = $.fn.position;
             $.fn.position = function(options) {
+
             $.fn.position = function (options) {
 
                 if (!options || !options.offset) {
 
                 if (!options || !options.offset) {
 
                     return _position.call(this, options);
 
                     return _position.call(this, options);
 
                 }
 
                 }
                 var offset = options.offset.split(" "),
+
                 var offset = options.offset.split(" "), at = options.at.split(" ");
                    at = options.at.split(" ");
 
 
                 if (offset.length === 1) {
 
                 if (offset.length === 1) {
 
                     offset[1] = offset[0];
 
                     offset[1] = offset[0];
第8,830行: 第8,949行:
 
                     if (/left|center|right/.test(at[0])) {
 
                     if (/left|center|right/.test(at[0])) {
 
                         at[1] = "center";
 
                         at[1] = "center";
                     } else {
+
                     }
 +
                    else {
 
                         at[1] = at[0];
 
                         at[1] = at[0];
 
                         at[0] = "center";
 
                         at[0] = "center";
第8,843行: 第8,963行:
 
     }
 
     }
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
 
     $.widget("ui.progressbar", {
 
     $.widget("ui.progressbar", {
 
         version: "1.9.2",
 
         version: "1.9.2",
第8,851行: 第8,971行:
 
         },
 
         },
 
         min: 0,
 
         min: 0,
         _create: function() {
+
         _create: function () {
             this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({
+
             this.element
 +
                .addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all")
 +
                .attr({
 
                 role: "progressbar",
 
                 role: "progressbar",
 
                 "aria-valuemin": this.min,
 
                 "aria-valuemin": this.min,
第8,858行: 第8,980行:
 
                 "aria-valuenow": this._value()
 
                 "aria-valuenow": this._value()
 
             });
 
             });
             this.valueDiv = $("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);
+
             this.valueDiv = $("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>")
 +
                .appendTo(this.element);
 
             this.oldValue = this._value();
 
             this.oldValue = this._value();
 
             this._refreshValue();
 
             this._refreshValue();
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
             this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
+
             this.element
 +
                .removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all")
 +
                .removeAttr("role")
 +
                .removeAttr("aria-valuemin")
 +
                .removeAttr("aria-valuemax")
 +
                .removeAttr("aria-valuenow");
 
             this.valueDiv.remove();
 
             this.valueDiv.remove();
 
         },
 
         },
         value: function(newValue) {
+
         value: function (newValue) {
 
             if (newValue === undefined) {
 
             if (newValue === undefined) {
 
                 return this._value();
 
                 return this._value();
第8,873行: 第9,001行:
 
             return this;
 
             return this;
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key === "value") {
 
             if (key === "value") {
 
                 this.options.value = value;
 
                 this.options.value = value;
第8,883行: 第9,011行:
 
             this._super(key, value);
 
             this._super(key, value);
 
         },
 
         },
         _value: function() {
+
         _value: function () {
 
             var val = this.options.value;
 
             var val = this.options.value;
 
             if (typeof val !== "number") {
 
             if (typeof val !== "number") {
第8,890行: 第9,018行:
 
             return Math.min(this.options.max, Math.max(this.min, val));
 
             return Math.min(this.options.max, Math.max(this.min, val));
 
         },
 
         },
         _percentage: function() {
+
         _percentage: function () {
 
             return 100 * this._value() / this.options.max;
 
             return 100 * this._value() / this.options.max;
 
         },
 
         },
         _refreshValue: function() {
+
         _refreshValue: function () {
             var value = this.value(),
+
             var value = this.value(), percentage = this._percentage();
                percentage = this._percentage();
 
 
             if (this.oldValue !== value) {
 
             if (this.oldValue !== value) {
 
                 this.oldValue = value;
 
                 this.oldValue = value;
 
                 this._trigger("change");
 
                 this._trigger("change");
 
             }
 
             }
             this.valueDiv.toggle(value > this.min).toggleClass("ui-corner-right", value === this.options.max).width(percentage.toFixed(0) + "%");
+
             this.valueDiv
 +
                .toggle(value > this.min)
 +
                .toggleClass("ui-corner-right", value === this.options.max)
 +
                .width(percentage.toFixed(0) + "%");
 
             this.element.attr("aria-valuenow", value);
 
             this.element.attr("aria-valuenow", value);
 
         }
 
         }
 
     });
 
     });
 
})(jQuery);
 
})(jQuery);
(function($, undefined) {
+
(function ($, undefined) {
 
     var numPages = 5;
 
     var numPages = 5;
 
     $.widget("ui.slider", $.ui.mouse, {
 
     $.widget("ui.slider", $.ui.mouse, {
第8,911行: 第9,041行:
 
         widgetEventPrefix: "slide",
 
         widgetEventPrefix: "slide",
 
         options: {
 
         options: {
             animate: !1,
+
             animate: false,
 
             distance: 0,
 
             distance: 0,
 
             max: 100,
 
             max: 100,
 
             min: 0,
 
             min: 0,
 
             orientation: "horizontal",
 
             orientation: "horizontal",
             range: !1,
+
             range: false,
 
             step: 1,
 
             step: 1,
 
             value: 0,
 
             value: 0,
 
             values: null
 
             values: null
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             var i, handleCount, o = this.options,
+
             var i, handleCount, o = this.options, existingHandles = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>", handles = [];
                existingHandles = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
+
             this._keySliding = false;
                handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
+
             this._mouseSliding = false;
                handles = [];
+
             this._animateOff = true;
             this._keySliding = !1;
 
             this._mouseSliding = !1;
 
             this._animateOff = !0;
 
 
             this._handleIndex = null;
 
             this._handleIndex = null;
 
             this._detectOrientation();
 
             this._detectOrientation();
 
             this._mouseInit();
 
             this._mouseInit();
             this.element.addClass("ui-slider" + " ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all" + (o.disabled ? " ui-slider-disabled ui-disabled" : ""));
+
             this.element
 +
                .addClass("ui-slider" +
 +
                " ui-slider-" + this.orientation +
 +
                " ui-widget" +
 +
                " ui-widget-content" +
 +
                " ui-corner-all" +
 +
                (o.disabled ? " ui-slider-disabled ui-disabled" : ""));
 
             this.range = $([]);
 
             this.range = $([]);
 
             if (o.range) {
 
             if (o.range) {
第8,943行: 第9,076行:
 
                     }
 
                     }
 
                 }
 
                 }
                 this.range = $("<div></div>").appendTo(this.element).addClass("ui-slider-range" + " ui-widget-header" + ((o.range === "min" || o.range === "max") ? " ui-slider-range-" + o.range : ""));
+
                 this.range = $("<div></div>")
 +
                    .appendTo(this.element)
 +
                    .addClass("ui-slider-range" +
 +
                    " ui-widget-header" +
 +
                    ((o.range === "min" || o.range === "max") ? " ui-slider-range-" + o.range : ""));
 
             }
 
             }
 
             handleCount = (o.values && o.values.length) || 1;
 
             handleCount = (o.values && o.values.length) || 1;
第8,949行: 第9,086行:
 
                 handles.push(handle);
 
                 handles.push(handle);
 
             }
 
             }
             this.handles = existingHandles.add($(
+
             this.handles = existingHandles.add($(handles.join("")).appendTo(this.element));
                handles.join("")).appendTo(this.element));
 
 
             this.handle = this.handles.eq(0);
 
             this.handle = this.handles.eq(0);
             this.handles.add(this.range).filter("a").click(function(event) {
+
             this.handles.add(this.range).filter("a")
 +
                .click(function (event) {
 
                 event.preventDefault();
 
                 event.preventDefault();
             }).mouseenter(function() {
+
             })
 +
                .mouseenter(function () {
 
                 if (!o.disabled) {
 
                 if (!o.disabled) {
 
                     $(this).addClass("ui-state-hover");
 
                     $(this).addClass("ui-state-hover");
 
                 }
 
                 }
             }).mouseleave(function() {
+
             })
 +
                .mouseleave(function () {
 
                 $(this).removeClass("ui-state-hover");
 
                 $(this).removeClass("ui-state-hover");
             }).focus(function() {
+
             })
 +
                .focus(function () {
 
                 if (!o.disabled) {
 
                 if (!o.disabled) {
 
                     $(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
 
                     $(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
 
                     $(this).addClass("ui-state-focus");
 
                     $(this).addClass("ui-state-focus");
                 } else {
+
                 }
 +
                else {
 
                     $(this).blur();
 
                     $(this).blur();
 
                 }
 
                 }
             }).blur(function() {
+
             })
 +
                .blur(function () {
 
                 $(this).removeClass("ui-state-focus");
 
                 $(this).removeClass("ui-state-focus");
 
             });
 
             });
             this.handles.each(function(i) {
+
             this.handles.each(function (i) {
 
                 $(this).data("ui-slider-handle-index", i);
 
                 $(this).data("ui-slider-handle-index", i);
 
             });
 
             });
 
             this._on(this.handles, {
 
             this._on(this.handles, {
                 keydown: function(event) {
+
                 keydown: function (event) {
 
                     var allowed, curVal, newVal, step, index = $(event.target).data("ui-slider-handle-index");
 
                     var allowed, curVal, newVal, step, index = $(event.target).data("ui-slider-handle-index");
 
                     switch (event.keyCode) {
 
                     switch (event.keyCode) {
第8,987行: 第9,129行:
 
                             event.preventDefault();
 
                             event.preventDefault();
 
                             if (!this._keySliding) {
 
                             if (!this._keySliding) {
                                 this._keySliding = !0;
+
                                 this._keySliding = true;
                                 $(
+
                                 $(event.target).addClass("ui-state-active");
                                    event.target).addClass("ui-state-active");
 
 
                                 allowed = this._start(event, index);
 
                                 allowed = this._start(event, index);
 
                                 if (allowed === false) {
 
                                 if (allowed === false) {
第9,000行: 第9,141行:
 
                     if (this.options.values && this.options.values.length) {
 
                     if (this.options.values && this.options.values.length) {
 
                         curVal = newVal = this.values(index);
 
                         curVal = newVal = this.values(index);
                     } else {
+
                     }
 +
                    else {
 
                         curVal = newVal = this.value();
 
                         curVal = newVal = this.value();
 
                     }
 
                     }
第9,033行: 第9,175行:
 
                     this._slide(event, index, newVal);
 
                     this._slide(event, index, newVal);
 
                 },
 
                 },
                 keyup: function(event) {
+
                 keyup: function (event) {
 
                     var index = $(event.target).data("ui-slider-handle-index");
 
                     var index = $(event.target).data("ui-slider-handle-index");
 
                     if (this._keySliding) {
 
                     if (this._keySliding) {
                         this._keySliding = !1;
+
                         this._keySliding = false;
 
                         this._stop(event, index);
 
                         this._stop(event, index);
 
                         this._change(event, index);
 
                         this._change(event, index);
第9,044行: 第9,186行:
 
             });
 
             });
 
             this._refreshValue();
 
             this._refreshValue();
             this._animateOff = !1;
+
             this._animateOff = false;
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             this.handles.remove();
 
             this.handles.remove();
 
             this.range.remove();
 
             this.range.remove();
             this.element.removeClass("ui-slider" + " ui-slider-horizontal" + " ui-slider-vertical" + " ui-slider-disabled" + " ui-widget" + " ui-widget-content" + " ui-corner-all");
+
             this.element
 +
                .removeClass("ui-slider" +
 +
                " ui-slider-horizontal" +
 +
                " ui-slider-vertical" +
 +
                " ui-slider-disabled" +
 +
                " ui-widget" +
 +
                " ui-widget-content" +
 +
                " ui-corner-all");
 
             this._mouseDestroy();
 
             this._mouseDestroy();
 
         },
 
         },
         _mouseCapture: function(event) {
+
         _mouseCapture: function (event) {
             var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, that = this,
+
             var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, that = this, o = this.options;
                o = this.options;
 
 
             if (o.disabled) {
 
             if (o.disabled) {
 
                 return false;
 
                 return false;
第9,063行: 第9,211行:
 
             };
 
             };
 
             this.elementOffset = this.element.offset();
 
             this.elementOffset = this.element.offset();
             position = {
+
             position = { x: event.pageX, y: event.pageY };
                x: event.pageX,
 
                y: event.pageY
 
            };
 
 
             normValue = this._normValueFromMouse(position);
 
             normValue = this._normValueFromMouse(position);
 
             distance = this._valueMax() - this._valueMin() + 1;
 
             distance = this._valueMax() - this._valueMin() + 1;
             this.handles.each(function(i) {
+
             this.handles.each(function (i) {
 
                 var thisDistance = Math.abs(normValue - that.values(i));
 
                 var thisDistance = Math.abs(normValue - that.values(i));
 
                 if (distance > thisDistance) {
 
                 if (distance > thisDistance) {
第9,085行: 第9,230行:
 
                 return false;
 
                 return false;
 
             }
 
             }
             this._mouseSliding = !0;
+
             this._mouseSliding = true;
 
             this._handleIndex = index;
 
             this._handleIndex = index;
             closestHandle.addClass("ui-state-active").focus();
+
             closestHandle
 +
                .addClass("ui-state-active")
 +
                .focus();
 
             offset = closestHandle.offset();
 
             offset = closestHandle.offset();
             mouseOverHandle = !$(event.target).parents().andSelf().is(".ui-slider-handle");
+
             mouseOverHandle = !$(event.target).parents().addBack().is(".ui-slider-handle");
             this._clickOffset = mouseOverHandle ? {
+
             this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
                left: 0,
 
                top: 0
 
            } : {
 
 
                 left: event.pageX - offset.left - (closestHandle.width() / 2),
 
                 left: event.pageX - offset.left - (closestHandle.width() / 2),
                 top: event.pageY - offset.top - (closestHandle.height() / 2) - (parseInt(closestHandle.css("borderTopWidth"), 10) || 0) - (parseInt(closestHandle.css("borderBottomWidth"), 10) || 0) + (parseInt(closestHandle.css("marginTop"), 10) || 0)
+
                 top: event.pageY - offset.top -
 +
                    (closestHandle.height() / 2) -
 +
                    (parseInt(closestHandle.css("borderTopWidth"), 10) || 0) -
 +
                    (parseInt(closestHandle.css("borderBottomWidth"), 10) || 0) +
 +
                    (parseInt(closestHandle.css("marginTop"), 10) || 0)
 
             };
 
             };
 
             if (!this.handles.hasClass("ui-state-hover")) {
 
             if (!this.handles.hasClass("ui-state-hover")) {
 
                 this._slide(event, index, normValue);
 
                 this._slide(event, index, normValue);
 
             }
 
             }
             this._animateOff = !0;
+
             this._animateOff = true;
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseStart: function() {
+
         _mouseStart: function () {
 
             return true;
 
             return true;
 
         },
 
         },
         _mouseDrag: function(event) {
+
         _mouseDrag: function (event) {
             var position = {
+
             var position = { x: event.pageX, y: event.pageY }, normValue = this._normValueFromMouse(position);
                    x: event.pageX,
+
             this._slide(event, this._handleIndex, normValue);
                    y: event.pageY
 
                },
 
                normValue = this._normValueFromMouse(position);
 
             this._slide(event, this._handleIndex,
 
                normValue);
 
 
             return false;
 
             return false;
 
         },
 
         },
         _mouseStop: function(event) {
+
         _mouseStop: function (event) {
 
             this.handles.removeClass("ui-state-active");
 
             this.handles.removeClass("ui-state-active");
             this._mouseSliding = !1;
+
             this._mouseSliding = false;
 
             this._stop(event, this._handleIndex);
 
             this._stop(event, this._handleIndex);
 
             this._change(event, this._handleIndex);
 
             this._change(event, this._handleIndex);
 
             this._handleIndex = null;
 
             this._handleIndex = null;
 
             this._clickOffset = null;
 
             this._clickOffset = null;
             this._animateOff = !1;
+
             this._animateOff = false;
 
             return false;
 
             return false;
 
         },
 
         },
         _detectOrientation: function() {
+
         _detectOrientation: function () {
 
             this.orientation = (this.options.orientation === "vertical") ? "vertical" : "horizontal";
 
             this.orientation = (this.options.orientation === "vertical") ? "vertical" : "horizontal";
 
         },
 
         },
         _normValueFromMouse: function(position) {
+
         _normValueFromMouse: function (position) {
 
             var pixelTotal, pixelMouse, percentMouse, valueTotal, valueMouse;
 
             var pixelTotal, pixelMouse, percentMouse, valueTotal, valueMouse;
 
             if (this.orientation === "horizontal") {
 
             if (this.orientation === "horizontal") {
 
                 pixelTotal = this.elementSize.width;
 
                 pixelTotal = this.elementSize.width;
 
                 pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
 
                 pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
             } else {
+
             }
 +
            else {
 
                 pixelTotal = this.elementSize.height;
 
                 pixelTotal = this.elementSize.height;
 
                 pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
 
                 pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
第9,152行: 第9,296行:
 
             return this._trimAlignValue(valueMouse);
 
             return this._trimAlignValue(valueMouse);
 
         },
 
         },
         _start: function(event, index) {
+
         _start: function (event, index) {
 
             var uiHash = {
 
             var uiHash = {
 
                 handle: this.handles[index],
 
                 handle: this.handles[index],
第9,163行: 第9,307行:
 
             return this._trigger("start", event, uiHash);
 
             return this._trigger("start", event, uiHash);
 
         },
 
         },
         _slide: function(event, index, newVal) {
+
         _slide: function (event, index, newVal) {
 
             var otherVal, newValues, allowed;
 
             var otherVal, newValues, allowed;
 
             if (this.options.values && this.options.values.length) {
 
             if (this.options.values && this.options.values.length) {
 
                 otherVal = this.values(index ? 0 : 1);
 
                 otherVal = this.values(index ? 0 : 1);
                 if ((this.options.values.length === 2 && this.options.range === true) && ((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))) {
+
                 if ((this.options.values.length === 2 && this.options.range === true) &&
 +
                    ((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))) {
 
                     newVal = otherVal;
 
                     newVal = otherVal;
 
                 }
 
                 }
第9,183行: 第9,328行:
 
                     }
 
                     }
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 if (newVal !== this.value()) {
 
                 if (newVal !== this.value()) {
 
                     allowed = this._trigger("slide", event, {
 
                     allowed = this._trigger("slide", event, {
第9,195行: 第9,341行:
 
             }
 
             }
 
         },
 
         },
         _stop: function(event, index) {
+
         _stop: function (event, index) {
 
             var uiHash = {
 
             var uiHash = {
 
                 handle: this.handles[index],
 
                 handle: this.handles[index],
第9,206行: 第9,352行:
 
             this._trigger("stop", event, uiHash);
 
             this._trigger("stop", event, uiHash);
 
         },
 
         },
         _change: function(event, index) {
+
         _change: function (event, index) {
 
             if (!this._keySliding && !this._mouseSliding) {
 
             if (!this._keySliding && !this._mouseSliding) {
 
                 var uiHash = {
 
                 var uiHash = {
第9,219行: 第9,365行:
 
             }
 
             }
 
         },
 
         },
         value: function(newValue) {
+
         value: function (newValue) {
 
             if (arguments.length) {
 
             if (arguments.length) {
 
                 this.options.value = this._trimAlignValue(newValue);
 
                 this.options.value = this._trimAlignValue(newValue);
第9,228行: 第9,374行:
 
             return this._value();
 
             return this._value();
 
         },
 
         },
         values: function(index, newValue) {
+
         values: function (index, newValue) {
 
             var vals, newValues, i;
 
             var vals, newValues, i;
 
             if (arguments.length > 1) {
 
             if (arguments.length > 1) {
第9,237行: 第9,383行:
 
             }
 
             }
 
             if (arguments.length) {
 
             if (arguments.length) {
                 if ($.isArray(arguments[0])) {
+
                 if (Array.isArray(arguments[0])) {
                     vals = this.options.
+
                     vals = this.options.values;
                    values;
 
 
                     newValues = arguments[0];
 
                     newValues = arguments[0];
 
                     for (i = 0; i < vals.length; i += 1) {
 
                     for (i = 0; i < vals.length; i += 1) {
第9,246行: 第9,391行:
 
                     }
 
                     }
 
                     this._refreshValue();
 
                     this._refreshValue();
                 } else {
+
                 }
 +
                else {
 
                     if (this.options.values && this.options.values.length) {
 
                     if (this.options.values && this.options.values.length) {
 
                         return this._values(index);
 
                         return this._values(index);
                     } else {
+
                     }
 +
                    else {
 
                         return this.value();
 
                         return this.value();
 
                     }
 
                     }
 
                 }
 
                 }
             } else {
+
             }
 +
            else {
 
                 return this._values();
 
                 return this._values();
 
             }
 
             }
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             var i, valsLength = 0;
 
             var i, valsLength = 0;
             if ($.isArray(this.options.values)) {
+
             if (Array.isArray(this.options.values)) {
 
                 valsLength = this.options.values.length;
 
                 valsLength = this.options.values.length;
 
             }
 
             }
第9,270行: 第9,418行:
 
                         this.handles.prop("disabled", true);
 
                         this.handles.prop("disabled", true);
 
                         this.element.addClass("ui-disabled");
 
                         this.element.addClass("ui-disabled");
                     } else {
+
                     }
 +
                    else {
 
                         this.handles.prop("disabled", false);
 
                         this.handles.prop("disabled", false);
 
                         this.element.removeClass("ui-disabled");
 
                         this.element.removeClass("ui-disabled");
第9,277行: 第9,426行:
 
                 case "orientation":
 
                 case "orientation":
 
                     this._detectOrientation();
 
                     this._detectOrientation();
                     this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
+
                     this.element
 +
                        .removeClass("ui-slider-horizontal ui-slider-vertical")
 +
                        .addClass("ui-slider-" + this.orientation);
 
                     this._refreshValue();
 
                     this._refreshValue();
 
                     break;
 
                     break;
 
                 case "value":
 
                 case "value":
                     this._animateOff = !0;
+
                     this._animateOff = true;
 
                     this._refreshValue();
 
                     this._refreshValue();
                     this._change(
+
                     this._change(null, 0);
                        null, 0);
+
                     this._animateOff = false;
                     this._animateOff = !1;
 
 
                     break;
 
                     break;
 
                 case "values":
 
                 case "values":
                     this._animateOff = !0;
+
                     this._animateOff = true;
 
                     this._refreshValue();
 
                     this._refreshValue();
 
                     for (i = 0; i < valsLength; i += 1) {
 
                     for (i = 0; i < valsLength; i += 1) {
 
                         this._change(null, i);
 
                         this._change(null, i);
 
                     }
 
                     }
                     this._animateOff = !1;
+
                     this._animateOff = false;
 
                     break;
 
                     break;
 
                 case "min":
 
                 case "min":
 
                 case "max":
 
                 case "max":
                     this._animateOff = !0;
+
                     this._animateOff = true;
 
                     this._refreshValue();
 
                     this._refreshValue();
                     this._animateOff = !1;
+
                     this._animateOff = false;
 
                     break;
 
                     break;
 
             }
 
             }
 
         },
 
         },
         _value: function() {
+
         _value: function () {
 
             var val = this.options.value;
 
             var val = this.options.value;
 
             val = this._trimAlignValue(val);
 
             val = this._trimAlignValue(val);
 
             return val;
 
             return val;
 
         },
 
         },
         _values: function(index) {
+
         _values: function (index) {
 
             var val, vals, i;
 
             var val, vals, i;
 
             if (arguments.length) {
 
             if (arguments.length) {
第9,314行: 第9,464行:
 
                 val = this._trimAlignValue(val);
 
                 val = this._trimAlignValue(val);
 
                 return val;
 
                 return val;
             } else {
+
             }
 +
            else {
 
                 vals = this.options.values.slice();
 
                 vals = this.options.values.slice();
 
                 for (i = 0; i < vals.length; i += 1) {
 
                 for (i = 0; i < vals.length; i += 1) {
第9,322行: 第9,473行:
 
             }
 
             }
 
         },
 
         },
         _trimAlignValue: function(val) {
+
         _trimAlignValue: function (val) {
 
             if (val <= this._valueMin()) {
 
             if (val <= this._valueMin()) {
 
                 return this._valueMin();
 
                 return this._valueMin();
第9,329行: 第9,480行:
 
                 return this._valueMax();
 
                 return this._valueMax();
 
             }
 
             }
             var step = (this.options.step > 0) ? this.options.step : 1,
+
             var step = (this.options.step > 0) ? this.options.step : 1, valModStep = (val - this._valueMin()) % step, alignValue = val - valModStep;
                valModStep = (val - this._valueMin()) % step,
 
                alignValue = val - valModStep;
 
 
             if (Math.abs(valModStep) * 2 >= step) {
 
             if (Math.abs(valModStep) * 2 >= step) {
 
                 alignValue += (valModStep > 0) ? step : (-step);
 
                 alignValue += (valModStep > 0) ? step : (-step);
第9,337行: 第9,486行:
 
             return parseFloat(alignValue.toFixed(5));
 
             return parseFloat(alignValue.toFixed(5));
 
         },
 
         },
         _valueMin: function() {
+
         _valueMin: function () {
             return this
+
             return this.options.min;
                .options.min;
 
 
         },
 
         },
         _valueMax: function() {
+
         _valueMax: function () {
 
             return this.options.max;
 
             return this.options.max;
 
         },
 
         },
         _refreshValue: function() {
+
         _refreshValue: function () {
             var lastValPercent, valPercent, value, valueMin, valueMax, oRange = this.options.range,
+
             var lastValPercent, valPercent, value, valueMin, valueMax, oRange = this.options.range, o = this.options, that = this, animate = (!this._animateOff) ? o.animate : false, _set = {};
                o = this.options,
 
                that = this,
 
                animate = (!this._animateOff) ? o.animate : !1,
 
                _set = {};
 
 
             if (this.options.values && this.options.values.length) {
 
             if (this.options.values && this.options.values.length) {
                 this.handles.each(function(i) {
+
                 this.handles.each(function (i) {
 
                     valPercent = (that.values(i) - that._valueMin()) / (that._valueMax() - that._valueMin()) * 100;
 
                     valPercent = (that.values(i) - that._valueMin()) / (that._valueMax() - that._valueMin()) * 100;
 
                     _set[that.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
 
                     _set[that.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
第9,358行: 第9,502行:
 
                         if (that.orientation === "horizontal") {
 
                         if (that.orientation === "horizontal") {
 
                             if (i === 0) {
 
                             if (i === 0) {
                                 that.range.stop(1, 1)[animate ? "animate" : "css"]({
+
                                 that.range.stop(1, 1)[animate ? "animate" : "css"]({ left: valPercent + "%" }, o.animate);
                                    left: valPercent + "%"
 
                                }, o.animate);
 
 
                             }
 
                             }
 
                             if (i === 1) {
 
                             if (i === 1) {
                                 that.range[animate ? "animate" : "css"]({
+
                                 that.range[animate ? "animate" : "css"]({ width: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
                                    width: (valPercent - lastValPercent) + "%"
 
                                }, {
 
                                    queue: !1,
 
                                    duration: o.animate
 
                                });
 
 
                             }
 
                             }
                         } else {
+
                         }
 +
                        else {
 
                             if (i === 0) {
 
                             if (i === 0) {
                                 that.range.stop(1, 1)[animate ? "animate" : "css"]({
+
                                 that.range.stop(1, 1)[animate ? "animate" : "css"]({ bottom: (valPercent) + "%" }, o.animate);
                                    bottom: (valPercent) + "%"
 
                                }, o.animate);
 
 
                             }
 
                             }
 
                             if (i === 1) {
 
                             if (i === 1) {
                                 that.range[animate ? "animate" : "css"]({
+
                                 that.range[animate ? "animate" : "css"]({ height: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
                                    height: (valPercent - lastValPercent) +
 
                                        "%"
 
                                }, {
 
                                    queue: !1,
 
                                    duration: o.animate
 
                                });
 
 
                             }
 
                             }
 
                         }
 
                         }
第9,389行: 第9,519行:
 
                     lastValPercent = valPercent;
 
                     lastValPercent = valPercent;
 
                 });
 
                 });
             } else {
+
             }
 +
            else {
 
                 value = this.value();
 
                 value = this.value();
 
                 valueMin = this._valueMin();
 
                 valueMin = this._valueMin();
 
                 valueMax = this._valueMax();
 
                 valueMax = this._valueMax();
                 valPercent = (valueMax !== valueMin) ? (value - valueMin) / (valueMax - valueMin) * 100 : 0;
+
                 valPercent = (valueMax !== valueMin) ?
 +
                    (value - valueMin) / (valueMax - valueMin) * 100 :
 +
                    0;
 
                 _set[this.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
 
                 _set[this.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
 
                 this.handle.stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);
 
                 this.handle.stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);
 
                 if (oRange === "min" && this.orientation === "horizontal") {
 
                 if (oRange === "min" && this.orientation === "horizontal") {
                     this.range.stop(1, 1)[animate ? "animate" : "css"]({
+
                     this.range.stop(1, 1)[animate ? "animate" : "css"]({ width: valPercent + "%" }, o.animate);
                        width: valPercent + "%"
 
                    }, o.animate);
 
 
                 }
 
                 }
 
                 if (oRange === "max" && this.orientation === "horizontal") {
 
                 if (oRange === "max" && this.orientation === "horizontal") {
                     this.range[animate ? "animate" : "css"]({
+
                     this.range[animate ? "animate" : "css"]({ width: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
                        width: (100 - valPercent) + "%"
 
                    }, {
 
                        queue: !1,
 
                        duration: o.animate
 
                    });
 
 
                 }
 
                 }
 
                 if (oRange === "min" && this.orientation === "vertical") {
 
                 if (oRange === "min" && this.orientation === "vertical") {
                     this.range.stop(1, 1)[animate ? "animate" : "css"]({
+
                     this.range.stop(1, 1)[animate ? "animate" : "css"]({ height: valPercent + "%" }, o.animate);
                        height: valPercent + "%"
 
                    }, o.animate);
 
 
                 }
 
                 }
 
                 if (oRange === "max" && this.orientation === "vertical") {
 
                 if (oRange === "max" && this.orientation === "vertical") {
                     this.range[animate ? "animate" : "css"]({
+
                     this.range[animate ? "animate" : "css"]({ height: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
                        height: (100 - valPercent) + "%"
 
                    }, {
 
                        queue: !1,
 
                        duration: o.animate
 
                    });
 
 
                 }
 
                 }
 
             }
 
             }
第9,426行: 第9,545行:
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
(function($, undefined) {
+
(function ($, undefined) {
     var tabId = 0,
+
     var tabId = 0, rhash = /#.*$/;
        rhash = /#.*$/;
+
     function getNextTabId() {
 
 
     function
 
    getNextTabId() {
 
 
         return ++tabId;
 
         return ++tabId;
 
     }
 
     }
 
 
     function isLocal(anchor) {
 
     function isLocal(anchor) {
         return anchor.hash.length > 1 && anchor.href.replace(rhash, "") === location.href.replace(rhash, "").replace(/\s/g, "%20");
+
         return anchor.hash.length > 1 &&
 +
            anchor.href.replace(rhash, "") ===
 +
                location.href.replace(rhash, "")
 +
                    .replace(/\s/g, "%20");
 
     }
 
     }
 
     $.widget("ui.tabs", {
 
     $.widget("ui.tabs", {
第9,443行: 第9,561行:
 
         options: {
 
         options: {
 
             active: null,
 
             active: null,
             collapsible: !1,
+
             collapsible: false,
 
             event: "click",
 
             event: "click",
 
             heightStyle: "content",
 
             heightStyle: "content",
第9,453行: 第9,571行:
 
             load: null
 
             load: null
 
         },
 
         },
         _create: function() {
+
         _create: function () {
             var that = this,
+
             var that = this, options = this.options, active = options.active, locationHash = location.hash.substring(1);
                options = this.options,
+
             this.running = false;
                active = options.active,
+
             this.element
                locationHash = location.hash.substring(1);
+
                .addClass("ui-tabs ui-widget ui-widget-content ui-corner-all")
             this.running = !1;
+
                .toggleClass("ui-tabs-collapsible", options.collapsible)
             this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", options.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function(event) {
+
                .on("mousedown" + this.eventNamespace, ".ui-tabs-nav > li", function (event) {
 
                 if ($(this).is(".ui-state-disabled")) {
 
                 if ($(this).is(".ui-state-disabled")) {
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 }
 
                 }
             }).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
+
             })
 +
                .on("focus" + this.eventNamespace, ".ui-tabs-anchor", function () {
 
                 if ($(this).closest("li").is(".ui-state-disabled")) {
 
                 if ($(this).closest("li").is(".ui-state-disabled")) {
 
                     this.blur();
 
                     this.blur();
第9,471行: 第9,590行:
 
             if (active === null) {
 
             if (active === null) {
 
                 if (locationHash) {
 
                 if (locationHash) {
                     this.tabs.each(function(i, tab) {
+
                     this.tabs.each(function (i, tab) {
                         if (
+
                         if ($(tab).attr("aria-controls") === locationHash) {
                            $(tab).attr("aria-controls") === locationHash) {
 
 
                             active = i;
 
                             active = i;
 
                             return false;
 
                             return false;
第9,483行: 第9,601行:
 
                 }
 
                 }
 
                 if (active === null || active === -1) {
 
                 if (active === null || active === -1) {
                     active = this.tabs.length ? 0 : !1;
+
                     active = this.tabs.length ? 0 : false;
 
                 }
 
                 }
 
             }
 
             }
第9,496行: 第9,614行:
 
                 options.active = 0;
 
                 options.active = 0;
 
             }
 
             }
             if ($.isArray(options.disabled)) {
+
             if (Array.isArray(options.disabled)) {
                 options.disabled = $.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"), function(li) {
+
                 options.disabled = $.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"), function (li) {
 
                     return that.tabs.index(li);
 
                     return that.tabs.index(li);
 
                 }))).sort();
 
                 }))).sort();
第9,503行: 第9,621行:
 
             if (this.options.active !== false && this.anchors.length) {
 
             if (this.options.active !== false && this.anchors.length) {
 
                 this.active = this._findActive(this.options.active);
 
                 this.active = this._findActive(this.options.active);
             } else {
+
             }
 +
            else {
 
                 this.active = $();
 
                 this.active = $();
 
             }
 
             }
第9,511行: 第9,630行:
 
             }
 
             }
 
         },
 
         },
         _getCreateEventData: function() {
+
         _getCreateEventData: function () {
 
             return {
 
             return {
 
                 tab: this.active,
 
                 tab: this.active,
第9,517行: 第9,636行:
 
             };
 
             };
 
         },
 
         },
         _tabKeydown: function(event) {
+
         _tabKeydown: function (event) {
             var focusedTab = $(this.document[0].activeElement).closest("li"),
+
             var focusedTab = $(this.document[0].activeElement).closest("li"), selectedIndex = this.tabs.index(focusedTab), goingForward = true;
                selectedIndex = this.tabs.index(focusedTab),
 
                goingForward = !0;
 
 
             if (this._handlePageNav(event)) {
 
             if (this._handlePageNav(event)) {
 
                 return;
 
                 return;
第9,531行: 第9,648行:
 
                 case $.ui.keyCode.UP:
 
                 case $.ui.keyCode.UP:
 
                 case $.ui.keyCode.LEFT:
 
                 case $.ui.keyCode.LEFT:
                     goingForward = !1;
+
                     goingForward = false;
 
                     selectedIndex--;
 
                     selectedIndex--;
 
                     break;
 
                     break;
第9,559行: 第9,676行:
 
                 focusedTab.attr("aria-selected", "false");
 
                 focusedTab.attr("aria-selected", "false");
 
                 this.tabs.eq(selectedIndex).attr("aria-selected", "true");
 
                 this.tabs.eq(selectedIndex).attr("aria-selected", "true");
                 this.activating = this._delay(function() {
+
                 this.activating = this._delay(function () {
                     this.option("active",
+
                     this.option("active", selectedIndex);
                        selectedIndex);
 
 
                 }, this.delay);
 
                 }, this.delay);
 
             }
 
             }
 
         },
 
         },
         _panelKeydown: function(event) {
+
         _panelKeydown: function (event) {
 
             if (this._handlePageNav(event)) {
 
             if (this._handlePageNav(event)) {
 
                 return;
 
                 return;
第9,574行: 第9,690行:
 
             }
 
             }
 
         },
 
         },
         _handlePageNav: function(event) {
+
         _handlePageNav: function (event) {
 
             if (event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP) {
 
             if (event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP) {
 
                 this._activate(this._focusNextTab(this.options.active - 1, false));
 
                 this._activate(this._focusNextTab(this.options.active - 1, false));
第9,584行: 第9,700行:
 
             }
 
             }
 
         },
 
         },
         _findNextTab: function(index, goingForward) {
+
         _findNextTab: function (index, goingForward) {
 
             var lastTabIndex = this.tabs.length - 1;
 
             var lastTabIndex = this.tabs.length - 1;
 
 
             function constrain() {
 
             function constrain() {
 
                 if (index > lastTabIndex) {
 
                 if (index > lastTabIndex) {
第9,601行: 第9,716行:
 
             return index;
 
             return index;
 
         },
 
         },
         _focusNextTab: function(index, goingForward) {
+
         _focusNextTab: function (index, goingForward) {
 
             index = this._findNextTab(index, goingForward);
 
             index = this._findNextTab(index, goingForward);
 
             this.tabs.eq(index).focus();
 
             this.tabs.eq(index).focus();
 
             return index;
 
             return index;
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             if (key === "active") {
 
             if (key === "active") {
 
                 this._activate(value);
 
                 this._activate(value);
 
                 return;
 
                 return;
 
             }
 
             }
             if (key ===
+
             if (key === "disabled") {
                "disabled") {
 
 
                 this._setupDisabled(value);
 
                 this._setupDisabled(value);
 
                 return;
 
                 return;
第9,630行: 第9,744行:
 
             }
 
             }
 
         },
 
         },
         _tabId: function(tab) {
+
         _tabId: function (tab) {
 
             return tab.attr("aria-controls") || "ui-tabs-" + getNextTabId();
 
             return tab.attr("aria-controls") || "ui-tabs-" + getNextTabId();
 
         },
 
         },
         _sanitizeSelector: function(hash) {
+
         _sanitizeSelector: function (hash) {
 
             return hash ? hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "";
 
             return hash ? hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "";
 
         },
 
         },
         refresh: function() {
+
         refresh: function () {
             var options = this.options,
+
             var options = this.options, lis = this.tablist.children(":has(a[href])");
                lis = this.tablist.children(":has(a[href])");
+
             options.disabled = $.map(lis.filter(".ui-state-disabled"), function (tab) {
             options.disabled = $.map(lis.filter(".ui-state-disabled"), function(tab) {
 
 
                 return lis.index(tab);
 
                 return lis.index(tab);
 
             });
 
             });
 
             this._processTabs();
 
             this._processTabs();
 
             if (options.active === false || !this.anchors.length) {
 
             if (options.active === false || !this.anchors.length) {
                 options.active = !1;
+
                 options.active = false;
 
                 this.active = $();
 
                 this.active = $();
             } else if (this.active.length && !$.contains(this.tablist[0], this.active[0])) {
+
             }
 +
            else if (this.active.length && !$.contains(this.tablist[0], this.active[0])) {
 
                 if (this.tabs.length === options.disabled.length) {
 
                 if (this.tabs.length === options.disabled.length) {
                     options.active = !1;
+
                     options.active = false;
 
                     this.active = $();
 
                     this.active = $();
                } else {
 
                    this._activate(this._findNextTab(Math.max(0,
 
                        options.active - 1), false));
 
 
                 }
 
                 }
             } else {
+
                else {
 +
                    this._activate(this._findNextTab(Math.max(0, options.active - 1), false));
 +
                }
 +
             }
 +
            else {
 
                 options.active = this.tabs.index(this.active);
 
                 options.active = this.tabs.index(this.active);
 
             }
 
             }
 
             this._refresh();
 
             this._refresh();
 
         },
 
         },
         _refresh: function() {
+
         _refresh: function () {
 
             this._setupDisabled(this.options.disabled);
 
             this._setupDisabled(this.options.disabled);
 
             this._setupEvents(this.options.event);
 
             this._setupEvents(this.options.event);
第9,667行: 第9,782行:
 
                 tabIndex: -1
 
                 tabIndex: -1
 
             });
 
             });
             this.panels.not(this._getPanelForTab(this.active)).hide().attr({
+
             this.panels.not(this._getPanelForTab(this.active))
 +
                .hide()
 +
                .attr({
 
                 "aria-expanded": "false",
 
                 "aria-expanded": "false",
 
                 "aria-hidden": "true"
 
                 "aria-hidden": "true"
第9,673行: 第9,790行:
 
             if (!this.active.length) {
 
             if (!this.active.length) {
 
                 this.tabs.eq(0).attr("tabIndex", 0);
 
                 this.tabs.eq(0).attr("tabIndex", 0);
             } else {
+
             }
                 this.active.addClass("ui-tabs-active ui-state-active").attr({
+
            else {
 +
                 this.active
 +
                    .addClass("ui-tabs-active ui-state-active")
 +
                    .attr({
 
                     "aria-selected": "true",
 
                     "aria-selected": "true",
 
                     tabIndex: 0
 
                     tabIndex: 0
 
                 });
 
                 });
                 this._getPanelForTab(this.active).show().attr({
+
                 this._getPanelForTab(this.active)
 +
                    .show()
 +
                    .attr({
 
                     "aria-expanded": "true",
 
                     "aria-expanded": "true",
 
                     "aria-hidden": "false"
 
                     "aria-hidden": "false"
第9,684行: 第9,806行:
 
             }
 
             }
 
         },
 
         },
         _processTabs: function() {
+
         _processTabs: function () {
 
             var that = this;
 
             var that = this;
             this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist");
+
             this.tablist = this._getList()
             this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({
+
                .addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all")
 +
                .attr("role", "tablist");
 +
             this.tabs = this.tablist.find("> li:has(a[href])")
 +
                .addClass("ui-state-default ui-corner-top")
 +
                .attr({
 
                 role: "tab",
 
                 role: "tab",
 
                 tabIndex: -1
 
                 tabIndex: -1
 
             });
 
             });
             this.
+
             this.anchors = this.tabs.map(function () {
            anchors = this.tabs.map(function() {
 
 
                 return $("a", this)[0];
 
                 return $("a", this)[0];
             }).addClass("ui-tabs-anchor").attr({
+
             })
 +
                .addClass("ui-tabs-anchor")
 +
                .attr({
 
                 role: "presentation",
 
                 role: "presentation",
 
                 tabIndex: -1
 
                 tabIndex: -1
 
             });
 
             });
 
             this.panels = $();
 
             this.panels = $();
             this.anchors.each(function(i, anchor) {
+
             this.anchors.each(function (i, anchor) {
                 var selector, panel, panelId, anchorId = $(anchor).uniqueId().attr("id"),
+
                 var selector, panel, panelId, anchorId = $(anchor).uniqueId().attr("id"), tab = $(anchor).closest("li"), originalAriaControls = tab.attr("aria-controls");
                    tab = $(anchor).closest("li"),
 
                    originalAriaControls = tab.attr("aria-controls");
 
 
                 if (isLocal(anchor)) {
 
                 if (isLocal(anchor)) {
 
                     selector = anchor.hash;
 
                     selector = anchor.hash;
 
                     panel = that.element.find(that._sanitizeSelector(selector));
 
                     panel = that.element.find(that._sanitizeSelector(selector));
                 } else {
+
                 }
 +
                else {
 
                     panelId = that._tabId(tab);
 
                     panelId = that._tabId(tab);
 
                     selector = "#" + panelId;
 
                     selector = "#" + panelId;
第9,728行: 第9,854行:
 
                 panel.attr("aria-labelledby", anchorId);
 
                 panel.attr("aria-labelledby", anchorId);
 
             });
 
             });
             this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel");
+
             this.panels
 +
                .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
 +
                .attr("role", "tabpanel");
 
         },
 
         },
         _getList: function() {
+
         _getList: function () {
 
             return this.element.find("ol,ul").eq(0);
 
             return this.element.find("ol,ul").eq(0);
 
         },
 
         },
         _createPanel: function(id) {
+
         _createPanel: function (id) {
             return $("<div>").attr("id", id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", true);
+
             return $("<div>")
 +
                .attr("id", id)
 +
                .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
 +
                .data("ui-tabs-destroy", true);
 
         },
 
         },
         _setupDisabled: function(disabled) {
+
         _setupDisabled: function (disabled) {
             if ($.isArray(disabled)) {
+
             if (Array.isArray(disabled)) {
 
                 if (!disabled.length) {
 
                 if (!disabled.length) {
                     disabled = !1;
+
                     disabled = false;
                 } else if (disabled.length === this.anchors.length) {
+
                 }
                     disabled = !0;
+
                else if (disabled.length === this.anchors.length) {
 +
                     disabled = true;
 
                 }
 
                 }
 
             }
 
             }
             for (var i = 0, li;
+
             for (var i = 0, li; (li = this.tabs[i]); i++) {
                (li = this.tabs[i]); i++) {
 
 
                 if (disabled === true || $.inArray(i, disabled) !== -1) {
 
                 if (disabled === true || $.inArray(i, disabled) !== -1) {
                     $(li).addClass("ui-state-disabled").attr("aria-disabled", "true");
+
                     $(li)
                 } else {
+
                        .addClass("ui-state-disabled")
                     $(li).removeClass("ui-state-disabled").removeAttr("aria-disabled");
+
                        .attr("aria-disabled", "true");
 +
                 }
 +
                else {
 +
                     $(li)
 +
                        .removeClass("ui-state-disabled")
 +
                        .removeAttr("aria-disabled");
 
                 }
 
                 }
 
             }
 
             }
 
             this.options.disabled = disabled;
 
             this.options.disabled = disabled;
 
         },
 
         },
         _setupEvents: function(event) {
+
         _setupEvents: function (event) {
 
             var events = {
 
             var events = {
                 click: function(event) {
+
                 click: function (event) {
 
                     event.preventDefault();
 
                     event.preventDefault();
 
                 }
 
                 }
 
             };
 
             };
 
             if (event) {
 
             if (event) {
                 $.each(event.split(" "), function(index, eventName) {
+
                 $.each(event.split(" "), function (index, eventName) {
 
                     events[eventName] = "_eventHandler";
 
                     events[eventName] = "_eventHandler";
 
                 });
 
                 });
第9,767行: 第9,903行:
 
             this._off(this.anchors.add(this.tabs).add(this.panels));
 
             this._off(this.anchors.add(this.tabs).add(this.panels));
 
             this._on(this.anchors, events);
 
             this._on(this.anchors, events);
             this._on(this.tabs, {
+
             this._on(this.tabs, { keydown: "_tabKeydown" });
                keydown: "_tabKeydown"
+
             this._on(this.panels, { keydown: "_panelKeydown" });
            });
+
             this._focusable(this.tabs);
             this._on(this.panels, {
 
                keydown: "_panelKeydown"
 
            });
 
             this.
 
            _focusable(this.tabs);
 
 
             this._hoverable(this.tabs);
 
             this._hoverable(this.tabs);
 
         },
 
         },
         _setupHeightStyle: function(heightStyle) {
+
         _setupHeightStyle: function (heightStyle) {
 
             var maxHeight, overflow, parent = this.element.parent();
 
             var maxHeight, overflow, parent = this.element.parent();
 
             if (heightStyle === "fill") {
 
             if (heightStyle === "fill") {
第9,785行: 第9,916行:
 
                 }
 
                 }
 
                 maxHeight = parent.height();
 
                 maxHeight = parent.height();
                 this.element.siblings(":visible").each(function() {
+
                 this.element.siblings(":visible").each(function () {
                     var elem = $(this),
+
                     var elem = $(this), position = elem.css("position");
                        position = elem.css("position");
 
 
                     if (position === "absolute" || position === "fixed") {
 
                     if (position === "absolute" || position === "fixed") {
 
                         return;
 
                         return;
第9,796行: 第9,926行:
 
                     parent.css("overflow", overflow);
 
                     parent.css("overflow", overflow);
 
                 }
 
                 }
                 this.element.children().not(this.panels).each(function() {
+
                 this.element.children().not(this.panels).each(function () {
 
                     maxHeight -= $(this).outerHeight(true);
 
                     maxHeight -= $(this).outerHeight(true);
 
                 });
 
                 });
                 this.panels.each(function() {
+
                 this.panels.each(function () {
                     $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
+
                     $(this).height(Math.max(0, maxHeight -
                 }).css("overflow", "auto");
+
                        $(this).innerHeight() + $(this).height()));
             } else if (heightStyle === "auto") {
+
                 })
 +
                    .css("overflow", "auto");
 +
             }
 +
            else if (heightStyle === "auto") {
 
                 maxHeight = 0;
 
                 maxHeight = 0;
                 this.panels.each(function() {
+
                 this.panels.each(function () {
 
                     maxHeight = Math.max(maxHeight, $(this).height("").height());
 
                     maxHeight = Math.max(maxHeight, $(this).height("").height());
 
                 }).height(maxHeight);
 
                 }).height(maxHeight);
 
             }
 
             }
 
         },
 
         },
         _eventHandler: function(event) {
+
         _eventHandler: function (event) {
             var options = this.options,
+
             var options = this.options, active = this.active, anchor = $(event.currentTarget), tab = anchor.closest("li"), clickedIsActive = tab[0] === active[0], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : this._getPanelForTab(tab), toHide = !active.length ? $() : this._getPanelForTab(active), eventData = {
                active = this.active,
+
                oldTab: active,
                anchor = $(event.currentTarget),
+
                oldPanel: toHide,
                tab = anchor.closest("li"),
+
                newTab: collapsing ? $() : tab,
                clickedIsActive = tab[0] === active[0],
+
                newPanel: toShow
                collapsing = clickedIsActive && options.collapsible,
+
            };
                toShow = collapsing ? $() : this._getPanelForTab(tab),
 
                toHide = !active.length ? $() : this._getPanelForTab(active),
 
                eventData = {
 
                    oldTab: active,
 
                    oldPanel: toHide,
 
                    newTab: collapsing ? $() : tab,
 
                    newPanel: toShow
 
                };
 
 
             event.preventDefault();
 
             event.preventDefault();
             if (tab.hasClass("ui-state-disabled") || tab.hasClass("ui-tabs-loading") || this.running || (clickedIsActive && !options.collapsible) || (this._trigger("beforeActivate", event, eventData) === false)) {
+
             if (tab.hasClass("ui-state-disabled") ||
 +
                tab.hasClass("ui-tabs-loading") ||
 +
                this.running ||
 +
                (clickedIsActive && !options.collapsible) ||
 +
                (this._trigger("beforeActivate", event, eventData) === false)) {
 
                 return;
 
                 return;
 
             }
 
             }
第9,841行: 第9,970行:
 
             this._toggle(event, eventData);
 
             this._toggle(event, eventData);
 
         },
 
         },
         _toggle: function(event, eventData) {
+
         _toggle: function (event, eventData) {
             var that = this,
+
             var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel;
                toShow = eventData.newPanel,
+
             this.running = true;
                toHide = eventData.oldPanel;
 
             this.running = !0;
 
 
 
 
             function complete() {
 
             function complete() {
                 that.running = !1;
+
                 that.running = false;
                 that.
+
                 that._trigger("activate", event, eventData);
                _trigger("activate", event, eventData);
 
 
             }
 
             }
 
 
             function show() {
 
             function show() {
 
                 eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
 
                 eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
 
                 if (toShow.length && that.options.show) {
 
                 if (toShow.length && that.options.show) {
 
                     that._show(toShow, that.options.show, complete);
 
                     that._show(toShow, that.options.show, complete);
                 } else {
+
                 }
 +
                else {
 
                     toShow.show();
 
                     toShow.show();
 
                     complete();
 
                     complete();
第9,863行: 第9,988行:
 
             }
 
             }
 
             if (toHide.length && this.options.hide) {
 
             if (toHide.length && this.options.hide) {
                 this._hide(toHide, this.options.hide, function() {
+
                 this._hide(toHide, this.options.hide, function () {
 
                     eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                     eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                     show();
 
                     show();
 
                 });
 
                 });
             } else {
+
             }
 +
            else {
 
                 eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                 eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                 toHide.hide();
 
                 toHide.hide();
第9,879行: 第10,005行:
 
             if (toShow.length && toHide.length) {
 
             if (toShow.length && toHide.length) {
 
                 eventData.oldTab.attr("tabIndex", -1);
 
                 eventData.oldTab.attr("tabIndex", -1);
             } else if (toShow.length) {
+
             }
                 this.tabs.filter(function() {
+
            else if (toShow.length) {
 +
                 this.tabs.filter(function () {
 
                     return $(this).attr("tabIndex") === 0;
 
                     return $(this).attr("tabIndex") === 0;
                 }).attr("tabIndex", -1);
+
                 })
 +
                    .attr("tabIndex", -1);
 
             }
 
             }
 
             toShow.attr({
 
             toShow.attr({
第9,893行: 第10,021行:
 
             });
 
             });
 
         },
 
         },
         _activate: function(index) {
+
         _activate: function (index) {
 
             var anchor, active = this._findActive(index);
 
             var anchor, active = this._findActive(index);
 
             if (active[0] === this.active[0]) {
 
             if (active[0] === this.active[0]) {
第9,908行: 第10,036行:
 
             });
 
             });
 
         },
 
         },
         _findActive: function(index) {
+
         _findActive: function (index) {
             return index === !1 ? $() : this.tabs.eq(index);
+
             return index === false ? $() : this.tabs.eq(index);
 
         },
 
         },
         _getIndex: function(index) {
+
         _getIndex: function (index) {
 
             if (typeof index === "string") {
 
             if (typeof index === "string") {
 
                 index = this.anchors.index(this.anchors.filter("[href$='" + index + "']"));
 
                 index = this.anchors.index(this.anchors.filter("[href$='" + index + "']"));
第9,917行: 第10,045行:
 
             return index;
 
             return index;
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             if (this.xhr) {
 
             if (this.xhr) {
 
                 this.xhr.abort();
 
                 this.xhr.abort();
 
             }
 
             }
 
             this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");
 
             this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");
             this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role");
+
             this.tablist
             this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId();
+
                .removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all")
             this.tabs.add(this.panels).each(function() {
+
                .removeAttr("role");
 +
             this.anchors
 +
                .removeClass("ui-tabs-anchor")
 +
                .removeAttr("role")
 +
                .removeAttr("tabIndex")
 +
                .removeData("href.tabs")
 +
                .removeData("load.tabs")
 +
                .removeUniqueId();
 +
             this.tabs.add(this.panels).each(function () {
 
                 if ($.data(this, "ui-tabs-destroy")) {
 
                 if ($.data(this, "ui-tabs-destroy")) {
 
                     $(this).remove();
 
                     $(this).remove();
                 } else {
+
                 }
                     $(this).removeClass(
+
                else {
                        "ui-state-default ui-state-active ui-state-disabled " + "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role");
+
                     $(this)
 +
                        .removeClass("ui-state-default ui-state-active ui-state-disabled " +
 +
                        "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel")
 +
                        .removeAttr("tabIndex")
 +
                        .removeAttr("aria-live")
 +
                        .removeAttr("aria-busy")
 +
                        .removeAttr("aria-selected")
 +
                        .removeAttr("aria-labelledby")
 +
                        .removeAttr("aria-hidden")
 +
                        .removeAttr("aria-expanded")
 +
                        .removeAttr("role");
 
                 }
 
                 }
 
             });
 
             });
             this.tabs.each(function() {
+
             this.tabs.each(function () {
                 var li = $(this),
+
                 var li = $(this), prev = li.data("ui-tabs-aria-controls");
                    prev = li.data("ui-tabs-aria-controls");
 
 
                 if (prev) {
 
                 if (prev) {
 
                     li.attr("aria-controls", prev);
 
                     li.attr("aria-controls", prev);
                 } else {
+
                 }
 +
                else {
 
                     li.removeAttr("aria-controls");
 
                     li.removeAttr("aria-controls");
 
                 }
 
                 }
第9,946行: 第10,092行:
 
             }
 
             }
 
         },
 
         },
         enable: function(index) {
+
         enable: function (index) {
 
             var disabled = this.options.disabled;
 
             var disabled = this.options.disabled;
 
             if (disabled === false) {
 
             if (disabled === false) {
第9,952行: 第10,098行:
 
             }
 
             }
 
             if (index === undefined) {
 
             if (index === undefined) {
                 disabled = !1;
+
                 disabled = false;
             } else {
+
             }
 +
            else {
 
                 index = this._getIndex(index);
 
                 index = this._getIndex(index);
                 if ($.isArray(disabled)) {
+
                 if (Array.isArray(disabled)) {
                     disabled = $.map(disabled, function(num) {
+
                     disabled = $.map(disabled, function (num) {
 
                         return num !== index ? num : null;
 
                         return num !== index ? num : null;
 
                     });
 
                     });
                 } else {
+
                 }
                     disabled = $.map(this.tabs, function(li, num) {
+
                else {
 +
                     disabled = $.map(this.tabs, function (li, num) {
 
                         return num !== index ? num : null;
 
                         return num !== index ? num : null;
 
                     });
 
                     });
第9,967行: 第10,115行:
 
             this._setupDisabled(disabled);
 
             this._setupDisabled(disabled);
 
         },
 
         },
         disable: function(index) {
+
         disable: function (index) {
             var disabled = this.
+
             var disabled = this.options.disabled;
            options.disabled;
 
 
             if (disabled === true) {
 
             if (disabled === true) {
 
                 return;
 
                 return;
 
             }
 
             }
 
             if (index === undefined) {
 
             if (index === undefined) {
                 disabled = !0;
+
                 disabled = true;
             } else {
+
             }
 +
            else {
 
                 index = this._getIndex(index);
 
                 index = this._getIndex(index);
 
                 if ($.inArray(index, disabled) !== -1) {
 
                 if ($.inArray(index, disabled) !== -1) {
 
                     return;
 
                     return;
 
                 }
 
                 }
                 if ($.isArray(disabled)) {
+
                 if (Array.isArray(disabled)) {
 
                     disabled = $.merge([index], disabled).sort();
 
                     disabled = $.merge([index], disabled).sort();
                 } else {
+
                 }
 +
                else {
 
                     disabled = [index];
 
                     disabled = [index];
 
                 }
 
                 }
第9,988行: 第10,137行:
 
             this._setupDisabled(disabled);
 
             this._setupDisabled(disabled);
 
         },
 
         },
         load: function(index, event) {
+
         load: function (index, event) {
 
             index = this._getIndex(index);
 
             index = this._getIndex(index);
             var that = this,
+
             var that = this, tab = this.tabs.eq(index), anchor = tab.find(".ui-tabs-anchor"), panel = this._getPanelForTab(tab), eventData = {
                tab = this.tabs.eq(index),
+
                tab: tab,
                anchor = tab.find(".ui-tabs-anchor"),
+
                panel: panel
                panel = this._getPanelForTab(tab),
+
            };
                eventData = {
 
                    tab: tab,
 
                    panel: panel
 
                };
 
 
             if (isLocal(anchor[0])) {
 
             if (isLocal(anchor[0])) {
 
                 return;
 
                 return;
第10,005行: 第10,150行:
 
                 tab.addClass("ui-tabs-loading");
 
                 tab.addClass("ui-tabs-loading");
 
                 panel.attr("aria-busy", "true");
 
                 panel.attr("aria-busy", "true");
                 this.xhr.success(function(response) {
+
                 this.xhr
                     setTimeout(function() {
+
                    .success(function (response) {
 +
                     setTimeout(function () {
 
                         panel.html(response);
 
                         panel.html(response);
 
                         that._trigger("load", event, eventData);
 
                         that._trigger("load", event, eventData);
 
                     }, 1);
 
                     }, 1);
                 }).complete(function(jqXHR, status) {
+
                 })
                     setTimeout(function() {
+
                    .complete(function (jqXHR, status) {
 +
                     setTimeout(function () {
 
                         if (status === "abort") {
 
                         if (status === "abort") {
 
                             that.panels.stop(false, true);
 
                             that.panels.stop(false, true);
第10,018行: 第10,165行:
 
                         panel.removeAttr("aria-busy");
 
                         panel.removeAttr("aria-busy");
 
                         if (jqXHR === that.xhr) {
 
                         if (jqXHR === that.xhr) {
                             delete that
+
                             delete that.xhr;
                                .xhr;
 
 
                         }
 
                         }
 
                     }, 1);
 
                     }, 1);
第10,025行: 第10,171行:
 
             }
 
             }
 
         },
 
         },
         _ajaxSettings: function(anchor, event, eventData) {
+
         _ajaxSettings: function (anchor, event, eventData) {
 
             var that = this;
 
             var that = this;
 
             return {
 
             return {
 
                 url: anchor.attr("href"),
 
                 url: anchor.attr("href"),
                 beforeSend: function(jqXHR, settings) {
+
                 beforeSend: function (jqXHR, settings) {
                     return that._trigger("beforeLoad", event, $.extend({
+
                     return that._trigger("beforeLoad", event, $.extend({ jqXHR: jqXHR, ajaxSettings: settings }, eventData));
                        jqXHR: jqXHR,
 
                        ajaxSettings: settings
 
                    }, eventData));
 
 
                 }
 
                 }
 
             };
 
             };
 
         },
 
         },
         _getPanelForTab: function(tab) {
+
         _getPanelForTab: function (tab) {
 
             var id = $(tab).attr("aria-controls");
 
             var id = $(tab).attr("aria-controls");
 
             return this.element.find(this._sanitizeSelector("#" + id));
 
             return this.element.find(this._sanitizeSelector("#" + id));
第10,043行: 第10,186行:
 
     });
 
     });
 
     if ($.uiBackCompat !== false) {
 
     if ($.uiBackCompat !== false) {
         $.ui.tabs.prototype._ui = function(tab, panel) {
+
         $.ui.tabs.prototype._ui = function (tab, panel) {
 
             return {
 
             return {
 
                 tab: tab,
 
                 tab: tab,
第10,051行: 第10,194行:
 
         };
 
         };
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             url: function(index, url) {
+
             url: function (index, url) {
 
                 this.anchors.eq(index).attr("href", url);
 
                 this.anchors.eq(index).attr("href", url);
 
             }
 
             }
第10,058行: 第10,201行:
 
             options: {
 
             options: {
 
                 ajaxOptions: null,
 
                 ajaxOptions: null,
                 cache: !1
+
                 cache: false
 
             },
 
             },
             _create: function() {
+
             _create: function () {
 
                 this._super();
 
                 this._super();
 
                 var that = this;
 
                 var that = this;
                 this._on({
+
                 this._on({ tabsbeforeload: function (event, ui) {
                    tabsbeforeload: function(event, ui) {
 
 
                         if ($.data(ui.tab[0], "cache.tabs")) {
 
                         if ($.data(ui.tab[0], "cache.tabs")) {
 
                             event.preventDefault();
 
                             event.preventDefault();
 
                             return;
 
                             return;
 
                         }
 
                         }
                         ui.jqXHR.success(function() {
+
                         ui.jqXHR.success(function () {
 
                             if (that.options.cache) {
 
                             if (that.options.cache) {
 
                                 $.data(ui.tab[0], "cache.tabs", true);
 
                                 $.data(ui.tab[0], "cache.tabs", true);
 
                             }
 
                             }
 
                         });
 
                         });
                     }
+
                     } });
                });
 
 
             },
 
             },
             _ajaxSettings: function(anchor, event, ui) {
+
             _ajaxSettings: function (anchor, event, ui) {
                 var ajaxOptions = this.options.
+
                 var ajaxOptions = this.options.ajaxOptions;
                ajaxOptions;
 
 
                 return $.extend({}, ajaxOptions, {
 
                 return $.extend({}, ajaxOptions, {
                     error: function(xhr, status) {
+
                     error: function (xhr, status) {
 
                         try {
 
                         try {
 
                             ajaxOptions.error(xhr, status, ui.tab.closest("li").index(), ui.tab[0]);
 
                             ajaxOptions.error(xhr, status, ui.tab.closest("li").index(), ui.tab[0]);
                         } catch (error) {}
+
                         }
 +
                        catch (error) { }
 
                     }
 
                     }
 
                 }, this._superApply(arguments));
 
                 }, this._superApply(arguments));
 
             },
 
             },
             _setOption: function(key, value) {
+
             _setOption: function (key, value) {
 
                 if (key === "cache" && value === false) {
 
                 if (key === "cache" && value === false) {
 
                     this.anchors.removeData("cache.tabs");
 
                     this.anchors.removeData("cache.tabs");
第10,094行: 第10,235行:
 
                 this._super(key, value);
 
                 this._super(key, value);
 
             },
 
             },
             _destroy: function() {
+
             _destroy: function () {
 
                 this.anchors.removeData("cache.tabs");
 
                 this.anchors.removeData("cache.tabs");
 
                 this._super();
 
                 this._super();
 
             },
 
             },
             url: function(index) {
+
             url: function (index) {
 
                 this.anchors.eq(index).removeData("cache.tabs");
 
                 this.anchors.eq(index).removeData("cache.tabs");
 
                 this._superApply(arguments);
 
                 this._superApply(arguments);
第10,104行: 第10,245行:
 
         });
 
         });
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             abort: function() {
+
             abort: function () {
 
                 if (this.xhr) {
 
                 if (this.xhr) {
 
                     this.xhr.abort();
 
                     this.xhr.abort();
第10,114行: 第10,255行:
 
                 spinner: "<em>Loading&#8230;</em>"
 
                 spinner: "<em>Loading&#8230;</em>"
 
             },
 
             },
             _create: function() {
+
             _create: function () {
 
                 this._super();
 
                 this._super();
 
                 this._on({
 
                 this._on({
                     tabsbeforeload: function(event, ui) {
+
                     tabsbeforeload: function (event, ui) {
                         if (event.target !== this.element[0] || !this.options.spinner) {
+
                         if (event.target !== this.element[0] ||
 +
                            !this.options.spinner) {
 
                             return;
 
                             return;
 
                         }
 
                         }
                         var span = ui.tab.find("span"),
+
                         var span = ui.tab.find("span"), html = span.html();
                            html = span.html();
 
 
                         span.html(this.options.spinner);
 
                         span.html(this.options.spinner);
                         ui.jqXHR.complete(function() {
+
                         ui.jqXHR.complete(function () {
 
                             span.html(html);
 
                             span.html(html);
 
                         });
 
                         });
第10,136行: 第10,277行:
 
                 disable: null
 
                 disable: null
 
             },
 
             },
             enable: function(index) {
+
             enable: function (index) {
                 var options = this.options,
+
                 var options = this.options, trigger;
                    trigger;
+
                 if (index && options.disabled === true ||
                 if (index && options.disabled === true || ($.isArray(options.disabled) && $.inArray(index, options.disabled) !== -1)) {
+
                    (Array.isArray(options.disabled) && $.inArray(index, options.disabled) !== -1)) {
                     trigger = !0;
+
                     trigger = true;
 
                 }
 
                 }
 
                 this._superApply(arguments);
 
                 this._superApply(arguments);
第10,147行: 第10,288行:
 
                 }
 
                 }
 
             },
 
             },
             disable: function(index) {
+
             disable: function (index) {
                 var options = this.options,
+
                 var options = this.options, trigger;
                    trigger;
+
                 if (index && options.disabled === false ||
                 if (index && options.disabled === false || ($.isArray(options.disabled) && $.inArray(index, options.disabled) === -1)) {
+
                    (Array.isArray(options.disabled) && $.inArray(index, options.disabled) === -1)) {
                     trigger = !0;
+
                     trigger = true;
 
                 }
 
                 }
 
                 this._superApply(arguments);
 
                 this._superApply(arguments);
第10,165行: 第10,306行:
 
                 tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
 
                 tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
 
             },
 
             },
             add: function(url, label, index) {
+
             add: function (url, label, index) {
 
                 if (index === undefined) {
 
                 if (index === undefined) {
 
                     index = this.anchors.length;
 
                     index = this.anchors.length;
 
                 }
 
                 }
                 var doInsertAfter, panel, options = this.options,
+
                 var doInsertAfter, panel, options = this.options, li = $(options.tabTemplate
                    li = $(options.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)),
+
                    .replace(/#\{href\}/g, url)
                    id = !url.indexOf("#") ? url.replace("#", "") : this._tabId(li);
+
                    .replace(/#\{label\}/g, label)), id = !url.indexOf("#") ?
                 li.addClass(
+
                    url.replace("#", "") :
                    "ui-state-default ui-corner-top").data("ui-tabs-destroy", true);
+
                    this._tabId(li);
 +
                 li.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy", true);
 
                 li.attr("aria-controls", id);
 
                 li.attr("aria-controls", id);
 
                 doInsertAfter = index >= this.tabs.length;
 
                 doInsertAfter = index >= this.tabs.length;
第10,182行: 第10,324行:
 
                         if (index > 0) {
 
                         if (index > 0) {
 
                             panel.insertAfter(this.panels.eq(-1));
 
                             panel.insertAfter(this.panels.eq(-1));
                         } else {
+
                         }
 +
                        else {
 
                             panel.appendTo(this.element);
 
                             panel.appendTo(this.element);
 
                         }
 
                         }
                     } else {
+
                     }
 +
                    else {
 
                         panel.insertBefore(this.panels[index]);
 
                         panel.insertBefore(this.panels[index]);
 
                     }
 
                     }
第10,192行: 第10,336行:
 
                 if (doInsertAfter) {
 
                 if (doInsertAfter) {
 
                     li.appendTo(this.tablist);
 
                     li.appendTo(this.tablist);
                 } else {
+
                 }
 +
                else {
 
                     li.insertBefore(this.tabs[index]);
 
                     li.insertBefore(this.tabs[index]);
 
                 }
 
                 }
                 options.disabled = $.map(options.disabled, function(n) {
+
                 options.disabled = $.map(options.disabled, function (n) {
 
                     return n >= index ? ++n : n;
 
                     return n >= index ? ++n : n;
 
                 });
 
                 });
第10,205行: 第10,350行:
 
                 return this;
 
                 return this;
 
             },
 
             },
             remove: function(index) {
+
             remove: function (index) {
 
                 index = this._getIndex(index);
 
                 index = this._getIndex(index);
                 var options = this.options,
+
                 var options = this.options, tab = this.tabs.eq(index).remove(), panel = this._getPanelForTab(tab).remove();
                    tab = this.tabs.eq(index).remove(),
 
                    panel = this._getPanelForTab(tab).remove();
 
 
                 if (tab.hasClass("ui-tabs-active") && this.anchors.length > 2) {
 
                 if (tab.hasClass("ui-tabs-active") && this.anchors.length > 2) {
                     this._activate(index +
+
                     this._activate(index + (index + 1 < this.anchors.length ? 1 : -1));
                        (index + 1 < this.anchors.length ? 1 : -1));
 
 
                 }
 
                 }
                 options.disabled = $.map($.grep(options.disabled, function(n) {
+
                 options.disabled = $.map($.grep(options.disabled, function (n) {
 
                     return n !== index;
 
                     return n !== index;
                 }), function(n) {
+
                 }), function (n) {
 
                     return n >= index ? --n : n;
 
                     return n >= index ? --n : n;
 
                 });
 
                 });
第10,225行: 第10,367行:
 
         });
 
         });
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             length: function() {
+
             length: function () {
 
                 return this.anchors.length;
 
                 return this.anchors.length;
 
             }
 
             }
第10,233行: 第10,375行:
 
                 idPrefix: "ui-tabs-"
 
                 idPrefix: "ui-tabs-"
 
             },
 
             },
             _tabId: function(tab) {
+
             _tabId: function (tab) {
 
                 var a = tab.is("li") ? tab.find("a[href]") : tab;
 
                 var a = tab.is("li") ? tab.find("a[href]") : tab;
 
                 a = a[0];
 
                 a = a[0];
                 return $(a).closest("li").attr("aria-controls") || a.title && a.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF\-]/g, "") || this.options.idPrefix + getNextTabId();
+
                 return $(a).closest("li").attr("aria-controls") ||
 +
                    a.title && a.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF\-]/g, "") ||
 +
                    this.options.idPrefix + getNextTabId();
 
             }
 
             }
 
         });
 
         });
第10,243行: 第10,387行:
 
                 panelTemplate: "<div></div>"
 
                 panelTemplate: "<div></div>"
 
             },
 
             },
             _createPanel: function(id) {
+
             _createPanel: function (id) {
                 return $(this.options.panelTemplate).attr("id", id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", true);
+
                 return $(this.options.panelTemplate)
 +
                    .attr("id", id)
 +
                    .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
 +
                    .data("ui-tabs-destroy", true);
 
             }
 
             }
 
         });
 
         });
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             _create: function() {
+
             _create: function () {
 
                 var options = this.options;
 
                 var options = this.options;
 
                 if (options.active === null && options.selected !== undefined) {
 
                 if (options.active === null && options.selected !== undefined) {
                     options.
+
                     options.active = options.selected === -1 ? false : options.selected;
                    active = options.selected === -1 ? false : options.selected;
 
 
                 }
 
                 }
 
                 this._super();
 
                 this._super();
第10,260行: 第10,406行:
 
                 }
 
                 }
 
             },
 
             },
             _setOption: function(key, value) {
+
             _setOption: function (key, value) {
 
                 if (key !== "selected") {
 
                 if (key !== "selected") {
 
                     return this._super(key, value);
 
                     return this._super(key, value);
第10,271行: 第10,417行:
 
                 }
 
                 }
 
             },
 
             },
             _eventHandler: function() {
+
             _eventHandler: function () {
 
                 this._superApply(arguments);
 
                 this._superApply(arguments);
 
                 this.options.selected = this.options.active;
 
                 this.options.selected = this.options.active;
第10,284行: 第10,430行:
 
                 select: null
 
                 select: null
 
             },
 
             },
             _create: function() {
+
             _create: function () {
 
                 this._super();
 
                 this._super();
 
                 if (this.options.active !== false) {
 
                 if (this.options.active !== false) {
第10,290行: 第10,436行:
 
                 }
 
                 }
 
             },
 
             },
             _trigger: function(type, event, data) {
+
             _trigger: function (type, event, data) {
 
                 var tab, panel, ret = this._superApply(arguments);
 
                 var tab, panel, ret = this._superApply(arguments);
 
                 if (!ret) {
 
                 if (!ret) {
第10,297行: 第10,443行:
 
                 if (type === "beforeActivate") {
 
                 if (type === "beforeActivate") {
 
                     tab = data.newTab.length ? data.newTab : data.oldTab;
 
                     tab = data.newTab.length ? data.newTab : data.oldTab;
                     panel = data.newPanel.length ? data
+
                     panel = data.newPanel.length ? data.newPanel : data.oldPanel;
                        .newPanel : data.oldPanel;
 
 
                     ret = this._super("select", event, {
 
                     ret = this._super("select", event, {
 
                         tab: tab.find(".ui-tabs-anchor")[0],
 
                         tab: tab.find(".ui-tabs-anchor")[0],
第10,304行: 第10,449行:
 
                         index: tab.closest("li").index()
 
                         index: tab.closest("li").index()
 
                     });
 
                     });
                 } else if (type === "activate" && data.newTab.length) {
+
                 }
 +
                else if (type === "activate" && data.newTab.length) {
 
                     ret = this._super("show", event, {
 
                     ret = this._super("show", event, {
 
                         tab: data.newTab.find(".ui-tabs-anchor")[0],
 
                         tab: data.newTab.find(".ui-tabs-anchor")[0],
第10,315行: 第10,461行:
 
         });
 
         });
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             select: function(index) {
+
             select: function (index) {
 
                 index = this._getIndex(index);
 
                 index = this._getIndex(index);
 
                 if (index === -1) {
 
                 if (index === -1) {
 
                     if (this.options.collapsible && this.options.selected !== -1) {
 
                     if (this.options.collapsible && this.options.selected !== -1) {
 
                         index = this.options.selected;
 
                         index = this.options.selected;
                     } else {
+
                     }
 +
                    else {
 
                         return;
 
                         return;
 
                     }
 
                     }
第10,327行: 第10,474行:
 
             }
 
             }
 
         });
 
         });
         (function() {
+
         (function () {
 
             var listId = 0;
 
             var listId = 0;
 
             $.widget("ui.tabs", $.ui.tabs, {
 
             $.widget("ui.tabs", $.ui.tabs, {
第10,333行: 第10,480行:
 
                     cookie: null
 
                     cookie: null
 
                 },
 
                 },
                 _create: function() {
+
                 _create: function () {
                     var options = this.options,
+
                     var options = this.options, active;
                        active;
 
 
                     if (options.active == null && options.cookie) {
 
                     if (options.active == null && options.cookie) {
 
                         active = parseInt(this._cookie(), 10);
 
                         active = parseInt(this._cookie(), 10);
 
                         if (active === -1) {
 
                         if (active === -1) {
                             active = !1;
+
                             active = false;
 
                         }
 
                         }
 
                         options.active = active;
 
                         options.active = active;
第10,345行: 第10,491行:
 
                     this._super();
 
                     this._super();
 
                 },
 
                 },
                 _cookie: function(active) {
+
                 _cookie: function (active) {
                     var cookie = [this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + (++listId))];
+
                     var cookie = [this.cookie ||
 +
                            (this.cookie = this.options.cookie.name || "ui-tabs-" + (++listId))];
 
                     if (arguments.length) {
 
                     if (arguments.length) {
 
                         cookie.push(active === false ? -1 : active);
 
                         cookie.push(active === false ? -1 : active);
第10,353行: 第10,500行:
 
                     return $.cookie.apply(null, cookie);
 
                     return $.cookie.apply(null, cookie);
 
                 },
 
                 },
                 _refresh: function() {
+
                 _refresh: function () {
 
                     this._super();
 
                     this._super();
 
                     if (this.options.cookie) {
 
                     if (this.options.cookie) {
第10,359行: 第10,506行:
 
                     }
 
                     }
 
                 },
 
                 },
                 _eventHandler: function() {
+
                 _eventHandler: function () {
 
                     this._superApply(arguments);
 
                     this._superApply(arguments);
 
                     if (this.options.cookie) {
 
                     if (this.options.cookie) {
第10,365行: 第10,512行:
 
                     }
 
                     }
 
                 },
 
                 },
                 _destroy: function() {
+
                 _destroy: function () {
 
                     this._super();
 
                     this._super();
 
                     if (this.options.cookie) {
 
                     if (this.options.cookie) {
第10,374行: 第10,521行:
 
         })();
 
         })();
 
         $.widget("ui.tabs", $.ui.tabs, {
 
         $.widget("ui.tabs", $.ui.tabs, {
             _trigger: function(type, event, data) {
+
             _trigger: function (type, event, data) {
 
                 var _data = $.extend({}, data);
 
                 var _data = $.extend({}, data);
 
                 if (type === "load") {
 
                 if (type === "load") {
第10,387行: 第10,534行:
 
                 fx: null
 
                 fx: null
 
             },
 
             },
             _getFx: function() {
+
             _getFx: function () {
 
                 var hide, show, fx = this.options.fx;
 
                 var hide, show, fx = this.options.fx;
 
                 if (fx) {
 
                 if (fx) {
                     if ($.isArray(fx)) {
+
                     if (Array.isArray(fx)) {
 
                         hide = fx[0];
 
                         hide = fx[0];
 
                         show = fx[1];
 
                         show = fx[1];
                     } else {
+
                     }
 +
                    else {
 
                         hide = show = fx;
 
                         hide = show = fx;
 
                     }
 
                     }
 
                 }
 
                 }
                 return fx ? {
+
                 return fx ? { show: show, hide: hide } : null;
                    show: show,
 
                    hide: hide
 
                } : null;
 
 
             },
 
             },
             _toggle: function(event, eventData) {
+
             _toggle: function (event, eventData) {
                 var that = this,
+
                 var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel, fx = this._getFx();
                    toShow = eventData.newPanel,
 
                    toHide =
 
                    eventData.oldPanel,
 
                    fx = this._getFx();
 
 
                 if (!fx) {
 
                 if (!fx) {
 
                     return this._super(event, eventData);
 
                     return this._super(event, eventData);
 
                 }
 
                 }
                 that.running = !0;
+
                 that.running = true;
 
 
 
                 function complete() {
 
                 function complete() {
                     that.running = !1;
+
                     that.running = false;
 
                     that._trigger("activate", event, eventData);
 
                     that._trigger("activate", event, eventData);
 
                 }
 
                 }
 
 
                 function show() {
 
                 function show() {
 
                     eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
 
                     eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
 
                     if (toShow.length && fx.show) {
 
                     if (toShow.length && fx.show) {
                         toShow.animate(fx.show, fx.show.duration, function() {
+
                         toShow
 +
                            .animate(fx.show, fx.show.duration, function () {
 
                             complete();
 
                             complete();
 
                         });
 
                         });
                     } else {
+
                     }
 +
                    else {
 
                         toShow.show();
 
                         toShow.show();
 
                         complete();
 
                         complete();
第10,430行: 第10,571行:
 
                 }
 
                 }
 
                 if (toHide.length && fx.hide) {
 
                 if (toHide.length && fx.hide) {
                     toHide.animate(fx.hide, fx.hide.duration, function() {
+
                     toHide.animate(fx.hide, fx.hide.duration, function () {
 
                         eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                         eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                         show();
 
                         show();
 
                     });
 
                     });
                 } else {
+
                 }
 +
                else {
 
                     eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                     eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
 
                     toHide.hide();
 
                     toHide.hide();
第10,443行: 第10,585行:
 
     }
 
     }
 
})(jQuery);
 
})(jQuery);
(function($) {
+
(function ($) {
 
     var increments = 0;
 
     var increments = 0;
 
 
     function addDescribedBy(elem, id) {
 
     function addDescribedBy(elem, id) {
 
         var describedby = (elem.attr("aria-describedby") || "").split(/\s+/);
 
         var describedby = (elem.attr("aria-describedby") || "").split(/\s+/);
 
         describedby.push(id);
 
         describedby.push(id);
         elem.data("ui-tooltip-id", id).attr("aria-describedby", $.trim(describedby.join(" ")));
+
         elem
 +
            .data("ui-tooltip-id", id)
 +
            .attr("aria-describedby", describedby.join(" ").trim());
 
     }
 
     }
 
 
     function removeDescribedBy(elem) {
 
     function removeDescribedBy(elem) {
         var id = elem.data("ui-tooltip-id"),
+
         var id = elem.data("ui-tooltip-id"), describedby = (elem.attr("aria-describedby") || "").split(/\s+/), index = $.inArray(id, describedby);
            describedby = (
 
                elem.attr("aria-describedby") || "").split(/\s+/),
 
            index = $.inArray(id, describedby);
 
 
         if (index !== -1) {
 
         if (index !== -1) {
 
             describedby.splice(index, 1);
 
             describedby.splice(index, 1);
 
         }
 
         }
 
         elem.removeData("ui-tooltip-id");
 
         elem.removeData("ui-tooltip-id");
         describedby = $.trim(describedby.join(" "));
+
         describedby = describedby.join(" ").trim();
 
         if (describedby) {
 
         if (describedby) {
 
             elem.attr("aria-describedby", describedby);
 
             elem.attr("aria-describedby", describedby);
         } else {
+
         }
 +
        else {
 
             elem.removeAttr("aria-describedby");
 
             elem.removeAttr("aria-describedby");
 
         }
 
         }
第10,471行: 第10,611行:
 
         version: "1.9.2",
 
         version: "1.9.2",
 
         options: {
 
         options: {
             content: function() {
+
             content: function () {
 
                 return $(this).attr("title");
 
                 return $(this).attr("title");
 
             },
 
             },
             hide: !0,
+
             hide: true,
 
             items: "[title]:not([disabled])",
 
             items: "[title]:not([disabled])",
 
             position: {
 
             position: {
第10,481行: 第10,621行:
 
                 collision: "flipfit flip"
 
                 collision: "flipfit flip"
 
             },
 
             },
             show: !0,
+
             show: true,
 
             tooltipClass: null,
 
             tooltipClass: null,
             track: !1,
+
             track: false,
 
             close: null,
 
             close: null,
 
             open: null
 
             open: null
 
         },
 
         },
         _create: function() {
+
         _create: function () {
 
             this._on({
 
             this._on({
 
                 mouseover: "open",
 
                 mouseover: "open",
第10,498行: 第10,638行:
 
             }
 
             }
 
         },
 
         },
         _setOption: function(key, value) {
+
         _setOption: function (key, value) {
 
             var that = this;
 
             var that = this;
 
             if (key === "disabled") {
 
             if (key === "disabled") {
第10,507行: 第10,647行:
 
             this._super(key, value);
 
             this._super(key, value);
 
             if (key === "content") {
 
             if (key === "content") {
                 $.each(this.tooltips, function(id, element) {
+
                 $.each(this.tooltips, function (id, element) {
 
                     that._updateContent(element);
 
                     that._updateContent(element);
 
                 });
 
                 });
 
             }
 
             }
 
         },
 
         },
         _disable: function() {
+
         _disable: function () {
 
             var that = this;
 
             var that = this;
             $.each(this.tooltips, function(id, element) {
+
             $.each(this.tooltips, function (id, element) {
 
                 var event = $.Event("blur");
 
                 var event = $.Event("blur");
 
                 event.target = event.currentTarget = element[0];
 
                 event.target = event.currentTarget = element[0];
 
                 that.close(event, true);
 
                 that.close(event, true);
 
             });
 
             });
             this.element.find(this.options.items).andSelf().each(function() {
+
             this.element.find(this.options.items).addBack().each(function () {
 
                 var element = $(this);
 
                 var element = $(this);
 
                 if (element.is("[title]")) {
 
                 if (element.is("[title]")) {
                     element.data("ui-tooltip-title", element.attr("title")).attr("title", "");
+
                     element
 +
                        .data("ui-tooltip-title", element.attr("title"))
 +
                        .attr("title", "");
 
                 }
 
                 }
 
             });
 
             });
 
         },
 
         },
         _enable: function() {
+
         _enable: function () {
             this.element.find(this.options.items).andSelf().each(function() {
+
             this.element.find(this.options.items).addBack().each(function () {
 
                 var element = $(this);
 
                 var element = $(this);
 
                 if (element.data("ui-tooltip-title")) {
 
                 if (element.data("ui-tooltip-title")) {
第10,534行: 第10,676行:
 
             });
 
             });
 
         },
 
         },
         open: function(event) {
+
         open: function (event) {
             var that = this,
+
             var that = this, target = $(event ? event.target : this.element)
                target = $(event ? event.target : this.element).closest(this.options.items);
+
                .closest(this.options.items);
 
             if (!target.length || target.data("ui-tooltip-id")) {
 
             if (!target.length || target.data("ui-tooltip-id")) {
 
                 return;
 
                 return;
第10,545行: 第10,687行:
 
             target.data("ui-tooltip-open", true);
 
             target.data("ui-tooltip-open", true);
 
             if (event && event.type === "mouseover") {
 
             if (event && event.type === "mouseover") {
                 target.parents().each(function() {
+
                 target.parents().each(function () {
                     var parent = $(this),
+
                     var parent = $(this), blurEvent;
                        blurEvent;
 
 
                     if (parent.data("ui-tooltip-open")) {
 
                     if (parent.data("ui-tooltip-open")) {
 
                         blurEvent = $.Event("blur");
 
                         blurEvent = $.Event("blur");
                         blurEvent.target = blurEvent.
+
                         blurEvent.target = blurEvent.currentTarget = this;
                        currentTarget = this;
 
 
                         that.close(blurEvent, true);
 
                         that.close(blurEvent, true);
 
                     }
 
                     }
第10,566行: 第10,706行:
 
             this._updateContent(target, event);
 
             this._updateContent(target, event);
 
         },
 
         },
         _updateContent: function(target, event) {
+
         _updateContent: function (target, event) {
             var content, contentOption = this.options.content,
+
             var content, contentOption = this.options.content, that = this, eventType = event ? event.type : null;
                that = this,
 
                eventType = event ? event.type : null;
 
 
             if (typeof contentOption === "string") {
 
             if (typeof contentOption === "string") {
 
                 return this._open(event, target, contentOption);
 
                 return this._open(event, target, contentOption);
 
             }
 
             }
             content = contentOption.call(target[0], function(response) {
+
             content = contentOption.call(target[0], function (response) {
 
                 if (!target.data("ui-tooltip-open")) {
 
                 if (!target.data("ui-tooltip-open")) {
 
                     return;
 
                     return;
 
                 }
 
                 }
                 that._delay(function() {
+
                 that._delay(function () {
 
                     if (event) {
 
                     if (event) {
 
                         event.type = eventType;
 
                         event.type = eventType;
第10,588行: 第10,726行:
 
             }
 
             }
 
         },
 
         },
         _open: function(event, target, content) {
+
         _open: function (event, target, content) {
 
             var tooltip, events, delayedShow, positionOption = $.extend({}, this.options.position);
 
             var tooltip, events, delayedShow, positionOption = $.extend({}, this.options.position);
 
             if (!content) {
 
             if (!content) {
第10,601行: 第10,739行:
 
                 if (event && event.type === "mouseover") {
 
                 if (event && event.type === "mouseover") {
 
                     target.attr("title", "");
 
                     target.attr("title", "");
                 } else {
+
                 }
 +
                else {
 
                     target.removeAttr("title");
 
                     target.removeAttr("title");
 
                 }
 
                 }
第10,608行: 第10,747行:
 
             addDescribedBy(target, tooltip.attr("id"));
 
             addDescribedBy(target, tooltip.attr("id"));
 
             tooltip.find(".ui-tooltip-content").html(content);
 
             tooltip.find(".ui-tooltip-content").html(content);
 
 
             function position(event) {
 
             function position(event) {
 
                 positionOption.of = event;
 
                 positionOption.of = event;
第10,621行: 第10,759行:
 
                 });
 
                 });
 
                 position(event);
 
                 position(event);
             } else {
+
             }
                 tooltip.position($.extend({ of: target
+
            else {
 +
                 tooltip.position($.extend({
 +
                    of: target
 
                 }, this.options.position));
 
                 }, this.options.position));
 
             }
 
             }
第10,628行: 第10,768行:
 
             this._show(tooltip, this.options.show);
 
             this._show(tooltip, this.options.show);
 
             if (this.options.show && this.options.show.delay) {
 
             if (this.options.show && this.options.show.delay) {
                 delayedShow = setInterval(function() {
+
                 delayedShow = setInterval(function () {
 
                     if (tooltip.is(":visible")) {
 
                     if (tooltip.is(":visible")) {
 
                         position(positionOption.of);
 
                         position(positionOption.of);
第10,635行: 第10,775行:
 
                 }, $.fx.interval);
 
                 }, $.fx.interval);
 
             }
 
             }
             this._trigger("open", event, {
+
             this._trigger("open", event, { tooltip: tooltip });
                tooltip: tooltip
 
            });
 
 
             events = {
 
             events = {
                 keyup: function(event) {
+
                 keyup: function (event) {
 
                     if (event.keyCode === $.ui.keyCode.ESCAPE) {
 
                     if (event.keyCode === $.ui.keyCode.ESCAPE) {
 
                         var fakeEvent = $.Event(event);
 
                         var fakeEvent = $.Event(event);
第10,646行: 第10,784行:
 
                     }
 
                     }
 
                 },
 
                 },
                 remove: function() {
+
                 remove: function () {
 
                     this._removeTooltip(tooltip);
 
                     this._removeTooltip(tooltip);
 
                 }
 
                 }
 
             };
 
             };
 
             if (!event || event.type === "mouseover") {
 
             if (!event || event.type === "mouseover") {
                 events.
+
                 events.mouseleave = "close";
                mouseleave = "close";
 
 
             }
 
             }
 
             if (!event || event.type === "focusin") {
 
             if (!event || event.type === "focusin") {
第10,659行: 第10,796行:
 
             this._on(true, target, events);
 
             this._on(true, target, events);
 
         },
 
         },
         close: function(event) {
+
         close: function (event) {
             var that = this,
+
             var that = this, target = $(event ? event.currentTarget : this.element), tooltip = this._find(target);
                target = $(event ? event.currentTarget : this.element),
 
                tooltip = this._find(target);
 
 
             if (this.closing) {
 
             if (this.closing) {
 
                 return;
 
                 return;
第10,671行: 第10,806行:
 
             removeDescribedBy(target);
 
             removeDescribedBy(target);
 
             tooltip.stop(true);
 
             tooltip.stop(true);
             this._hide(tooltip, this.options.hide, function() {
+
             this._hide(tooltip, this.options.hide, function () {
 
                 that._removeTooltip($(this));
 
                 that._removeTooltip($(this));
 
             });
 
             });
第10,681行: 第10,816行:
 
             this._off(this.document, "mousemove");
 
             this._off(this.document, "mousemove");
 
             if (event && event.type === "mouseleave") {
 
             if (event && event.type === "mouseleave") {
                 $.each(this.parents, function(id, parent) {
+
                 $.each(this.parents, function (id, parent) {
 
                     $(parent.element).attr("title", parent.title);
 
                     $(parent.element).attr("title", parent.title);
 
                     delete that.parents[id];
 
                     delete that.parents[id];
 
                 });
 
                 });
 
             }
 
             }
             this.closing = !0;
+
             this.closing = true;
             this._trigger("close", event, {
+
             this._trigger("close", event, { tooltip: tooltip });
                tooltip: tooltip
+
             this.closing = false;
            });
 
             this.closing = !1;
 
 
         },
 
         },
         _tooltip: function(element) {
+
         _tooltip: function (element) {
             var id = "ui-tooltip-" + increments++,
+
             var id = "ui-tooltip-" + increments++, tooltip = $("<div>")
                tooltip = $("<div>").attr({
+
                .attr({
                    id: id,
+
                id: id,
                    role: "tooltip"
+
                role: "tooltip"
                }).addClass(
+
            })
                    "ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || ""));
+
                .addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " +
             $("<div>").addClass("ui-tooltip-content").appendTo(tooltip);
+
                (this.options.tooltipClass || ""));
 +
             $("<div>")
 +
                .addClass("ui-tooltip-content")
 +
                .appendTo(tooltip);
 
             tooltip.appendTo(this.document[0].body);
 
             tooltip.appendTo(this.document[0].body);
 
             if ($.fn.bgiframe) {
 
             if ($.fn.bgiframe) {
第10,707行: 第10,843行:
 
             return tooltip;
 
             return tooltip;
 
         },
 
         },
         _find: function(target) {
+
         _find: function (target) {
 
             var id = target.data("ui-tooltip-id");
 
             var id = target.data("ui-tooltip-id");
 
             return id ? $("#" + id) : $();
 
             return id ? $("#" + id) : $();
 
         },
 
         },
         _removeTooltip: function(tooltip) {
+
         _removeTooltip: function (tooltip) {
 
             tooltip.remove();
 
             tooltip.remove();
 
             delete this.tooltips[tooltip.attr("id")];
 
             delete this.tooltips[tooltip.attr("id")];
 
         },
 
         },
         _destroy: function() {
+
         _destroy: function () {
 
             var that = this;
 
             var that = this;
             $.each(this.tooltips, function(id, element) {
+
             $.each(this.tooltips, function (id, element) {
 
                 var event = $.Event("blur");
 
                 var event = $.Event("blur");
 
                 event.target = event.currentTarget = element[0];
 
                 event.target = event.currentTarget = element[0];
第10,730行: 第10,866行:
 
     });
 
     });
 
}(jQuery));
 
}(jQuery));
jQuery(function($) {
+
jQuery(function ($) {
 
     $.datepicker.regional['zh-CN'] = {
 
     $.datepicker.regional['zh-CN'] = {
 
         closeText: '关闭',
 
         closeText: '关闭',
第10,736行: 第10,872行:
 
         nextText: '下月&#x3E;',
 
         nextText: '下月&#x3E;',
 
         currentText: '今天',
 
         currentText: '今天',
         monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月',
+
         monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',
            '八月', '九月', '十月', '十一月', '十二月'
+
            '七月', '八月', '九月', '十月', '十一月', '十二月'],
        ],
+
         monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月',
         monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+
            '七月', '八月', '九月', '十月', '十一月', '十二月'],
 
         dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
 
         dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
 
         dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
 
         dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
第10,746行: 第10,882行:
 
         dateFormat: 'yy-mm-dd',
 
         dateFormat: 'yy-mm-dd',
 
         firstDay: 1,
 
         firstDay: 1,
         isRTL: !1,
+
         isRTL: false,
         showMonthAfterYear: !0,
+
         showMonthAfterYear: true,
 
         yearSuffix: '年'
 
         yearSuffix: '年'
 
     };
 
     };
 
     $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
 
     $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
 
});
 
});
 +
mw.loader.state({
 +
    "jquery.ui": "ready"
 +
});
 +
 +
/* </pre> */

2022年9月6日 (二) 01:53的最新版本

/* <pre> */
/**
 * -------------------------------------------------------------------------
 * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 * -------------------------------------------------------------------------
 */
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/jquery.ui/MediaWiki:Gadget-jquery.ui.js|user=[[U:AnnAngela]]|longId=95ea4fd62f6aa66f83f138743a52cf0a8d1c35a4|shortId=95ea4fd|message=auto: auto prefetch - commit from GitHub Actions}}';

"use strict";
mw.log.warn("This page is using the deprecated ResourceLoader module \"jquery.ui\".\nPlease use OOUI instead.");
(function ($, undefined) {
    var uuid = 0, runiqueId = /^ui-id-\d+$/;
    $.ui = $.ui || {};
    if ($.ui.version) {
        return;
    }
    $.extend($.ui, {
        version: "1.9.2",
        keyCode: {
            BACKSPACE: 8,
            COMMA: 188,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            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,
            SPACE: 32,
            TAB: 9,
            UP: 38
        }
    });
    $.fn.extend({
        _focus: $.fn.focus,
        focus: function (delay, fn) {
            return typeof delay === "number" ?
                this.each(function () {
                    var elem = this;
                    setTimeout(function () {
                        $(elem).focus();
                        if (fn) {
                            fn.call(elem);
                        }
                    }, delay);
                }) :
                this._focus.apply(this, arguments);
        },
        scrollParent: function () {
            var scrollParent;
            if (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
                scrollParent = this.parents().filter(function () {
                    return (/(relative|absolute|fixed)/).test($.css(this, 'position')) && (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
                }).eq(0);
            }
            else {
                scrollParent = this.parents().filter(function () {
                    return (/(auto|scroll)/).test($.css(this, 'overflow') + $.css(this, 'overflow-y') + $.css(this, 'overflow-x'));
                }).eq(0);
            }
            return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
        },
        zIndex: function (zIndex) {
            if (zIndex !== undefined) {
                return this.css("zIndex", zIndex);
            }
            if (this.length) {
                var elem = $(this[0]), position, value;
                while (elem.length && elem[0] !== document) {
                    position = elem.css("position");
                    if (position === "absolute" || position === "relative" || position === "fixed") {
                        value = parseInt(elem.css("zIndex"), 10);
                        if (!isNaN(value) && value !== 0) {
                            return value;
                        }
                    }
                    elem = elem.parent();
                }
            }
            return 0;
        },
        uniqueId: function () {
            return this.each(function () {
                if (!this.id) {
                    this.id = "ui-id-" + (++uuid);
                }
            });
        },
        removeUniqueId: function () {
            return this.each(function () {
                if (runiqueId.test(this.id)) {
                    $(this).removeAttr("id");
                }
            });
        }
    });
    function focusable(element, isTabIndexNotNaN) {
        var map, mapName, img, nodeName = element.nodeName.toLowerCase();
        if ("area" === nodeName) {
            map = element.parentNode;
            mapName = map.name;
            if (!element.href || !mapName || map.nodeName.toLowerCase() !== "map") {
                return false;
            }
            img = $("img[usemap=#" + mapName + "]")[0];
            return !!img && visible(img);
        }
        return (/input|select|textarea|button|object/.test(nodeName) ?
            !element.disabled :
            "a" === nodeName ?
                element.href || isTabIndexNotNaN :
                isTabIndexNotNaN) &&
            visible(element);
    }
    function visible(element) {
        return $.expr.pseudos.visible(element) &&
            !$(element).parents().addBack().filter(function () {
                return $.css(this, "visibility") === "hidden";
            }).length;
    }
    $.extend($.expr.pseudos, {
        data: $.expr.createPseudo ?
            $.expr.createPseudo(function (dataName) {
                return function (elem) {
                    return !!$.data(elem, dataName);
                };
            }) :
            function (elem, i, match) {
                return !!$.data(elem, match[3]);
            },
        focusable: function (element) {
            return focusable(element, !isNaN($.attr(element, "tabindex")));
        },
        tabbable: function (element) {
            var tabIndex = $.attr(element, "tabindex"), isTabIndexNaN = isNaN(tabIndex);
            return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);
        }
    });
    $(function () {
        var body = document.body, div = body.appendChild(div = document.createElement("div"));
        div.offsetHeight;
        $.extend(div.style, {
            minHeight: "100px",
            height: "auto",
            padding: 0,
            borderWidth: 0
        });
        $.support.minHeight = div.offsetHeight === 100;
        $.support.selectstart = "onselectstart" in div;
        body.removeChild(div).style.display = "none";
    });
    if (!$("<a>").outerWidth(1).jquery) {
        $.each(["Width", "Height"], function (i, name) {
            var side = name === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], type = name.toLowerCase(), orig = {
                innerWidth: $.fn.innerWidth,
                innerHeight: $.fn.innerHeight,
                outerWidth: $.fn.outerWidth,
                outerHeight: $.fn.outerHeight
            };
            function reduce(elem, size, border, margin) {
                $.each(side, function () {
                    size -= parseFloat($.css(elem, "padding" + this)) || 0;
                    if (border) {
                        size -= parseFloat($.css(elem, "border" + this + "Width")) || 0;
                    }
                    if (margin) {
                        size -= parseFloat($.css(elem, "margin" + this)) || 0;
                    }
                });
                return size;
            }
            $.fn["inner" + name] = function (size) {
                if (size === undefined) {
                    return orig["inner" + name].call(this);
                }
                return this.each(function () {
                    $(this).css(type, reduce(this, size) + "px");
                });
            };
            $.fn["outer" + name] = function (size, margin) {
                if (typeof size !== "number") {
                    return orig["outer" + name].call(this, size);
                }
                return this.each(function () {
                    $(this).css(type, reduce(this, size, true, margin) + "px");
                });
            };
        });
    }
    if ($("<a>").data("a-b", "a").removeData("a-b").data("a-b")) {
        $.fn.removeData = (function (removeData) {
            return function (key) {
                if (arguments.length) {
                    return removeData.call(this, $.camelCase(key));
                }
                else {
                    return removeData.call(this);
                }
            };
        })($.fn.removeData);
    }
    (function () {
        var uaMatch = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || [];
        $.ui.ie = uaMatch.length ? true : false;
        $.ui.ie6 = parseFloat(uaMatch[1], 10) === 6;
    })();
    $.fn.extend({
        disableSelection: function () {
            return this.bind(($.support.selectstart ? "selectstart" : "mousedown") +
                ".ui-disableSelection", function (event) {
                event.preventDefault();
            });
        },
        enableSelection: function () {
            return this.unbind(".ui-disableSelection");
        }
    });
    $.extend($.ui, {
        plugin: {
            add: function (module, option, set) {
                var i, proto = $.ui[module].prototype;
                for (i in set) {
                    proto.plugins[i] = proto.plugins[i] || [];
                    proto.plugins[i].push([option, set[i]]);
                }
            },
            call: function (instance, name, args) {
                var i, set = instance.plugins[name];
                if (!set || !instance.element[0].parentNode || instance.element[0].parentNode.nodeType === 11) {
                    return;
                }
                for (i = 0; i < set.length; i++) {
                    if (instance.options[set[i][0]]) {
                        set[i][1].apply(instance.element, args);
                    }
                }
            }
        },
        contains: $.contains,
        hasScroll: function (el, a) {
            if ($(el).css("overflow") === "hidden") {
                return false;
            }
            var scroll = (a && a === "left") ? "scrollLeft" : "scrollTop", has = false;
            if (el[scroll] > 0) {
                return true;
            }
            el[scroll] = 1;
            has = (el[scroll] > 0);
            el[scroll] = 0;
            return has;
        },
        isOverAxis: function (x, reference, size) {
            return (x > reference) && (x < (reference + size));
        },
        isOver: function (y, x, top, left, height, width) {
            return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
        }
    });
})(jQuery);
(function ($, undefined) {
    var uuid = 0, slice = Array.prototype.slice, _cleanData = $.cleanData;
    $.cleanData = function (elems) {
        for (var i = 0, elem; (elem = elems[i]) != null; i++) {
            try {
                $(elem).triggerHandler("remove");
            }
            catch (e) { }
        }
        _cleanData(elems);
    };
    $.widget = function (name, base, prototype) {
        var fullName, existingConstructor, constructor, basePrototype, namespace = name.split(".")[0];
        name = name.split(".")[1];
        fullName = namespace + "-" + name;
        if (!prototype) {
            prototype = base;
            base = $.Widget;
        }
        $.expr.pseudos[fullName.toLowerCase()] = function (elem) {
            return !!$.data(elem, fullName);
        };
        $[namespace] = $[namespace] || {};
        existingConstructor = $[namespace][name];
        constructor = $[namespace][name] = function (options, element) {
            if (!this._createWidget) {
                return new constructor(options, element);
            }
            if (arguments.length) {
                this._createWidget(options, element);
            }
        };
        $.extend(constructor, existingConstructor, {
            version: prototype.version,
            _proto: $.extend({}, prototype),
            _childConstructors: []
        });
        basePrototype = new base();
        basePrototype.options = $.widget.extend({}, basePrototype.options);
        $.each(prototype, function (prop, value) {
            if (typeof value === "function") {
                prototype[prop] = (function () {
                    var _super = function () {
                        return base.prototype[prop].apply(this, arguments);
                    }, _superApply = function (args) {
                        return base.prototype[prop].apply(this, args);
                    };
                    return function () {
                        var __super = this._super, __superApply = this._superApply, returnValue;
                        this._super = _super;
                        this._superApply = _superApply;
                        returnValue = value.apply(this, arguments);
                        this._super = __super;
                        this._superApply = __superApply;
                        return returnValue;
                    };
                })();
            }
        });
        constructor.prototype = $.widget.extend(basePrototype, {
            widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
        }, prototype, {
            constructor: constructor,
            namespace: namespace,
            widgetName: name,
            widgetBaseClass: fullName,
            widgetFullName: fullName
        });
        if (existingConstructor) {
            $.each(existingConstructor._childConstructors, function (i, child) {
                var childPrototype = child.prototype;
                $.widget(childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto);
            });
            delete existingConstructor._childConstructors;
        }
        else {
            base._childConstructors.push(constructor);
        }
        $.widget.bridge(name, constructor);
    };
    $.widget.extend = function (target) {
        var input = slice.call(arguments, 1), inputIndex = 0, inputLength = input.length, key, value;
        for (; inputIndex < inputLength; inputIndex++) {
            for (key in input[inputIndex]) {
                value = input[inputIndex][key];
                if (input[inputIndex].hasOwnProperty(key) && value !== undefined) {
                    if ($.isPlainObject(value)) {
                        target[key] = $.isPlainObject(target[key]) ?
                            $.widget.extend({}, target[key], value) :
                            $.widget.extend({}, value);
                    }
                    else {
                        target[key] = value;
                    }
                }
            }
        }
        return target;
    };
    $.widget.bridge = function (name, object) {
        var fullName = object.prototype.widgetFullName || name;
        $.fn[name] = function (options) {
            var isMethodCall = typeof options === "string", args = slice.call(arguments, 1), returnValue = this;
            options = !isMethodCall && args.length ?
                $.widget.extend.apply(null, [options].concat(args)) :
                options;
            if (isMethodCall) {
                this.each(function () {
                    var methodValue, instance = $.data(this, fullName);
                    if (!instance) {
                        return $.error("cannot call methods on " + name + " prior to initialization; " +
                            "attempted to call method '" + options + "'");
                    }
                    if (typeof instance[options] !== "function" || options.charAt(0) === "_") {
                        return $.error("no such method '" + options + "' for " + name + " widget instance");
                    }
                    methodValue = instance[options].apply(instance, args);
                    if (methodValue !== instance && methodValue !== undefined) {
                        returnValue = methodValue && methodValue.jquery ?
                            returnValue.pushStack(methodValue.get()) :
                            methodValue;
                        return false;
                    }
                });
            }
            else {
                this.each(function () {
                    var instance = $.data(this, fullName);
                    if (instance) {
                        instance.option(options || {})._init();
                    }
                    else {
                        $.data(this, fullName, new object(options, this));
                    }
                });
            }
            return returnValue;
        };
    };
    $.Widget = function () { };
    $.Widget._childConstructors = [];
    $.Widget.prototype = {
        widgetName: "widget",
        widgetEventPrefix: "",
        defaultElement: "<div>",
        options: {
            disabled: false,
            create: null
        },
        _createWidget: function (options, element) {
            element = $(element || this.defaultElement || this)[0];
            this.element = $(element);
            this.uuid = uuid++;
            this.eventNamespace = "." + this.widgetName + this.uuid;
            this.options = $.widget.extend({}, this.options, this._getCreateOptions(), options);
            this.bindings = $();
            this.hoverable = $();
            this.focusable = $();
            if (element !== this) {
                $.data(element, this.widgetName, this);
                $.data(element, this.widgetFullName, this);
                this._on(true, this.element, {
                    remove: function (event) {
                        if (event.target === element) {
                            this.destroy();
                        }
                    }
                });
                this.document = $(element.style ?
                    element.ownerDocument :
                    element.document || element);
                this.window = $(this.document[0].defaultView || this.document[0].parentWindow);
            }
            this._create();
            this._trigger("create", null, this._getCreateEventData());
            this._init();
        },
        _getCreateOptions: $.noop,
        _getCreateEventData: $.noop,
        _create: $.noop,
        _init: $.noop,
        destroy: function () {
            this._destroy();
            this.element
                .off(this.eventNamespace)
                .removeData(this.widgetName)
                .removeData(this.widgetFullName)
                .removeData($.camelCase(this.widgetFullName));
            this.widget()
                .off(this.eventNamespace)
                .removeAttr("aria-disabled")
                .removeClass(this.widgetFullName + "-disabled " +
                "ui-state-disabled");
            this.bindings.off(this.eventNamespace);
            this.hoverable.removeClass("ui-state-hover");
            this.focusable.removeClass("ui-state-focus");
        },
        _destroy: $.noop,
        widget: function () {
            return this.element;
        },
        option: function (key, value) {
            var options = key, parts, curOption, i;
            if (arguments.length === 0) {
                return $.widget.extend({}, this.options);
            }
            if (typeof key === "string") {
                options = {};
                parts = key.split(".");
                key = parts.shift();
                if (parts.length) {
                    curOption = options[key] = $.widget.extend({}, this.options[key]);
                    for (i = 0; i < parts.length - 1; i++) {
                        curOption[parts[i]] = curOption[parts[i]] || {};
                        curOption = curOption[parts[i]];
                    }
                    key = parts.pop();
                    if (value === undefined) {
                        return curOption[key] === undefined ? null : curOption[key];
                    }
                    curOption[key] = value;
                }
                else {
                    if (value === undefined) {
                        return this.options[key] === undefined ? null : this.options[key];
                    }
                    options[key] = value;
                }
            }
            this._setOptions(options);
            return this;
        },
        _setOptions: function (options) {
            var key;
            for (key in options) {
                this._setOption(key, options[key]);
            }
            return this;
        },
        _setOption: function (key, value) {
            this.options[key] = value;
            if (key === "disabled") {
                this.widget()
                    .toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!value)
                    .attr("aria-disabled", value);
                this.hoverable.removeClass("ui-state-hover");
                this.focusable.removeClass("ui-state-focus");
            }
            return this;
        },
        enable: function () {
            return this._setOption("disabled", false);
        },
        disable: function () {
            return this._setOption("disabled", true);
        },
        _on: function (suppressDisabledCheck, element, handlers) {
            var delegateElement, instance = this;
            if (typeof suppressDisabledCheck !== "boolean") {
                handlers = element;
                element = suppressDisabledCheck;
                suppressDisabledCheck = false;
            }
            if (!handlers) {
                handlers = element;
                element = this.element;
                delegateElement = this.widget();
            }
            else {
                element = delegateElement = $(element);
                this.bindings = this.bindings.add(element);
            }
            $.each(handlers, function (event, handler) {
                function handlerProxy() {
                    if (!suppressDisabledCheck &&
                        (instance.options.disabled === true ||
                            $(this).hasClass("ui-state-disabled"))) {
                        return;
                    }
                    return (typeof handler === "string" ? instance[handler] : handler)
                        .apply(instance, arguments);
                }
                if (typeof handler !== "string") {
                    handlerProxy.guid = handler.guid =
                        handler.guid || handlerProxy.guid || $.guid++;
                }
                var match = event.match(/^(\w+)\s*(.*)$/), eventName = match[1] + instance.eventNamespace, selector = match[2];
                if (selector) {
                    delegateElement.on(eventName, selector, handlerProxy);
                }
                else {
                    element.on(eventName, handlerProxy);
                }
            });
        },
        _off: function (element, eventName) {
            eventName = (eventName || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace;
            element.off(eventName);
        },
        _delay: function (handler, delay) {
            function handlerProxy() {
                return (typeof handler === "string" ? instance[handler] : handler)
                    .apply(instance, arguments);
            }
            var instance = this;
            return setTimeout(handlerProxy, delay || 0);
        },
        _hoverable: function (element) {
            this.hoverable = this.hoverable.add(element);
            this._on(element, {
                mouseenter: function (event) {
                    $(event.currentTarget).addClass("ui-state-hover");
                },
                mouseleave: function (event) {
                    $(event.currentTarget).removeClass("ui-state-hover");
                }
            });
        },
        _focusable: function (element) {
            this.focusable = this.focusable.add(element);
            this._on(element, {
                focusin: function (event) {
                    $(event.currentTarget).addClass("ui-state-focus");
                },
                focusout: function (event) {
                    $(event.currentTarget).removeClass("ui-state-focus");
                }
            });
        },
        _trigger: function (type, event, data) {
            var prop, orig, callback = this.options[type];
            data = data || {};
            event = $.Event(event);
            event.type = (type === this.widgetEventPrefix ?
                type :
                this.widgetEventPrefix + type).toLowerCase();
            event.target = this.element[0];
            orig = event.originalEvent;
            if (orig) {
                for (prop in orig) {
                    if (!(prop in event)) {
                        event[prop] = orig[prop];
                    }
                }
            }
            this.element.trigger(event, data);
            return !(typeof callback === 'function' &&
                callback.apply(this.element[0], [event].concat(data)) === false ||
                event.isDefaultPrevented());
        }
    };
    $.each({ show: "fadeIn", hide: "fadeOut" }, function (method, defaultEffect) {
        $.Widget.prototype["_" + method] = function (element, options, callback) {
            if (typeof options === "string") {
                options = { effect: options };
            }
            var hasOptions, effectName = !options ?
                method :
                options === true || typeof options === "number" ?
                    defaultEffect :
                    options.effect || defaultEffect;
            options = options || {};
            if (typeof options === "number") {
                options = { duration: options };
            }
            hasOptions = !$.isEmptyObject(options);
            options.complete = callback;
            if (options.delay) {
                element.delay(options.delay);
            }
            if (hasOptions && $.effects && ($.effects.effect[effectName] || $.uiBackCompat !== false && $.effects[effectName])) {
                element[method](options);
            }
            else if (effectName !== method && element[effectName]) {
                element[effectName](options.duration, options.easing, callback);
            }
            else {
                element.queue(function (next) {
                    $(this)[method]();
                    if (callback) {
                        callback.call(element[0]);
                    }
                    next();
                });
            }
        };
    });
    if ($.uiBackCompat !== false) {
        $.Widget.prototype._getCreateOptions = function () {
            return $.metadata && $.metadata.get(this.element[0])[this.widgetName];
        };
    }
})(jQuery);
(function ($, undefined) {
    var mouseHandled = false;
    $(document).mouseup(function (e) {
        mouseHandled = false;
    });
    $.widget("ui.mouse", {
        version: "1.9.2",
        options: {
            cancel: 'input,textarea,button,select,option',
            distance: 1,
            delay: 0
        },
        _mouseInit: function () {
            var that = this;
            this.element
                .on('mousedown.' + this.widgetName, function (event) {
                return that._mouseDown(event);
            })
                .on('click.' + this.widgetName, function (event) {
                if (true === $.data(event.target, that.widgetName + '.preventClickEvent')) {
                    $.removeData(event.target, that.widgetName + '.preventClickEvent');
                    event.stopImmediatePropagation();
                    return false;
                }
            });
            this.started = false;
        },
        _mouseDestroy: function () {
            this.element.off('.' + this.widgetName);
            if (this._mouseMoveDelegate) {
                $(document)
                    .off('mousemove.' + this.widgetName, this._mouseMoveDelegate)
                    .off('mouseup.' + this.widgetName, this._mouseUpDelegate);
            }
        },
        _mouseDown: function (event) {
            if (mouseHandled) {
                return;
            }
            (this._mouseStarted && this._mouseUp(event));
            this._mouseDownEvent = event;
            var that = this, btnIsLeft = (event.which === 1), elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
            if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
                return true;
            }
            this.mouseDelayMet = !this.options.delay;
            if (!this.mouseDelayMet) {
                this._mouseDelayTimer = setTimeout(function () {
                    that.mouseDelayMet = true;
                }, this.options.delay);
            }
            if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
                this._mouseStarted = (this._mouseStart(event) !== false);
                if (!this._mouseStarted) {
                    event.preventDefault();
                    return true;
                }
            }
            if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
                $.removeData(event.target, this.widgetName + '.preventClickEvent');
            }
            this._mouseMoveDelegate = function (event) {
                return that._mouseMove(event);
            };
            this._mouseUpDelegate = function (event) {
                return that._mouseUp(event);
            };
            $(document)
                .on('mousemove.' + this.widgetName, this._mouseMoveDelegate)
                .on('mouseup.' + this.widgetName, this._mouseUpDelegate);
            event.preventDefault();
            mouseHandled = true;
            return true;
        },
        _mouseMove: function (event) {
            if ($.ui.ie && !(document.documentMode >= 9) && !event.button) {
                return this._mouseUp(event);
            }
            if (this._mouseStarted) {
                this._mouseDrag(event);
                return event.preventDefault();
            }
            if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
                this._mouseStarted =
                    (this._mouseStart(this._mouseDownEvent, event) !== false);
                (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
            }
            return !this._mouseStarted;
        },
        _mouseUp: function (event) {
            $(document)
                .off('mousemove.' + this.widgetName, this._mouseMoveDelegate)
                .off('mouseup.' + this.widgetName, this._mouseUpDelegate);
            if (this._mouseStarted) {
                this._mouseStarted = false;
                if (event.target === this._mouseDownEvent.target) {
                    $.data(event.target, this.widgetName + '.preventClickEvent', true);
                }
                this._mouseStop(event);
            }
            return false;
        },
        _mouseDistanceMet: function (event) {
            return (Math.max(Math.abs(this._mouseDownEvent.pageX - event.pageX), Math.abs(this._mouseDownEvent.pageY - event.pageY)) >= this.options.distance);
        },
        _mouseDelayMet: function (event) {
            return this.mouseDelayMet;
        },
        _mouseStart: function (event) { },
        _mouseDrag: function (event) { },
        _mouseStop: function (event) { },
        _mouseCapture: function (event) { return true; }
    });
})(jQuery);
(function ($, undefined) {
    $.widget("ui.draggable", $.ui.mouse, {
        version: "1.9.2",
        widgetEventPrefix: "drag",
        options: {
            addClasses: true,
            appendTo: "parent",
            axis: false,
            connectToSortable: false,
            containment: false,
            cursor: "auto",
            cursorAt: false,
            grid: false,
            handle: false,
            helper: "original",
            iframeFix: false,
            opacity: false,
            refreshPositions: false,
            revert: false,
            revertDuration: 500,
            scope: "default",
            scroll: true,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            snap: false,
            snapMode: "both",
            snapTolerance: 20,
            stack: false,
            zIndex: false
        },
        _create: function () {
            if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
                this.element[0].style.position = 'relative';
            (this.options.addClasses && this.element.addClass("ui-draggable"));
            (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
            this._mouseInit();
        },
        _destroy: function () {
            this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
            this._mouseDestroy();
        },
        _mouseCapture: function (event) {
            var o = this.options;
            if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
                return false;
            this.handle = this._getHandle(event);
            if (!this.handle)
                return false;
            $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function () {
                $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
                    .css({
                    width: this.offsetWidth + "px", height: this.offsetHeight + "px",
                    position: "absolute", opacity: "0.001", zIndex: 1000
                })
                    .css($(this).offset())
                    .appendTo("body");
            });
            return true;
        },
        _mouseStart: function (event) {
            var o = this.options;
            this.helper = this._createHelper(event);
            this.helper.addClass("ui-draggable-dragging");
            this._cacheHelperProportions();
            if ($.ui.ddmanager)
                $.ui.ddmanager.current = this;
            this._cacheMargins();
            this.cssPosition = this.helper.css("position");
            this.scrollParent = this.helper.scrollParent();
            this.offset = this.positionAbs = this.element.offset();
            this.offset = {
                top: this.offset.top - this.margins.top,
                left: this.offset.left - this.margins.left
            };
            $.extend(this.offset, {
                click: {
                    left: event.pageX - this.offset.left,
                    top: event.pageY - this.offset.top
                },
                parent: this._getParentOffset(),
                relative: this._getRelativeOffset()
            });
            this.originalPageX = event.pageX;
            this.originalPageY = event.pageY;
            this.originalPosition = this.position = this._generatePosition(event);
            (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
            if (o.containment)
                this._setContainment();
            if (this._trigger("start", event) === false) {
                this._clear();
                return false;
            }
            this._cacheHelperProportions();
            if ($.ui.ddmanager && !o.dropBehaviour)
                $.ui.ddmanager.prepareOffsets(this, event);
            this._mouseDrag(event, true);
            if ($.ui.ddmanager)
                $.ui.ddmanager.dragStart(this, event);
            return true;
        },
        _mouseDrag: function (event, noPropagation) {
            this.position = this._generatePosition(event);
            this.positionAbs = this._convertPositionTo("absolute");
            if (!noPropagation) {
                var ui = this._uiHash();
                if (this._trigger('drag', event, ui) === false) {
                    this._mouseUp({});
                    return false;
                }
                this.position = ui.position;
            }
            if (!this.options.axis || this.options.axis != "y")
                this.helper[0].style.left = this.position.left + 'px';
            if (!this.options.axis || this.options.axis != "x")
                this.helper[0].style.top = this.position.top + 'px';
            if ($.ui.ddmanager)
                $.ui.ddmanager.drag(this, event);
            return false;
        },
        _mouseStop: function (event) {
            var dropped = false;
            if ($.ui.ddmanager && !this.options.dropBehaviour)
                dropped = $.ui.ddmanager.drop(this, event);
            if (this.dropped) {
                dropped = this.dropped;
                this.dropped = false;
            }
            var element = this.element[0], elementInDom = false;
            while (element && (element = element.parentNode)) {
                if (element == document) {
                    elementInDom = true;
                }
            }
            if (!elementInDom && this.options.helper === "original")
                return false;
            if ((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || (typeof this.options.revert === 'function' && this.options.revert.call(this.element, dropped))) {
                var that = this;
                $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {
                    if (that._trigger("stop", event) !== false) {
                        that._clear();
                    }
                });
            }
            else {
                if (this._trigger("stop", event) !== false) {
                    this._clear();
                }
            }
            return false;
        },
        _mouseUp: function (event) {
            $("div.ui-draggable-iframeFix").each(function () {
                this.parentNode.removeChild(this);
            });
            if ($.ui.ddmanager)
                $.ui.ddmanager.dragStop(this, event);
            return $.ui.mouse.prototype._mouseUp.call(this, event);
        },
        cancel: function () {
            if (this.helper.is(".ui-draggable-dragging")) {
                this._mouseUp({});
            }
            else {
                this._clear();
            }
            return this;
        },
        _getHandle: function (event) {
            var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
            $(this.options.handle, this.element)
                .find("*")
                .addBack()
                .each(function () {
                if (this == event.target)
                    handle = true;
            });
            return handle;
        },
        _createHelper: function (event) {
            var o = this.options;
            var helper = typeof o.helper === 'function' ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
            if (!helper.parents('body').length)
                helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
            if (helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
                helper.css("position", "absolute");
            return helper;
        },
        _adjustOffsetFromHelper: function (obj) {
            if (typeof obj == 'string') {
                obj = obj.split(' ');
            }
            if (Array.isArray(obj)) {
                obj = { left: +obj[0], top: +obj[1] || 0 };
            }
            if ('left' in obj) {
                this.offset.click.left = obj.left + this.margins.left;
            }
            if ('right' in obj) {
                this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
            }
            if ('top' in obj) {
                this.offset.click.top = obj.top + this.margins.top;
            }
            if ('bottom' in obj) {
                this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
            }
        },
        _getParentOffset: function () {
            this.offsetParent = this.helper.offsetParent();
            var po = this.offsetParent.offset();
            if (this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
                po.left += this.scrollParent.scrollLeft();
                po.top += this.scrollParent.scrollTop();
            }
            if ((this.offsetParent[0] == document.body)
                || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie))
                po = { top: 0, left: 0 };
            return {
                top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            };
        },
        _getRelativeOffset: function () {
            if (this.cssPosition == "relative") {
                var p = this.element.position();
                return {
                    top: p.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
                    left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
                };
            }
            else {
                return { top: 0, left: 0 };
            }
        },
        _cacheMargins: function () {
            this.margins = {
                left: (parseInt(this.element.css("marginLeft"), 10) || 0),
                top: (parseInt(this.element.css("marginTop"), 10) || 0),
                right: (parseInt(this.element.css("marginRight"), 10) || 0),
                bottom: (parseInt(this.element.css("marginBottom"), 10) || 0)
            };
        },
        _cacheHelperProportions: function () {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            };
        },
        _setContainment: function () {
            var o = this.options;
            if (o.containment == 'parent')
                o.containment = this.helper[0].parentNode;
            if (o.containment == 'document' || o.containment == 'window')
                this.containment = [
                    o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
                    o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
                    (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
                    (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
                ];
            if (!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
                var c = $(o.containment);
                var ce = c[0];
                if (!ce)
                    return;
                var co = c.offset();
                var over = ($(ce).css("overflow") != 'hidden');
                this.containment = [
                    (parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0),
                    (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0),
                    (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
                    (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom
                ];
                this.relative_container = c;
            }
            else if (o.containment.constructor == Array) {
                this.containment = o.containment;
            }
        },
        _convertPositionTo: function (d, pos) {
            if (!pos)
                pos = this.position;
            var mod = d == "absolute" ? 1 : -1;
            var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
            return {
                top: (pos.top
                    + this.offset.relative.top * mod
                    + this.offset.parent.top * mod
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
                left: (pos.left
                    + this.offset.relative.left * mod
                    + this.offset.parent.left * mod
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
            };
        },
        _generatePosition: function (event) {
            var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
            var pageX = event.pageX;
            var pageY = event.pageY;
            if (this.originalPosition) {
                var containment;
                if (this.containment) {
                    if (this.relative_container) {
                        var co = this.relative_container.offset();
                        containment = [this.containment[0] + co.left,
                            this.containment[1] + co.top,
                            this.containment[2] + co.left,
                            this.containment[3] + co.top];
                    }
                    else {
                        containment = this.containment;
                    }
                    if (event.pageX - this.offset.click.left < containment[0])
                        pageX = containment[0] + this.offset.click.left;
                    if (event.pageY - this.offset.click.top < containment[1])
                        pageY = containment[1] + this.offset.click.top;
                    if (event.pageX - this.offset.click.left > containment[2])
                        pageX = containment[2] + this.offset.click.left;
                    if (event.pageY - this.offset.click.top > containment[3])
                        pageY = containment[3] + this.offset.click.top;
                }
                if (o.grid) {
                    var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
                    pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
                    var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
                    pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
                }
            }
            return {
                top: (pageY
                    - this.offset.click.top
                    - this.offset.relative.top
                    - this.offset.parent.top
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
                left: (pageX
                    - this.offset.click.left
                    - this.offset.relative.left
                    - this.offset.parent.left
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
            };
        },
        _clear: function () {
            this.helper.removeClass("ui-draggable-dragging");
            if (this.helper[0] != this.element[0] && !this.cancelHelperRemoval)
                this.helper.remove();
            this.helper = null;
            this.cancelHelperRemoval = false;
        },
        _trigger: function (type, event, ui) {
            ui = ui || this._uiHash();
            $.ui.plugin.call(this, type, [event, ui]);
            if (type == "drag")
                this.positionAbs = this._convertPositionTo("absolute");
            return $.Widget.prototype._trigger.call(this, type, event, ui);
        },
        plugins: {},
        _uiHash: function (event) {
            return {
                helper: this.helper,
                position: this.position,
                originalPosition: this.originalPosition,
                offset: this.positionAbs
            };
        }
    });
    $.ui.plugin.add("draggable", "connectToSortable", {
        start: function (event, ui) {
            var inst = $(this).data("draggable"), o = inst.options, uiSortable = $.extend({}, ui, { item: inst.element });
            inst.sortables = [];
            $(o.connectToSortable).each(function () {
                var sortable = $.data(this, 'sortable');
                if (sortable && !sortable.options.disabled) {
                    inst.sortables.push({
                        instance: sortable,
                        shouldRevert: sortable.options.revert
                    });
                    sortable.refreshPositions();
                    sortable._trigger("activate", event, uiSortable);
                }
            });
        },
        stop: function (event, ui) {
            var inst = $(this).data("draggable"), uiSortable = $.extend({}, ui, { item: inst.element });
            $.each(inst.sortables, function () {
                if (this.instance.isOver) {
                    this.instance.isOver = 0;
                    inst.cancelHelperRemoval = true;
                    this.instance.cancelHelperRemoval = false;
                    if (this.shouldRevert)
                        this.instance.options.revert = true;
                    this.instance._mouseStop(event);
                    this.instance.options.helper = this.instance.options._helper;
                    if (inst.options.helper == 'original')
                        this.instance.currentItem.css({ top: 'auto', left: 'auto' });
                }
                else {
                    this.instance.cancelHelperRemoval = false;
                    this.instance._trigger("deactivate", event, uiSortable);
                }
            });
        },
        drag: function (event, ui) {
            var inst = $(this).data("draggable"), that = this;
            var checkPos = function (o) {
                var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
                var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
                var itemHeight = o.height, itemWidth = o.width;
                var itemTop = o.top, itemLeft = o.left;
                return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
            };
            $.each(inst.sortables, function (i) {
                var innermostIntersecting = false;
                var thisSortable = this;
                this.instance.positionAbs = inst.positionAbs;
                this.instance.helperProportions = inst.helperProportions;
                this.instance.offset.click = inst.offset.click;
                if (this.instance._intersectsWith(this.instance.containerCache)) {
                    innermostIntersecting = true;
                    $.each(inst.sortables, function () {
                        this.instance.positionAbs = inst.positionAbs;
                        this.instance.helperProportions = inst.helperProportions;
                        this.instance.offset.click = inst.offset.click;
                        if (this != thisSortable
                            && this.instance._intersectsWith(this.instance.containerCache)
                            && $.ui.contains(thisSortable.instance.element[0], this.instance.element[0]))
                            innermostIntersecting = false;
                        return innermostIntersecting;
                    });
                }
                if (innermostIntersecting) {
                    if (!this.instance.isOver) {
                        this.instance.isOver = 1;
                        this.instance.currentItem = $(that).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
                        this.instance.options._helper = this.instance.options.helper;
                        this.instance.options.helper = function () { return ui.helper[0]; };
                        event.target = this.instance.currentItem[0];
                        this.instance._mouseCapture(event, true);
                        this.instance._mouseStart(event, true, true);
                        this.instance.offset.click.top = inst.offset.click.top;
                        this.instance.offset.click.left = inst.offset.click.left;
                        this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
                        this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
                        inst._trigger("toSortable", event);
                        inst.dropped = this.instance.element;
                        inst.currentItem = inst.element;
                        this.instance.fromOutside = inst;
                    }
                    if (this.instance.currentItem)
                        this.instance._mouseDrag(event);
                }
                else {
                    if (this.instance.isOver) {
                        this.instance.isOver = 0;
                        this.instance.cancelHelperRemoval = true;
                        this.instance.options.revert = false;
                        this.instance._trigger('out', event, this.instance._uiHash(this.instance));
                        this.instance._mouseStop(event, true);
                        this.instance.options.helper = this.instance.options._helper;
                        this.instance.currentItem.remove();
                        if (this.instance.placeholder)
                            this.instance.placeholder.remove();
                        inst._trigger("fromSortable", event);
                        inst.dropped = false;
                    }
                }
                ;
            });
        }
    });
    $.ui.plugin.add("draggable", "cursor", {
        start: function (event, ui) {
            var t = $('body'), o = $(this).data('draggable').options;
            if (t.css("cursor"))
                o._cursor = t.css("cursor");
            t.css("cursor", o.cursor);
        },
        stop: function (event, ui) {
            var o = $(this).data('draggable').options;
            if (o._cursor)
                $('body').css("cursor", o._cursor);
        }
    });
    $.ui.plugin.add("draggable", "opacity", {
        start: function (event, ui) {
            var t = $(ui.helper), o = $(this).data('draggable').options;
            if (t.css("opacity"))
                o._opacity = t.css("opacity");
            t.css('opacity', o.opacity);
        },
        stop: function (event, ui) {
            var o = $(this).data('draggable').options;
            if (o._opacity)
                $(ui.helper).css('opacity', o._opacity);
        }
    });
    $.ui.plugin.add("draggable", "scroll", {
        start: function (event, ui) {
            var i = $(this).data("draggable");
            if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML')
                i.overflowOffset = i.scrollParent.offset();
        },
        drag: function (event, ui) {
            var i = $(this).data("draggable"), o = i.options, scrolled = false;
            if (i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
                if (!o.axis || o.axis != 'x') {
                    if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
                    else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity)
                        i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
                }
                if (!o.axis || o.axis != 'y') {
                    if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
                    else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity)
                        i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
                }
            }
            else {
                if (!o.axis || o.axis != 'x') {
                    if (event.pageY - $(document).scrollTop() < o.scrollSensitivity)
                        scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
                    else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
                        scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
                }
                if (!o.axis || o.axis != 'y') {
                    if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
                        scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
                    else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
                        scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
                }
            }
            if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
                $.ui.ddmanager.prepareOffsets(i, event);
        }
    });
    $.ui.plugin.add("draggable", "snap", {
        start: function (event, ui) {
            var i = $(this).data("draggable"), o = i.options;
            i.snapElements = [];
            $(o.snap.constructor != String ? (o.snap.items || ':data(draggable)') : o.snap).each(function () {
                var $t = $(this);
                var $o = $t.offset();
                if (this != i.element[0])
                    i.snapElements.push({
                        item: this,
                        width: $t.outerWidth(), height: $t.outerHeight(),
                        top: $o.top, left: $o.left
                    });
            });
        },
        drag: function (event, ui) {
            var inst = $(this).data("draggable"), o = inst.options;
            var d = o.snapTolerance;
            var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
            for (var i = inst.snapElements.length - 1; i >= 0; i--) {
                var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
                if (!((l - d < x1 && x1 < r + d && t - d < y1 && y1 < b + d) || (l - d < x1 && x1 < r + d && t - d < y2 && y2 < b + d) || (l - d < x2 && x2 < r + d && t - d < y1 && y1 < b + d) || (l - d < x2 && x2 < r + d && t - d < y2 && y2 < b + d))) {
                    if (inst.snapElements[i].snapping)
                        (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
                    inst.snapElements[i].snapping = false;
                    continue;
                }
                if (o.snapMode != 'inner') {
                    var ts = Math.abs(t - y2) <= d;
                    var bs = Math.abs(b - y1) <= d;
                    var ls = Math.abs(l - x2) <= d;
                    var rs = Math.abs(r - x1) <= d;
                    if (ts)
                        ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
                    if (bs)
                        ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
                    if (ls)
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
                    if (rs)
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
                }
                var first = (ts || bs || ls || rs);
                if (o.snapMode != 'outer') {
                    var ts = Math.abs(t - y1) <= d;
                    var bs = Math.abs(b - y2) <= d;
                    var ls = Math.abs(l - x1) <= d;
                    var rs = Math.abs(r - x2) <= d;
                    if (ts)
                        ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
                    if (bs)
                        ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
                    if (ls)
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
                    if (rs)
                        ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
                }
                if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
                    (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
                inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
            }
            ;
        }
    });
    $.ui.plugin.add("draggable", "stack", {
        start: function (event, ui) {
            var o = $(this).data("draggable").options;
            var group = $.makeArray($(o.stack)).sort(function (a, b) {
                return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0);
            });
            if (!group.length) {
                return;
            }
            var min = parseInt(group[0].style.zIndex) || 0;
            $(group).each(function (i) {
                this.style.zIndex = min + i;
            });
            this[0].style.zIndex = min + group.length;
        }
    });
    $.ui.plugin.add("draggable", "zIndex", {
        start: function (event, ui) {
            var t = $(ui.helper), o = $(this).data("draggable").options;
            if (t.css("zIndex"))
                o._zIndex = t.css("zIndex");
            t.css('zIndex', o.zIndex);
        },
        stop: function (event, ui) {
            var o = $(this).data("draggable").options;
            if (o._zIndex)
                $(ui.helper).css('zIndex', o._zIndex);
        }
    });
})(jQuery);
(function ($, undefined) {
    $.widget("ui.droppable", {
        version: "1.9.2",
        widgetEventPrefix: "drop",
        options: {
            accept: '*',
            activeClass: false,
            addClasses: true,
            greedy: false,
            hoverClass: false,
            scope: 'default',
            tolerance: 'intersect'
        },
        _create: function () {
            var o = this.options, accept = o.accept;
            this.isover = 0;
            this.isout = 1;
            this.accept = typeof accept === 'function' ? accept : function (d) {
                return d.is(accept);
            };
            this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
            $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
            $.ui.ddmanager.droppables[o.scope].push(this);
            (o.addClasses && this.element.addClass("ui-droppable"));
        },
        _destroy: function () {
            var drop = $.ui.ddmanager.droppables[this.options.scope];
            for (var i = 0; i < drop.length; i++)
                if (drop[i] == this)
                    drop.splice(i, 1);
            this.element.removeClass("ui-droppable ui-droppable-disabled");
        },
        _setOption: function (key, value) {
            if (key == 'accept') {
                this.accept = typeof value === 'function' ? value : function (d) {
                    return d.is(value);
                };
            }
            $.Widget.prototype._setOption.apply(this, arguments);
        },
        _activate: function (event) {
            var draggable = $.ui.ddmanager.current;
            if (this.options.activeClass)
                this.element.addClass(this.options.activeClass);
            (draggable && this._trigger('activate', event, this.ui(draggable)));
        },
        _deactivate: function (event) {
            var draggable = $.ui.ddmanager.current;
            if (this.options.activeClass)
                this.element.removeClass(this.options.activeClass);
            (draggable && this._trigger('deactivate', event, this.ui(draggable)));
        },
        _over: function (event) {
            var draggable = $.ui.ddmanager.current;
            if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
                return;
            if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                if (this.options.hoverClass)
                    this.element.addClass(this.options.hoverClass);
                this._trigger('over', event, this.ui(draggable));
            }
        },
        _out: function (event) {
            var draggable = $.ui.ddmanager.current;
            if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
                return;
            if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                if (this.options.hoverClass)
                    this.element.removeClass(this.options.hoverClass);
                this._trigger('out', event, this.ui(draggable));
            }
        },
        _drop: function (event, custom) {
            var draggable = custom || $.ui.ddmanager.current;
            if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0])
                return false;
            var childrenIntersection = false;
            this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
                var inst = $.data(this, 'droppable');
                if (inst.options.greedy
                    && !inst.options.disabled
                    && inst.options.scope == draggable.options.scope
                    && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
                    && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
                    childrenIntersection = true;
                    return false;
                }
            });
            if (childrenIntersection)
                return false;
            if (this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                if (this.options.activeClass)
                    this.element.removeClass(this.options.activeClass);
                if (this.options.hoverClass)
                    this.element.removeClass(this.options.hoverClass);
                this._trigger('drop', event, this.ui(draggable));
                return this.element;
            }
            return false;
        },
        ui: function (c) {
            return {
                draggable: (c.currentItem || c.element),
                helper: c.helper,
                position: c.position,
                offset: c.positionAbs
            };
        }
    });
    $.ui.intersect = function (draggable, droppable, toleranceMode) {
        if (!droppable.offset)
            return false;
        var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
        var l = droppable.offset.left, r = l + droppable.proportions.width, t = droppable.offset.top, b = t + droppable.proportions.height;
        switch (toleranceMode) {
            case 'fit':
                return (l <= x1 && x2 <= r
                    && t <= y1 && y2 <= b);
                break;
            case 'intersect':
                return (l < x1 + (draggable.helperProportions.width / 2)
                    && x2 - (draggable.helperProportions.width / 2) < r
                    && t < y1 + (draggable.helperProportions.height / 2)
                    && y2 - (draggable.helperProportions.height / 2) < b);
                break;
            case 'pointer':
                var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
                return isOver;
                break;
            case 'touch':
                return ((y1 >= t && y1 <= b) ||
                    (y2 >= t && y2 <= b) ||
                    (y1 < t && y2 > b)) && ((x1 >= l && x1 <= r) ||
                    (x2 >= l && x2 <= r) ||
                    (x1 < l && x2 > r));
                break;
            default:
                return false;
                break;
        }
    };
    $.ui.ddmanager = {
        current: null,
        droppables: { 'default': [] },
        prepareOffsets: function (t, event) {
            var m = $.ui.ddmanager.droppables[t.options.scope] || [];
            var type = event ? event.type : null;
            var list = (t.currentItem || t.element).find(":data(droppable)").addBack();
            droppablesLoop: for (var i = 0; i < m.length; i++) {
                if (m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0], (t.currentItem || t.element))))
                    continue;
                for (var j = 0; j < list.length; j++) {
                    if (list[j] == m[i].element[0]) {
                        m[i].proportions.height = 0;
                        continue droppablesLoop;
                    }
                }
                ;
                m[i].visible = m[i].element.css("display") != "none";
                if (!m[i].visible)
                    continue;
                if (type == "mousedown")
                    m[i]._activate.call(m[i], event);
                m[i].offset = m[i].element.offset();
                m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
            }
        },
        drop: function (draggable, event) {
            var dropped = false;
            $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function () {
                if (!this.options)
                    return;
                if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
                    dropped = this._drop.call(this, event) || dropped;
                if (!this.options.disabled && this.visible && this.accept.call(this.element[0], (draggable.currentItem || draggable.element))) {
                    this.isout = 1;
                    this.isover = 0;
                    this._deactivate.call(this, event);
                }
            });
            return dropped;
        },
        dragStart: function (draggable, event) {
            draggable.element.parentsUntil("body").bind("scroll.droppable", function () {
                if (!draggable.options.refreshPositions)
                    $.ui.ddmanager.prepareOffsets(draggable, event);
            });
        },
        drag: function (draggable, event) {
            if (draggable.options.refreshPositions)
                $.ui.ddmanager.prepareOffsets(draggable, event);
            $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function () {
                if (this.options.disabled || this.greedyChild || !this.visible)
                    return;
                var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
                var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
                if (!c)
                    return;
                var parentInstance;
                if (this.options.greedy) {
                    var scope = this.options.scope;
                    var parent = this.element.parents(':data(droppable)').filter(function () {
                        return $.data(this, 'droppable').options.scope === scope;
                    });
                    if (parent.length) {
                        parentInstance = $.data(parent[0], 'droppable');
                        parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
                    }
                }
                if (parentInstance && c == 'isover') {
                    parentInstance['isover'] = 0;
                    parentInstance['isout'] = 1;
                    parentInstance._out.call(parentInstance, event);
                }
                this[c] = 1;
                this[c == 'isout' ? 'isover' : 'isout'] = 0;
                this[c == "isover" ? "_over" : "_out"].call(this, event);
                if (parentInstance && c == 'isout') {
                    parentInstance['isout'] = 0;
                    parentInstance['isover'] = 1;
                    parentInstance._over.call(parentInstance, event);
                }
            });
        },
        dragStop: function (draggable, event) {
            draggable.element.parentsUntil("body").unbind("scroll.droppable");
            if (!draggable.options.refreshPositions)
                $.ui.ddmanager.prepareOffsets(draggable, event);
        }
    };
})(jQuery);
(function ($, undefined) {
    $.widget("ui.resizable", $.ui.mouse, {
        version: "1.9.2",
        widgetEventPrefix: "resize",
        options: {
            alsoResize: false,
            animate: false,
            animateDuration: "slow",
            animateEasing: "swing",
            aspectRatio: false,
            autoHide: false,
            containment: false,
            ghost: false,
            grid: false,
            handles: "e,s,se",
            helper: false,
            maxHeight: null,
            maxWidth: null,
            minHeight: 10,
            minWidth: 10,
            zIndex: 1000
        },
        _create: function () {
            var that = this, o = this.options;
            this.element.addClass("ui-resizable");
            $.extend(this, {
                _aspectRatio: !!(o.aspectRatio),
                aspectRatio: o.aspectRatio,
                originalElement: this.element,
                _proportionallyResizeElements: [],
                _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
            });
            if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
                this.element.wrap($('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
                    position: this.element.css('position'),
                    width: this.element.outerWidth(),
                    height: this.element.outerHeight(),
                    top: this.element.css('top'),
                    left: this.element.css('left')
                }));
                this.element = this.element.parent().data("resizable", this.element.data('resizable'));
                this.elementIsWrapper = true;
                this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
                this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 });
                this.originalResizeStyle = this.originalElement.css('resize');
                this.originalElement.css('resize', 'none');
                this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
                this.originalElement.css({ margin: this.originalElement.css('margin') });
                this._proportionallyResize();
            }
            this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
            if (this.handles.constructor == String) {
                if (this.handles == 'all')
                    this.handles = 'n,e,s,w,se,sw,ne,nw';
                var n = this.handles.split(",");
                this.handles = {};
                for (var i = 0; i < n.length; i++) {
                    var handle = n[i].trim(), hname = 'ui-resizable-' + handle;
                    var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
                    axis.css({ zIndex: o.zIndex });
                    if ('se' == handle) {
                        axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
                    }
                    ;
                    this.handles[handle] = '.ui-resizable-' + handle;
                    this.element.append(axis);
                }
            }
            this._renderAxis = function (target) {
                target = target || this.element;
                for (var i in this.handles) {
                    if (this.handles[i].constructor == String)
                        this.handles[i] = $(this.handles[i], this.element).show();
                    if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
                        var axis = $(this.handles[i], this.element), padWrapper = 0;
                        padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
                        var padPos = ['padding',
                            /ne|nw|n/.test(i) ? 'Top' :
                                /se|sw|s/.test(i) ? 'Bottom' :
                                    /^e$/.test(i) ? 'Right' : 'Left'].join("");
                        target.css(padPos, padWrapper);
                        this._proportionallyResize();
                    }
                    if (!$(this.handles[i]).length)
                        continue;
                }
            };
            this._renderAxis(this.element);
            this._handles = $('.ui-resizable-handle', this.element)
                .disableSelection();
            this._handles.mouseover(function () {
                if (!that.resizing) {
                    if (this.className)
                        var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
                    that.axis = axis && axis[1] ? axis[1] : 'se';
                }
            });
            if (o.autoHide) {
                this._handles.hide();
                $(this.element)
                    .addClass("ui-resizable-autohide")
                    .mouseenter(function () {
                    if (o.disabled)
                        return;
                    $(this).removeClass("ui-resizable-autohide");
                    that._handles.show();
                })
                    .mouseleave(function () {
                    if (o.disabled)
                        return;
                    if (!that.resizing) {
                        $(this).addClass("ui-resizable-autohide");
                        that._handles.hide();
                    }
                });
            }
            this._mouseInit();
        },
        _destroy: function () {
            this._mouseDestroy();
            var _destroy = function (exp) {
                $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
                    .removeData("resizable").removeData("ui-resizable").off(".resizable").find('.ui-resizable-handle').remove();
            };
            if (this.elementIsWrapper) {
                _destroy(this.element);
                var wrapper = this.element;
                this.originalElement.css({
                    position: wrapper.css('position'),
                    width: wrapper.outerWidth(),
                    height: wrapper.outerHeight(),
                    top: wrapper.css('top'),
                    left: wrapper.css('left')
                }).insertAfter(wrapper);
                wrapper.remove();
            }
            this.originalElement.css('resize', this.originalResizeStyle);
            _destroy(this.originalElement);
            return this;
        },
        _mouseCapture: function (event) {
            var handle = false;
            for (var i in this.handles) {
                if ($(this.handles[i])[0] == event.target) {
                    handle = true;
                }
            }
            return !this.options.disabled && handle;
        },
        _mouseStart: function (event) {
            var o = this.options, iniPos = this.element.position(), el = this.element;
            this.resizing = true;
            this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
            if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
                el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
            }
            this._renderProxy();
            var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
            if (o.containment) {
                curleft += $(o.containment).scrollLeft() || 0;
                curtop += $(o.containment).scrollTop() || 0;
            }
            this.offset = this.helper.offset();
            this.position = { left: curleft, top: curtop };
            this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
            this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
            this.originalPosition = { left: curleft, top: curtop };
            this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
            this.originalMousePosition = { left: event.pageX, top: event.pageY };
            this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
            var cursor = $('.ui-resizable-' + this.axis).css('cursor');
            $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
            el.addClass("ui-resizable-resizing");
            this._propagate("start", event);
            return true;
        },
        _mouseDrag: function (event) {
            var el = this.helper, o = this.options, props = {}, that = this, smp = this.originalMousePosition, a = this.axis;
            var dx = (event.pageX - smp.left) || 0, dy = (event.pageY - smp.top) || 0;
            var trigger = this._change[a];
            if (!trigger)
                return false;
            var data = trigger.apply(this, [event, dx, dy]);
            this._updateVirtualBoundaries(event.shiftKey);
            if (this._aspectRatio || event.shiftKey)
                data = this._updateRatio(data, event);
            data = this._respectSize(data, event);
            this._propagate("resize", event);
            el.css({
                top: this.position.top + "px", left: this.position.left + "px",
                width: this.size.width + "px", height: this.size.height + "px"
            });
            if (!this._helper && this._proportionallyResizeElements.length)
                this._proportionallyResize();
            this._updateCache(data);
            this._trigger('resize', event, this.ui());
            return false;
        },
        _mouseStop: function (event) {
            this.resizing = false;
            var o = this.options, that = this;
            if (this._helper) {
                var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width;
                var s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }, left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
                if (!o.animate)
                    this.element.css($.extend(s, { top: top, left: left }));
                that.helper.height(that.size.height);
                that.helper.width(that.size.width);
                if (this._helper && !o.animate)
                    this._proportionallyResize();
            }
            $('body').css('cursor', 'auto');
            this.element.removeClass("ui-resizable-resizing");
            this._propagate("stop", event);
            if (this._helper)
                this.helper.remove();
            return false;
        },
        _updateVirtualBoundaries: function (forceAspectRatio) {
            var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
            b = {
                minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
                maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,
                minHeight: isNumber(o.minHeight) ? o.minHeight : 0,
                maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity
            };
            if (this._aspectRatio || forceAspectRatio) {
                pMinWidth = b.minHeight * this.aspectRatio;
                pMinHeight = b.minWidth / this.aspectRatio;
                pMaxWidth = b.maxHeight * this.aspectRatio;
                pMaxHeight = b.maxWidth / this.aspectRatio;
                if (pMinWidth > b.minWidth)
                    b.minWidth = pMinWidth;
                if (pMinHeight > b.minHeight)
                    b.minHeight = pMinHeight;
                if (pMaxWidth < b.maxWidth)
                    b.maxWidth = pMaxWidth;
                if (pMaxHeight < b.maxHeight)
                    b.maxHeight = pMaxHeight;
            }
            this._vBoundaries = b;
        },
        _updateCache: function (data) {
            var o = this.options;
            this.offset = this.helper.offset();
            if (isNumber(data.left))
                this.position.left = data.left;
            if (isNumber(data.top))
                this.position.top = data.top;
            if (isNumber(data.height))
                this.size.height = data.height;
            if (isNumber(data.width))
                this.size.width = data.width;
        },
        _updateRatio: function (data, event) {
            var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
            if (isNumber(data.height))
                data.width = (data.height * this.aspectRatio);
            else if (isNumber(data.width))
                data.height = (data.width / this.aspectRatio);
            if (a == 'sw') {
                data.left = cpos.left + (csize.width - data.width);
                data.top = null;
            }
            if (a == 'nw') {
                data.top = cpos.top + (csize.height - data.height);
                data.left = cpos.left + (csize.width - data.width);
            }
            return data;
        },
        _respectSize: function (data, event) {
            var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
            if (isminw)
                data.width = o.minWidth;
            if (isminh)
                data.height = o.minHeight;
            if (ismaxw)
                data.width = o.maxWidth;
            if (ismaxh)
                data.height = o.maxHeight;
            var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
            var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
            if (isminw && cw)
                data.left = dw - o.minWidth;
            if (ismaxw && cw)
                data.left = dw - o.maxWidth;
            if (isminh && ch)
                data.top = dh - o.minHeight;
            if (ismaxh && ch)
                data.top = dh - o.maxHeight;
            var isNotwh = !data.width && !data.height;
            if (isNotwh && !data.left && data.top)
                data.top = null;
            else if (isNotwh && !data.top && data.left)
                data.left = null;
            return data;
        },
        _proportionallyResize: function () {
            var o = this.options;
            if (!this._proportionallyResizeElements.length)
                return;
            var element = this.helper || this.element;
            for (var i = 0; i < this._proportionallyResizeElements.length; i++) {
                var prel = this._proportionallyResizeElements[i];
                if (!this.borderDif) {
                    var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
                    this.borderDif = $.map(b, function (v, i) {
                        var border = parseInt(v, 10) || 0, padding = parseInt(p[i], 10) || 0;
                        return border + padding;
                    });
                }
                prel.css({
                    height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
                    width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
                });
            }
            ;
        },
        _renderProxy: function () {
            var el = this.element, o = this.options;
            this.elementOffset = el.offset();
            if (this._helper) {
                this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
                var ie6offset = ($.ui.ie6 ? 1 : 0), pxyoffset = ($.ui.ie6 ? 2 : -1);
                this.helper.addClass(this._helper).css({
                    width: this.element.outerWidth() + pxyoffset,
                    height: this.element.outerHeight() + pxyoffset,
                    position: 'absolute',
                    left: this.elementOffset.left - ie6offset + 'px',
                    top: this.elementOffset.top - ie6offset + 'px',
                    zIndex: ++o.zIndex
                });
                this.helper
                    .appendTo("body")
                    .disableSelection();
            }
            else {
                this.helper = this.element;
            }
        },
        _change: {
            e: function (event, dx, dy) {
                return { width: this.originalSize.width + dx };
            },
            w: function (event, dx, dy) {
                var o = this.options, cs = this.originalSize, sp = this.originalPosition;
                return { left: sp.left + dx, width: cs.width - dx };
            },
            n: function (event, dx, dy) {
                var o = this.options, cs = this.originalSize, sp = this.originalPosition;
                return { top: sp.top + dy, height: cs.height - dy };
            },
            s: function (event, dx, dy) {
                return { height: this.originalSize.height + dy };
            },
            se: function (event, dx, dy) {
                return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
            },
            sw: function (event, dx, dy) {
                return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
            },
            ne: function (event, dx, dy) {
                return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
            },
            nw: function (event, dx, dy) {
                return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
            }
        },
        _propagate: function (n, event) {
            $.ui.plugin.call(this, n, [event, this.ui()]);
            (n != "resize" && this._trigger(n, event, this.ui()));
        },
        plugins: {},
        ui: function () {
            return {
                originalElement: this.originalElement,
                element: this.element,
                helper: this.helper,
                position: this.position,
                size: this.size,
                originalSize: this.originalSize,
                originalPosition: this.originalPosition
            };
        }
    });
    $.ui.plugin.add("resizable", "alsoResize", {
        start: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options;
            var _store = function (exp) {
                $(exp).each(function () {
                    var el = $(this);
                    el.data("resizable-alsoresize", {
                        width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
                        left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10)
                    });
                });
            };
            if (typeof (o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
                if (o.alsoResize.length) {
                    o.alsoResize = o.alsoResize[0];
                    _store(o.alsoResize);
                }
                else {
                    $.each(o.alsoResize, function (exp) { _store(exp); });
                }
            }
            else {
                _store(o.alsoResize);
            }
        },
        resize: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, os = that.originalSize, op = that.originalPosition;
            var delta = {
                height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0,
                top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0
            }, _alsoResize = function (exp, c) {
                $(exp).each(function () {
                    var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
                    $.each(css, function (i, prop) {
                        var sum = (start[prop] || 0) + (delta[prop] || 0);
                        if (sum && sum >= 0)
                            style[prop] = sum || null;
                    });
                    el.css(style);
                });
            };
            if (typeof (o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
                $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
            }
            else {
                _alsoResize(o.alsoResize);
            }
        },
        stop: function (event, ui) {
            $(this).removeData("resizable-alsoresize");
        }
    });
    $.ui.plugin.add("resizable", "animate", {
        stop: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options;
            var pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], 'left') ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width;
            var style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, left = (parseInt(that.element.css('left'), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css('top'), 10) + (that.position.top - that.originalPosition.top)) || null;
            that.element.animate($.extend(style, top && left ? { top: top, left: left } : {}), {
                duration: o.animateDuration,
                easing: o.animateEasing,
                step: function () {
                    var data = {
                        width: parseInt(that.element.css('width'), 10),
                        height: parseInt(that.element.css('height'), 10),
                        top: parseInt(that.element.css('top'), 10),
                        left: parseInt(that.element.css('left'), 10)
                    };
                    if (pr && pr.length)
                        $(pr[0]).css({ width: data.width, height: data.height });
                    that._updateCache(data);
                    that._propagate("resize", event);
                }
            });
        }
    });
    $.ui.plugin.add("resizable", "containment", {
        start: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, el = that.element;
            var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
            if (!ce)
                return;
            that.containerElement = $(ce);
            if (/document/.test(oc) || oc == document) {
                that.containerOffset = { left: 0, top: 0 };
                that.containerPosition = { left: 0, top: 0 };
                that.parentData = {
                    element: $(document), left: 0, top: 0,
                    width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
                };
            }
            else {
                var element = $(ce), p = [];
                $(["Top", "Right", "Left", "Bottom"]).each(function (i, name) { p[i] = num(element.css("padding" + name)); });
                that.containerOffset = element.offset();
                that.containerPosition = element.position();
                that.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
                var co = that.containerOffset, ch = that.containerSize.height, cw = that.containerSize.width, width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
                that.parentData = {
                    element: ce, left: co.left, top: co.top, width: width, height: height
                };
            }
        },
        resize: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, ps = that.containerSize, co = that.containerOffset, cs = that.size, cp = that.position, pRatio = that._aspectRatio || event.shiftKey, cop = { top: 0, left: 0 }, ce = that.containerElement;
            if (ce[0] != document && (/static/).test(ce.css('position')))
                cop = co;
            if (cp.left < (that._helper ? co.left : 0)) {
                that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left));
                if (pRatio)
                    that.size.height = that.size.width / that.aspectRatio;
                that.position.left = o.helper ? co.left : 0;
            }
            if (cp.top < (that._helper ? co.top : 0)) {
                that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top);
                if (pRatio)
                    that.size.width = that.size.height * that.aspectRatio;
                that.position.top = that._helper ? co.top : 0;
            }
            that.offset.left = that.parentData.left + that.position.left;
            that.offset.top = that.parentData.top + that.position.top;
            var woset = Math.abs((that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width), hoset = Math.abs((that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height);
            var isParent = that.containerElement.get(0) == that.element.parent().get(0), isOffsetRelative = /relative|absolute/.test(that.containerElement.css('position'));
            if (isParent && isOffsetRelative)
                woset -= that.parentData.left;
            if (woset + that.size.width >= that.parentData.width) {
                that.size.width = that.parentData.width - woset;
                if (pRatio)
                    that.size.height = that.size.width / that.aspectRatio;
            }
            if (hoset + that.size.height >= that.parentData.height) {
                that.size.height = that.parentData.height - hoset;
                if (pRatio)
                    that.size.width = that.size.height * that.aspectRatio;
            }
        },
        stop: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, cp = that.position, co = that.containerOffset, cop = that.containerPosition, ce = that.containerElement;
            var helper = $(that.helper), ho = helper.offset(), w = helper.outerWidth() - that.sizeDiff.width, h = helper.outerHeight() - that.sizeDiff.height;
            if (that._helper && !o.animate && (/relative/).test(ce.css('position')))
                $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
            if (that._helper && !o.animate && (/static/).test(ce.css('position')))
                $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
        }
    });
    $.ui.plugin.add("resizable", "ghost", {
        start: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, cs = that.size;
            that.ghost = that.originalElement.clone();
            that.ghost
                .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
                .addClass('ui-resizable-ghost')
                .addClass(typeof o.ghost == 'string' ? o.ghost : '');
            that.ghost.appendTo(that.helper);
        },
        resize: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options;
            if (that.ghost)
                that.ghost.css({ position: 'relative', height: that.size.height, width: that.size.width });
        },
        stop: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options;
            if (that.ghost && that.helper)
                that.helper.get(0).removeChild(that.ghost.get(0));
        }
    });
    $.ui.plugin.add("resizable", "grid", {
        resize: function (event, ui) {
            var that = $(this).data("resizable"), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, ratio = o._aspectRatio || event.shiftKey;
            o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
            var ox = Math.round((cs.width - os.width) / (o.grid[0] || 1)) * (o.grid[0] || 1), oy = Math.round((cs.height - os.height) / (o.grid[1] || 1)) * (o.grid[1] || 1);
            if (/^(se|s|e)$/.test(a)) {
                that.size.width = os.width + ox;
                that.size.height = os.height + oy;
            }
            else if (/^(ne)$/.test(a)) {
                that.size.width = os.width + ox;
                that.size.height = os.height + oy;
                that.position.top = op.top - oy;
            }
            else if (/^(sw)$/.test(a)) {
                that.size.width = os.width + ox;
                that.size.height = os.height + oy;
                that.position.left = op.left - ox;
            }
            else {
                that.size.width = os.width + ox;
                that.size.height = os.height + oy;
                that.position.top = op.top - oy;
                that.position.left = op.left - ox;
            }
        }
    });
    var num = function (v) {
        return parseInt(v, 10) || 0;
    };
    var isNumber = function (value) {
        return !isNaN(parseInt(value, 10));
    };
})(jQuery);
(function ($, undefined) {
    $.widget("ui.selectable", $.ui.mouse, {
        version: "1.9.2",
        options: {
            appendTo: 'body',
            autoRefresh: true,
            distance: 0,
            filter: '*',
            tolerance: 'touch'
        },
        _create: function () {
            var that = this;
            this.element.addClass("ui-selectable");
            this.dragged = false;
            var selectees;
            this.refresh = function () {
                selectees = $(that.options.filter, that.element[0]);
                selectees.addClass("ui-selectee");
                selectees.each(function () {
                    var $this = $(this);
                    var pos = $this.offset();
                    $.data(this, "selectable-item", {
                        element: this,
                        $element: $this,
                        left: pos.left,
                        top: pos.top,
                        right: pos.left + $this.outerWidth(),
                        bottom: pos.top + $this.outerHeight(),
                        startselected: false,
                        selected: $this.hasClass('ui-selected'),
                        selecting: $this.hasClass('ui-selecting'),
                        unselecting: $this.hasClass('ui-unselecting')
                    });
                });
            };
            this.refresh();
            this.selectees = selectees.addClass("ui-selectee");
            this._mouseInit();
            this.helper = $("<div class='ui-selectable-helper'></div>");
        },
        _destroy: function () {
            this.selectees
                .removeClass("ui-selectee")
                .removeData("selectable-item");
            this.element
                .removeClass("ui-selectable ui-selectable-disabled");
            this._mouseDestroy();
        },
        _mouseStart: function (event) {
            var that = this;
            this.opos = [event.pageX, event.pageY];
            if (this.options.disabled)
                return;
            var options = this.options;
            this.selectees = $(options.filter, this.element[0]);
            this._trigger("start", event);
            $(options.appendTo).append(this.helper);
            this.helper.css({
                "left": event.clientX,
                "top": event.clientY,
                "width": 0,
                "height": 0
            });
            if (options.autoRefresh) {
                this.refresh();
            }
            this.selectees.filter('.ui-selected').each(function () {
                var selectee = $.data(this, "selectable-item");
                selectee.startselected = true;
                if (!event.metaKey && !event.ctrlKey) {
                    selectee.$element.removeClass('ui-selected');
                    selectee.selected = false;
                    selectee.$element.addClass('ui-unselecting');
                    selectee.unselecting = true;
                    that._trigger("unselecting", event, {
                        unselecting: selectee.element
                    });
                }
            });
            $(event.target).parents().addBack().each(function () {
                var selectee = $.data(this, "selectable-item");
                if (selectee) {
                    var doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected');
                    selectee.$element
                        .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
                        .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
                    selectee.unselecting = !doSelect;
                    selectee.selecting = doSelect;
                    selectee.selected = doSelect;
                    if (doSelect) {
                        that._trigger("selecting", event, {
                            selecting: selectee.element
                        });
                    }
                    else {
                        that._trigger("unselecting", event, {
                            unselecting: selectee.element
                        });
                    }
                    return false;
                }
            });
        },
        _mouseDrag: function (event) {
            var that = this;
            this.dragged = true;
            if (this.options.disabled)
                return;
            var options = this.options;
            var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
            if (x1 > x2) {
                var tmp = x2;
                x2 = x1;
                x1 = tmp;
            }
            if (y1 > y2) {
                var tmp = y2;
                y2 = y1;
                y1 = tmp;
            }
            this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });
            this.selectees.each(function () {
                var selectee = $.data(this, "selectable-item");
                if (!selectee || selectee.element == that.element[0])
                    return;
                var hit = false;
                if (options.tolerance == 'touch') {
                    hit = (!(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1));
                }
                else if (options.tolerance == 'fit') {
                    hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
                }
                if (hit) {
                    if (selectee.selected) {
                        selectee.$element.removeClass('ui-selected');
                        selectee.selected = false;
                    }
                    if (selectee.unselecting) {
                        selectee.$element.removeClass('ui-unselecting');
                        selectee.unselecting = false;
                    }
                    if (!selectee.selecting) {
                        selectee.$element.addClass('ui-selecting');
                        selectee.selecting = true;
                        that._trigger("selecting", event, {
                            selecting: selectee.element
                        });
                    }
                }
                else {
                    if (selectee.selecting) {
                        if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
                            selectee.$element.removeClass('ui-selecting');
                            selectee.selecting = false;
                            selectee.$element.addClass('ui-selected');
                            selectee.selected = true;
                        }
                        else {
                            selectee.$element.removeClass('ui-selecting');
                            selectee.selecting = false;
                            if (selectee.startselected) {
                                selectee.$element.addClass('ui-unselecting');
                                selectee.unselecting = true;
                            }
                            that._trigger("unselecting", event, {
                                unselecting: selectee.element
                            });
                        }
                    }
                    if (selectee.selected) {
                        if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
                            selectee.$element.removeClass('ui-selected');
                            selectee.selected = false;
                            selectee.$element.addClass('ui-unselecting');
                            selectee.unselecting = true;
                            that._trigger("unselecting", event, {
                                unselecting: selectee.element
                            });
                        }
                    }
                }
            });
            return false;
        },
        _mouseStop: function (event) {
            var that = this;
            this.dragged = false;
            var options = this.options;
            $('.ui-unselecting', this.element[0]).each(function () {
                var selectee = $.data(this, "selectable-item");
                selectee.$element.removeClass('ui-unselecting');
                selectee.unselecting = false;
                selectee.startselected = false;
                that._trigger("unselected", event, {
                    unselected: selectee.element
                });
            });
            $('.ui-selecting', this.element[0]).each(function () {
                var selectee = $.data(this, "selectable-item");
                selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
                selectee.selecting = false;
                selectee.selected = true;
                selectee.startselected = true;
                that._trigger("selected", event, {
                    selected: selectee.element
                });
            });
            this._trigger("stop", event);
            this.helper.remove();
            return false;
        }
    });
})(jQuery);
(function ($, undefined) {
    $.widget("ui.sortable", $.ui.mouse, {
        version: "1.9.2",
        widgetEventPrefix: "sort",
        ready: false,
        options: {
            appendTo: "parent",
            axis: false,
            connectWith: false,
            containment: false,
            cursor: 'auto',
            cursorAt: false,
            dropOnEmpty: true,
            forcePlaceholderSize: false,
            forceHelperSize: false,
            grid: false,
            handle: false,
            helper: "original",
            items: '> *',
            opacity: false,
            placeholder: false,
            revert: false,
            scroll: true,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            scope: "default",
            tolerance: "intersect",
            zIndex: 1000
        },
        _create: function () {
            var o = this.options;
            this.containerCache = {};
            this.element.addClass("ui-sortable");
            this.refresh();
            this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
            this.offset = this.element.offset();
            this._mouseInit();
            this.ready = true;
        },
        _destroy: function () {
            this.element
                .removeClass("ui-sortable ui-sortable-disabled");
            this._mouseDestroy();
            for (var i = this.items.length - 1; i >= 0; i--)
                this.items[i].item.removeData(this.widgetName + "-item");
            return this;
        },
        _setOption: function (key, value) {
            if (key === "disabled") {
                this.options[key] = value;
                this.widget().toggleClass("ui-sortable-disabled", !!value);
            }
            else {
                $.Widget.prototype._setOption.apply(this, arguments);
            }
        },
        _mouseCapture: function (event, overrideHandle) {
            var that = this;
            if (this.reverting) {
                return false;
            }
            if (this.options.disabled || this.options.type == 'static')
                return false;
            this._refreshItems(event);
            var currentItem = null, nodes = $(event.target).parents().each(function () {
                if ($.data(this, that.widgetName + '-item') == that) {
                    currentItem = $(this);
                    return false;
                }
            });
            if ($.data(event.target, that.widgetName + '-item') == that)
                currentItem = $(event.target);
            if (!currentItem)
                return false;
            if (this.options.handle && !overrideHandle) {
                var validHandle = false;
                $(this.options.handle, currentItem).find("*").addBack().each(function () { if (this == event.target)
                    validHandle = true; });
                if (!validHandle)
                    return false;
            }
            this.currentItem = currentItem;
            this._removeCurrentsFromItems();
            return true;
        },
        _mouseStart: function (event, overrideHandle, noActivation) {
            var o = this.options;
            this.currentContainer = this;
            this.refreshPositions();
            this.helper = this._createHelper(event);
            this._cacheHelperProportions();
            this._cacheMargins();
            this.scrollParent = this.helper.scrollParent();
            this.offset = this.currentItem.offset();
            this.offset = {
                top: this.offset.top - this.margins.top,
                left: this.offset.left - this.margins.left
            };
            $.extend(this.offset, {
                click: {
                    left: event.pageX - this.offset.left,
                    top: event.pageY - this.offset.top
                },
                parent: this._getParentOffset(),
                relative: this._getRelativeOffset()
            });
            this.helper.css("position", "absolute");
            this.cssPosition = this.helper.css("position");
            this.originalPosition = this._generatePosition(event);
            this.originalPageX = event.pageX;
            this.originalPageY = event.pageY;
            (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
            this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
            if (this.helper[0] != this.currentItem[0]) {
                this.currentItem.hide();
            }
            this._createPlaceholder();
            if (o.containment)
                this._setContainment();
            if (o.cursor) {
                if ($('body').css("cursor"))
                    this._storedCursor = $('body').css("cursor");
                $('body').css("cursor", o.cursor);
            }
            if (o.opacity) {
                if (this.helper.css("opacity"))
                    this._storedOpacity = this.helper.css("opacity");
                this.helper.css("opacity", o.opacity);
            }
            if (o.zIndex) {
                if (this.helper.css("zIndex"))
                    this._storedZIndex = this.helper.css("zIndex");
                this.helper.css("zIndex", o.zIndex);
            }
            if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
                this.overflowOffset = this.scrollParent.offset();
            this._trigger("start", event, this._uiHash());
            if (!this._preserveHelperProportions)
                this._cacheHelperProportions();
            if (!noActivation) {
                for (var i = this.containers.length - 1; i >= 0; i--) {
                    this.containers[i]._trigger("activate", event, this._uiHash(this));
                }
            }
            if ($.ui.ddmanager)
                $.ui.ddmanager.current = this;
            if ($.ui.ddmanager && !o.dropBehaviour)
                $.ui.ddmanager.prepareOffsets(this, event);
            this.dragging = true;
            this.helper.addClass("ui-sortable-helper");
            this._mouseDrag(event);
            return true;
        },
        _mouseDrag: function (event) {
            this.position = this._generatePosition(event);
            this.positionAbs = this._convertPositionTo("absolute");
            if (!this.lastPositionAbs) {
                this.lastPositionAbs = this.positionAbs;
            }
            if (this.options.scroll) {
                var o = this.options, scrolled = false;
                if (this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
                    if ((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
                        this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
                    else if (event.pageY - this.overflowOffset.top < o.scrollSensitivity)
                        this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
                    if ((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
                        this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
                    else if (event.pageX - this.overflowOffset.left < o.scrollSensitivity)
                        this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
                }
                else {
                    if (event.pageY - $(document).scrollTop() < o.scrollSensitivity)
                        scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
                    else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
                        scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
                    if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
                        scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
                    else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
                        scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
                }
                if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
                    $.ui.ddmanager.prepareOffsets(this, event);
            }
            this.positionAbs = this._convertPositionTo("absolute");
            if (!this.options.axis || this.options.axis != "y")
                this.helper[0].style.left = this.position.left + 'px';
            if (!this.options.axis || this.options.axis != "x")
                this.helper[0].style.top = this.position.top + 'px';
            for (var i = this.items.length - 1; i >= 0; i--) {
                var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
                if (!intersection)
                    continue;
                if (item.instance !== this.currentContainer)
                    continue;
                if (itemElement != this.currentItem[0]
                    && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement
                    && !$.contains(this.placeholder[0], itemElement)
                    && (this.options.type == 'semi-dynamic' ? !$.contains(this.element[0], itemElement) : true)) {
                    this.direction = intersection == 1 ? "down" : "up";
                    if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
                        this._rearrange(event, item);
                    }
                    else {
                        break;
                    }
                    this._trigger("change", event, this._uiHash());
                    break;
                }
            }
            this._contactContainers(event);
            if ($.ui.ddmanager)
                $.ui.ddmanager.drag(this, event);
            this._trigger('sort', event, this._uiHash());
            this.lastPositionAbs = this.positionAbs;
            return false;
        },
        _mouseStop: function (event, noPropagation) {
            if (!event)
                return;
            if ($.ui.ddmanager && !this.options.dropBehaviour)
                $.ui.ddmanager.drop(this, event);
            if (this.options.revert) {
                var that = this;
                var cur = this.placeholder.offset();
                this.reverting = true;
                $(this.helper).animate({
                    left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
                    top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
                }, parseInt(this.options.revert, 10) || 500, function () {
                    that._clear(event);
                });
            }
            else {
                this._clear(event, noPropagation);
            }
            return false;
        },
        cancel: function () {
            if (this.dragging) {
                this._mouseUp({ target: null });
                if (this.options.helper == "original")
                    this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
                else
                    this.currentItem.show();
                for (var i = this.containers.length - 1; i >= 0; i--) {
                    this.containers[i]._trigger("deactivate", null, this._uiHash(this));
                    if (this.containers[i].containerCache.over) {
                        this.containers[i]._trigger("out", null, this._uiHash(this));
                        this.containers[i].containerCache.over = 0;
                    }
                }
            }
            if (this.placeholder) {
                if (this.placeholder[0].parentNode)
                    this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
                if (this.options.helper != "original" && this.helper && this.helper[0].parentNode)
                    this.helper.remove();
                $.extend(this, {
                    helper: null,
                    dragging: false,
                    reverting: false,
                    _noFinalSort: null
                });
                if (this.domPosition.prev) {
                    $(this.domPosition.prev).after(this.currentItem);
                }
                else {
                    $(this.domPosition.parent).prepend(this.currentItem);
                }
            }
            return this;
        },
        serialize: function (o) {
            var items = this._getItemsAsjQuery(o && o.connected);
            var str = [];
            o = o || {};
            $(items).each(function () {
                var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
                if (res)
                    str.push((o.key || res[1] + '[]') + '=' + (o.key && o.expression ? res[1] : res[2]));
            });
            if (!str.length && o.key) {
                str.push(o.key + '=');
            }
            return str.join('&');
        },
        toArray: function (o) {
            var items = this._getItemsAsjQuery(o && o.connected);
            var ret = [];
            o = o || {};
            items.each(function () { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
            return ret;
        },
        _intersectsWith: function (item) {
            var x1 = this.positionAbs.left, x2 = x1 + this.helperProportions.width, y1 = this.positionAbs.top, y2 = y1 + this.helperProportions.height;
            var l = item.left, r = l + item.width, t = item.top, b = t + item.height;
            var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
            var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
            if (this.options.tolerance == "pointer"
                || this.options.forcePointerForContainers
                || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])) {
                return isOverElement;
            }
            else {
                return (l < x1 + (this.helperProportions.width / 2)
                    && x2 - (this.helperProportions.width / 2) < r
                    && t < y1 + (this.helperProportions.height / 2)
                    && y2 - (this.helperProportions.height / 2) < b);
            }
        },
        _intersectsWithPointer: function (item) {
            var isOverElementHeight = (this.options.axis === 'x') || $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), isOverElementWidth = (this.options.axis === 'y') || $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), isOverElement = isOverElementHeight && isOverElementWidth, verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection();
            if (!isOverElement)
                return false;
            return this.floating ?
                (((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1)
                : (verticalDirection && (verticalDirection == "down" ? 2 : 1));
        },
        _intersectsWithSides: function (item) {
            var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height / 2), item.height), isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width / 2), item.width), verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection();
            if (this.floating && horizontalDirection) {
                return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
            }
            else {
                return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
            }
        },
        _getDragVerticalDirection: function () {
            var delta = this.positionAbs.top - this.lastPositionAbs.top;
            return delta != 0 && (delta > 0 ? "down" : "up");
        },
        _getDragHorizontalDirection: function () {
            var delta = this.positionAbs.left - this.lastPositionAbs.left;
            return delta != 0 && (delta > 0 ? "right" : "left");
        },
        refresh: function (event) {
            this._refreshItems(event);
            this.refreshPositions();
            return this;
        },
        _connectWith: function () {
            var options = this.options;
            return options.connectWith.constructor == String
                ? [options.connectWith]
                : options.connectWith;
        },
        _getItemsAsjQuery: function (connected) {
            var items = [];
            var queries = [];
            var connectWith = this._connectWith();
            if (connectWith && connected) {
                for (var i = connectWith.length - 1; i >= 0; i--) {
                    var cur = $(connectWith[i]);
                    for (var j = cur.length - 1; j >= 0; j--) {
                        var inst = $.data(cur[j], this.widgetName);
                        if (inst && inst != this && !inst.options.disabled) {
                            queries.push([typeof inst.options.items === 'function' ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
                        }
                    }
                    ;
                }
                ;
            }
            queries.push([typeof this.options.items === 'function' ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
            for (var i = queries.length - 1; i >= 0; i--) {
                queries[i][0].each(function () {
                    items.push(this);
                });
            }
            ;
            return $(items);
        },
        _removeCurrentsFromItems: function () {
            var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
            this.items = $.grep(this.items, function (item) {
                for (var j = 0; j < list.length; j++) {
                    if (list[j] == item.item[0])
                        return false;
                }
                ;
                return true;
            });
        },
        _refreshItems: function (event) {
            this.items = [];
            this.containers = [this];
            var items = this.items;
            var queries = [[typeof this.options.items === 'function' ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
            var connectWith = this._connectWith();
            if (connectWith && this.ready) {
                for (var i = connectWith.length - 1; i >= 0; i--) {
                    var cur = $(connectWith[i]);
                    for (var j = cur.length - 1; j >= 0; j--) {
                        var inst = $.data(cur[j], this.widgetName);
                        if (inst && inst != this && !inst.options.disabled) {
                            queries.push([typeof inst.options.items === 'function' ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
                            this.containers.push(inst);
                        }
                    }
                    ;
                }
                ;
            }
            for (var i = queries.length - 1; i >= 0; i--) {
                var targetData = queries[i][1];
                var _queries = queries[i][0];
                for (var j = 0, queriesLength = _queries.length; j < queriesLength; j++) {
                    var item = $(_queries[j]);
                    item.data(this.widgetName + '-item', targetData);
                    items.push({
                        item: item,
                        instance: targetData,
                        width: 0, height: 0,
                        left: 0, top: 0
                    });
                }
                ;
            }
            ;
        },
        refreshPositions: function (fast) {
            if (this.offsetParent && this.helper) {
                this.offset.parent = this._getParentOffset();
            }
            for (var i = this.items.length - 1; i >= 0; i--) {
                var item = this.items[i];
                if (item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])
                    continue;
                var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
                if (!fast) {
                    item.width = t.outerWidth();
                    item.height = t.outerHeight();
                }
                var p = t.offset();
                item.left = p.left;
                item.top = p.top;
            }
            ;
            if (this.options.custom && this.options.custom.refreshContainers) {
                this.options.custom.refreshContainers.call(this);
            }
            else {
                for (var i = this.containers.length - 1; i >= 0; i--) {
                    var p = this.containers[i].element.offset();
                    this.containers[i].containerCache.left = p.left;
                    this.containers[i].containerCache.top = p.top;
                    this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
                    this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
                }
                ;
            }
            return this;
        },
        _createPlaceholder: function (that) {
            that = that || this;
            var o = that.options;
            if (!o.placeholder || o.placeholder.constructor == String) {
                var className = o.placeholder;
                o.placeholder = {
                    element: function () {
                        var el = $(document.createElement(that.currentItem[0].nodeName))
                            .addClass(className || that.currentItem[0].className + " ui-sortable-placeholder")
                            .removeClass("ui-sortable-helper")[0];
                        if (!className)
                            el.style.visibility = "hidden";
                        return el;
                    },
                    update: function (container, p) {
                        if (className && !o.forcePlaceholderSize)
                            return;
                        if (!p.height()) {
                            p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css('paddingTop') || 0, 10) - parseInt(that.currentItem.css('paddingBottom') || 0, 10));
                        }
                        ;
                        if (!p.width()) {
                            p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css('paddingLeft') || 0, 10) - parseInt(that.currentItem.css('paddingRight') || 0, 10));
                        }
                        ;
                    }
                };
            }
            that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));
            that.currentItem.after(that.placeholder);
            o.placeholder.update(that, that.placeholder);
        },
        _contactContainers: function (event) {
            var innermostContainer = null, innermostIndex = null;
            for (var i = this.containers.length - 1; i >= 0; i--) {
                if ($.contains(this.currentItem[0], this.containers[i].element[0]))
                    continue;
                if (this._intersectsWith(this.containers[i].containerCache)) {
                    if (innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0]))
                        continue;
                    innermostContainer = this.containers[i];
                    innermostIndex = i;
                }
                else {
                    if (this.containers[i].containerCache.over) {
                        this.containers[i]._trigger("out", event, this._uiHash(this));
                        this.containers[i].containerCache.over = 0;
                    }
                }
            }
            if (!innermostContainer)
                return;
            if (this.containers.length === 1) {
                this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
                this.containers[innermostIndex].containerCache.over = 1;
            }
            else {
                var dist = 10000;
                var itemWithLeastDistance = null;
                var posProperty = this.containers[innermostIndex].floating ? 'left' : 'top';
                var sizeProperty = this.containers[innermostIndex].floating ? 'width' : 'height';
                var base = this.positionAbs[posProperty] + this.offset.click[posProperty];
                for (var j = this.items.length - 1; j >= 0; j--) {
                    if (!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0]))
                        continue;
                    if (this.items[j].item[0] == this.currentItem[0])
                        continue;
                    var cur = this.items[j].item.offset()[posProperty];
                    var nearBottom = false;
                    if (Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)) {
                        nearBottom = true;
                        cur += this.items[j][sizeProperty];
                    }
                    if (Math.abs(cur - base) < dist) {
                        dist = Math.abs(cur - base);
                        itemWithLeastDistance = this.items[j];
                        this.direction = nearBottom ? "up" : "down";
                    }
                }
                if (!itemWithLeastDistance && !this.options.dropOnEmpty)
                    return;
                this.currentContainer = this.containers[innermostIndex];
                itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
                this._trigger("change", event, this._uiHash());
                this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
                this.options.placeholder.update(this.currentContainer, this.placeholder);
                this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
                this.containers[innermostIndex].containerCache.over = 1;
            }
        },
        _createHelper: function (event) {
            var o = this.options;
            var helper = typeof o.helper === 'function' ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
            if (!helper.parents('body').length)
                $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
            if (helper[0] == this.currentItem[0])
                this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
            if (helper[0].style.width == '' || o.forceHelperSize)
                helper.width(this.currentItem.width());
            if (helper[0].style.height == '' || o.forceHelperSize)
                helper.height(this.currentItem.height());
            return helper;
        },
        _adjustOffsetFromHelper: function (obj) {
            if (typeof obj == 'string') {
                obj = obj.split(' ');
            }
            if (Array.isArray(obj)) {
                obj = { left: +obj[0], top: +obj[1] || 0 };
            }
            if ('left' in obj) {
                this.offset.click.left = obj.left + this.margins.left;
            }
            if ('right' in obj) {
                this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
            }
            if ('top' in obj) {
                this.offset.click.top = obj.top + this.margins.top;
            }
            if ('bottom' in obj) {
                this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
            }
        },
        _getParentOffset: function () {
            this.offsetParent = this.helper.offsetParent();
            var po = this.offsetParent.offset();
            if (this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
                po.left += this.scrollParent.scrollLeft();
                po.top += this.scrollParent.scrollTop();
            }
            if ((this.offsetParent[0] == document.body)
                || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie))
                po = { top: 0, left: 0 };
            return {
                top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            };
        },
        _getRelativeOffset: function () {
            if (this.cssPosition == "relative") {
                var p = this.currentItem.position();
                return {
                    top: p.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
                    left: p.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
                };
            }
            else {
                return { top: 0, left: 0 };
            }
        },
        _cacheMargins: function () {
            this.margins = {
                left: (parseInt(this.currentItem.css("marginLeft"), 10) || 0),
                top: (parseInt(this.currentItem.css("marginTop"), 10) || 0)
            };
        },
        _cacheHelperProportions: function () {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            };
        },
        _setContainment: function () {
            var o = this.options;
            if (o.containment == 'parent')
                o.containment = this.helper[0].parentNode;
            if (o.containment == 'document' || o.containment == 'window')
                this.containment = [
                    0 - this.offset.relative.left - this.offset.parent.left,
                    0 - this.offset.relative.top - this.offset.parent.top,
                    $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
                    ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
                ];
            if (!(/^(document|window|parent)$/).test(o.containment)) {
                var ce = $(o.containment)[0];
                var co = $(o.containment).offset();
                var over = ($(ce).css("overflow") != 'hidden');
                this.containment = [
                    co.left + (parseInt($(ce).css("borderLeftWidth"), 10) || 0) + (parseInt($(ce).css("paddingLeft"), 10) || 0) - this.margins.left,
                    co.top + (parseInt($(ce).css("borderTopWidth"), 10) || 0) + (parseInt($(ce).css("paddingTop"), 10) || 0) - this.margins.top,
                    co.left + (over ? Math.max(ce.scrollWidth, ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"), 10) || 0) - (parseInt($(ce).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left,
                    co.top + (over ? Math.max(ce.scrollHeight, ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"), 10) || 0) - (parseInt($(ce).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top
                ];
            }
        },
        _convertPositionTo: function (d, pos) {
            if (!pos)
                pos = this.position;
            var mod = d == "absolute" ? 1 : -1;
            var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
            return {
                top: (pos.top
                    + this.offset.relative.top * mod
                    + this.offset.parent.top * mod
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())) * mod)),
                left: (pos.left
                    + this.offset.relative.left * mod
                    + this.offset.parent.left * mod
                    - ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft()) * mod))
            };
        },
        _generatePosition: function (event) {
            var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
            if (this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
                this.offset.relative = this._getRelativeOffset();
            }
            var pageX = event.pageX;
            var pageY = event.pageY;
            if (this.originalPosition) {
                if (this.containment) {
                    if (event.pageX - this.offset.click.left < this.containment[0])
                        pageX = this.containment[0] + this.offset.click.left;
                    if (event.pageY - this.offset.click.top < this.containment[1])
                        pageY = this.containment[1] + this.offset.click.top;
                    if (event.pageX - this.offset.click.left > this.containment[2])
                        pageX = this.containment[2] + this.offset.click.left;
                    if (event.pageY - this.offset.click.top > this.containment[3])
                        pageY = this.containment[3] + this.offset.click.top;
                }
                if (o.grid) {
                    var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
                    pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
                    var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
                    pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
                }
            }
            return {
                top: (pageY
                    - this.offset.click.top
                    - this.offset.relative.top
                    - this.offset.parent.top
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : (scrollIsRootNode ? 0 : scroll.scrollTop())))),
                left: (pageX
                    - this.offset.click.left
                    - this.offset.relative.left
                    - this.offset.parent.left
                    + ((this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft())))
            };
        },
        _rearrange: function (event, i, a, hardRefresh) {
            a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
            this.counter = this.counter ? ++this.counter : 1;
            var counter = this.counter;
            this._delay(function () {
                if (counter == this.counter)
                    this.refreshPositions(!hardRefresh);
            });
        },
        _clear: function (event, noPropagation) {
            this.reverting = false;
            var delayedTriggers = [];
            if (!this._noFinalSort && this.currentItem.parent().length)
                this.placeholder.before(this.currentItem);
            this._noFinalSort = null;
            if (this.helper[0] == this.currentItem[0]) {
                for (var i in this._storedCSS) {
                    if (this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static')
                        this._storedCSS[i] = '';
                }
                this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
            }
            else {
                this.currentItem.show();
            }
            if (this.fromOutside && !noPropagation)
                delayedTriggers.push(function (event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
            if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation)
                delayedTriggers.push(function (event) { this._trigger("update", event, this._uiHash()); });
            if (this !== this.currentContainer) {
                if (!noPropagation) {
                    delayedTriggers.push(function (event) { this._trigger("remove", event, this._uiHash()); });
                    delayedTriggers.push((function (c) { return function (event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
                    delayedTriggers.push((function (c) { return function (event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer));
                }
            }
            for (var i = this.containers.length - 1; i >= 0; i--) {
                if (!noPropagation)
                    delayedTriggers.push((function (c) { return function (event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
                if (this.containers[i].containerCache.over) {
                    delayedTriggers.push((function (c) { return function (event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i]));
                    this.containers[i].containerCache.over = 0;
                }
            }
            if (this._storedCursor)
                $('body').css("cursor", this._storedCursor);
            if (this._storedOpacity)
                this.helper.css("opacity", this._storedOpacity);
            if (this._storedZIndex)
                this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex);
            this.dragging = false;
            if (this.cancelHelperRemoval) {
                if (!noPropagation) {
                    this._trigger("beforeStop", event, this._uiHash());
                    for (var i = 0; i < delayedTriggers.length; i++) {
                        delayedTriggers[i].call(this, event);
                    }
                    ;
                    this._trigger("stop", event, this._uiHash());
                }
                this.fromOutside = false;
                return false;
            }
            if (!noPropagation)
                this._trigger("beforeStop", event, this._uiHash());
            this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
            if (this.helper[0] != this.currentItem[0])
                this.helper.remove();
            this.helper = null;
            if (!noPropagation) {
                for (var i = 0; i < delayedTriggers.length; i++) {
                    delayedTriggers[i].call(this, event);
                }
                ;
                this._trigger("stop", event, this._uiHash());
            }
            this.fromOutside = false;
            return true;
        },
        _trigger: function () {
            if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
                this.cancel();
            }
        },
        _uiHash: function (_inst) {
            var inst = _inst || this;
            return {
                helper: inst.helper,
                placeholder: inst.placeholder || $([]),
                position: inst.position,
                originalPosition: inst.originalPosition,
                offset: inst.positionAbs,
                item: inst.currentItem,
                sender: _inst ? _inst.element : null
            };
        }
    });
})(jQuery);
;
(jQuery.effects || (function ($, undefined) {
    var backCompat = $.uiBackCompat !== false, dataSpace = "ui-effects-";
    $.effects = {
        effect: {}
    };
    (function (jQuery, undefined) {
        var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "), rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, stringParsers = [{
                re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
                parse: function (execResult) {
                    return [
                        execResult[1],
                        execResult[2],
                        execResult[3],
                        execResult[4]
                    ];
                }
            }, {
                re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
                parse: function (execResult) {
                    return [
                        execResult[1] * 2.55,
                        execResult[2] * 2.55,
                        execResult[3] * 2.55,
                        execResult[4]
                    ];
                }
            }, {
                re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
                parse: function (execResult) {
                    return [
                        parseInt(execResult[1], 16),
                        parseInt(execResult[2], 16),
                        parseInt(execResult[3], 16)
                    ];
                }
            }, {
                re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
                parse: function (execResult) {
                    return [
                        parseInt(execResult[1] + execResult[1], 16),
                        parseInt(execResult[2] + execResult[2], 16),
                        parseInt(execResult[3] + execResult[3], 16)
                    ];
                }
            }, {
                re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
                space: "hsla",
                parse: function (execResult) {
                    return [
                        execResult[1],
                        execResult[2] / 100,
                        execResult[3] / 100,
                        execResult[4]
                    ];
                }
            }], color = jQuery.Color = function (color, green, blue, alpha) {
            return new jQuery.Color.fn.parse(color, green, blue, alpha);
        }, spaces = {
            rgba: {
                props: {
                    red: {
                        idx: 0,
                        type: "byte"
                    },
                    green: {
                        idx: 1,
                        type: "byte"
                    },
                    blue: {
                        idx: 2,
                        type: "byte"
                    }
                }
            },
            hsla: {
                props: {
                    hue: {
                        idx: 0,
                        type: "degrees"
                    },
                    saturation: {
                        idx: 1,
                        type: "percent"
                    },
                    lightness: {
                        idx: 2,
                        type: "percent"
                    }
                }
            }
        }, propTypes = {
            "byte": {
                floor: true,
                max: 255
            },
            "percent": {
                max: 1
            },
            "degrees": {
                mod: 360,
                floor: true
            }
        }, support = color.support = {}, supportElem = jQuery("<p>")[0], colors, each = jQuery.each;
        supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
        support.rgba = supportElem.style.backgroundColor.indexOf("rgba") > -1;
        each(spaces, function (spaceName, space) {
            space.cache = "_" + spaceName;
            space.props.alpha = {
                idx: 3,
                type: "percent",
                def: 1
            };
        });
        function clamp(value, prop, allowEmpty) {
            var type = propTypes[prop.type] || {};
            if (value == null) {
                return (allowEmpty || !prop.def) ? null : prop.def;
            }
            value = type.floor ? ~~value : parseFloat(value);
            if (isNaN(value)) {
                return prop.def;
            }
            if (type.mod) {
                return (value + type.mod) % type.mod;
            }
            return 0 > value ? 0 : type.max < value ? type.max : value;
        }
        function stringParse(string) {
            var inst = color(), rgba = inst._rgba = [];
            string = string.toLowerCase();
            each(stringParsers, function (i, parser) {
                var parsed, match = parser.re.exec(string), values = match && parser.parse(match), spaceName = parser.space || "rgba";
                if (values) {
                    parsed = inst[spaceName](values);
                    inst[spaces[spaceName].cache] = parsed[spaces[spaceName].cache];
                    rgba = inst._rgba = parsed._rgba;
                    return false;
                }
            });
            if (rgba.length) {
                if (rgba.join() === "0,0,0,0") {
                    jQuery.extend(rgba, colors.transparent);
                }
                return inst;
            }
            return colors[string];
        }
        color.fn = jQuery.extend(color.prototype, {
            parse: function (red, green, blue, alpha) {
                if (red === undefined) {
                    this._rgba = [null, null, null, null];
                    return this;
                }
                if (red.jquery || red.nodeType) {
                    red = jQuery(red).css(green);
                    green = undefined;
                }
                var inst = this, type = jQuery.type(red), rgba = this._rgba = [];
                if (green !== undefined) {
                    red = [red, green, blue, alpha];
                    type = "array";
                }
                if (type === "string") {
                    return this.parse(stringParse(red) || colors._default);
                }
                if (type === "array") {
                    each(spaces.rgba.props, function (key, prop) {
                        rgba[prop.idx] = clamp(red[prop.idx], prop);
                    });
                    return this;
                }
                if (type === "object") {
                    if (red instanceof color) {
                        each(spaces, function (spaceName, space) {
                            if (red[space.cache]) {
                                inst[space.cache] = red[space.cache].slice();
                            }
                        });
                    }
                    else {
                        each(spaces, function (spaceName, space) {
                            var cache = space.cache;
                            each(space.props, function (key, prop) {
                                if (!inst[cache] && space.to) {
                                    if (key === "alpha" || red[key] == null) {
                                        return;
                                    }
                                    inst[cache] = space.to(inst._rgba);
                                }
                                inst[cache][prop.idx] = clamp(red[key], prop, true);
                            });
                            if (inst[cache] && $.inArray(null, inst[cache].slice(0, 3)) < 0) {
                                inst[cache][3] = 1;
                                if (space.from) {
                                    inst._rgba = space.from(inst[cache]);
                                }
                            }
                        });
                    }
                    return this;
                }
            },
            is: function (compare) {
                var is = color(compare), same = true, inst = this;
                each(spaces, function (_, space) {
                    var localCache, isCache = is[space.cache];
                    if (isCache) {
                        localCache = inst[space.cache] || space.to && space.to(inst._rgba) || [];
                        each(space.props, function (_, prop) {
                            if (isCache[prop.idx] != null) {
                                same = (isCache[prop.idx] === localCache[prop.idx]);
                                return same;
                            }
                        });
                    }
                    return same;
                });
                return same;
            },
            _space: function () {
                var used = [], inst = this;
                each(spaces, function (spaceName, space) {
                    if (inst[space.cache]) {
                        used.push(spaceName);
                    }
                });
                return used.pop();
            },
            transition: function (other, distance) {
                var end = color(other), spaceName = end._space(), space = spaces[spaceName], startColor = this.alpha() === 0 ? color("transparent") : this, start = startColor[space.cache] || space.to(startColor._rgba), result = start.slice();
                end = end[space.cache];
                each(space.props, function (key, prop) {
                    var index = prop.idx, startValue = start[index], endValue = end[index], type = propTypes[prop.type] || {};
                    if (endValue === null) {
                        return;
                    }
                    if (startValue === null) {
                        result[index] = endValue;
                    }
                    else {
                        if (type.mod) {
                            if (endValue - startValue > type.mod / 2) {
                                startValue += type.mod;
                            }
                            else if (startValue - endValue > type.mod / 2) {
                                startValue -= type.mod;
                            }
                        }
                        result[index] = clamp((endValue - startValue) * distance + startValue, prop);
                    }
                });
                return this[spaceName](result);
            },
            blend: function (opaque) {
                if (this._rgba[3] === 1) {
                    return this;
                }
                var rgb = this._rgba.slice(), a = rgb.pop(), blend = color(opaque)._rgba;
                return color(jQuery.map(rgb, function (v, i) {
                    return (1 - a) * blend[i] + a * v;
                }));
            },
            toRgbaString: function () {
                var prefix = "rgba(", rgba = jQuery.map(this._rgba, function (v, i) {
                    return v == null ? (i > 2 ? 1 : 0) : v;
                });
                if (rgba[3] === 1) {
                    rgba.pop();
                    prefix = "rgb(";
                }
                return prefix + rgba.join() + ")";
            },
            toHslaString: function () {
                var prefix = "hsla(", hsla = jQuery.map(this.hsla(), function (v, i) {
                    if (v == null) {
                        v = i > 2 ? 1 : 0;
                    }
                    if (i && i < 3) {
                        v = Math.round(v * 100) + "%";
                    }
                    return v;
                });
                if (hsla[3] === 1) {
                    hsla.pop();
                    prefix = "hsl(";
                }
                return prefix + hsla.join() + ")";
            },
            toHexString: function (includeAlpha) {
                var rgba = this._rgba.slice(), alpha = rgba.pop();
                if (includeAlpha) {
                    rgba.push(~~(alpha * 255));
                }
                return "#" + jQuery.map(rgba, function (v) {
                    v = (v || 0).toString(16);
                    return v.length === 1 ? "0" + v : v;
                }).join("");
            },
            toString: function () {
                return this._rgba[3] === 0 ? "transparent" : this.toRgbaString();
            }
        });
        color.fn.parse.prototype = color.fn;
        function hue2rgb(p, q, h) {
            h = (h + 1) % 1;
            if (h * 6 < 1) {
                return p + (q - p) * h * 6;
            }
            if (h * 2 < 1) {
                return q;
            }
            if (h * 3 < 2) {
                return p + (q - p) * ((2 / 3) - h) * 6;
            }
            return p;
        }
        spaces.hsla.to = function (rgba) {
            if (rgba[0] == null || rgba[1] == null || rgba[2] == null) {
                return [null, null, null, rgba[3]];
            }
            var r = rgba[0] / 255, g = rgba[1] / 255, b = rgba[2] / 255, a = rgba[3], max = Math.max(r, g, b), min = Math.min(r, g, b), diff = max - min, add = max + min, l = add * 0.5, h, s;
            if (min === max) {
                h = 0;
            }
            else if (r === max) {
                h = (60 * (g - b) / diff) + 360;
            }
            else if (g === max) {
                h = (60 * (b - r) / diff) + 120;
            }
            else {
                h = (60 * (r - g) / diff) + 240;
            }
            if (l === 0 || l === 1) {
                s = l;
            }
            else if (l <= 0.5) {
                s = diff / add;
            }
            else {
                s = diff / (2 - add);
            }
            return [Math.round(h) % 360, s, l, a == null ? 1 : a];
        };
        spaces.hsla.from = function (hsla) {
            if (hsla[0] == null || hsla[1] == null || hsla[2] == null) {
                return [null, null, null, hsla[3]];
            }
            var h = hsla[0] / 360, s = hsla[1], l = hsla[2], a = hsla[3], q = l <= 0.5 ? l * (1 + s) : l + s - l * s, p = 2 * l - q;
            return [
                Math.round(hue2rgb(p, q, h + (1 / 3)) * 255),
                Math.round(hue2rgb(p, q, h) * 255),
                Math.round(hue2rgb(p, q, h - (1 / 3)) * 255),
                a
            ];
        };
        each(spaces, function (spaceName, space) {
            var props = space.props, cache = space.cache, to = space.to, from = space.from;
            color.fn[spaceName] = function (value) {
                if (to && !this[cache]) {
                    this[cache] = to(this._rgba);
                }
                if (value === undefined) {
                    return this[cache].slice();
                }
                var ret, type = jQuery.type(value), arr = (type === "array" || type === "object") ? value : arguments, local = this[cache].slice();
                each(props, function (key, prop) {
                    var val = arr[type === "object" ? key : prop.idx];
                    if (val == null) {
                        val = local[prop.idx];
                    }
                    local[prop.idx] = clamp(val, prop);
                });
                if (from) {
                    ret = color(from(local));
                    ret[cache] = local;
                    return ret;
                }
                else {
                    return color(local);
                }
            };
            each(props, function (key, prop) {
                if (color.fn[key]) {
                    return;
                }
                color.fn[key] = function (value) {
                    var vtype = jQuery.type(value), fn = (key === "alpha" ? (this._hsla ? "hsla" : "rgba") : spaceName), local = this[fn](), cur = local[prop.idx], match;
                    if (vtype === "undefined") {
                        return cur;
                    }
                    if (vtype === "function") {
                        value = value.call(this, cur);
                        vtype = jQuery.type(value);
                    }
                    if (value == null && prop.empty) {
                        return this;
                    }
                    if (vtype === "string") {
                        match = rplusequals.exec(value);
                        if (match) {
                            value = cur + parseFloat(match[2]) * (match[1] === "+" ? 1 : -1);
                        }
                    }
                    local[prop.idx] = value;
                    return this[fn](local);
                };
            });
        });
        each(stepHooks, function (i, hook) {
            jQuery.cssHooks[hook] = {
                set: function (elem, value) {
                    var parsed, curElem, backgroundColor = "";
                    if (jQuery.type(value) !== "string" || (parsed = stringParse(value))) {
                        value = color(parsed || value);
                        if (!support.rgba && value._rgba[3] !== 1) {
                            curElem = hook === "backgroundColor" ? elem.parentNode : elem;
                            while ((backgroundColor === "" || backgroundColor === "transparent") &&
                                curElem && curElem.style) {
                                try {
                                    backgroundColor = jQuery.css(curElem, "backgroundColor");
                                    curElem = curElem.parentNode;
                                }
                                catch (e) {
                                }
                            }
                            value = value.blend(backgroundColor && backgroundColor !== "transparent" ?
                                backgroundColor :
                                "_default");
                        }
                        value = value.toRgbaString();
                    }
                    try {
                        elem.style[hook] = value;
                    }
                    catch (error) {
                    }
                }
            };
            jQuery.fx.step[hook] = function (fx) {
                if (!fx.colorInit) {
                    fx.start = color(fx.elem, hook);
                    fx.end = color(fx.end);
                    fx.colorInit = true;
                }
                jQuery.cssHooks[hook].set(fx.elem, fx.start.transition(fx.end, fx.pos));
            };
        });
        jQuery.cssHooks.borderColor = {
            expand: function (value) {
                var expanded = {};
                each(["Top", "Right", "Bottom", "Left"], function (i, part) {
                    expanded["border" + part + "Color"] = value;
                });
                return expanded;
            }
        };
        colors = jQuery.Color.names = {
            aqua: "#00ffff",
            black: "#000000",
            blue: "#0000ff",
            fuchsia: "#ff00ff",
            gray: "#808080",
            green: "#008000",
            lime: "#00ff00",
            maroon: "#800000",
            navy: "#000080",
            olive: "#808000",
            purple: "#800080",
            red: "#ff0000",
            silver: "#c0c0c0",
            teal: "#008080",
            white: "#ffffff",
            yellow: "#ffff00",
            transparent: [null, null, null, 0],
            _default: "#ffffff"
        };
    })(jQuery);
    (function () {
        var classAnimationActions = ["add", "remove", "toggle"], shorthandStyles = {
            border: 1,
            borderBottom: 1,
            borderColor: 1,
            borderLeft: 1,
            borderRight: 1,
            borderTop: 1,
            borderWidth: 1,
            margin: 1,
            padding: 1
        };
        $.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function (_, prop) {
            $.fx.step[prop] = function (fx) {
                if (fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr) {
                    jQuery.style(fx.elem, prop, fx.end);
                    fx.setAttr = true;
                }
            };
        });
        function getElementStyles() {
            var style = this.ownerDocument.defaultView ?
                this.ownerDocument.defaultView.getComputedStyle(this, null) :
                this.currentStyle, newStyle = {}, key, len;
            if (style && style.length && style[0] && style[style[0]]) {
                len = style.length;
                while (len--) {
                    key = style[len];
                    if (typeof style[key] === "string") {
                        newStyle[$.camelCase(key)] = style[key];
                    }
                }
            }
            else {
                for (key in style) {
                    if (typeof style[key] === "string") {
                        newStyle[key] = style[key];
                    }
                }
            }
            return newStyle;
        }
        function styleDifference(oldStyle, newStyle) {
            var diff = {}, name, value;
            for (name in newStyle) {
                value = newStyle[name];
                if (oldStyle[name] !== value) {
                    if (!shorthandStyles[name]) {
                        if ($.fx.step[name] || !isNaN(parseFloat(value))) {
                            diff[name] = value;
                        }
                    }
                }
            }
            return diff;
        }
        $.effects.animateClass = function (value, duration, easing, callback) {
            var o = $.speed(duration, easing, callback);
            return this.queue(function () {
                var animated = $(this), baseClass = animated.attr("class") || "", applyClassChange, allAnimations = o.children ? animated.find("*").addBack() : animated;
                allAnimations = allAnimations.map(function () {
                    var el = $(this);
                    return {
                        el: el,
                        start: getElementStyles.call(this)
                    };
                });
                applyClassChange = function () {
                    $.each(classAnimationActions, function (i, action) {
                        if (value[action]) {
                            animated[action + "Class"](value[action]);
                        }
                    });
                };
                applyClassChange();
                allAnimations = allAnimations.map(function () {
                    this.end = getElementStyles.call(this.el[0]);
                    this.diff = styleDifference(this.start, this.end);
                    return this;
                });
                animated.attr("class", baseClass);
                allAnimations = allAnimations.map(function () {
                    var styleInfo = this, dfd = $.Deferred(), opts = jQuery.extend({}, o, {
                        queue: false,
                        complete: function () {
                            dfd.resolve(styleInfo);
                        }
                    });
                    this.el.animate(this.diff, opts);
                    return dfd.promise();
                });
                $.when.apply($, allAnimations.get()).done(function () {
                    applyClassChange();
                    $.each(arguments, function () {
                        var el = this.el;
                        $.each(this.diff, function (key) {
                            el.css(key, '');
                        });
                    });
                    o.complete.call(animated[0]);
                });
            });
        };
        $.fn.extend({
            _addClass: $.fn.addClass,
            addClass: function (classNames, speed, easing, callback) {
                return speed ?
                    $.effects.animateClass.call(this, { add: classNames }, speed, easing, callback) :
                    this._addClass(classNames);
            },
            _removeClass: $.fn.removeClass,
            removeClass: function (classNames, speed, easing, callback) {
                return speed ?
                    $.effects.animateClass.call(this, { remove: classNames }, speed, easing, callback) :
                    this._removeClass(classNames);
            },
            _toggleClass: $.fn.toggleClass,
            toggleClass: function (classNames, force, speed, easing, callback) {
                if (typeof force === "boolean" || force === undefined) {
                    if (!speed) {
                        return this._toggleClass(classNames, force);
                    }
                    else {
                        return $.effects.animateClass.call(this, (force ? { add: classNames } : { remove: classNames }), speed, easing, callback);
                    }
                }
                else {
                    return $.effects.animateClass.call(this, { toggle: classNames }, force, speed, easing);
                }
            },
            switchClass: function (remove, add, speed, easing, callback) {
                return $.effects.animateClass.call(this, {
                    add: add,
                    remove: remove
                }, speed, easing, callback);
            }
        });
    })();
    (function () {
        $.extend($.effects, {
            version: "1.9.2",
            save: function (element, set) {
                for (var i = 0; i < set.length; i++) {
                    if (set[i] !== null) {
                        element.data(dataSpace + set[i], element[0].style[set[i]]);
                    }
                }
            },
            restore: function (element, set) {
                var val, i;
                for (i = 0; i < set.length; i++) {
                    if (set[i] !== null) {
                        val = element.data(dataSpace + set[i]);
                        if (val === undefined) {
                            val = "";
                        }
                        element.css(set[i], val);
                    }
                }
            },
            setMode: function (el, mode) {
                if (mode === "toggle") {
                    mode = el.is(":hidden") ? "show" : "hide";
                }
                return mode;
            },
            getBaseline: function (origin, original) {
                var y, x;
                switch (origin[0]) {
                    case "top":
                        y = 0;
                        break;
                    case "middle":
                        y = 0.5;
                        break;
                    case "bottom":
                        y = 1;
                        break;
                    default: y = origin[0] / original.height;
                }
                switch (origin[1]) {
                    case "left":
                        x = 0;
                        break;
                    case "center":
                        x = 0.5;
                        break;
                    case "right":
                        x = 1;
                        break;
                    default: x = origin[1] / original.width;
                }
                return {
                    x: x,
                    y: y
                };
            },
            createWrapper: function (element) {
                if (element.parent().is(".ui-effects-wrapper")) {
                    return element.parent();
                }
                var props = {
                    width: element.outerWidth(true),
                    height: element.outerHeight(true),
                    "float": element.css("float")
                }, wrapper = $("<div></div>")
                    .addClass("ui-effects-wrapper")
                    .css({
                    fontSize: "100%",
                    background: "transparent",
                    border: "none",
                    margin: 0,
                    padding: 0
                }), size = {
                    width: element.width(),
                    height: element.height()
                }, active = document.activeElement;
                try {
                    active.id;
                }
                catch (e) {
                    active = document.body;
                }
                element.wrap(wrapper);
                if (element[0] === active || $.contains(element[0], active)) {
                    $(active).focus();
                }
                wrapper = element.parent();
                if (element.css("position") === "static") {
                    wrapper.css({ position: "relative" });
                    element.css({ position: "relative" });
                }
                else {
                    $.extend(props, {
                        position: element.css("position"),
                        zIndex: element.css("z-index")
                    });
                    $.each(["top", "left", "bottom", "right"], function (i, pos) {
                        props[pos] = element.css(pos);
                        if (isNaN(parseInt(props[pos], 10))) {
                            props[pos] = "auto";
                        }
                    });
                    element.css({
                        position: "relative",
                        top: 0,
                        left: 0,
                        right: "auto",
                        bottom: "auto"
                    });
                }
                element.css(size);
                return wrapper.css(props).show();
            },
            removeWrapper: function (element) {
                var active = document.activeElement;
                if (element.parent().is(".ui-effects-wrapper")) {
                    element.parent().replaceWith(element);
                    if (element[0] === active || $.contains(element[0], active)) {
                        $(active).focus();
                    }
                }
                return element;
            },
            setTransition: function (element, list, factor, value) {
                value = value || {};
                $.each(list, function (i, x) {
                    var unit = element.cssUnit(x);
                    if (unit[0] > 0) {
                        value[x] = unit[0] * factor + unit[1];
                    }
                });
                return value;
            }
        });
        function _normalizeArguments(effect, options, speed, callback) {
            if ($.isPlainObject(effect)) {
                options = effect;
                effect = effect.effect;
            }
            effect = { effect: effect };
            if (options == null) {
                options = {};
            }
            if (typeof options === 'function') {
                callback = options;
                speed = null;
                options = {};
            }
            if (typeof options === "number" || $.fx.speeds[options]) {
                callback = speed;
                speed = options;
                options = {};
            }
            if (typeof speed === 'function') {
                callback = speed;
                speed = null;
            }
            if (options) {
                $.extend(effect, options);
            }
            speed = speed || options.duration;
            effect.duration = $.fx.off ? 0 :
                typeof speed === "number" ? speed :
                    speed in $.fx.speeds ? $.fx.speeds[speed] :
                        $.fx.speeds._default;
            effect.complete = callback || options.complete;
            return effect;
        }
        function standardSpeed(speed) {
            if (!speed || typeof speed === "number" || $.fx.speeds[speed]) {
                return true;
            }
            if (typeof speed === "string" && !$.effects.effect[speed]) {
                if (backCompat && $.effects[speed]) {
                    return false;
                }
                return true;
            }
            return false;
        }
        $.fn.extend({
            effect: function () {
                var args = _normalizeArguments.apply(this, arguments), mode = args.mode, queue = args.queue, effectMethod = $.effects.effect[args.effect], oldEffectMethod = !effectMethod && backCompat && $.effects[args.effect];
                if ($.fx.off || !(effectMethod || oldEffectMethod)) {
                    if (mode) {
                        return this[mode](args.duration, args.complete);
                    }
                    else {
                        return this.each(function () {
                            if (args.complete) {
                                args.complete.call(this);
                            }
                        });
                    }
                }
                function run(next) {
                    var elem = $(this), complete = args.complete, mode = args.mode;
                    function done() {
                        if (typeof complete === 'function') {
                            complete.call(elem[0]);
                        }
                        if (typeof next === 'function') {
                            next();
                        }
                    }
                    if (elem.is(":hidden") ? mode === "hide" : mode === "show") {
                        done();
                    }
                    else {
                        effectMethod.call(elem[0], args, done);
                    }
                }
                if (effectMethod) {
                    return queue === false ? this.each(run) : this.queue(queue || "fx", run);
                }
                else {
                    return oldEffectMethod.call(this, {
                        options: args,
                        duration: args.duration,
                        callback: args.complete,
                        mode: args.mode
                    });
                }
            },
            _show: $.fn.show,
            show: function (speed) {
                if (standardSpeed(speed)) {
                    return this._show.apply(this, arguments);
                }
                else {
                    var args = _normalizeArguments.apply(this, arguments);
                    args.mode = "show";
                    return this.effect.call(this, args);
                }
            },
            _hide: $.fn.hide,
            hide: function (speed) {
                if (standardSpeed(speed)) {
                    return this._hide.apply(this, arguments);
                }
                else {
                    var args = _normalizeArguments.apply(this, arguments);
                    args.mode = "hide";
                    return this.effect.call(this, args);
                }
            },
            __toggle: $.fn.toggle,
            toggle: function (speed) {
                if (standardSpeed(speed) || typeof speed === "boolean" || typeof speed === 'function') {
                    return this.__toggle.apply(this, arguments);
                }
                else {
                    var args = _normalizeArguments.apply(this, arguments);
                    args.mode = "toggle";
                    return this.effect.call(this, args);
                }
            },
            cssUnit: function (key) {
                var style = this.css(key), val = [];
                $.each(["em", "px", "%", "pt"], function (i, unit) {
                    if (style.indexOf(unit) > 0) {
                        val = [parseFloat(style), unit];
                    }
                });
                return val;
            }
        });
    })();
    (function () {
        var baseEasings = {};
        $.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (i, name) {
            baseEasings[name] = function (p) {
                return Math.pow(p, i + 2);
            };
        });
        $.extend(baseEasings, {
            Sine: function (p) {
                return 1 - Math.cos(p * Math.PI / 2);
            },
            Circ: function (p) {
                return 1 - Math.sqrt(1 - p * p);
            },
            Elastic: function (p) {
                return p === 0 || p === 1 ? p :
                    -Math.pow(2, 8 * (p - 1)) * Math.sin(((p - 1) * 80 - 7.5) * Math.PI / 15);
            },
            Back: function (p) {
                return p * p * (3 * p - 2);
            },
            Bounce: function (p) {
                var pow2, bounce = 4;
                while (p < ((pow2 = Math.pow(2, --bounce)) - 1) / 11) { }
                return 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - p, 2);
            }
        });
        $.each(baseEasings, function (name, easeIn) {
            $.easing["easeIn" + name] = easeIn;
            $.easing["easeOut" + name] = function (p) {
                return 1 - easeIn(1 - p);
            };
            $.easing["easeInOut" + name] = function (p) {
                return p < 0.5 ?
                    easeIn(p * 2) / 2 :
                    1 - easeIn(p * -2 + 2) / 2;
            };
        });
    })();
})(jQuery));
(function ($, undefined) {
    var uid = 0, hideProps = {}, showProps = {};
    hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =
        hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
    showProps.height = showProps.paddingTop = showProps.paddingBottom =
        showProps.borderTopWidth = showProps.borderBottomWidth = "show";
    $.widget("ui.accordion", {
        version: "1.9.2",
        options: {
            active: 0,
            animate: {},
            collapsible: false,
            event: "click",
            header: "> li > :first-child,> :not(li):even",
            heightStyle: "auto",
            icons: {
                activeHeader: "ui-icon-triangle-1-s",
                header: "ui-icon-triangle-1-e"
            },
            activate: null,
            beforeActivate: null
        },
        _create: function () {
            var accordionId = this.accordionId = "ui-accordion-" +
                (this.element.attr("id") || ++uid), options = this.options;
            this.prevShow = this.prevHide = $();
            this.element.addClass("ui-accordion ui-widget ui-helper-reset");
            this.headers = this.element.find(options.header)
                .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");
            this._hoverable(this.headers);
            this._focusable(this.headers);
            this.headers.next()
                .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom")
                .hide();
            if (!options.collapsible && (options.active === false || options.active == null)) {
                options.active = 0;
            }
            if (options.active < 0) {
                options.active += this.headers.length;
            }
            this.active = this._findActive(options.active)
                .addClass("ui-accordion-header-active ui-state-active")
                .toggleClass("ui-corner-all ui-corner-top");
            this.active.next()
                .addClass("ui-accordion-content-active")
                .show();
            this._createIcons();
            this.refresh();
            this.element.attr("role", "tablist");
            this.headers
                .attr("role", "tab")
                .each(function (i) {
                var header = $(this), headerId = header.attr("id"), panel = header.next(), panelId = panel.attr("id");
                if (!headerId) {
                    headerId = accordionId + "-header-" + i;
                    header.attr("id", headerId);
                }
                if (!panelId) {
                    panelId = accordionId + "-panel-" + i;
                    panel.attr("id", panelId);
                }
                header.attr("aria-controls", panelId);
                panel.attr("aria-labelledby", headerId);
            })
                .next()
                .attr("role", "tabpanel");
            this.headers
                .not(this.active)
                .attr({
                "aria-selected": "false",
                tabIndex: -1
            })
                .next()
                .attr({
                "aria-expanded": "false",
                "aria-hidden": "true"
            })
                .hide();
            if (!this.active.length) {
                this.headers.eq(0).attr("tabIndex", 0);
            }
            else {
                this.active.attr({
                    "aria-selected": "true",
                    tabIndex: 0
                })
                    .next()
                    .attr({
                    "aria-expanded": "true",
                    "aria-hidden": "false"
                });
            }
            this._on(this.headers, { keydown: "_keydown" });
            this._on(this.headers.next(), { keydown: "_panelKeyDown" });
            this._setupEvents(options.event);
        },
        _getCreateEventData: function () {
            return {
                header: this.active,
                content: !this.active.length ? $() : this.active.next()
            };
        },
        _createIcons: function () {
            var icons = this.options.icons;
            if (icons) {
                $("<span>")
                    .addClass("ui-accordion-header-icon ui-icon " + icons.header)
                    .prependTo(this.headers);
                this.active.children(".ui-accordion-header-icon")
                    .removeClass(icons.header)
                    .addClass(icons.activeHeader);
                this.headers.addClass("ui-accordion-icons");
            }
        },
        _destroyIcons: function () {
            this.headers
                .removeClass("ui-accordion-icons")
                .children(".ui-accordion-header-icon")
                .remove();
        },
        _destroy: function () {
            var contents;
            this.element
                .removeClass("ui-accordion ui-widget ui-helper-reset")
                .removeAttr("role");
            this.headers
                .removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top")
                .removeAttr("role")
                .removeAttr("aria-selected")
                .removeAttr("aria-controls")
                .removeAttr("tabIndex")
                .each(function () {
                if (/^ui-accordion/.test(this.id)) {
                    this.removeAttribute("id");
                }
            });
            this._destroyIcons();
            contents = this.headers.next()
                .css("display", "")
                .removeAttr("role")
                .removeAttr("aria-expanded")
                .removeAttr("aria-hidden")
                .removeAttr("aria-labelledby")
                .removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled")
                .each(function () {
                if (/^ui-accordion/.test(this.id)) {
                    this.removeAttribute("id");
                }
            });
            if (this.options.heightStyle !== "content") {
                contents.css("height", "");
            }
        },
        _setOption: function (key, value) {
            if (key === "active") {
                this._activate(value);
                return;
            }
            if (key === "event") {
                if (this.options.event) {
                    this._off(this.headers, this.options.event);
                }
                this._setupEvents(value);
            }
            this._super(key, value);
            if (key === "collapsible" && !value && this.options.active === false) {
                this._activate(0);
            }
            if (key === "icons") {
                this._destroyIcons();
                if (value) {
                    this._createIcons();
                }
            }
            if (key === "disabled") {
                this.headers.add(this.headers.next())
                    .toggleClass("ui-state-disabled", !!value);
            }
        },
        _keydown: function (event) {
            if (event.altKey || event.ctrlKey) {
                return;
            }
            var keyCode = $.ui.keyCode, length = this.headers.length, currentIndex = this.headers.index(event.target), toFocus = false;
            switch (event.keyCode) {
                case keyCode.RIGHT:
                case keyCode.DOWN:
                    toFocus = this.headers[(currentIndex + 1) % length];
                    break;
                case keyCode.LEFT:
                case keyCode.UP:
                    toFocus = this.headers[(currentIndex - 1 + length) % length];
                    break;
                case keyCode.SPACE:
                case keyCode.ENTER:
                    this._eventHandler(event);
                    break;
                case keyCode.HOME:
                    toFocus = this.headers[0];
                    break;
                case keyCode.END:
                    toFocus = this.headers[length - 1];
                    break;
            }
            if (toFocus) {
                $(event.target).attr("tabIndex", -1);
                $(toFocus).attr("tabIndex", 0);
                toFocus.focus();
                event.preventDefault();
            }
        },
        _panelKeyDown: function (event) {
            if (event.keyCode === $.ui.keyCode.UP && event.ctrlKey) {
                $(event.currentTarget).prev().focus();
            }
        },
        refresh: function () {
            var maxHeight, overflow, heightStyle = this.options.heightStyle, parent = this.element.parent();
            if (heightStyle === "fill") {
                if (!$.support.minHeight) {
                    overflow = parent.css("overflow");
                    parent.css("overflow", "hidden");
                }
                maxHeight = parent.height();
                this.element.siblings(":visible").each(function () {
                    var elem = $(this), position = elem.css("position");
                    if (position === "absolute" || position === "fixed") {
                        return;
                    }
                    maxHeight -= elem.outerHeight(true);
                });
                if (overflow) {
                    parent.css("overflow", overflow);
                }
                this.headers.each(function () {
                    maxHeight -= $(this).outerHeight(true);
                });
                this.headers.next()
                    .each(function () {
                    $(this).height(Math.max(0, maxHeight -
                        $(this).innerHeight() + $(this).height()));
                })
                    .css("overflow", "auto");
            }
            else if (heightStyle === "auto") {
                maxHeight = 0;
                this.headers.next()
                    .each(function () {
                    maxHeight = Math.max(maxHeight, $(this).css("height", "").height());
                })
                    .height(maxHeight);
            }
        },
        _activate: function (index) {
            var active = this._findActive(index)[0];
            if (active === this.active[0]) {
                return;
            }
            active = active || this.active[0];
            this._eventHandler({
                target: active,
                currentTarget: active,
                preventDefault: $.noop
            });
        },
        _findActive: function (selector) {
            return typeof selector === "number" ? this.headers.eq(selector) : $();
        },
        _setupEvents: function (event) {
            var events = {};
            if (!event) {
                return;
            }
            $.each(event.split(" "), function (index, eventName) {
                events[eventName] = "_eventHandler";
            });
            this._on(this.headers, events);
        },
        _eventHandler: function (event) {
            var options = this.options, active = this.active, clicked = $(event.currentTarget), clickedIsActive = clicked[0] === active[0], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : clicked.next(), toHide = active.next(), eventData = {
                oldHeader: active,
                oldPanel: toHide,
                newHeader: collapsing ? $() : clicked,
                newPanel: toShow
            };
            event.preventDefault();
            if ((clickedIsActive && !options.collapsible) ||
                (this._trigger("beforeActivate", event, eventData) === false)) {
                return;
            }
            options.active = collapsing ? false : this.headers.index(clicked);
            this.active = clickedIsActive ? $() : clicked;
            this._toggle(eventData);
            active.removeClass("ui-accordion-header-active ui-state-active");
            if (options.icons) {
                active.children(".ui-accordion-header-icon")
                    .removeClass(options.icons.activeHeader)
                    .addClass(options.icons.header);
            }
            if (!clickedIsActive) {
                clicked
                    .removeClass("ui-corner-all")
                    .addClass("ui-accordion-header-active ui-state-active ui-corner-top");
                if (options.icons) {
                    clicked.children(".ui-accordion-header-icon")
                        .removeClass(options.icons.header)
                        .addClass(options.icons.activeHeader);
                }
                clicked
                    .next()
                    .addClass("ui-accordion-content-active");
            }
        },
        _toggle: function (data) {
            var toShow = data.newPanel, toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
            this.prevShow.add(this.prevHide).stop(true, true);
            this.prevShow = toShow;
            this.prevHide = toHide;
            if (this.options.animate) {
                this._animate(toShow, toHide, data);
            }
            else {
                toHide.hide();
                toShow.show();
                this._toggleComplete(data);
            }
            toHide.attr({
                "aria-expanded": "false",
                "aria-hidden": "true"
            });
            toHide.prev().attr("aria-selected", "false");
            if (toShow.length && toHide.length) {
                toHide.prev().attr("tabIndex", -1);
            }
            else if (toShow.length) {
                this.headers.filter(function () {
                    return $(this).attr("tabIndex") === 0;
                })
                    .attr("tabIndex", -1);
            }
            toShow
                .attr({
                "aria-expanded": "true",
                "aria-hidden": "false"
            })
                .prev()
                .attr({
                "aria-selected": "true",
                tabIndex: 0
            });
        },
        _animate: function (toShow, toHide, data) {
            var total, easing, duration, that = this, adjust = 0, down = toShow.length &&
                (!toHide.length || (toShow.index() < toHide.index())), animate = this.options.animate || {}, options = down && animate.down || animate, complete = function () {
                that._toggleComplete(data);
            };
            if (typeof options === "number") {
                duration = options;
            }
            if (typeof options === "string") {
                easing = options;
            }
            easing = easing || options.easing || animate.easing;
            duration = duration || options.duration || animate.duration;
            if (!toHide.length) {
                return toShow.animate(showProps, duration, easing, complete);
            }
            if (!toShow.length) {
                return toHide.animate(hideProps, duration, easing, complete);
            }
            total = toShow.show().outerHeight();
            toHide.animate(hideProps, {
                duration: duration,
                easing: easing,
                step: function (now, fx) {
                    fx.now = Math.round(now);
                }
            });
            toShow
                .hide()
                .animate(showProps, {
                duration: duration,
                easing: easing,
                complete: complete,
                step: function (now, fx) {
                    fx.now = Math.round(now);
                    if (fx.prop !== "height") {
                        adjust += fx.now;
                    }
                    else if (that.options.heightStyle !== "content") {
                        fx.now = Math.round(total - toHide.outerHeight() - adjust);
                        adjust = 0;
                    }
                }
            });
        },
        _toggleComplete: function (data) {
            var toHide = data.oldPanel;
            toHide
                .removeClass("ui-accordion-content-active")
                .prev()
                .removeClass("ui-corner-top")
                .addClass("ui-corner-all");
            if (toHide.length) {
                toHide.parent()[0].className = toHide.parent()[0].className;
            }
            this._trigger("activate", null, data);
        }
    });
    if ($.uiBackCompat !== false) {
        (function ($, prototype) {
            $.extend(prototype.options, {
                navigation: false,
                navigationFilter: function () {
                    return this.href.toLowerCase() === location.href.toLowerCase();
                }
            });
            var _create = prototype._create;
            prototype._create = function () {
                if (this.options.navigation) {
                    var that = this, headers = this.element.find(this.options.header), content = headers.next(), current = headers.add(content)
                        .find("a")
                        .filter(this.options.navigationFilter)[0];
                    if (current) {
                        headers.add(content).each(function (index) {
                            if ($.contains(this, current)) {
                                that.options.active = Math.floor(index / 2);
                                return false;
                            }
                        });
                    }
                }
                _create.call(this);
            };
        }(jQuery, jQuery.ui.accordion.prototype));
        (function ($, prototype) {
            $.extend(prototype.options, {
                heightStyle: null,
                autoHeight: true,
                clearStyle: false,
                fillSpace: false
            });
            var _create = prototype._create, _setOption = prototype._setOption;
            $.extend(prototype, {
                _create: function () {
                    this.options.heightStyle = this.options.heightStyle ||
                        this._mergeHeightStyle();
                    _create.call(this);
                },
                _setOption: function (key) {
                    if (key === "autoHeight" || key === "clearStyle" || key === "fillSpace") {
                        this.options.heightStyle = this._mergeHeightStyle();
                    }
                    _setOption.apply(this, arguments);
                },
                _mergeHeightStyle: function () {
                    var options = this.options;
                    if (options.fillSpace) {
                        return "fill";
                    }
                    if (options.clearStyle) {
                        return "content";
                    }
                    if (options.autoHeight) {
                        return "auto";
                    }
                }
            });
        }(jQuery, jQuery.ui.accordion.prototype));
        (function ($, prototype) {
            $.extend(prototype.options.icons, {
                activeHeader: null,
                headerSelected: "ui-icon-triangle-1-s"
            });
            var _createIcons = prototype._createIcons;
            prototype._createIcons = function () {
                if (this.options.icons) {
                    this.options.icons.activeHeader = this.options.icons.activeHeader ||
                        this.options.icons.headerSelected;
                }
                _createIcons.call(this);
            };
        }(jQuery, jQuery.ui.accordion.prototype));
        (function ($, prototype) {
            prototype.activate = prototype._activate;
            var _findActive = prototype._findActive;
            prototype._findActive = function (index) {
                if (index === -1) {
                    index = false;
                }
                if (index && typeof index !== "number") {
                    index = this.headers.index(this.headers.filter(index));
                    if (index === -1) {
                        index = false;
                    }
                }
                return _findActive.call(this, index);
            };
        }(jQuery, jQuery.ui.accordion.prototype));
        jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh;
        (function ($, prototype) {
            $.extend(prototype.options, {
                change: null,
                changestart: null
            });
            var _trigger = prototype._trigger;
            prototype._trigger = function (type, event, data) {
                var ret = _trigger.apply(this, arguments);
                if (!ret) {
                    return false;
                }
                if (type === "beforeActivate") {
                    ret = _trigger.call(this, "changestart", event, {
                        oldHeader: data.oldHeader,
                        oldContent: data.oldPanel,
                        newHeader: data.newHeader,
                        newContent: data.newPanel
                    });
                }
                else if (type === "activate") {
                    ret = _trigger.call(this, "change", event, {
                        oldHeader: data.oldHeader,
                        oldContent: data.oldPanel,
                        newHeader: data.newHeader,
                        newContent: data.newPanel
                    });
                }
                return ret;
            };
        }(jQuery, jQuery.ui.accordion.prototype));
        (function ($, prototype) {
            $.extend(prototype.options, {
                animate: null,
                animated: "slide"
            });
            var _create = prototype._create;
            prototype._create = function () {
                var options = this.options;
                if (options.animate === null) {
                    if (!options.animated) {
                        options.animate = false;
                    }
                    else if (options.animated === "slide") {
                        options.animate = 300;
                    }
                    else if (options.animated === "bounceslide") {
                        options.animate = {
                            duration: 200,
                            down: {
                                easing: "easeOutBounce",
                                duration: 1000
                            }
                        };
                    }
                    else {
                        options.animate = options.animated;
                    }
                }
                _create.call(this);
            };
        }(jQuery, jQuery.ui.accordion.prototype));
    }
})(jQuery);
(function ($, undefined) {
    var requestIndex = 0;
    $.widget("ui.autocomplete", {
        version: "1.9.2",
        defaultElement: "<input>",
        options: {
            appendTo: "body",
            autoFocus: false,
            delay: 300,
            minLength: 1,
            position: {
                my: "left top",
                at: "left bottom",
                collision: "none"
            },
            source: null,
            change: null,
            close: null,
            focus: null,
            open: null,
            response: null,
            search: null,
            select: null
        },
        pending: 0,
        _create: function () {
            var suppressKeyPress, suppressKeyPressRepeat, suppressInput;
            this.isMultiLine = this._isMultiLine();
            this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"];
            this.isNewMenu = true;
            this.element
                .addClass("ui-autocomplete-input")
                .attr("autocomplete", "off");
            this._on(this.element, {
                keydown: function (event) {
                    if (this.element.prop("readOnly")) {
                        suppressKeyPress = true;
                        suppressInput = true;
                        suppressKeyPressRepeat = true;
                        return;
                    }
                    suppressKeyPress = false;
                    suppressInput = false;
                    suppressKeyPressRepeat = false;
                    var keyCode = $.ui.keyCode;
                    switch (event.keyCode) {
                        case keyCode.PAGE_UP:
                            suppressKeyPress = true;
                            this._move("previousPage", event);
                            break;
                        case keyCode.PAGE_DOWN:
                            suppressKeyPress = true;
                            this._move("nextPage", event);
                            break;
                        case keyCode.UP:
                            suppressKeyPress = true;
                            this._keyEvent("previous", event);
                            break;
                        case keyCode.DOWN:
                            suppressKeyPress = true;
                            this._keyEvent("next", event);
                            break;
                        case keyCode.ENTER:
                        case keyCode.NUMPAD_ENTER:
                            if (this.menu.active) {
                                suppressKeyPress = true;
                                event.preventDefault();
                                this.menu.select(event);
                            }
                            break;
                        case keyCode.TAB:
                            if (this.menu.active) {
                                this.menu.select(event);
                            }
                            break;
                        case keyCode.ESCAPE:
                            if (this.menu.element.is(":visible")) {
                                this._value(this.term);
                                this.close(event);
                                event.preventDefault();
                            }
                            break;
                        default:
                            suppressKeyPressRepeat = true;
                            this._searchTimeout(event);
                            break;
                    }
                },
                keypress: function (event) {
                    if (suppressKeyPress) {
                        suppressKeyPress = false;
                        event.preventDefault();
                        return;
                    }
                    if (suppressKeyPressRepeat) {
                        return;
                    }
                    var keyCode = $.ui.keyCode;
                    switch (event.keyCode) {
                        case keyCode.PAGE_UP:
                            this._move("previousPage", event);
                            break;
                        case keyCode.PAGE_DOWN:
                            this._move("nextPage", event);
                            break;
                        case keyCode.UP:
                            this._keyEvent("previous", event);
                            break;
                        case keyCode.DOWN:
                            this._keyEvent("next", event);
                            break;
                    }
                },
                input: function (event) {
                    if (suppressInput) {
                        suppressInput = false;
                        event.preventDefault();
                        return;
                    }
                    this._searchTimeout(event);
                },
                focus: function () {
                    this.selectedItem = null;
                    this.previous = this._value();
                },
                blur: function (event) {
                    if (this.cancelBlur) {
                        delete this.cancelBlur;
                        return;
                    }
                    clearTimeout(this.searching);
                    this.close(event);
                    this._change(event);
                }
            });
            this._initSource();
            this.menu = $("<ul>")
                .addClass("ui-autocomplete")
                .appendTo(this.document.find(this.options.appendTo || "body")[0])
                .menu({
                input: $(),
                role: null
            })
                .zIndex(this.element.zIndex() + 1)
                .hide()
                .data("menu");
            this._on(this.menu.element, {
                mousedown: function (event) {
                    event.preventDefault();
                    this.cancelBlur = true;
                    this._delay(function () {
                        delete this.cancelBlur;
                    });
                    var menuElement = this.menu.element[0];
                    if (!$(event.target).closest(".ui-menu-item").length) {
                        this._delay(function () {
                            var that = this;
                            this.document.one("mousedown", function (event) {
                                if (event.target !== that.element[0] &&
                                    event.target !== menuElement &&
                                    !$.contains(menuElement, event.target)) {
                                    that.close();
                                }
                            });
                        });
                    }
                },
                menufocus: function (event, ui) {
                    if (this.isNewMenu) {
                        this.isNewMenu = false;
                        if (event.originalEvent && /^mouse/.test(event.originalEvent.type)) {
                            this.menu.blur();
                            this.document.one("mousemove", function () {
                                $(event.target).trigger(event.originalEvent);
                            });
                            return;
                        }
                    }
                    var item = ui.item.data("ui-autocomplete-item") || ui.item.data("item.autocomplete");
                    if (false !== this._trigger("focus", event, { item: item })) {
                        if (event.originalEvent && /^key/.test(event.originalEvent.type)) {
                            this._value(item.value);
                        }
                    }
                    else {
                        this.liveRegion.text(item.value);
                    }
                },
                menuselect: function (event, ui) {
                    var item = ui.item.data("ui-autocomplete-item") || ui.item.data("item.autocomplete"), previous = this.previous;
                    if (this.element[0] !== this.document[0].activeElement) {
                        this.element.focus();
                        this.previous = previous;
                        this._delay(function () {
                            this.previous = previous;
                            this.selectedItem = item;
                        });
                    }
                    if (false !== this._trigger("select", event, { item: item })) {
                        this._value(item.value);
                    }
                    this.term = this._value();
                    this.close(event);
                    this.selectedItem = item;
                }
            });
            this.liveRegion = $("<span>", {
                role: "status",
                "aria-live": "polite"
            })
                .addClass("ui-helper-hidden-accessible")
                .insertAfter(this.element);
            if ($.fn.bgiframe) {
                this.menu.element.bgiframe();
            }
            this._on(this.window, {
                beforeunload: function () {
                    this.element.removeAttr("autocomplete");
                }
            });
        },
        _destroy: function () {
            clearTimeout(this.searching);
            this.element
                .removeClass("ui-autocomplete-input")
                .removeAttr("autocomplete");
            this.menu.element.remove();
            this.liveRegion.remove();
        },
        _setOption: function (key, value) {
            this._super(key, value);
            if (key === "source") {
                this._initSource();
            }
            if (key === "appendTo") {
                this.menu.element.appendTo(this.document.find(value || "body")[0]);
            }
            if (key === "disabled" && value && this.xhr) {
                this.xhr.abort();
            }
        },
        _isMultiLine: function () {
            if (this.element.is("textarea")) {
                return true;
            }
            if (this.element.is("input")) {
                return false;
            }
            return this.element.prop("isContentEditable");
        },
        _initSource: function () {
            var array, url, that = this;
            if (Array.isArray(this.options.source)) {
                array = this.options.source;
                this.source = function (request, response) {
                    response($.ui.autocomplete.filter(array, request.term));
                };
            }
            else if (typeof this.options.source === "string") {
                url = this.options.source;
                this.source = function (request, response) {
                    if (that.xhr) {
                        that.xhr.abort();
                    }
                    that.xhr = $.ajax({
                        url: url,
                        data: request,
                        dataType: "json",
                        success: function (data) {
                            response(data);
                        },
                        error: function () {
                            response([]);
                        }
                    });
                };
            }
            else {
                this.source = this.options.source;
            }
        },
        _searchTimeout: function (event) {
            clearTimeout(this.searching);
            this.searching = this._delay(function () {
                if (this.term !== this._value()) {
                    this.selectedItem = null;
                    this.search(null, event);
                }
            }, this.options.delay);
        },
        search: function (value, event) {
            value = value != null ? value : this._value();
            this.term = this._value();
            if (value.length < this.options.minLength) {
                return this.close(event);
            }
            if (this._trigger("search", event) === false) {
                return;
            }
            return this._search(value);
        },
        _search: function (value) {
            this.pending++;
            this.element.addClass("ui-autocomplete-loading");
            this.cancelSearch = false;
            this.source({ term: value }, this._response());
        },
        _response: function () {
            var that = this, index = ++requestIndex;
            return function (content) {
                if (index === requestIndex) {
                    that.__response(content);
                }
                that.pending--;
                if (!that.pending) {
                    that.element.removeClass("ui-autocomplete-loading");
                }
            };
        },
        __response: function (content) {
            if (content) {
                content = this._normalize(content);
            }
            this._trigger("response", null, { content: content });
            if (!this.options.disabled && content && content.length && !this.cancelSearch) {
                this._suggest(content);
                this._trigger("open");
            }
            else {
                this._close();
            }
        },
        close: function (event) {
            this.cancelSearch = true;
            this._close(event);
        },
        _close: function (event) {
            if (this.menu.element.is(":visible")) {
                this.menu.element.hide();
                this.menu.blur();
                this.isNewMenu = true;
                this._trigger("close", event);
            }
        },
        _change: function (event) {
            if (this.previous !== this._value()) {
                this._trigger("change", event, { item: this.selectedItem });
            }
        },
        _normalize: function (items) {
            if (items.length && items[0].label && items[0].value) {
                return items;
            }
            return $.map(items, function (item) {
                if (typeof item === "string") {
                    return {
                        label: item,
                        value: item
                    };
                }
                return $.extend({
                    label: item.label || item.value,
                    value: item.value || item.label
                }, item);
            });
        },
        _suggest: function (items) {
            var ul = this.menu.element
                .empty()
                .zIndex(this.element.zIndex() + 1);
            this._renderMenu(ul, items);
            this.menu.refresh();
            ul.show();
            this._resizeMenu();
            ul.position($.extend({
                of: this.element
            }, this.options.position));
            if (this.options.autoFocus) {
                this.menu.next();
            }
        },
        _resizeMenu: function () {
            var ul = this.menu.element;
            ul.outerWidth(Math.max(ul.width("").outerWidth() + 1, this.element.outerWidth()));
        },
        _renderMenu: function (ul, items) {
            var that = this;
            $.each(items, function (index, item) {
                that._renderItemData(ul, item);
            });
        },
        _renderItemData: function (ul, item) {
            return this._renderItem(ul, item).data("ui-autocomplete-item", item);
        },
        _renderItem: function (ul, item) {
            return $("<li>")
                .append($("<a>").text(item.label))
                .appendTo(ul);
        },
        _move: function (direction, event) {
            if (!this.menu.element.is(":visible")) {
                this.search(null, event);
                return;
            }
            if (this.menu.isFirstItem() && /^previous/.test(direction) ||
                this.menu.isLastItem() && /^next/.test(direction)) {
                this._value(this.term);
                this.menu.blur();
                return;
            }
            this.menu[direction](event);
        },
        widget: function () {
            return this.menu.element;
        },
        _value: function () {
            return this.valueMethod.apply(this.element, arguments);
        },
        _keyEvent: function (keyEvent, event) {
            if (!this.isMultiLine || this.menu.element.is(":visible")) {
                this._move(keyEvent, event);
                event.preventDefault();
            }
        }
    });
    $.extend($.ui.autocomplete, {
        escapeRegex: function (value) {
            return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
        },
        filter: function (array, term) {
            var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
            return $.grep(array, function (value) {
                return matcher.test(value.label || value.value || value);
            });
        }
    });
    $.widget("ui.autocomplete", $.ui.autocomplete, {
        options: {
            messages: {
                noResults: "No search results.",
                results: function (amount) {
                    return amount + (amount > 1 ? " results are" : " result is") +
                        " available, use up and down arrow keys to navigate.";
                }
            }
        },
        __response: function (content) {
            var message;
            this._superApply(arguments);
            if (this.options.disabled || this.cancelSearch) {
                return;
            }
            if (content && content.length) {
                message = this.options.messages.results(content.length);
            }
            else {
                message = this.options.messages.noResults;
            }
            this.liveRegion.text(message);
        }
    });
}(jQuery));
(function ($, undefined) {
    var lastActive, startXPos, startYPos, clickDragged, baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", stateClasses = "ui-state-hover ui-state-active ", typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", formResetHandler = function () {
        var buttons = $(this).find(":ui-button");
        setTimeout(function () {
            buttons.button("refresh");
        }, 1);
    }, radioGroup = function (radio) {
        var name = radio.name, form = radio.form, radios = $([]);
        if (name) {
            if (form) {
                radios = $(form).find("[name='" + name + "']");
            }
            else {
                radios = $("[name='" + name + "']", radio.ownerDocument)
                    .filter(function () {
                    return !this.form;
                });
            }
        }
        return radios;
    };
    $.widget("ui.button", {
        version: "1.9.2",
        defaultElement: "<button>",
        options: {
            disabled: null,
            text: true,
            label: null,
            icons: {
                primary: null,
                secondary: null
            }
        },
        _create: function () {
            this.element.closest("form")
                .off("reset" + this.eventNamespace)
                .on("reset" + this.eventNamespace, formResetHandler);
            if (typeof this.options.disabled !== "boolean") {
                this.options.disabled = !!this.element.prop("disabled");
            }
            else {
                this.element.prop("disabled", this.options.disabled);
            }
            this._determineButtonType();
            this.hasTitle = !!this.buttonElement.attr("title");
            var that = this, options = this.options, toggleButton = this.type === "checkbox" || this.type === "radio", activeClass = !toggleButton ? "ui-state-active" : "", focusClass = "ui-state-focus";
            if (options.label === null) {
                options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
            }
            this._hoverable(this.buttonElement);
            this.buttonElement
                .addClass(baseClasses)
                .attr("role", "button")
                .on("mouseenter" + this.eventNamespace, function () {
                if (options.disabled) {
                    return;
                }
                if (this === lastActive) {
                    $(this).addClass("ui-state-active");
                }
            })
                .on("mouseleave" + this.eventNamespace, function () {
                if (options.disabled) {
                    return;
                }
                $(this).removeClass(activeClass);
            })
                .on("click" + this.eventNamespace, function (event) {
                if (options.disabled) {
                    event.preventDefault();
                    event.stopImmediatePropagation();
                }
            });
            this.element
                .on("focus" + this.eventNamespace, function () {
                that.buttonElement.addClass(focusClass);
            })
                .on("blur" + this.eventNamespace, function () {
                that.buttonElement.removeClass(focusClass);
            });
            if (toggleButton) {
                this.element.on("change" + this.eventNamespace, function () {
                    if (clickDragged) {
                        return;
                    }
                    that.refresh();
                });
                this.buttonElement
                    .on("mousedown" + this.eventNamespace, function (event) {
                    if (options.disabled) {
                        return;
                    }
                    clickDragged = false;
                    startXPos = event.pageX;
                    startYPos = event.pageY;
                })
                    .on("mouseup" + this.eventNamespace, function (event) {
                    if (options.disabled) {
                        return;
                    }
                    if (startXPos !== event.pageX || startYPos !== event.pageY) {
                        clickDragged = true;
                    }
                });
            }
            if (this.type === "checkbox") {
                this.buttonElement.on("click" + this.eventNamespace, function () {
                    if (options.disabled || clickDragged) {
                        return false;
                    }
                    $(this).toggleClass("ui-state-active");
                    that.buttonElement.attr("aria-pressed", that.element[0].checked);
                });
            }
            else if (this.type === "radio") {
                this.buttonElement.on("click" + this.eventNamespace, function () {
                    if (options.disabled || clickDragged) {
                        return false;
                    }
                    $(this).addClass("ui-state-active");
                    that.buttonElement.attr("aria-pressed", "true");
                    var radio = that.element[0];
                    radioGroup(radio)
                        .not(radio)
                        .map(function () {
                        return $(this).button("widget")[0];
                    })
                        .removeClass("ui-state-active")
                        .attr("aria-pressed", "false");
                });
            }
            else {
                this.buttonElement
                    .on("mousedown" + this.eventNamespace, function () {
                    if (options.disabled) {
                        return false;
                    }
                    $(this).addClass("ui-state-active");
                    lastActive = this;
                    that.document.one("mouseup", function () {
                        lastActive = null;
                    });
                })
                    .on("mouseup" + this.eventNamespace, function () {
                    if (options.disabled) {
                        return false;
                    }
                    $(this).removeClass("ui-state-active");
                })
                    .on("keydown" + this.eventNamespace, function (event) {
                    if (options.disabled) {
                        return false;
                    }
                    if (event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER) {
                        $(this).addClass("ui-state-active");
                    }
                })
                    .on("keyup" + this.eventNamespace, function () {
                    $(this).removeClass("ui-state-active");
                });
                if (this.buttonElement.is("a")) {
                    this.buttonElement.keyup(function (event) {
                        if (event.keyCode === $.ui.keyCode.SPACE) {
                            $(this).click();
                        }
                    });
                }
            }
            this._setOption("disabled", options.disabled);
            this._resetButton();
        },
        _determineButtonType: function () {
            var ancestor, labelSelector, checked;
            if (this.element.is("[type=checkbox]")) {
                this.type = "checkbox";
            }
            else if (this.element.is("[type=radio]")) {
                this.type = "radio";
            }
            else if (this.element.is("input")) {
                this.type = "input";
            }
            else {
                this.type = "button";
            }
            if (this.type === "checkbox" || this.type === "radio") {
                ancestor = this.element.parents().last();
                labelSelector = "label[for='" + this.element.attr("id") + "']";
                this.buttonElement = ancestor.find(labelSelector);
                if (!this.buttonElement.length) {
                    ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
                    this.buttonElement = ancestor.filter(labelSelector);
                    if (!this.buttonElement.length) {
                        this.buttonElement = ancestor.find(labelSelector);
                    }
                }
                this.element.addClass("ui-helper-hidden-accessible");
                checked = this.element.is(":checked");
                if (checked) {
                    this.buttonElement.addClass("ui-state-active");
                }
                this.buttonElement.prop("aria-pressed", checked);
            }
            else {
                this.buttonElement = this.element;
            }
        },
        widget: function () {
            return this.buttonElement;
        },
        _destroy: function () {
            this.element
                .removeClass("ui-helper-hidden-accessible");
            this.buttonElement
                .removeClass(baseClasses + " " + stateClasses + " " + typeClasses)
                .removeAttr("role")
                .removeAttr("aria-pressed")
                .html(this.buttonElement.find(".ui-button-text").html());
            if (!this.hasTitle) {
                this.buttonElement.removeAttr("title");
            }
        },
        _setOption: function (key, value) {
            this._super(key, value);
            if (key === "disabled") {
                if (value) {
                    this.element.prop("disabled", true);
                }
                else {
                    this.element.prop("disabled", false);
                }
                return;
            }
            this._resetButton();
        },
        refresh: function () {
            var isDisabled = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled");
            if (isDisabled !== this.options.disabled) {
                this._setOption("disabled", isDisabled);
            }
            if (this.type === "radio") {
                radioGroup(this.element[0]).each(function () {
                    if ($(this).is(":checked")) {
                        $(this).button("widget")
                            .addClass("ui-state-active")
                            .attr("aria-pressed", "true");
                    }
                    else {
                        $(this).button("widget")
                            .removeClass("ui-state-active")
                            .attr("aria-pressed", "false");
                    }
                });
            }
            else if (this.type === "checkbox") {
                if (this.element.is(":checked")) {
                    this.buttonElement
                        .addClass("ui-state-active")
                        .attr("aria-pressed", "true");
                }
                else {
                    this.buttonElement
                        .removeClass("ui-state-active")
                        .attr("aria-pressed", "false");
                }
            }
        },
        _resetButton: function () {
            if (this.type === "input") {
                if (this.options.label) {
                    this.element.val(this.options.label);
                }
                return;
            }
            var buttonElement = this.buttonElement.removeClass(typeClasses), buttonText = $("<span></span>", this.document[0])
                .addClass("ui-button-text")
                .html(this.options.label)
                .appendTo(buttonElement.empty())
                .text(), icons = this.options.icons, multipleIcons = icons.primary && icons.secondary, buttonClasses = [];
            if (icons.primary || icons.secondary) {
                if (this.options.text) {
                    buttonClasses.push("ui-button-text-icon" + (multipleIcons ? "s" : (icons.primary ? "-primary" : "-secondary")));
                }
                if (icons.primary) {
                    buttonElement.prepend("<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>");
                }
                if (icons.secondary) {
                    buttonElement.append("<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>");
                }
                if (!this.options.text) {
                    buttonClasses.push(multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only");
                    if (!this.hasTitle) {
                        buttonElement.attr("title", buttonText.trim());
                    }
                }
            }
            else {
                buttonClasses.push("ui-button-text-only");
            }
            buttonElement.addClass(buttonClasses.join(" "));
        }
    });
    $.widget("ui.buttonset", {
        version: "1.9.2",
        options: {
            items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"
        },
        _create: function () {
            this.element.addClass("ui-buttonset");
        },
        _init: function () {
            this.refresh();
        },
        _setOption: function (key, value) {
            if (key === "disabled") {
                this.buttons.button("option", key, value);
            }
            this._super(key, value);
        },
        refresh: function () {
            var rtl = this.element.css("direction") === "rtl";
            this.buttons = this.element.find(this.options.items)
                .filter(":ui-button")
                .button("refresh")
                .end()
                .not(":ui-button")
                .button()
                .end()
                .map(function () {
                return $(this).button("widget")[0];
            })
                .removeClass("ui-corner-all ui-corner-left ui-corner-right")
                .filter(":first")
                .addClass(rtl ? "ui-corner-right" : "ui-corner-left")
                .end()
                .filter(":last")
                .addClass(rtl ? "ui-corner-left" : "ui-corner-right")
                .end()
                .end();
        },
        _destroy: function () {
            this.element.removeClass("ui-buttonset");
            this.buttons
                .map(function () {
                return $(this).button("widget")[0];
            })
                .removeClass("ui-corner-left ui-corner-right")
                .end()
                .button("destroy");
        }
    });
}(jQuery));
(function ($, undefined) {
    $.extend($.ui, { datepicker: { version: "1.9.2" } });
    var PROP_NAME = 'datepicker';
    var dpuuid = new Date().getTime();
    var instActive;
    function Datepicker() {
        this.debug = false;
        this._curInst = null;
        this._keyEvent = false;
        this._disabledInputs = [];
        this._datepickerShowing = false;
        this._inDialog = false;
        this._mainDivId = 'ui-datepicker-div';
        this._inlineClass = 'ui-datepicker-inline';
        this._appendClass = 'ui-datepicker-append';
        this._triggerClass = 'ui-datepicker-trigger';
        this._dialogClass = 'ui-datepicker-dialog';
        this._disableClass = 'ui-datepicker-disabled';
        this._unselectableClass = 'ui-datepicker-unselectable';
        this._currentClass = 'ui-datepicker-current-day';
        this._dayOverClass = 'ui-datepicker-days-cell-over';
        this.regional = [];
        this.regional[''] = {
            closeText: 'Done',
            prevText: 'Prev',
            nextText: 'Next',
            currentText: 'Today',
            monthNames: ['January', 'February', 'March', 'April', 'May', 'June',
                'July', 'August', 'September', 'October', 'November', 'December'],
            monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
            dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
            dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
            dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
            weekHeader: 'Wk',
            dateFormat: 'mm/dd/yy',
            firstDay: 0,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        };
        this._defaults = {
            showOn: 'focus',
            showAnim: 'fadeIn',
            showOptions: {},
            defaultDate: null,
            appendText: '',
            buttonText: '...',
            buttonImage: '',
            buttonImageOnly: false,
            hideIfNoPrevNext: false,
            navigationAsDateFormat: false,
            gotoCurrent: false,
            changeMonth: false,
            changeYear: false,
            yearRange: 'c-10:c+10',
            showOtherMonths: false,
            selectOtherMonths: false,
            showWeek: false,
            calculateWeek: this.iso8601Week,
            shortYearCutoff: '+10',
            minDate: null,
            maxDate: null,
            duration: 'fast',
            beforeShowDay: null,
            beforeShow: null,
            onSelect: null,
            onChangeMonthYear: null,
            onClose: null,
            numberOfMonths: 1,
            showCurrentAtPos: 0,
            stepMonths: 1,
            stepBigMonths: 12,
            altField: '',
            altFormat: '',
            constrainInput: true,
            showButtonPanel: false,
            autoSize: false,
            disabled: false
        };
        $.extend(this._defaults, this.regional['']);
        this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
    }
    $.extend(Datepicker.prototype, {
        markerClassName: 'hasDatepicker',
        maxRows: 4,
        log: function () {
            if (this.debug)
                console.log.apply('', arguments);
        },
        _widgetDatepicker: function () {
            return this.dpDiv;
        },
        setDefaults: function (settings) {
            extendRemove(this._defaults, settings || {});
            return this;
        },
        _attachDatepicker: function (target, settings) {
            var inlineSettings = null;
            for (var attrName in this._defaults) {
                var attrValue = target.getAttribute('date:' + attrName);
                if (attrValue) {
                    inlineSettings = inlineSettings || {};
                    try {
                        inlineSettings[attrName] = eval(attrValue);
                    }
                    catch (err) {
                        inlineSettings[attrName] = attrValue;
                    }
                }
            }
            var nodeName = target.nodeName.toLowerCase();
            var inline = (nodeName == 'div' || nodeName == 'span');
            if (!target.id) {
                this.uuid += 1;
                target.id = 'dp' + this.uuid;
            }
            var inst = this._newInst($(target), inline);
            inst.settings = $.extend({}, settings || {}, inlineSettings || {});
            if (nodeName == 'input') {
                this._connectDatepicker(target, inst);
            }
            else if (inline) {
                this._inlineDatepicker(target, inst);
            }
        },
        _newInst: function (target, inline) {
            var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1');
            return { id: id, input: target,
                selectedDay: 0, selectedMonth: 0, selectedYear: 0,
                drawMonth: 0, drawYear: 0,
                inline: inline,
                dpDiv: (!inline ? this.dpDiv :
                    bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))) };
        },
        _connectDatepicker: function (target, inst) {
            var input = $(target);
            inst.append = $([]);
            inst.trigger = $([]);
            if (input.hasClass(this.markerClassName))
                return;
            this._attachments(input, inst);
            input.addClass(this.markerClassName).keydown(this._doKeyDown).
                keypress(this._doKeyPress).keyup(this._doKeyUp).
                on("setData.datepicker", function (event, key, value) {
                inst.settings[key] = value;
            }).on("getData.datepicker", function (event, key) {
                return this._get(inst, key);
            });
            this._autoSize(inst);
            $.data(target, PROP_NAME, inst);
            if (inst.settings.disabled) {
                this._disableDatepicker(target);
            }
        },
        _attachments: function (input, inst) {
            var appendText = this._get(inst, 'appendText');
            var isRTL = this._get(inst, 'isRTL');
            if (inst.append)
                inst.append.remove();
            if (appendText) {
                inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
                input[isRTL ? 'before' : 'after'](inst.append);
            }
            input.off('focus', this._showDatepicker);
            if (inst.trigger)
                inst.trigger.remove();
            var showOn = this._get(inst, 'showOn');
            if (showOn == 'focus' || showOn == 'both')
                input.focus(this._showDatepicker);
            if (showOn == 'button' || showOn == 'both') {
                var buttonText = this._get(inst, 'buttonText');
                var buttonImage = this._get(inst, 'buttonImage');
                inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
                    $('<img/>').addClass(this._triggerClass).
                        attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
                    $('<button type="button"></button>').addClass(this._triggerClass).
                        html(buttonImage == '' ? buttonText : $('<img/>').attr({ src: buttonImage, alt: buttonText, title: buttonText })));
                input[isRTL ? 'before' : 'after'](inst.trigger);
                inst.trigger.click(function () {
                    if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
                        $.datepicker._hideDatepicker();
                    else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
                        $.datepicker._hideDatepicker();
                        $.datepicker._showDatepicker(input[0]);
                    }
                    else
                        $.datepicker._showDatepicker(input[0]);
                    return false;
                });
            }
        },
        _autoSize: function (inst) {
            if (this._get(inst, 'autoSize') && !inst.inline) {
                var date = new Date(2009, 12 - 1, 20);
                var dateFormat = this._get(inst, 'dateFormat');
                if (dateFormat.match(/[DM]/)) {
                    var findMax = function (names) {
                        var max = 0;
                        var maxI = 0;
                        for (var i = 0; i < names.length; i++) {
                            if (names[i].length > max) {
                                max = names[i].length;
                                maxI = i;
                            }
                        }
                        return maxI;
                    };
                    date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
                        'monthNames' : 'monthNamesShort'))));
                    date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
                        'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
                }
                inst.input.attr('size', this._formatDate(inst, date).length);
            }
        },
        _inlineDatepicker: function (target, inst) {
            var divSpan = $(target);
            if (divSpan.hasClass(this.markerClassName))
                return;
            divSpan.addClass(this.markerClassName).append(inst.dpDiv).
                on("setData.datepicker", function (event, key, value) {
                inst.settings[key] = value;
            }).on("getData.datepicker", function (event, key) {
                return this._get(inst, key);
            });
            $.data(target, PROP_NAME, inst);
            this._setDate(inst, this._getDefaultDate(inst), true);
            this._updateDatepicker(inst);
            this._updateAlternate(inst);
            if (inst.settings.disabled) {
                this._disableDatepicker(target);
            }
            inst.dpDiv.css("display", "block");
        },
        _dialogDatepicker: function (input, date, onSelect, settings, pos) {
            var inst = this._dialogInst;
            if (!inst) {
                this.uuid += 1;
                var id = 'dp' + this.uuid;
                this._dialogInput = $('<input type="text" id="' + id +
                    '" style="position: absolute; top: -100px; width: 0px;"/>');
                this._dialogInput.keydown(this._doKeyDown);
                $('body').append(this._dialogInput);
                inst = this._dialogInst = this._newInst(this._dialogInput, false);
                inst.settings = {};
                $.data(this._dialogInput[0], PROP_NAME, inst);
            }
            extendRemove(inst.settings, settings || {});
            date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
            this._dialogInput.val(date);
            this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
            if (!this._pos) {
                var browserWidth = document.documentElement.clientWidth;
                var browserHeight = document.documentElement.clientHeight;
                var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
                var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
                this._pos =
                    [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
            }
            this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
            inst.settings.onSelect = onSelect;
            this._inDialog = true;
            this.dpDiv.addClass(this._dialogClass);
            this._showDatepicker(this._dialogInput[0]);
            if ($.blockUI)
                $.blockUI(this.dpDiv);
            $.data(this._dialogInput[0], PROP_NAME, inst);
            return this;
        },
        _destroyDatepicker: function (target) {
            var $target = $(target);
            var inst = $.data(target, PROP_NAME);
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            $.removeData(target, PROP_NAME);
            if (nodeName == 'input') {
                inst.append.remove();
                inst.trigger.remove();
                $target.removeClass(this.markerClassName).
                    off('focus', this._showDatepicker).
                    off('keydown', this._doKeyDown).
                    off('keypress', this._doKeyPress).
                    off('keyup', this._doKeyUp);
            }
            else if (nodeName == 'div' || nodeName == 'span')
                $target.removeClass(this.markerClassName).empty();
        },
        _enableDatepicker: function (target) {
            var $target = $(target);
            var inst = $.data(target, PROP_NAME);
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            if (nodeName == 'input') {
                target.disabled = false;
                inst.trigger.filter('button').
                    each(function () { this.disabled = false; }).end().
                    filter('img').css({ opacity: '1.0', cursor: '' });
            }
            else if (nodeName == 'div' || nodeName == 'span') {
                var inline = $target.children('.' + this._inlineClass);
                inline.children().removeClass('ui-state-disabled');
                inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
                    prop("disabled", false);
            }
            this._disabledInputs = $.map(this._disabledInputs, function (value) { return (value == target ? null : value); });
        },
        _disableDatepicker: function (target) {
            var $target = $(target);
            var inst = $.data(target, PROP_NAME);
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            if (nodeName == 'input') {
                target.disabled = true;
                inst.trigger.filter('button').
                    each(function () { this.disabled = true; }).end().
                    filter('img').css({ opacity: '0.5', cursor: 'default' });
            }
            else if (nodeName == 'div' || nodeName == 'span') {
                var inline = $target.children('.' + this._inlineClass);
                inline.children().addClass('ui-state-disabled');
                inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
                    prop("disabled", true);
            }
            this._disabledInputs = $.map(this._disabledInputs, function (value) { return (value == target ? null : value); });
            this._disabledInputs[this._disabledInputs.length] = target;
        },
        _isDisabledDatepicker: function (target) {
            if (!target) {
                return false;
            }
            for (var i = 0; i < this._disabledInputs.length; i++) {
                if (this._disabledInputs[i] == target)
                    return true;
            }
            return false;
        },
        _getInst: function (target) {
            try {
                return $.data(target, PROP_NAME);
            }
            catch (err) {
                throw 'Missing instance data for this datepicker';
            }
        },
        _optionDatepicker: function (target, name, value) {
            var inst = this._getInst(target);
            if (arguments.length == 2 && typeof name == 'string') {
                return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
                    (inst ? (name == 'all' ? $.extend({}, inst.settings) :
                        this._get(inst, name)) : null));
            }
            var settings = name || {};
            if (typeof name == 'string') {
                settings = {};
                settings[name] = value;
            }
            if (inst) {
                if (this._curInst == inst) {
                    this._hideDatepicker();
                }
                var date = this._getDateDatepicker(target, true);
                var minDate = this._getMinMaxDate(inst, 'min');
                var maxDate = this._getMinMaxDate(inst, 'max');
                extendRemove(inst.settings, settings);
                if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
                    inst.settings.minDate = this._formatDate(inst, minDate);
                if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
                    inst.settings.maxDate = this._formatDate(inst, maxDate);
                this._attachments($(target), inst);
                this._autoSize(inst);
                this._setDate(inst, date);
                this._updateAlternate(inst);
                this._updateDatepicker(inst);
            }
        },
        _changeDatepicker: function (target, name, value) {
            this._optionDatepicker(target, name, value);
        },
        _refreshDatepicker: function (target) {
            var inst = this._getInst(target);
            if (inst) {
                this._updateDatepicker(inst);
            }
        },
        _setDateDatepicker: function (target, date) {
            var inst = this._getInst(target);
            if (inst) {
                this._setDate(inst, date);
                this._updateDatepicker(inst);
                this._updateAlternate(inst);
            }
        },
        _getDateDatepicker: function (target, noDefault) {
            var inst = this._getInst(target);
            if (inst && !inst.inline)
                this._setDateFromField(inst, noDefault);
            return (inst ? this._getDate(inst) : null);
        },
        _doKeyDown: function (event) {
            var inst = $.datepicker._getInst(event.target);
            var handled = true;
            var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
            inst._keyEvent = true;
            if ($.datepicker._datepickerShowing)
                switch (event.keyCode) {
                    case 9:
                        $.datepicker._hideDatepicker();
                        handled = false;
                        break;
                    case 13:
                        var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
                            $.datepicker._currentClass + ')', inst.dpDiv);
                        if (sel[0])
                            $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
                        var onSelect = $.datepicker._get(inst, 'onSelect');
                        if (onSelect) {
                            var dateStr = $.datepicker._formatDate(inst);
                            onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
                        }
                        else
                            $.datepicker._hideDatepicker();
                        return false;
                        break;
                    case 27:
                        $.datepicker._hideDatepicker();
                        break;
                    case 33:
                        $.datepicker._adjustDate(event.target, (event.ctrlKey ?
                            -$.datepicker._get(inst, 'stepBigMonths') :
                            -$.datepicker._get(inst, 'stepMonths')), 'M');
                        break;
                    case 34:
                        $.datepicker._adjustDate(event.target, (event.ctrlKey ?
                            +$.datepicker._get(inst, 'stepBigMonths') :
                            +$.datepicker._get(inst, 'stepMonths')), 'M');
                        break;
                    case 35:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._clearDate(event.target);
                        handled = event.ctrlKey || event.metaKey;
                        break;
                    case 36:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._gotoToday(event.target);
                        handled = event.ctrlKey || event.metaKey;
                        break;
                    case 37:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
                        handled = event.ctrlKey || event.metaKey;
                        if (event.originalEvent.altKey)
                            $.datepicker._adjustDate(event.target, (event.ctrlKey ?
                                -$.datepicker._get(inst, 'stepBigMonths') :
                                -$.datepicker._get(inst, 'stepMonths')), 'M');
                        break;
                    case 38:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._adjustDate(event.target, -7, 'D');
                        handled = event.ctrlKey || event.metaKey;
                        break;
                    case 39:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
                        handled = event.ctrlKey || event.metaKey;
                        if (event.originalEvent.altKey)
                            $.datepicker._adjustDate(event.target, (event.ctrlKey ?
                                +$.datepicker._get(inst, 'stepBigMonths') :
                                +$.datepicker._get(inst, 'stepMonths')), 'M');
                        break;
                    case 40:
                        if (event.ctrlKey || event.metaKey)
                            $.datepicker._adjustDate(event.target, +7, 'D');
                        handled = event.ctrlKey || event.metaKey;
                        break;
                    default: handled = false;
                }
            else if (event.keyCode == 36 && event.ctrlKey)
                $.datepicker._showDatepicker(this);
            else {
                handled = false;
            }
            if (handled) {
                event.preventDefault();
                event.stopPropagation();
            }
        },
        _doKeyPress: function (event) {
            var inst = $.datepicker._getInst(event.target);
            if ($.datepicker._get(inst, 'constrainInput')) {
                var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
                var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
                return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
            }
        },
        _doKeyUp: function (event) {
            var inst = $.datepicker._getInst(event.target);
            if (inst.input.val() != inst.lastVal) {
                try {
                    var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), (inst.input ? inst.input.val() : null), $.datepicker._getFormatConfig(inst));
                    if (date) {
                        $.datepicker._setDateFromField(inst);
                        $.datepicker._updateAlternate(inst);
                        $.datepicker._updateDatepicker(inst);
                    }
                }
                catch (err) {
                    $.datepicker.log(err);
                }
            }
            return true;
        },
        _showDatepicker: function (input) {
            input = input.target || input;
            if (input.nodeName.toLowerCase() != 'input')
                input = $('input', input.parentNode)[0];
            if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input)
                return;
            var inst = $.datepicker._getInst(input);
            if ($.datepicker._curInst && $.datepicker._curInst != inst) {
                $.datepicker._curInst.dpDiv.stop(true, true);
                if (inst && $.datepicker._datepickerShowing) {
                    $.datepicker._hideDatepicker($.datepicker._curInst.input[0]);
                }
            }
            var beforeShow = $.datepicker._get(inst, 'beforeShow');
            var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
            if (beforeShowSettings === false) {
                return;
            }
            extendRemove(inst.settings, beforeShowSettings);
            inst.lastVal = null;
            $.datepicker._lastInput = input;
            $.datepicker._setDateFromField(inst);
            if ($.datepicker._inDialog)
                input.value = '';
            if (!$.datepicker._pos) {
                $.datepicker._pos = $.datepicker._findPos(input);
                $.datepicker._pos[1] += input.offsetHeight;
            }
            var isFixed = false;
            $(input).parents().each(function () {
                isFixed |= $(this).css('position') == 'fixed';
                return !isFixed;
            });
            var offset = { left: $.datepicker._pos[0], top: $.datepicker._pos[1] };
            $.datepicker._pos = null;
            inst.dpDiv.empty();
            inst.dpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' });
            $.datepicker._updateDatepicker(inst);
            offset = $.datepicker._checkOffset(inst, offset, isFixed);
            inst.dpDiv.css({ position: ($.datepicker._inDialog && $.blockUI ?
                    'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
                left: offset.left + 'px', top: offset.top + 'px' });
            if (!inst.inline) {
                var showAnim = $.datepicker._get(inst, 'showAnim');
                var duration = $.datepicker._get(inst, 'duration');
                var postProcess = function () {
                    var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
                    if (!!cover.length) {
                        var borders = $.datepicker._getBorders(inst.dpDiv);
                        cover.css({ left: -borders[0], top: -borders[1],
                            width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight() });
                    }
                };
                inst.dpDiv.zIndex($(input).zIndex() + 1);
                $.datepicker._datepickerShowing = true;
                if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim]))
                    inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
                else
                    inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
                if (!showAnim || !duration)
                    postProcess();
                if (inst.input.is(':visible') && !inst.input.is(':disabled'))
                    inst.input.focus();
                $.datepicker._curInst = inst;
            }
        },
        _updateDatepicker: function (inst) {
            this.maxRows = 4;
            var borders = $.datepicker._getBorders(inst.dpDiv);
            instActive = inst;
            inst.dpDiv.empty().append(this._generateHTML(inst));
            this._attachHandlers(inst);
            var cover = inst.dpDiv.find('iframe.ui-datepicker-cover');
            if (!!cover.length) {
                cover.css({ left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight() });
            }
            inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
            var numMonths = this._getNumberOfMonths(inst);
            var cols = numMonths[1];
            var width = 17;
            inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
            if (cols > 1)
                inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
            inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
                'Class']('ui-datepicker-multi');
            inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
                'Class']('ui-datepicker-rtl');
            if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
                inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                inst.input.focus();
            if (inst.yearshtml) {
                var origyearshtml = inst.yearshtml;
                setTimeout(function () {
                    if (origyearshtml === inst.yearshtml && inst.yearshtml) {
                        inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
                    }
                    origyearshtml = inst.yearshtml = null;
                }, 0);
            }
        },
        _getBorders: function (elem) {
            var convert = function (value) {
                return { thin: 1, medium: 2, thick: 3 }[value] || value;
            };
            return [parseFloat(convert(elem.css('border-left-width'))),
                parseFloat(convert(elem.css('border-top-width')))];
        },
        _checkOffset: function (inst, offset, isFixed) {
            var dpWidth = inst.dpDiv.outerWidth();
            var dpHeight = inst.dpDiv.outerHeight();
            var inputWidth = inst.input ? inst.input.outerWidth() : 0;
            var inputHeight = inst.input ? inst.input.outerHeight() : 0;
            var viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft());
            var viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
            offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
            offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
            offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
            offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
                Math.abs(offset.left + dpWidth - viewWidth) : 0);
            offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
                Math.abs(dpHeight + inputHeight) : 0);
            return offset;
        },
        _findPos: function (obj) {
            var inst = this._getInst(obj);
            var isRTL = this._get(inst, 'isRTL');
            while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.pseudos.hidden(obj))) {
                obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
            }
            var position = $(obj).offset();
            return [position.left, position.top];
        },
        _hideDatepicker: function (input) {
            var inst = this._curInst;
            if (!inst || (input && inst != $.data(input, PROP_NAME)))
                return;
            if (this._datepickerShowing) {
                var showAnim = this._get(inst, 'showAnim');
                var duration = this._get(inst, 'duration');
                var postProcess = function () {
                    $.datepicker._tidyDialog(inst);
                };
                if ($.effects && ($.effects.effect[showAnim] || $.effects[showAnim]))
                    inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
                else
                    inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
                        (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
                if (!showAnim)
                    postProcess();
                this._datepickerShowing = false;
                var onClose = this._get(inst, 'onClose');
                if (onClose)
                    onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]);
                this._lastInput = null;
                if (this._inDialog) {
                    this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
                    if ($.blockUI) {
                        $.unblockUI();
                        $('body').append(this.dpDiv);
                    }
                }
                this._inDialog = false;
            }
        },
        _tidyDialog: function (inst) {
            inst.dpDiv.removeClass(this._dialogClass).off('.ui-datepicker-calendar');
        },
        _checkExternalClick: function (event) {
            if (!$.datepicker._curInst)
                return;
            var $target = $(event.target), inst = $.datepicker._getInst($target[0]);
            if ((($target[0].id != $.datepicker._mainDivId &&
                $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
                !$target.hasClass($.datepicker.markerClassName) &&
                !$target.closest("." + $.datepicker._triggerClass).length &&
                $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))) ||
                ($target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst))
                $.datepicker._hideDatepicker();
        },
        _adjustDate: function (id, offset, period) {
            var target = $(id);
            var inst = this._getInst(target[0]);
            if (this._isDisabledDatepicker(target[0])) {
                return;
            }
            this._adjustInstDate(inst, offset +
                (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), period);
            this._updateDatepicker(inst);
        },
        _gotoToday: function (id) {
            var target = $(id);
            var inst = this._getInst(target[0]);
            if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
                inst.selectedDay = inst.currentDay;
                inst.drawMonth = inst.selectedMonth = inst.currentMonth;
                inst.drawYear = inst.selectedYear = inst.currentYear;
            }
            else {
                var date = new Date();
                inst.selectedDay = date.getDate();
                inst.drawMonth = inst.selectedMonth = date.getMonth();
                inst.drawYear = inst.selectedYear = date.getFullYear();
            }
            this._notifyChange(inst);
            this._adjustDate(target);
        },
        _selectMonthYear: function (id, select, period) {
            var target = $(id);
            var inst = this._getInst(target[0]);
            inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
                inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
                    parseInt(select.options[select.selectedIndex].value, 10);
            this._notifyChange(inst);
            this._adjustDate(target);
        },
        _selectDay: function (id, month, year, td) {
            var target = $(id);
            if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
                return;
            }
            var inst = this._getInst(target[0]);
            inst.selectedDay = inst.currentDay = $('a', td).html();
            inst.selectedMonth = inst.currentMonth = month;
            inst.selectedYear = inst.currentYear = year;
            this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear));
        },
        _clearDate: function (id) {
            var target = $(id);
            var inst = this._getInst(target[0]);
            this._selectDate(target, '');
        },
        _selectDate: function (id, dateStr) {
            var target = $(id);
            var inst = this._getInst(target[0]);
            dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
            if (inst.input)
                inst.input.val(dateStr);
            this._updateAlternate(inst);
            var onSelect = this._get(inst, 'onSelect');
            if (onSelect)
                onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
            else if (inst.input)
                inst.input.trigger('change');
            if (inst.inline)
                this._updateDatepicker(inst);
            else {
                this._hideDatepicker();
                this._lastInput = inst.input[0];
                if (typeof (inst.input[0]) != 'object')
                    inst.input.focus();
                this._lastInput = null;
            }
        },
        _updateAlternate: function (inst) {
            var altField = this._get(inst, 'altField');
            if (altField) {
                var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
                var date = this._getDate(inst);
                var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
                $(altField).each(function () { $(this).val(dateStr); });
            }
        },
        noWeekends: function (date) {
            var day = date.getDay();
            return [(day > 0 && day < 6), ''];
        },
        iso8601Week: function (date) {
            var checkDate = new Date(date.getTime());
            checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
            var time = checkDate.getTime();
            checkDate.setMonth(0);
            checkDate.setDate(1);
            return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
        },
        parseDate: function (format, value, settings) {
            if (format == null || value == null)
                throw 'Invalid arguments';
            value = (typeof value == 'object' ? value.toString() : value + '');
            if (value == '')
                return null;
            var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
            shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
                new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
            var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
            var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
            var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
            var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
            var year = -1;
            var month = -1;
            var day = -1;
            var doy = -1;
            var literal = false;
            var lookAhead = function (match) {
                var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                if (matches)
                    iFormat++;
                return matches;
            };
            var getNumber = function (match) {
                var isDoubled = lookAhead(match);
                var size = (match == '@' ? 14 : (match == '!' ? 20 :
                    (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
                var digits = new RegExp('^\\d{1,' + size + '}');
                var num = value.substring(iValue).match(digits);
                if (!num)
                    throw 'Missing number at position ' + iValue;
                iValue += num[0].length;
                return parseInt(num[0], 10);
            };
            var getName = function (match, shortNames, longNames) {
                var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
                    return [[k, v]];
                }).sort(function (a, b) {
                    return -(a[1].length - b[1].length);
                });
                var index = -1;
                $.each(names, function (i, pair) {
                    var name = pair[1];
                    if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
                        index = pair[0];
                        iValue += name.length;
                        return false;
                    }
                });
                if (index != -1)
                    return index + 1;
                else
                    throw 'Unknown name at position ' + iValue;
            };
            var checkLiteral = function () {
                if (value.charAt(iValue) != format.charAt(iFormat))
                    throw 'Unexpected literal at position ' + iValue;
                iValue++;
            };
            var iValue = 0;
            for (var iFormat = 0; iFormat < format.length; iFormat++) {
                if (literal)
                    if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                        literal = false;
                    else
                        checkLiteral();
                else
                    switch (format.charAt(iFormat)) {
                        case 'd':
                            day = getNumber('d');
                            break;
                        case 'D':
                            getName('D', dayNamesShort, dayNames);
                            break;
                        case 'o':
                            doy = getNumber('o');
                            break;
                        case 'm':
                            month = getNumber('m');
                            break;
                        case 'M':
                            month = getName('M', monthNamesShort, monthNames);
                            break;
                        case 'y':
                            year = getNumber('y');
                            break;
                        case '@':
                            var date = new Date(getNumber('@'));
                            year = date.getFullYear();
                            month = date.getMonth() + 1;
                            day = date.getDate();
                            break;
                        case '!':
                            var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
                            year = date.getFullYear();
                            month = date.getMonth() + 1;
                            day = date.getDate();
                            break;
                        case "'":
                            if (lookAhead("'"))
                                checkLiteral();
                            else
                                literal = true;
                            break;
                        default:
                            checkLiteral();
                    }
            }
            if (iValue < value.length) {
                var extra = value.substr(iValue);
                if (!/^\s+/.test(extra)) {
                    throw "Extra/unparsed characters found in date: " + extra;
                }
            }
            if (year == -1)
                year = new Date().getFullYear();
            else if (year < 100)
                year += new Date().getFullYear() - new Date().getFullYear() % 100 +
                    (year <= shortYearCutoff ? 0 : -100);
            if (doy > -1) {
                month = 1;
                day = doy;
                do {
                    var dim = this._getDaysInMonth(year, month - 1);
                    if (day <= dim)
                        break;
                    month++;
                    day -= dim;
                } while (true);
            }
            var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
            if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
                throw 'Invalid date';
            return date;
        },
        ATOM: 'yy-mm-dd',
        COOKIE: 'D, dd M yy',
        ISO_8601: 'yy-mm-dd',
        RFC_822: 'D, d M y',
        RFC_850: 'DD, dd-M-y',
        RFC_1036: 'D, d M y',
        RFC_1123: 'D, d M yy',
        RFC_2822: 'D, d M yy',
        RSS: 'D, d M y',
        TICKS: '!',
        TIMESTAMP: '@',
        W3C: 'yy-mm-dd',
        _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
            Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
        formatDate: function (format, date, settings) {
            if (!date)
                return '';
            var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
            var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
            var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
            var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
            var lookAhead = function (match) {
                var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                if (matches)
                    iFormat++;
                return matches;
            };
            var formatNumber = function (match, value, len) {
                var num = '' + value;
                if (lookAhead(match))
                    while (num.length < len)
                        num = '0' + num;
                return num;
            };
            var formatName = function (match, value, shortNames, longNames) {
                return (lookAhead(match) ? longNames[value] : shortNames[value]);
            };
            var output = '';
            var literal = false;
            if (date)
                for (var iFormat = 0; iFormat < format.length; iFormat++) {
                    if (literal)
                        if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                            literal = false;
                        else
                            output += format.charAt(iFormat);
                    else
                        switch (format.charAt(iFormat)) {
                            case 'd':
                                output += formatNumber('d', date.getDate(), 2);
                                break;
                            case 'D':
                                output += formatName('D', date.getDay(), dayNamesShort, dayNames);
                                break;
                            case 'o':
                                output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
                                break;
                            case 'm':
                                output += formatNumber('m', date.getMonth() + 1, 2);
                                break;
                            case 'M':
                                output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
                                break;
                            case 'y':
                                output += (lookAhead('y') ? date.getFullYear() :
                                    (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
                                break;
                            case '@':
                                output += date.getTime();
                                break;
                            case '!':
                                output += date.getTime() * 10000 + this._ticksTo1970;
                                break;
                            case "'":
                                if (lookAhead("'"))
                                    output += "'";
                                else
                                    literal = true;
                                break;
                            default:
                                output += format.charAt(iFormat);
                        }
                }
            return output;
        },
        _possibleChars: function (format) {
            var chars = '';
            var literal = false;
            var lookAhead = function (match) {
                var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
                if (matches)
                    iFormat++;
                return matches;
            };
            for (var iFormat = 0; iFormat < format.length; iFormat++)
                if (literal)
                    if (format.charAt(iFormat) == "'" && !lookAhead("'"))
                        literal = false;
                    else
                        chars += format.charAt(iFormat);
                else
                    switch (format.charAt(iFormat)) {
                        case 'd':
                        case 'm':
                        case 'y':
                        case '@':
                            chars += '0123456789';
                            break;
                        case 'D':
                        case 'M':
                            return null;
                        case "'":
                            if (lookAhead("'"))
                                chars += "'";
                            else
                                literal = true;
                            break;
                        default:
                            chars += format.charAt(iFormat);
                    }
            return chars;
        },
        _get: function (inst, name) {
            return inst.settings[name] !== undefined ?
                inst.settings[name] : this._defaults[name];
        },
        _setDateFromField: function (inst, noDefault) {
            if (inst.input.val() == inst.lastVal) {
                return;
            }
            var dateFormat = this._get(inst, 'dateFormat');
            var dates = inst.lastVal = inst.input ? inst.input.val() : null;
            var date, defaultDate;
            date = defaultDate = this._getDefaultDate(inst);
            var settings = this._getFormatConfig(inst);
            try {
                date = this.parseDate(dateFormat, dates, settings) || defaultDate;
            }
            catch (event) {
                this.log(event);
                dates = (noDefault ? '' : dates);
            }
            inst.selectedDay = date.getDate();
            inst.drawMonth = inst.selectedMonth = date.getMonth();
            inst.drawYear = inst.selectedYear = date.getFullYear();
            inst.currentDay = (dates ? date.getDate() : 0);
            inst.currentMonth = (dates ? date.getMonth() : 0);
            inst.currentYear = (dates ? date.getFullYear() : 0);
            this._adjustInstDate(inst);
        },
        _getDefaultDate: function (inst) {
            return this._restrictMinMax(inst, this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
        },
        _determineDate: function (inst, date, defaultDate) {
            var offsetNumeric = function (offset) {
                var date = new Date();
                date.setDate(date.getDate() + offset);
                return date;
            };
            var offsetString = function (offset) {
                try {
                    return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), offset, $.datepicker._getFormatConfig(inst));
                }
                catch (e) {
                }
                var date = (offset.toLowerCase().match(/^c/) ?
                    $.datepicker._getDate(inst) : null) || new Date();
                var year = date.getFullYear();
                var month = date.getMonth();
                var day = date.getDate();
                var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
                var matches = pattern.exec(offset);
                while (matches) {
                    switch (matches[2] || 'd') {
                        case 'd':
                        case 'D':
                            day += parseInt(matches[1], 10);
                            break;
                        case 'w':
                        case 'W':
                            day += parseInt(matches[1], 10) * 7;
                            break;
                        case 'm':
                        case 'M':
                            month += parseInt(matches[1], 10);
                            day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
                            break;
                        case 'y':
                        case 'Y':
                            year += parseInt(matches[1], 10);
                            day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
                            break;
                    }
                    matches = pattern.exec(offset);
                }
                return new Date(year, month, day);
            };
            var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
                (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
            newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
            if (newDate) {
                newDate.setHours(0);
                newDate.setMinutes(0);
                newDate.setSeconds(0);
                newDate.setMilliseconds(0);
            }
            return this._daylightSavingAdjust(newDate);
        },
        _daylightSavingAdjust: function (date) {
            if (!date)
                return null;
            date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
            return date;
        },
        _setDate: function (inst, date, noChange) {
            var clear = !date;
            var origMonth = inst.selectedMonth;
            var origYear = inst.selectedYear;
            var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
            inst.selectedDay = inst.currentDay = newDate.getDate();
            inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
            inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
            if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
                this._notifyChange(inst);
            this._adjustInstDate(inst);
            if (inst.input) {
                inst.input.val(clear ? '' : this._formatDate(inst));
            }
        },
        _getDate: function (inst) {
            var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
                this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
            return startDate;
        },
        _attachHandlers: function (inst) {
            var stepMonths = this._get(inst, 'stepMonths');
            var id = '#' + inst.id.replace(/\\\\/g, "\\");
            inst.dpDiv.find('[data-handler]').map(function () {
                var handler = {
                    prev: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, -stepMonths, 'M');
                    },
                    next: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, +stepMonths, 'M');
                    },
                    hide: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._hideDatepicker();
                    },
                    today: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._gotoToday(id);
                    },
                    selectDay: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._selectDay(id, +this.getAttribute('data-month'), +this.getAttribute('data-year'), this);
                        return false;
                    },
                    selectMonth: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'M');
                        return false;
                    },
                    selectYear: function () {
                        window['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'Y');
                        return false;
                    }
                };
                $(this).on(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);
            });
        },
        _generateHTML: function (inst) {
            var today = new Date();
            today = this._daylightSavingAdjust(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
            var isRTL = this._get(inst, 'isRTL');
            var showButtonPanel = this._get(inst, 'showButtonPanel');
            var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
            var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
            var numMonths = this._getNumberOfMonths(inst);
            var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
            var stepMonths = this._get(inst, 'stepMonths');
            var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
            var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
                new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
            var minDate = this._getMinMaxDate(inst, 'min');
            var maxDate = this._getMinMaxDate(inst, 'max');
            var drawMonth = inst.drawMonth - showCurrentAtPos;
            var drawYear = inst.drawYear;
            if (drawMonth < 0) {
                drawMonth += 12;
                drawYear--;
            }
            if (maxDate) {
                var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
                maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
                while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
                    drawMonth--;
                    if (drawMonth < 0) {
                        drawMonth = 11;
                        drawYear--;
                    }
                }
            }
            inst.drawMonth = drawMonth;
            inst.drawYear = drawYear;
            var prevText = this._get(inst, 'prevText');
            prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst)));
            var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
                '<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click"' +
                    ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
                (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
            var nextText = this._get(inst, 'nextText');
            nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst)));
            var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
                '<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click"' +
                    ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
                (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
            var currentText = this._get(inst, 'currentText');
            var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
            currentText = (!navigationAsDateFormat ? currentText :
                this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
            var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">' +
                this._get(inst, 'closeText') + '</button>' : '');
            var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
                (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click"' +
                    '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
            var firstDay = parseInt(this._get(inst, 'firstDay'), 10);
            firstDay = (isNaN(firstDay) ? 0 : firstDay);
            var showWeek = this._get(inst, 'showWeek');
            var dayNames = this._get(inst, 'dayNames');
            var dayNamesShort = this._get(inst, 'dayNamesShort');
            var dayNamesMin = this._get(inst, 'dayNamesMin');
            var monthNames = this._get(inst, 'monthNames');
            var monthNamesShort = this._get(inst, 'monthNamesShort');
            var beforeShowDay = this._get(inst, 'beforeShowDay');
            var showOtherMonths = this._get(inst, 'showOtherMonths');
            var selectOtherMonths = this._get(inst, 'selectOtherMonths');
            var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
            var defaultDate = this._getDefaultDate(inst);
            var html = '';
            for (var row = 0; row < numMonths[0]; row++) {
                var group = '';
                this.maxRows = 4;
                for (var col = 0; col < numMonths[1]; col++) {
                    var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
                    var cornerClass = ' ui-corner-all';
                    var calender = '';
                    if (isMultiMonth) {
                        calender += '<div class="ui-datepicker-group';
                        if (numMonths[1] > 1)
                            switch (col) {
                                case 0:
                                    calender += ' ui-datepicker-group-first';
                                    cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left');
                                    break;
                                case numMonths[1] - 1:
                                    calender += ' ui-datepicker-group-last';
                                    cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right');
                                    break;
                                default:
                                    calender += ' ui-datepicker-group-middle';
                                    cornerClass = '';
                                    break;
                            }
                        calender += '">';
                    }
                    calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
                        (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
                        (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
                        this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, row > 0 || col > 0, monthNames, monthNamesShort) +
                        '</div><table class="ui-datepicker-calendar"><thead>' +
                        '<tr>';
                    var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
                    for (var dow = 0; dow < 7; dow++) {
                        var day = (dow + firstDay) % 7;
                        thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
                            '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
                    }
                    calender += thead + '</tr></thead><tbody>';
                    var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
                    if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
                        inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
                    var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
                    var curRows = Math.ceil((leadDays + daysInMonth) / 7);
                    var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows);
                    this.maxRows = numRows;
                    var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
                    for (var dRow = 0; dRow < numRows; dRow++) {
                        calender += '<tr>';
                        var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
                            this._get(inst, 'calculateWeek')(printDate) + '</td>');
                        for (var dow = 0; dow < 7; dow++) {
                            var daySettings = (beforeShowDay ?
                                beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
                            var otherMonth = (printDate.getMonth() != drawMonth);
                            var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
                                (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
                            tbody += '<td class="' +
                                ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') +
                                (otherMonth ? ' ui-datepicker-other-month' : '') +
                                ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) ||
                                    (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
                                    ' ' + this._dayOverClass : '') +
                                (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled' : '') +
                                (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] +
                                    (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') +
                                    (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' +
                                ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') +
                                (unselectable ? '' : ' data-handler="selectDay" data-event="click" data-month="' + printDate.getMonth() + '" data-year="' + printDate.getFullYear() + '"') + '>' +
                                (otherMonth && !showOtherMonths ? '&#xa0;' :
                                    (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
                                        (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
                                        (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') +
                                        (otherMonth ? ' ui-priority-secondary' : '') +
                                        '" href="#">' + printDate.getDate() + '</a>')) + '</td>';
                            printDate.setDate(printDate.getDate() + 1);
                            printDate = this._daylightSavingAdjust(printDate);
                        }
                        calender += tbody + '</tr>';
                    }
                    drawMonth++;
                    if (drawMonth > 11) {
                        drawMonth = 0;
                        drawYear++;
                    }
                    calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
                        ((numMonths[0] > 0 && col == numMonths[1] - 1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
                    group += calender;
                }
                html += group;
            }
            html += buttonPanel + ($.ui.ie6 && !inst.inline ?
                '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
            inst._keyEvent = false;
            return html;
        },
        _generateMonthYearHeader: function (inst, drawMonth, drawYear, minDate, maxDate, secondary, monthNames, monthNamesShort) {
            var changeMonth = this._get(inst, 'changeMonth');
            var changeYear = this._get(inst, 'changeYear');
            var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
            var html = '<div class="ui-datepicker-title">';
            var monthHtml = '';
            if (secondary || !changeMonth)
                monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
            else {
                var inMinYear = (minDate && minDate.getFullYear() == drawYear);
                var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
                monthHtml += '<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';
                for (var month = 0; month < 12; month++) {
                    if ((!inMinYear || month >= minDate.getMonth()) &&
                        (!inMaxYear || month <= maxDate.getMonth()))
                        monthHtml += '<option value="' + month + '"' +
                            (month == drawMonth ? ' selected="selected"' : '') +
                            '>' + monthNamesShort[month] + '</option>';
                }
                monthHtml += '</select>';
            }
            if (!showMonthAfterYear)
                html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
            if (!inst.yearshtml) {
                inst.yearshtml = '';
                if (secondary || !changeYear)
                    html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
                else {
                    var years = this._get(inst, 'yearRange').split(':');
                    var thisYear = new Date().getFullYear();
                    var determineYear = function (value) {
                        var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
                            (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
                                parseInt(value, 10)));
                        return (isNaN(year) ? thisYear : year);
                    };
                    var year = determineYear(years[0]);
                    var endYear = Math.max(year, determineYear(years[1] || ''));
                    year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
                    endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
                    inst.yearshtml += '<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';
                    for (; year <= endYear; year++) {
                        inst.yearshtml += '<option value="' + year + '"' +
                            (year == drawYear ? ' selected="selected"' : '') +
                            '>' + year + '</option>';
                    }
                    inst.yearshtml += '</select>';
                    html += inst.yearshtml;
                    inst.yearshtml = null;
                }
            }
            html += this._get(inst, 'yearSuffix');
            if (showMonthAfterYear)
                html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
            html += '</div>';
            return html;
        },
        _adjustInstDate: function (inst, offset, period) {
            var year = inst.drawYear + (period == 'Y' ? offset : 0);
            var month = inst.drawMonth + (period == 'M' ? offset : 0);
            var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
                (period == 'D' ? offset : 0);
            var date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
            inst.selectedDay = date.getDate();
            inst.drawMonth = inst.selectedMonth = date.getMonth();
            inst.drawYear = inst.selectedYear = date.getFullYear();
            if (period == 'M' || period == 'Y')
                this._notifyChange(inst);
        },
        _restrictMinMax: function (inst, date) {
            var minDate = this._getMinMaxDate(inst, 'min');
            var maxDate = this._getMinMaxDate(inst, 'max');
            var newDate = (minDate && date < minDate ? minDate : date);
            newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
            return newDate;
        },
        _notifyChange: function (inst) {
            var onChange = this._get(inst, 'onChangeMonthYear');
            if (onChange)
                onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]);
        },
        _getNumberOfMonths: function (inst) {
            var numMonths = this._get(inst, 'numberOfMonths');
            return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
        },
        _getMinMaxDate: function (inst, minMax) {
            return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
        },
        _getDaysInMonth: function (year, month) {
            return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
        },
        _getFirstDayOfMonth: function (year, month) {
            return new Date(year, month, 1).getDay();
        },
        _canAdjustMonth: function (inst, offset, curYear, curMonth) {
            var numMonths = this._getNumberOfMonths(inst);
            var date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
            if (offset < 0)
                date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
            return this._isInRange(inst, date);
        },
        _isInRange: function (inst, date) {
            var minDate = this._getMinMaxDate(inst, 'min');
            var maxDate = this._getMinMaxDate(inst, 'max');
            return ((!minDate || date.getTime() >= minDate.getTime()) &&
                (!maxDate || date.getTime() <= maxDate.getTime()));
        },
        _getFormatConfig: function (inst) {
            var shortYearCutoff = this._get(inst, 'shortYearCutoff');
            shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
                new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
            return { shortYearCutoff: shortYearCutoff,
                dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
                monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames') };
        },
        _formatDate: function (inst, day, month, year) {
            if (!day) {
                inst.currentDay = inst.selectedDay;
                inst.currentMonth = inst.selectedMonth;
                inst.currentYear = inst.selectedYear;
            }
            var date = (day ? (typeof day == 'object' ? day :
                this._daylightSavingAdjust(new Date(year, month, day))) :
                this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
            return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
        }
    });
    function bindHover(dpDiv) {
        var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
        return dpDiv.on('mouseout', selector, function () {
            $(this).removeClass('ui-state-hover');
            if (this.className.indexOf('ui-datepicker-prev') != -1)
                $(this).removeClass('ui-datepicker-prev-hover');
            if (this.className.indexOf('ui-datepicker-next') != -1)
                $(this).removeClass('ui-datepicker-next-hover');
        })
            .on('mouseover', selector, function () {
            if (!$.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
                $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
                $(this).addClass('ui-state-hover');
                if (this.className.indexOf('ui-datepicker-prev') != -1)
                    $(this).addClass('ui-datepicker-prev-hover');
                if (this.className.indexOf('ui-datepicker-next') != -1)
                    $(this).addClass('ui-datepicker-next-hover');
            }
        });
    }
    function extendRemove(target, props) {
        $.extend(target, props);
        for (var name in props)
            if (props[name] == null || props[name] == undefined)
                target[name] = props[name];
        return target;
    }
    ;
    $.fn.datepicker = function (options) {
        if (!this.length) {
            return this;
        }
        if (!$.datepicker.initialized) {
            $(document).mousedown($.datepicker._checkExternalClick).
                find(document.body).append($.datepicker.dpDiv);
            $.datepicker.initialized = true;
        }
        var otherArgs = Array.prototype.slice.call(arguments, 1);
        if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
            return $.datepicker['_' + options + 'Datepicker'].
                apply($.datepicker, [this[0]].concat(otherArgs));
        if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
            return $.datepicker['_' + options + 'Datepicker'].
                apply($.datepicker, [this[0]].concat(otherArgs));
        return this.each(function () {
            typeof options == 'string' ?
                $.datepicker['_' + options + 'Datepicker'].
                    apply($.datepicker, [this].concat(otherArgs)) :
                $.datepicker._attachDatepicker(this, options);
        });
    };
    $.datepicker = new Datepicker();
    $.datepicker.initialized = false;
    $.datepicker.uuid = new Date().getTime();
    $.datepicker.version = "1.9.2";
    window['DP_jQuery_' + dpuuid] = $;
})(jQuery);
(function ($, undefined) {
    var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ", sizeRelatedOptions = {
        buttons: true,
        height: true,
        maxHeight: true,
        maxWidth: true,
        minHeight: true,
        minWidth: true,
        width: true
    }, resizableRelatedOptions = {
        maxHeight: true,
        maxWidth: true,
        minHeight: true,
        minWidth: true
    };
    $.widget("ui.dialog", {
        version: "1.9.2",
        options: {
            autoOpen: true,
            buttons: {},
            closeOnEscape: true,
            closeText: "close",
            dialogClass: "",
            draggable: true,
            hide: null,
            height: "auto",
            maxHeight: false,
            maxWidth: false,
            minHeight: 150,
            minWidth: 150,
            modal: false,
            position: {
                my: "center",
                at: "center",
                of: window,
                collision: "fit",
                using: function (pos) {
                    var topOffset = $(this).css(pos).offset().top;
                    if (topOffset < 0) {
                        $(this).css("top", pos.top - topOffset);
                    }
                }
            },
            resizable: true,
            show: null,
            stack: true,
            title: "",
            width: 300,
            zIndex: 1000
        },
        _create: function () {
            this.originalTitle = this.element.attr("title");
            if (typeof this.originalTitle !== "string") {
                this.originalTitle = "";
            }
            this.oldPosition = {
                parent: this.element.parent(),
                index: this.element.parent().children().index(this.element)
            };
            this.options.title = this.options.title || this.originalTitle;
            var that = this, options = this.options, title = options.title || "&#160;", uiDialog, uiDialogTitlebar, uiDialogTitlebarClose, uiDialogTitle, uiDialogButtonPane;
            uiDialog = (this.uiDialog = $("<div>"))
                .addClass(uiDialogClasses + options.dialogClass)
                .css({
                display: "none",
                outline: "none",
                zIndex: options.zIndex
            })
                .attr("tabIndex", -1)
                .keydown(function (event) {
                if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
                    event.keyCode === $.ui.keyCode.ESCAPE) {
                    that.close(event);
                    event.preventDefault();
                }
            })
                .mousedown(function (event) {
                that.moveToTop(false, event);
            })
                .appendTo("body");
            this.element
                .show()
                .removeAttr("title")
                .addClass("ui-dialog-content ui-widget-content")
                .appendTo(uiDialog);
            uiDialogTitlebar = (this.uiDialogTitlebar = $("<div>"))
                .addClass("ui-dialog-titlebar  ui-widget-header  " +
                "ui-corner-all  ui-helper-clearfix")
                .on("mousedown", function () {
                uiDialog.focus();
            })
                .prependTo(uiDialog);
            uiDialogTitlebarClose = $("<a href='#'></a>")
                .addClass("ui-dialog-titlebar-close  ui-corner-all")
                .attr("role", "button")
                .click(function (event) {
                event.preventDefault();
                that.close(event);
            })
                .appendTo(uiDialogTitlebar);
            (this.uiDialogTitlebarCloseText = $("<span>"))
                .addClass("ui-icon ui-icon-closethick")
                .text(options.closeText)
                .appendTo(uiDialogTitlebarClose);
            uiDialogTitle = $("<span>")
                .uniqueId()
                .addClass("ui-dialog-title")
                .html(title)
                .prependTo(uiDialogTitlebar);
            uiDialogButtonPane = (this.uiDialogButtonPane = $("<div>"))
                .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
            (this.uiButtonSet = $("<div>"))
                .addClass("ui-dialog-buttonset")
                .appendTo(uiDialogButtonPane);
            uiDialog.attr({
                role: "dialog",
                "aria-labelledby": uiDialogTitle.attr("id")
            });
            uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
            this._hoverable(uiDialogTitlebarClose);
            this._focusable(uiDialogTitlebarClose);
            if (options.draggable && $.fn.draggable) {
                this._makeDraggable();
            }
            if (options.resizable && $.fn.resizable) {
                this._makeResizable();
            }
            this._createButtons(options.buttons);
            this._isOpen = false;
            if ($.fn.bgiframe) {
                uiDialog.bgiframe();
            }
            this._on(uiDialog, { keydown: function (event) {
                    if (!options.modal || event.keyCode !== $.ui.keyCode.TAB) {
                        return;
                    }
                    var tabbables = $(":tabbable", uiDialog), first = tabbables.filter(":first"), last = tabbables.filter(":last");
                    if (event.target === last[0] && !event.shiftKey) {
                        first.focus(1);
                        return false;
                    }
                    else if (event.target === first[0] && event.shiftKey) {
                        last.focus(1);
                        return false;
                    }
                } });
        },
        _init: function () {
            if (this.options.autoOpen) {
                this.open();
            }
        },
        _destroy: function () {
            var next, oldPosition = this.oldPosition;
            if (this.overlay) {
                this.overlay.destroy();
            }
            this.uiDialog.hide();
            this.element
                .removeClass("ui-dialog-content ui-widget-content")
                .hide()
                .appendTo("body");
            this.uiDialog.remove();
            if (this.originalTitle) {
                this.element.attr("title", this.originalTitle);
            }
            next = oldPosition.parent.children().eq(oldPosition.index);
            if (next.length && next[0] !== this.element[0]) {
                next.before(this.element);
            }
            else {
                oldPosition.parent.append(this.element);
            }
        },
        widget: function () {
            return this.uiDialog;
        },
        close: function (event) {
            var that = this, maxZ, thisZ;
            if (!this._isOpen) {
                return;
            }
            if (false === this._trigger("beforeClose", event)) {
                return;
            }
            this._isOpen = false;
            if (this.overlay) {
                this.overlay.destroy();
            }
            if (this.options.hide) {
                this._hide(this.uiDialog, this.options.hide, function () {
                    that._trigger("close", event);
                });
            }
            else {
                this.uiDialog.hide();
                this._trigger("close", event);
            }
            $.ui.dialog.overlay.resize();
            if (this.options.modal) {
                maxZ = 0;
                $(".ui-dialog").each(function () {
                    if (this !== that.uiDialog[0]) {
                        thisZ = $(this).css("z-index");
                        if (!isNaN(thisZ)) {
                            maxZ = Math.max(maxZ, thisZ);
                        }
                    }
                });
                $.ui.dialog.maxZ = maxZ;
            }
            return this;
        },
        isOpen: function () {
            return this._isOpen;
        },
        moveToTop: function (force, event) {
            var options = this.options, saveScroll;
            if ((options.modal && !force) ||
                (!options.stack && !options.modal)) {
                return this._trigger("focus", event);
            }
            if (options.zIndex > $.ui.dialog.maxZ) {
                $.ui.dialog.maxZ = options.zIndex;
            }
            if (this.overlay) {
                $.ui.dialog.maxZ += 1;
                $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ;
                this.overlay.$el.css("z-index", $.ui.dialog.overlay.maxZ);
            }
            saveScroll = {
                scrollTop: this.element.scrollTop(),
                scrollLeft: this.element.scrollLeft()
            };
            $.ui.dialog.maxZ += 1;
            this.uiDialog.css("z-index", $.ui.dialog.maxZ);
            this.element.attr(saveScroll);
            this._trigger("focus", event);
            return this;
        },
        open: function () {
            if (this._isOpen) {
                return;
            }
            var hasFocus, options = this.options, uiDialog = this.uiDialog;
            this._size();
            this._position(options.position);
            uiDialog.show(options.show);
            this.overlay = options.modal ? new $.ui.dialog.overlay(this) : null;
            this.moveToTop(true);
            hasFocus = this.element.find(":tabbable");
            if (!hasFocus.length) {
                hasFocus = this.uiDialogButtonPane.find(":tabbable");
                if (!hasFocus.length) {
                    hasFocus = uiDialog;
                }
            }
            hasFocus.eq(0).focus();
            this._isOpen = true;
            this._trigger("open");
            return this;
        },
        _createButtons: function (buttons) {
            var that = this, hasButtons = false;
            this.uiDialogButtonPane.remove();
            this.uiButtonSet.empty();
            if (typeof buttons === "object" && buttons !== null) {
                $.each(buttons, function () {
                    return !(hasButtons = true);
                });
            }
            if (hasButtons) {
                $.each(buttons, function (name, props) {
                    var button, click;
                    props = typeof props === 'function' ?
                        { click: props, text: name } :
                        props;
                    props = $.extend({ type: "button" }, props);
                    click = props.click;
                    props.click = function () {
                        click.apply(that.element[0], arguments);
                    };
                    button = $("<button></button>", props)
                        .appendTo(that.uiButtonSet);
                    if ($.fn.button) {
                        button.button();
                    }
                });
                this.uiDialog.addClass("ui-dialog-buttons");
                this.uiDialogButtonPane.appendTo(this.uiDialog);
            }
            else {
                this.uiDialog.removeClass("ui-dialog-buttons");
            }
        },
        _makeDraggable: function () {
            var that = this, options = this.options;
            function filteredUi(ui) {
                return {
                    position: ui.position,
                    offset: ui.offset
                };
            }
            this.uiDialog.draggable({
                cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
                handle: ".ui-dialog-titlebar",
                containment: "document",
                start: function (event, ui) {
                    $(this)
                        .addClass("ui-dialog-dragging");
                    that._trigger("dragStart", event, filteredUi(ui));
                },
                drag: function (event, ui) {
                    that._trigger("drag", event, filteredUi(ui));
                },
                stop: function (event, ui) {
                    options.position = [
                        ui.position.left - that.document.scrollLeft(),
                        ui.position.top - that.document.scrollTop()
                    ];
                    $(this)
                        .removeClass("ui-dialog-dragging");
                    that._trigger("dragStop", event, filteredUi(ui));
                    $.ui.dialog.overlay.resize();
                }
            });
        },
        _makeResizable: function (handles) {
            handles = (handles === undefined ? this.options.resizable : handles);
            var that = this, options = this.options, position = this.uiDialog.css("position"), resizeHandles = typeof handles === 'string' ?
                handles :
                "n,e,s,w,se,sw,ne,nw";
            function filteredUi(ui) {
                return {
                    originalPosition: ui.originalPosition,
                    originalSize: ui.originalSize,
                    position: ui.position,
                    size: ui.size
                };
            }
            this.uiDialog.resizable({
                cancel: ".ui-dialog-content",
                containment: "document",
                alsoResize: this.element,
                maxWidth: options.maxWidth,
                maxHeight: options.maxHeight,
                minWidth: options.minWidth,
                minHeight: this._minHeight(),
                handles: resizeHandles,
                start: function (event, ui) {
                    $(this).addClass("ui-dialog-resizing");
                    that._trigger("resizeStart", event, filteredUi(ui));
                },
                resize: function (event, ui) {
                    that._trigger("resize", event, filteredUi(ui));
                },
                stop: function (event, ui) {
                    $(this).removeClass("ui-dialog-resizing");
                    options.height = $(this).height();
                    options.width = $(this).width();
                    that._trigger("resizeStop", event, filteredUi(ui));
                    $.ui.dialog.overlay.resize();
                }
            })
                .css("position", position)
                .find(".ui-resizable-se")
                .addClass("ui-icon ui-icon-grip-diagonal-se");
        },
        _minHeight: function () {
            var options = this.options;
            if (options.height === "auto") {
                return options.minHeight;
            }
            else {
                return Math.min(options.minHeight, options.height);
            }
        },
        _position: function (position) {
            var myAt = [], offset = [0, 0], isVisible;
            if (position) {
                if (typeof position === "string" || (typeof position === "object" && "0" in position)) {
                    myAt = position.split ? position.split(" ") : [position[0], position[1]];
                    if (myAt.length === 1) {
                        myAt[1] = myAt[0];
                    }
                    $.each(["left", "top"], function (i, offsetPosition) {
                        if (+myAt[i] === myAt[i]) {
                            offset[i] = myAt[i];
                            myAt[i] = offsetPosition;
                        }
                    });
                    position = {
                        my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
                            myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
                        at: myAt.join(" ")
                    };
                }
                position = $.extend({}, $.ui.dialog.prototype.options.position, position);
            }
            else {
                position = $.ui.dialog.prototype.options.position;
            }
            isVisible = this.uiDialog.is(":visible");
            if (!isVisible) {
                this.uiDialog.show();
            }
            this.uiDialog.position(position);
            if (!isVisible) {
                this.uiDialog.hide();
            }
        },
        _setOptions: function (options) {
            var that = this, resizableOptions = {}, resize = false;
            $.each(options, function (key, value) {
                that._setOption(key, value);
                if (key in sizeRelatedOptions) {
                    resize = true;
                }
                if (key in resizableRelatedOptions) {
                    resizableOptions[key] = value;
                }
            });
            if (resize) {
                this._size();
            }
            if (this.uiDialog.is(":data(resizable)")) {
                this.uiDialog.resizable("option", resizableOptions);
            }
        },
        _setOption: function (key, value) {
            var isDraggable, isResizable, uiDialog = this.uiDialog;
            switch (key) {
                case "buttons":
                    this._createButtons(value);
                    break;
                case "closeText":
                    this.uiDialogTitlebarCloseText.text("" + value);
                    break;
                case "dialogClass":
                    uiDialog
                        .removeClass(this.options.dialogClass)
                        .addClass(uiDialogClasses + value);
                    break;
                case "disabled":
                    if (value) {
                        uiDialog.addClass("ui-dialog-disabled");
                    }
                    else {
                        uiDialog.removeClass("ui-dialog-disabled");
                    }
                    break;
                case "draggable":
                    isDraggable = uiDialog.is(":data(draggable)");
                    if (isDraggable && !value) {
                        uiDialog.draggable("destroy");
                    }
                    if (!isDraggable && value) {
                        this._makeDraggable();
                    }
                    break;
                case "position":
                    this._position(value);
                    break;
                case "resizable":
                    isResizable = uiDialog.is(":data(resizable)");
                    if (isResizable && !value) {
                        uiDialog.resizable("destroy");
                    }
                    if (isResizable && typeof value === "string") {
                        uiDialog.resizable("option", "handles", value);
                    }
                    if (!isResizable && value !== false) {
                        this._makeResizable(value);
                    }
                    break;
                case "title":
                    $(".ui-dialog-title", this.uiDialogTitlebar)
                        .html("" + (value || "&#160;"));
                    break;
            }
            this._super(key, value);
        },
        _size: function () {
            var nonContentHeight, minContentHeight, autoHeight, options = this.options, isVisible = this.uiDialog.is(":visible");
            this.element.show().css({
                width: "auto",
                minHeight: 0,
                height: 0
            });
            if (options.minWidth > options.width) {
                options.width = options.minWidth;
            }
            nonContentHeight = this.uiDialog.css({
                height: "auto",
                width: options.width
            })
                .outerHeight();
            minContentHeight = Math.max(0, options.minHeight - nonContentHeight);
            if (options.height === "auto") {
                if ($.support.minHeight) {
                    this.element.css({
                        minHeight: minContentHeight,
                        height: "auto"
                    });
                }
                else {
                    this.uiDialog.show();
                    autoHeight = this.element.css("height", "auto").height();
                    if (!isVisible) {
                        this.uiDialog.hide();
                    }
                    this.element.height(Math.max(autoHeight, minContentHeight));
                }
            }
            else {
                this.element.height(Math.max(options.height - nonContentHeight, 0));
            }
            if (this.uiDialog.is(":data(resizable)")) {
                this.uiDialog.resizable("option", "minHeight", this._minHeight());
            }
        }
    });
    $.extend($.ui.dialog, {
        uuid: 0,
        maxZ: 0,
        getTitleId: function ($el) {
            var id = $el.attr("id");
            if (!id) {
                this.uuid += 1;
                id = this.uuid;
            }
            return "ui-dialog-title-" + id;
        },
        overlay: function (dialog) {
            this.$el = $.ui.dialog.overlay.create(dialog);
        }
    });
    $.extend($.ui.dialog.overlay, {
        instances: [],
        oldInstances: [],
        maxZ: 0,
        events: $.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (event) {
            return event + ".dialog-overlay";
        }).join(" "),
        create: function (dialog) {
            if (this.instances.length === 0) {
                setTimeout(function () {
                    if ($.ui.dialog.overlay.instances.length) {
                        $(document).on($.ui.dialog.overlay.events, function (event) {
                            if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
                                return false;
                            }
                        });
                    }
                }, 1);
                $(window).on("resize.dialog-overlay", $.ui.dialog.overlay.resize);
            }
            var $el = (this.oldInstances.pop() || $("<div>").addClass("ui-widget-overlay"));
            $(document).on("keydown.dialog-overlay", function (event) {
                var instances = $.ui.dialog.overlay.instances;
                if (instances.length !== 0 && instances[instances.length - 1] === $el &&
                    dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
                    event.keyCode === $.ui.keyCode.ESCAPE) {
                    dialog.close(event);
                    event.preventDefault();
                }
            });
            $el.appendTo(document.body).css({
                width: this.width(),
                height: this.height()
            });
            if ($.fn.bgiframe) {
                $el.bgiframe();
            }
            this.instances.push($el);
            return $el;
        },
        destroy: function ($el) {
            var indexOf = $.inArray($el, this.instances), maxZ = 0;
            if (indexOf !== -1) {
                this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
            }
            if (this.instances.length === 0) {
                $([document, window]).off(".dialog-overlay");
            }
            $el.height(0).width(0).remove();
            $.each(this.instances, function () {
                maxZ = Math.max(maxZ, this.css("z-index"));
            });
            this.maxZ = maxZ;
        },
        height: function () {
            var scrollHeight, offsetHeight;
            if ($.ui.ie) {
                scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
                offsetHeight = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
                if (scrollHeight < offsetHeight) {
                    return $(window).height() + "px";
                }
                else {
                    return scrollHeight + "px";
                }
            }
            else {
                return $(document).height() + "px";
            }
        },
        width: function () {
            var scrollWidth, offsetWidth;
            if ($.ui.ie) {
                scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
                offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
                if (scrollWidth < offsetWidth) {
                    return $(window).width() + "px";
                }
                else {
                    return scrollWidth + "px";
                }
            }
            else {
                return $(document).width() + "px";
            }
        },
        resize: function () {
            var $overlays = $([]);
            $.each($.ui.dialog.overlay.instances, function () {
                $overlays = $overlays.add(this);
            });
            $overlays.css({
                width: 0,
                height: 0
            }).css({
                width: $.ui.dialog.overlay.width(),
                height: $.ui.dialog.overlay.height()
            });
        }
    });
    $.extend($.ui.dialog.overlay.prototype, {
        destroy: function () {
            $.ui.dialog.overlay.destroy(this.$el);
        }
    });
}(jQuery));
(function ($, undefined) {
    var rvertical = /up|down|vertical/, rpositivemotion = /up|left|vertical|horizontal/;
    $.effects.effect.blind = function (o, done) {
        var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), direction = o.direction || "up", vertical = rvertical.test(direction), ref = vertical ? "height" : "width", ref2 = vertical ? "top" : "left", motion = rpositivemotion.test(direction), animation = {}, show = mode === "show", wrapper, distance, margin;
        if (el.parent().is(".ui-effects-wrapper")) {
            $.effects.save(el.parent(), props);
        }
        else {
            $.effects.save(el, props);
        }
        el.show();
        wrapper = $.effects.createWrapper(el).css({
            overflow: "hidden"
        });
        distance = wrapper[ref]();
        margin = parseFloat(wrapper.css(ref2)) || 0;
        animation[ref] = show ? distance : 0;
        if (!motion) {
            el
                .css(vertical ? "bottom" : "right", 0)
                .css(vertical ? "top" : "left", "auto")
                .css({ position: "absolute" });
            animation[ref2] = show ? margin : distance + margin;
        }
        if (show) {
            wrapper.css(ref, 0);
            if (!motion) {
                wrapper.css(ref2, margin + distance);
            }
        }
        wrapper.animate(animation, {
            duration: o.duration,
            easing: o.easing,
            queue: false,
            complete: function () {
                if (mode === "hide") {
                    el.hide();
                }
                $.effects.restore(el, props);
                $.effects.removeWrapper(el);
                done();
            }
        });
    };
})(jQuery);
(function ($, undefined) {
    $.effects.effect.clip = function (o, done) {
        var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), show = mode === "show", direction = o.direction || "vertical", vert = direction === "vertical", size = vert ? "height" : "width", position = vert ? "top" : "left", animation = {}, wrapper, animate, distance;
        $.effects.save(el, props);
        el.show();
        wrapper = $.effects.createWrapper(el).css({
            overflow: "hidden"
        });
        animate = (el[0].tagName === "IMG") ? wrapper : el;
        distance = animate[size]();
        if (show) {
            animate.css(size, 0);
            animate.css(position, distance / 2);
        }
        animation[size] = show ? distance : 0;
        animation[position] = show ? 0 : distance / 2;
        animate.animate(animation, {
            queue: false,
            duration: o.duration,
            easing: o.easing,
            complete: function () {
                if (!show) {
                    el.hide();
                }
                $.effects.restore(el, props);
                $.effects.removeWrapper(el);
                done();
            }
        });
    };
})(jQuery);
(function ($, undefined) {
    $.effects.effect.drop = function (o, done) {
        var el = $(this), props = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"], mode = $.effects.setMode(el, o.mode || "hide"), show = mode === "show", direction = o.direction || "left", ref = (direction === "up" || direction === "down") ? "top" : "left", motion = (direction === "up" || direction === "left") ? "pos" : "neg", animation = {
            opacity: show ? 1 : 0
        }, distance;
        $.effects.save(el, props);
        el.show();
        $.effects.createWrapper(el);
        distance = o.distance || el[ref === "top" ? "outerHeight" : "outerWidth"](true) / 2;
        if (show) {
            el
                .css("opacity", 0)
                .css(ref, motion === "pos" ? -distance : distance);
        }
        animation[ref] = (show ?
            (motion === "pos" ? "+=" : "-=") :
            (motion === "pos" ? "-=" : "+=")) +
            distance;
        el.animate(animation, {
            queue: false,
            duration: o.duration,
            easing: o.easing,
            complete: function () {
                if (mode === "hide") {
                    el.hide();
                }
                $.effects.restore(el, props);
                $.effects.removeWrapper(el);
                done();
            }
        });
    };
})(jQuery);
(function ($, undefined) {
    $.effects.effect.highlight = function (o, done) {
        var elem = $(this), props = ["backgroundImage", "backgroundColor", "opacity"], mode = $.effects.setMode(elem, o.mode || "show"), animation = {
            backgroundColor: elem.css("backgroundColor")
        };
        if (mode === "hide") {
            animation.opacity = 0;
        }
        $.effects.save(elem, props);
        elem
            .show()
            .css({
            backgroundImage: "none",
            backgroundColor: o.color || "#ffff99"
        })
            .animate(animation, {
            queue: false,
            duration: o.duration,
            easing: o.easing,
            complete: function () {
                if (mode === "hide") {
                    elem.hide();
                }
                $.effects.restore(elem, props);
                done();
            }
        });
    };
})(jQuery);
(function ($, undefined) {
    $.effects.effect.puff = function (o, done) {
        var elem = $(this), mode = $.effects.setMode(elem, o.mode || "hide"), hide = mode === "hide", percent = parseInt(o.percent, 10) || 150, factor = percent / 100, original = {
            height: elem.height(),
            width: elem.width(),
            outerHeight: elem.outerHeight(),
            outerWidth: elem.outerWidth()
        };
        $.extend(o, {
            effect: "scale",
            queue: false,
            fade: true,
            mode: mode,
            complete: done,
            percent: hide ? percent : 100,
            from: hide ?
                original :
                {
                    height: original.height * factor,
                    width: original.width * factor,
                    outerHeight: original.outerHeight * factor,
                    outerWidth: original.outerWidth * factor
                }
        });
        elem.effect(o);
    };
    $.effects.effect.scale = function (o, done) {
        var el = $(this), options = $.extend(true, {}, o), mode = $.effects.setMode(el, o.mode || "effect"), percent = parseInt(o.percent, 10) ||
            (parseInt(o.percent, 10) === 0 ? 0 : (mode === "hide" ? 0 : 100)), direction = o.direction || "both", origin = o.origin, original = {
            height: el.height(),
            width: el.width(),
            outerHeight: el.outerHeight(),
            outerWidth: el.outerWidth()
        }, factor = {
            y: direction !== "horizontal" ? (percent / 100) : 1,
            x: direction !== "vertical" ? (percent / 100) : 1
        };
        options.effect = "size";
        options.queue = false;
        options.complete = done;
        if (mode !== "effect") {
            options.origin = origin || ["middle", "center"];
            options.restore = true;
        }
        options.from = o.from || (mode === "show" ? {
            height: 0,
            width: 0,
            outerHeight: 0,
            outerWidth: 0
        } : original);
        options.to = {
            height: original.height * factor.y,
            width: original.width * factor.x,
            outerHeight: original.outerHeight * factor.y,
            outerWidth: original.outerWidth * factor.x
        };
        if (options.fade) {
            if (mode === "show") {
                options.from.opacity = 0;
                options.to.opacity = 1;
            }
            if (mode === "hide") {
                options.from.opacity = 1;
                options.to.opacity = 0;
            }
        }
        el.effect(options);
    };
    $.effects.effect.size = function (o, done) {
        var original, baseline, factor, el = $(this), props0 = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], props1 = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], props2 = ["width", "height", "overflow"], cProps = ["fontSize"], vProps = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], hProps = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], mode = $.effects.setMode(el, o.mode || "effect"), restore = o.restore || mode !== "effect", scale = o.scale || "both", origin = o.origin || ["middle", "center"], position = el.css("position"), props = restore ? props0 : props1, zero = {
            height: 0,
            width: 0,
            outerHeight: 0,
            outerWidth: 0
        };
        if (mode === "show") {
            el.show();
        }
        original = {
            height: el.height(),
            width: el.width(),
            outerHeight: el.outerHeight(),
            outerWidth: el.outerWidth()
        };
        if (o.mode === "toggle" && mode === "show") {
            el.from = o.to || zero;
            el.to = o.from || original;
        }
        else {
            el.from = o.from || (mode === "show" ? zero : original);
            el.to = o.to || (mode === "hide" ? zero : original);
        }
        factor = {
            from: {
                y: el.from.height / original.height,
                x: el.from.width / original.width
            },
            to: {
                y: el.to.height / original.height,
                x: el.to.width / original.width
            }
        };
        if (scale === "box" || scale === "both") {
            if (factor.from.y !== factor.to.y) {
                props = props.concat(vProps);
                el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
                el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
            }
            if (factor.from.x !== factor.to.x) {
                props = props.concat(hProps);
                el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
                el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
            }
        }
        if (scale === "content" || scale === "both") {
            if (factor.from.y !== factor.to.y) {
                props = props.concat(cProps).concat(props2);
                el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
                el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
            }
        }
        $.effects.save(el, props);
        el.show();
        $.effects.createWrapper(el);
        el.css("overflow", "hidden").css(el.from);
        if (origin) {
            baseline = $.effects.getBaseline(origin, original);
            el.from.top = (original.outerHeight - el.outerHeight()) * baseline.y;
            el.from.left = (original.outerWidth - el.outerWidth()) * baseline.x;
            el.to.top = (original.outerHeight - el.to.outerHeight) * baseline.y;
            el.to.left = (original.outerWidth - el.to.outerWidth) * baseline.x;
        }
        el.css(el.from);
        if (scale === "content" || scale === "both") {
            vProps = vProps.concat(["marginTop", "marginBottom"]).concat(cProps);
            hProps = hProps.concat(["marginLeft", "marginRight"]);
            props2 = props0.concat(vProps).concat(hProps);
            el.find("*[width]").each(function () {
                var child = $(this), c_original = {
                    height: child.height(),
                    width: child.width(),
                    outerHeight: child.outerHeight(),
                    outerWidth: child.outerWidth()
                };
                if (restore) {
                    $.effects.save(child, props2);
                }
                child.from = {
                    height: c_original.height * factor.from.y,
                    width: c_original.width * factor.from.x,
                    outerHeight: c_original.outerHeight * factor.from.y,
                    outerWidth: c_original.outerWidth * factor.from.x
                };
                child.to = {
                    height: c_original.height * factor.to.y,
                    width: c_original.width * factor.to.x,
                    outerHeight: c_original.height * factor.to.y,
                    outerWidth: c_original.width * factor.to.x
                };
                if (factor.from.y !== factor.to.y) {
                    child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
                    child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
                }
                if (factor.from.x !== factor.to.x) {
                    child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
                    child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
                }
                child.css(child.from);
                child.animate(child.to, o.duration, o.easing, function () {
                    if (restore) {
                        $.effects.restore(child, props2);
                    }
                });
            });
        }
        el.animate(el.to, {
            queue: false,
            duration: o.duration,
            easing: o.easing,
            complete: function () {
                if (el.to.opacity === 0) {
                    el.css("opacity", el.from.opacity);
                }
                if (mode === "hide") {
                    el.hide();
                }
                $.effects.restore(el, props);
                if (!restore) {
                    if (position === "static") {
                        el.css({
                            position: "relative",
                            top: el.to.top,
                            left: el.to.left
                        });
                    }
                    else {
                        $.each(["top", "left"], function (idx, pos) {
                            el.css(pos, function (_, str) {
                                var val = parseInt(str, 10), toRef = idx ? el.to.left : el.to.top;
                                if (str === "auto") {
                                    return toRef + "px";
                                }
                                return val + toRef + "px";
                            });
                        });
                    }
                }
                $.effects.removeWrapper(el);
                done();
            }
        });
    };
})(jQuery);
(function ($, undefined) {
    $.effects.effect.shake = function (o, done) {
        var el = $(this), props = ["position", "top", "bottom", "left", "right", "height", "width"], mode = $.effects.setMode(el, o.mode || "effect"), direction = o.direction || "left", distance = o.distance || 20, times = o.times || 3, anims = times * 2 + 1, speed = Math.round(o.duration / anims), ref = (direction === "up" || direction === "down") ? "top" : "left", positiveMotion = (direction === "up" || direction === "left"), animation = {}, animation1 = {}, animation2 = {}, i, queue = el.queue(), queuelen = queue.length;
        $.effects.save(el, props);
        el.show();
        $.effects.createWrapper(el);
        animation[ref] = (positiveMotion ? "-=" : "+=") + distance;
        animation1[ref] = (positiveMotion ? "+=" : "-=") + distance * 2;
        animation2[ref] = (positiveMotion ? "-=" : "+=") + distance * 2;
        el.animate(animation, speed, o.easing);
        for (i = 1; i < times; i++) {
            el.animate(animation1, speed, o.easing).animate(animation2, speed, o.easing);
        }
        el
            .animate(animation1, speed, o.easing)
            .animate(animation, speed / 2, o.easing)
            .queue(function () {
            if (mode === "hide") {
                el.hide();
            }
            $.effects.restore(el, props);
            $.effects.removeWrapper(el);
            done();
        });
        if (queuelen > 1) {
            queue.splice.apply(queue, [1, 0].concat(queue.splice(queuelen, anims + 1)));
        }
        el.dequeue();
    };
})(jQuery);
(function ($, undefined) {
    var mouseHandled = false;
    $.widget("ui.menu", {
        version: "1.9.2",
        defaultElement: "<ul>",
        delay: 300,
        options: {
            icons: {
                submenu: "ui-icon-carat-1-e"
            },
            menus: "ul",
            position: {
                my: "left top",
                at: "right top"
            },
            role: "menu",
            blur: null,
            focus: null,
            select: null
        },
        _create: function () {
            this.activeMenu = this.element;
            this.element
                .uniqueId()
                .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
                .toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length)
                .attr({
                role: this.options.role,
                tabIndex: 0
            })
                .on("click" + this.eventNamespace, $.proxy(function (event) {
                if (this.options.disabled) {
                    event.preventDefault();
                }
            }, this));
            if (this.options.disabled) {
                this.element
                    .addClass("ui-state-disabled")
                    .attr("aria-disabled", "true");
            }
            this._on({
                "mousedown .ui-menu-item > a": function (event) {
                    event.preventDefault();
                },
                "click .ui-state-disabled > a": function (event) {
                    event.preventDefault();
                },
                "click .ui-menu-item:has(a)": function (event) {
                    var target = $(event.target).closest(".ui-menu-item");
                    if (!mouseHandled && target.not(".ui-state-disabled").length) {
                        mouseHandled = true;
                        this.select(event);
                        if (target.has(".ui-menu").length) {
                            this.expand(event);
                        }
                        else if (!this.element.is(":focus")) {
                            this.element.trigger("focus", [true]);
                            if (this.active && this.active.parents(".ui-menu").length === 1) {
                                clearTimeout(this.timer);
                            }
                        }
                    }
                },
                "mouseenter .ui-menu-item": function (event) {
                    var target = $(event.currentTarget);
                    target.siblings().children(".ui-state-active").removeClass("ui-state-active");
                    this.focus(event, target);
                },
                mouseleave: "collapseAll",
                "mouseleave .ui-menu": "collapseAll",
                focus: function (event, keepActiveItem) {
                    var item = this.active || this.element.children(".ui-menu-item").eq(0);
                    if (!keepActiveItem) {
                        this.focus(event, item);
                    }
                },
                blur: function (event) {
                    this._delay(function () {
                        if (!$.contains(this.element[0], this.document[0].activeElement)) {
                            this.collapseAll(event);
                        }
                    });
                },
                keydown: "_keydown"
            });
            this.refresh();
            this._on(this.document, {
                click: function (event) {
                    if (!$(event.target).closest(".ui-menu").length) {
                        this.collapseAll(event);
                    }
                    mouseHandled = false;
                }
            });
        },
        _destroy: function () {
            this.element
                .removeAttr("aria-activedescendant")
                .find(".ui-menu").addBack()
                .removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons")
                .removeAttr("role")
                .removeAttr("tabIndex")
                .removeAttr("aria-labelledby")
                .removeAttr("aria-expanded")
                .removeAttr("aria-hidden")
                .removeAttr("aria-disabled")
                .removeUniqueId()
                .show();
            this.element.find(".ui-menu-item")
                .removeClass("ui-menu-item")
                .removeAttr("role")
                .removeAttr("aria-disabled")
                .children("a")
                .removeUniqueId()
                .removeClass("ui-corner-all ui-state-hover")
                .removeAttr("tabIndex")
                .removeAttr("role")
                .removeAttr("aria-haspopup")
                .children().each(function () {
                var elem = $(this);
                if (elem.data("ui-menu-submenu-carat")) {
                    elem.remove();
                }
            });
            this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content");
        },
        _keydown: function (event) {
            var match, prev, character, skip, regex, preventDefault = true;
            function escape(value) {
                return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
            }
            switch (event.keyCode) {
                case $.ui.keyCode.PAGE_UP:
                    this.previousPage(event);
                    break;
                case $.ui.keyCode.PAGE_DOWN:
                    this.nextPage(event);
                    break;
                case $.ui.keyCode.HOME:
                    this._move("first", "first", event);
                    break;
                case $.ui.keyCode.END:
                    this._move("last", "last", event);
                    break;
                case $.ui.keyCode.UP:
                    this.previous(event);
                    break;
                case $.ui.keyCode.DOWN:
                    this.next(event);
                    break;
                case $.ui.keyCode.LEFT:
                    this.collapse(event);
                    break;
                case $.ui.keyCode.RIGHT:
                    if (this.active && !this.active.is(".ui-state-disabled")) {
                        this.expand(event);
                    }
                    break;
                case $.ui.keyCode.ENTER:
                case $.ui.keyCode.SPACE:
                    this._activate(event);
                    break;
                case $.ui.keyCode.ESCAPE:
                    this.collapse(event);
                    break;
                default:
                    preventDefault = false;
                    prev = this.previousFilter || "";
                    character = String.fromCharCode(event.keyCode);
                    skip = false;
                    clearTimeout(this.filterTimer);
                    if (character === prev) {
                        skip = true;
                    }
                    else {
                        character = prev + character;
                    }
                    regex = new RegExp("^" + escape(character), "i");
                    match = this.activeMenu.children(".ui-menu-item").filter(function () {
                        return regex.test($(this).children("a").text());
                    });
                    match = skip && match.index(this.active.next()) !== -1 ?
                        this.active.nextAll(".ui-menu-item") :
                        match;
                    if (!match.length) {
                        character = String.fromCharCode(event.keyCode);
                        regex = new RegExp("^" + escape(character), "i");
                        match = this.activeMenu.children(".ui-menu-item").filter(function () {
                            return regex.test($(this).children("a").text());
                        });
                    }
                    if (match.length) {
                        this.focus(event, match);
                        if (match.length > 1) {
                            this.previousFilter = character;
                            this.filterTimer = this._delay(function () {
                                delete this.previousFilter;
                            }, 1000);
                        }
                        else {
                            delete this.previousFilter;
                        }
                    }
                    else {
                        delete this.previousFilter;
                    }
            }
            if (preventDefault) {
                event.preventDefault();
            }
        },
        _activate: function (event) {
            if (!this.active.is(".ui-state-disabled")) {
                if (this.active.children("a[aria-haspopup='true']").length) {
                    this.expand(event);
                }
                else {
                    this.select(event);
                }
            }
        },
        refresh: function () {
            var menus, icon = this.options.icons.submenu, submenus = this.element.find(this.options.menus);
            submenus.filter(":not(.ui-menu)")
                .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
                .hide()
                .attr({
                role: this.options.role,
                "aria-hidden": "true",
                "aria-expanded": "false"
            })
                .each(function () {
                var menu = $(this), item = menu.prev("a"), submenuCarat = $("<span>")
                    .addClass("ui-menu-icon ui-icon " + icon)
                    .data("ui-menu-submenu-carat", true);
                item
                    .attr("aria-haspopup", "true")
                    .prepend(submenuCarat);
                menu.attr("aria-labelledby", item.attr("id"));
            });
            menus = submenus.add(this.element);
            menus.children(":not(.ui-menu-item):has(a)")
                .addClass("ui-menu-item")
                .attr("role", "presentation")
                .children("a")
                .uniqueId()
                .addClass("ui-corner-all")
                .attr({
                tabIndex: -1,
                role: this._itemRole()
            });
            menus.children(":not(.ui-menu-item)").each(function () {
                var item = $(this);
                if (!/[^\-—–\s]/.test(item.text())) {
                    item.addClass("ui-widget-content ui-menu-divider");
                }
            });
            menus.children(".ui-state-disabled").attr("aria-disabled", "true");
            if (this.active && !$.contains(this.element[0], this.active[0])) {
                this.blur();
            }
        },
        _itemRole: function () {
            return {
                menu: "menuitem",
                listbox: "option"
            }[this.options.role];
        },
        focus: function (event, item) {
            var nested, focused;
            this.blur(event, event && event.type === "focus");
            this._scrollIntoView(item);
            this.active = item.first();
            focused = this.active.children("a").addClass("ui-state-focus");
            if (this.options.role) {
                this.element.attr("aria-activedescendant", focused.attr("id"));
            }
            this.active
                .parent()
                .closest(".ui-menu-item")
                .children("a:first")
                .addClass("ui-state-active");
            if (event && event.type === "keydown") {
                this._close();
            }
            else {
                this.timer = this._delay(function () {
                    this._close();
                }, this.delay);
            }
            nested = item.children(".ui-menu");
            if (nested.length && (/^mouse/.test(event.type))) {
                this._startOpening(nested);
            }
            this.activeMenu = item.parent();
            this._trigger("focus", event, { item: item });
        },
        _scrollIntoView: function (item) {
            var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
            if (this._hasScroll()) {
                borderTop = parseFloat($.css(this.activeMenu[0], "borderTopWidth")) || 0;
                paddingTop = parseFloat($.css(this.activeMenu[0], "paddingTop")) || 0;
                offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
                scroll = this.activeMenu.scrollTop();
                elementHeight = this.activeMenu.height();
                itemHeight = item.height();
                if (offset < 0) {
                    this.activeMenu.scrollTop(scroll + offset);
                }
                else if (offset + itemHeight > elementHeight) {
                    this.activeMenu.scrollTop(scroll + offset - elementHeight + itemHeight);
                }
            }
        },
        blur: function (event, fromFocus) {
            if (!fromFocus) {
                clearTimeout(this.timer);
            }
            if (!this.active) {
                return;
            }
            this.active.children("a").removeClass("ui-state-focus");
            this.active = null;
            this._trigger("blur", event, { item: this.active });
        },
        _startOpening: function (submenu) {
            clearTimeout(this.timer);
            if (submenu.attr("aria-hidden") !== "true") {
                return;
            }
            this.timer = this._delay(function () {
                this._close();
                this._open(submenu);
            }, this.delay);
        },
        _open: function (submenu) {
            var position = $.extend({
                of: this.active
            }, this.options.position);
            clearTimeout(this.timer);
            this.element.find(".ui-menu").not(submenu.parents(".ui-menu"))
                .hide()
                .attr("aria-hidden", "true");
            submenu
                .show()
                .removeAttr("aria-hidden")
                .attr("aria-expanded", "true")
                .position(position);
        },
        collapseAll: function (event, all) {
            clearTimeout(this.timer);
            this.timer = this._delay(function () {
                var currentMenu = all ? this.element :
                    $(event && event.target).closest(this.element.find(".ui-menu"));
                if (!currentMenu.length) {
                    currentMenu = this.element;
                }
                this._close(currentMenu);
                this.blur(event);
                this.activeMenu = currentMenu;
            }, this.delay);
        },
        _close: function (startMenu) {
            if (!startMenu) {
                startMenu = this.active ? this.active.parent() : this.element;
            }
            startMenu
                .find(".ui-menu")
                .hide()
                .attr("aria-hidden", "true")
                .attr("aria-expanded", "false")
                .end()
                .find("a.ui-state-active")
                .removeClass("ui-state-active");
        },
        collapse: function (event) {
            var newItem = this.active &&
                this.active.parent().closest(".ui-menu-item", this.element);
            if (newItem && newItem.length) {
                this._close();
                this.focus(event, newItem);
            }
        },
        expand: function (event) {
            var newItem = this.active &&
                this.active
                    .children(".ui-menu ")
                    .children(".ui-menu-item")
                    .first();
            if (newItem && newItem.length) {
                this._open(newItem.parent());
                this._delay(function () {
                    this.focus(event, newItem);
                });
            }
        },
        next: function (event) {
            this._move("next", "first", event);
        },
        previous: function (event) {
            this._move("prev", "last", event);
        },
        isFirstItem: function () {
            return this.active && !this.active.prevAll(".ui-menu-item").length;
        },
        isLastItem: function () {
            return this.active && !this.active.nextAll(".ui-menu-item").length;
        },
        _move: function (direction, filter, event) {
            var next;
            if (this.active) {
                if (direction === "first" || direction === "last") {
                    next = this.active[direction === "first" ? "prevAll" : "nextAll"](".ui-menu-item")
                        .eq(-1);
                }
                else {
                    next = this.active[direction + "All"](".ui-menu-item")
                        .eq(0);
                }
            }
            if (!next || !next.length || !this.active) {
                next = this.activeMenu.children(".ui-menu-item")[filter]();
            }
            this.focus(event, next);
        },
        nextPage: function (event) {
            var item, base, height;
            if (!this.active) {
                this.next(event);
                return;
            }
            if (this.isLastItem()) {
                return;
            }
            if (this._hasScroll()) {
                base = this.active.offset().top;
                height = this.element.height();
                this.active.nextAll(".ui-menu-item").each(function () {
                    item = $(this);
                    return item.offset().top - base - height < 0;
                });
                this.focus(event, item);
            }
            else {
                this.focus(event, this.activeMenu.children(".ui-menu-item")[!this.active ? "first" : "last"]());
            }
        },
        previousPage: function (event) {
            var item, base, height;
            if (!this.active) {
                this.next(event);
                return;
            }
            if (this.isFirstItem()) {
                return;
            }
            if (this._hasScroll()) {
                base = this.active.offset().top;
                height = this.element.height();
                this.active.prevAll(".ui-menu-item").each(function () {
                    item = $(this);
                    return item.offset().top - base + height > 0;
                });
                this.focus(event, item);
            }
            else {
                this.focus(event, this.activeMenu.children(".ui-menu-item").first());
            }
        },
        _hasScroll: function () {
            return this.element.outerHeight() < this.element.prop("scrollHeight");
        },
        select: function (event) {
            this.active = this.active || $(event.target).closest(".ui-menu-item");
            var ui = { item: this.active };
            if (!this.active.has(".ui-menu").length) {
                this.collapseAll(event, true);
            }
            this._trigger("select", event, ui);
        }
    });
}(jQuery));
(function ($, undefined) {
    $.ui = $.ui || {};
    var cachedScrollbarWidth, max = Math.max, abs = Math.abs, round = Math.round, rhorizontal = /left|center|right/, rvertical = /top|center|bottom/, roffset = /[\+\-]\d+%?/, rposition = /^\w+/, rpercent = /%$/, _position = $.fn.position;
    function getOffsets(offsets, width, height) {
        return [
            parseInt(offsets[0], 10) * (rpercent.test(offsets[0]) ? width / 100 : 1),
            parseInt(offsets[1], 10) * (rpercent.test(offsets[1]) ? height / 100 : 1)
        ];
    }
    function parseCss(element, property) {
        return parseInt($.css(element, property), 10) || 0;
    }
    $.position = {
        scrollbarWidth: function () {
            if (cachedScrollbarWidth !== undefined) {
                return cachedScrollbarWidth;
            }
            var w1, w2, div = $("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), innerDiv = div.children()[0];
            $("body").append(div);
            w1 = innerDiv.offsetWidth;
            div.css("overflow", "scroll");
            w2 = innerDiv.offsetWidth;
            if (w1 === w2) {
                w2 = div[0].clientWidth;
            }
            div.remove();
            return (cachedScrollbarWidth = w1 - w2);
        },
        getScrollInfo: function (within) {
            var overflowX = within.isWindow ? "" : within.element.css("overflow-x"), overflowY = within.isWindow ? "" : within.element.css("overflow-y"), hasOverflowX = overflowX === "scroll" ||
                (overflowX === "auto" && within.width < within.element[0].scrollWidth), hasOverflowY = overflowY === "scroll" ||
                (overflowY === "auto" && within.height < within.element[0].scrollHeight);
            return {
                width: hasOverflowX ? $.position.scrollbarWidth() : 0,
                height: hasOverflowY ? $.position.scrollbarWidth() : 0
            };
        },
        isWindow: function (obj) {
            return obj != null && obj === obj.window;
        },
        getWithinInfo: function (element) {
            var withinElement = $(element || window), isWindow = this.isWindow(withinElement[0]), isDocument = !!withinElement[0] && withinElement[0].nodeType === 9, hasOffset = !isWindow && !isDocument;
            return {
                element: withinElement,
                isWindow: isWindow,
                offset: hasOffset ? $(element).offset() : { left: 0, top: 0 },
                scrollLeft: withinElement.scrollLeft(),
                scrollTop: withinElement.scrollTop(),
                width: isWindow ? withinElement.width() : withinElement.outerWidth(),
                height: isWindow ? withinElement.height() : withinElement.outerHeight()
            };
        }
    };
    $.fn.position = function (options) {
        if (!options || !options.of) {
            return _position.apply(this, arguments);
        }
        options = $.extend({}, options);
        var atOffset, targetWidth, targetHeight, targetOffset, basePosition, target = $(options.of), within = $.position.getWithinInfo(options.within), scrollInfo = $.position.getScrollInfo(within), targetElem = target[0], collision = (options.collision || "flip").split(" "), offsets = {};
        if (targetElem.nodeType === 9) {
            targetWidth = target.width();
            targetHeight = target.height();
            targetOffset = { top: 0, left: 0 };
        }
        else if ($.position.isWindow(targetElem)) {
            targetWidth = target.width();
            targetHeight = target.height();
            targetOffset = { top: target.scrollTop(), left: target.scrollLeft() };
        }
        else if (targetElem.preventDefault) {
            options.at = "left top";
            targetWidth = targetHeight = 0;
            targetOffset = { top: targetElem.pageY, left: targetElem.pageX };
        }
        else {
            targetWidth = target.outerWidth();
            targetHeight = target.outerHeight();
            targetOffset = target.offset();
        }
        basePosition = $.extend({}, targetOffset);
        $.each(["my", "at"], function () {
            var pos = (options[this] || "").split(" "), horizontalOffset, verticalOffset;
            if (pos.length === 1) {
                pos = rhorizontal.test(pos[0]) ?
                    pos.concat(["center"]) :
                    rvertical.test(pos[0]) ?
                        ["center"].concat(pos) :
                        ["center", "center"];
            }
            pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center";
            pos[1] = rvertical.test(pos[1]) ? pos[1] : "center";
            horizontalOffset = roffset.exec(pos[0]);
            verticalOffset = roffset.exec(pos[1]);
            offsets[this] = [
                horizontalOffset ? horizontalOffset[0] : 0,
                verticalOffset ? verticalOffset[0] : 0
            ];
            options[this] = [
                rposition.exec(pos[0])[0],
                rposition.exec(pos[1])[0]
            ];
        });
        if (collision.length === 1) {
            collision[1] = collision[0];
        }
        if (options.at[0] === "right") {
            basePosition.left += targetWidth;
        }
        else if (options.at[0] === "center") {
            basePosition.left += targetWidth / 2;
        }
        if (options.at[1] === "bottom") {
            basePosition.top += targetHeight;
        }
        else if (options.at[1] === "center") {
            basePosition.top += targetHeight / 2;
        }
        atOffset = getOffsets(offsets.at, targetWidth, targetHeight);
        basePosition.left += atOffset[0];
        basePosition.top += atOffset[1];
        return this.each(function () {
            var collisionPosition, using, elem = $(this), elemWidth = elem.outerWidth(), elemHeight = elem.outerHeight(), marginLeft = parseCss(this, "marginLeft"), marginTop = parseCss(this, "marginTop"), collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + scrollInfo.width, collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + scrollInfo.height, position = $.extend({}, basePosition), myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
            if (options.my[0] === "right") {
                position.left -= elemWidth;
            }
            else if (options.my[0] === "center") {
                position.left -= elemWidth / 2;
            }
            if (options.my[1] === "bottom") {
                position.top -= elemHeight;
            }
            else if (options.my[1] === "center") {
                position.top -= elemHeight / 2;
            }
            position.left += myOffset[0];
            position.top += myOffset[1];
            if (!$.support.offsetFractions) {
                position.left = round(position.left);
                position.top = round(position.top);
            }
            collisionPosition = {
                marginLeft: marginLeft,
                marginTop: marginTop
            };
            $.each(["left", "top"], function (i, dir) {
                if ($.ui.position[collision[i]]) {
                    $.ui.position[collision[i]][dir](position, {
                        targetWidth: targetWidth,
                        targetHeight: targetHeight,
                        elemWidth: elemWidth,
                        elemHeight: elemHeight,
                        collisionPosition: collisionPosition,
                        collisionWidth: collisionWidth,
                        collisionHeight: collisionHeight,
                        offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]],
                        my: options.my,
                        at: options.at,
                        within: within,
                        elem: elem
                    });
                }
            });
            if ($.fn.bgiframe) {
                elem.bgiframe();
            }
            if (options.using) {
                using = function (props) {
                    var left = targetOffset.left - position.left, right = left + targetWidth - elemWidth, top = targetOffset.top - position.top, bottom = top + targetHeight - elemHeight, feedback = {
                        target: {
                            element: target,
                            left: targetOffset.left,
                            top: targetOffset.top,
                            width: targetWidth,
                            height: targetHeight
                        },
                        element: {
                            element: elem,
                            left: position.left,
                            top: position.top,
                            width: elemWidth,
                            height: elemHeight
                        },
                        horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
                        vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
                    };
                    if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
                        feedback.horizontal = "center";
                    }
                    if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) {
                        feedback.vertical = "middle";
                    }
                    if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
                        feedback.important = "horizontal";
                    }
                    else {
                        feedback.important = "vertical";
                    }
                    options.using.call(this, props, feedback);
                };
            }
            elem.offset($.extend(position, { using: using }));
        });
    };
    $.ui.position = {
        fit: {
            left: function (position, data) {
                var within = data.within, withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, outerWidth = within.width, collisionPosLeft = position.left - data.collisionPosition.marginLeft, overLeft = withinOffset - collisionPosLeft, overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, newOverRight;
                if (data.collisionWidth > outerWidth) {
                    if (overLeft > 0 && overRight <= 0) {
                        newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
                        position.left += overLeft - newOverRight;
                    }
                    else if (overRight > 0 && overLeft <= 0) {
                        position.left = withinOffset;
                    }
                    else {
                        if (overLeft > overRight) {
                            position.left = withinOffset + outerWidth - data.collisionWidth;
                        }
                        else {
                            position.left = withinOffset;
                        }
                    }
                }
                else if (overLeft > 0) {
                    position.left += overLeft;
                }
                else if (overRight > 0) {
                    position.left -= overRight;
                }
                else {
                    position.left = max(position.left - collisionPosLeft, position.left);
                }
            },
            top: function (position, data) {
                var within = data.within, withinOffset = within.isWindow ? within.scrollTop : within.offset.top, outerHeight = data.within.height, collisionPosTop = position.top - data.collisionPosition.marginTop, overTop = withinOffset - collisionPosTop, overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, newOverBottom;
                if (data.collisionHeight > outerHeight) {
                    if (overTop > 0 && overBottom <= 0) {
                        newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
                        position.top += overTop - newOverBottom;
                    }
                    else if (overBottom > 0 && overTop <= 0) {
                        position.top = withinOffset;
                    }
                    else {
                        if (overTop > overBottom) {
                            position.top = withinOffset + outerHeight - data.collisionHeight;
                        }
                        else {
                            position.top = withinOffset;
                        }
                    }
                }
                else if (overTop > 0) {
                    position.top += overTop;
                }
                else if (overBottom > 0) {
                    position.top -= overBottom;
                }
                else {
                    position.top = max(position.top - collisionPosTop, position.top);
                }
            }
        },
        flip: {
            left: function (position, data) {
                var within = data.within, withinOffset = within.offset.left + within.scrollLeft, outerWidth = within.width, offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, collisionPosLeft = position.left - data.collisionPosition.marginLeft, overLeft = collisionPosLeft - offsetLeft, overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, myOffset = data.my[0] === "left" ?
                    -data.elemWidth :
                    data.my[0] === "right" ?
                        data.elemWidth :
                        0, atOffset = data.at[0] === "left" ?
                    data.targetWidth :
                    data.at[0] === "right" ?
                        -data.targetWidth :
                        0, offset = -2 * data.offset[0], newOverRight, newOverLeft;
                if (overLeft < 0) {
                    newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
                    if (newOverRight < 0 || newOverRight < abs(overLeft)) {
                        position.left += myOffset + atOffset + offset;
                    }
                }
                else if (overRight > 0) {
                    newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
                    if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
                        position.left += myOffset + atOffset + offset;
                    }
                }
            },
            top: function (position, data) {
                var within = data.within, withinOffset = within.offset.top + within.scrollTop, outerHeight = within.height, offsetTop = within.isWindow ? within.scrollTop : within.offset.top, collisionPosTop = position.top - data.collisionPosition.marginTop, overTop = collisionPosTop - offsetTop, overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, top = data.my[1] === "top", myOffset = top ?
                    -data.elemHeight :
                    data.my[1] === "bottom" ?
                        data.elemHeight :
                        0, atOffset = data.at[1] === "top" ?
                    data.targetHeight :
                    data.at[1] === "bottom" ?
                        -data.targetHeight :
                        0, offset = -2 * data.offset[1], newOverTop, newOverBottom;
                if (overTop < 0) {
                    newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
                    if ((position.top + myOffset + atOffset + offset) > overTop && (newOverBottom < 0 || newOverBottom < abs(overTop))) {
                        position.top += myOffset + atOffset + offset;
                    }
                }
                else if (overBottom > 0) {
                    newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
                    if ((position.top + myOffset + atOffset + offset) > overBottom && (newOverTop > 0 || abs(newOverTop) < overBottom)) {
                        position.top += myOffset + atOffset + offset;
                    }
                }
            }
        },
        flipfit: {
            left: function () {
                $.ui.position.flip.left.apply(this, arguments);
                $.ui.position.fit.left.apply(this, arguments);
            },
            top: function () {
                $.ui.position.flip.top.apply(this, arguments);
                $.ui.position.fit.top.apply(this, arguments);
            }
        }
    };
    (function () {
        var testElement, testElementParent, testElementStyle, offsetLeft, i, body = document.getElementsByTagName("body")[0], div = document.createElement("div");
        testElement = document.createElement(body ? "div" : "body");
        testElementStyle = {
            visibility: "hidden",
            width: 0,
            height: 0,
            border: 0,
            margin: 0,
            background: "none"
        };
        if (body) {
            $.extend(testElementStyle, {
                position: "absolute",
                left: "-1000px",
                top: "-1000px"
            });
        }
        for (i in testElementStyle) {
            testElement.style[i] = testElementStyle[i];
        }
        testElement.appendChild(div);
        testElementParent = body || document.documentElement;
        testElementParent.insertBefore(testElement, testElementParent.firstChild);
        div.style.cssText = "position: absolute; left: 10.7432222px;";
        offsetLeft = $(div).offset().left;
        $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;
        testElement.innerHTML = "";
        testElementParent.removeChild(testElement);
    })();
    if ($.uiBackCompat !== false) {
        (function ($) {
            var _position = $.fn.position;
            $.fn.position = function (options) {
                if (!options || !options.offset) {
                    return _position.call(this, options);
                }
                var offset = options.offset.split(" "), at = options.at.split(" ");
                if (offset.length === 1) {
                    offset[1] = offset[0];
                }
                if (/^\d/.test(offset[0])) {
                    offset[0] = "+" + offset[0];
                }
                if (/^\d/.test(offset[1])) {
                    offset[1] = "+" + offset[1];
                }
                if (at.length === 1) {
                    if (/left|center|right/.test(at[0])) {
                        at[1] = "center";
                    }
                    else {
                        at[1] = at[0];
                        at[0] = "center";
                    }
                }
                return _position.call(this, $.extend(options, {
                    at: at[0] + offset[0] + " " + at[1] + offset[1],
                    offset: undefined
                }));
            };
        }(jQuery));
    }
}(jQuery));
(function ($, undefined) {
    $.widget("ui.progressbar", {
        version: "1.9.2",
        options: {
            value: 0,
            max: 100
        },
        min: 0,
        _create: function () {
            this.element
                .addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all")
                .attr({
                role: "progressbar",
                "aria-valuemin": this.min,
                "aria-valuemax": this.options.max,
                "aria-valuenow": this._value()
            });
            this.valueDiv = $("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>")
                .appendTo(this.element);
            this.oldValue = this._value();
            this._refreshValue();
        },
        _destroy: function () {
            this.element
                .removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all")
                .removeAttr("role")
                .removeAttr("aria-valuemin")
                .removeAttr("aria-valuemax")
                .removeAttr("aria-valuenow");
            this.valueDiv.remove();
        },
        value: function (newValue) {
            if (newValue === undefined) {
                return this._value();
            }
            this._setOption("value", newValue);
            return this;
        },
        _setOption: function (key, value) {
            if (key === "value") {
                this.options.value = value;
                this._refreshValue();
                if (this._value() === this.options.max) {
                    this._trigger("complete");
                }
            }
            this._super(key, value);
        },
        _value: function () {
            var val = this.options.value;
            if (typeof val !== "number") {
                val = 0;
            }
            return Math.min(this.options.max, Math.max(this.min, val));
        },
        _percentage: function () {
            return 100 * this._value() / this.options.max;
        },
        _refreshValue: function () {
            var value = this.value(), percentage = this._percentage();
            if (this.oldValue !== value) {
                this.oldValue = value;
                this._trigger("change");
            }
            this.valueDiv
                .toggle(value > this.min)
                .toggleClass("ui-corner-right", value === this.options.max)
                .width(percentage.toFixed(0) + "%");
            this.element.attr("aria-valuenow", value);
        }
    });
})(jQuery);
(function ($, undefined) {
    var numPages = 5;
    $.widget("ui.slider", $.ui.mouse, {
        version: "1.9.2",
        widgetEventPrefix: "slide",
        options: {
            animate: false,
            distance: 0,
            max: 100,
            min: 0,
            orientation: "horizontal",
            range: false,
            step: 1,
            value: 0,
            values: null
        },
        _create: function () {
            var i, handleCount, o = this.options, existingHandles = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>", handles = [];
            this._keySliding = false;
            this._mouseSliding = false;
            this._animateOff = true;
            this._handleIndex = null;
            this._detectOrientation();
            this._mouseInit();
            this.element
                .addClass("ui-slider" +
                " ui-slider-" + this.orientation +
                " ui-widget" +
                " ui-widget-content" +
                " ui-corner-all" +
                (o.disabled ? " ui-slider-disabled ui-disabled" : ""));
            this.range = $([]);
            if (o.range) {
                if (o.range === true) {
                    if (!o.values) {
                        o.values = [this._valueMin(), this._valueMin()];
                    }
                    if (o.values.length && o.values.length !== 2) {
                        o.values = [o.values[0], o.values[0]];
                    }
                }
                this.range = $("<div></div>")
                    .appendTo(this.element)
                    .addClass("ui-slider-range" +
                    " ui-widget-header" +
                    ((o.range === "min" || o.range === "max") ? " ui-slider-range-" + o.range : ""));
            }
            handleCount = (o.values && o.values.length) || 1;
            for (i = existingHandles.length; i < handleCount; i++) {
                handles.push(handle);
            }
            this.handles = existingHandles.add($(handles.join("")).appendTo(this.element));
            this.handle = this.handles.eq(0);
            this.handles.add(this.range).filter("a")
                .click(function (event) {
                event.preventDefault();
            })
                .mouseenter(function () {
                if (!o.disabled) {
                    $(this).addClass("ui-state-hover");
                }
            })
                .mouseleave(function () {
                $(this).removeClass("ui-state-hover");
            })
                .focus(function () {
                if (!o.disabled) {
                    $(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
                    $(this).addClass("ui-state-focus");
                }
                else {
                    $(this).blur();
                }
            })
                .blur(function () {
                $(this).removeClass("ui-state-focus");
            });
            this.handles.each(function (i) {
                $(this).data("ui-slider-handle-index", i);
            });
            this._on(this.handles, {
                keydown: function (event) {
                    var allowed, curVal, newVal, step, index = $(event.target).data("ui-slider-handle-index");
                    switch (event.keyCode) {
                        case $.ui.keyCode.HOME:
                        case $.ui.keyCode.END:
                        case $.ui.keyCode.PAGE_UP:
                        case $.ui.keyCode.PAGE_DOWN:
                        case $.ui.keyCode.UP:
                        case $.ui.keyCode.RIGHT:
                        case $.ui.keyCode.DOWN:
                        case $.ui.keyCode.LEFT:
                            event.preventDefault();
                            if (!this._keySliding) {
                                this._keySliding = true;
                                $(event.target).addClass("ui-state-active");
                                allowed = this._start(event, index);
                                if (allowed === false) {
                                    return;
                                }
                            }
                            break;
                    }
                    step = this.options.step;
                    if (this.options.values && this.options.values.length) {
                        curVal = newVal = this.values(index);
                    }
                    else {
                        curVal = newVal = this.value();
                    }
                    switch (event.keyCode) {
                        case $.ui.keyCode.HOME:
                            newVal = this._valueMin();
                            break;
                        case $.ui.keyCode.END:
                            newVal = this._valueMax();
                            break;
                        case $.ui.keyCode.PAGE_UP:
                            newVal = this._trimAlignValue(curVal + ((this._valueMax() - this._valueMin()) / numPages));
                            break;
                        case $.ui.keyCode.PAGE_DOWN:
                            newVal = this._trimAlignValue(curVal - ((this._valueMax() - this._valueMin()) / numPages));
                            break;
                        case $.ui.keyCode.UP:
                        case $.ui.keyCode.RIGHT:
                            if (curVal === this._valueMax()) {
                                return;
                            }
                            newVal = this._trimAlignValue(curVal + step);
                            break;
                        case $.ui.keyCode.DOWN:
                        case $.ui.keyCode.LEFT:
                            if (curVal === this._valueMin()) {
                                return;
                            }
                            newVal = this._trimAlignValue(curVal - step);
                            break;
                    }
                    this._slide(event, index, newVal);
                },
                keyup: function (event) {
                    var index = $(event.target).data("ui-slider-handle-index");
                    if (this._keySliding) {
                        this._keySliding = false;
                        this._stop(event, index);
                        this._change(event, index);
                        $(event.target).removeClass("ui-state-active");
                    }
                }
            });
            this._refreshValue();
            this._animateOff = false;
        },
        _destroy: function () {
            this.handles.remove();
            this.range.remove();
            this.element
                .removeClass("ui-slider" +
                " ui-slider-horizontal" +
                " ui-slider-vertical" +
                " ui-slider-disabled" +
                " ui-widget" +
                " ui-widget-content" +
                " ui-corner-all");
            this._mouseDestroy();
        },
        _mouseCapture: function (event) {
            var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, that = this, o = this.options;
            if (o.disabled) {
                return false;
            }
            this.elementSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            };
            this.elementOffset = this.element.offset();
            position = { x: event.pageX, y: event.pageY };
            normValue = this._normValueFromMouse(position);
            distance = this._valueMax() - this._valueMin() + 1;
            this.handles.each(function (i) {
                var thisDistance = Math.abs(normValue - that.values(i));
                if (distance > thisDistance) {
                    distance = thisDistance;
                    closestHandle = $(this);
                    index = i;
                }
            });
            if (o.range === true && this.values(1) === o.min) {
                index += 1;
                closestHandle = $(this.handles[index]);
            }
            allowed = this._start(event, index);
            if (allowed === false) {
                return false;
            }
            this._mouseSliding = true;
            this._handleIndex = index;
            closestHandle
                .addClass("ui-state-active")
                .focus();
            offset = closestHandle.offset();
            mouseOverHandle = !$(event.target).parents().addBack().is(".ui-slider-handle");
            this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
                left: event.pageX - offset.left - (closestHandle.width() / 2),
                top: event.pageY - offset.top -
                    (closestHandle.height() / 2) -
                    (parseInt(closestHandle.css("borderTopWidth"), 10) || 0) -
                    (parseInt(closestHandle.css("borderBottomWidth"), 10) || 0) +
                    (parseInt(closestHandle.css("marginTop"), 10) || 0)
            };
            if (!this.handles.hasClass("ui-state-hover")) {
                this._slide(event, index, normValue);
            }
            this._animateOff = true;
            return true;
        },
        _mouseStart: function () {
            return true;
        },
        _mouseDrag: function (event) {
            var position = { x: event.pageX, y: event.pageY }, normValue = this._normValueFromMouse(position);
            this._slide(event, this._handleIndex, normValue);
            return false;
        },
        _mouseStop: function (event) {
            this.handles.removeClass("ui-state-active");
            this._mouseSliding = false;
            this._stop(event, this._handleIndex);
            this._change(event, this._handleIndex);
            this._handleIndex = null;
            this._clickOffset = null;
            this._animateOff = false;
            return false;
        },
        _detectOrientation: function () {
            this.orientation = (this.options.orientation === "vertical") ? "vertical" : "horizontal";
        },
        _normValueFromMouse: function (position) {
            var pixelTotal, pixelMouse, percentMouse, valueTotal, valueMouse;
            if (this.orientation === "horizontal") {
                pixelTotal = this.elementSize.width;
                pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
            }
            else {
                pixelTotal = this.elementSize.height;
                pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
            }
            percentMouse = (pixelMouse / pixelTotal);
            if (percentMouse > 1) {
                percentMouse = 1;
            }
            if (percentMouse < 0) {
                percentMouse = 0;
            }
            if (this.orientation === "vertical") {
                percentMouse = 1 - percentMouse;
            }
            valueTotal = this._valueMax() - this._valueMin();
            valueMouse = this._valueMin() + percentMouse * valueTotal;
            return this._trimAlignValue(valueMouse);
        },
        _start: function (event, index) {
            var uiHash = {
                handle: this.handles[index],
                value: this.value()
            };
            if (this.options.values && this.options.values.length) {
                uiHash.value = this.values(index);
                uiHash.values = this.values();
            }
            return this._trigger("start", event, uiHash);
        },
        _slide: function (event, index, newVal) {
            var otherVal, newValues, allowed;
            if (this.options.values && this.options.values.length) {
                otherVal = this.values(index ? 0 : 1);
                if ((this.options.values.length === 2 && this.options.range === true) &&
                    ((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))) {
                    newVal = otherVal;
                }
                if (newVal !== this.values(index)) {
                    newValues = this.values();
                    newValues[index] = newVal;
                    allowed = this._trigger("slide", event, {
                        handle: this.handles[index],
                        value: newVal,
                        values: newValues
                    });
                    otherVal = this.values(index ? 0 : 1);
                    if (allowed !== false) {
                        this.values(index, newVal, true);
                    }
                }
            }
            else {
                if (newVal !== this.value()) {
                    allowed = this._trigger("slide", event, {
                        handle: this.handles[index],
                        value: newVal
                    });
                    if (allowed !== false) {
                        this.value(newVal);
                    }
                }
            }
        },
        _stop: function (event, index) {
            var uiHash = {
                handle: this.handles[index],
                value: this.value()
            };
            if (this.options.values && this.options.values.length) {
                uiHash.value = this.values(index);
                uiHash.values = this.values();
            }
            this._trigger("stop", event, uiHash);
        },
        _change: function (event, index) {
            if (!this._keySliding && !this._mouseSliding) {
                var uiHash = {
                    handle: this.handles[index],
                    value: this.value()
                };
                if (this.options.values && this.options.values.length) {
                    uiHash.value = this.values(index);
                    uiHash.values = this.values();
                }
                this._trigger("change", event, uiHash);
            }
        },
        value: function (newValue) {
            if (arguments.length) {
                this.options.value = this._trimAlignValue(newValue);
                this._refreshValue();
                this._change(null, 0);
                return;
            }
            return this._value();
        },
        values: function (index, newValue) {
            var vals, newValues, i;
            if (arguments.length > 1) {
                this.options.values[index] = this._trimAlignValue(newValue);
                this._refreshValue();
                this._change(null, index);
                return;
            }
            if (arguments.length) {
                if (Array.isArray(arguments[0])) {
                    vals = this.options.values;
                    newValues = arguments[0];
                    for (i = 0; i < vals.length; i += 1) {
                        vals[i] = this._trimAlignValue(newValues[i]);
                        this._change(null, i);
                    }
                    this._refreshValue();
                }
                else {
                    if (this.options.values && this.options.values.length) {
                        return this._values(index);
                    }
                    else {
                        return this.value();
                    }
                }
            }
            else {
                return this._values();
            }
        },
        _setOption: function (key, value) {
            var i, valsLength = 0;
            if (Array.isArray(this.options.values)) {
                valsLength = this.options.values.length;
            }
            $.Widget.prototype._setOption.apply(this, arguments);
            switch (key) {
                case "disabled":
                    if (value) {
                        this.handles.filter(".ui-state-focus").blur();
                        this.handles.removeClass("ui-state-hover");
                        this.handles.prop("disabled", true);
                        this.element.addClass("ui-disabled");
                    }
                    else {
                        this.handles.prop("disabled", false);
                        this.element.removeClass("ui-disabled");
                    }
                    break;
                case "orientation":
                    this._detectOrientation();
                    this.element
                        .removeClass("ui-slider-horizontal ui-slider-vertical")
                        .addClass("ui-slider-" + this.orientation);
                    this._refreshValue();
                    break;
                case "value":
                    this._animateOff = true;
                    this._refreshValue();
                    this._change(null, 0);
                    this._animateOff = false;
                    break;
                case "values":
                    this._animateOff = true;
                    this._refreshValue();
                    for (i = 0; i < valsLength; i += 1) {
                        this._change(null, i);
                    }
                    this._animateOff = false;
                    break;
                case "min":
                case "max":
                    this._animateOff = true;
                    this._refreshValue();
                    this._animateOff = false;
                    break;
            }
        },
        _value: function () {
            var val = this.options.value;
            val = this._trimAlignValue(val);
            return val;
        },
        _values: function (index) {
            var val, vals, i;
            if (arguments.length) {
                val = this.options.values[index];
                val = this._trimAlignValue(val);
                return val;
            }
            else {
                vals = this.options.values.slice();
                for (i = 0; i < vals.length; i += 1) {
                    vals[i] = this._trimAlignValue(vals[i]);
                }
                return vals;
            }
        },
        _trimAlignValue: function (val) {
            if (val <= this._valueMin()) {
                return this._valueMin();
            }
            if (val >= this._valueMax()) {
                return this._valueMax();
            }
            var step = (this.options.step > 0) ? this.options.step : 1, valModStep = (val - this._valueMin()) % step, alignValue = val - valModStep;
            if (Math.abs(valModStep) * 2 >= step) {
                alignValue += (valModStep > 0) ? step : (-step);
            }
            return parseFloat(alignValue.toFixed(5));
        },
        _valueMin: function () {
            return this.options.min;
        },
        _valueMax: function () {
            return this.options.max;
        },
        _refreshValue: function () {
            var lastValPercent, valPercent, value, valueMin, valueMax, oRange = this.options.range, o = this.options, that = this, animate = (!this._animateOff) ? o.animate : false, _set = {};
            if (this.options.values && this.options.values.length) {
                this.handles.each(function (i) {
                    valPercent = (that.values(i) - that._valueMin()) / (that._valueMax() - that._valueMin()) * 100;
                    _set[that.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
                    $(this).stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);
                    if (that.options.range === true) {
                        if (that.orientation === "horizontal") {
                            if (i === 0) {
                                that.range.stop(1, 1)[animate ? "animate" : "css"]({ left: valPercent + "%" }, o.animate);
                            }
                            if (i === 1) {
                                that.range[animate ? "animate" : "css"]({ width: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
                            }
                        }
                        else {
                            if (i === 0) {
                                that.range.stop(1, 1)[animate ? "animate" : "css"]({ bottom: (valPercent) + "%" }, o.animate);
                            }
                            if (i === 1) {
                                that.range[animate ? "animate" : "css"]({ height: (valPercent - lastValPercent) + "%" }, { queue: false, duration: o.animate });
                            }
                        }
                    }
                    lastValPercent = valPercent;
                });
            }
            else {
                value = this.value();
                valueMin = this._valueMin();
                valueMax = this._valueMax();
                valPercent = (valueMax !== valueMin) ?
                    (value - valueMin) / (valueMax - valueMin) * 100 :
                    0;
                _set[this.orientation === "horizontal" ? "left" : "bottom"] = valPercent + "%";
                this.handle.stop(1, 1)[animate ? "animate" : "css"](_set, o.animate);
                if (oRange === "min" && this.orientation === "horizontal") {
                    this.range.stop(1, 1)[animate ? "animate" : "css"]({ width: valPercent + "%" }, o.animate);
                }
                if (oRange === "max" && this.orientation === "horizontal") {
                    this.range[animate ? "animate" : "css"]({ width: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
                }
                if (oRange === "min" && this.orientation === "vertical") {
                    this.range.stop(1, 1)[animate ? "animate" : "css"]({ height: valPercent + "%" }, o.animate);
                }
                if (oRange === "max" && this.orientation === "vertical") {
                    this.range[animate ? "animate" : "css"]({ height: (100 - valPercent) + "%" }, { queue: false, duration: o.animate });
                }
            }
        }
    });
}(jQuery));
(function ($, undefined) {
    var tabId = 0, rhash = /#.*$/;
    function getNextTabId() {
        return ++tabId;
    }
    function isLocal(anchor) {
        return anchor.hash.length > 1 &&
            anchor.href.replace(rhash, "") ===
                location.href.replace(rhash, "")
                    .replace(/\s/g, "%20");
    }
    $.widget("ui.tabs", {
        version: "1.9.2",
        delay: 300,
        options: {
            active: null,
            collapsible: false,
            event: "click",
            heightStyle: "content",
            hide: null,
            show: null,
            activate: null,
            beforeActivate: null,
            beforeLoad: null,
            load: null
        },
        _create: function () {
            var that = this, options = this.options, active = options.active, locationHash = location.hash.substring(1);
            this.running = false;
            this.element
                .addClass("ui-tabs ui-widget ui-widget-content ui-corner-all")
                .toggleClass("ui-tabs-collapsible", options.collapsible)
                .on("mousedown" + this.eventNamespace, ".ui-tabs-nav > li", function (event) {
                if ($(this).is(".ui-state-disabled")) {
                    event.preventDefault();
                }
            })
                .on("focus" + this.eventNamespace, ".ui-tabs-anchor", function () {
                if ($(this).closest("li").is(".ui-state-disabled")) {
                    this.blur();
                }
            });
            this._processTabs();
            if (active === null) {
                if (locationHash) {
                    this.tabs.each(function (i, tab) {
                        if ($(tab).attr("aria-controls") === locationHash) {
                            active = i;
                            return false;
                        }
                    });
                }
                if (active === null) {
                    active = this.tabs.index(this.tabs.filter(".ui-tabs-active"));
                }
                if (active === null || active === -1) {
                    active = this.tabs.length ? 0 : false;
                }
            }
            if (active !== false) {
                active = this.tabs.index(this.tabs.eq(active));
                if (active === -1) {
                    active = options.collapsible ? false : 0;
                }
            }
            options.active = active;
            if (!options.collapsible && options.active === false && this.anchors.length) {
                options.active = 0;
            }
            if (Array.isArray(options.disabled)) {
                options.disabled = $.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"), function (li) {
                    return that.tabs.index(li);
                }))).sort();
            }
            if (this.options.active !== false && this.anchors.length) {
                this.active = this._findActive(this.options.active);
            }
            else {
                this.active = $();
            }
            this._refresh();
            if (this.active.length) {
                this.load(options.active);
            }
        },
        _getCreateEventData: function () {
            return {
                tab: this.active,
                panel: !this.active.length ? $() : this._getPanelForTab(this.active)
            };
        },
        _tabKeydown: function (event) {
            var focusedTab = $(this.document[0].activeElement).closest("li"), selectedIndex = this.tabs.index(focusedTab), goingForward = true;
            if (this._handlePageNav(event)) {
                return;
            }
            switch (event.keyCode) {
                case $.ui.keyCode.RIGHT:
                case $.ui.keyCode.DOWN:
                    selectedIndex++;
                    break;
                case $.ui.keyCode.UP:
                case $.ui.keyCode.LEFT:
                    goingForward = false;
                    selectedIndex--;
                    break;
                case $.ui.keyCode.END:
                    selectedIndex = this.anchors.length - 1;
                    break;
                case $.ui.keyCode.HOME:
                    selectedIndex = 0;
                    break;
                case $.ui.keyCode.SPACE:
                    event.preventDefault();
                    clearTimeout(this.activating);
                    this._activate(selectedIndex);
                    return;
                case $.ui.keyCode.ENTER:
                    event.preventDefault();
                    clearTimeout(this.activating);
                    this._activate(selectedIndex === this.options.active ? false : selectedIndex);
                    return;
                default:
                    return;
            }
            event.preventDefault();
            clearTimeout(this.activating);
            selectedIndex = this._focusNextTab(selectedIndex, goingForward);
            if (!event.ctrlKey) {
                focusedTab.attr("aria-selected", "false");
                this.tabs.eq(selectedIndex).attr("aria-selected", "true");
                this.activating = this._delay(function () {
                    this.option("active", selectedIndex);
                }, this.delay);
            }
        },
        _panelKeydown: function (event) {
            if (this._handlePageNav(event)) {
                return;
            }
            if (event.ctrlKey && event.keyCode === $.ui.keyCode.UP) {
                event.preventDefault();
                this.active.focus();
            }
        },
        _handlePageNav: function (event) {
            if (event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP) {
                this._activate(this._focusNextTab(this.options.active - 1, false));
                return true;
            }
            if (event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN) {
                this._activate(this._focusNextTab(this.options.active + 1, true));
                return true;
            }
        },
        _findNextTab: function (index, goingForward) {
            var lastTabIndex = this.tabs.length - 1;
            function constrain() {
                if (index > lastTabIndex) {
                    index = 0;
                }
                if (index < 0) {
                    index = lastTabIndex;
                }
                return index;
            }
            while ($.inArray(constrain(), this.options.disabled) !== -1) {
                index = goingForward ? index + 1 : index - 1;
            }
            return index;
        },
        _focusNextTab: function (index, goingForward) {
            index = this._findNextTab(index, goingForward);
            this.tabs.eq(index).focus();
            return index;
        },
        _setOption: function (key, value) {
            if (key === "active") {
                this._activate(value);
                return;
            }
            if (key === "disabled") {
                this._setupDisabled(value);
                return;
            }
            this._super(key, value);
            if (key === "collapsible") {
                this.element.toggleClass("ui-tabs-collapsible", value);
                if (!value && this.options.active === false) {
                    this._activate(0);
                }
            }
            if (key === "event") {
                this._setupEvents(value);
            }
            if (key === "heightStyle") {
                this._setupHeightStyle(value);
            }
        },
        _tabId: function (tab) {
            return tab.attr("aria-controls") || "ui-tabs-" + getNextTabId();
        },
        _sanitizeSelector: function (hash) {
            return hash ? hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "";
        },
        refresh: function () {
            var options = this.options, lis = this.tablist.children(":has(a[href])");
            options.disabled = $.map(lis.filter(".ui-state-disabled"), function (tab) {
                return lis.index(tab);
            });
            this._processTabs();
            if (options.active === false || !this.anchors.length) {
                options.active = false;
                this.active = $();
            }
            else if (this.active.length && !$.contains(this.tablist[0], this.active[0])) {
                if (this.tabs.length === options.disabled.length) {
                    options.active = false;
                    this.active = $();
                }
                else {
                    this._activate(this._findNextTab(Math.max(0, options.active - 1), false));
                }
            }
            else {
                options.active = this.tabs.index(this.active);
            }
            this._refresh();
        },
        _refresh: function () {
            this._setupDisabled(this.options.disabled);
            this._setupEvents(this.options.event);
            this._setupHeightStyle(this.options.heightStyle);
            this.tabs.not(this.active).attr({
                "aria-selected": "false",
                tabIndex: -1
            });
            this.panels.not(this._getPanelForTab(this.active))
                .hide()
                .attr({
                "aria-expanded": "false",
                "aria-hidden": "true"
            });
            if (!this.active.length) {
                this.tabs.eq(0).attr("tabIndex", 0);
            }
            else {
                this.active
                    .addClass("ui-tabs-active ui-state-active")
                    .attr({
                    "aria-selected": "true",
                    tabIndex: 0
                });
                this._getPanelForTab(this.active)
                    .show()
                    .attr({
                    "aria-expanded": "true",
                    "aria-hidden": "false"
                });
            }
        },
        _processTabs: function () {
            var that = this;
            this.tablist = this._getList()
                .addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all")
                .attr("role", "tablist");
            this.tabs = this.tablist.find("> li:has(a[href])")
                .addClass("ui-state-default ui-corner-top")
                .attr({
                role: "tab",
                tabIndex: -1
            });
            this.anchors = this.tabs.map(function () {
                return $("a", this)[0];
            })
                .addClass("ui-tabs-anchor")
                .attr({
                role: "presentation",
                tabIndex: -1
            });
            this.panels = $();
            this.anchors.each(function (i, anchor) {
                var selector, panel, panelId, anchorId = $(anchor).uniqueId().attr("id"), tab = $(anchor).closest("li"), originalAriaControls = tab.attr("aria-controls");
                if (isLocal(anchor)) {
                    selector = anchor.hash;
                    panel = that.element.find(that._sanitizeSelector(selector));
                }
                else {
                    panelId = that._tabId(tab);
                    selector = "#" + panelId;
                    panel = that.element.find(selector);
                    if (!panel.length) {
                        panel = that._createPanel(panelId);
                        panel.insertAfter(that.panels[i - 1] || that.tablist);
                    }
                    panel.attr("aria-live", "polite");
                }
                if (panel.length) {
                    that.panels = that.panels.add(panel);
                }
                if (originalAriaControls) {
                    tab.data("ui-tabs-aria-controls", originalAriaControls);
                }
                tab.attr({
                    "aria-controls": selector.substring(1),
                    "aria-labelledby": anchorId
                });
                panel.attr("aria-labelledby", anchorId);
            });
            this.panels
                .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
                .attr("role", "tabpanel");
        },
        _getList: function () {
            return this.element.find("ol,ul").eq(0);
        },
        _createPanel: function (id) {
            return $("<div>")
                .attr("id", id)
                .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
                .data("ui-tabs-destroy", true);
        },
        _setupDisabled: function (disabled) {
            if (Array.isArray(disabled)) {
                if (!disabled.length) {
                    disabled = false;
                }
                else if (disabled.length === this.anchors.length) {
                    disabled = true;
                }
            }
            for (var i = 0, li; (li = this.tabs[i]); i++) {
                if (disabled === true || $.inArray(i, disabled) !== -1) {
                    $(li)
                        .addClass("ui-state-disabled")
                        .attr("aria-disabled", "true");
                }
                else {
                    $(li)
                        .removeClass("ui-state-disabled")
                        .removeAttr("aria-disabled");
                }
            }
            this.options.disabled = disabled;
        },
        _setupEvents: function (event) {
            var events = {
                click: function (event) {
                    event.preventDefault();
                }
            };
            if (event) {
                $.each(event.split(" "), function (index, eventName) {
                    events[eventName] = "_eventHandler";
                });
            }
            this._off(this.anchors.add(this.tabs).add(this.panels));
            this._on(this.anchors, events);
            this._on(this.tabs, { keydown: "_tabKeydown" });
            this._on(this.panels, { keydown: "_panelKeydown" });
            this._focusable(this.tabs);
            this._hoverable(this.tabs);
        },
        _setupHeightStyle: function (heightStyle) {
            var maxHeight, overflow, parent = this.element.parent();
            if (heightStyle === "fill") {
                if (!$.support.minHeight) {
                    overflow = parent.css("overflow");
                    parent.css("overflow", "hidden");
                }
                maxHeight = parent.height();
                this.element.siblings(":visible").each(function () {
                    var elem = $(this), position = elem.css("position");
                    if (position === "absolute" || position === "fixed") {
                        return;
                    }
                    maxHeight -= elem.outerHeight(true);
                });
                if (overflow) {
                    parent.css("overflow", overflow);
                }
                this.element.children().not(this.panels).each(function () {
                    maxHeight -= $(this).outerHeight(true);
                });
                this.panels.each(function () {
                    $(this).height(Math.max(0, maxHeight -
                        $(this).innerHeight() + $(this).height()));
                })
                    .css("overflow", "auto");
            }
            else if (heightStyle === "auto") {
                maxHeight = 0;
                this.panels.each(function () {
                    maxHeight = Math.max(maxHeight, $(this).height("").height());
                }).height(maxHeight);
            }
        },
        _eventHandler: function (event) {
            var options = this.options, active = this.active, anchor = $(event.currentTarget), tab = anchor.closest("li"), clickedIsActive = tab[0] === active[0], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : this._getPanelForTab(tab), toHide = !active.length ? $() : this._getPanelForTab(active), eventData = {
                oldTab: active,
                oldPanel: toHide,
                newTab: collapsing ? $() : tab,
                newPanel: toShow
            };
            event.preventDefault();
            if (tab.hasClass("ui-state-disabled") ||
                tab.hasClass("ui-tabs-loading") ||
                this.running ||
                (clickedIsActive && !options.collapsible) ||
                (this._trigger("beforeActivate", event, eventData) === false)) {
                return;
            }
            options.active = collapsing ? false : this.tabs.index(tab);
            this.active = clickedIsActive ? $() : tab;
            if (this.xhr) {
                this.xhr.abort();
            }
            if (!toHide.length && !toShow.length) {
                $.error("jQuery UI Tabs: Mismatching fragment identifier.");
            }
            if (toShow.length) {
                this.load(this.tabs.index(tab), event);
            }
            this._toggle(event, eventData);
        },
        _toggle: function (event, eventData) {
            var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel;
            this.running = true;
            function complete() {
                that.running = false;
                that._trigger("activate", event, eventData);
            }
            function show() {
                eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
                if (toShow.length && that.options.show) {
                    that._show(toShow, that.options.show, complete);
                }
                else {
                    toShow.show();
                    complete();
                }
            }
            if (toHide.length && this.options.hide) {
                this._hide(toHide, this.options.hide, function () {
                    eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
                    show();
                });
            }
            else {
                eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
                toHide.hide();
                show();
            }
            toHide.attr({
                "aria-expanded": "false",
                "aria-hidden": "true"
            });
            eventData.oldTab.attr("aria-selected", "false");
            if (toShow.length && toHide.length) {
                eventData.oldTab.attr("tabIndex", -1);
            }
            else if (toShow.length) {
                this.tabs.filter(function () {
                    return $(this).attr("tabIndex") === 0;
                })
                    .attr("tabIndex", -1);
            }
            toShow.attr({
                "aria-expanded": "true",
                "aria-hidden": "false"
            });
            eventData.newTab.attr({
                "aria-selected": "true",
                tabIndex: 0
            });
        },
        _activate: function (index) {
            var anchor, active = this._findActive(index);
            if (active[0] === this.active[0]) {
                return;
            }
            if (!active.length) {
                active = this.active;
            }
            anchor = active.find(".ui-tabs-anchor")[0];
            this._eventHandler({
                target: anchor,
                currentTarget: anchor,
                preventDefault: $.noop
            });
        },
        _findActive: function (index) {
            return index === false ? $() : this.tabs.eq(index);
        },
        _getIndex: function (index) {
            if (typeof index === "string") {
                index = this.anchors.index(this.anchors.filter("[href$='" + index + "']"));
            }
            return index;
        },
        _destroy: function () {
            if (this.xhr) {
                this.xhr.abort();
            }
            this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");
            this.tablist
                .removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all")
                .removeAttr("role");
            this.anchors
                .removeClass("ui-tabs-anchor")
                .removeAttr("role")
                .removeAttr("tabIndex")
                .removeData("href.tabs")
                .removeData("load.tabs")
                .removeUniqueId();
            this.tabs.add(this.panels).each(function () {
                if ($.data(this, "ui-tabs-destroy")) {
                    $(this).remove();
                }
                else {
                    $(this)
                        .removeClass("ui-state-default ui-state-active ui-state-disabled " +
                        "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel")
                        .removeAttr("tabIndex")
                        .removeAttr("aria-live")
                        .removeAttr("aria-busy")
                        .removeAttr("aria-selected")
                        .removeAttr("aria-labelledby")
                        .removeAttr("aria-hidden")
                        .removeAttr("aria-expanded")
                        .removeAttr("role");
                }
            });
            this.tabs.each(function () {
                var li = $(this), prev = li.data("ui-tabs-aria-controls");
                if (prev) {
                    li.attr("aria-controls", prev);
                }
                else {
                    li.removeAttr("aria-controls");
                }
            });
            this.panels.show();
            if (this.options.heightStyle !== "content") {
                this.panels.css("height", "");
            }
        },
        enable: function (index) {
            var disabled = this.options.disabled;
            if (disabled === false) {
                return;
            }
            if (index === undefined) {
                disabled = false;
            }
            else {
                index = this._getIndex(index);
                if (Array.isArray(disabled)) {
                    disabled = $.map(disabled, function (num) {
                        return num !== index ? num : null;
                    });
                }
                else {
                    disabled = $.map(this.tabs, function (li, num) {
                        return num !== index ? num : null;
                    });
                }
            }
            this._setupDisabled(disabled);
        },
        disable: function (index) {
            var disabled = this.options.disabled;
            if (disabled === true) {
                return;
            }
            if (index === undefined) {
                disabled = true;
            }
            else {
                index = this._getIndex(index);
                if ($.inArray(index, disabled) !== -1) {
                    return;
                }
                if (Array.isArray(disabled)) {
                    disabled = $.merge([index], disabled).sort();
                }
                else {
                    disabled = [index];
                }
            }
            this._setupDisabled(disabled);
        },
        load: function (index, event) {
            index = this._getIndex(index);
            var that = this, tab = this.tabs.eq(index), anchor = tab.find(".ui-tabs-anchor"), panel = this._getPanelForTab(tab), eventData = {
                tab: tab,
                panel: panel
            };
            if (isLocal(anchor[0])) {
                return;
            }
            this.xhr = $.ajax(this._ajaxSettings(anchor, event, eventData));
            if (this.xhr && this.xhr.statusText !== "canceled") {
                tab.addClass("ui-tabs-loading");
                panel.attr("aria-busy", "true");
                this.xhr
                    .success(function (response) {
                    setTimeout(function () {
                        panel.html(response);
                        that._trigger("load", event, eventData);
                    }, 1);
                })
                    .complete(function (jqXHR, status) {
                    setTimeout(function () {
                        if (status === "abort") {
                            that.panels.stop(false, true);
                        }
                        tab.removeClass("ui-tabs-loading");
                        panel.removeAttr("aria-busy");
                        if (jqXHR === that.xhr) {
                            delete that.xhr;
                        }
                    }, 1);
                });
            }
        },
        _ajaxSettings: function (anchor, event, eventData) {
            var that = this;
            return {
                url: anchor.attr("href"),
                beforeSend: function (jqXHR, settings) {
                    return that._trigger("beforeLoad", event, $.extend({ jqXHR: jqXHR, ajaxSettings: settings }, eventData));
                }
            };
        },
        _getPanelForTab: function (tab) {
            var id = $(tab).attr("aria-controls");
            return this.element.find(this._sanitizeSelector("#" + id));
        }
    });
    if ($.uiBackCompat !== false) {
        $.ui.tabs.prototype._ui = function (tab, panel) {
            return {
                tab: tab,
                panel: panel,
                index: this.anchors.index(tab)
            };
        };
        $.widget("ui.tabs", $.ui.tabs, {
            url: function (index, url) {
                this.anchors.eq(index).attr("href", url);
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                ajaxOptions: null,
                cache: false
            },
            _create: function () {
                this._super();
                var that = this;
                this._on({ tabsbeforeload: function (event, ui) {
                        if ($.data(ui.tab[0], "cache.tabs")) {
                            event.preventDefault();
                            return;
                        }
                        ui.jqXHR.success(function () {
                            if (that.options.cache) {
                                $.data(ui.tab[0], "cache.tabs", true);
                            }
                        });
                    } });
            },
            _ajaxSettings: function (anchor, event, ui) {
                var ajaxOptions = this.options.ajaxOptions;
                return $.extend({}, ajaxOptions, {
                    error: function (xhr, status) {
                        try {
                            ajaxOptions.error(xhr, status, ui.tab.closest("li").index(), ui.tab[0]);
                        }
                        catch (error) { }
                    }
                }, this._superApply(arguments));
            },
            _setOption: function (key, value) {
                if (key === "cache" && value === false) {
                    this.anchors.removeData("cache.tabs");
                }
                this._super(key, value);
            },
            _destroy: function () {
                this.anchors.removeData("cache.tabs");
                this._super();
            },
            url: function (index) {
                this.anchors.eq(index).removeData("cache.tabs");
                this._superApply(arguments);
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            abort: function () {
                if (this.xhr) {
                    this.xhr.abort();
                }
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                spinner: "<em>Loading&#8230;</em>"
            },
            _create: function () {
                this._super();
                this._on({
                    tabsbeforeload: function (event, ui) {
                        if (event.target !== this.element[0] ||
                            !this.options.spinner) {
                            return;
                        }
                        var span = ui.tab.find("span"), html = span.html();
                        span.html(this.options.spinner);
                        ui.jqXHR.complete(function () {
                            span.html(html);
                        });
                    }
                });
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                enable: null,
                disable: null
            },
            enable: function (index) {
                var options = this.options, trigger;
                if (index && options.disabled === true ||
                    (Array.isArray(options.disabled) && $.inArray(index, options.disabled) !== -1)) {
                    trigger = true;
                }
                this._superApply(arguments);
                if (trigger) {
                    this._trigger("enable", null, this._ui(this.anchors[index], this.panels[index]));
                }
            },
            disable: function (index) {
                var options = this.options, trigger;
                if (index && options.disabled === false ||
                    (Array.isArray(options.disabled) && $.inArray(index, options.disabled) === -1)) {
                    trigger = true;
                }
                this._superApply(arguments);
                if (trigger) {
                    this._trigger("disable", null, this._ui(this.anchors[index], this.panels[index]));
                }
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                add: null,
                remove: null,
                tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
            },
            add: function (url, label, index) {
                if (index === undefined) {
                    index = this.anchors.length;
                }
                var doInsertAfter, panel, options = this.options, li = $(options.tabTemplate
                    .replace(/#\{href\}/g, url)
                    .replace(/#\{label\}/g, label)), id = !url.indexOf("#") ?
                    url.replace("#", "") :
                    this._tabId(li);
                li.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy", true);
                li.attr("aria-controls", id);
                doInsertAfter = index >= this.tabs.length;
                panel = this.element.find("#" + id);
                if (!panel.length) {
                    panel = this._createPanel(id);
                    if (doInsertAfter) {
                        if (index > 0) {
                            panel.insertAfter(this.panels.eq(-1));
                        }
                        else {
                            panel.appendTo(this.element);
                        }
                    }
                    else {
                        panel.insertBefore(this.panels[index]);
                    }
                }
                panel.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();
                if (doInsertAfter) {
                    li.appendTo(this.tablist);
                }
                else {
                    li.insertBefore(this.tabs[index]);
                }
                options.disabled = $.map(options.disabled, function (n) {
                    return n >= index ? ++n : n;
                });
                this.refresh();
                if (this.tabs.length === 1 && options.active === false) {
                    this.option("active", 0);
                }
                this._trigger("add", null, this._ui(this.anchors[index], this.panels[index]));
                return this;
            },
            remove: function (index) {
                index = this._getIndex(index);
                var options = this.options, tab = this.tabs.eq(index).remove(), panel = this._getPanelForTab(tab).remove();
                if (tab.hasClass("ui-tabs-active") && this.anchors.length > 2) {
                    this._activate(index + (index + 1 < this.anchors.length ? 1 : -1));
                }
                options.disabled = $.map($.grep(options.disabled, function (n) {
                    return n !== index;
                }), function (n) {
                    return n >= index ? --n : n;
                });
                this.refresh();
                this._trigger("remove", null, this._ui(tab.find("a")[0], panel[0]));
                return this;
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            length: function () {
                return this.anchors.length;
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                idPrefix: "ui-tabs-"
            },
            _tabId: function (tab) {
                var a = tab.is("li") ? tab.find("a[href]") : tab;
                a = a[0];
                return $(a).closest("li").attr("aria-controls") ||
                    a.title && a.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF\-]/g, "") ||
                    this.options.idPrefix + getNextTabId();
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                panelTemplate: "<div></div>"
            },
            _createPanel: function (id) {
                return $(this.options.panelTemplate)
                    .attr("id", id)
                    .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
                    .data("ui-tabs-destroy", true);
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            _create: function () {
                var options = this.options;
                if (options.active === null && options.selected !== undefined) {
                    options.active = options.selected === -1 ? false : options.selected;
                }
                this._super();
                options.selected = options.active;
                if (options.selected === false) {
                    options.selected = -1;
                }
            },
            _setOption: function (key, value) {
                if (key !== "selected") {
                    return this._super(key, value);
                }
                var options = this.options;
                this._super("active", value === -1 ? false : value);
                options.selected = options.active;
                if (options.selected === false) {
                    options.selected = -1;
                }
            },
            _eventHandler: function () {
                this._superApply(arguments);
                this.options.selected = this.options.active;
                if (this.options.selected === false) {
                    this.options.selected = -1;
                }
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                show: null,
                select: null
            },
            _create: function () {
                this._super();
                if (this.options.active !== false) {
                    this._trigger("show", null, this._ui(this.active.find(".ui-tabs-anchor")[0], this._getPanelForTab(this.active)[0]));
                }
            },
            _trigger: function (type, event, data) {
                var tab, panel, ret = this._superApply(arguments);
                if (!ret) {
                    return false;
                }
                if (type === "beforeActivate") {
                    tab = data.newTab.length ? data.newTab : data.oldTab;
                    panel = data.newPanel.length ? data.newPanel : data.oldPanel;
                    ret = this._super("select", event, {
                        tab: tab.find(".ui-tabs-anchor")[0],
                        panel: panel[0],
                        index: tab.closest("li").index()
                    });
                }
                else if (type === "activate" && data.newTab.length) {
                    ret = this._super("show", event, {
                        tab: data.newTab.find(".ui-tabs-anchor")[0],
                        panel: data.newPanel[0],
                        index: data.newTab.closest("li").index()
                    });
                }
                return ret;
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            select: function (index) {
                index = this._getIndex(index);
                if (index === -1) {
                    if (this.options.collapsible && this.options.selected !== -1) {
                        index = this.options.selected;
                    }
                    else {
                        return;
                    }
                }
                this.anchors.eq(index).trigger(this.options.event + this.eventNamespace);
            }
        });
        (function () {
            var listId = 0;
            $.widget("ui.tabs", $.ui.tabs, {
                options: {
                    cookie: null
                },
                _create: function () {
                    var options = this.options, active;
                    if (options.active == null && options.cookie) {
                        active = parseInt(this._cookie(), 10);
                        if (active === -1) {
                            active = false;
                        }
                        options.active = active;
                    }
                    this._super();
                },
                _cookie: function (active) {
                    var cookie = [this.cookie ||
                            (this.cookie = this.options.cookie.name || "ui-tabs-" + (++listId))];
                    if (arguments.length) {
                        cookie.push(active === false ? -1 : active);
                        cookie.push(this.options.cookie);
                    }
                    return $.cookie.apply(null, cookie);
                },
                _refresh: function () {
                    this._super();
                    if (this.options.cookie) {
                        this._cookie(this.options.active, this.options.cookie);
                    }
                },
                _eventHandler: function () {
                    this._superApply(arguments);
                    if (this.options.cookie) {
                        this._cookie(this.options.active, this.options.cookie);
                    }
                },
                _destroy: function () {
                    this._super();
                    if (this.options.cookie) {
                        this._cookie(null, this.options.cookie);
                    }
                }
            });
        })();
        $.widget("ui.tabs", $.ui.tabs, {
            _trigger: function (type, event, data) {
                var _data = $.extend({}, data);
                if (type === "load") {
                    _data.panel = _data.panel[0];
                    _data.tab = _data.tab.find(".ui-tabs-anchor")[0];
                }
                return this._super(type, event, _data);
            }
        });
        $.widget("ui.tabs", $.ui.tabs, {
            options: {
                fx: null
            },
            _getFx: function () {
                var hide, show, fx = this.options.fx;
                if (fx) {
                    if (Array.isArray(fx)) {
                        hide = fx[0];
                        show = fx[1];
                    }
                    else {
                        hide = show = fx;
                    }
                }
                return fx ? { show: show, hide: hide } : null;
            },
            _toggle: function (event, eventData) {
                var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel, fx = this._getFx();
                if (!fx) {
                    return this._super(event, eventData);
                }
                that.running = true;
                function complete() {
                    that.running = false;
                    that._trigger("activate", event, eventData);
                }
                function show() {
                    eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
                    if (toShow.length && fx.show) {
                        toShow
                            .animate(fx.show, fx.show.duration, function () {
                            complete();
                        });
                    }
                    else {
                        toShow.show();
                        complete();
                    }
                }
                if (toHide.length && fx.hide) {
                    toHide.animate(fx.hide, fx.hide.duration, function () {
                        eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
                        show();
                    });
                }
                else {
                    eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
                    toHide.hide();
                    show();
                }
            }
        });
    }
})(jQuery);
(function ($) {
    var increments = 0;
    function addDescribedBy(elem, id) {
        var describedby = (elem.attr("aria-describedby") || "").split(/\s+/);
        describedby.push(id);
        elem
            .data("ui-tooltip-id", id)
            .attr("aria-describedby", describedby.join(" ").trim());
    }
    function removeDescribedBy(elem) {
        var id = elem.data("ui-tooltip-id"), describedby = (elem.attr("aria-describedby") || "").split(/\s+/), index = $.inArray(id, describedby);
        if (index !== -1) {
            describedby.splice(index, 1);
        }
        elem.removeData("ui-tooltip-id");
        describedby = describedby.join(" ").trim();
        if (describedby) {
            elem.attr("aria-describedby", describedby);
        }
        else {
            elem.removeAttr("aria-describedby");
        }
    }
    $.widget("ui.tooltip", {
        version: "1.9.2",
        options: {
            content: function () {
                return $(this).attr("title");
            },
            hide: true,
            items: "[title]:not([disabled])",
            position: {
                my: "left top+15",
                at: "left bottom",
                collision: "flipfit flip"
            },
            show: true,
            tooltipClass: null,
            track: false,
            close: null,
            open: null
        },
        _create: function () {
            this._on({
                mouseover: "open",
                focusin: "open"
            });
            this.tooltips = {};
            this.parents = {};
            if (this.options.disabled) {
                this._disable();
            }
        },
        _setOption: function (key, value) {
            var that = this;
            if (key === "disabled") {
                this[value ? "_disable" : "_enable"]();
                this.options[key] = value;
                return;
            }
            this._super(key, value);
            if (key === "content") {
                $.each(this.tooltips, function (id, element) {
                    that._updateContent(element);
                });
            }
        },
        _disable: function () {
            var that = this;
            $.each(this.tooltips, function (id, element) {
                var event = $.Event("blur");
                event.target = event.currentTarget = element[0];
                that.close(event, true);
            });
            this.element.find(this.options.items).addBack().each(function () {
                var element = $(this);
                if (element.is("[title]")) {
                    element
                        .data("ui-tooltip-title", element.attr("title"))
                        .attr("title", "");
                }
            });
        },
        _enable: function () {
            this.element.find(this.options.items).addBack().each(function () {
                var element = $(this);
                if (element.data("ui-tooltip-title")) {
                    element.attr("title", element.data("ui-tooltip-title"));
                }
            });
        },
        open: function (event) {
            var that = this, target = $(event ? event.target : this.element)
                .closest(this.options.items);
            if (!target.length || target.data("ui-tooltip-id")) {
                return;
            }
            if (target.attr("title")) {
                target.data("ui-tooltip-title", target.attr("title"));
            }
            target.data("ui-tooltip-open", true);
            if (event && event.type === "mouseover") {
                target.parents().each(function () {
                    var parent = $(this), blurEvent;
                    if (parent.data("ui-tooltip-open")) {
                        blurEvent = $.Event("blur");
                        blurEvent.target = blurEvent.currentTarget = this;
                        that.close(blurEvent, true);
                    }
                    if (parent.attr("title")) {
                        parent.uniqueId();
                        that.parents[this.id] = {
                            element: this,
                            title: parent.attr("title")
                        };
                        parent.attr("title", "");
                    }
                });
            }
            this._updateContent(target, event);
        },
        _updateContent: function (target, event) {
            var content, contentOption = this.options.content, that = this, eventType = event ? event.type : null;
            if (typeof contentOption === "string") {
                return this._open(event, target, contentOption);
            }
            content = contentOption.call(target[0], function (response) {
                if (!target.data("ui-tooltip-open")) {
                    return;
                }
                that._delay(function () {
                    if (event) {
                        event.type = eventType;
                    }
                    this._open(event, target, response);
                });
            });
            if (content) {
                this._open(event, target, content);
            }
        },
        _open: function (event, target, content) {
            var tooltip, events, delayedShow, positionOption = $.extend({}, this.options.position);
            if (!content) {
                return;
            }
            tooltip = this._find(target);
            if (tooltip.length) {
                tooltip.find(".ui-tooltip-content").html(content);
                return;
            }
            if (target.is("[title]")) {
                if (event && event.type === "mouseover") {
                    target.attr("title", "");
                }
                else {
                    target.removeAttr("title");
                }
            }
            tooltip = this._tooltip(target);
            addDescribedBy(target, tooltip.attr("id"));
            tooltip.find(".ui-tooltip-content").html(content);
            function position(event) {
                positionOption.of = event;
                if (tooltip.is(":hidden")) {
                    return;
                }
                tooltip.position(positionOption);
            }
            if (this.options.track && event && /^mouse/.test(event.type)) {
                this._on(this.document, {
                    mousemove: position
                });
                position(event);
            }
            else {
                tooltip.position($.extend({
                    of: target
                }, this.options.position));
            }
            tooltip.hide();
            this._show(tooltip, this.options.show);
            if (this.options.show && this.options.show.delay) {
                delayedShow = setInterval(function () {
                    if (tooltip.is(":visible")) {
                        position(positionOption.of);
                        clearInterval(delayedShow);
                    }
                }, $.fx.interval);
            }
            this._trigger("open", event, { tooltip: tooltip });
            events = {
                keyup: function (event) {
                    if (event.keyCode === $.ui.keyCode.ESCAPE) {
                        var fakeEvent = $.Event(event);
                        fakeEvent.currentTarget = target[0];
                        this.close(fakeEvent, true);
                    }
                },
                remove: function () {
                    this._removeTooltip(tooltip);
                }
            };
            if (!event || event.type === "mouseover") {
                events.mouseleave = "close";
            }
            if (!event || event.type === "focusin") {
                events.focusout = "close";
            }
            this._on(true, target, events);
        },
        close: function (event) {
            var that = this, target = $(event ? event.currentTarget : this.element), tooltip = this._find(target);
            if (this.closing) {
                return;
            }
            if (target.data("ui-tooltip-title")) {
                target.attr("title", target.data("ui-tooltip-title"));
            }
            removeDescribedBy(target);
            tooltip.stop(true);
            this._hide(tooltip, this.options.hide, function () {
                that._removeTooltip($(this));
            });
            target.removeData("ui-tooltip-open");
            this._off(target, "mouseleave focusout keyup");
            if (target[0] !== this.element[0]) {
                this._off(target, "remove");
            }
            this._off(this.document, "mousemove");
            if (event && event.type === "mouseleave") {
                $.each(this.parents, function (id, parent) {
                    $(parent.element).attr("title", parent.title);
                    delete that.parents[id];
                });
            }
            this.closing = true;
            this._trigger("close", event, { tooltip: tooltip });
            this.closing = false;
        },
        _tooltip: function (element) {
            var id = "ui-tooltip-" + increments++, tooltip = $("<div>")
                .attr({
                id: id,
                role: "tooltip"
            })
                .addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " +
                (this.options.tooltipClass || ""));
            $("<div>")
                .addClass("ui-tooltip-content")
                .appendTo(tooltip);
            tooltip.appendTo(this.document[0].body);
            if ($.fn.bgiframe) {
                tooltip.bgiframe();
            }
            this.tooltips[id] = element;
            return tooltip;
        },
        _find: function (target) {
            var id = target.data("ui-tooltip-id");
            return id ? $("#" + id) : $();
        },
        _removeTooltip: function (tooltip) {
            tooltip.remove();
            delete this.tooltips[tooltip.attr("id")];
        },
        _destroy: function () {
            var that = this;
            $.each(this.tooltips, function (id, element) {
                var event = $.Event("blur");
                event.target = event.currentTarget = element[0];
                that.close(event, true);
                $("#" + id).remove();
                if (element.data("ui-tooltip-title")) {
                    element.attr("title", element.data("ui-tooltip-title"));
                    element.removeData("ui-tooltip-title");
                }
            });
        }
    });
}(jQuery));
jQuery(function ($) {
    $.datepicker.regional['zh-CN'] = {
        closeText: '关闭',
        prevText: '&#x3C;上月',
        nextText: '下月&#x3E;',
        currentText: '今天',
        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',
            '七月', '八月', '九月', '十月', '十一月', '十二月'],
        monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月',
            '七月', '八月', '九月', '十月', '十一月', '十二月'],
        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
        weekHeader: '周',
        dateFormat: 'yy-mm-dd',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: true,
        yearSuffix: '年'
    };
    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
});
mw.loader.state({
    "jquery.ui": "ready"
});

/* </pre> */