(function(a){(function(b){b.fn.shDraggable=function(l,q){var w=null;var e=null;var o=null;var k=false;var i={x:0,y:0};var j=function(A,B){var z=g(A,B,true);if(h(z,B)==null){v(z,B);A.delegate(B,"mousedown",m);b(document).mouseup(p)}};var d=function(B,C){var A=g(B,C,false);if(A){var z=h(A,C);if(z){B.undelegate(C,"mousedown",z.onMouseDown);b(document).unbind("mouseup",z.onMouseUp);y(A,C)}}};var g=function(B,z){var A=B.data("shDraggable");if(!A&&z){A={selectors:[],delegates:[]};B.data("shDraggable",A)}return A};var h=function(z,B){var A=b.inArray(B,z.selectors);return(A<0)?null:z.delegates[A]};var v=function(z,A){z.selectors.push(A);z.delegates.push({onMouseDown:m,onMouseUp:p})};var y=function(z,B){var A=b.inArray(B,z.selectors);if(A>=0){z.selectors.splice(A,1);z.delegates.splice(A,1)}};var m=function(z){if(z.which!=1){return true}w=b(this);i.x=z.pageX;i.y=z.pageY;b(document).mousemove(o=n);return r(w)};var n=function(z){if(!k){if(Math.abs(i.x-z.pageX)<2&&Math.abs(i.y-z.pageY)<2){return}var A=t(w[0],z);if(A){x();return}}if(!e){e=c(w,z)}s(w[0],e[0],z);e.css({display:"block",left:(z.pageX+10)+"px",top:(z.pageY+10)+"px"});k=true};var p=function(z){if(!w){return}if(k){u(w[0],z)}x()};var t=function(B,A){if(q&&(typeof q.onDraggingStarted==="function")){var z={sourceElement:B,originalEvent:A,cancelled:false};q.onDraggingStarted(z);return z.cancelled}return false};var s=function(B,z,A){if(q){if(typeof q.onMouseMove==="function"){q.onMouseMove({sourceElement:B,originalEvent:A,dragElement:z,hoveringElement:A.target})}}};var u=function(A,z){if(q){if(typeof q.onDrop==="function"){q.onDrop({sourceElement:A,originalEvent:z,destinationElement:z.target})}}};var x=function(){if(o){b(document).unbind("mousemove",o)}if(w){f(w);w=null}if(e){e.remove();e=null}k=false};var r=function(z){document.body.focus();document.onselectstart=function(){return false};if(z){z.ondragstart=function(){return false}}return false};var f=function(z){document.onselectstart=null;if(z){z.ondragstart=null}};var c=function(A,B){var z=b('<div class="'+q.draggingCloneCssClass+'">').append(A.clone()).css({"z-index":10000,position:"absolute",display:"none",left:(B.pageX+10)+"px",top:(B.pageY+10)+"px"});b(document.body).append(z);return z};if(q=="destroy"){d(this,l)}else{q=b.extend(false,{},q);q.draggingCloneCssClass=q.draggingCloneCssClass?"dragging-clone "+q.draggingCloneCssClass:"dragging-clone";j(this,l)}return this}})(a)})($smarthouse.j);
