hola mastri web,

sto cercando di implementare un semplice script che mi faccia fare un effetto slide ad un div


codice:
<html>
<head><title></title>

<script type="text/javascript" language="javascript">
//<![CDATA[
var rightPosition=50;
var leftPosition=-150;

function horizontalSlide(idDivToSlide){
         var slidingDiv = document.getElementById(idDivToSlide);

         if(parseInt(slidingDiv.style.left) == rightPosition){
            while(parseInt(slidingDiv.style.left) > leftPosition){
                    setTimeout('nop()', 1000);
                    slidingDiv.style.left = parseInt(slidingDiv.style.left) - 2 + "px";
            }
         }
         else{
            while(parseInt(slidingDiv.style.left) < rightPosition){
                    setTimeout("nop()", 1000);
                    slidingDiv.style.left = parseInt(slidingDiv.style.left) + 2 + "px";
            }
         }
}

function nop(){}

//]]>
</script>
</head>
<body>

<div id="d2" onclick="horizontalSlide('d1');">click here to slide the div</div>
<div id="d1" style="position:absolute; left:-150px; top:30px">horizontally sliding div</div>

</body>
</html>

l'effetto di questa paginetta non è quello desiderato.
Il div che dovrebbe scorrere, compare e scompare senza l'effetto slide.

Di conseguenza sembra che la funzione setTimeout non faccia il suo sporco lavoro.....dove sbaglio?