(function(l,u){function w(a,c){for(var b=a.length;b;){var e=a[--b];if(e.identifier==c)return e}return!1}function x(a,c,b,e){b.xS=parseInt(c.clientX,10);b.yS=parseInt(c.clientY,10);b.dragging=!0;b.$liveElement=e;if(Aida.is(c.identifier))b.identifier=c.identifier;b.onStart.call(e,a);m.push(b)}var m=[],v=!1,h={},y=0;AidaEvent.add(u,"mousemove",function(a){m.length&&m.each(function(c){if(!c.disabled){var b=a.event;if(b.changedTouches&&(b=w(b.changedTouches,c.identifier),!b))return;var e=parseInt(b.clientX,
10),d=parseInt(b.clientY,10),b=e-c.xS,i=d-c.yS;c.xS=e;c.yS=d;var d=c.xO,f,e=c.yO;if(d)f=c.xO+b,0>d&&0<=f||0<d&&0>=f?(b=f,c.xO=0):(b=0,c.xO=f);if(e)d=c.yO+i,0>e&&0<=d||0<e&&0>=d?(i=d,c.yO=0):(i=0,c.yO=d);e=Math.sqrt(b*b+i*i);b=c.onMove.call(c.$liveElement,a,b,i,e)||[0,0];c.xO+=b[0];c.yO+=b[1]}})});AidaEvent.add(u,"mouseup",function(a){m.length&&m.each(function(c,b){if(!c.disabled){var e=a.event;if(e.changedTouches&&(e=w(e.changedTouches,c.identifier),!e))return;c.dragging=!1;c.xO=0;c.yO=0;c.onFinish.call(c.$liveElement,
a);delete m[b]}});return a.stop()});l.AidaDraggable=function(a){var c=this,b=I(a.target);this.yO=this.xO=this.yS=this.xS=0;this.dragging=!1;this.onStart=a.onStart||Function.empty;this.onMove=a.onMove||Function.empty;this.onFinish=a.onFinish||Function.empty;this.disabled=!1;this.$element=b;this.identifier="drag_uid_"+ ++y;var e=function(b){if(!c.disabled){var a=b.event;if(a.changedTouches)for(var a=a.changedTouches,e=a.length;e;){var h=a[--e];x(b,h,c,this)}else x(b,a,c,this)}};a.selector?e=AidaEvent.addLive(b,
a.selector,"mousedown",e):(AidaEvent.add(b,"mousedown",e),b.ajDisableSelect());this.destroy=function(){AidaEvent.remove(b,"mousedown",e);Object.destroy(this);b.ajEnableSelect()}};AidaEvent.add(u,"mousemove",function(a){if(v){var c=a.mousePosition(),b,e,d;for(b in h)if(d=h[b],e=d.$element,e.ajAt(c.left,c.top))d.focus?d.onFocus.call(d,a,e):(d.onFocusIn.call(d,a,e),d.focus=!0);else if(d.focus)d.onFocusOut.call(d,a,e),d.focus=!1}});l.AidaDroppable=function(a){var c=I(a.target),b=this,e;this.onDragStart=
a.onDragStart||a.onStart||Function.empty;this.onDrag=a.onDrag||a.onMove||Function.empty;this.onDragEnd=a.onDragEnd||a.onFinish||Function.empty;this.dragImage=a.dragImage;c.ajDisableSelect();this.onDrop=a.onDrop||Function.empty;var d=a.groups;"string"==typeof d&&(d=d.split(/[;,\s]+/));this.groups=d||[];d=null;this.drag=new AidaDraggable({target:c,selector:a.selector,onStart:function(a){b.$element=this;if(b.dragImage){if(Aida.isElement(b.dragImage))b.$ghost=b.dragImage.ajClone(),b.$ghost.id="";else if("function"==
typeof b.dragImage)b.$ghost=b.dragImage.call(b);e=a.mousePosition();b.$ghost.ajCss({position:"absolute",left:e.left+"px",top:e.top+"px"})}else{b.$ghost=this.ajClone();b.$ghost.ajCssClone(this);b.$ghost.id="";var c=this.ajSize();e=this.ajPosition();b.$ghost.ajCss({position:"absolute",left:e.left+"px",top:e.top+"px",width:c.width+"px",height:c.height+"px"})}b.$ghost.ajAddClass("drag-ghost");AidaViewport.getAppsLayer().ajAppend(b.$ghost);v=!0;b.onDragStart.call(b,a,b.$element);b.dragStart(a);a.stop()},
onMove:function(a,c,e){var d=b.$ghost.ajCss(["left","top"]);b.$ghost.ajCss({left:parseInt(d.left,10)+c+"px",top:parseInt(d.top,10)+e+"px"});b.onDrag.call(b,a,b.$element);a.stop()},onFinish:function(a){var c=b.drop(a);c?(b.onDrop.call(this,a,c),b.$ghost.ajRemove(),b.$ghost=null):b.$ghost.ajMorph({css:{left:e.left+"px",top:e.top+"px"},onFinish:function(){b.$ghost.ajRemove();b.$ghost=null}});v=!1;b.onDragEnd.call(b,a);b.dragEnd()}})};l.AidaDroppable.prototype={drop:function(a){var c=a.mousePosition(),
b,e,d;for(b in h)if(d=h[b],e=d.$element,e.ajAt(c.left,c.top)){if(d.focus)d.onFocusOut.call(d,a,this),d.focus=!1;if(d.groups.intersect(this.groups).length)return d.onDrop.call(d,a,this),e}return!1},dragStart:function(a){var c,b;for(c in h)b=h[c],b.groups.intersect(this.groups).length&&b.onDragStart.call(b,a,this)},dragEnd:function(a){var c,b;for(c in h)b=h[c],b.groups.intersect(this.groups).length&&b.onDragEnd.call(b,a,this)}};l.AidaDropBox=function(a){var c=I(a.target),b=c.ajId();this.$element=c;
this.onFocus=a.onFocus||Function.empty;this.onFocusIn=a.onFocusIn||Function.empty;this.onFocusOut=a.onFocusOut||Function.empty;this.onDrop=a.onDrop||Function.empty;this.onDragStart=a.onDragStart||Function.empty;this.onDragEnd=a.onDragEnd||Function.empty;a=a.groups;"string"==typeof a&&(a=a.split(/[;,\s]+/));this.groups=a||[];this.id=b;this.disabled=this.focus=!1;h["dropbox "+b]=this};l.AidaSortable=function(a){this.$target=I(a.target);this.itemsSelector=a.itemsSelector||".sortable";this.handleSelector=
a.handleSelector||"";this.containersSelector=a.containersSelector;this.disabled=!1;this.items=[];this.containers=[];this.lockX=a.lockX;this.lockY=a.lockY;this.placeholder=a.placeholder;this.onStart=a.onStart||Function.empty;this.onMove=a.onMove||Function.empty;this.onFinish=a.onFinish||Function.empty;this.onChange=a.onChange||Function.empty;var c=this;if(a.containers)a=a.containers,a instanceof Array||(a=[a]),this.containers=a;this.draggable=new AidaDraggable({target:this.$target,selector:this.itemsSelector+
" "+this.handleSelector,onStart:function(b){if(!c.disabled){c.items=$(c.itemsSelector,c.$target);if(c.containersSelector)c.containers=$(c.containersSelector);var a=this.ajParent(c.itemsSelector),d=a.ajParent();this.ajData("sortable-item",a);["relative","absolute","fixed"].has(d.ajCssGet("position"))||d.ajCssSet("position","relative");this.ajData("sortable-parent-z",d.ajCssGet("zIndex"));d.ajCssSet("zIndex","30");a.ajPosition();var i=a.ajRealWidth(),f=a.ajClone();f.id="";f.ajCssClone(a);f.ajCss({position:"absolute",
left:a.offsetLeft,top:a.offsetTop,width:i,margin:0});f.id&&(f.id+="_sort_ghost");f.ajAddClass("sort-ghost");d.ajAppend(f);a.ajCssSet("visibility","hidden");this.ajData("sortable-ghost",f);c.placeholder&&(d=a.ajSize(),d=N([a.nodeName,{className:"sort-placeholder",style:{position:"absolute",left:a.offsetLeft,top:a.offsetTop,width:d.width,height:d.height,border:"none",margin:0,padding:0}},["div",{className:"sort-placeholder-cnt"}]]),a.ajAppendAfter(d),this.ajData("sortable-placeholder",d));c.onStart.apply(a,
arguments);b.stop()}},onMove:function(a,e,d){if(!c.disabled){var i=a.mousePosition(),f,h=Infinity,l,m,j=this.ajData("sortable-item");c.items.each(function(a){var b=a.ajPosition(),c=a.ajSize(),d=i.left-(b.left+c.width/2),b=i.top-(b.top+c.height/2);dist=Math.sqrt(d*d+b*b);dist<h&&(f=a,l=d,m=b,h=dist)});var p=Infinity,q=-Infinity,r=Infinity,s=-Infinity,t;c.containers.each(function(a){var b=a.ajPosition(),d=a.ajSize(),e=i.left-(b.left+d.width/2),g=i.top-(b.top+d.height/2);dist=Math.sqrt(e*e+g*g);dist<
h&&!c.items.intersect(a.ajChilds()).length&&(j.ajRemove(!0),a.ajAppend(j),f=null,t=!0);p=Math.min(p,b.left);q=Math.max(q,b.left+d.width);r=Math.min(r,b.top);s=Math.max(s,b.top+d.height)});if(f&&f!=j){var n=Math.abs(m)-Math.abs(l),n=0>=n&&0>m||0<n&&0>l?f!=j.nextSibling?"ajAppendBefore":"ajAppendAfter":f!=j.previousSibling?"ajAppendAfter":"ajAppendBefore";j.ajRemove(!0);f[n](j);t=!0}var n=[0,0],o=this.ajData("sortable-ghost");if(o){var g=o.ajParent().ajPosition(),k=o.ajSize(),p=p-g.left,q=q-(g.left+
k.width),r=r-g.top,s=s-(g.top+k.height);Infinity==p&&(p=-Infinity);-Infinity==q&&(q=Infinity);Infinity==r&&(r=-Infinity);-Infinity==s&&(s=Infinity);g=parseFloat(o.ajCssGet("left"),10);k=parseFloat(o.ajCssGet("top"),10);c.lockX||(g+=e,g<p?(n[0]=g-p,g=p):g>q&&(n[0]=g-q,g=q));c.lockY||(k+=d,k<r?(n[1]=k-r,k=r):k>s&&(n[1]=k-s,k=s));o.ajCss({left:g,top:k})}if((o=this.ajData("sortable-placeholder"))&&t)o.ajRemove(!0),j.ajAppendAfter(o),g=j.ajSize(),o.ajCss({width:g.width,height:g.height,top:j.offsetTop,
left:j.offsetLeft});t&&c.onChange.apply(j,arguments);c.onMove.apply(j,arguments);a.stop();return n}},onFinish:function(a){if(!c.disabled){var e=this.ajData("sortable-item");e.ajCssSet("visibility","");var d=this.ajData("sortable-ghost");d&&(d.ajParent().ajCssSet("zIndex",this.ajData("sortable-parent-z")),d.ajRemove());(d=this.ajData("sortable-placeholder"))&&d.ajRemove();c.onFinish.apply(e,arguments);a.stop()}}})};l.AidaSortable.prototype={enable:function(){this.disabled=!1},disable:function(){this.disabled=
!0}}})(window,document);

