/* adapted from http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndude/html/dude092298.asp */
var ItemToMove;
var lTop, lLeft;

function mousedown(e) 
{
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;

  ItemToMove = findMoveable(targ);

	lLeft = e.clientX;
	lTop = e.clientY;
}

document.onmousedown = mousedown;
document.onmouseup = function() {ItemToMove = null};

function mousemove(e)
{
  var i;
  var diffHor;
  var diffVer;
  
  if (!e) var e = window.event;

  if (ItemToMove!= null)
  {
    diffHor = e.clientX - lLeft;
    diffVer = e.clientY - lTop;

    moveElement(ItemToMove, diffHor, diffVer);

    lLeft = e.clientX;
    lTop = e.clientY;

    return false;
  }
}

function moveElement(elToMove, dLeft, dTop)
{
    elToMove.style.top = (elToMove.offsetTop + dTop) + 'px';
    elToMove.style.left = (elToMove.offsetLeft + dLeft) + 'px';
    if(elToMove.style.setProperty)
    {
			
    }
}

function findMoveable(e) {
	
	if(e.nodeType != 1)
		return null;
	
  if (e.className.indexOf('moveable') > -1)
    return e;

  if (e.tagName == "BODY")
    return null;

  return findMoveable(e.parentNode);
}

function rfalse() {
  return false;
}

document.onmousemove = mousemove;
document.onselectstart = rfalse;