window.onload = mouseEvent;
var dragEnabled = false;
var element;
var start_x = -1;
var start_y = -1;
var new_x;
var new_y;
var debug = false;
var posDiff = 200;
var mouse_pos_x;
var mouse_pos_y;
var last_zIndex = 1000;

function startStopDrag(win) {	
	if (dragEnabled) { 
		dragEnabled = false;
		start_x = -1;
		start_y = -1;
	} else {
		if (win.style.position != 'absolute') win.style.position = 'absolute';
		if (!win.style.left) win.style.left = (mouse_pos_x - (win.offsetWidth/2)) + 'px';
		if (!win.style.top) win.style.top = (mouse_pos_y - (win.offsetHeight/2)) + 'px';
		last_zIndex++;
		win.style.zIndex = last_zIndex;
		element = win;
		dragEnabled = true;
	}
}

function mouseEvent() {
  /*if (window.Event) {
	 //document.captureEvents(Event.MOUSEMOVE);
  }*/
  document.onmousemove = getXY;
}

function getXY(e) {
  mouse_pos_x = (window.Event) ? e.pageX : event.clientX;
  mouse_pos_y = (window.Event) ? e.pageY : event.clientY;
  
  if (dragEnabled) {
	  var left = parseInt(element.style.left);
	  var top = parseInt(element.style.top);
	  if (mouse_pos_x > left-posDiff && mouse_pos_x < left+element.offsetWidth+posDiff && mouse_pos_y > top-posDiff && mouse_pos_y < top+element.offsetHeight+posDiff) {
		  if (start_x == -1) { start_x = mouse_pos_x-left; start_y = mouse_pos_y-top; }
		  new_x = mouse_pos_x-start_x;	
		  new_y = mouse_pos_y-start_y;
		  element.style.left = (new_x)+'px';
		  element.style.top = (new_y)+'px';
	  }
	  else startStopDrag(null);
  }
}

