Código:
// cambiar esta linea;
setTimeout("valorizer(ID)",60);
//por esta;
setTimeout(function(){valorizer(ID)},60);
como lo tienes no te funciona porque el codigo de setTimeout se ejecuta en el contexto de windows entonces el codigo no logra ver la variable ID. con una funcion anonima funciona, aunque este se ejecute en el contexto del objeto window, porque las funciones crean un closure (cierre) en el scope. se le dice cierre cuando la variable es usada en una funcion que no define dicha dicha variable. en este caso, la funcion anonima invoca la funcion
valorizer el cual pasa como argumento la variable ID. como veras, en la funcion anonima no se define la variable ID pero si se utiliza el cual le pertenece al scope de la funcion anterior. puedes buscar mas informacion acerca de esta caracteristica con terminos
javascript closure.