// jQuery List DragSort v0.5.1 // License: http://dragsort.codeplex.com/license !function(a){a.fn.dragsort=function(b){var c,d,e,f,g;return"destroy"==b?(c=a(this.selector).length?a(this.selector):a(this),c.trigger("dragsort-uninit"),void 0):(d=a.extend({},a.fn.dragsort.defaults,b),e=[],f=null,g=null,this.each(function(b,c){a(c).is("table")&&1==a(c).children().size()&&a(c).children().is("tbody")&&(c=a(c).children().get(0));var h={draggedItem:null,placeHolderItem:null,pos:null,offset:null,offsetLimit:null,scroll:null,container:c,init:function(){var c=0==a(this.container).children().size()?"li":a(this.container).children(":first").get(0).tagName.toLowerCase();""==d.itemSelector&&(d.itemSelector=c),""==d.dragSelector&&(d.dragSelector=c),""==d.placeHolderTemplate&&(d.placeHolderTemplate="<"+c+"> "+c+">"),a(this.container).attr("data-listidx",b).mousedown(this.grabItem).bind("dragsort-uninit",this.uninit),this.styleDragHandlers(!0)},uninit:function(){var b=e[a(this).attr("data-listidx")];a(b.container).unbind("mousedown",b.grabItem).unbind("dragsort-uninit"),b.styleDragHandlers(!1)},getItems:function(){return a(this.container).children(d.itemSelector)},styleDragHandlers:function(b){this.getItems().map(function(){return a(this).is(d.dragSelector)?this:a(this).find(d.dragSelector).get()}).css("cursor",b?"pointer":"")},grabItem:function(b){var c,f,g,h;if(!(1!=b.which||a(b.target).is(d.dragSelectorExclude)||a(b.target).closest(d.dragSelectorExclude).size()>0||0==a(b.target).closest(d.itemSelector).size())){for(b.preventDefault(),c=b.target;!a(c).is(d.dragSelector);){if(c==this)return;c=c.parentNode}a(c).attr("data-cursor",a(c).css("cursor")),a(c).css("cursor","move"),f=e[a(this).attr("data-listidx")],g=this,h=function(){f.dragStart.call(g,b),a(f.container).unbind("mousemove",h)},a(f.container).mousemove(h).mouseup(function(){a(f.container).unbind("mousemove",h),a(c).css("cursor",a(c).attr("data-cursor"))})}},dragStart:function(b){var c,g,h,i,j,k,l;null!=f&&null!=f.draggedItem&&f.dropItem(),f=e[a(this).attr("data-listidx")],f.draggedItem=a(b.target).closest(d.itemSelector),f.draggedItem.attr("data-origpos",a(this).attr("data-listidx")+"-"+f.getItems().index(f.draggedItem)),c=parseInt(f.draggedItem.css("marginTop")),g=parseInt(f.draggedItem.css("marginLeft")),f.offset=f.draggedItem.offset(),f.offset.top=b.pageY-f.offset.top+(isNaN(c)?0:c)-1,f.offset.left=b.pageX-f.offset.left+(isNaN(g)?0:g)-1,d.dragBetween||(h=0==a(f.container).outerHeight()?Math.max(1,Math.round(.5+f.getItems().size()*f.draggedItem.outerWidth()/a(f.container).outerWidth()))*f.draggedItem.outerHeight():a(f.container).outerHeight(),f.offsetLimit=a(f.container).offset(),f.offsetLimit.right=f.offsetLimit.left+a(f.container).outerWidth()-f.draggedItem.outerWidth(),f.offsetLimit.bottom=f.offsetLimit.top+h-f.draggedItem.outerHeight()),i=f.draggedItem.height(),j=f.draggedItem.width(),"tr"==d.itemSelector?(f.draggedItem.children().each(function(){a(this).width(a(this).width())}),f.placeHolderItem=f.draggedItem.clone().attr("data-placeholder",!0),f.draggedItem.after(f.placeHolderItem),f.placeHolderItem.children().each(function(){a(this).css({borderWidth:0,width:a(this).width()+1,height:a(this).height()+1}).html(" ")})):(f.draggedItem.after(d.placeHolderTemplate),f.placeHolderItem=f.draggedItem.next().css({height:i,width:j}).attr("data-placeholder",!0)),"td"==d.itemSelector&&(k=f.draggedItem.closest("table").get(0),a("