LeadingZero = true; CountStepper = 1; var dthen = new Date(TargetDate); var dnow = new Date('02/23/2012 12:27 pm'); //var dnow = new Date(); if(dnow.getTime() > dthen.getTime()) ddiff = new Date(dnow-dthen); else ddiff = new Date(dthen-dnow); var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990; gsecs = Math.floor(ddiff.valueOf()/1000); CountBack(gsecs); function CountBack(secs) { dnow = new Date(); DisplayStr = calcage(secs,86400,100000); document.getElementById("DaysValue").innerHTML = DisplayStr; DisplayStr = calcage(secs,3600,24); document.getElementById("HoursValue").innerHTML = DisplayStr; DisplayStr = calcage(secs,60,60); document.getElementById("MinutesValue").innerHTML = DisplayStr; DisplayStr = calcage(secs,1,60); document.getElementById("SecondesValue").innerHTML = DisplayStr; if (dnow.getTime() > dthen.getTime()) setTimeout("CountBack(" + (secs + CountStepper) + ")", SetTimeOutPeriod); else { if ((secs - CountStepper) == -1) setTimeout("CountBack(" + (secs + CountStepper) + ")", SetTimeOutPeriod); else setTimeout("CountBack(" + (secs - CountStepper) + ")", SetTimeOutPeriod); } } function calcage(secs, num1, num2) { s = (((Math.floor(secs/num1))%num2)).toString(); if(LeadingZero && s.length < 2) s = "0" + s; return "" + s + ""; }