(function($){$.extend($.expr[":"],{droppable:"(' '+a.className+' ').indexOf(' ui-droppable ')"});
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-droppable")) jQuery.data(this, "ui-droppable")["'+cur+'"](a); }); }');
$.fn["droppable"+cur.substr(0,1).toUpperCase()+cur.substr(1)]=f
}$.fn.droppableInstance=function(){if($(this[0]).is(".ui-droppable")){return $.data(this[0],"ui-droppable")
}return false
};
$.fn.droppable=function(o){return this.each(function(){new $.ui.droppable(this,o)
})
};
$.ui.droppable=function(el,o){if(!o){var o={}
}this.element=el;
if($.browser.msie){el.droppable=1
}$.data(el,"ui-droppable",this);
this.options={};
$.extend(this.options,o);
var accept=o.accept;
$.extend(this.options,{accept:o.accept&&o.accept.constructor==Function?o.accept:function(d){return $(d).is(accept)
},tolerance:o.tolerance||"intersect"});
o=this.options;
var self=this;
this.mouseBindings=[function(e){return self.move.apply(self,[e])
},function(e){return self.drop.apply(self,[e])
}];
$(this.element).bind("mousemove",this.mouseBindings[0]);
$(this.element).bind("mouseup",this.mouseBindings[1]);
$.ui.ddmanager.droppables.push({item:this,over:0,out:1});
$(this.element).addClass("ui-droppable")
};
$.extend($.ui.droppable.prototype,{plugins:{},prepareCallbackObj:function(c){return{draggable:c,droppable:this,element:c.element,helper:c.helper,options:this.options}
},destroy:function(){$(this.element).removeClass("ui-droppable").removeClass("ui-droppable-disabled");
$(this.element).unbind("mousemove",this.mouseBindings[0]);
$(this.element).unbind("mouseup",this.mouseBindings[1]);
for(var i=0;
i<$.ui.ddmanager.droppables.length;
i++){if($.ui.ddmanager.droppables[i].item==this){$.ui.ddmanager.droppables.splice(i,1)
}}},enable:function(){$(this.element).removeClass("ui-droppable-disabled");
this.disabled=false
},disable:function(){$(this.element).addClass("ui-droppable-disabled");
this.disabled=true
},move:function(e){if(!$.ui.ddmanager.current){return
}var o=this.options;
var c=$.ui.ddmanager.current;
var findCurrentTarget=function(e){if(e.currentTarget){return e.currentTarget
}var el=e.srcElement;
do{if(el.droppable){return el
}el=el.parentNode
}while(el)
};
if(c&&o.accept(c.element)){c.currentTarget=findCurrentTarget(e)
}c.drag.apply(c,[e]);
e.stopPropagation?e.stopPropagation():e.cancelBubble=true
},over:function(e){var c=$.ui.ddmanager.current;
if(!c||c.element==this.element){return
}var o=this.options;
if(o.accept(c.element)){$.ui.plugin.call(this,"over",[e,this.prepareCallbackObj(c)]);
$(this.element).triggerHandler("dropover",[e,this.prepareCallbackObj(c)],o.over)
}},out:function(e){var c=$.ui.ddmanager.current;
if(!c||c.element==this.element){return
}var o=this.options;
if(o.accept(c.element)){$.ui.plugin.call(this,"out",[e,this.prepareCallbackObj(c)]);
$(this.element).triggerHandler("dropout",[e,this.prepareCallbackObj(c)],o.out)
}},drop:function(e){var c=$.ui.ddmanager.current;
if(!c||c.element==this.element){return
}var o=this.options;
if(o.accept(c.element)){if(o.greedy&&!c.slowMode){if(c.currentTarget==this.element){$.ui.plugin.call(this,"drop",[e,{draggable:c,droppable:this,element:c.element,helper:c.helper}]);
$(this.element).triggerHandler("drop",[e,{draggable:c,droppable:this,element:c.element,helper:c.helper}],o.drop)
}}else{$.ui.plugin.call(this,"drop",[e,this.prepareCallbackObj(c)]);
$(this.element).triggerHandler("drop",[e,this.prepareCallbackObj(c)],o.drop)
}}},activate:function(e){var c=$.ui.ddmanager.current;
$.ui.plugin.call(this,"activate",[e,this.prepareCallbackObj(c)]);
if(c){$(this.element).triggerHandler("dropactivate",[e,this.prepareCallbackObj(c)],this.options.activate)
}},deactivate:function(e){var c=$.ui.ddmanager.current;
$.ui.plugin.call(this,"deactivate",[e,this.prepareCallbackObj(c)]);
if(c){$(this.element).triggerHandler("dropdeactivate",[e,this.prepareCallbackObj(c)],this.options.deactivate)
}}});
$.ui.intersect=function(oDrag,oDrop,toleranceMode){if(!oDrop.offset){return false
}var x1=oDrag.rpos[0]-oDrag.options.cursorAt.left+oDrag.options.margins.left,x2=x1+oDrag.helperSize.width,y1=oDrag.rpos[1]-oDrag.options.cursorAt.top+oDrag.options.margins.top,y2=y1+oDrag.helperSize.height;
var l=oDrop.offset.left,r=l+oDrop.item.element.offsetWidth,t=oDrop.offset.top,b=t+oDrop.item.element.offsetHeight;
switch(toleranceMode){case"fit":return(l<x1&&x2<r&&t<y1&&y2<b);
break;
case"intersect":return(l<x1+(oDrag.helperSize.width/2)&&x2-(oDrag.helperSize.width/2)<r&&t<y1+(oDrag.helperSize.height/2)&&y2-(oDrag.helperSize.height/2)<b);
break;
case"pointer":return(l<oDrag.rpos[0]&&oDrag.rpos[0]<r&&t<oDrag.rpos[1]&&oDrag.rpos[1]<b);
break;
case"touch":return((l<x1&&x1<r&&t<y1&&y1<b)||(l<x1&&x1<r&&t<y2&&y2<b)||(l<x2&&x2<r&&t<y1&&y1<b)||(l<x2&&x2<r&&t<y2&&y2<b));
break;
default:return false;
break
}}
})($);
