(function($){$.extend($.expr[":"],{draggable:"(' '+a.className+' ').indexOf(' ui-draggable ')"});var methods="destroy,enable,disable".split(",");for(var i=0;i<methods.length;i++){var cur=methods[i],f;eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-draggable")) jQuery.data(this, "ui-draggable")["'+cur+'"](a); }); }');$.fn["draggable"+cur.substr(0,1).toUpperCase()+cur.substr(1)]=f}$.fn.draggableInstance=function(){if($(this[0]).is(".ui-draggable")){return $.data(this[0],"ui-draggable")}return false};$.fn.draggable=function(o){return this.each(function(){new $.ui.draggable(this,o)})};$.ui.ddmanager={current:null,droppables:[],prepareOffsets:function(t,e){var dropTop=$.ui.ddmanager.dropTop=[];var dropLeft=$.ui.ddmanager.dropLeft;var m=$.ui.ddmanager.droppables;for(var i=0;i<m.length;i++){if(m[i].item.disabled){continue}m[i].offset=$(m[i].item.element).offset();if(t&&m[i].item.options.accept(t.element)){m[i].item.activate.call(m[i].item,e)}}},fire:function(oDrag,e){var oDrops=$.ui.ddmanager.droppables;var oOvers=$.grep(oDrops,function(oDrop){if(!oDrop.item.disabled&&$.ui.intersect(oDrag,oDrop,oDrop.item.options.tolerance)){oDrop.item.drop.call(oDrop.item,e)}});$.each(oDrops,function(i,oDrop){if(!oDrop.item.disabled&&oDrop.item.options.accept(oDrag.element)){oDrop.out=1;oDrop.over=0;oDrop.item.deactivate.call(oDrop.item,e)}})},update:function(oDrag,e){if(oDrag.options.refreshPositions){$.ui.ddmanager.prepareOffsets()}var oDrops=$.ui.ddmanager.droppables;var oOvers=$.grep(oDrops,function(oDrop){if(oDrop.item.disabled){return false}var isOver=$.ui.intersect(oDrag,oDrop,oDrop.item.options.tolerance);if(!isOver&&oDrop.over==1){oDrop.out=1;oDrop.over=0;oDrop.item.out.call(oDrop.item,e)}return isOver});$.each(oOvers,function(i,oOver){if(oOver.over==0){oOver.out=0;oOver.over=1;oOver.item.over.call(oOver.item,e)}})}};$.ui.draggable=function(el,o){var options={};$.extend(options,o);var self=this;$.extend(options,{_start:function(h,p,c,t,e){self.start.apply(t,[self,e])},_beforeStop:function(h,p,c,t,e){self.stop.apply(t,[self,e])},_drag:function(h,p,c,t,e){self.drag.apply(t,[self,e])},startCondition:function(e){return !(e.target.className.indexOf("ui-resizable-handle")!=-1||self.disabled)}});$.data(el,"ui-draggable",this);if(options.ghosting==true){options.helper="clone"}$(el).addClass("ui-draggable");this.interaction=new $.ui.mouseInteraction(el,options)};$.extend($.ui.draggable.prototype,{plugins:{},currentTarget:null,lastTarget:null,destroy:function(){$(this.interaction.element).removeClass("ui-draggable").removeClass("ui-draggable-disabled");this.interaction.destroy()},enable:function(){$(this.interaction.element).removeClass("ui-draggable-disabled");this.disabled=false},disable:function(){$(this.interaction.element).addClass("ui-draggable-disabled");this.disabled=true},prepareCallbackObj:function(self){return{helper:self.helper,position:{left:self.pos[0],top:self.pos[1]},offset:self.options.cursorAt,draggable:self,options:self.options}},start:function(that,e){var o=this.options;$.ui.ddmanager.current=this;$.ui.plugin.call(that,"start",[e,that.prepareCallbackObj(this)]);$(this.element).triggerHandler("dragstart",[e,that.prepareCallbackObj(this)],o.start);if(this.slowMode&&$.ui.droppable&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,e)}return false},stop:function(that,e){var o=this.options;$.ui.plugin.call(that,"stop",[e,that.prepareCallbackObj(this)]);$(this.element).triggerHandler("dragstop",[e,that.prepareCallbackObj(this)],o.stop);if(this.slowMode&&$.ui.droppable&&!o.dropBehaviour){$.ui.ddmanager.fire(this,e)}$.ui.ddmanager.current=null;$.ui.ddmanager.last=this;return false},drag:function(that,e){var o=this.options;$.ui.ddmanager.update(this,e);this.pos=[this.pos[0]-o.cursorAt.left,this.pos[1]-o.cursorAt.top];$.ui.plugin.call(that,"drag",[e,that.prepareCallbackObj(this)]);var nv=$(this.element).triggerHandler("drag",[e,that.prepareCallbackObj(this)],o.drag);var nl=(nv&&nv.left)?nv.left:this.pos[0];var nt=(nv&&nv.top)?nv.top:this.pos[1];$(this.helper).css("left",nl+"px").css("top",nt+"px");return false}})})($);
