Mam taki skrypt i nie wiem dlaczego onmouseout jest ignorowane kiedy uruchomi się skrypt tworzenia diva (show()

.
A drugie to dlaczego onmousemove = move; w funkcji show(); działa a kiedy dodam przed document. już nie?
<html>
<head>
<script type="text/javascript">
var IE = document.all ? true : false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = myMouseXY;
var pX = 0;
var pY = 0;
function myMouseXY(e) {
if (IE) {
pX = event.clientX + document.body.scrollLeft;
pY = event.clientY + document.body.scrollTop;
} else {
pX = e.pageX;
pY = e.pageY;
}
if (pX < 0) pX = 0;
if (pY < 0) pY = 0;
return true;
}
function show()
{
onmousemove = move;
function move()
{
var chmurka = document.getElementById("show");
if (chmurka != null)
{
remove();
}
var div = document.getElementById("dymek");
var add = document.createElement("div");
add.setAttribute("style", "position: absolute; top: "+pY+"px; left: "+pX+"px; height: 131px; width: 179px; background-color: red;");
add.setAttribute("id", "show");
div.appendChild(add);
}
}
function remove()
{
var div = document.getElementById("dymek");
div.removeChild(div.childNodes[0]);
}
</script>
</head>
<body >
<div id="dymek" style="position: absolute;"></div>
<div id="test" onmouseover="show();" onmouseout="remove();" style="position: absolute; top: 20px; left: 11px; height: 131px; width: 179px; background-color: black;">test</div>
</body>
</html>