(function(a){function b(b,c){var d=a.browser.safari&&a.browser.version<522;if(b.contains&&!d){return b.contains(c)}if(b.compareDocumentPosition)return!!(b.compareDocumentPosition(c)&16);while(c=c.parentNode)if(c==b)return true;return false}a.widget("ui.sortable",a.extend({},a.ui.mouse,{_init:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},plugins:{},ui:function(b){return{helper:(b||this)["helper"],placeholder:(b||this)["placeholder"]||a([]),position:(b||this)["position"],absolutePosition:(b||this)["positionAbs"],options:this.options,element:this.element,item:(b||this)["currentItem"],sender:b?b.element:null}},_propagate:function(b,c,d,e){a.ui.plugin.call(this,b,[c,this.ui(d)]);if(!e)this.element.triggerHandler(b=="sort"?b:"sort"+b,[c,this.ui(d)],this.options[b])},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected);var d=[];b=b||{};a(c).each(function(){var c=(a(this.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);if(c)d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))});return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected);var d=[];c.each(function(){d.push(a(this).attr(b.attr||"id"))});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height;var f=a.left,g=f+a.width,h=a.top,i=h+a.height;var j=this.offset.click.top,k=this.offset.click.left;var l=d+j>h&&d+j<i&&b+k>f&&b+k<g;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance=="guess"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]){return l}else{return f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i}},_intersectsWithEdge:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height;var f=a.left,g=f+a.width,h=a.top,i=h+a.height;var j=this.offset.click.top,k=this.offset.click.left;var l=d+j>h&&d+j<i&&b+k>f&&b+k<g;if(this.options.tolerance=="pointer"||this.options.tolerance=="guess"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]){if(!l)return false;if(this.floating){if(b+k>f&&b+k<f+a.width/2)return 2;if(b+k>f+a.width/2&&b+k<g)return 1}else{var m=a.height;var n=d-this.updateOriginalPosition.top<0?2:1;if(n==1&&d+j<h+m/2){return 2}else if(n==2&&d+j>h+m/2){return 1}}}else{if(!(f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i))return false;if(this.floating){if(c>f&&b<f)return 2;if(b<g&&c>g)return 1}else{if(e>h&&d<h)return 1;if(d<i&&e>i)return 2}}return false},refresh:function(){this._refreshItems();this.refreshPositions()},_getItemsAsjQuery:function(b){var c=this;var d=[];var e=[];if(this.options.connectWith&&b){for(var f=this.options.connectWith.length-1;f>=0;f--){var g=a(this.options.connectWith[f]);for(var h=g.length-1;h>=0;h--){var i=a.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){e.push([a.isFunction(i.options.items)?i.options.items.call(i.element):a(i.options.items,i.element).not(".ui-sortable-helper"),i])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var f=e.length-1;f>=0;f--){e[f][0].each(function(){d.push(this)})}return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data(sortable-item)");for(var b=0;b<this.items.length;b++){for(var c=0;c<a.length;c++){if(a[c]==this.items[b].item[0])this.items.splice(b,1)}}},_refreshItems:function(){this.items=[];this.containers=[this];var b=this.items;var c=this;var d=[[a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element),this]];if(this.options.connectWith){for(var e=this.options.connectWith.length-1;e>=0;e--){var f=a(this.options.connectWith[e]);for(var g=f.length-1;g>=0;g--){var h=a.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled){d.push([a.isFunction(h.options.items)?h.options.items.call(h.element):a(h.options.items,h.element),h]);this.containers.push(h)}}}}for(var e=d.length-1;e>=0;e--){d[e][0].each(function(){a.data(this,"sortable-item",d[e][1]);b.push({item:a(this),instance:d[e][1],width:0,height:0,left:0,top:0})})}},refreshPositions:function(b){if(this.offsetParent){var c=this.offsetParent.offset();this.offset.parent={top:c.top+this.offsetParentBorders.top,left:c.left+this.offsetParentBorders.left}}for(var d=this.items.length-1;d>=0;d--){if(this.items[d].instance!=this.currentContainer&&this.currentContainer&&this.items[d].item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,this.items[d].item):this.items[d].item;if(!b){this.items[d].width=e[0].offsetWidth;this.items[d].height=e[0].offsetHeight}var f=e.offset();this.items[d].left=f.left;this.items[d].top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},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")},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||"ui-sortable-placeholder")[0];if(!e){b.style.visibility="hidden";document.body.appendChild(b);b.innerHTML=c.currentItem[0].innerHTML;document.body.removeChild(b)}return b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;if(!b.height()){b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10))}if(!b.width()){b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem));c.currentItem.parent()[0].appendChild(c.placeholder[0]);c.placeholder[0].parentNode.insertBefore(c.placeholder[0],c.currentItem[0]);d.placeholder.update(c,c.placeholder)},_contactContainers:function(a){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var d=1e4;var e=null;var f=this.positionAbs[this.containers[c].floating?"left":"top"];for(var g=this.items.length-1;g>=0;g--){if(!b(this.containers[c].element[0],this.items[g].item[0]))continue;var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<d){d=Math.abs(h-f);e=this.items[g]}}if(!e&&!this.options.dropOnEmpty)continue;this.currentContainer=this.containers[c];e?this.options.sortIndicator.call(this,a,e,null,true):this.options.sortIndicator.call(this,a,null,this.containers[c].element,true);this._propagate("change",a);this.containers[c]._propagate("change",a,this);this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[c]._propagate("over",a,this);this.containers[c].containerCache.over=1}}else{if(this.containers[c].containerCache.over){this.containers[c]._propagate("out",a,this);this.containers[c].containerCache.over=0}}}},_mouseCapture:function(b,c){if(this.options.disabled||this.options.type=="static")return false;this._refreshItems();var d=null,e=this,f=a(b.target).parents().each(function(){if(a.data(this,"sortable-item")==e){d=a(this);return false}});if(a.data(b.target,"sortable-item")==e)d=a(b.target);if(!d)return false;if(this.options.handle&&!c){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==b.target)g=true});if(!g)return false}this.currentItem=d;this._removeCurrentsFromItems();return true},createHelper:function(b){var c=this.options;var d=typeof c.helper=="function"?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="original"?this.currentItem:this.currentItem.clone();if(!d.parents("body").length)a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]);return d},_mouseStart:function(b,c,d){var e=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this.createHelper(b);this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0};this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.offset.click={left:b.pageX-this.offset.left,top:b.pageY-this.offset.top};this.offsetParent=this.helper.offsetParent();var f=this.offsetParent.offset();this.offsetParentBorders={top:parseInt(this.offsetParent.css("borderTopWidth"),10)||0,left:parseInt(this.offsetParent.css("borderLeftWidth"),10)||0};this.offset.parent={top:f.top+this.offsetParentBorders.top,left:f.left+this.offsetParentBorders.left};this.updateOriginalPosition=this.originalPosition=this._generatePosition(b);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};if(e.helper=="original"){this._storedCSS={position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left"),clear:this.currentItem.css("clear")}}else{this.currentItem.hide()}this.helper.css({position:"absolute",clear:"both"}).addClass("ui-sortable-helper");this._createPlaceholder();this._propagate("start",b);if(!this._preserveHelperProportions)this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};if(e.cursorAt){if(e.cursorAt.left!=undefined)this.offset.click.left=e.cursorAt.left;if(e.cursorAt.right!=undefined)this.offset.click.left=this.helperProportions.width-e.cursorAt.right;if(e.cursorAt.top!=undefined)this.offset.click.top=e.cursorAt.top;if(e.cursorAt.bottom!=undefined)this.offset.click.top=this.helperProportions.height-e.cursorAt.bottom}if(e.containment){if(e.containment=="parent")e.containment=this.helper[0].parentNode;if(e.containment=="document"||e.containment=="window")this.containment=[0-this.offset.parent.left,0-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)];if(!/^(document|window|parent)$/.test(e.containment)){var g=a(e.containment)[0];var h=a(e.containment).offset();var i=a(g).css("overflow")!="hidden";this.containment=[h.left+(parseInt(a(g).css("borderLeftWidth"),10)||0)-this.offset.parent.left,h.top+(parseInt(a(g).css("borderTopWidth"),10)||0)-this.offset.parent.top,h.left+(i?Math.max(g.scrollWidth,g.offsetWidth):g.offsetWidth)-(parseInt(a(g).css("borderLeftWidth"),10)||0)-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.currentItem.css("marginRight"),10)||0),h.top+(i?Math.max(g.scrollHeight,g.offsetHeight):g.offsetHeight)-(parseInt(a(g).css("borderTopWidth"),10)||0)-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.currentItem.css("marginBottom"),10)||0)]}}if(!d){for(var j=this.containers.length-1;j>=0;j--){this.containers[j]._propagate("activate",b,this)}}if(a.ui.ddmanager)a.ui.ddmanager.current=this;if(a.ui.ddmanager&&!e.dropBehaviour)a.ui.ddmanager.prepareOffsets(this,b);this.dragging=true;this._mouseDrag(b);return true},_convertPositionTo:function(a,b){if(!b)b=this.position;var c=a=="absolute"?1:-1;return{top:b.top+this.offset.parent.top*c-(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)*c+this.margins.top*c,left:b.left+this.offset.parent.left*c-(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft)*c+this.margins.left*c}},_generatePosition:function(a){var b=this.options;var c={top:a.pageY-this.offset.click.top-this.offset.parent.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop),left:a.pageX-this.offset.click.left-this.offset.parent.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft)};if(!this.originalPosition)return c;if(this.containment){if(c.left<this.containment[0])c.left=this.containment[0];if(c.top<this.containment[1])c.top=this.containment[1];if(c.left>this.containment[2])c.left=this.containment[2];if(c.top>this.containment[3])c.top=this.containment[3]}if(b.grid){var d=this.originalPosition.top+Math.round((c.top-this.originalPosition.top)/b.grid[1])*b.grid[1];c.top=this.containment?!(d<this.containment[1]||d>this.containment[3])?d:!(d<this.containment[1])?d-b.grid[1]:d+b.grid[1]:d;var e=this.originalPosition.left+Math.round((c.left-this.originalPosition.left)/b.grid[0])*b.grid[0];c.left=this.containment?!(e<this.containment[0]||e>this.containment[2])?e:!(e<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}return c},_mouseDrag:function(c){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute");a.ui.plugin.call(this,"sort",[c,this.ui()]);this.positionAbs=this._convertPositionTo("absolute");this.helper[0].style.left=this.position.left+"px";this.helper[0].style.top=this.position.top+"px";for(var d=this.items.length-1;d>=0;d--){var e=this._intersectsWithEdge(this.items[d]);if(!e)continue;if(this.items[d].item[0]!=this.currentItem[0]&&this.placeholder[e==1?"next":"prev"]()[0]!=this.items[d].item[0]&&!b(this.placeholder[0],this.items[d].item[0])&&(this.options.type=="semi-dynamic"?!b(this.element[0],this.items[d].item[0]):true)){this.updateOriginalPosition=this._generatePosition(c);this.direction=e==1?"down":"up";this.options.sortIndicator.call(this,c,this.items[d]);this._propagate("change",c);break}}this._contactContainers(c);if(a.ui.ddmanager)a.ui.ddmanager.drag(this,c);this.element.triggerHandler("sort",[c,this.ui()],this.options["sort"]);return false},_rearrange:function(a,b,c,d){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 e=this,f=this.counter;window.setTimeout(function(){if(f==e.counter)e.refreshPositions(!d)},0)},_mouseStop:function(b,c){if(a.ui.ddmanager&&!this.options.dropBehaviour)a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this;var e=d.placeholder.offset();a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else{this._clear(b,c)}return false},_clear:function(a,c){if(!this._noFinalSort)this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.options.helper=="original")this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");else this.currentItem.show();if(this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])this._propagate("update",a,null,c);if(!b(this.element[0],this.currentItem[0])){this._propagate("remove",a,null,c);for(var d=this.containers.length-1;d>=0;d--){if(b(this.containers[d].element[0],this.currentItem[0])){this.containers[d]._propagate("update",a,this,c);this.containers[d]._propagate("receive",a,this,c)}}}for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._propagate("deactivate",a,this,c);if(this.containers[d].containerCache.over){this.containers[d]._propagate("out",a,this);this.containers[d].containerCache.over=0}}this.dragging=false;if(this.cancelHelperRemoval){this._propagate("beforeStop",a,null,c);this._propagate("stop",a,null,c);return false}this._propagate("beforeStop",a,null,c);this.placeholder.remove();if(this.options.helper!="original")this.helper.remove();this.helper=null;this._propagate("stop",a,null,c);return true}}));a.extend(a.ui.sortable,{getter:"serialize toArray",defaults:{helper:"original",tolerance:"guess",distance:1,delay:0,scroll:true,scrollSensitivity:20,scrollSpeed:20,cancel:":input",items:"> *",zIndex:1e3,dropOnEmpty:true,appendTo:"parent",sortIndicator:a.ui.sortable.prototype._rearrange,scope:"default",forcePlaceholderSize:false}});a.ui.plugin.add("sortable","cursor",{start:function(b,c){var d=a("body");if(d.css("cursor"))c.options._cursor=d.css("cursor");d.css("cursor",c.options.cursor)},beforeStop:function(b,c){if(c.options._cursor)a("body").css("cursor",c.options._cursor)}});a.ui.plugin.add("sortable","zIndex",{start:function(a,b){var c=b.helper;if(c.css("zIndex"))b.options._zIndex=c.css("zIndex");c.css("zIndex",b.options.zIndex)},beforeStop:function(b,c){if(c.options._zIndex)a(c.helper).css("zIndex",c.options._zIndex)}});a.ui.plugin.add("sortable","opacity",{start:function(a,b){var c=b.helper;if(c.css("opacity"))b.options._opacity=c.css("opacity");c.css("opacity",b.options.opacity)},beforeStop:function(b,c){if(c.options._opacity)a(c.helper).css("opacity",c.options._opacity)}});a.ui.plugin.add("sortable","scroll",{start:function(b,c){var d=c.options;var e=a(this).data("sortable");e.overflowY=function(b){do{if(/auto|scroll/.test(b.css("overflow"))||/auto|scroll/.test(b.css("overflow-y")))return b;b=b.parent()}while(b[0].parentNode);return a(document)}(e.currentItem);e.overflowX=function(b){do{if(/auto|scroll/.test(b.css("overflow"))||/auto|scroll/.test(b.css("overflow-x")))return b;b=b.parent()}while(b[0].parentNode);return a(document)}(e.currentItem);if(e.overflowY[0]!=document&&e.overflowY[0].tagName!="HTML")e.overflowYOffset=e.overflowY.offset();if(e.overflowX[0]!=document&&e.overflowX[0].tagName!="HTML")e.overflowXOffset=e.overflowX.offset()},sort:function(b,c){var d=c.options;var e=a(this).data("sortable");if(e.overflowY[0]!=document&&e.overflowY[0].tagName!="HTML"){if(e.overflowYOffset.top+e.overflowY[0].offsetHeight-b.pageY<d.scrollSensitivity)e.overflowY[0].scrollTop=e.overflowY[0].scrollTop+d.scrollSpeed;if(b.pageY-e.overflowYOffset.top<d.scrollSensitivity)e.overflowY[0].scrollTop=e.overflowY[0].scrollTop-d.scrollSpeed}else{if(b.pageY-a(document).scrollTop()<d.scrollSensitivity)a(document).scrollTop(a(document).scrollTop()-d.scrollSpeed);if(a(window).height()-(b.pageY-a(document).scrollTop())<d.scrollSensitivity)a(document).scrollTop(a(document).scrollTop()+d.scrollSpeed)}if(e.overflowX[0]!=document&&e.overflowX[0].tagName!="HTML"){if(e.overflowXOffset.left+e.overflowX[0].offsetWidth-b.pageX<d.scrollSensitivity)e.overflowX[0].scrollLeft=e.overflowX[0].scrollLeft+d.scrollSpeed;if(b.pageX-e.overflowXOffset.left<d.scrollSensitivity)e.overflowX[0].scrollLeft=e.overflowX[0].scrollLeft-d.scrollSpeed}else{if(b.pageX-a(document).scrollLeft()<d.scrollSensitivity)a(document).scrollLeft(a(document).scrollLeft()-d.scrollSpeed);if(a(window).width()-(b.pageX-a(document).scrollLeft())<d.scrollSensitivity)a(document).scrollLeft(a(document).scrollLeft()+d.scrollSpeed)}}});a.ui.plugin.add("sortable","axis",{sort:function(b,c){var d=a(this).data("sortable");if(c.options.axis=="y")d.position.left=d.originalPosition.left;if(c.options.axis=="x")d.position.top=d.originalPosition.top}})})(jQuery)
