ho una pagina con un div al centro che si aggiorna ogni tot sec

quando una condizione che ho impostato è vera, parte il conto alla rovescia

codice:

<script language="Javascript">
<!--
// Imposto il sito di destinazione
var destinazione = "index.php?id=<? echo $_SESSION['id']; ?>&stanza=<? echo $conteggio_uomini['stanza']; ?> ";

// Imposto il numero di secondi per il conto alla rovescia
var secondi = 5;

// Creo la variabile conteggio e contestualmente
// imposto il valore di partenza al numero di secondi + 1
var conteggio = document.redirect.counter.value = secondi + 1;

// Creo la funzione che gestisce il conto alla rovescia
function contoallarovescia()
{
  // Se la variabile conteggio è maggiore di 1...
  if (conteggio > 1)
  {
    // decremento il valore della variabile conteggio
    conteggio = conteggio - 1;
    // e contestualmente aggiorno il numero mostrato a video
    document.redirect.counter.value = conteggio;
  // ...se conteggio è uguale o minore di 1 eseguo il redirect
  }else{
    window.location = destinazione;
    return
  }
  // La funzione ri-esegue se stessa ogni secondo fino alla
  // esecuzione del redirect
  setTimeout("contoallarovescia()", 1000);
}

// Lancio per la prima volta la funzione (che poi, come sappiamo
// provvederà autonomamente ad auto eseguirsi ogni secondo)
contoallarovescia()
//-->
</script>

il problema è che quando si aggiorna il div e la condizione risulta vera , il conto alla rovescia non parte

invece se aggiorno tutta la pagina funziona benissimo

Qualcuno sa spiegarmi il perchè?