var DragDrop={firstContainer:null,lastContainer:null,makeListContainer:function(d,g,f,c,e){e=!!e;if(!d.containerType||d.containerType!=g){d.containerType=g;f=!!f?f:"li";if(this.firstContainer==null){this.firstContainer=this.lastContainer=d;d.previousContainer=null;d.nextContainer=null;}else{d.previousContainer=this.lastContainer;d.nextContainer=null;this.lastContainer.nextContainer=d;this.lastContainer=d;}d.onDragOver=new Function();d.onDragOut=new Function();}var a=d.getElementsByTagName(f);for(var b=0;b<a.length;b++){DragDrop.makeItemDragable(a[b],$(a[b]).getElementByClassName(c));}},makeItemDragable:function(a,b){a.bIsDragDrop=true;Drag.makeDraggable(a,b);a.setDragThreshold(5);a.isOutside=false;a.onDragStart=DragDrop.onDragStart;a.onDrag=DragDrop.onDrag;a.onDragEnd=DragDrop.onDragEnd;a.makeAClone=DragDrop.makeAClone;a.addToTempParent=DragDrop.addToTempParent;},resetItem:function(a){a.isOutside=false;a.minMouseX=0;a.maxMouseX=0;a.minMouseY=0;a.maxMouseY=0;a.style.top="0px";a.style.left="0px";a.style.zIndex=a.originalZIndex;$fx(a).setOpacity(100);a.style.position="";},setItemConstraints:function(a,b){if(!!b.customConstraints){b.customConstraints();}if((""+b.minX)!=""){if(b.minX=="minX"){a.minX=Coordinates.northwestOffset(b,true).x+15;}else{a.minX=b.minX+((b.containerType=="sortList")?b.parentNode.scrollLeft:0);}}if((""+b.minY)!=""){if(b.minY=="minY"){a.minY=Coordinates.northwestOffset(b,true).y+5;}else{a.minY=b.minY+((b.containerType=="sortList")?b.parentNode.scrollTop:0);}}if((""+b.maxX)!=""){if(b.maxX=="maxX"){a.maxX=Coordinates.southeastOffset(b,true).x-a.offsetWidth-15;}else{a.maxX=b.maxX;}}if((""+b.maxY)!=""){if(b.maxY=="maxY"){a.maxY=Coordinates.northwestOffset(b,true).y+15;}else{a.maxY=b.maxY;}}},makeAClone:function(){var a=this.cloneNode(true);this.isCloned=1;this.isOutside=true;DragDrop.resetItem(a);this.sourceContainer.insertBefore(a,this.myNextSibling);DragDrop.makeItemDragable(a);prepareSourceList(this.sourceContainer);prepareShortLong($(a));changeForTarget(this);this.parentNode.onRemove(this);this.parentNode.removeChild(this);this.addToTempParent();},addToTempParent:function(){switch(this.sourceContainer.containerType){case"sortList":return false;break;case"sourceList":console.warn("addToTempParent is not generic yet");return false;break;case"sourceListWithTransition":console.warn("addToTempParent is not generic yet");var a=document.getElementById("playList").cloneNode(false);a.id="tempParent";a.appendChild(this);document.getElementsByTagName("body").item(0).appendChild(a);break;default:console.warn("addToTempParent is not generic yet");break;}},onDragStart:function(e,b,c,d){var a=DragDrop.firstContainer;while(a!=null){a.northwest=Coordinates.northwestOffset(a,true);a.southeast=Coordinates.southeastOffset(a,true);a=a.nextContainer;}this.parentNode.onDragOver();this.sourceContainer=this.parentNode;this.myNextSibling=this.nextSibling;this.changed=0;DragDrop.setItemConstraints(this,this.sourceContainer);},onDrag:function(k,b,d,h){if(this.isCloned!=1&&this.sourceContainer.cloneMode){this.makeAClone();}if(this.isOutside){var c=DragDrop.firstContainer;while(c!=null){if(d.inside(c.northwest,c.southeast)&&h.inside(c.northwest,c.southeast)){if(this.sourceContainer.id!=c.id&&c.parentNode.parentNode.style.visibility!="hidden"){c.onDragOver();this.isOutside=false;var g=this.parentNode;g.removeChild(this);c.appendChild(this);c.onAdd(this);g.parentNode.removeChild(g);}break;}c=c.nextContainer;}if(this.isOutside){return;}}else{if(!(d.inside(this.parentNode.northwest,this.parentNode.southeast)&&h.inside(this.parentNode.northwest,this.parentNode.southeast))){this.parentNode.onDragOut();this.isOutside=true;var c=DragDrop.firstContainer;while(c!=null){if(d.inside(c.northwest,c.southeast)&&h.inside(c.northwest,c.southeast)){if(this.sourceContainer.id!=c.id){c.onDragOver();this.isOutside=false;var a=this.parentNode;a.onRemove(this);a.removeChild(this);c.appendChild(this);c.onAdd(this);if(a.id=="tempParent"){a.parentNode.removeChild(a);}break;}}c=c.nextContainer;}if(this.isOutside){switch(this.sourceContainer.containerType){case"sortList":console.log("not going outside a Sortlist!!!");return false;break;default:this.parentNode.onRemove(this);this.addToTempParent();break;}return;}}}var i=this.parentNode;if(i.swap=="horizontal"){var j=this;var e=DragUtils.nextItem(j);while(e!=null&&this.offsetLeft>=e.offsetLeft-2){var j=e;var e=DragUtils.nextItem(j);}if(this!=j){DragUtils.swap(this,e);return;}var j=this;var f=DragUtils.previousItem(j);while(f!=null&&this.offsetLeft<=(f.offsetLeft+f.offsetWidth/2)){var j=f;var f=DragUtils.previousItem(j);}if(this!=j){DragUtils.swap(this,j);return;}}if(i.swap=="vertical"){var j=this;var e=DragUtils.nextItem(j);while(e!=null&&this.offsetTop>=e.offsetTop-2){var j=e;var e=DragUtils.nextItem(j);}if(this!=j){DragUtils.swap(this,e);return;}var j=this;var f=DragUtils.previousItem(j);while(f!=null&&this.offsetTop<=f.offsetTop+2){j=f;f=DragUtils.previousItem(j);}if(this!=j){DragUtils.swap(this,j);return;}}},onDragEnd:function(e,a,b,d){if(this.isOutside){var c=this.parentNode;this.parentNode.removeChild(this);c.parentNode.removeChild(c);return;}this.parentNode.onDragOut();this.style.top="0px";this.style.left="0px";if(rbmWindow&&this.wasDragged){rbmWindow.raiseEvent(this.parentNode,"onDragEnd",this);}DragDrop.setItemConstraints(this,this.parentNode);}};var DragUtils={swap:function(b,a){var c=b.parentNode;c.removeChild(b);c.insertBefore(b,a);},nextItem:function(b){var a=b.nextSibling;while(a!=null){if(a.nodeName==b.nodeName){return a;}a=a.nextSibling;}return null;},previousItem:function(b){var a=b.previousSibling;while(a!=null){if(a.nodeName==b.nodeName){return a;}a=a.previousSibling;}return null;}};
