/* global object to drag holder */
var dragobj;

// global grab coordinates so we don't jump the pointer to 0,0 on the obj
var grab_coord = {x:0, y:0};
var mouse_coord = {x:0, y:0};

var element_coord = {x:0, y:0};
var original_coord = {x:0, y:0};

function pickup(event, obj) {

  // set global object holder
  dragobj = obj;

  if (!event) event = window.event;

  // save grabbed coordinates
  mouse_coord.x = grab_coord.x = event.clientX + document.body.scrollLeft;
  mouse_coord.y = grab_coord.y = event.clientY + document.body.scrollTop;

  // save original element coordinates (for figuring out deltas later)
  element_coord.x = original_coord.x = parseInt(dragobj.style.left,10);
  element_coord.y = original_coord.y = parseInt(dragobj.style.top,10);

  // register event handlers
  dragobj.onmousemove = move;
  dragobj.onmouseup = drop;

  // bring the div to the top while dragging
  dragobj.style.zIndex = ++dragobj.style.zIndex;
}


function move(event)
{
  if (!event) event = window.event; 

  dragobj.style.zIndex = 100;
  var x = event.clientX; // + window.scrollX;
  var y = event.clientY; // + window.scrollY;

  element_coord.x = original_coord.x + (x - grab_coord.x);
  element_coord.y = original_coord.y + (y - grab_coord.y);

//  dragobj.style.left = (dragobj.style.left + x - dragObj.cursorStartX) + "px";
//  dragobj.style.top  = (dragobj.stlye.top  + y - dragObj.cursorStartY) + "px";
  dragobj.style.left = parseInt(element_coord.x,10)+"px";
  dragobj.style.top  = parseInt(element_coord.y,10)+"px";
  return false;
}

function drop() {
  if (dragobj)
  {
    dragobj.onmousemove = null;
    dragobj = null;
  }
}
