Working on his attempts in help189a.htm (My working version is help189.htm) The next problem is that I get NaN in the display. This is probably because you make sure you were really getting numbers back from breaking the display apart. Here's a good function to help you find the problem: // ---------------------------------------------------------- // Displays a message & allows an exit from this code // inputs: Message text to display // outputs: Displays the message & wait for key inputs // actions: Returns to this code, or to previous html page // returns: none // ---------------------------------------------------------- function DeBug(txt) { A=prompt(txt, "Continue/Exit == Enter/X-key."); if(A=="X" || A=="x") { // Go back to the LAST safe page! history.go(-1); // Either go back when we tell you to, history.Go(-1); // Or cause an error to stop the process! } } You can use it like alert("your stuff here"); DeBug("Your Stuff here"); But it can't hold as much, the big difference is that it will ALWAYS be able to stop an infinite loop, like you count down clock where alert() won't allow you enough time to click the back arrow before it pops up again. In DeBug enter X or x to stop the program. Now, your error is probably in the Hours(), Minutes(), Seconds() functions. Here's how I'd use DeBug: function Hours(data) { for (var i = 0; i < data.length; i++) { if (data.substring(i, i + 1) == ":") { break; } } DeBug("Hours: "+data.substring(0, i)); return (data.substring(0, i)); } function Minutes(data) { for (var i = 0; i < data.length; i++) { if (data.substring(i, i + 1) == ":") { break; } } DeBug("Minutes: "+data.substring(i + 1, data.length)); return (data.substring(i + 1, data.length)); } function Seconds(data) { for (var i = 0; i < data.length; i++) { if (data.substring(i, i + 1) == ":") { break; } } DeBug("Seconds: "+data.substring(i + 1, data.length)); return (data.substring(i + 1, data.length)); } Notice also how I used { } where you didn't. Even though they are not strictly needed it is ALWAYS good practice to do so. This insures that you will not fall into non-included functions traps when you add something later that should be inside one of these sections. Also, write the code so it's easy to read as I did. By spacing things out your and I can read it quicker and the computers don't care one way or the other so we might as well make it easy for us. You will find that your problem right now is in getting the values out of the string correctly, you do not have the substring method correctly set to pull out the values for minutes and seconds.