/**
 * Drag Handler
 */

function DragHandler(dragObj, target){
    this.dragObj = dragObj;
    this.target = target;

    this.dragObj.handler = this;
    this.dragObj.onmousedown = DragHandler_doMouseDown;
    this.dragObj.onmousemove = DragHandler_doMouseMove;
    this.dragObj.onmouseup = DragHandler_doMouseUp;
}

function DragHandler_doMouseDown(){
    var dragObj = event.srcElement;

    if (typeof dragObj.handler != "undefined" && dragObj.handler.constructor == DragHandler && window._DragHandlerEnabled == true){
        dragObj.setCapture()
        dragObj.handler.pX = event.x - dragObj.handler.target.style.pixelLeft;
        dragObj.handler.pY = event.y - dragObj.handler.target.style.pixelTop;
        window._DragObj = dragObj;
    }
}

function DragHandler_doMouseMove(){
    var dragObj = window._DragObj;

    if (typeof dragObj != "undefined"){
        dragObj.handler.target.style.left = event.x - dragObj.handler.pX;
	    dragObj.handler.target.style.top = event.y - dragObj.handler.pY;
    }
}

function DragHandler_doMouseUp(){
    var dragObj = event.srcElement;

    if (typeof dragObj.handler != "undefined" && dragObj.handler.constructor == DragHandler){
    	dragObj.releaseCapture();
        window._DragObj = undefined;
    }
}