var Drag={BIG_Z_INDEX:10000,group:null,isDragging:false,makeDraggable:function(e,d,a,f,c,b){e.handle=e;e.handle.group=e;e.dragHolder=!!d?d:e;if(e.dragHolder!==e){e.dragHolder.group=e;}e.dragHolder.style.cursor="move";e.minX=!!a?a:null;e.minY=!!f?f:null;e.maxX=!!c?c:null;e.maxY=!!b?b:null;e.sourceContainer=null;e.myNextSibling=null;e.threshold=0;e.thresholdY=0;e.thresholdX=0;e.onDragStart=new Function();e.onDragEnd=new Function();e.onDrag=new Function();e.setDragHandle=Drag.setDragHandle;e.setDragThreshold=Drag.setDragThreshold;e.setDragThresholdX=Drag.setDragThresholdX;e.setDragThresholdY=Drag.setDragThresholdY;e.constrain=Drag.constrain;e.constrainVertical=Drag.constrainVertical;e.constrainHorizontal=Drag.constrainHorizontal;e.dragHolder.onmousedown=Drag.onMouseDown;},constrainVertical:function(){var a=Coordinates.northwestOffset(this,true);this.minX=a.x;this.maxX=a.x;},constrainHorizontal:function(){var a=Coordinates.northwestOffset(this,true);this.minY=a.y;this.maxY=a.y;},constrain:function(b,a){this.minX=b.x;this.minY=b.y;this.maxX=a.x;this.maxY=a.y;},setDragHandle:function(a){if(a&&a!=null){this.handle=a;}else{this.handle=this;}this.handle.group=this;this.onmousedown=null;this.handle.onmousedown=Drag.onMouseDown;},setDragThreshold:function(a){if(isNaN(parseInt(a))){return;}this.threshold=a;},setDragThresholdX:function(a){if(isNaN(parseInt(a))){return;}this.thresholdX=a;},setDragThresholdY:function(a){if(isNaN(parseInt(a))){return;}this.thresholdY=a;},onMouseDown:function(d){d=Drag.fixEvent(d);Drag.group=this.group;var f=this.group;f.sourceContainer=this.parentNode;f.myNextSibling=this.nextSibling;f.changed=0;var b=d.windowCoordinate;var c=Coordinates.northwestOffset(f,true,0);var g=Coordinates.northwestPosition(f);var a=Coordinates.southeastPosition(f);var e=Coordinates.southeastOffset(f,true);f.originalOpacity=f.style.opacity;f.originalZIndex=f.style.zIndex;f.initialWindowCoordinate=b;f.dragCoordinate=b;f.onDragStart(g,a,c,e);if(f.minX!=null){f.minMouseX=b.x-g.x+f.minX-(g.x==c.x?0:c.x);}if(f.maxX!=null){f.maxMouseX=f.minMouseX+f.maxX-f.minX;}if(f.minY!=null){f.minMouseY=b.y-g.y+f.minY-(g.y==c.y?0:c.y);}if(f.maxY!=null){f.maxMouseY=f.minMouseY+f.maxY-f.minY;}f.mouseMin=new Coordinate(f.minMouseX,f.minMouseY);f.mouseMax=new Coordinate(f.maxMouseX,f.maxMouseY);document.onmousemove=Drag.onMouseMove;document.onmouseup=Drag.onMouseUp;return false;},showStatus:function(b,f,a,c,e,d){window.status="mouse: "+b.toString()+"    NW pos: "+f.toString()+"    SE pos: "+a.toString()+"    NW offset: "+c.toString()+"    SE offset: "+e.toString()+"    minX: "+d.minX;},onMouseMove:function(d){d=Drag.fixEvent(d);var n=Drag.group;var k=d.windowCoordinate;var h=Coordinates.northwestOffset(n,true);var p=Coordinates.northwestPosition(n);var b=Coordinates.southeastPosition(n);var m=Coordinates.southeastOffset(n,true);var f=p.myDistance(k);if(!Drag.isDragging){if(n.threshold>0){var c=n.initialWindowCoordinate.distance(k);if(c<n.threshold){return true;}}else{if(n.thresholdY>0){var g=Math.abs(n.initialWindowCoordinate.y-k.y);if(g<n.thresholdY){return true;}}else{if(n.thresholdX>0){var i=Math.abs(n.initialWindowCoordinate.x-k.x);if(i<n.thresholdX){return true;}}}}Drag.isDragging=true;n.wasDragged=true;if(!n.positionIsAbsolute){n.style.position="relative";}n.style.zIndex=Drag.BIG_Z_INDEX;if(browserDetect.browser!="Internet Explorer"){$fx(n).setOpacity(65);}}var l=p;var o=k.constrain(n.mouseMin,n.mouseMax);p=p.plus(o.minus(n.dragCoordinate));p.reposition(n);n.dragCoordinate=o;var a=Coordinates.northwestOffset(n,true);n.onDrag(p,b,h,m);var j=Coordinates.northwestOffset(n,true);if(!a.equals(j)){var e=a.minus(j);p=Coordinates.northwestPosition(n).plus(e);p.reposition(n);}return false;},onMouseUp:function(d){d=Drag.fixEvent(d);var f=Drag.group;var b=d.windowCoordinate;var c=Coordinates.northwestOffset(f,true);var g=Coordinates.northwestPosition(f);var a=Coordinates.southeastPosition(f);var e=Coordinates.southeastOffset(f,true);document.onmousemove=null;document.onmouseup=null;f.onDragEnd(g,a,c,e);if(Drag.isDragging){f.style.zIndex=f.originalZIndex;if(browserDetect.browser!="Internet Explorer"){$fx(f).setOpacity(100);}f.style.position="";}else{if(f.bIsDragDrop){console.warn("Drag.onMouseUp is not generic yet!!");}}Drag.group=null;Drag.isDragging=false;return false;},fixEvent:function(a){if(typeof a=="undefined"){a=window.event;}Coordinates.fixEvent(a);return a;}};var Size={BIG_Z_INDEX:10000,group:null,isSizing:false,makeSizeable:function(a,b){a.sizeHandle=a;a.sizeHandle.group=a;a.sizeHolder=!!b?b:a;if(a.sizeHolder!==a){a.sizeHolder.group=a;}a.sminX=null;a.sminY=null;a.smaxX=null;a.smaxY=null;a.sizeThreshold=0;a.sizeThresholdY=0;a.sizeThresholdX=0;a.onSizeStart=new Function();a.onSizeEnd=new Function();a.onSize=new Function();a.setSizeHandle=Size.setSizeHandle;a.setSizeThreshold=Size.setSizeThreshold;a.setSizeThresholdX=Size.setSizeThresholdX;a.setSizeThresholdY=Size.setSizeThresholdY;a.sizeConstrain=Size.constrain;a.sizeConstrainVertical=Size.constrainVertical;a.sizeConstrainHorizontal=Size.constrainHorizontal;a.sizeHolder.onmousedown=Size.onMouseDown;},constrainVertical:function(){var a=Coordinates.northwestOffset(this,true);this.sminX=a.x;this.smaxX=a.x;},constrainHorizontal:function(){var a=Coordinates.northwestOffset(this,true);this.sminY=a.y;this.smaxY=a.y;},constrain:function(b,a){this.sminX=b.x;this.sminY=b.y;if(!!a){this.smaxX=a.x;this.smaxY=a.y;}else{this.smaxX=5000;this.smaxY=5000;}},setSizeHandle:function(a){if(a&&a!=null){this.sizeHandle=a;}else{this.sizeHandle=this;}this.sizeHandle.group=this;this.onmousedown=null;this.sizeHandle.onmousedown=Size.onMouseDown;},setSizeThreshold:function(a){if(isNaN(parseInt(a))){return;}this.threshold=a;},setSizeThresholdX:function(a){if(isNaN(parseInt(a))){return;}this.thresholdX=a;},setSizeThresholdY:function(a){if(isNaN(parseInt(a))){return;}this.thresholdY=a;},onMouseDown:function(d){d=Size.fixEvent(d);Size.group=this.group;var f=this.group;f.sourceContainer=this.parentNode;f.myNextSibling=this.nextSibling;f.changed=0;var b=d.windowCoordinate;var c=Coordinates.northwestOffset(f,true,0);var g=Coordinates.northwestPosition(f);var a=Coordinates.southeastPosition(f);var e=Coordinates.southeastOffset(f,true);f.originalOpacity=f.style.opacity;f.originalZIndex=f.style.zIndex;f.initialWindowCoordinate=b;f.sizeCoordinate=b;f.onSizeStart(g,a,c,e);f.mouseMin=c.plus(new Coordinate(f.sminX,f.sminY));f.mouseMax=c.plus(new Coordinate(f.smaxX,f.smaxY));document.onmousemove=Size.onMouseMove;document.onmouseup=Size.onMouseUp;return false;},showStatus:function(b,f,a,c,e,d){window.status="mouse: "+b.toString()+"    NW pos: "+f.toString()+"    SE pos: "+a.toString()+"    NW offset: "+c.toString()+"    SE offset: "+e.toString()+"    minX: "+d.sminX;},onMouseMove:function(c){c=Size.fixEvent(c);var j=Size.group;var h=c.windowCoordinate;var f=Coordinates.northwestOffset(j,true);var k=Coordinates.northwestPosition(j);var a=Coordinates.southeastPosition(j);var i=Coordinates.southeastOffset(j,true);var d=k.myDistance(h.constrain(j.mouseMin,j.mouseMax)).absolute();if(!Size.isSizing){if(j.threshold>0){var b=j.initialWindowCoordinate.distance(h);if(b<j.threshold){return true;}}else{if(j.thresholdY>0){var e=Math.abs(j.initialWindowCoordinate.y-h.y);if(e<j.thresholdY){return true;}}else{if(j.thresholdX>0){var g=Math.abs(j.initialWindowCoordinate.x-h.x);if(g<j.thresholdX){return true;}}}}Size.isSizing=true;if(browserDetect.browser!="Internet Explorer"){$fx(j).setOpacity(75);}}j.setSize(d);return false;},onMouseUp:function(d){d=Size.fixEvent(d);var f=Size.group;var b=d.windowCoordinate;var c=Coordinates.northwestOffset(f,true);var g=Coordinates.northwestPosition(f);var a=Coordinates.southeastPosition(f);var e=Coordinates.southeastOffset(f,true);document.onmousemove=null;document.onmouseup=null;f.onSizeEnd(g,a,c,e);if(Size.isSizing){if(browserDetect.browser!="Internet Explorer"){$fx(f).setOpacity(100);}if(!!f.afterResize){f.afterResize();}}else{}Size.group=null;Size.isSizing=false;return false;},fixEvent:function(a){if(typeof a=="undefined"){a=window.event;}Coordinates.fixEvent(a);return a;}};
