
Curse.Drag=function(elem)
{this.initialize(elem);cg_addEventListener(document,"mousemove",this.handleMouseMove.bindAsEventListener(this))
cg_addEventListener(document,"mouseup",this.handleMouseUp.bindAsEventListener(this))}
Curse.Drag.prototype={dragObject:null,drag:false,mouseOffset:{},disabled:false,initialize:function(obj)
{if(!obj)return;this.dragObject=obj;this.dragObject.onmousedown=this.handleMouseDown.bind(this);},handleMouseMove:function()
{if(this.drag&&!this.disabled)
{this.dragObject.style.position='absolute';this.dragObject.style.top=(Curse.Mouse.y-this.mouseOffset.y)+"px";this.dragObject.style.left=(Curse.Mouse.x-this.mouseOffset.x)+"px";return false;}},handleMouseUp:function()
{this.drag=false;},handleMouseDown:function()
{this.setMouseOffset();this.drag=true;},setMouseOffset:function()
{var docPos=cg_getPosition(this.dragObject);this.mouseOffset.x=Curse.Mouse.x-docPos.x;this.mouseOffset.y=Curse.Mouse.y-docPos.y;}}