{"version":3,"file":"5285_77920c183e65bfdcde3d.bundle.js","mappings":"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","sources":["webpack://tumarket/./node_modules/jquery-ui/ui/data.js","webpack://tumarket/./node_modules/jquery-ui/ui/scroll-parent.js","webpack://tumarket/./node_modules/jquery-ui/ui/widgets/mouse.js","webpack://tumarket/./node_modules/jquery-ui/ui/widgets/sortable.js"],"sourcesContent":["/*!\n * jQuery UI :data 1.14.1\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: :data Selector\n//>>group: Core\n//>>description: Selects elements which have data stored under the specified key.\n//>>docs: https://api.jqueryui.com/data-selector/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.extend( $.expr.pseudos, {\n\tdata: $.expr.createPseudo( function( dataName ) {\n\t\treturn function( elem ) {\n\t\t\treturn !!$.data( elem, dataName );\n\t\t};\n\t} )\n} );\n} );\n","/*!\n * jQuery UI Scroll Parent 1.14.1\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: scrollParent\n//>>group: Core\n//>>description: Get the closest ancestor element that is scrollable.\n//>>docs: https://api.jqueryui.com/scrollParent/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.fn.scrollParent = function( includeHidden ) {\n\tvar position = this.css( \"position\" ),\n\t\texcludeStaticParent = position === \"absolute\",\n\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\tscrollParent = this.parents().filter( function() {\n\t\t\tvar parent = $( this );\n\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) +\n\t\t\t\tparent.css( \"overflow-x\" ) );\n\t\t} ).eq( 0 );\n\n\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t$( this[ 0 ].ownerDocument || document ) :\n\t\tscrollParent;\n};\n\n} );\n","/*!\n * jQuery UI Mouse 1.14.1\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Mouse\n//>>group: Widgets\n//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.\n//>>docs: https://api.jqueryui.com/mouse/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../version\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nvar mouseHandled = false;\n$( document ).on( \"mouseup\", function() {\n\tmouseHandled = false;\n} );\n\nreturn $.widget( \"ui.mouse\", {\n\tversion: \"1.14.1\",\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.on( \"mousedown.\" + this.widgetName, function( event ) {\n\t\t\t\treturn that._mouseDown( event );\n\t\t\t} )\n\t\t\t.on( \"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.off( \".\" + this.widgetName );\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\tthis.document\n\t\t\t\t.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t\t.off( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\t\t}\n\t},\n\n\t_mouseDown: function( event ) {\n\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\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseUp( event );\n\t\t}\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = event.which === 1,\n\t\t\telIsCancel = typeof this.options.cancel === \"string\" ?\n\t\t\t\t$( event.target ).closest( this.options.cancel ).length :\n\t\t\t\tfalse;\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.on( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.on( \"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\n\t\t// Only check for mouseups outside the document if you've moved inside the document\n\t\t// at least once.\n\t\tif ( this._mouseMoved && !event.which ) {\n\n\t\t\t// Support: Safari <=8 - 9\n\t\t\t// Safari sets which to 0 if you press any of the following keys\n\t\t\t// during a drag (#14461)\n\t\t\tif ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||\n\t\t\t\t\tevent.originalEvent.metaKey || event.originalEvent.shiftKey ) {\n\t\t\t\tthis.ignoreMissingWhich = true;\n\t\t\t} else if ( !this.ignoreMissingWhich ) {\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\tif ( this._mouseStarted ) {\n\t\t\t\tthis._mouseDrag( event );\n\t\t\t} else {\n\t\t\t\tthis._mouseUp( event );\n\t\t\t}\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.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.off( \"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\tif ( this._mouseDelayTimer ) {\n\t\t\tclearTimeout( this._mouseDelayTimer );\n\t\t\tdelete this._mouseDelayTimer;\n\t\t}\n\n\t\tthis.ignoreMissingWhich = false;\n\t\tmouseHandled = false;\n\t\tevent.preventDefault();\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 */ ) {\n\t\treturn true;\n\t}\n} );\n\n} );\n","/*!\n * jQuery UI Sortable 1.14.1\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Sortable\n//>>group: Interactions\n//>>description: Enables items in a list to be sorted using the mouse.\n//>>docs: https://api.jqueryui.com/sortable/\n//>>demos: https://jqueryui.com/sortable/\n//>>css.structure: ../../themes/base/sortable.css\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"./mouse\",\n\t\t\t\"../data\",\n\t\t\t\"../scroll-parent\",\n\t\t\t\"../version\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.widget( \"ui.sortable\", $.ui.mouse, {\n\tversion: \"1.14.1\",\n\twidgetEventPrefix: \"sort\",\n\tready: false,\n\toptions: {\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectWith: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tdropOnEmpty: true,\n\t\tforcePlaceholderSize: false,\n\t\tforceHelperSize: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\titems: \"> *\",\n\t\topacity: false,\n\t\tplaceholder: false,\n\t\trevert: false,\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\t\tzIndex: 1000,\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeStop: null,\n\t\tchange: null,\n\t\tdeactivate: null,\n\t\tout: null,\n\t\tover: null,\n\t\treceive: null,\n\t\tremove: null,\n\t\tsort: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tupdate: null\n\t},\n\n\t_isOverAxis: function( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t},\n\n\t_isFloating: function( item ) {\n\t\treturn ( /left|right/ ).test( item.css( \"float\" ) ) ||\n\t\t\t( /inline|table-cell/ ).test( item.css( \"display\" ) );\n\t},\n\n\t_create: function() {\n\t\tthis.containerCache = {};\n\t\tthis._addClass( \"ui-sortable\" );\n\n\t\t//Get the items\n\t\tthis.refresh();\n\n\t\t//Let's determine the parent's offset\n\t\tthis.offset = this.element.offset();\n\n\t\t//Initialize mouse events for interaction\n\t\tthis._mouseInit();\n\n\t\tthis._setHandleClassName();\n\n\t\t//We're ready to go\n\t\tthis.ready = true;\n\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_setHandleClassName: function() {\n\t\tvar that = this;\n\t\tthis._removeClass( this.element.find( \".ui-sortable-handle\" ), \"ui-sortable-handle\" );\n\t\t$.each( this.items, function() {\n\t\t\tthat._addClass(\n\t\t\t\tthis.instance.options.handle ?\n\t\t\t\t\tthis.item.find( this.instance.options.handle ) :\n\t\t\t\t\tthis.item,\n\t\t\t\t\"ui-sortable-handle\"\n\t\t\t);\n\t\t} );\n\t},\n\n\t_destroy: function() {\n\t\tthis._mouseDestroy();\n\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\tthis.items[ i ].item.removeData( this.widgetName + \"-item\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function( event, overrideHandle ) {\n\t\tvar currentItem = null,\n\t\t\tvalidHandle = false,\n\t\t\tthat = this;\n\n\t\tif ( this.reverting ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.options.disabled || this.options.type === \"static\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//We have to refresh the items data once first\n\t\tthis._refreshItems( event );\n\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\n\t\t$( event.target ).parents().each( function() {\n\t\t\tif ( $.data( this, that.widgetName + \"-item\" ) === that ) {\n\t\t\t\tcurrentItem = $( this );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\t\tif ( $.data( event.target, that.widgetName + \"-item\" ) === that ) {\n\t\t\tcurrentItem = $( event.target );\n\t\t}\n\n\t\tif ( !currentItem ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.options.handle && !overrideHandle ) {\n\t\t\t$( this.options.handle, currentItem ).find( \"*\" ).addBack().each( function() {\n\t\t\t\tif ( this === event.target ) {\n\t\t\t\t\tvalidHandle = true;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !validHandle ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.currentItem = currentItem;\n\t\tthis._removeCurrentsFromItems();\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function( event, overrideHandle, noActivation ) {\n\n\t\tvar i, body,\n\t\t\to = this.options;\n\n\t\tthis.currentContainer = this;\n\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to\n\t\t// mouseCapture\n\t\tthis.refreshPositions();\n\n\t\t//Prepare the dragged items parent\n\t\tthis.appendTo = $( o.appendTo !== \"parent\" ?\n\t\t\t\to.appendTo :\n\t\t\t\tthis.currentItem.parent() );\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper( event );\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\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//The element's absolute position on the page minus margins\n\t\tthis.offset = this.currentItem.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t$.extend( this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\n\t\t\t// This is a relative to absolute position minus the actual position calculation -\n\t\t\t// only used for relative positioned helper\n\t\t\trelative: this._getRelativeOffset()\n\t\t} );\n\n\t\t// After we get the helper offset, but before we get the parent offset we can\n\t\t// change the helper's position to absolute\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\n\t\tthis.helper.css( \"position\", \"absolute\" );\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\tif ( o.cursorAt ) {\n\t\t\tthis._adjustOffsetFromHelper( o.cursorAt );\n\t\t}\n\n\t\t//Cache the former DOM position\n\t\tthis.domPosition = {\n\t\t\tprev: this.currentItem.prev()[ 0 ],\n\t\t\tparent: this.currentItem.parent()[ 0 ]\n\t\t};\n\n\t\t// If the helper is not the original, hide the original so it's not playing any role during\n\t\t// the drag, won't cause anything bad this way\n\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\tthis.currentItem.hide();\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthis._createPlaceholder();\n\n\t\t//Get the next scrolling parent\n\t\tthis.scrollParent = this.placeholder.scrollParent();\n\n\t\t$.extend( this.offset, {\n\t\t\tparent: this._getParentOffset()\n\t\t} );\n\n\t\t//Set a containment if given in the options\n\t\tif ( o.containment ) {\n\t\t\tthis._setContainment();\n\t\t}\n\n\t\tif ( o.cursor && o.cursor !== \"auto\" ) { // cursor option\n\t\t\tbody = this.document.find( \"body\" );\n\n\t\t\tthis._storedStylesheet =\n\t\t\t\t$( \"\" ).appendTo( body );\n\t\t}\n\n\t\t// We need to make sure to grab the zIndex before setting the\n\t\t// opacity, because setting the opacity to anything lower than 1\n\t\t// causes the zIndex to change from \"auto\" to 0.\n\t\tif ( o.zIndex ) { // zIndex option\n\t\t\tif ( this.helper.css( \"zIndex\" ) ) {\n\t\t\t\tthis._storedZIndex = this.helper.css( \"zIndex\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"zIndex\", o.zIndex );\n\t\t}\n\n\t\tif ( o.opacity ) { // opacity option\n\t\t\tif ( this.helper.css( \"opacity\" ) ) {\n\t\t\t\tthis._storedOpacity = this.helper.css( \"opacity\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"opacity\", o.opacity );\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"start\", event, this._uiHash() );\n\n\t\t//Recache the helper size\n\t\tif ( !this._preserveHelperProportions ) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif ( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis._addClass( this.helper, \"ui-sortable-helper\" );\n\n\t\t//Move the helper, if needed\n\t\tif ( !this.helper.parent().is( this.appendTo ) ) {\n\t\t\tthis.helper.detach().appendTo( this.appendTo );\n\n\t\t\t//Update position\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Generate the original position\n\t\tthis.position = this.originalPosition = this._generatePosition( event );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\t\tthis.lastPositionAbs = this.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\tthis._mouseDrag( event );\n\n\t\treturn true;\n\n\t},\n\n\t_scroll: function( event ) {\n\t\tvar o = this.options,\n\t\t\tscrolled = false;\n\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\n\t\t\tif ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -\n\t\t\t\t\tevent.pageY < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;\n\t\t\t} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;\n\t\t\t}\n\n\t\t\tif ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -\n\t\t\t\t\tevent.pageX < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;\n\t\t\t} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );\n\t\t\t} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <\n\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );\n\t\t\t}\n\n\t\t\tif ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\tthis.document.scrollLeft() - o.scrollSpeed\n\t\t\t\t);\n\t\t\t} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <\n\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\tthis.document.scrollLeft() + o.scrollSpeed\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\treturn scrolled;\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event );\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\t//Set the helper position\n\t\tif ( !this.options.axis || this.options.axis !== \"y\" ) {\n\t\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( !this.options.axis || this.options.axis !== \"x\" ) {\n\t\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\t\t}\n\n\t\t//Do scrolling\n\t\tif ( o.scroll ) {\n\t\t\tif ( this._scroll( event ) !== false ) {\n\n\t\t\t\t//Update item positions used in position checks\n\t\t\t\tthis._refreshItemPositions( true );\n\n\t\t\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.dragDirection = {\n\t\t\tvertical: this._getDragVerticalDirection(),\n\t\t\thorizontal: this._getDragHorizontalDirection()\n\t\t};\n\n\t\t//Rearrange\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[ i ];\n\t\t\titemElement = item.item[ 0 ];\n\t\t\tintersection = this._intersectsWithPointer( item );\n\t\t\tif ( !intersection ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items from other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this, moving items in \"sub-sortables\" can cause\n\t\t\t// the placeholder to jitter between the outer and inner container.\n\t\t\tif ( item.instance !== this.currentContainer ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif ( itemElement !== this.currentItem[ 0 ] &&\n\t\t\t\tthis.placeholder[ intersection === 1 ?\n\t\t\t\t\"next\" : \"prev\" ]()[ 0 ] !== itemElement &&\n\t\t\t\t!$.contains( this.placeholder[ 0 ], itemElement ) &&\n\t\t\t\t( this.options.type === \"semi-dynamic\" ?\n\t\t\t\t\t!$.contains( this.element[ 0 ], itemElement ) :\n\t\t\t\t\ttrue\n\t\t\t\t)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\t\t\t\tthis._intersectsWithSides( item ) ) {\n\t\t\t\t\tthis._rearrange( event, item );\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers( event );\n\n\t\t//Interconnect with droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.drag( this, event );\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"sort\", event, this._uiHash() );\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function( event, noPropagation ) {\n\n\t\tif ( !event ) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ( $.ui.ddmanager && !this.options.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.drop( this, event );\n\t\t}\n\n\t\tif ( this.options.revert ) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollLeft\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollTop\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$( this.helper ).animate(\n\t\t\t\tanimation,\n\t\t\t\tparseInt( this.options.revert, 10 ) || 500,\n\t\t\t\tfunction() {\n\t\t\t\t\tthat._clear( event );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tthis._clear( event, noPropagation );\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif ( this.dragging ) {\n\n\t\t\tthis._mouseUp( new $.Event( \"mouseup\", { target: null } ) );\n\n\t\t\tif ( this.options.helper === \"original\" ) {\n\t\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor ( var i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"deactivate\", null, this._uiHash( this ) );\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", null, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.placeholder ) {\n\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t\t// it unbinds ALL events from the original node!\n\t\t\tif ( this.placeholder[ 0 ].parentNode ) {\n\t\t\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\t\t\t}\n\t\t\tif ( this.options.helper !== \"original\" && this.helper &&\n\t\t\t\t\tthis.helper[ 0 ].parentNode ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend( this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t} );\n\n\t\t\tif ( this.domPosition.prev ) {\n\t\t\t\t$( this.domPosition.prev ).after( this.currentItem );\n\t\t\t} else {\n\t\t\t\t$( this.domPosition.parent ).prepend( this.currentItem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$( items ).each( function() {\n\t\t\tvar res = ( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" )\n\t\t\t\t.match( o.expression || ( /(.+)[\\-=_](.+)/ ) );\n\t\t\tif ( res ) {\n\t\t\t\tstr.push(\n\t\t\t\t\t( o.key || res[ 1 ] + \"[]\" ) +\n\t\t\t\t\t\"=\" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );\n\t\t\t}\n\t\t} );\n\n\t\tif ( !str.length && o.key ) {\n\t\t\tstr.push( o.key + \"=\" );\n\t\t}\n\n\t\treturn str.join( \"&\" );\n\n\t},\n\n\ttoArray: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each( function() {\n\t\t\tret.push( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" );\n\t\t} );\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function( item ) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t &&\n\t\t\t\t( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l &&\n\t\t\t\t( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t( this.options.tolerance !== \"pointer\" &&\n\t\t\t\tthis.helperProportions[ this.floating ? \"width\" : \"height\" ] >\n\t\t\t\titem[ this.floating ? \"width\" : \"height\" ] )\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( this.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( this.helperProportions.height / 2 ) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function( item ) {\n\t\tvar verticalDirection, horizontalDirection,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.top + this.offset.click.top, item.top, item.height ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.left + this.offset.click.left, item.left, item.width ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( !isOverElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tverticalDirection = this.dragDirection.vertical;\n\t\thorizontalDirection = this.dragDirection.horizontal;\n\n\t\treturn this.floating ?\n\t\t\t( ( horizontalDirection === \"right\" || verticalDirection === \"down\" ) ? 2 : 1 ) :\n\t\t\t( verticalDirection && ( verticalDirection === \"down\" ? 2 : 1 ) );\n\n\t},\n\n\t_intersectsWithSides: function( item ) {\n\n\t\tvar isOverBottomHalf = this._isOverAxis( this.positionAbs.top +\n\t\t\t\tthis.offset.click.top, item.top + ( item.height / 2 ), item.height ),\n\t\t\tisOverRightHalf = this._isOverAxis( this.positionAbs.left +\n\t\t\t\tthis.offset.click.left, item.left + ( item.width / 2 ), item.width ),\n\t\t\tverticalDirection = this.dragDirection.vertical,\n\t\t\thorizontalDirection = this.dragDirection.horizontal;\n\n\t\tif ( this.floating && horizontalDirection ) {\n\t\t\treturn ( ( horizontalDirection === \"right\" && isOverRightHalf ) ||\n\t\t\t\t( horizontalDirection === \"left\" && !isOverRightHalf ) );\n\t\t} else {\n\t\t\treturn verticalDirection && ( ( verticalDirection === \"down\" && isOverBottomHalf ) ||\n\t\t\t\t( verticalDirection === \"up\" && !isOverBottomHalf ) );\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && ( delta > 0 ? \"down\" : \"up\" );\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && ( delta > 0 ? \"right\" : \"left\" );\n\t},\n\n\trefresh: function( event ) {\n\t\tthis._refreshItems( event );\n\t\tthis._setHandleClassName();\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ?\n\t\t\t[ options.connectWith ] :\n\t\t\toptions.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function( connected ) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif ( connectWith && connected ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ typeof inst.options.items === \"function\" ?\n\t\t\t\t\t\t\tinst.options.items.call( inst.element ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-placeholder\" ), inst ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push( [ typeof this.options.items === \"function\" ?\n\t\t\tthis.options.items\n\t\t\t\t.call( this.element, null, { options: this.options, item: this.currentItem } ) :\n\t\t\t$( this.options.items, this.element )\n\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t.not( \".ui-sortable-placeholder\" ), this ] );\n\n\t\tfunction addItems() {\n\t\t\titems.push( this );\n\t\t}\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\tqueries[ i ][ 0 ].each( addItems );\n\t\t}\n\n\t\treturn $( items );\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find( \":data(\" + this.widgetName + \"-item)\" );\n\n\t\tthis.items = $.grep( this.items, function( item ) {\n\t\t\tfor ( var j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === item.item[ 0 ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t},\n\n\t_refreshItems: function( event ) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [ this ];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [ [ typeof this.options.items === \"function\" ?\n\t\t\t\tthis.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t$( this.options.items, this.element ), this ] ],\n\t\t\tconnectWith = this._connectWith();\n\n\t\t//Shouldn't be run the first time through due to massive slow-down\n\t\tif ( connectWith && this.ready ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ typeof inst.options.items === \"function\" ?\n\t\t\t\t\t\t\tinst.options.items\n\t\t\t\t\t\t\t\t.call( inst.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element ), inst ] );\n\t\t\t\t\t\tthis.containers.push( inst );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\ttargetData = queries[ i ][ 1 ];\n\t\t\t_queries = queries[ i ][ 0 ];\n\n\t\t\tfor ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {\n\t\t\t\titem = $( _queries[ j ] );\n\n\t\t\t\t// Data for target checking (mouse manager)\n\t\t\t\titem.data( this.widgetName + \"-item\", targetData );\n\n\t\t\t\titems.push( {\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t},\n\n\t_refreshItemPositions: function( fast ) {\n\t\tvar i, item, t, p;\n\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif ( this.currentContainer && item.instance !== this.currentContainer &&\n\t\t\t\t\titem.item[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ?\n\t\t\t\t$( this.options.toleranceElement, item.item ) :\n\t\t\t\titem.item;\n\n\t\t\tif ( !fast ) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\t},\n\n\trefreshPositions: function( fast ) {\n\n\t\t// Determine whether items are being displayed horizontally\n\t\tthis.floating = this.items.length ?\n\t\t\tthis.options.axis === \"x\" || this._isFloating( this.items[ 0 ].item ) :\n\t\t\tfalse;\n\n\t\t// This has to be redone because due to the item being moved out/into the offsetParent,\n\t\t// the offsetParent's position will change\n\t\tif ( this.offsetParent && this.helper ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tthis._refreshItemPositions( fast );\n\n\t\tvar i, p;\n\n\t\tif ( this.options.custom && this.options.custom.refreshContainers ) {\n\t\t\tthis.options.custom.refreshContainers.call( this );\n\t\t} else {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tp = this.containers[ i ].element.offset();\n\t\t\t\tthis.containers[ i ].containerCache.left = p.left;\n\t\t\t\tthis.containers[ i ].containerCache.top = p.top;\n\t\t\t\tthis.containers[ i ].containerCache.width =\n\t\t\t\t\tthis.containers[ i ].element.outerWidth();\n\t\t\t\tthis.containers[ i ].containerCache.height =\n\t\t\t\t\tthis.containers[ i ].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function( that ) {\n\t\tthat = that || this;\n\t\tvar className, nodeName,\n\t\t\to = that.options;\n\n\t\tif ( !o.placeholder || o.placeholder.constructor === String ) {\n\t\t\tclassName = o.placeholder;\n\t\t\tnodeName = that.currentItem[ 0 ].nodeName.toLowerCase();\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar element = $( \"<\" + nodeName + \">\", that.document[ 0 ] );\n\n\t\t\t\t\tthat._addClass( element, \"ui-sortable-placeholder\",\n\t\t\t\t\t\t\tclassName || that.currentItem[ 0 ].className )\n\t\t\t\t\t\t._removeClass( element, \"ui-sortable-helper\" );\n\n\t\t\t\t\tif ( nodeName === \"tbody\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder(\n\t\t\t\t\t\t\tthat.currentItem.find( \"tr\" ).eq( 0 ),\n\t\t\t\t\t\t\t$( \"\", that.document[ 0 ] ).appendTo( element )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder( that.currentItem, element );\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function( container, p ) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes -\n\t\t\t\t\t// the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a\n\t\t\t\t\t// class name is specified\n\t\t\t\t\tif ( className && !o.forcePlaceholderSize ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the element doesn't have a actual height or width by itself (without\n\t\t\t\t\t// styles coming from a stylesheet), it receives the inline height and width\n\t\t\t\t\t// from the dragged item. Or, if it's a tbody or tr, it's going to have a height\n\t\t\t\t\t// anyway since we're populating them with s above, but they're unlikely to\n\t\t\t\t\t// be the correct height on their own if the row heights are dynamic, so we'll\n\t\t\t\t\t// always assign the height of the dragged item given forcePlaceholderSize\n\t\t\t\t\t// is true.\n\t\t\t\t\tif ( !p.height() || ( o.forcePlaceholderSize &&\n\t\t\t\t\t\t\t( nodeName === \"tbody\" || nodeName === \"tr\" ) ) ) {\n\t\t\t\t\t\tp.height(\n\t\t\t\t\t\t\tthat.currentItem.innerHeight() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingTop\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingBottom\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !p.width() ) {\n\t\t\t\t\t\tp.width(\n\t\t\t\t\t\t\tthat.currentItem.innerWidth() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingLeft\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingRight\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after( that.placeholder );\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update( that, that.placeholder );\n\n\t},\n\n\t_createTrPlaceholder: function( sourceTr, targetTr ) {\n\t\tvar that = this;\n\n\t\tsourceTr.children().each( function() {\n\t\t\t$( \" \", that.document[ 0 ] )\n\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t.appendTo( targetTr );\n\t\t} );\n\t},\n\n\t_contactContainers: function( event ) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,\n\t\t\tfloating, axis,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// Get innermost container that intersects with item\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\n\t\t\t// Never consider a container that's located within the item itself\n\t\t\tif ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( this._intersectsWith( this.containers[ i ].containerCache ) ) {\n\n\t\t\t\t// If we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif ( innermostContainer &&\n\t\t\t\t\t\t$.contains(\n\t\t\t\t\t\t\tthis.containers[ i ].element[ 0 ],\n\t\t\t\t\t\t\tinnermostContainer.element[ 0 ] ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[ i ];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", event, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// If no intersecting containers found, return\n\t\tif ( !innermostContainer ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Move the item into the container if it's not there already\n\t\tif ( this.containers.length === 1 ) {\n\t\t\tif ( !this.containers[ innermostIndex ].containerCache.over ) {\n\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// When entering a new container, we will find the item with the least distance and\n\t\t\t// append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || this._isFloating( this.currentItem );\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\taxis = floating ? \"pageX\" : \"pageY\";\n\n\t\t\tfor ( j = this.items.length - 1; j >= 0; j-- ) {\n\t\t\t\tif ( !$.contains(\n\t\t\t\t\t\tthis.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcur = this.items[ j ].item.offset()[ posProperty ];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t}\n\n\t\t\t\tif ( Math.abs( event[ axis ] - cur ) < dist ) {\n\t\t\t\t\tdist = Math.abs( event[ axis ] - cur );\n\t\t\t\t\titemWithLeastDistance = this.items[ j ];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\" : \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.currentContainer === this.containers[ innermostIndex ] ) {\n\t\t\t\tif ( !this.currentContainer.containerCache.over ) {\n\t\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash() );\n\t\t\t\t\tthis.currentContainer.containerCache.over = 1;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( itemWithLeastDistance ) {\n\t\t\t\tthis._rearrange( event, itemWithLeastDistance, null, true );\n\t\t\t} else {\n\t\t\t\tthis._rearrange( event, null, this.containers[ innermostIndex ].element, true );\n\t\t\t}\n\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"change\", event, this._uiHash( this ) );\n\t\t\tthis.currentContainer = this.containers[ innermostIndex ];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update( this.currentContainer, this.placeholder );\n\n\t\t\t//Update scrollParent\n\t\t\tthis.scrollParent = this.placeholder.scrollParent();\n\n\t\t\t//Update overflowOffset\n\t\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t\t}\n\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t}\n\n\t},\n\n\t_createHelper: function( event ) {\n\n\t\tvar o = this.options,\n\t\t\thelper = typeof o.helper === \"function\" ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem );\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif ( !helper.parents( \"body\" ).length ) {\n\t\t\tthis.appendTo[ 0 ].appendChild( helper[ 0 ] );\n\t\t}\n\n\t\tif ( helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tthis._storedCSS = {\n\t\t\t\twidth: this.currentItem[ 0 ].style.width,\n\t\t\t\theight: this.currentItem[ 0 ].style.height,\n\t\t\t\tposition: this.currentItem.css( \"position\" ),\n\t\t\t\ttop: this.currentItem.css( \"top\" ),\n\t\t\t\tleft: this.currentItem.css( \"left\" )\n\t\t\t};\n\t\t}\n\n\t\tif ( !helper[ 0 ].style.width || o.forceHelperSize ) {\n\t\t\thelper.width( this.currentItem.width() );\n\t\t}\n\t\tif ( !helper[ 0 ].style.height || o.forceHelperSize ) {\n\t\t\thelper.height( this.currentItem.height() );\n\t\t}\n\n\t\treturn helper;\n\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 ( Array.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_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the\n\t\t// following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the\n\t\t// next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't\n\t\t// the document, which means that the scroll is included in the initial calculation of the\n\t\t// offset of the parent, and never recalculated upon drag\n\t\tif ( this.cssPosition === \"absolute\" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.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\t// This needs to be actually done for all browsers, since pageX/pageY includes\n\t\t// this information.\n\t\tif ( this.offsetParent[ 0 ] === this.document[ 0 ].body ) {\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\n\t\tif ( this.cssPosition === \"relative\" ) {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - ( parseInt( this.helper.css( \"top\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - ( parseInt( this.helper.css( \"left\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: ( parseInt( this.currentItem.css( \"marginLeft\" ), 10 ) || 0 ),\n\t\t\ttop: ( parseInt( this.currentItem.css( \"marginTop\" ), 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 ce, co, over,\n\t\t\to = this.options;\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\t\tif ( o.containment === \"document\" || o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\to.containment === \"document\" ?\n\t\t\t\t\tthis.document.width() :\n\t\t\t\t\tthis.window.width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( o.containment === \"document\" ?\n\t\t\t\t\t( this.document.height() || document.body.parentNode.scrollHeight ) :\n\t\t\t\t\tthis.window.height() || this.document[ 0 ].body.parentNode.scrollHeight\n\t\t\t\t) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {\n\t\t\tce = $( o.containment )[ 0 ];\n\t\t\tco = $( o.containment ).offset();\n\t\t\tover = ( $( ce ).css( \"overflow\" ) !== \"hidden\" );\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + ( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingLeft\" ), 10 ) || 0 ) - this.margins.left,\n\t\t\t\tco.top + ( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingTop\" ), 10 ) || 0 ) - this.margins.top,\n\t\t\t\tco.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.width - this.margins.left,\n\t\t\t\tco.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function( d, pos ) {\n\n\t\tif ( !pos ) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.top\t+\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top * mod -\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.left +\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left * mod\t-\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :\n\t\t\t\t\tscroll.scrollLeft() ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event ) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif ( this.cssPosition === \"relative\" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\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\tif ( this.originalPosition ) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {\n\t\t\t\t\tpageX = this.containment[ 0 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {\n\t\t\t\t\tpageY = this.containment[ 1 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {\n\t\t\t\t\tpageX = this.containment[ 2 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {\n\t\t\t\t\tpageY = this.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\ttop = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /\n\t\t\t\t\to.grid[ 1 ] ) * o.grid[ 1 ];\n\t\t\t\tpageY = this.containment ?\n\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] &&\n\t\t\t\t\t\ttop - this.offset.click.top <= this.containment[ 3 ] ) ?\n\t\t\t\t\t\t\ttop :\n\t\t\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?\n\t\t\t\t\t\t\t\ttop - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :\n\t\t\t\t\t\t\t\ttop;\n\n\t\t\t\tleft = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /\n\t\t\t\t\to.grid[ 0 ] ) * o.grid[ 0 ];\n\t\t\t\tpageX = this.containment ?\n\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] &&\n\t\t\t\t\t\tleft - this.offset.click.left <= this.containment[ 2 ] ) ?\n\t\t\t\t\t\t\tleft :\n\t\t\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?\n\t\t\t\t\t\t\t\tleft - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :\n\t\t\t\t\t\t\t\tleft;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageY -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.top -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageX -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.left -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() :\n\t\t\t\t\tscrollIsRootNode ? 0 : scroll.scrollLeft() ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function( event, i, a, hardRefresh ) {\n\n\t\tif ( a ) {\n\t\t\ta[ 0 ].appendChild( this.placeholder[ 0 ] );\n\t\t} else {\n\t\t\ti.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],\n\t\t\t\t( this.direction === \"down\" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );\n\t\t}\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout,\n\t\t// if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay( function() {\n\t\t\tif ( counter === this.counter ) {\n\n\t\t\t\t//Precompute after each DOM insertion, NOT on mousemove\n\t\t\t\tthis.refreshPositions( !hardRefresh );\n\t\t\t}\n\t\t} );\n\n\t},\n\n\t_clear: function( event, noPropagation ) {\n\n\t\tthis.reverting = false;\n\n\t\t// We delay all events that have to be triggered to after the point where the placeholder\n\t\t// has been removed and everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets\n\t\t// reappended (see #4088)\n\t\tif ( !this._noFinalSort && this.currentItem.parent().length ) {\n\t\t\tthis.placeholder.before( this.currentItem );\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tfor ( i in this._storedCSS ) {\n\t\t\t\tif ( this._storedCSS[ i ] === \"auto\" || this._storedCSS[ i ] === \"static\" ) {\n\t\t\t\t\tthis._storedCSS[ i ] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif ( this.fromOutside && !noPropagation ) {\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"receive\", event, this._uiHash( this.fromOutside ) );\n\t\t\t} );\n\t\t}\n\t\tif ( ( this.fromOutside ||\n\t\t\t\tthis.domPosition.prev !==\n\t\t\t\tthis.currentItem.prev().not( \".ui-sortable-helper\" )[ 0 ] ||\n\t\t\t\tthis.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {\n\n\t\t\t// Trigger update callback if the DOM position has changed\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"update\", event, this._uiHash() );\n\t\t\t} );\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif ( this !== this.currentContainer ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\t\tthis._trigger( \"remove\", event, this._uiHash() );\n\t\t\t\t} );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"receive\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"update\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tfunction delayEvent( type, instance, container ) {\n\t\t\treturn function( event ) {\n\t\t\t\tcontainer._trigger( type, event, instance._uiHash( instance ) );\n\t\t\t};\n\t\t}\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"deactivate\", this, this.containers[ i ] ) );\n\t\t\t}\n\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"out\", this, this.containers[ i ] ) );\n\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this._storedStylesheet ) {\n\t\t\tthis._storedStylesheet.remove();\n\t\t\tthis._storedStylesheet = null;\n\t\t}\n\t\tif ( this._storedOpacity ) {\n\t\t\tthis.helper.css( \"opacity\", this._storedOpacity );\n\t\t}\n\t\tif ( this._storedZIndex ) {\n\t\t\tthis.helper.css( \"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex );\n\t\t}\n\n\t\tthis.dragging = false;\n\n\t\tif ( !noPropagation ) {\n\t\t\tthis._trigger( \"beforeStop\", event, this._uiHash() );\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t// it unbinds ALL events from the original node!\n\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\n\t\tif ( !this.cancelHelperRemoval ) {\n\t\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\t\t\tthis.helper = null;\n\t\t}\n\n\t\tif ( !noPropagation ) {\n\t\t\tfor ( i = 0; i < delayedTriggers.length; i++ ) {\n\n\t\t\t\t// Trigger all delayed events\n\t\t\t\tdelayedTriggers[ i ].call( this, event );\n\t\t\t}\n\t\t\tthis._trigger( \"stop\", event, this._uiHash() );\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn !this.cancelHelperRemoval;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function( _inst ) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $( [] ),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n} );\n\n} );\n"],"names":["$","extend","expr","pseudos","data","createPseudo","dataName","elem","fn","scrollParent","includeHidden","position","this","css","excludeStaticParent","overflowRegex","parents","filter","parent","test","eq","length","ownerDocument","document","mouseHandled","on","widget","version","options","cancel","distance","delay","_mouseInit","that","element","widgetName","event","_mouseDown","target","removeData","stopImmediatePropagation","started","_mouseDestroy","off","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","which","elIsCancel","closest","_mouseCapture","mouseDelayMet","_mouseDelayTimer","setTimeout","_mouseDistanceMet","_mouseDelayMet","_mouseStart","preventDefault","_mouseMove","originalEvent","altKey","ctrlKey","metaKey","shiftKey","ignoreMissingWhich","button","_mouseDrag","_mouseStop","clearTimeout","Math","max","abs","pageX","pageY","ui","mouse","widgetEventPrefix","ready","appendTo","axis","connectWith","containment","cursor","cursorAt","dropOnEmpty","forcePlaceholderSize","forceHelperSize","grid","handle","helper","items","opacity","placeholder","revert","scroll","scrollSensitivity","scrollSpeed","scope","tolerance","zIndex","activate","beforeStop","change","deactivate","out","over","receive","remove","sort","start","stop","update","_isOverAxis","x","reference","size","_isFloating","item","_create","containerCache","_addClass","refresh","offset","_setHandleClassName","_setOption","key","value","_super","_removeClass","find","each","instance","_destroy","i","overrideHandle","currentItem","validHandle","reverting","disabled","type","_refreshItems","addBack","_removeCurrentsFromItems","noActivation","body","o","currentContainer","refreshPositions","_createHelper","_cacheHelperProportions","_cacheMargins","top","margins","left","click","relative","_getRelativeOffset","cssPosition","_adjustOffsetFromHelper","domPosition","prev","hide","_createPlaceholder","_getParentOffset","_setContainment","_storedStylesheet","_storedZIndex","_storedOpacity","tagName","overflowOffset","_trigger","_uiHash","_preserveHelperProportions","containers","ddmanager","current","dropBehaviour","prepareOffsets","dragging","is","detach","originalPosition","_generatePosition","originalPageX","originalPageY","lastPositionAbs","positionAbs","_convertPositionTo","_scroll","scrolled","offsetHeight","scrollTop","offsetWidth","scrollLeft","window","height","width","itemElement","intersection","style","_refreshItemPositions","dragDirection","vertical","_getDragVerticalDirection","horizontal","_getDragHorizontalDirection","_intersectsWithPointer","contains","direction","_intersectsWithSides","_rearrange","_contactContainers","drag","noPropagation","drop","cur","animation","offsetParent","animate","parseInt","_clear","Event","_storedCSS","show","parentNode","removeChild","_noFinalSort","after","prepend","serialize","_getItemsAsjQuery","connected","str","res","attr","attribute","match","expression","push","join","toArray","ret","_intersectsWith","x1","x2","helperProportions","y1","y2","l","r","t","b","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","horizontalDirection","isOverBottomHalf","isOverRightHalf","delta","_connectWith","constructor","String","j","inst","queries","widgetFullName","call","not","addItems","list","grep","targetData","_queries","queriesLength","fast","p","toleranceElement","outerWidth","outerHeight","custom","refreshContainers","className","nodeName","toLowerCase","_createTrPlaceholder","container","innerHeight","innerWidth","sourceTr","targetTr","children","dist","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","apply","clone","appendChild","obj","split","Array","isArray","right","bottom","po","ce","co","scrollHeight","scrollWidth","d","pos","mod","scrollIsRootNode","round","a","hardRefresh","insertBefore","nextSibling","counter","_delay","delayedTriggers","before","delayEvent","fromOutside","c","cancelHelperRemoval","Widget","prototype","arguments","_inst","sender"],"sourceRoot":""}