Вот мой рабочий вариант, проверял в опере и хроме. Думаю тебе придётся его доработать.
<div style="width:200px; height:500px; background:#000; position:fixed"><div onmousedown="Drag(this)" style="width:200px; height:50px; cursor:move; background:red"></div></div>
<script>
var DragZ = 100;
function Drag(a)
{
var b = 1, c = a.parentNode.style, e = this, f = 1, g, h;
DragZ++;
c.zIndex = DragZ;
a.onmousemove = function()
{
if(b)
{
if(f)
{
g = e.event.offsetX;
h = e.event.offsetY;
f = 0;
}
c.marginLeft = e.event.clientX-g;
c.marginTop = e.event.clientY-h;
}
}
window.onmouseup = function()
{
b = 0;
}
}
</script>