var Drag = new Object();

Drag.dragging = false;
Drag.currentPrimary  = null;
Drag.currentSecondary = null;
Drag.mouseOffset = null;
Drag.elementsOffsetLeft = 0;
Drag.elementsOffsetTop = 0;

Drag.mouseMove = function(event) {
    event = event || window.event;
    if (Drag.currentPrimary){
        var mousePos = Util.getMousePosition(event);
        var top = mousePos.top - Drag.mouseOffset.top;
        var left = mousePos.left - Drag.mouseOffset.left;
        Drag.currentPrimary.style.top = top + "px";
        Drag.currentPrimary.style.left = left + "px";
        if (Drag.currentSecondary) {
            Drag.currentSecondary.style.top = (top - Drag.elementsOffsetTop) + "px";
            Drag.currentSecondary.style.left = (left + Drag.elementsOffsetLeft) + "px";
        }
        return false;
    }
};


Drag.mouseUp = function() {
    Drag.currentPrimary = null;
    Drag.currentSecondary = null;
    document.onmousemove = null;
    document.onmouseup = null;
};

Drag.enableDragging = function(primaryElement, secondaryElement, item) {
    var left1, left2, top1, top2;

    if (secondaryElement) {
        left1 = parseInt(primaryElement.style.left);
        left2 = parseInt(secondaryElement.style.left);
        top1 = parseInt(primaryElement.style.top);
        top2 = parseInt(secondaryElement.style.top);
    }
    primaryElement.onmousedown = function(event) {
        item.bringToFront();

        Drag.currentPrimary = primaryElement;
        Drag.mouseOffset = Util.getMouseOffset(primaryElement, event);
        if (secondaryElement) {
            Drag.currentSecondary = secondaryElement;
            Drag.elementsOffsetLeft = left2 - left1;
            Drag.elementsOffsetTop = top1 - top2;
        }
        document.onmousemove = Drag.mouseMove;
        document.onmouseup = Drag.mouseUp;
        return false;
    }
};
