Ciao, con setTimeout non cicli qualcosa ma esegui quello che gli dici dopo i secondi indicati dal parametro e quindi in questo caso 1000(1secondo) e poi si ferma.
Dovresti quindi usare una funzione per richiamare la data e richiamarlo con setInterval()
http://javascript.html.it/articoli/l...in-javascript/
Altra cosa quindi se non ho visto male, con lo script crei la pagina usando document.write()
Questo va bene al caricamento della pagina ma se lo richiami riscrive tutta la pagina nel caso ci fosse altro contenuto oltre al contatore.
Se quindi devi implementarla in una pagina dovresti modifcare l'html del contenitore assegnato tipo
var laTuaData = funzione_che_la_genera();
document.getElementById('orario').innerHTML = laTuaData;
usandola con setInterval