/***************************************************************************** Countdown timer in javascript Copyright Aarron Shaughnessy 2006 ******************************************************************************/ var RaceDates = [ ["Snetterton", "September, 13 2008 0:0:00"], ["Snetterton", "September, 13 2008 0:0:00"], ["Snetterton", "September, 14 2008 0:0:00"], ["Snetterton", "September, 14 2008 0:0:00"], ["Brands Hatch (GP)", "September, 27 2008 0:0:00"], ["Brands Hatch (GP)", "September, 27 2008 0:0:00"], ["Brands Hatch (GP)", "September, 28 2008 0:0:00"], ["Brands Hatch (GP)", "September, 28 2008 0:0:00"] ]; function cdtime(container){ if (!document.getElementById || !document.getElementById(container)) return; this.container=document.getElementById(container); if(RaceDates.length <= 0) { this.timesup = true; } else { this.findnextrace(); } this.showresults(); } cdtime.prototype.showresults=function(){ this.currentTime = new Date(); var thisobj=this var timediff=(this.targetdate-this.currentTime)/1000 //difference btw target date and current date, in seconds if(this.timesup == true) { this.container.innerHTML="Awaiting new calander"; return; } if ((timediff<0)){ //if time is up if (timediff > -60/*-43200*/){ //if time is today this.container.innerHTML="Today at " + RaceDates[this.RaceIndex][0] + ""; } else { this.findnextrace(); } setTimeout(function(){thisobj.showresults()}, 1000); //update results every second return; } var oneMinute=60 //minute unit in seconds var oneHour=60*60 //hour unit in seconds var oneDay=60*60*24 //day unit in seconds var oneWeek=60*60*24*7 //week unit in seconds var weekfield=Math.floor(timediff/oneWeek) var dayfield=Math.floor((timediff-weekfield*oneWeek)/oneDay) var hourfield=Math.floor((timediff-weekfield*oneWeek-dayfield*oneDay)/oneHour) var minutefield=Math.floor((timediff-weekfield*oneWeek-dayfield*oneDay-hourfield*oneHour)/oneMinute) var secondfield=Math.floor((timediff-weekfield*oneWeek-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute)) this.container.innerHTML="" + RaceDates[this.RaceIndex][0] + " on " + this.targetdate.toDateString() + " in "+weekfield+"wks "+dayfield+"days "+hourfield+"hrs "+minutefield+"min "+secondfield+"sec "; setTimeout(function(){thisobj.showresults()}, 1000) //update results every second } cdtime.prototype.findnextrace=function() { var currentTime = new Date(); this.timesup = false; this.targetdate = new Date(); this.RaceIndex = 0; this.targetdate.setTime(Date.parse(RaceDates[this.RaceIndex][1])); while (((this.targetdate-currentTime)/1000) < -60/*43200*/) { this.RaceIndex++; if (this.RaceIndex >= RaceDates.length) { this.timesup = true; return; } this.targetdate.setTime(Date.parse(RaceDates[this.RaceIndex][1])); } } function countdown_init(){ var futuredate=new cdtime("countdowncontainer"); } addLoadEvent(countdown_init);