Strangest: Merkwürdigster Fehler seit Beginn meiner Lehrzeit

Beitrag lesen

Hallo, noch nie war ich so am verzweifeln. Bitte um Hilfe.

Ich habe eine Art Fehlermeldung entworfen, die am oberen Bildschirmrand platziert wird, grob: ein div mit height:40px; width:100%. Diese möchte ich mittels JS ausblenden. Dazu habe mir eine kleine JS-Funktion geschrieben, die die Meldung rauszieht, indem sie den margin-top auf negative Werte verändert.

Diese Funktion ist eingebettet in das Template für die Fehlermeldung.

Um die Funktion flexibler zu machen, wollte ich die ID des divs der Funktion übergeben. Das Problem: die übergebene id wird bei jedem Aufruf (die Funktion ist selbstaufrufend) verändert. Und das noch merkwürdigere: mal um eins nach oben und dann für jeden weiteren Aufruf gleichbleibend und mal um eins nach unten und dann für jeden weiteren Aufruf gleichbleibend.

Hier das Template:

<script type="text/javascript">  
var it = 0;  
  
function movebox(irgendeineboxid){  
  
  alert(irgendeineboxid);  
  document.getElementById("box").style.marginTop = it + "px";  
  document.getElementById("box").style.marginTop = it + "px";  
  
  // verändere oberen margin. zu Testzwecken minus 5 statt minus 1  
  it = it - 5;  
  
  if( it < -45){  
    document.getElementById("box").style.display = "none";  
  } else window.setTimeout( 'movebox('+irgendeineboxid+')', 10 );  
}  
</script>
<div id="box" style="width:100%; font-size:14px;height:40px; color:#<777777; background-color:#fbf7dd;">  
  <div style="margin:4px 20px;float:left;">  
    Notice: <!--title--><br>  
    <span style="color:#515151; font-size:10px;"><!--desc--></span>  
  </div>  
  <div style="margin:10px 20px;">  
    <a href="javascript:movebox('<!--mid-->')">Close</a>  
  </div>  
</div>

Ich habe die Id jetzt erstmal auf "box" gesetzt. Aber mit alert(irgendeineboxid) erhalte ich dann ausgaben wie

13237768289858591
13237768289858592
13237768289858592
13237768289858592
13237768289858592
(...)

oder (seltener mit dem Fall minus 1)

13237769196884441
13237769196884440
13237769196884440
13237769196884440
13237769196884440
(...)

Ich habe keine Ahnung, ob ich den Verlauf einer Variablen mit firebug (was ich besitze) verfolgen kann.

Die Kommentare in dem Template sind die Platzhalter, die mittels php gefüllt werden. Bspw. ist <!--title--> der Titel der Nachricht, <!--mid--> die übergebene Id des divs. Die jeweils erste id, die durch das alert ausgegeben wird, entspricht der php-generierten.
Das Template wird nur einmal durch den Parser gezogen.

Bitte um Hilfe. Ich weiß nicht, wie ich weitermachen soll.