//add drag-support to modal dialog
var isDragging = false;
var pinY = 0;
var pinX = 0;
var dragobject = null;

initalize();
function initalize()
{
    window.onload = pageLoaded;
}

function pageLoaded()
{
    if(document.body.addEventListener)
    {
        document.body.addEventListener('mousemove', mouseMove, false);
        document.body.addEventListener('onmouseup', stopDrag, false);
    }
    else    
    {
        document.body.attachEvent("onmousemove", mouseMove);
        document.body.attachEvent("onmouseup", stopDrag);
    }
}
function mouseProperties(e)
{
    e = (e == null ? window.event : e);
    this.X = (e.pageX ? e.pageX : e.clientX);
    this.Y = (e.pageY ? e.pageY : e.clientY);
    this.LeftButtonDown = ((e.which ? e.which : e.button) == 1);
}

function startDragModal(e, elementID)
{
    dragobject = document.getElementById(elementID);
    startDrag(e);
}

function startDrag(e)
{
    var mouse = new mouseProperties(e);
    if(mouse.LeftButtonDown)
    {
        isDragging = true;
        pinY = mouse.Y - parseInt(dragobject.offsetTop);
        pinX = mouse.X - parseInt(dragobject.offsetLeft); //absoluteLeft(dragobject);
    }
    else
        isDragging = false;
    return isDragging;
}

function stopDrag(e)
{
    isDragging = false;
}

function mouseMove(e)
{
    var mouse = new mouseProperties(e);
    if(mouse.LeftButtonDown && isDragging)
    {
        
        positionDialog(mouse.Y - pinY, mouse.X - pinX);
    }
    return !isDragging;
}

function positionDialog(y, x)
{
    if(dragobject != null)
    {
        dragobject.style.top = y + 'px';
        dragobject.style.left = x + 'px';
        dragobject.style.margin = '0';
    }
}