Cita: timer = clearInterval(timer); // stop timer
clearInterval no necesita identificador debes borrarselos, y los indentificadores no debes llamarlos igual que las funciones. lo que haces es usar el mismo identificador para hacer todo. y trata de colocar tus codigos en la etiqueta code asi no se puede leer bien.