var currentGPOffset = 0;
var currentSessionOffset = 0;
var previousGPOffset = 0;
var clockMode = 0;
var now,nowfudge;

function QueryString(key) {
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++) {
		if (QueryString.keys[i] == key) {
			value = QueryString.values[i];
			break;
		}
	}
	return value;
}

//
QueryString.keys = new Array();
QueryString.values = new Array();

function QueryString_Parse() {
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	for (var i=0;i<pairs.length;i++) {
		var pos = pairs[i].indexOf('=');
		if (pos >= 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, "/").replace(/\+/g," ")) + " GMT";
		if (nowfudge == null) {
			setInterval( "window.status = now.toUTCString()", 1000 );
			nowfudge = now - new Date(querystring_current_date);
		}
		now.setTime(now.getTime() - nowfudge );
		now.setTime(now.getTime() + ((0 * 24 + 0) * 60 + 0) * 60 * 1000);
	}	
}		


function GPArrayItem(id, t, d) {
	this.sessions = new Array();
	this.urls = new Array();
	this.id = id;
	this.offset = t;
	
	this.daterange = d;
	return this;
}

function GPSArrayItem(s, d, l) {
	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.scountdown = new Date(0);
	this.inProgress = false;
	return this;
}

function GPCurrent() {
	return new findGPCurrent();
}

function findGPCurrent() {
	var gp,s,gps,ss;
	var ret = this;
	
	gp = grand_prix[currentGPOffset]
	gps = gp.sessions;
	ss = gps[gps.length-1];
	previousGPOffset = currentGPOffset;
	currentSessionOffset = 0;	
 
    for (; currentSessionOffset < gps.length; currentSessionOffset++) {
        s = gps[currentSessionOffset];
        if (s.start > now) {
	        ret.inProgress = false;
	        ret.afterRace = false;
	        break;
        }
        else if (s.end >= now) {
	        ret.inProgress = true;
	        ret.afterRace = false;
	        break;
        }
        else if (s.isGP == true) {
	        ret.inProgress = false;
	        ret.afterRace = true;
	        //console.log("Is After Race");
	        break;
        }
    }

	ret.end = s.end
	ret.isGP = s.isGP;
	ret.countdown = new Date(ss.start - now);
	ret.scountdown = new Date(s.start - now);
	return this;
}


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)?"":"none";
	if (v.display != s)
		v.display = s;
}

function SetTime(sID, iTime) {
	if (sID == 'days' && iTime < 10) {
		SetHTML(sID, '0' + iTime);
	} else if (iTime < 10) {
		SetHTML(sID, '0' + iTime);
	} else {
		SetHTML(sID, iTime);
	}
}

function SetHTML(sID, sText) {
	if (document.getElementById(sID)) {
		document.getElementById(sID).innerHTML = sText;
	}
}

function ApplyLinks(liID, ahrefID, sURL){
    if (document.getElementById(liID) && document.getElementById(ahrefID)){
        document.getElementById(liID).style.display="";       
        document.getElementById(ahrefID).href=sURL;
    }   
}

function updateClock() {
	getNow();
	var gp = GPCurrent();	
	
	if(gp.scountdown.getTime()<=0){
		gp=0;
	}
	
    
     document.getElementById("clockSubItem").style.display = "";
	
		if (gp)	{
	
			do {
				y = gp.scountdown.getUTCSeconds();
				SetTime('seconds', y);
				SetTime('seconds2', y);
				n = Math.floor(y / 10);
				if ( n != 5 && clockMode == 1 ) break;					
				
				y = gp.scountdown.getUTCMinutes();
				SetTime('minutes', y);
				SetTime('minutes2', y);
				n = Math.floor(y / 10);
				if ( n != 5 && clockMode == 1 ) break;

				y = gp.scountdown.getUTCHours();
				SetTime('hours', y);
				SetTime('hours2', y);

				y = Math.floor(gp.scountdown.getTime() / (24*3600000));
				SetTime('days', y);
			} while(0);
			
			
			
		}else{
			
			 //document.getElementById("clockSubItem").innerHTML='<div style="margin-top:20px;width:500px; height:281px;border:1px solid #000;">hehe</div>';
			
		}
	
		
setTimeout("updateClock()", 1001 - (new Date()).getMilliseconds());
	
	
}

//window.addEvent('domready', updateClock);


var grand_prix = new Array();
grand_prix[0] = new GPArrayItem(796,120);
