{"version":3,"sources":["jsdelivr-header.js","/npm/cd-jquery-ui-custom@0.0.2/index.js"],"names":[],"mappings":"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","file":"/npm/cd-jquery-ui-custom@0.0.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/cd-jquery-ui-custom@0.0.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*! jQuery UI - v1.11.4 - 2015-06-15\n* http://jqueryui.com\n* Includes: core.js, widget.js, mouse.js, draggable.js, resizable.js\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tfactory( jQuery );\n}(function( $ ) {\n/*!\n * jQuery UI Core 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\n\n// $.ui might exist from components with no dependencies, e.g., $.ui.position\n$.ui = $.ui || {};\n\n$.extend( $.ui, {\n\tversion: \"1.11.4\",\n\n\tkeyCode: {\n\t\tBACKSPACE: 8,\n\t\tCOMMA: 188,\n\t\tDELETE: 46,\n\t\tDOWN: 40,\n\t\tEND: 35,\n\t\tENTER: 13,\n\t\tESCAPE: 27,\n\t\tHOME: 36,\n\t\tLEFT: 37,\n\t\tPAGE_DOWN: 34,\n\t\tPAGE_UP: 33,\n\t\tPERIOD: 190,\n\t\tRIGHT: 39,\n\t\tSPACE: 32,\n\t\tTAB: 9,\n\t\tUP: 38\n\t}\n});\n\n// plugins\n$.fn.extend({\n\tscrollParent: function( includeHidden ) {\n\t\tvar position = this.css( \"position\" ),\n\t\t\texcludeStaticParent = position === \"absolute\",\n\t\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\t\tscrollParent = this.parents().filter( function() {\n\t\t\t\tvar parent = $( this );\n\t\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) + parent.css( \"overflow-x\" ) );\n\t\t\t}).eq( 0 );\n\n\t\treturn position === \"fixed\" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;\n\t},\n\n\tuniqueId: (function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each(function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each(function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t});\n\t}\n});\n\n// selectors\nfunction focusable( element, isTabIndexNotNaN ) {\n\tvar map, mapName, img,\n\t\tnodeName = element.nodeName.toLowerCase();\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" )[ 0 ];\n\t\treturn !!img && visible( img );\n\t}\n\treturn ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?\n\t\t!element.disabled :\n\t\t\"a\" === nodeName ?\n\t\t\telement.href || isTabIndexNotNaN :\n\t\t\tisTabIndexNotNaN) &&\n\t\t// the element and all of its ancestors must be visible\n\t\tvisible( element );\n}\n\nfunction visible( element ) {\n\treturn $.expr.filters.visible( element ) &&\n\t\t!$( element ).parents().addBack().filter(function() {\n\t\t\treturn $.css( this, \"visibility\" ) === \"hidden\";\n\t\t}).length;\n}\n\n$.extend( $.expr[ \":\" ], {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo(function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t}) :\n\t\t// support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t},\n\n\tfocusable: function( element ) {\n\t\treturn focusable( element, !isNaN( $.attr( element, \"tabindex\" ) ) );\n\t},\n\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\tisTabIndexNaN = isNaN( tabIndex );\n\t\treturn ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );\n\t}\n});\n\n// support: jQuery <1.8\nif ( !$( \"<a>\" ).outerWidth( 1 ).jquery ) {\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\n\t\t\ttype = name.toLowerCase(),\n\t\t\torig = {\n\t\t\t\tinnerWidth: $.fn.innerWidth,\n\t\t\t\tinnerHeight: $.fn.innerHeight,\n\t\t\t\touterWidth: $.fn.outerWidth,\n\t\t\t\touterHeight: $.fn.outerHeight\n\t\t\t};\n\n\t\tfunction reduce( elem, size, border, margin ) {\n\t\t\t$.each( side, function() {\n\t\t\t\tsize -= parseFloat( $.css( elem, \"padding\" + this ) ) || 0;\n\t\t\t\tif ( border ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"border\" + this + \"Width\" ) ) || 0;\n\t\t\t\t}\n\t\t\t\tif ( margin ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"margin\" + this ) ) || 0;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn size;\n\t\t}\n\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\n\t\t\tif ( size === undefined ) {\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\n\t\t\t});\n\t\t};\n\n\t\t$.fn[ \"outer\" + name] = function( size, margin ) {\n\t\t\tif ( typeof size !== \"number\" ) {\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this).css( type, reduce( this, size, true, margin ) + \"px\" );\n\t\t\t});\n\t\t};\n\t});\n}\n\n// support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)\nif ( $( \"<a>\" ).data( \"a-b\", \"a\" ).removeData( \"a-b\" ).data( \"a-b\" ) ) {\n\t$.fn.removeData = (function( removeData ) {\n\t\treturn function( key ) {\n\t\t\tif ( arguments.length ) {\n\t\t\t\treturn removeData.call( this, $.camelCase( key ) );\n\t\t\t} else {\n\t\t\t\treturn removeData.call( this );\n\t\t\t}\n\t\t};\n\t})( $.fn.removeData );\n}\n\n// deprecated\n$.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\n\n$.fn.extend({\n\tfocus: (function( orig ) {\n\t\treturn function( delay, fn ) {\n\t\t\treturn typeof delay === \"number\" ?\n\t\t\t\tthis.each(function() {\n\t\t\t\t\tvar elem = this;\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t$( elem ).focus();\n\t\t\t\t\t\tif ( fn ) {\n\t\t\t\t\t\t\tfn.call( elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay );\n\t\t\t\t}) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.focus ),\n\n\tdisableSelection: (function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.bind( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t});\n\t\t};\n\t})(),\n\n\tenableSelection: function() {\n\t\treturn this.unbind( \".ui-disableSelection\" );\n\t},\n\n\tzIndex: function( zIndex ) {\n\t\tif ( zIndex !== undefined ) {\n\t\t\treturn this.css( \"zIndex\", zIndex );\n\t\t}\n\n\t\tif ( this.length ) {\n\t\t\tvar elem = $( this[ 0 ] ), position, value;\n\t\t\twhile ( elem.length && elem[ 0 ] !== document ) {\n\t\t\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t\t\t// This makes behavior of this function consistent across browsers\n\t\t\t\t// WebKit always returns auto if the element is positioned\n\t\t\t\tposition = elem.css( \"position\" );\n\t\t\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\t\t\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t\t\t// other browsers return a string\n\t\t\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n\t\t\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telem = elem.parent();\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n});\n\n// $.ui.plugin is deprecated. Use $.widget() extensions instead.\n$.ui.plugin = {\n\tadd: function( module, option, set ) {\n\t\tvar i,\n\t\t\tproto = $.ui[ module ].prototype;\n\t\tfor ( i in set ) {\n\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\n\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\n\t\t}\n\t},\n\tcall: function( instance, name, args, allowDisconnected ) {\n\t\tvar i,\n\t\t\tset = instance.plugins[ name ];\n\n\t\tif ( !set ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( i = 0; i < set.length; i++ ) {\n\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\n\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\n\t\t\t}\n\t\t}\n\t}\n};\n\n\n/*!\n * jQuery UI Widget 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n\nvar widget_uuid = 0,\n\twidget_slice = Array.prototype.slice;\n\n$.cleanData = (function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n})( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widget_slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = widget_slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\treturnValue = instance;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat(args) );\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widget_uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif ( value ) {\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions({ disabled: false });\n\t},\n\tdisable: function() {\n\t\treturn this._setOptions({ disabled: true });\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\nvar widget = $.widget;\n\n\n/*!\n * jQuery UI Mouse 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/mouse/\n */\n\n\nvar mouseHandled = false;\n$( document ).mouseup( function() {\n\tmouseHandled = false;\n});\n\nvar mouse = $.widget(\"ui.mouse\", {\n\tversion: \"1.11.4\",\n\toptions: {\n\t\tcancel: \"input,textarea,button,select,option\",\n\t\tdistance: 1,\n\t\tdelay: 0\n\t},\n\t_mouseInit: function() {\n\t\tvar that = this;\n\n\t\tthis.element\n\t\t\t.bind(\"mousedown.\" + this.widgetName, function(event) {\n\t\t\t\treturn that._mouseDown(event);\n\t\t\t})\n\t\t\t.bind(\"click.\" + this.widgetName, function(event) {\n\t\t\t\tif (true === $.data(event.target, that.widgetName + \".preventClickEvent\")) {\n\t\t\t\t\t$.removeData(event.target, that.widgetName + \".preventClickEvent\");\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.started = false;\n\t},\n\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\n\t// other instances of mouse\n\t_mouseDestroy: function() {\n\t\tthis.element.unbind(\".\" + this.widgetName);\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\tthis.document\n\t\t\t\t.unbind(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate)\n\t\t\t\t.unbind(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\n\t\t}\n\t},\n\n\t_mouseDown: function(event) {\n\t\t// don't let more than one widget handle mouseStart\n\t\tif ( mouseHandled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._mouseMoved = false;\n\n\t\t// we may have missed mouseup (out of window)\n\t\t(this._mouseStarted && this._mouseUp(event));\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = (event.which === 1),\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\n\t\t\t// disabled inputs (#7620)\n\t\t\telIsCancel = (typeof this.options.cancel === \"string\" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);\n\t\tif (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.mouseDelayMet = !this.options.delay;\n\t\tif (!this.mouseDelayMet) {\n\t\t\tthis._mouseDelayTimer = setTimeout(function() {\n\t\t\t\tthat.mouseDelayMet = true;\n\t\t\t}, this.options.delay);\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted = (this._mouseStart(event) !== false);\n\t\t\tif (!this._mouseStarted) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Click event may never have fired (Gecko & Opera)\n\t\tif (true === $.data(event.target, this.widgetName + \".preventClickEvent\")) {\n\t\t\t$.removeData(event.target, this.widgetName + \".preventClickEvent\");\n\t\t}\n\n\t\t// these delegates are required to keep context\n\t\tthis._mouseMoveDelegate = function(event) {\n\t\t\treturn that._mouseMove(event);\n\t\t};\n\t\tthis._mouseUpDelegate = function(event) {\n\t\t\treturn that._mouseUp(event);\n\t\t};\n\n\t\tthis.document\n\t\t\t.bind( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.bind( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tevent.preventDefault();\n\n\t\tmouseHandled = true;\n\t\treturn true;\n\t},\n\n\t_mouseMove: function(event) {\n\t\t// Only check for mouseups outside the document if you've moved inside the document\n\t\t// at least once. This prevents the firing of mouseup in the case of IE<9, which will\n\t\t// fire a mousemove event if content is placed under the cursor. See #7778\n\t\t// Support: IE <9\n\t\tif ( this._mouseMoved ) {\n\t\t\t// IE mouseup check - mouseup happened when mouse was out of window\n\t\t\tif ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {\n\t\t\t\treturn this._mouseUp(event);\n\n\t\t\t// Iframe mouseup check - mouseup occurred in another document\n\t\t\t} else if ( !event.which ) {\n\t\t\t\treturn this._mouseUp( event );\n\t\t\t}\n\t\t}\n\n\t\tif ( event.which || event.button ) {\n\t\t\tthis._mouseMoved = true;\n\t\t}\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseDrag(event);\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted =\n\t\t\t\t(this._mouseStart(this._mouseDownEvent, event) !== false);\n\t\t\t(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));\n\t\t}\n\n\t\treturn !this._mouseStarted;\n\t},\n\n\t_mouseUp: function(event) {\n\t\tthis.document\n\t\t\t.unbind( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.unbind( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseStarted = false;\n\n\t\t\tif (event.target === this._mouseDownEvent.target) {\n\t\t\t\t$.data(event.target, this.widgetName + \".preventClickEvent\", true);\n\t\t\t}\n\n\t\t\tthis._mouseStop(event);\n\t\t}\n\n\t\tmouseHandled = false;\n\t\treturn false;\n\t},\n\n\t_mouseDistanceMet: function(event) {\n\t\treturn (Math.max(\n\t\t\t\tMath.abs(this._mouseDownEvent.pageX - event.pageX),\n\t\t\t\tMath.abs(this._mouseDownEvent.pageY - event.pageY)\n\t\t\t) >= this.options.distance\n\t\t);\n\t},\n\n\t_mouseDelayMet: function(/* event */) {\n\t\treturn this.mouseDelayMet;\n\t},\n\n\t// These are placeholder methods, to be overriden by extending plugin\n\t_mouseStart: function(/* event */) {},\n\t_mouseDrag: function(/* event */) {},\n\t_mouseStop: function(/* event */) {},\n\t_mouseCapture: function(/* event */) { return true; }\n});\n\n\n/*!\n * jQuery UI Draggable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/draggable/\n */\n\n\n$.widget(\"ui.draggable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"drag\",\n\toptions: {\n\t\taddClasses: true,\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectToSortable: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\tiframeFix: false,\n\t\topacity: false,\n\t\trefreshPositions: false,\n\t\trevert: false,\n\t\trevertDuration: 500,\n\t\tscope: \"default\",\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tsnap: false,\n\t\tsnapMode: \"both\",\n\t\tsnapTolerance: 20,\n\t\tstack: false,\n\t\tzIndex: false,\n\n\t\t// callbacks\n\t\tdrag: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\t_create: function() {\n\n\t\tif ( this.options.helper === \"original\" ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\t\tif (this.options.addClasses){\n\t\t\tthis.element.addClass(\"ui-draggable\");\n\t\t}\n\t\tif (this.options.disabled){\n\t\t\tthis.element.addClass(\"ui-draggable-disabled\");\n\t\t}\n\t\tthis._setHandleClassName();\n\n\t\tthis._mouseInit();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._removeHandleClassName();\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tif ( ( this.helper || this.element ).is( \".ui-draggable-dragging\" ) ) {\n\t\t\tthis.destroyOnClear = true;\n\t\t\treturn;\n\t\t}\n\t\tthis.element.removeClass( \"ui-draggable ui-draggable-dragging ui-draggable-disabled\" );\n\t\tthis._removeHandleClassName();\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function(event) {\n\t\tvar o = this.options;\n\n\t\tthis._blurActiveElement( event );\n\n\t\t// among others, prevent a drag on a resizable-handle\n\t\tif (this.helper || o.disabled || $(event.target).closest(\".ui-resizable-handle\").length > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//Quit if we're not on a valid handle\n\t\tthis.handle = this._getHandle(event);\n\t\tif (!this.handle) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._blockFrames( o.iframeFix === true ? \"iframe\" : o.iframeFix );\n\n\t\treturn true;\n\n\t},\n\n\t_blockFrames: function( selector ) {\n\t\tthis.iframeBlocks = this.document.find( selector ).map(function() {\n\t\t\tvar iframe = $( this );\n\n\t\t\treturn $( \"<div>\" )\n\t\t\t\t.css( \"position\", \"absolute\" )\n\t\t\t\t.appendTo( iframe.parent() )\n\t\t\t\t.outerWidth( iframe.outerWidth() )\n\t\t\t\t.outerHeight( iframe.outerHeight() )\n\t\t\t\t.offset( iframe.offset() )[ 0 ];\n\t\t});\n\t},\n\n\t_unblockFrames: function() {\n\t\tif ( this.iframeBlocks ) {\n\t\t\tthis.iframeBlocks.remove();\n\t\t\tdelete this.iframeBlocks;\n\t\t}\n\t},\n\n\t_blurActiveElement: function( event ) {\n\t\tvar document = this.document[ 0 ];\n\n\t\t// Only need to blur if the event occurred on the draggable itself, see #10527\n\t\tif ( !this.handleElement.is( event.target ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// support: IE9\n\t\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n\t\ttry {\n\n\t\t\t// Support: IE9, IE10\n\t\t\t// If the <body> is blurred, IE will switch windows, see #9520\n\t\t\tif ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== \"body\" ) {\n\n\t\t\t\t// Blur any element that currently has focus, see #4261\n\t\t\t\t$( document.activeElement ).blur();\n\t\t\t}\n\t\t} catch ( error ) {}\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar o = this.options;\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper(event);\n\n\t\tthis.helper.addClass(\"ui-draggable-dragging\");\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//If ddmanager is used for droppables, set the global draggable\n\t\tif ($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Store the helper's css position\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\t\tthis.scrollParent = this.helper.scrollParent( true );\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tthis.hasFixedAncestor = this.helper.parents().filter(function() {\n\t\t\t\treturn $( this ).css( \"position\" ) === \"fixed\";\n\t\t\t}).length > 0;\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.positionAbs = this.element.offset();\n\t\tthis._refreshOffsets( event );\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this.position = this._generatePosition( event, false );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\n\n\t\t//Set a containment if given in the options\n\t\tthis._setContainment();\n\n\t\t//Trigger event + callbacks\n\t\tif (this._trigger(\"start\", event) === false) {\n\t\t\tthis._clear();\n\t\t\treturn false;\n\t\t}\n\n\t\t//Recache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//Prepare the droppable offsets\n\t\tif ($.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t}\n\n\t\t// Reset helper's right/bottom css if they're set and set explicit width/height instead\n\t\t// as this prevents resizing of elements with right/bottom set (see #7772)\n\t\tthis._normalizeRightBottom();\n\n\t\tthis._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStart(this, event);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t_refreshOffsets: function( event ) {\n\t\tthis.offset = {\n\t\t\ttop: this.positionAbs.top - this.margins.top,\n\t\t\tleft: this.positionAbs.left - this.margins.left,\n\t\t\tscroll: false,\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset()\n\t\t};\n\n\t\tthis.offset.click = {\n\t\t\tleft: event.pageX - this.offset.left,\n\t\t\ttop: event.pageY - this.offset.top\n\t\t};\n\t},\n\n\t_mouseDrag: function(event, noPropagation) {\n\t\t// reset any necessary cached properties (see #5009)\n\t\tif ( this.hasFixedAncestor ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event, true );\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\t//Call plugins and callbacks and use the resulting position if something is returned\n\t\tif (!noPropagation) {\n\t\t\tvar ui = this._uiHash();\n\t\t\tif (this._trigger(\"drag\", event, ui) === false) {\n\t\t\t\tthis._mouseUp({});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.position = ui.position;\n\t\t}\n\n\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\n\t\tif ($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.drag(this, event);\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tvar that = this,\n\t\t\tdropped = false;\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour) {\n\t\t\tdropped = $.ui.ddmanager.drop(this, event);\n\t\t}\n\n\t\t//if a drop comes from outside (a sortable)\n\t\tif (this.dropped) {\n\t\t\tdropped = this.dropped;\n\t\t\tthis.dropped = false;\n\t\t}\n\n\t\tif ((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))) {\n\t\t\t$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {\n\t\t\t\tif (that._trigger(\"stop\", event) !== false) {\n\t\t\t\t\tthat._clear();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif (this._trigger(\"stop\", event) !== false) {\n\t\t\t\tthis._clear();\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseUp: function( event ) {\n\t\tthis._unblockFrames();\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStop(this, event);\n\t\t}\n\n\t\t// Only need to focus if the event occurred on the draggable itself, see #10527\n\t\tif ( this.handleElement.is( event.target ) ) {\n\t\t\t// The interaction is over; whether or not the click resulted in a drag, focus the element\n\t\t\tthis.element.focus();\n\t\t}\n\n\t\treturn $.ui.mouse.prototype._mouseUp.call(this, event);\n\t},\n\n\tcancel: function() {\n\n\t\tif (this.helper.is(\".ui-draggable-dragging\")) {\n\t\t\tthis._mouseUp({});\n\t\t} else {\n\t\t\tthis._clear();\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\t_getHandle: function(event) {\n\t\treturn this.options.handle ?\n\t\t\t!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :\n\t\t\ttrue;\n\t},\n\n\t_setHandleClassName: function() {\n\t\tthis.handleElement = this.options.handle ?\n\t\t\tthis.element.find( this.options.handle ) : this.element;\n\t\tthis.handleElement.addClass( \"ui-draggable-handle\" );\n\t},\n\n\t_removeHandleClassName: function() {\n\t\tthis.handleElement.removeClass( \"ui-draggable-handle\" );\n\t},\n\n\t_createHelper: function(event) {\n\n\t\tvar o = this.options,\n\t\t\thelperIsFunction = $.isFunction( o.helper ),\n\t\t\thelper = helperIsFunction ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ?\n\t\t\t\t\tthis.element.clone().removeAttr( \"id\" ) :\n\t\t\t\t\tthis.element );\n\n\t\tif (!helper.parents(\"body\").length) {\n\t\t\thelper.appendTo((o.appendTo === \"parent\" ? this.element[0].parentNode : o.appendTo));\n\t\t}\n\n\t\t// http://bugs.jqueryui.com/ticket/9446\n\t\t// a helper function can return the original element\n\t\t// which wouldn't have been set to relative in _create\n\t\tif ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\n\t\tif (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css(\"position\"))) {\n\t\t\thelper.css(\"position\", \"absolute\");\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_setPositionRelative: function() {\n\t\tif ( !( /^(?:r|a|f)/ ).test( this.element.css( \"position\" ) ) ) {\n\t\t\tthis.element[ 0 ].style.position = \"relative\";\n\t\t}\n\t},\n\n\t_adjustOffsetFromHelper: function(obj) {\n\t\tif (typeof obj === \"string\") {\n\t\t\tobj = obj.split(\" \");\n\t\t}\n\t\tif ($.isArray(obj)) {\n\t\t\tobj = { left: +obj[0], top: +obj[1] || 0 };\n\t\t}\n\t\tif (\"left\" in obj) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif (\"right\" in obj) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif (\"top\" in obj) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif (\"bottom\" in obj) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_isRootNode: function( element ) {\n\t\treturn ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tvar po = this.offsetParent.offset(),\n\t\t\tdocument = this.document[ 0 ];\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\n\t\t//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\n\t\tif (this.cssPosition === \"absolute\" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\tif ( this._isRootNode( this.offsetParent[ 0 ] ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"), 10) || 0),\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"), 10) || 0)\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\t\tif ( this.cssPosition !== \"relative\" ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\tvar p = this.element.position(),\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: p.top - ( parseInt(this.helper.css( \"top\" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),\n\t\t\tleft: p.left - ( parseInt(this.helper.css( \"left\" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )\n\t\t};\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: (parseInt(this.element.css(\"marginLeft\"), 10) || 0),\n\t\t\ttop: (parseInt(this.element.css(\"marginTop\"), 10) || 0),\n\t\t\tright: (parseInt(this.element.css(\"marginRight\"), 10) || 0),\n\t\t\tbottom: (parseInt(this.element.css(\"marginBottom\"), 10) || 0)\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar isUserScrollable, c, ce,\n\t\t\to = this.options,\n\t\t\tdocument = this.document[ 0 ];\n\n\t\tthis.relativeContainer = null;\n\n\t\tif ( !o.containment ) {\n\t\t\tthis.containment = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\t$( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t$( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"document\") {\n\t\t\tthis.containment = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t$( document ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment.constructor === Array ) {\n\t\t\tthis.containment = o.containment;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\n\t\tc = $( o.containment );\n\t\tce = c[ 0 ];\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tisUserScrollable = /(scroll|auto)/.test( c.css( \"overflow\" ) );\n\n\t\tthis.containment = [\n\t\t\t( parseInt( c.css( \"borderLeftWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingLeft\" ), 10 ) || 0 ),\n\t\t\t( parseInt( c.css( \"borderTopWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingTop\" ), 10 ) || 0 ),\n\t\t\t( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t( parseInt( c.css( \"borderRightWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.width -\n\t\t\t\tthis.margins.left -\n\t\t\t\tthis.margins.right,\n\t\t\t( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t( parseInt( c.css( \"borderBottomWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.height -\n\t\t\t\tthis.margins.top -\n\t\t\t\tthis.margins.bottom\n\t\t];\n\t\tthis.relativeContainer = c;\n\t},\n\n\t_convertPositionTo: function(d, pos) {\n\n\t\tif (!pos) {\n\t\t\tpos = this.position;\n\t\t}\n\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpos.top\t+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.top * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top * mod -\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpos.left +\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.left * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left * mod\t-\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event, constrainPosition ) {\n\n\t\tvar containment, co, top, left,\n\t\t\to = this.options,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY;\n\n\t\t// Cache the scroll\n\t\tif ( !scrollIsRootNode || !this.offset.scroll ) {\n\t\t\tthis.offset.scroll = {\n\t\t\t\ttop: this.scrollParent.scrollTop(),\n\t\t\t\tleft: this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\t// If we are not dragging yet, we won't check for options\n\t\tif ( constrainPosition ) {\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( this.relativeContainer ){\n\t\t\t\t\tco = this.relativeContainer.offset();\n\t\t\t\t\tcontainment = [\n\t\t\t\t\t\tthis.containment[ 0 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 1 ] + co.top,\n\t\t\t\t\t\tthis.containment[ 2 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 3 ] + co.top\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tcontainment = this.containment;\n\t\t\t\t}\n\n\t\t\t\tif (event.pageX - this.offset.click.left < containment[0]) {\n\t\t\t\t\tpageX = containment[0] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif (event.pageY - this.offset.click.top < containment[1]) {\n\t\t\t\t\tpageY = containment[1] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif (event.pageX - this.offset.click.left > containment[2]) {\n\t\t\t\t\tpageX = containment[2] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif (event.pageY - this.offset.click.top > containment[3]) {\n\t\t\t\t\tpageY = containment[3] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (o.grid) {\n\t\t\t\t//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)\n\t\t\t\ttop = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;\n\t\t\t\tpageY = 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;\n\n\t\t\t\tleft = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;\n\t\t\t\tpageX = 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;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"y\" ) {\n\t\t\t\tpageX = this.originalPageX;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"x\" ) {\n\t\t\t\tpageY = this.originalPageY;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpageY -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.top\t-\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.top -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpageX -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.left -\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.left -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_clear: function() {\n\t\tthis.helper.removeClass(\"ui-draggable-dragging\");\n\t\tif (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {\n\t\t\tthis.helper.remove();\n\t\t}\n\t\tthis.helper = null;\n\t\tthis.cancelHelperRemoval = false;\n\t\tif ( this.destroyOnClear ) {\n\t\t\tthis.destroy();\n\t\t}\n\t},\n\n\t_normalizeRightBottom: function() {\n\t\tif ( this.options.axis !== \"y\" && this.helper.css( \"right\" ) !== \"auto\" ) {\n\t\t\tthis.helper.width( this.helper.width() );\n\t\t\tthis.helper.css( \"right\", \"auto\" );\n\t\t}\n\t\tif ( this.options.axis !== \"x\" && this.helper.css( \"bottom\" ) !== \"auto\" ) {\n\t\t\tthis.helper.height( this.helper.height() );\n\t\t\tthis.helper.css( \"bottom\", \"auto\" );\n\t\t}\n\t},\n\n\t// From now on bulk stuff - mainly helpers\n\n\t_trigger: function( type, event, ui ) {\n\t\tui = ui || this._uiHash();\n\t\t$.ui.plugin.call( this, type, [ event, ui, this ], true );\n\n\t\t// Absolute position and offset (see #6884 ) have to be recalculated after plugins\n\t\tif ( /^(drag|start|stop)/.test( type ) ) {\n\t\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\t\t\tui.offset = this.positionAbs;\n\t\t}\n\t\treturn $.Widget.prototype._trigger.call( this, type, event, ui );\n\t},\n\n\tplugins: {},\n\n\t_uiHash: function() {\n\t\treturn {\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\toriginalPosition: this.originalPosition,\n\t\t\toffset: this.positionAbs\n\t\t};\n\t}\n\n});\n\n$.ui.plugin.add( \"draggable\", \"connectToSortable\", {\n\tstart: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t});\n\n\t\tdraggable.sortables = [];\n\t\t$( draggable.options.connectToSortable ).each(function() {\n\t\t\tvar sortable = $( this ).sortable( \"instance\" );\n\n\t\t\tif ( sortable && !sortable.options.disabled ) {\n\t\t\t\tdraggable.sortables.push( sortable );\n\n\t\t\t\t// refreshPositions is called at drag start to refresh the containerCache\n\t\t\t\t// which is used in drag. This ensures it's initialized and synchronized\n\t\t\t\t// with any changes that might have happened on the page since initialization.\n\t\t\t\tsortable.refreshPositions();\n\t\t\t\tsortable._trigger(\"activate\", event, uiSortable);\n\t\t\t}\n\t\t});\n\t},\n\tstop: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t});\n\n\t\tdraggable.cancelHelperRemoval = false;\n\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar sortable = this;\n\n\t\t\tif ( sortable.isOver ) {\n\t\t\t\tsortable.isOver = 0;\n\n\t\t\t\t// Allow this sortable to handle removing the helper\n\t\t\t\tdraggable.cancelHelperRemoval = true;\n\t\t\t\tsortable.cancelHelperRemoval = false;\n\n\t\t\t\t// Use _storedCSS To restore properties in the sortable,\n\t\t\t\t// as this also handles revert (#9675) since the draggable\n\t\t\t\t// may have modified them in unexpected ways (#8809)\n\t\t\t\tsortable._storedCSS = {\n\t\t\t\t\tposition: sortable.placeholder.css( \"position\" ),\n\t\t\t\t\ttop: sortable.placeholder.css( \"top\" ),\n\t\t\t\t\tleft: sortable.placeholder.css( \"left\" )\n\t\t\t\t};\n\n\t\t\t\tsortable._mouseStop(event);\n\n\t\t\t\t// Once drag has ended, the sortable should return to using\n\t\t\t\t// its original helper, not the shared helper from draggable\n\t\t\t\tsortable.options.helper = sortable.options._helper;\n\t\t\t} else {\n\t\t\t\t// Prevent this Sortable from removing the helper.\n\t\t\t\t// However, don't set the draggable to remove the helper\n\t\t\t\t// either as another connected Sortable may yet handle the removal.\n\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\tsortable._trigger( \"deactivate\", event, uiSortable );\n\t\t\t}\n\t\t});\n\t},\n\tdrag: function( event, ui, draggable ) {\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar innermostIntersecting = false,\n\t\t\t\tsortable = this;\n\n\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\tsortable.positionAbs = draggable.positionAbs;\n\t\t\tsortable.helperProportions = draggable.helperProportions;\n\t\t\tsortable.offset.click = draggable.offset.click;\n\n\t\t\tif ( sortable._intersectsWith( sortable.containerCache ) ) {\n\t\t\t\tinnermostIntersecting = true;\n\n\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\t\t\tthis.positionAbs = draggable.positionAbs;\n\t\t\t\t\tthis.helperProportions = draggable.helperProportions;\n\t\t\t\t\tthis.offset.click = draggable.offset.click;\n\n\t\t\t\t\tif ( this !== sortable &&\n\t\t\t\t\t\t\tthis._intersectsWith( this.containerCache ) &&\n\t\t\t\t\t\t\t$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {\n\t\t\t\t\t\tinnermostIntersecting = false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn innermostIntersecting;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif ( innermostIntersecting ) {\n\t\t\t\t// If it intersects, we use a little isOver variable and set it once,\n\t\t\t\t// so that the move-in stuff gets fired only once.\n\t\t\t\tif ( !sortable.isOver ) {\n\t\t\t\t\tsortable.isOver = 1;\n\n\t\t\t\t\t// Store draggable's parent in case we need to reappend to it later.\n\t\t\t\t\tdraggable._parent = ui.helper.parent();\n\n\t\t\t\t\tsortable.currentItem = ui.helper\n\t\t\t\t\t\t.appendTo( sortable.element )\n\t\t\t\t\t\t.data( \"ui-sortable-item\", true );\n\n\t\t\t\t\t// Store helper option to later restore it\n\t\t\t\t\tsortable.options._helper = sortable.options.helper;\n\n\t\t\t\t\tsortable.options.helper = function() {\n\t\t\t\t\t\treturn ui.helper[ 0 ];\n\t\t\t\t\t};\n\n\t\t\t\t\t// Fire the start events of the sortable with our passed browser event,\n\t\t\t\t\t// and our own helper (so it doesn't create a new one)\n\t\t\t\t\tevent.target = sortable.currentItem[ 0 ];\n\t\t\t\t\tsortable._mouseCapture( event, true );\n\t\t\t\t\tsortable._mouseStart( event, true, true );\n\n\t\t\t\t\t// Because the browser event is way off the new appended portlet,\n\t\t\t\t\t// modify necessary variables to reflect the changes\n\t\t\t\t\tsortable.offset.click.top = draggable.offset.click.top;\n\t\t\t\t\tsortable.offset.click.left = draggable.offset.click.left;\n\t\t\t\t\tsortable.offset.parent.left -= draggable.offset.parent.left -\n\t\t\t\t\t\tsortable.offset.parent.left;\n\t\t\t\t\tsortable.offset.parent.top -= draggable.offset.parent.top -\n\t\t\t\t\t\tsortable.offset.parent.top;\n\n\t\t\t\t\tdraggable._trigger( \"toSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is in a valid drop zone,\n\t\t\t\t\t// used solely in the revert option to handle \"valid/invalid\".\n\t\t\t\t\tdraggable.dropped = sortable.element;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables in the case that\n\t\t\t\t\t// adding to one sortable changes the location of the other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t});\n\n\t\t\t\t\t// hack so receive/update callbacks work (mostly)\n\t\t\t\t\tdraggable.currentItem = draggable.element;\n\t\t\t\t\tsortable.fromOutside = draggable;\n\t\t\t\t}\n\n\t\t\t\tif ( sortable.currentItem ) {\n\t\t\t\t\tsortable._mouseDrag( event );\n\t\t\t\t\t// Copy the sortable's position because the draggable's can potentially reflect\n\t\t\t\t\t// a relative position, while sortable is always absolute, which the dragged\n\t\t\t\t\t// element has now become. (#8809)\n\t\t\t\t\tui.position = sortable.position;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If it doesn't intersect with the sortable, and it intersected before,\n\t\t\t\t// we fake the drag stop of the sortable, but make sure it doesn't remove\n\t\t\t\t// the helper by using cancelHelperRemoval.\n\t\t\t\tif ( sortable.isOver ) {\n\n\t\t\t\t\tsortable.isOver = 0;\n\t\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\t\t// Calling sortable's mouseStop would trigger a revert,\n\t\t\t\t\t// so revert must be temporarily false until after mouseStop is called.\n\t\t\t\t\tsortable.options._revert = sortable.options.revert;\n\t\t\t\t\tsortable.options.revert = false;\n\n\t\t\t\t\tsortable._trigger( \"out\", event, sortable._uiHash( sortable ) );\n\t\t\t\t\tsortable._mouseStop( event, true );\n\n\t\t\t\t\t// restore sortable behaviors that were modfied\n\t\t\t\t\t// when the draggable entered the sortable area (#9481)\n\t\t\t\t\tsortable.options.revert = sortable.options._revert;\n\t\t\t\t\tsortable.options.helper = sortable.options._helper;\n\n\t\t\t\t\tif ( sortable.placeholder ) {\n\t\t\t\t\t\tsortable.placeholder.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Restore and recalculate the draggable's offset considering the sortable\n\t\t\t\t\t// may have modified them in unexpected ways. (#8809, #10669)\n\t\t\t\t\tui.helper.appendTo( draggable._parent );\n\t\t\t\t\tdraggable._refreshOffsets( event );\n\t\t\t\t\tui.position = draggable._generatePosition( event, true );\n\n\t\t\t\t\tdraggable._trigger( \"fromSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is no longer in a valid drop zone\n\t\t\t\t\tdraggable.dropped = false;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables just in case removing\n\t\t\t\t\t// from one sortable changes the location of other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"cursor\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( \"body\" ),\n\t\t\to = instance.options;\n\n\t\tif (t.css(\"cursor\")) {\n\t\t\to._cursor = t.css(\"cursor\");\n\t\t}\n\t\tt.css(\"cursor\", o.cursor);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif (o._cursor) {\n\t\t\t$(\"body\").css(\"cursor\", o._cursor);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"opacity\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\t\tif (t.css(\"opacity\")) {\n\t\t\to._opacity = t.css(\"opacity\");\n\t\t}\n\t\tt.css(\"opacity\", o.opacity);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif (o._opacity) {\n\t\t\t$(ui.helper).css(\"opacity\", o._opacity);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"scroll\", {\n\tstart: function( event, ui, i ) {\n\t\tif ( !i.scrollParentNotHidden ) {\n\t\t\ti.scrollParentNotHidden = i.helper.scrollParent( false );\n\t\t}\n\n\t\tif ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== \"HTML\" ) {\n\t\t\ti.overflowOffset = i.scrollParentNotHidden.offset();\n\t\t}\n\t},\n\tdrag: function( event, ui, i  ) {\n\n\t\tvar o = i.options,\n\t\t\tscrolled = false,\n\t\t\tscrollParent = i.scrollParentNotHidden[ 0 ],\n\t\t\tdocument = i.document[ 0 ];\n\n\t\tif ( scrollParent !== document && scrollParent.tagName !== \"HTML\" ) {\n\t\t\tif ( !o.axis || o.axis !== \"x\" ) {\n\t\t\t\tif ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !o.axis || o.axis !== \"y\" ) {\n\t\t\t\tif ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif (!o.axis || o.axis !== \"x\") {\n\t\t\t\tif (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\n\t\t\t\t} else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!o.axis || o.axis !== \"y\") {\n\t\t\t\tif (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\n\t\t\t\t} else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(i, event);\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"snap\", {\n\tstart: function( event, ui, i ) {\n\n\t\tvar o = i.options;\n\n\t\ti.snapElements = [];\n\n\t\t$(o.snap.constructor !== String ? ( o.snap.items || \":data(ui-draggable)\" ) : o.snap).each(function() {\n\t\t\tvar $t = $(this),\n\t\t\t\t$o = $t.offset();\n\t\t\tif (this !== i.element[0]) {\n\t\t\t\ti.snapElements.push({\n\t\t\t\t\titem: this,\n\t\t\t\t\twidth: $t.outerWidth(), height: $t.outerHeight(),\n\t\t\t\t\ttop: $o.top, left: $o.left\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t},\n\tdrag: function( event, ui, inst ) {\n\n\t\tvar ts, bs, ls, rs, l, r, t, b, i, first,\n\t\t\to = inst.options,\n\t\t\td = o.snapTolerance,\n\t\t\tx1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,\n\t\t\ty1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;\n\n\t\tfor (i = inst.snapElements.length - 1; i >= 0; i--){\n\n\t\t\tl = inst.snapElements[i].left - inst.margins.left;\n\t\t\tr = l + inst.snapElements[i].width;\n\t\t\tt = inst.snapElements[i].top - inst.margins.top;\n\t\t\tb = t + inst.snapElements[i].height;\n\n\t\t\tif ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {\n\t\t\t\tif (inst.snapElements[i].snapping) {\n\t\t\t\t\t(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t\t}\n\t\t\t\tinst.snapElements[i].snapping = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (o.snapMode !== \"inner\") {\n\t\t\t\tts = Math.abs(t - y2) <= d;\n\t\t\t\tbs = Math.abs(b - y1) <= d;\n\t\t\t\tls = Math.abs(l - x2) <= d;\n\t\t\t\trs = Math.abs(r - x1) <= d;\n\t\t\t\tif (ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t - inst.helperProportions.height, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l - inst.helperProportions.width }).left;\n\t\t\t\t}\n\t\t\t\tif (rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r }).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirst = (ts || bs || ls || rs);\n\n\t\t\tif (o.snapMode !== \"outer\") {\n\t\t\t\tts = Math.abs(t - y1) <= d;\n\t\t\t\tbs = Math.abs(b - y2) <= d;\n\t\t\t\tls = Math.abs(l - x1) <= d;\n\t\t\t\trs = Math.abs(r - x2) <= d;\n\t\t\t\tif (ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b - inst.helperProportions.height, left: 0 }).top;\n\t\t\t\t}\n\t\t\t\tif (ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l }).left;\n\t\t\t\t}\n\t\t\t\tif (rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r - inst.helperProportions.width }).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {\n\t\t\t\t(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t}\n\t\t\tinst.snapElements[i].snapping = (ts || bs || ls || rs || first);\n\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"stack\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar min,\n\t\t\to = instance.options,\n\t\t\tgroup = $.makeArray($(o.stack)).sort(function(a, b) {\n\t\t\t\treturn (parseInt($(a).css(\"zIndex\"), 10) || 0) - (parseInt($(b).css(\"zIndex\"), 10) || 0);\n\t\t\t});\n\n\t\tif (!group.length) { return; }\n\n\t\tmin = parseInt($(group[0]).css(\"zIndex\"), 10) || 0;\n\t\t$(group).each(function(i) {\n\t\t\t$(this).css(\"zIndex\", min + i);\n\t\t});\n\t\tthis.css(\"zIndex\", (min + group.length));\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"zIndex\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\n\t\tif (t.css(\"zIndex\")) {\n\t\t\to._zIndex = t.css(\"zIndex\");\n\t\t}\n\t\tt.css(\"zIndex\", o.zIndex);\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\n\t\tif (o._zIndex) {\n\t\t\t$(ui.helper).css(\"zIndex\", o._zIndex);\n\t\t}\n\t}\n});\n\nvar draggable = $.ui.draggable;\n\n\n/*!\n * jQuery UI Resizable 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/resizable/\n */\n\n\n$.widget(\"ui.resizable\", $.ui.mouse, {\n\tversion: \"1.11.4\",\n\twidgetEventPrefix: \"resize\",\n\toptions: {\n\t\talsoResize: false,\n\t\tanimate: false,\n\t\tanimateDuration: \"slow\",\n\t\tanimateEasing: \"swing\",\n\t\taspectRatio: false,\n\t\tautoHide: false,\n\t\tcontainment: false,\n\t\tghost: false,\n\t\tgrid: false,\n\t\thandles: \"e,s,se\",\n\t\thelper: false,\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 10,\n\t\tminWidth: 10,\n\t\t// See #7960\n\t\tzIndex: 90,\n\n\t\t// callbacks\n\t\tresize: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t_num: function( value ) {\n\t\treturn parseInt( value, 10 ) || 0;\n\t},\n\n\t_isNumber: function( value ) {\n\t\treturn !isNaN( parseInt( value, 10 ) );\n\t},\n\n\t_hasScroll: function( el, a ) {\n\n\t\tif ( $( el ).css( \"overflow\" ) === \"hidden\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar scroll = ( a && a === \"left\" ) ? \"scrollLeft\" : \"scrollTop\",\n\t\t\thas = false;\n\n\t\tif ( el[ scroll ] > 0 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: determine which cases actually cause this to happen\n\t\t// if the element doesn't have the scroll set, see if it's possible to\n\t\t// set the scroll\n\t\tel[ scroll ] = 1;\n\t\thas = ( el[ scroll ] > 0 );\n\t\tel[ scroll ] = 0;\n\t\treturn has;\n\t},\n\n\t_create: function() {\n\n\t\tvar n, i, handle, axis, hname,\n\t\t\tthat = this,\n\t\t\to = this.options;\n\t\tthis.element.addClass(\"ui-resizable\");\n\n\t\t$.extend(this, {\n\t\t\t_aspectRatio: !!(o.aspectRatio),\n\t\t\taspectRatio: o.aspectRatio,\n\t\t\toriginalElement: this.element,\n\t\t\t_proportionallyResizeElements: [],\n\t\t\t_helper: o.helper || o.ghost || o.animate ? o.helper || \"ui-resizable-helper\" : null\n\t\t});\n\n\t\t// Wrap the element if it cannot hold child nodes\n\t\tif (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) {\n\n\t\t\tthis.element.wrap(\n\t\t\t\t$(\"<div class='ui-wrapper' style='overflow: hidden;'></div>\").css({\n\t\t\t\t\tposition: this.element.css(\"position\"),\n\t\t\t\t\twidth: this.element.outerWidth(),\n\t\t\t\t\theight: this.element.outerHeight(),\n\t\t\t\t\ttop: this.element.css(\"top\"),\n\t\t\t\t\tleft: this.element.css(\"left\")\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tthis.element = this.element.parent().data(\n\t\t\t\t\"ui-resizable\", this.element.resizable( \"instance\" )\n\t\t\t);\n\n\t\t\tthis.elementIsWrapper = true;\n\n\t\t\tthis.element.css({\n\t\t\t\tmarginLeft: this.originalElement.css(\"marginLeft\"),\n\t\t\t\tmarginTop: this.originalElement.css(\"marginTop\"),\n\t\t\t\tmarginRight: this.originalElement.css(\"marginRight\"),\n\t\t\t\tmarginBottom: this.originalElement.css(\"marginBottom\")\n\t\t\t});\n\t\t\tthis.originalElement.css({\n\t\t\t\tmarginLeft: 0,\n\t\t\t\tmarginTop: 0,\n\t\t\t\tmarginRight: 0,\n\t\t\t\tmarginBottom: 0\n\t\t\t});\n\t\t\t// support: Safari\n\t\t\t// Prevent Safari textarea resize\n\t\t\tthis.originalResizeStyle = this.originalElement.css(\"resize\");\n\t\t\tthis.originalElement.css(\"resize\", \"none\");\n\n\t\t\tthis._proportionallyResizeElements.push( this.originalElement.css({\n\t\t\t\tposition: \"static\",\n\t\t\t\tzoom: 1,\n\t\t\t\tdisplay: \"block\"\n\t\t\t}) );\n\n\t\t\t// support: IE9\n\t\t\t// avoid IE jump (hard set the margin)\n\t\t\tthis.originalElement.css({ margin: this.originalElement.css(\"margin\") });\n\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tthis.handles = o.handles ||\n\t\t\t( !$(\".ui-resizable-handle\", this.element).length ?\n\t\t\t\t\"e,s,se\" : {\n\t\t\t\t\tn: \".ui-resizable-n\",\n\t\t\t\t\te: \".ui-resizable-e\",\n\t\t\t\t\ts: \".ui-resizable-s\",\n\t\t\t\t\tw: \".ui-resizable-w\",\n\t\t\t\t\tse: \".ui-resizable-se\",\n\t\t\t\t\tsw: \".ui-resizable-sw\",\n\t\t\t\t\tne: \".ui-resizable-ne\",\n\t\t\t\t\tnw: \".ui-resizable-nw\"\n\t\t\t\t} );\n\n\t\tthis._handles = $();\n\t\tif ( this.handles.constructor === String ) {\n\n\t\t\tif ( this.handles === \"all\") {\n\t\t\t\tthis.handles = \"n,e,s,w,se,sw,ne,nw\";\n\t\t\t}\n\n\t\t\tn = this.handles.split(\",\");\n\t\t\tthis.handles = {};\n\n\t\t\tfor (i = 0; i < n.length; i++) {\n\n\t\t\t\thandle = $.trim(n[i]);\n\t\t\t\thname = \"ui-resizable-\" + handle;\n\t\t\t\taxis = $(\"<div class='ui-resizable-handle \" + hname + \"'></div>\");\n\n\t\t\t\taxis.css({ zIndex: o.zIndex });\n\n\t\t\t\t// TODO : What's going on here?\n\t\t\t\tif (\"se\" === handle) {\n\t\t\t\t\taxis.addClass(\"ui-icon ui-icon-gripsmall-diagonal-se\");\n\t\t\t\t}\n\n\t\t\t\tthis.handles[handle] = \".ui-resizable-\" + handle;\n\t\t\t\tthis.element.append(axis);\n\t\t\t}\n\n\t\t}\n\n\t\tthis._renderAxis = function(target) {\n\n\t\t\tvar i, axis, padPos, padWrapper;\n\n\t\t\ttarget = target || this.element;\n\n\t\t\tfor (i in this.handles) {\n\n\t\t\t\tif (this.handles[i].constructor === String) {\n\t\t\t\t\tthis.handles[i] = this.element.children( this.handles[ i ] ).first().show();\n\t\t\t\t} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {\n\t\t\t\t\tthis.handles[ i ] = $( this.handles[ i ] );\n\t\t\t\t\tthis._on( this.handles[ i ], { \"mousedown\": that._mouseDown });\n\t\t\t\t}\n\n\t\t\t\tif (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) {\n\n\t\t\t\t\taxis = $(this.handles[i], this.element);\n\n\t\t\t\t\tpadWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();\n\n\t\t\t\t\tpadPos = [ \"padding\",\n\t\t\t\t\t\t/ne|nw|n/.test(i) ? \"Top\" :\n\t\t\t\t\t\t/se|sw|s/.test(i) ? \"Bottom\" :\n\t\t\t\t\t\t/^e$/.test(i) ? \"Right\" : \"Left\" ].join(\"\");\n\n\t\t\t\t\ttarget.css(padPos, padWrapper);\n\n\t\t\t\t\tthis._proportionallyResize();\n\t\t\t\t}\n\n\t\t\t\tthis._handles = this._handles.add( this.handles[ i ] );\n\t\t\t}\n\t\t};\n\n\t\t// TODO: make renderAxis a prototype function\n\t\tthis._renderAxis(this.element);\n\n\t\tthis._handles = this._handles.add( this.element.find( \".ui-resizable-handle\" ) );\n\t\tthis._handles.disableSelection();\n\n\t\tthis._handles.mouseover(function() {\n\t\t\tif (!that.resizing) {\n\t\t\t\tif (this.className) {\n\t\t\t\t\taxis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);\n\t\t\t\t}\n\t\t\t\tthat.axis = axis && axis[1] ? axis[1] : \"se\";\n\t\t\t}\n\t\t});\n\n\t\tif (o.autoHide) {\n\t\t\tthis._handles.hide();\n\t\t\t$(this.element)\n\t\t\t\t.addClass(\"ui-resizable-autohide\")\n\t\t\t\t.mouseenter(function() {\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t$(this).removeClass(\"ui-resizable-autohide\");\n\t\t\t\t\tthat._handles.show();\n\t\t\t\t})\n\t\t\t\t.mouseleave(function() {\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!that.resizing) {\n\t\t\t\t\t\t$(this).addClass(\"ui-resizable-autohide\");\n\t\t\t\t\t\tthat._handles.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tthis._mouseInit();\n\t},\n\n\t_destroy: function() {\n\n\t\tthis._mouseDestroy();\n\n\t\tvar wrapper,\n\t\t\t_destroy = function(exp) {\n\t\t\t\t$(exp)\n\t\t\t\t\t.removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\")\n\t\t\t\t\t.removeData(\"resizable\")\n\t\t\t\t\t.removeData(\"ui-resizable\")\n\t\t\t\t\t.unbind(\".resizable\")\n\t\t\t\t\t.find(\".ui-resizable-handle\")\n\t\t\t\t\t\t.remove();\n\t\t\t};\n\n\t\t// TODO: Unwrap at same DOM position\n\t\tif (this.elementIsWrapper) {\n\t\t\t_destroy(this.element);\n\t\t\twrapper = this.element;\n\t\t\tthis.originalElement.css({\n\t\t\t\tposition: wrapper.css(\"position\"),\n\t\t\t\twidth: wrapper.outerWidth(),\n\t\t\t\theight: wrapper.outerHeight(),\n\t\t\t\ttop: wrapper.css(\"top\"),\n\t\t\t\tleft: wrapper.css(\"left\")\n\t\t\t}).insertAfter( wrapper );\n\t\t\twrapper.remove();\n\t\t}\n\n\t\tthis.originalElement.css(\"resize\", this.originalResizeStyle);\n\t\t_destroy(this.originalElement);\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function(event) {\n\t\tvar i, handle,\n\t\t\tcapture = false;\n\n\t\tfor (i in this.handles) {\n\t\t\thandle = $(this.handles[i])[0];\n\t\t\tif (handle === event.target || $.contains(handle, event.target)) {\n\t\t\t\tcapture = true;\n\t\t\t}\n\t\t}\n\n\t\treturn !this.options.disabled && capture;\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar curleft, curtop, cursor,\n\t\t\to = this.options,\n\t\t\tel = this.element;\n\n\t\tthis.resizing = true;\n\n\t\tthis._renderProxy();\n\n\t\tcurleft = this._num(this.helper.css(\"left\"));\n\t\tcurtop = this._num(this.helper.css(\"top\"));\n\n\t\tif (o.containment) {\n\t\t\tcurleft += $(o.containment).scrollLeft() || 0;\n\t\t\tcurtop += $(o.containment).scrollTop() || 0;\n\t\t}\n\n\t\tthis.offset = this.helper.offset();\n\t\tthis.position = { left: curleft, top: curtop };\n\n\t\tthis.size = this._helper ? {\n\t\t\t\twidth: this.helper.width(),\n\t\t\t\theight: this.helper.height()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.originalSize = this._helper ? {\n\t\t\t\twidth: el.outerWidth(),\n\t\t\t\theight: el.outerHeight()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.sizeDiff = {\n\t\t\twidth: el.outerWidth() - el.width(),\n\t\t\theight: el.outerHeight() - el.height()\n\t\t};\n\n\t\tthis.originalPosition = { left: curleft, top: curtop };\n\t\tthis.originalMousePosition = { left: event.pageX, top: event.pageY };\n\n\t\tthis.aspectRatio = (typeof o.aspectRatio === \"number\") ?\n\t\t\to.aspectRatio :\n\t\t\t((this.originalSize.width / this.originalSize.height) || 1);\n\n\t\tcursor = $(\".ui-resizable-\" + this.axis).css(\"cursor\");\n\t\t$(\"body\").css(\"cursor\", cursor === \"auto\" ? this.axis + \"-resize\" : cursor);\n\n\t\tel.addClass(\"ui-resizable-resizing\");\n\t\tthis._propagate(\"start\", event);\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function(event) {\n\n\t\tvar data, props,\n\t\t\tsmp = this.originalMousePosition,\n\t\t\ta = this.axis,\n\t\t\tdx = (event.pageX - smp.left) || 0,\n\t\t\tdy = (event.pageY - smp.top) || 0,\n\t\t\ttrigger = this._change[a];\n\n\t\tthis._updatePrevProperties();\n\n\t\tif (!trigger) {\n\t\t\treturn false;\n\t\t}\n\n\t\tdata = trigger.apply(this, [ event, dx, dy ]);\n\n\t\tthis._updateVirtualBoundaries(event.shiftKey);\n\t\tif (this._aspectRatio || event.shiftKey) {\n\t\t\tdata = this._updateRatio(data, event);\n\t\t}\n\n\t\tdata = this._respectSize(data, event);\n\n\t\tthis._updateCache(data);\n\n\t\tthis._propagate(\"resize\", event);\n\n\t\tprops = this._applyChanges();\n\n\t\tif ( !this._helper && this._proportionallyResizeElements.length ) {\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tif ( !$.isEmptyObject( props ) ) {\n\t\t\tthis._updatePrevProperties();\n\t\t\tthis._trigger( \"resize\", event, this.ui() );\n\t\t\tthis._applyChanges();\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\tthis.resizing = false;\n\t\tvar pr, ista, soffseth, soffsetw, s, left, top,\n\t\t\to = this.options, that = this;\n\n\t\tif (this._helper) {\n\n\t\t\tpr = this._proportionallyResizeElements;\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName);\n\t\t\tsoffseth = ista && this._hasScroll(pr[0], \"left\") ? 0 : that.sizeDiff.height;\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width;\n\n\t\t\ts = {\n\t\t\t\twidth: (that.helper.width()  - soffsetw),\n\t\t\t\theight: (that.helper.height() - soffseth)\n\t\t\t};\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) +\n\t\t\t\t(that.position.left - that.originalPosition.left)) || null;\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) +\n\t\t\t\t(that.position.top - that.originalPosition.top)) || null;\n\n\t\t\tif (!o.animate) {\n\t\t\t\tthis.element.css($.extend(s, { top: top, left: left }));\n\t\t\t}\n\n\t\t\tthat.helper.height(that.size.height);\n\t\t\tthat.helper.width(that.size.width);\n\n\t\t\tif (this._helper && !o.animate) {\n\t\t\t\tthis._proportionallyResize();\n\t\t\t}\n\t\t}\n\n\t\t$(\"body\").css(\"cursor\", \"auto\");\n\n\t\tthis.element.removeClass(\"ui-resizable-resizing\");\n\n\t\tthis._propagate(\"stop\", event);\n\n\t\tif (this._helper) {\n\t\t\tthis.helper.remove();\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\t_updatePrevProperties: function() {\n\t\tthis.prevPosition = {\n\t\t\ttop: this.position.top,\n\t\t\tleft: this.position.left\n\t\t};\n\t\tthis.prevSize = {\n\t\t\twidth: this.size.width,\n\t\t\theight: this.size.height\n\t\t};\n\t},\n\n\t_applyChanges: function() {\n\t\tvar props = {};\n\n\t\tif ( this.position.top !== this.prevPosition.top ) {\n\t\t\tprops.top = this.position.top + \"px\";\n\t\t}\n\t\tif ( this.position.left !== this.prevPosition.left ) {\n\t\t\tprops.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( this.size.width !== this.prevSize.width ) {\n\t\t\tprops.width = this.size.width + \"px\";\n\t\t}\n\t\tif ( this.size.height !== this.prevSize.height ) {\n\t\t\tprops.height = this.size.height + \"px\";\n\t\t}\n\n\t\tthis.helper.css( props );\n\n\t\treturn props;\n\t},\n\n\t_updateVirtualBoundaries: function(forceAspectRatio) {\n\t\tvar pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,\n\t\t\to = this.options;\n\n\t\tb = {\n\t\t\tminWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,\n\t\t\tmaxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity,\n\t\t\tminHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,\n\t\t\tmaxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity\n\t\t};\n\n\t\tif (this._aspectRatio || forceAspectRatio) {\n\t\t\tpMinWidth = b.minHeight * this.aspectRatio;\n\t\t\tpMinHeight = b.minWidth / this.aspectRatio;\n\t\t\tpMaxWidth = b.maxHeight * this.aspectRatio;\n\t\t\tpMaxHeight = b.maxWidth / this.aspectRatio;\n\n\t\t\tif (pMinWidth > b.minWidth) {\n\t\t\t\tb.minWidth = pMinWidth;\n\t\t\t}\n\t\t\tif (pMinHeight > b.minHeight) {\n\t\t\t\tb.minHeight = pMinHeight;\n\t\t\t}\n\t\t\tif (pMaxWidth < b.maxWidth) {\n\t\t\t\tb.maxWidth = pMaxWidth;\n\t\t\t}\n\t\t\tif (pMaxHeight < b.maxHeight) {\n\t\t\t\tb.maxHeight = pMaxHeight;\n\t\t\t}\n\t\t}\n\t\tthis._vBoundaries = b;\n\t},\n\n\t_updateCache: function(data) {\n\t\tthis.offset = this.helper.offset();\n\t\tif (this._isNumber(data.left)) {\n\t\t\tthis.position.left = data.left;\n\t\t}\n\t\tif (this._isNumber(data.top)) {\n\t\t\tthis.position.top = data.top;\n\t\t}\n\t\tif (this._isNumber(data.height)) {\n\t\t\tthis.size.height = data.height;\n\t\t}\n\t\tif (this._isNumber(data.width)) {\n\t\t\tthis.size.width = data.width;\n\t\t}\n\t},\n\n\t_updateRatio: function( data ) {\n\n\t\tvar cpos = this.position,\n\t\t\tcsize = this.size,\n\t\t\ta = this.axis;\n\n\t\tif (this._isNumber(data.height)) {\n\t\t\tdata.width = (data.height * this.aspectRatio);\n\t\t} else if (this._isNumber(data.width)) {\n\t\t\tdata.height = (data.width / this.aspectRatio);\n\t\t}\n\n\t\tif (a === \"sw\") {\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t\tdata.top = null;\n\t\t}\n\t\tif (a === \"nw\") {\n\t\t\tdata.top = cpos.top + (csize.height - data.height);\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_respectSize: function( data ) {\n\n\t\tvar o = this._vBoundaries,\n\t\t\ta = this.axis,\n\t\t\tismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width),\n\t\t\tismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),\n\t\t\tisminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width),\n\t\t\tisminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height),\n\t\t\tdw = this.originalPosition.left + this.originalSize.width,\n\t\t\tdh = this.position.top + this.size.height,\n\t\t\tcw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);\n\t\tif (isminw) {\n\t\t\tdata.width = o.minWidth;\n\t\t}\n\t\tif (isminh) {\n\t\t\tdata.height = o.minHeight;\n\t\t}\n\t\tif (ismaxw) {\n\t\t\tdata.width = o.maxWidth;\n\t\t}\n\t\tif (ismaxh) {\n\t\t\tdata.height = o.maxHeight;\n\t\t}\n\n\t\tif (isminw && cw) {\n\t\t\tdata.left = dw - o.minWidth;\n\t\t}\n\t\tif (ismaxw && cw) {\n\t\t\tdata.left = dw - o.maxWidth;\n\t\t}\n\t\tif (isminh && ch) {\n\t\t\tdata.top = dh - o.minHeight;\n\t\t}\n\t\tif (ismaxh && ch) {\n\t\t\tdata.top = dh - o.maxHeight;\n\t\t}\n\n\t\t// Fixing jump error on top/left - bug #2330\n\t\tif (!data.width && !data.height && !data.left && data.top) {\n\t\t\tdata.top = null;\n\t\t} else if (!data.width && !data.height && !data.top && data.left) {\n\t\t\tdata.left = null;\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_getPaddingPlusBorderDimensions: function( element ) {\n\t\tvar i = 0,\n\t\t\twidths = [],\n\t\t\tborders = [\n\t\t\t\telement.css( \"borderTopWidth\" ),\n\t\t\t\telement.css( \"borderRightWidth\" ),\n\t\t\t\telement.css( \"borderBottomWidth\" ),\n\t\t\t\telement.css( \"borderLeftWidth\" )\n\t\t\t],\n\t\t\tpaddings = [\n\t\t\t\telement.css( \"paddingTop\" ),\n\t\t\t\telement.css( \"paddingRight\" ),\n\t\t\t\telement.css( \"paddingBottom\" ),\n\t\t\t\telement.css( \"paddingLeft\" )\n\t\t\t];\n\n\t\tfor ( ; i < 4; i++ ) {\n\t\t\twidths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 );\n\t\t\twidths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 );\n\t\t}\n\n\t\treturn {\n\t\t\theight: widths[ 0 ] + widths[ 2 ],\n\t\t\twidth: widths[ 1 ] + widths[ 3 ]\n\t\t};\n\t},\n\n\t_proportionallyResize: function() {\n\n\t\tif (!this._proportionallyResizeElements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar prel,\n\t\t\ti = 0,\n\t\t\telement = this.helper || this.element;\n\n\t\tfor ( ; i < this._proportionallyResizeElements.length; i++) {\n\n\t\t\tprel = this._proportionallyResizeElements[i];\n\n\t\t\t// TODO: Seems like a bug to cache this.outerDimensions\n\t\t\t// considering that we are in a loop.\n\t\t\tif (!this.outerDimensions) {\n\t\t\t\tthis.outerDimensions = this._getPaddingPlusBorderDimensions( prel );\n\t\t\t}\n\n\t\t\tprel.css({\n\t\t\t\theight: (element.height() - this.outerDimensions.height) || 0,\n\t\t\t\twidth: (element.width() - this.outerDimensions.width) || 0\n\t\t\t});\n\n\t\t}\n\n\t},\n\n\t_renderProxy: function() {\n\n\t\tvar el = this.element, o = this.options;\n\t\tthis.elementOffset = el.offset();\n\n\t\tif (this._helper) {\n\n\t\t\tthis.helper = this.helper || $(\"<div style='overflow:hidden;'></div>\");\n\n\t\t\tthis.helper.addClass(this._helper).css({\n\t\t\t\twidth: this.element.outerWidth() - 1,\n\t\t\t\theight: this.element.outerHeight() - 1,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: this.elementOffset.left + \"px\",\n\t\t\t\ttop: this.elementOffset.top + \"px\",\n\t\t\t\tzIndex: ++o.zIndex //TODO: Don't modify option\n\t\t\t});\n\n\t\t\tthis.helper\n\t\t\t\t.appendTo(\"body\")\n\t\t\t\t.disableSelection();\n\n\t\t} else {\n\t\t\tthis.helper = this.element;\n\t\t}\n\n\t},\n\n\t_change: {\n\t\te: function(event, dx) {\n\t\t\treturn { width: this.originalSize.width + dx };\n\t\t},\n\t\tw: function(event, dx) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { left: sp.left + dx, width: cs.width - dx };\n\t\t},\n\t\tn: function(event, dx, dy) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { top: sp.top + dy, height: cs.height - dy };\n\t\t},\n\t\ts: function(event, dx, dy) {\n\t\t\treturn { height: this.originalSize.height + dy };\n\t\t},\n\t\tse: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments),\n\t\t\t\tthis._change.e.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tsw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments),\n\t\t\t\tthis._change.w.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tne: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments),\n\t\t\t\tthis._change.e.apply(this, [ event, dx, dy ]));\n\t\t},\n\t\tnw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments),\n\t\t\t\tthis._change.w.apply(this, [ event, dx, dy ]));\n\t\t}\n\t},\n\n\t_propagate: function(n, event) {\n\t\t$.ui.plugin.call(this, n, [ event, this.ui() ]);\n\t\t(n !== \"resize\" && this._trigger(n, event, this.ui()));\n\t},\n\n\tplugins: {},\n\n\tui: function() {\n\t\treturn {\n\t\t\toriginalElement: this.originalElement,\n\t\t\telement: this.element,\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\tsize: this.size,\n\t\t\toriginalSize: this.originalSize,\n\t\t\toriginalPosition: this.originalPosition\n\t\t};\n\t}\n\n});\n\n/*\n * Resizable Extensions\n */\n\n$.ui.plugin.add(\"resizable\", \"animate\", {\n\n\tstop: function( event ) {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tpr = that._proportionallyResizeElements,\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName),\n\t\t\tsoffseth = ista && that._hasScroll(pr[0], \"left\") ? 0 : that.sizeDiff.height,\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width,\n\t\t\tstyle = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) +\n\t\t\t\t(that.position.left - that.originalPosition.left)) || null,\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) +\n\t\t\t\t(that.position.top - that.originalPosition.top)) || null;\n\n\t\tthat.element.animate(\n\t\t\t$.extend(style, top && left ? { top: top, left: left } : {}), {\n\t\t\t\tduration: o.animateDuration,\n\t\t\t\teasing: o.animateEasing,\n\t\t\t\tstep: function() {\n\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\twidth: parseInt(that.element.css(\"width\"), 10),\n\t\t\t\t\t\theight: parseInt(that.element.css(\"height\"), 10),\n\t\t\t\t\t\ttop: parseInt(that.element.css(\"top\"), 10),\n\t\t\t\t\t\tleft: parseInt(that.element.css(\"left\"), 10)\n\t\t\t\t\t};\n\n\t\t\t\t\tif (pr && pr.length) {\n\t\t\t\t\t\t$(pr[0]).css({ width: data.width, height: data.height });\n\t\t\t\t\t}\n\n\t\t\t\t\t// propagating resize, and updating values for each animation step\n\t\t\t\t\tthat._updateCache(data);\n\t\t\t\t\tthat._propagate(\"resize\", event);\n\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n});\n\n$.ui.plugin.add( \"resizable\", \"containment\", {\n\n\tstart: function() {\n\t\tvar element, p, co, ch, cw, width, height,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tel = that.element,\n\t\t\toc = o.containment,\n\t\t\tce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthat.containerElement = $( ce );\n\n\t\tif ( /document/.test( oc ) || oc === document ) {\n\t\t\tthat.containerOffset = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\t\t\tthat.containerPosition = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: $( document ),\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\twidth: $( document ).width(),\n\t\t\t\theight: $( document ).height() || document.body.parentNode.scrollHeight\n\t\t\t};\n\t\t} else {\n\t\t\telement = $( ce );\n\t\t\tp = [];\n\t\t\t$([ \"Top\", \"Right\", \"Left\", \"Bottom\" ]).each(function( i, name ) {\n\t\t\t\tp[ i ] = that._num( element.css( \"padding\" + name ) );\n\t\t\t});\n\n\t\t\tthat.containerOffset = element.offset();\n\t\t\tthat.containerPosition = element.position();\n\t\t\tthat.containerSize = {\n\t\t\t\theight: ( element.innerHeight() - p[ 3 ] ),\n\t\t\t\twidth: ( element.innerWidth() - p[ 1 ] )\n\t\t\t};\n\n\t\t\tco = that.containerOffset;\n\t\t\tch = that.containerSize.height;\n\t\t\tcw = that.containerSize.width;\n\t\t\twidth = ( that._hasScroll ( ce, \"left\" ) ? ce.scrollWidth : cw );\n\t\t\theight = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: ce,\n\t\t\t\tleft: co.left,\n\t\t\t\ttop: co.top,\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t}\n\t},\n\n\tresize: function( event ) {\n\t\tvar woset, hoset, isParent, isOffsetRelative,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcp = that.position,\n\t\t\tpRatio = that._aspectRatio || event.shiftKey,\n\t\t\tcop = {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t},\n\t\t\tce = that.containerElement,\n\t\t\tcontinueResize = true;\n\n\t\tif ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\tcop = co;\n\t\t}\n\n\t\tif ( cp.left < ( that._helper ? co.left : 0 ) ) {\n\t\t\tthat.size.width = that.size.width +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.left - co.left ) :\n\t\t\t\t\t( that.position.left - cop.left ) );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.left = o.helper ? co.left : 0;\n\t\t}\n\n\t\tif ( cp.top < ( that._helper ? co.top : 0 ) ) {\n\t\t\tthat.size.height = that.size.height +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.top - co.top ) :\n\t\t\t\t\tthat.position.top );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.top = that._helper ? co.top : 0;\n\t\t}\n\n\t\tisParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );\n\t\tisOffsetRelative = /relative|absolute/.test( that.containerElement.css( \"position\" ) );\n\n\t\tif ( isParent && isOffsetRelative ) {\n\t\t\tthat.offset.left = that.parentData.left + that.position.left;\n\t\t\tthat.offset.top = that.parentData.top + that.position.top;\n\t\t} else {\n\t\t\tthat.offset.left = that.element.offset().left;\n\t\t\tthat.offset.top = that.element.offset().top;\n\t\t}\n\n\t\twoset = Math.abs( that.sizeDiff.width +\n\t\t\t(that._helper ?\n\t\t\t\tthat.offset.left - cop.left :\n\t\t\t\t(that.offset.left - co.left)) );\n\n\t\thoset = Math.abs( that.sizeDiff.height +\n\t\t\t(that._helper ?\n\t\t\t\tthat.offset.top - cop.top :\n\t\t\t\t(that.offset.top - co.top)) );\n\n\t\tif ( woset + that.size.width >= that.parentData.width ) {\n\t\t\tthat.size.width = that.parentData.width - woset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( hoset + that.size.height >= that.parentData.height ) {\n\t\t\tthat.size.height = that.parentData.height - hoset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( !continueResize ) {\n\t\t\tthat.position.left = that.prevPosition.left;\n\t\t\tthat.position.top = that.prevPosition.top;\n\t\t\tthat.size.width = that.prevSize.width;\n\t\t\tthat.size.height = that.prevSize.height;\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcop = that.containerPosition,\n\t\t\tce = that.containerElement,\n\t\t\thelper = $( that.helper ),\n\t\t\tho = helper.offset(),\n\t\t\tw = helper.outerWidth() - that.sizeDiff.width,\n\t\t\th = helper.outerHeight() - that.sizeDiff.height;\n\n\t\tif ( that._helper && !o.animate && ( /relative/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css({\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t});\n\t\t}\n\n\t\tif ( that._helper && !o.animate && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css({\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t});\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"alsoResize\", {\n\n\tstart: function() {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options;\n\n\t\t$(o.alsoResize).each(function() {\n\t\t\tvar el = $(this);\n\t\t\tel.data(\"ui-resizable-alsoresize\", {\n\t\t\t\twidth: parseInt(el.width(), 10), height: parseInt(el.height(), 10),\n\t\t\t\tleft: parseInt(el.css(\"left\"), 10), top: parseInt(el.css(\"top\"), 10)\n\t\t\t});\n\t\t});\n\t},\n\n\tresize: function(event, ui) {\n\t\tvar that = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\tdelta = {\n\t\t\t\theight: (that.size.height - os.height) || 0,\n\t\t\t\twidth: (that.size.width - os.width) || 0,\n\t\t\t\ttop: (that.position.top - op.top) || 0,\n\t\t\t\tleft: (that.position.left - op.left) || 0\n\t\t\t};\n\n\t\t\t$(o.alsoResize).each(function() {\n\t\t\t\tvar el = $(this), start = $(this).data(\"ui-resizable-alsoresize\"), style = {},\n\t\t\t\t\tcss = el.parents(ui.originalElement[0]).length ?\n\t\t\t\t\t\t\t[ \"width\", \"height\" ] :\n\t\t\t\t\t\t\t[ \"width\", \"height\", \"top\", \"left\" ];\n\n\t\t\t\t$.each(css, function(i, prop) {\n\t\t\t\t\tvar sum = (start[prop] || 0) + (delta[prop] || 0);\n\t\t\t\t\tif (sum && sum >= 0) {\n\t\t\t\t\t\tstyle[prop] = sum || null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tel.css(style);\n\t\t\t});\n\t},\n\n\tstop: function() {\n\t\t$(this).removeData(\"resizable-alsoresize\");\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"ghost\", {\n\n\tstart: function() {\n\n\t\tvar that = $(this).resizable( \"instance\" ), o = that.options, cs = that.size;\n\n\t\tthat.ghost = that.originalElement.clone();\n\t\tthat.ghost\n\t\t\t.css({\n\t\t\t\topacity: 0.25,\n\t\t\t\tdisplay: \"block\",\n\t\t\t\tposition: \"relative\",\n\t\t\t\theight: cs.height,\n\t\t\t\twidth: cs.width,\n\t\t\t\tmargin: 0,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t})\n\t\t\t.addClass(\"ui-resizable-ghost\")\n\t\t\t.addClass(typeof o.ghost === \"string\" ? o.ghost : \"\");\n\n\t\tthat.ghost.appendTo(that.helper);\n\n\t},\n\n\tresize: function() {\n\t\tvar that = $(this).resizable( \"instance\" );\n\t\tif (that.ghost) {\n\t\t\tthat.ghost.css({\n\t\t\t\tposition: \"relative\",\n\t\t\t\theight: that.size.height,\n\t\t\t\twidth: that.size.width\n\t\t\t});\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $(this).resizable( \"instance\" );\n\t\tif (that.ghost && that.helper) {\n\t\t\tthat.helper.get(0).removeChild(that.ghost.get(0));\n\t\t}\n\t}\n\n});\n\n$.ui.plugin.add(\"resizable\", \"grid\", {\n\n\tresize: function() {\n\t\tvar outerDimensions,\n\t\t\tthat = $(this).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tcs = that.size,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\ta = that.axis,\n\t\t\tgrid = typeof o.grid === \"number\" ? [ o.grid, o.grid ] : o.grid,\n\t\t\tgridX = (grid[0] || 1),\n\t\t\tgridY = (grid[1] || 1),\n\t\t\tox = Math.round((cs.width - os.width) / gridX) * gridX,\n\t\t\toy = Math.round((cs.height - os.height) / gridY) * gridY,\n\t\t\tnewWidth = os.width + ox,\n\t\t\tnewHeight = os.height + oy,\n\t\t\tisMaxWidth = o.maxWidth && (o.maxWidth < newWidth),\n\t\t\tisMaxHeight = o.maxHeight && (o.maxHeight < newHeight),\n\t\t\tisMinWidth = o.minWidth && (o.minWidth > newWidth),\n\t\t\tisMinHeight = o.minHeight && (o.minHeight > newHeight);\n\n\t\to.grid = grid;\n\n\t\tif (isMinWidth) {\n\t\t\tnewWidth += gridX;\n\t\t}\n\t\tif (isMinHeight) {\n\t\t\tnewHeight += gridY;\n\t\t}\n\t\tif (isMaxWidth) {\n\t\t\tnewWidth -= gridX;\n\t\t}\n\t\tif (isMaxHeight) {\n\t\t\tnewHeight -= gridY;\n\t\t}\n\n\t\tif (/^(se|s|e)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t} else if (/^(ne)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.top = op.top - oy;\n\t\t} else if (/^(sw)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.left = op.left - ox;\n\t\t} else {\n\t\t\tif ( newHeight - gridY <= 0 || newWidth - gridX <= 0) {\n\t\t\t\touterDimensions = that._getPaddingPlusBorderDimensions( this );\n\t\t\t}\n\n\t\t\tif ( newHeight - gridY > 0 ) {\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top - oy;\n\t\t\t} else {\n\t\t\t\tnewHeight = gridY - outerDimensions.height;\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top + os.height - newHeight;\n\t\t\t}\n\t\t\tif ( newWidth - gridX > 0 ) {\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left - ox;\n\t\t\t} else {\n\t\t\t\tnewWidth = gridX - outerDimensions.width;\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left + os.width - newWidth;\n\t\t\t}\n\t\t}\n\t}\n\n});\n\nvar resizable = $.ui.resizable;\n\n\n\n}));"]}