var moving = 0;
var moveSpaceX;
var moveSpaceY;

function ShowModalPopup(panelID, okID, cancelID, moveID, onOkScript)
{
    var objPanel = document.getElementById(panelID);
    var objOk = document.getElementById(okID);
    var objCancel = document.getElementById(cancelID);
    var objMove = document.getElementById(moveID);
    var evntOnResize = window.onresize;
    var evntOnMouseMove = document.body.onmousemove;
    
    var divOverlay = document.createElement("DIV");
    document.body.appendChild(divOverlay);
    document.body.appendChild(objPanel);
    divOverlay.style.width = document.documentElement.clientWidth + "px";
    divOverlay.style.height = document.documentElement.clientHeight + "px";
    divOverlay.style.position = "absolute";
    divOverlay.style.top = "0px";
    divOverlay.style.left = "0px";
    divOverlay.style.backgroundColor = "#000000";
    divOverlay.style.filter = "alpha(opacity=50)";
    divOverlay.style.opacity = ".5";

    objPanel.style.position = "absolute";
    objPanel.style.display = "inline";
    objPanel.style.zIndex = "99";
    objPanel.style.top = (document.documentElement.clientHeight / 2) - (objPanel.offsetHeight / 2) + "px";
    objPanel.style.left = (document.documentElement.clientWidth / 2) - (objPanel.offsetWidth / 2) + "px";
    
    if(objMove)
    {
        objMove.style.cursor = "move";
        objMove.onmousedown = function(e) {moving=1;CalculateMoveSpace(objPanel,e);};
        objMove.onmouseup = function() {moving=0;};
        document.body.onmousemove = function(e) {MoveModalPopup(objPanel,e)};
    }
    if(objOk)
    {
        objOk.onclick = function() {CloseModalPopup(objPanel, divOverlay, evntOnResize, evntOnMouseMove, onOkScript);};
    }
    if(objCancel)
    {
        objCancel.onclick = function() {CloseModalPopup(objPanel, divOverlay, evntOnResize, evntOnMouseMove);};
    }
    
    window.onresize = function() {ResizeModalPopup(objPanel, divOverlay, evntOnResize);};
    //objOk.focus();
}

function CloseModalPopup(objPanel, divOverlay, evntOnResize, evntOnMouseMove, onOkScript)
{
    document.body.removeChild(divOverlay);
    objPanel.style.display = "none";
    document.body.onresize = evntOnResize;
    document.body.onmousemove = evntOnMouseMove;
    if(onOkScript)
    {
        onOkScript();
    }
}

function ResizeModalPopup(objPanel, divOverlay, evntOnResize)
{
    divOverlay.style.width = document.documentElement.clientWidth + "px";
    divOverlay.style.height = document.documentElement.clientHeight + "px";
    
    objPanel.style.top = (document.documentElement.clientHeight / 2) - (objPanel.offsetHeight / 2) + "px";
    objPanel.style.left = (document.documentElement.clientWidth / 2) - (objPanel.offsetWidth / 2) + "px";
    if (evntOnResize != null)
    {
        evntOnResize();
    }
}

var posx;
var posy;
function MousePos(e)
{
    posx=0;
    posy=0;
    var ev=(!e)?event:e; //IE:Moz
    if (ev.pageX) //Moz
    {
        posx=ev.pageX+window.pageXOffset;
        posy=ev.pageY+window.pageYOffset;
        return [posx,posy];
    }
    else if(ev.clientX) //IE
    {
        posx=ev.clientX+document.body.scrollLeft;
        posy=ev.clientY+document.body.scrollTop;
        return [posx,posy];
    }
    else
    {
        return false;
    }
}


function CalculateMoveSpace(objPanel, e)
{
    moveSpaceX = MousePos(e)[0] - parseInt(objPanel.style.left);
    moveSpaceY = MousePos(e)[1] - parseInt(objPanel.style.top);
}

function MoveModalPopup(objPanel, e)
{
    if (moving==1)
    {
        if((MousePos(e)[0] < (document.documentElement.clientWidth - (objPanel.offsetWidth - moveSpaceX))) && 
            (MousePos(e)[0] > moveSpaceX))
        {
            objPanel.style.left = MousePos(e)[0] - moveSpaceX + "px";
        }
        
        if((MousePos(e)[1] < (document.documentElement.clientHeight - (objPanel.offsetHeight - moveSpaceY))) &&
            (MousePos(e)[1] > moveSpaceY))
        {
            objPanel.style.top = MousePos(e)[1] - moveSpaceY + "px";
        }
    }
}

//function findPos(obj) {
//	var curleft = curtop = 0;
//	if (obj.offsetParent) {
//		curleft = obj.offsetLeft
//		curtop = obj.offsetTop
//		while (obj = obj.offsetParent) {
//			curleft += obj.offsetLeft
//			curtop += obj.offsetTop
//		}
//	}
//	return [curleft,curtop];
//}
