document.onmousemove = mouseMove;
document.onmouseup   = mouseUp;

var dragObject  = null;
var mouseOffset = null;
var canMove= false;

function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}


function mouseMove(ev){
	ev           = ev || window.event;
	var mousePos = mouseCoords(ev);
	if(dragObject){
	   if(canMove){
		dragObject.style.position = 'absolute';
		dragObject.style.top      = mousePos.y - mouseOffset.y;
		dragObject.style.left     = mousePos.x - mouseOffset.x;
        return false;
        }
	}
	if(typeof(OtherMouseMoveFunctions) == 'function')
	    OtherMouseMoveFunctions(ev)
}
function mouseUp(){
	dragObject = null;
}

function makeDraggable(item){
	if(!item) return;
	item.onmousedown = function(ev){
		dragObject  = this;
		mouseOffset = getMouseOffset(this, ev);
		return false;
	}
}

function InitObjectMove(id){
  var movableobj= document.getElementById(id);
         makeDraggable(movableobj);
         canMove= true;
}

   
 

function StopObjectMove(id){
   canMove= false;
   dragObject= null;
}

 function windowInitMove(id){
    var DivResultsModalWindow= document.getElementById("customModalDialogWindow_"+ id);
         makeDraggable(DivResultsModalWindow);
         canMove= true;
          if(typeof(windowSubItemsInitMove)== 'function'){
            windowSubItemsInitMove("customModalDialogWindow_"+ id);
         }
       }


 function windowStopMove(id){
 canMove= false;
   dragObject= null;
 }

