3 * jQuery UI Sortable 1.8.7
5 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
6 * Dual licensed under the MIT or GPL Version 2 licenses.
7 * http://jquery.org/license
9 * http://docs.jquery.com/UI/Sortables
16 (function(d
){d
.widget("ui.sortable",d
.ui
.mouse
,{widgetEventPrefix
:"sort",options
:{appendTo
:"parent",axis
:false,connectWith
:false,containment
:false,cursor
:"auto",cursorAt
:false,dropOnEmpty
:true,forcePlaceholderSize
:false,forceHelperSize
:false,grid
:false,handle
:false,helper
:"original",items
:"> *",opacity
:false,placeholder
:false,revert
:false,scroll
:true,scrollSensitivity
:20,scrollSpeed
:20,scope
:"default",tolerance
:"intersect",zIndex
:1E3
},_create:function(){this.containerCache
={};this.element
.addClass("ui-sortable");
17 this.refresh();this.floating
=this.items
.length
?/left|right/.test(this.items
[0].item
.css("float")):false;this.offset
=this.element
.offset();this._mouseInit()},destroy:function(){this.element
.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a
=this.items
.length
-1;a
>=0;a
--)this.items
[a
].item
.removeData("sortable-item");return this},_setOption:function(a
,b
){if(a
==="disabled"){this.options
[a
]=b
;this.widget()[b
?"addClass":"removeClass"]("ui-sortable-disabled")}else d
.Widget
.prototype._setOption
.apply(this,
18 arguments
)},_mouseCapture:function(a
,b
){if(this.reverting
)return false;if(this.options
.disabled
||this.options
.type
=="static")return false;this._refreshItems(a
);var c
=null,e
=this;d(a
.target
).parents().each(function(){if(d
.data(this,"sortable-item")==e
){c
=d(this);return false}});if(d
.data(a
.target
,"sortable-item")==e
)c
=d(a
.target
);if(!c
)return false;if(this.options
.handle
&&!b
){var f
=false;d(this.options
.handle
,c
).find("*").andSelf().each(function(){if(this==a
.target
)f
=true});if(!f
)return false}this.currentItem
=
19 c
;this._removeCurrentsFromItems();return true},_mouseStart:function(a
,b
,c
){b
=this.options
;var e
=this;this.currentContainer
=this;this.refreshPositions();this.helper
=this._createHelper(a
);this._cacheHelperProportions();this._cacheMargins();this.scrollParent
=this.helper
.scrollParent();this.offset
=this.currentItem
.offset();this.offset
={top
:this.offset
.top
-this.margins
.top
,left
:this.offset
.left
-this.margins
.left
};this.helper
.css("position","absolute");this.cssPosition
=this.helper
.css("position");d
.extend(this.offset
,
20 {click
:{left
:a
.pageX
-this.offset
.left
,top
:a
.pageY
-this.offset
.top
},parent
:this._getParentOffset(),relative
:this._getRelativeOffset()});this.originalPosition
=this._generatePosition(a
);this.originalPageX
=a
.pageX
;this.originalPageY
=a
.pageY
;b
.cursorAt
&&this._adjustOffsetFromHelper(b
.cursorAt
);this.domPosition
={prev
:this.currentItem
.prev()[0],parent
:this.currentItem
.parent()[0]};this.helper
[0]!=this.currentItem
[0]&&this.currentItem
.hide();this._createPlaceholder();b
.containment
&&this._setContainment();
21 if(b
.cursor
){if(d("body").css("cursor"))this._storedCursor
=d("body").css("cursor");d("body").css("cursor",b
.cursor
)}if(b
.opacity
){if(this.helper
.css("opacity"))this._storedOpacity
=this.helper
.css("opacity");this.helper
.css("opacity",b
.opacity
)}if(b
.zIndex
){if(this.helper
.css("zIndex"))this._storedZIndex
=this.helper
.css("zIndex");this.helper
.css("zIndex",b
.zIndex
)}if(this.scrollParent
[0]!=document
&&this.scrollParent
[0].tagName
!="HTML")this.overflowOffset
=this.scrollParent
.offset();this._trigger("start",
22 a
,this._uiHash());this._preserveHelperProportions
||this._cacheHelperProportions();if(!c
)for(c
=this.containers
.length
-1;c
>=0;c
--)this.containers
[c
]._trigger("activate",a
,e
._uiHash(this));if(d
.ui
.ddmanager
)d
.ui
.ddmanager
.current
=this;d
.ui
.ddmanager
&&!b
.dropBehaviour
&&d
.ui
.ddmanager
.prepareOffsets(this,a
);this.dragging
=true;this.helper
.addClass("ui-sortable-helper");this._mouseDrag(a
);return true},_mouseDrag:function(a
){this.position
=this._generatePosition(a
);this.positionAbs
=this._convertPositionTo("absolute");
23 if(!this.lastPositionAbs
)this.lastPositionAbs
=this.positionAbs
;if(this.options
.scroll
){var b
=this.options
,c
=false;if(this.scrollParent
[0]!=document
&&this.scrollParent
[0].tagName
!="HTML"){if(this.overflowOffset
.top
+this.scrollParent
[0].offsetHeight
-a
.pageY
<b
.scrollSensitivity
)this.scrollParent
[0].scrollTop
=c
=this.scrollParent
[0].scrollTop
+b
.scrollSpeed
;else if(a
.pageY
-this.overflowOffset
.top
<b
.scrollSensitivity
)this.scrollParent
[0].scrollTop
=c
=this.scrollParent
[0].scrollTop
-b
.scrollSpeed
;if(this.overflowOffset
.left
+
24 this.scrollParent
[0].offsetWidth
-a
.pageX
<b
.scrollSensitivity
)this.scrollParent
[0].scrollLeft
=c
=this.scrollParent
[0].scrollLeft
+b
.scrollSpeed
;else if(a
.pageX
-this.overflowOffset
.left
<b
.scrollSensitivity
)this.scrollParent
[0].scrollLeft
=c
=this.scrollParent
[0].scrollLeft
-b
.scrollSpeed
}else{if(a
.pageY
-d(document
).scrollTop()<b
.scrollSensitivity
)c
=d(document
).scrollTop(d(document
).scrollTop()-b
.scrollSpeed
);else if(d(window
).height()-(a
.pageY
-d(document
).scrollTop())<b
.scrollSensitivity
)c
=d(document
).scrollTop(d(document
).scrollTop()+
25 b
.scrollSpeed
);if(a
.pageX
-d(document
).scrollLeft()<b
.scrollSensitivity
)c
=d(document
).scrollLeft(d(document
).scrollLeft()-b
.scrollSpeed
);else if(d(window
).width()-(a
.pageX
-d(document
).scrollLeft())<b
.scrollSensitivity
)c
=d(document
).scrollLeft(d(document
).scrollLeft()+b
.scrollSpeed
)}c
!==false&&d
.ui
.ddmanager
&&!b
.dropBehaviour
&&d
.ui
.ddmanager
.prepareOffsets(this,a
)}this.positionAbs
=this._convertPositionTo("absolute");if(!this.options
.axis
||this.options
.axis
!="y")this.helper
[0].style
.left
=this.position
.left
+
26 "px";if(!this.options
.axis
||this.options
.axis
!="x")this.helper
[0].style
.top
=this.position
.top
+"px";for(b
=this.items
.length
-1;b
>=0;b
--){c
=this.items
[b
];var e
=c
.item
[0],f
=this._intersectsWithPointer(c
);if(f
)if(e
!=this.currentItem
[0]&&this.placeholder
[f
==1?"next":"prev"]()[0]!=e
&&!d
.ui
.contains(this.placeholder
[0],e
)&&(this.options
.type
=="semi-dynamic"?!d
.ui
.contains(this.element
[0],e
):true)){this.direction
=f
==1?"down":"up";if(this.options
.tolerance
=="pointer"||this._intersectsWithSides(c
))this._rearrange(a
,
27 c
);else break;this._trigger("change",a
,this._uiHash());break}}this._contactContainers(a
);d
.ui
.ddmanager
&&d
.ui
.ddmanager
.drag(this,a
);this._trigger("sort",a
,this._uiHash());this.lastPositionAbs
=this.positionAbs
;return false},_mouseStop:function(a
,b
){if(a
){d
.ui
.ddmanager
&&!this.options
.dropBehaviour
&&d
.ui
.ddmanager
.drop(this,a
);if(this.options
.revert
){var c
=this;b
=c
.placeholder
.offset();c
.reverting
=true;d(this.helper
).animate({left
:b
.left
-this.offset
.parent
.left
-c
.margins
.left
+(this.offsetParent
[0]==
28 document
.body
?0:this.offsetParent
[0].scrollLeft
),top
:b
.top
-this.offset
.parent
.top
-c
.margins
.top
+(this.offsetParent
[0]==document
.body
?0:this.offsetParent
[0].scrollTop
)},parseInt(this.options
.revert
,10)||500,function(){c
._clear(a
)})}else this._clear(a
,b
);return false}},cancel:function(){var a
=this;if(this.dragging
){this._mouseUp();this.options
.helper
=="original"?this.currentItem
.css(this._storedCSS
).removeClass("ui-sortable-helper"):this.currentItem
.show();for(var b
=this.containers
.length
-1;b
>=0;b
--){this.containers
[b
]._trigger("deactivate",
29 null,a
._uiHash(this));if(this.containers
[b
].containerCache
.over
){this.containers
[b
]._trigger("out",null,a
._uiHash(this));this.containers
[b
].containerCache
.over
=0}}}this.placeholder
[0].parentNode
&&this.placeholder
[0].parentNode
.removeChild(this.placeholder
[0]);this.options
.helper
!="original"&&this.helper
&&this.helper
[0].parentNode
&&this.helper
.remove();d
.extend(this,{helper
:null,dragging
:false,reverting
:false,_noFinalSort
:null});this.domPosition
.prev
?d(this.domPosition
.prev
).after(this.currentItem
):
30 d(this.domPosition
.parent
).prepend(this.currentItem
);return this},serialize:function(a
){var b
=this._getItemsAsjQuery(a
&&a
.connected
),c
=[];a
=a
||{};d(b
).each(function(){var e
=(d(a
.item
||this).attr(a
.attribute
||"id")||"").match(a
.expression
||/(.+)[-=_](.+)/);if(e
)c
.push((a
.key
||e
[1]+"[]")+"="+(a
.key
&&a
.expression
?e
[1]:e
[2]))});!c
.length
&&a
.key
&&c
.push(a
.key
+"=");return c
.join("&")},toArray:function(a
){var b
=this._getItemsAsjQuery(a
&&a
.connected
),c
=[];a
=a
||{};b
.each(function(){c
.push(d(a
.item
||this).attr(a
.attribute
||
31 "id")||"")});return c
},_intersectsWith:function(a
){var b
=this.positionAbs
.left
,c
=b
+this.helperProportions
.width
,e
=this.positionAbs
.top
,f
=e
+this.helperProportions
.height
,g
=a
.left
,h
=g
+a
.width
,i
=a
.top
,k
=i
+a
.height
,j
=this.offset
.click
.top
,l
=this.offset
.click
.left
;j
=e
+j
>i
&&e
+j
<k
&&b
+l
>g
&&b
+l
<h
;return this.options
.tolerance
=="pointer"||this.options
.forcePointerForContainers
||this.options
.tolerance
!="pointer"&&this.helperProportions
[this.floating
?"width":"height"]>a
[this.floating
?"width":"height"]?j
:g
<b
+
32 this.helperProportions
.width
/2&&c-this.helperProportions.width/2<h
&&i
<e
+this.helperProportions
.height
/2&&f-this.helperProportions.height/2<k
},_intersectsWithPointer:function(a
){var b
=d
.ui
.isOverAxis(this.positionAbs
.top
+this.offset
.click
.top
,a
.top
,a
.height
);a
=d
.ui
.isOverAxis(this.positionAbs
.left
+this.offset
.click
.left
,a
.left
,a
.width
);b
=b
&&a
;a
=this._getDragVerticalDirection();var c
=this._getDragHorizontalDirection();if(!b
)return false;return this.floating
?c
&&c
=="right"||a
=="down"?2:1:a
&&(a
=="down"?
33 2:1)},_intersectsWithSides:function(a
){var b
=d
.ui
.isOverAxis(this.positionAbs
.top
+this.offset
.click
.top
,a
.top
+a
.height
/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a
.width
);var c
=this._getDragVerticalDirection(),e
=this._getDragHorizontalDirection();return this.floating
&&e
?e
=="right"&&a
||e
=="left"&&!a
:c
&&(c
=="down"&&b
||c
=="up"&&!b
)},_getDragVerticalDirection:function(){var a
=this.positionAbs
.top
-this.lastPositionAbs
.top
;return a
!=0&&(a
>0?"down":"up")},
34 _getDragHorizontalDirection:function(){var a
=this.positionAbs
.left
-this.lastPositionAbs
.left
;return a
!=0&&(a
>0?"right":"left")},refresh:function(a
){this._refreshItems(a
);this.refreshPositions();return this},_connectWith:function(){var a
=this.options
;return a
.connectWith
.constructor==String
?[a
.connectWith
]:a
.connectWith
},_getItemsAsjQuery:function(a
){var b
=[],c
=[],e
=this._connectWith();if(e
&&a
)for(a
=e
.length
-1;a
>=0;a
--)for(var f
=d(e
[a
]),g
=f
.length
-1;g
>=0;g
--){var h
=d
.data(f
[g
],"sortable");if(h
&&h
!=
35 this&&!h
.options
.disabled
)c
.push([d
.isFunction(h
.options
.items
)?h
.options
.items
.call(h
.element
):d(h
.options
.items
,h
.element
).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h
])}c
.push([d
.isFunction(this.options
.items
)?this.options
.items
.call(this.element
,null,{options
:this.options
,item
:this.currentItem
}):d(this.options
.items
,this.element
).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a
=c
.length
-1;a
>=0;a
--)c
[a
][0].each(function(){b
.push(this)});return d(b
)},_removeCurrentsFromItems:function(){for(var a
=
36 this.currentItem
.find(":data(sortable-item)"),b
=0;b
<this.items
.length
;b
++)for(var c
=0;c
<a
.length
;c
++)a
[c
]==this.items
[b
].item
[0]&&this.items
.splice(b
,1)},_refreshItems:function(a
){this.items
=[];this.containers
=[this];var b
=this.items
,c
=[[d
.isFunction(this.options
.items
)?this.options
.items
.call(this.element
[0],a
,{item
:this.currentItem
}):d(this.options
.items
,this.element
),this]],e
=this._connectWith();if(e
)for(var f
=e
.length
-1;f
>=0;f
--)for(var g
=d(e
[f
]),h
=g
.length
-1;h
>=0;h
--){var i
=d
.data(g
[h
],"sortable");
37 if(i
&&i
!=this&&!i
.options
.disabled
){c
.push([d
.isFunction(i
.options
.items
)?i
.options
.items
.call(i
.element
[0],a
,{item
:this.currentItem
}):d(i
.options
.items
,i
.element
),i
]);this.containers
.push(i
)}}for(f
=c
.length
-1;f
>=0;f
--){a
=c
[f
][1];e
=c
[f
][0];h
=0;for(g
=e
.length
;h
<g
;h
++){i
=d(e
[h
]);i
.data("sortable-item",a
);b
.push({item
:i
,instance
:a
,width
:0,height
:0,left
:0,top
:0})}}},refreshPositions:function(a
){if(this.offsetParent
&&this.helper
)this.offset
.parent
=this._getParentOffset();for(var b
=this.items
.length
-1;b
>=
38 0;b
--){var c
=this.items
[b
],e
=this.options
.toleranceElement
?d(this.options
.toleranceElement
,c
.item
):c
.item
;if(!a
){c
.width
=e
.outerWidth();c
.height
=e
.outerHeight()}e
=e
.offset();c
.left
=e
.left
;c
.top
=e
.top
}if(this.options
.custom
&&this.options
.custom
.refreshContainers
)this.options
.custom
.refreshContainers
.call(this);else for(b
=this.containers
.length
-1;b
>=0;b
--){e
=this.containers
[b
].element
.offset();this.containers
[b
].containerCache
.left
=e
.left
;this.containers
[b
].containerCache
.top
=e
.top
;this.containers
[b
].containerCache
.width
=
39 this.containers
[b
].element
.outerWidth();this.containers
[b
].containerCache
.height
=this.containers
[b
].element
.outerHeight()}return this},_createPlaceholder:function(a
){var b
=a
||this,c
=b
.options
;if(!c
.placeholder
||c
.placeholder
.constructor==String
){var e
=c
.placeholder
;c
.placeholder
={element:function(){var f
=d(document
.createElement(b
.currentItem
[0].nodeName
)).addClass(e
||b
.currentItem
[0].className
+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e
)f
.style
.visibility
="hidden";return f
},
40 update:function(f
,g
){if(!(e
&&!c
.forcePlaceholderSize
)){g
.height()||g
.height(b
.currentItem
.innerHeight()-parseInt(b
.currentItem
.css("paddingTop")||0,10)-parseInt(b
.currentItem
.css("paddingBottom")||0,10));g
.width()||g
.width(b
.currentItem
.innerWidth()-parseInt(b
.currentItem
.css("paddingLeft")||0,10)-parseInt(b
.currentItem
.css("paddingRight")||0,10))}}}}b
.placeholder
=d(c
.placeholder
.element
.call(b
.element
,b
.currentItem
));b
.currentItem
.after(b
.placeholder
);c
.placeholder
.update(b
,b
.placeholder
)},_contactContainers:function(a
){for(var b
=
41 null,c
=null,e
=this.containers
.length
-1;e
>=0;e
--)if(!d
.ui
.contains(this.currentItem
[0],this.containers
[e
].element
[0]))if(this._intersectsWith(this.containers
[e
].containerCache
)){if(!(b
&&d
.ui
.contains(this.containers
[e
].element
[0],b
.element
[0]))){b
=this.containers
[e
];c
=e
}}else if(this.containers
[e
].containerCache
.over
){this.containers
[e
]._trigger("out",a
,this._uiHash(this));this.containers
[e
].containerCache
.over
=0}if(b
)if(this.containers
.length
===1){this.containers
[c
]._trigger("over",a
,this._uiHash(this));
42 this.containers
[c
].containerCache
.over
=1}else if(this.currentContainer
!=this.containers
[c
]){b
=1E4
;e
=null;for(var f
=this.positionAbs
[this.containers
[c
].floating
?"left":"top"],g
=this.items
.length
-1;g
>=0;g
--)if(d
.ui
.contains(this.containers
[c
].element
[0],this.items
[g
].item
[0])){var h
=this.items
[g
][this.containers
[c
].floating
?"left":"top"];if(Math
.abs(h
-f
)<b
){b
=Math
.abs(h
-f
);e
=this.items
[g
]}}if(e
||this.options
.dropOnEmpty
){this.currentContainer
=this.containers
[c
];e
?this._rearrange(a
,e
,null,true):this._rearrange(a
,
43 null,this.containers
[c
].element
,true);this._trigger("change",a
,this._uiHash());this.containers
[c
]._trigger("change",a
,this._uiHash(this));this.options
.placeholder
.update(this.currentContainer
,this.placeholder
);this.containers
[c
]._trigger("over",a
,this._uiHash(this));this.containers
[c
].containerCache
.over
=1}}},_createHelper:function(a
){var b
=this.options
;a
=d
.isFunction(b
.helper
)?d(b
.helper
.apply(this.element
[0],[a
,this.currentItem
])):b
.helper
=="clone"?this.currentItem
.clone():this.currentItem
;a
.parents("body").length
||
44 d(b
.appendTo
!="parent"?b
.appendTo
:this.currentItem
[0].parentNode
)[0].appendChild(a
[0]);if(a
[0]==this.currentItem
[0])this._storedCSS
={width
:this.currentItem
[0].style
.width
,height
:this.currentItem
[0].style
.height
,position
:this.currentItem
.css("position"),top
:this.currentItem
.css("top"),left
:this.currentItem
.css("left")};if(a
[0].style
.width
==""||b
.forceHelperSize
)a
.width(this.currentItem
.width());if(a
[0].style
.height
==""||b
.forceHelperSize
)a
.height(this.currentItem
.height());return a
},_adjustOffsetFromHelper:function(a
){if(typeof a
==
45 "string")a
=a
.split(" ");if(d
.isArray(a
))a
={left
:+a
[0],top
:+a
[1]||0};if("left"in a
)this.offset
.click
.left
=a
.left
+this.margins
.left
;if("right"in a
)this.offset
.click
.left
=this.helperProportions
.width
-a
.right
+this.margins
.left
;if("top"in a
)this.offset
.click
.top
=a
.top
+this.margins
.top
;if("bottom"in a
)this.offset
.click
.top
=this.helperProportions
.height
-a
.bottom
+this.margins
.top
},_getParentOffset:function(){this.offsetParent
=this.helper
.offsetParent();var a
=this.offsetParent
.offset();if(this.cssPosition
==
46 "absolute"&&this.scrollParent
[0]!=document
&&d
.ui
.contains(this.scrollParent
[0],this.offsetParent
[0])){a
.left
+=this.scrollParent
.scrollLeft();a
.top
+=this.scrollParent
.scrollTop()}if(this.offsetParent
[0]==document
.body
||this.offsetParent
[0].tagName
&&this.offsetParent
[0].tagName
.toLowerCase()=="html"&&d
.browser
.msie
)a
={top
:0,left
:0};return{top
:a
.top
+(parseInt(this.offsetParent
.css("borderTopWidth"),10)||0),left
:a
.left
+(parseInt(this.offsetParent
.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition
==
47 "relative"){var a
=this.currentItem
.position();return{top
:a
.top
-(parseInt(this.helper
.css("top"),10)||0)+this.scrollParent
.scrollTop(),left
:a
.left
-(parseInt(this.helper
.css("left"),10)||0)+this.scrollParent
.scrollLeft()}}else return{top
:0,left
:0}},_cacheMargins:function(){this.margins
={left
:parseInt(this.currentItem
.css("marginLeft"),10)||0,top
:parseInt(this.currentItem
.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions
={width
:this.helper
.outerWidth(),height
:this.helper
.outerHeight()}},
48 _setContainment:function(){var a
=this.options
;if(a
.containment
=="parent")a
.containment
=this.helper
[0].parentNode
;if(a
.containment
=="document"||a
.containment
=="window")this.containment
=[0-this.offset
.relative
.left
-this.offset
.parent
.left
,0-this.offset
.relative
.top
-this.offset
.parent
.top
,d(a
.containment
=="document"?document
:window
).width()-this.helperProportions
.width
-this.margins
.left
,(d(a
.containment
=="document"?document
:window
).height()||document
.body
.parentNode
.scrollHeight
)-this.helperProportions
.height
-
49 this.margins
.top
];if(!/^(document|window|parent)$/.test(a
.containment
)){var b
=d(a
.containment
)[0];a
=d(a
.containment
).offset();var c
=d(b
).css("overflow")!="hidden";this.containment
=[a
.left
+(parseInt(d(b
).css("borderLeftWidth"),10)||0)+(parseInt(d(b
).css("paddingLeft"),10)||0)-this.margins
.left
,a
.top
+(parseInt(d(b
).css("borderTopWidth"),10)||0)+(parseInt(d(b
).css("paddingTop"),10)||0)-this.margins
.top
,a
.left
+(c
?Math
.max(b
.scrollWidth
,b
.offsetWidth
):b
.offsetWidth
)-(parseInt(d(b
).css("borderLeftWidth"),
50 10)||0)-(parseInt(d(b
).css("paddingRight"),10)||0)-this.helperProportions
.width
-this.margins
.left
,a
.top
+(c
?Math
.max(b
.scrollHeight
,b
.offsetHeight
):b
.offsetHeight
)-(parseInt(d(b
).css("borderTopWidth"),10)||0)-(parseInt(d(b
).css("paddingBottom"),10)||0)-this.helperProportions
.height
-this.margins
.top
]}},_convertPositionTo:function(a
,b
){if(!b
)b
=this.position
;a
=a
=="absolute"?1:-1;var c
=this.cssPosition
=="absolute"&&!(this.scrollParent
[0]!=document
&&d
.ui
.contains(this.scrollParent
[0],this.offsetParent
[0]))?
51 this.offsetParent
:this.scrollParent
,e
=/(html|body)/i.test(c
[0].tagName
);return{top
:b
.top
+this.offset
.relative
.top
*a
+this.offset
.parent
.top
*a
-(d
.browser
.safari
&&this.cssPosition
=="fixed"?0:(this.cssPosition
=="fixed"?-this.scrollParent
.scrollTop():e
?0:c
.scrollTop())*a
),left
:b
.left
+this.offset
.relative
.left
*a
+this.offset
.parent
.left
*a
-(d
.browser
.safari
&&this.cssPosition
=="fixed"?0:(this.cssPosition
=="fixed"?-this.scrollParent
.scrollLeft():e
?0:c
.scrollLeft())*a
)}},_generatePosition:function(a
){var b
=
52 this.options
,c
=this.cssPosition
=="absolute"&&!(this.scrollParent
[0]!=document
&&d
.ui
.contains(this.scrollParent
[0],this.offsetParent
[0]))?this.offsetParent
:this.scrollParent
,e
=/(html|body)/i.test(c
[0].tagName
);if(this.cssPosition
=="relative"&&!(this.scrollParent
[0]!=document
&&this.scrollParent
[0]!=this.offsetParent
[0]))this.offset
.relative
=this._getRelativeOffset();var f
=a
.pageX
,g
=a
.pageY
;if(this.originalPosition
){if(this.containment
){if(a
.pageX
-this.offset
.click
.left
<this.containment
[0])f
=this.containment
[0]+
53 this.offset
.click
.left
;if(a
.pageY
-this.offset
.click
.top
<this.containment
[1])g
=this.containment
[1]+this.offset
.click
.top
;if(a
.pageX
-this.offset
.click
.left
>this.containment
[2])f
=this.containment
[2]+this.offset
.click
.left
;if(a
.pageY
-this.offset
.click
.top
>this.containment
[3])g
=this.containment
[3]+this.offset
.click
.top
}if(b
.grid
){g
=this.originalPageY
+Math
.round((g
-this.originalPageY
)/b
.grid
[1])*b
.grid
[1];g
=this.containment
?!(g
-this.offset
.click
.top
<this.containment
[1]||g
-this.offset
.click
.top
>this.containment
[3])?
54 g
:!(g
-this.offset
.click
.top
<this.containment
[1])?g
-b
.grid
[1]:g
+b
.grid
[1]:g
;f
=this.originalPageX
+Math
.round((f
-this.originalPageX
)/b
.grid
[0])*b
.grid
[0];f
=this.containment
?!(f
-this.offset
.click
.left
<this.containment
[0]||f
-this.offset
.click
.left
>this.containment
[2])?f
:!(f
-this.offset
.click
.left
<this.containment
[0])?f
-b
.grid
[0]:f
+b
.grid
[0]:f
}}return{top
:g
-this.offset
.click
.top
-this.offset
.relative
.top
-this.offset
.parent
.top
+(d
.browser
.safari
&&this.cssPosition
=="fixed"?0:this.cssPosition
=="fixed"?-this.scrollParent
.scrollTop():
55 e
?0:c
.scrollTop()),left
:f
-this.offset
.click
.left
-this.offset
.relative
.left
-this.offset
.parent
.left
+(d
.browser
.safari
&&this.cssPosition
=="fixed"?0:this.cssPosition
=="fixed"?-this.scrollParent
.scrollLeft():e
?0:c
.scrollLeft())}},_rearrange:function(a
,b
,c
,e
){c
?c
[0].appendChild(this.placeholder
[0]):b
.item
[0].parentNode
.insertBefore(this.placeholder
[0],this.direction
=="down"?b
.item
[0]:b
.item
[0].nextSibling
);this.counter
=this.counter
?++this.counter
:1;var f
=this,g
=this.counter
;window
.setTimeout(function(){g
==
56 f
.counter
&&f
.refreshPositions(!e
)},0)},_clear:function(a
,b
){this.reverting
=false;var c
=[];!this._noFinalSort
&&this.currentItem
[0].parentNode
&&this.placeholder
.before(this.currentItem
);this._noFinalSort
=null;if(this.helper
[0]==this.currentItem
[0]){for(var e
in this._storedCSS
)if(this._storedCSS
[e
]=="auto"||this._storedCSS
[e
]=="static")this._storedCSS
[e
]="";this.currentItem
.css(this._storedCSS
).removeClass("ui-sortable-helper")}else this.currentItem
.show();this.fromOutside
&&!b
&&c
.push(function(f
){this._trigger("receive",
57 f
,this._uiHash(this.fromOutside
))});if((this.fromOutside
||this.domPosition
.prev
!=this.currentItem
.prev().not(".ui-sortable-helper")[0]||this.domPosition
.parent
!=this.currentItem
.parent()[0])&&!b
)c
.push(function(f
){this._trigger("update",f
,this._uiHash())});if(!d
.ui
.contains(this.element
[0],this.currentItem
[0])){b
||c
.push(function(f
){this._trigger("remove",f
,this._uiHash())});for(e
=this.containers
.length
-1;e
>=0;e
--)if(d
.ui
.contains(this.containers
[e
].element
[0],this.currentItem
[0])&&!b
){c
.push(function(f
){return function(g
){f
._trigger("receive",
58 g
,this._uiHash(this))}}.call(this,this.containers
[e
]));c
.push(function(f
){return function(g
){f
._trigger("update",g
,this._uiHash(this))}}.call(this,this.containers
[e
]))}}for(e
=this.containers
.length
-1;e
>=0;e
--){b
||c
.push(function(f
){return function(g
){f
._trigger("deactivate",g
,this._uiHash(this))}}.call(this,this.containers
[e
]));if(this.containers
[e
].containerCache
.over
){c
.push(function(f
){return function(g
){f
._trigger("out",g
,this._uiHash(this))}}.call(this,this.containers
[e
]));this.containers
[e
].containerCache
.over
=
59 0}}this._storedCursor
&&d("body").css("cursor",this._storedCursor
);this._storedOpacity
&&this.helper
.css("opacity",this._storedOpacity
);if(this._storedZIndex
)this.helper
.css("zIndex",this._storedZIndex
=="auto"?"":this._storedZIndex
);this.dragging
=false;if(this.cancelHelperRemoval
){if(!b
){this._trigger("beforeStop",a
,this._uiHash());for(e
=0;e
<c
.length
;e
++)c
[e
].call(this,a
);this._trigger("stop",a
,this._uiHash())}return false}b
||this._trigger("beforeStop",a
,this._uiHash());this.placeholder
[0].parentNode
.removeChild(this.placeholder
[0]);
60 this.helper
[0]!=this.currentItem
[0]&&this.helper
.remove();this.helper
=null;if(!b
){for(e
=0;e
<c
.length
;e
++)c
[e
].call(this,a
);this._trigger("stop",a
,this._uiHash())}this.fromOutside
=false;return true},_trigger:function(){d
.Widget
.prototype._trigger
.apply(this,arguments
)===false&&this.cancel()},_uiHash:function(a
){var b
=a
||this;return{helper
:b
.helper
,placeholder
:b
.placeholder
||d([]),position
:b
.position
,originalPosition
:b
.originalPosition
,offset
:b
.positionAbs
,item
:b
.currentItem
,sender
:a
?a
.element
:null}}});
61 d
.extend(d
.ui
.sortable
,{version
:"1.8.7"})})(jQuery
);