var currentGPOffset = 0; var currentSessionOffset = 0; var previousGPOffset = 0; var now,nowfudge; function QueryString(key) { var value = null; for (var i=0;i= 0) { var argname = pairs[i].substring(0,pos); var value = pairs[i].substring(pos+1); QueryString.keys[QueryString.keys.length] = argname; QueryString.values[QueryString.values.length] = value; } } } QueryString_Parse(); function getNow() { now = new Date(); if (QueryString("CURRENT_DATE") != null) { var querystring_current_date = unescape(QueryString("CURRENT_DATE").replace(/\+/g," ")) + " GMT"; setInterval( "window.status = now.toUTCString()", 1000 ); if (nowfudge == null) { nowfudge = now - new Date(querystring_current_date); } now.setTime(now.getTime() - nowfudge ); now.setTime(now.getTime() + ((0 * 24 + 0) * 60 + 0) * 60 * 1000); } } getNow(); function GPArrayItem(n, fn, id, c, t) { this.name = n; this.fullname = fn; this.sessions = new Array(); this.id = id; this.country = c; this.offset = t; return this; } function GPSArrayItem(s, d, l, bGP) { this.session = s; this.start = new Date(d); this.end = new Date; this.end.setTime(this.start.getTime() + l * 60 * 1000); this.countdown = new Date(0); this.inProgress = false; this.isGP = bGP; return this; } function GPCurrent() { return new findGPCurrent(); } function findGPCurrent() { var gp,s,gps,ss; var ret = this; for (; currentGPOffset < grand_prix.length; currentGPOffset++) { gp = grand_prix[currentGPOffset] gps = gp.sessions; ss = gps[gps.length-1]; if (ss.end >= now) break; previousGPOffset = currentGPOffset; currentSessionOffset = 0; } for (; currentSessionOffset < gps.length; currentSessionOffset++) { s = gps[currentSessionOffset]; if (s.start > now) { ret.inProgress = false; break; } else if (s.end >= now) { ret.inProgress = true; break; } } ret.name = gp.name; ret.fullname = gp.fullname; ret.id = gp.id; ret.offset = gp.offset; ret.session = s.session; ret.start = s.start; ret.end = s.end ret.isGP = s.isGP; ret.countdown = new Date(ss.start - now); return this; } var grand_prix = new Array(); grand_prix[0] = new GPArrayItem("Race1", "2006 World Model Cup", 751, "race1",180); grand_prix[0].sessions = new Array(new GPSArrayItem("Race", "18 Mar 2007 9:30:00 GMT+8", 0, true)); grand_prix[1] = new GPArrayItem("Race2", "2006 World Model Cup", 752, "race2",480); grand_prix[1].sessions = new Array(new GPSArrayItem("Race", "29 Apr 2007 9:30:00 GMT+8", 0, true)); grand_prix[2] = new GPArrayItem("Race3", "2006 World Model Cup", 753, "race3",660); grand_prix[2].sessions = new Array(new GPSArrayItem("Race", "24 Jun 2007 9:30:00 GMT+8", 0, true)); grand_prix[3] = new GPArrayItem("Race4", "2006 World Model Cup", 754, "race4",480); grand_prix[3].sessions = new Array(new GPSArrayItem("Race", "2 Sep 2006 9:30:00 GMT+8", 0, true)); grand_prix[4] = new GPArrayItem("Race4", "2006 World Model Cup", 755, "race4",120); grand_prix[4].sessions = new Array(new GPSArrayItem("Race", "2 Sep 2007 9:30:00 GMT+8", 0, true)); grand_prix[5] = new GPArrayItem("Race5", "2006 World Model Cup", 756, "race5",120); grand_prix[5].sessions = new Array(new GPSArrayItem("Race", "21 Oct 2007 9:30:00 GMT+8", 0, true)); grand_prix[6] = new GPArrayItem("Race5", "2006 World Model Cup", 757, "race6",120); grand_prix[6].sessions = new Array(new GPSArrayItem("Race", "2 Dec 2007 9:30:00 GMT+8", 0, true)); function getClockPath(s) { if ( s == 10 ) return "countdown/blank.gif"; else return "countdown/" + s + ".gif"; } function getClockImage(s) { var x; x = new Image(); x.src = getClockPath(s); return x; } var clockImage = new Array(); for (i = 0; i <= 9; i++) clockImage[i] = getClockImage(i); function getElement(o) { return MM_findObj(o); if (document.getElementById) return document.getElementById(o); else if (document.all) return document.all[o]; } function setVisibility(o,b) { v = getElement(o); if ( v == null ) return; v = v.style var s = (b)?"block":"none"; if (v.display != s) v.display = s; } function setNumber(s,m) { setNumber2(s,m,11); } function setNumber2(s,m,nn) { var v,n,o,ss; for (n = 0; n < nn; n++) { o = s + n; v = getElement(o); if ( v == null ) continue; v = v.style; ss = (n==m)?"inline":"none"; if (v.display != ss) v.display = ss; } } var clockMode = 0; function updateClock() { getNow(); var gp = GPCurrent(); if (1 == 0) { setVisibility("endseason", false); setVisibility("countdown", true); clockMode = 3; } else { if (gp) { if (!gp.inProgress) { var x, y, n; if (clockMode != 1) { n = "countdown/" + gp.name + ".gif"; document.images.racepic.src = n setVisibility("endseason", false); setVisibility("countdown", true); } do { y = gp.countdown.getUTCSeconds(); n = y % 10; setNumber( "cds1-", n ); if ( n != 9 && clockMode == 1 ) break; n = Math.floor(y / 10); setNumber( "cds2-", n ); if ( n != 5 && clockMode == 1 ) break; y = gp.countdown.getUTCMinutes(); n = y % 10; setNumber( "cdm1-", n ); if ( n != 9 && clockMode == 1 ) break; n = Math.floor(y / 10); setNumber( "cdm2-", n ); if ( n != 5 && clockMode == 1 ) break; y = gp.countdown.getUTCHours(); setNumber( "cdh1-", y % 10 ); setNumber( "cdh2-", Math.floor(y / 10) ); y = Math.floor(gp.countdown.getTime() / (24*3600000)); n = y % 10; setNumber( "cdd1-", n ); n = Math.floor(y / 10) % 10; //if (n == 0) n = 10; setNumber( "cdd2-", n ); n = Math.floor(y / 100); if (n == 0) n = 10; setNumber( "cdd3-", n ); } while(0); clockMode = 1; } else { if (clockMode != 2) { setVisibility("endseason", true); setVisibility("countdown", false); } clockMode = 2; } } else { if (clockMode != 3) { setVisibility("endseason", true); setVisibility("countdown", false); } clockMode = 3; } } setTimeout("updateClock()", 1001 - (new Date()).getMilliseconds()); } function getAlt(x) { var name = x; switch (name.charAt(0)) { case 'd': return 'days remaining'; break; case 'h': return 'hours remaining'; break; case 'm': return 'minutes remaining'; break; case 's': return 'seconds remaining'; break; default: return ''; } } function cd_DrawNumber(s) { var x; for(x=0;x<11;x++) document.write( '' + getAlt(s) + ''); }