var dragObject = null; var mouseOffset = null; var zIndex = 1; function setFocus(selectedWindow) { zIndex = zIndex + 1; selectedWindow.style.zIndex = zIndex; } 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 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 mouseMove(ev){ ev = ev || window.event; var mousePos = mouseCoords(ev); if(dragObject){ dragObject.style.position = 'absolute'; dragObject.style.top = mousePos.y - mouseOffset.y + "px"; dragObject.style.left = mousePos.x - mouseOffset.x + "px"; return false; } } function mouseUp(){ dragObject = null; } function makeDraggable(item, dragSource){ if(!item) return; if (dragSource) { dragSource.onmousedown = function(ev){ setFocus(item); dragObject = item; mouseOffset = getMouseOffset(this, ev); return false; } } else { item.onmousedown = function(ev){ setFocus(this); dragObject = this; mouseOffset = getMouseOffset(this, ev); return false; } } } var outputTxt = ""; function trace(txt){ outputTxt += txt + "
"; document.getElementById("console").innerHTML = outputTxt; } document.onmousemove = mouseMove; document.onmouseup = mouseUp;