var timeoutHandle; function countdown(minutes, seconds) { function tick() { var counter = document.getElementById("timer"); counter.innerHTML = minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds); seconds--; if (seconds >= 0) { timeoutHandle = setTimeout(tick, 1000); } else { if (minutes >= 1) { // countdown(mins-1); never reach “00″ issue solved:Contributed by Victor Streithorst setTimeout(function () { countdown(minutes - 1, 59); }, 1000); } } if (seconds==0 && minutes ==0){ alert("Game over"); reset(); } } tick(); } countdown(1, 00);