﻿
if (document.layers) { // Netscape
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
    document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
    document.onmousemove = captureMousePosition;
}

function captureMousePosition(e) {
    if (window.event) {
        document.xMousePos = window.event.clientX;
        document.yMousePos = window.event.clientY;
    } else {
        document.xMousePos = e.clientX;
        document.yMousePos = e.clientY;
    }

    if (document.dragObject != null)
        document.dragObject.move(document.xMousePos, document.yMousePos);
}

function setStyle(obj) {
    var curleft = obj.offsetLeft;
    var curtop = obj.offsetTop;
    var parent = obj.offsetParent;
    
	if (parent) {
	    do {
	        curleft += parent.offsetLeft;
	        curtop += parent.offsetTop;
	    } while (parent = parent.offsetParent);
	}

	obj.style.left = curleft + "px";
	obj.style.top = curtop + "px";
	obj.style.marginLeft = "0px";
	obj.style.marginTop = "0px";
	obj.style.position = 'fixed';
}

function beginDrag(element) {
    
    setStyle(element);

    document.dragObject = element;
    
    document.dragObject.dragOffsetX = parseInt(document.dragObject.style.left) - document.xMousePos;
    document.dragObject.dragOffsetY = parseInt(document.dragObject.style.top) - document.yMousePos;

    document.dragObject.move = function(x, y) {
        document.dragObject.style.top = (y + document.dragObject.dragOffsetY) + "px"
        document.dragObject.style.left = (x + document.dragObject.dragOffsetX) + "px"
    }
        
    document.body.onmouseup = function() {
        document.dragObject = null;
        document.body.onmouseup = null;
    }
}


