
var droppables={dragging:null,dropCandidates:{},drops:{},hoveringOver:null,setMousedown:false,setMousemove:false,setMouseup:false};(function($){var mousedown=function(e){droppables.dropCandidates={};$.each(droppables.drops,function(id){if(!this.element||!this.element.parentNode||!this.element.parentNode.tagName){delete droppables.drops[id];return;}
this.dropZone.size={height:this.dropZone.element.offsetHeight,width:this.dropZone.element.offsetWidth};this.dropZone.position=$(this.dropZone.element).offset();});};var mousemove=function(e){if(!window.isDragging)return;if(!droppables.dragging){droppables.dragging=$.draggable('dragging');$.each(droppables.drops,function(){var el=this.element;var isSelf=false;droppables.dragging.each(function(){if(this.id==el.id)isSelf=true;});if(isSelf)return;if(this.params.accept&&droppables.dragging.not(this.params.accept).size()>0)return;droppables.dropCandidates[this.element.droppableid]=true;});}
$.each(droppables.dropCandidates,function(id){var node=droppables.drops[id];if(e.pageX>node.dropZone.position.left&&e.pageX<node.dropZone.position.left+node.dropZone.size.width&&e.pageY>node.dropZone.position.top&&e.pageY<node.dropZone.position.top+node.dropZone.size.height){if(node.isOver)return;node.isOver=true;droppables.hoveringOver=node;if(node.params.hoverClass)$(node.element).addClass(node.params.hoverClass);if(typeof node.over=='function')node.over(node.element);}else{if(!node.isOver)return;node.isOver=false;if(droppables.hoveringOver==node)droppables.hoveringOver=null;if(node.params.hoverClass)$(node.element).removeClass(node.params.hoverClass);if(typeof node.out=='function')node.out(node.element);}});};var mouseup=function(e){if(typeof droppables=='undefined')return;droppables.dropCandidates={};if(!droppables.hoveringOver){droppables.dragging=null;return;}
if(droppables.hoveringOver.params.hoverClass)
$(droppables.hoveringOver.element).removeClass(droppables.hoveringOver.params.hoverClass);if(typeof droppables.hoveringOver.drop=='function')
droppables.hoveringOver.drop(droppables.hoveringOver.element,droppables.dragging.get());droppables.dragging.hide();droppables.dragging=null;droppables.hoveringOver=null;};var refresh=function(){};$.fn.extend({droppable:function(params){params=params||{};var accept=params.accept;var area=params.area;var drop=params.drop;var hoverClass=params.hoverClass;var out=params.out;var over=params.over;droppables.dropCandidates={};droppables.drops={};this.each(function(){var dropZone=area?$(area,this).get(0):this;if(!this.droppableid)this.droppableid=this.id||Math.floor(((Math.random()*100000000)+100000000));var node={drop:drop,dropZone:{element:dropZone},element:this,isOver:false,params:{accept:accept,hoverClass:hoverClass},out:out,over:over};droppables.drops[this.droppableid]=node;});if(!droppables.setMousedown){$(document.body).mousedown(mousedown);droppables.setMousedown=true;}
if(!droppables.setMousemove){$(document.body).mousemove(mousemove);droppables.setMousemove=true;}
if(!droppables.setMouseup){$(document.body).mouseup(mouseup);droppables.setMouseup=true;}
return this;}});})(jQuery);