var langType = 0;
var currentLap = 0;
var updateRacecast = true;
var trackReady = false;
var jayskiActive = false;
var mediaActive = false;
var pointsActive = false;
var havePoints = true;
var leaderboardActive = false;
var raceIsDone = false;
var activeDriverCard = 0;
var driverCardUpdater = 0;
var statusUpdater = 0;
var jayskiUpdater = 0;
var seasonYear = 0;
var thisRaceId = 0;
var totalLaps = 0;
var imgRef = "http://espn-ak.starwave.com"
var leaderboardArray = new Array(44)
leaderboardArray[0] = null
var miniLeaderboardTimeArray = new Array();
var miniLeaderboardCarArray = new Array();
var miniLeaderboardNameArray = new Array();

var greenFlag= new Image(110,117);
greenFlag.src=imgRef+"/i/racecast/flagGreen2.jpg";
greenFlag.border=0;

var redFlag= new Image(110,117);
redFlag.src=imgRef+"/i/racecast/flagRed2.jpg";
redFlag.border=0;

var yellowFlag= new Image(110,117);
yellowFlag.src=imgRef+"/i/racecast/flagYellow2.jpg";
yellowFlag.border=0;

var whiteFlag = new Image(110, 117);
whiteFlag.src=imgRef+"/i/racecast/flagWhite2.jpg";
whiteFlag.border=0;

var checkFlag = new Image(110, 117);
checkFlag.src=imgRef+"/i/racecast/flagCheck2.jpg";
checkFlag.border=0;


var dictionaryObj = new Object()
dictionaryObj['RaceLeaders0'] = 'Race Leaders'
dictionaryObj['RaceLeaders1'] = 'Líderes de la carrera'
dictionaryObj['PointStandings0'] = 'Point Standings'
dictionaryObj['PointStandings1'] = 'Tabla de puntuación'
dictionaryObj['Drivers0'] = 'Drivers'
dictionaryObj['Drivers1'] = 'Pilotos'
dictionaryObj['Totals0'] = 'Totals'
dictionaryObj['Totals1'] = 'Totales'
dictionaryObj['Wins/Poles0'] = 'Wins/Poles'
dictionaryObj['Wins/Poles1'] = 'Vict/Poles'
dictionaryObj['Averages0'] = 'Averages'
dictionaryObj['Averages1'] = 'Promedios'
dictionaryObj['Other0'] = 'Other'
dictionaryObj['Other1'] = 'Otro'
dictionaryObj['Model0'] = 'Model'
dictionaryObj['Model1'] = 'Modelo'
dictionaryObj['Team0'] = 'Team'
dictionaryObj['Team1'] = 'Equipo'
dictionaryObj['Driver0'] = 'Driver'
dictionaryObj['Driver1'] = 'Piloto'
dictionaryObj['Pts0'] = 'Pts'
dictionaryObj['Pts1'] = 'Puntos'
dictionaryObj['Earnings0'] = 'Earnings'
dictionaryObj['Earnings1'] = 'Ganancias'
dictionaryObj['Wins0'] = 'Wins'
dictionaryObj['Wins1'] = 'Victorias'
dictionaryObj['Poles0'] = 'Poles'
dictionaryObj['Poles1'] = 'Poles'
dictionaryObj['StartPosition0'] = 'Start Pos'
dictionaryObj['StartPosition1'] = 'Pos Salida'
dictionaryObj['FinishPosition0'] = 'Finish Pos'
dictionaryObj['FinishPosition1'] = 'Pos Llegada'
dictionaryObj['TopFinish0'] = 'Top Finish'
dictionaryObj['TopFinish1'] = 'Mejor Pos'
dictionaryObj['Top50'] = 'Top 5'
dictionaryObj['Top51'] = 'Top 5'
dictionaryObj['Top100'] = 'Top 10'
dictionaryObj['Top101'] = 'Top 10'
dictionaryObj['sec0'] = 'sec'
dictionaryObj['sec1'] = 'seg'
dictionaryObj['laps0'] = 'lap(s)'
dictionaryObj['laps1'] = 'vta(s)'


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


var unknownCar = new Image(40, 32);
unknownCar.src = imgRef+"/i/auto/racecast/carNum/unknown.gif"
unknownCar.border=0;

var unknownDriver = new Image()
unknownDriver.src = imgRef+"/i/rpm/racecast/drivers/mugNum_blank2.jpg"
unknownDriver.border=0;

for (var i = 0; i < 8; i++)
{
	miniLeaderboardTimeArray[i] = 0;
	miniLeaderboardCarArray[i] = 0;
}
for(var i = 1; i <= 43; i++)
{
	leaderboardArray[i] = false;
}


function initialize(season, raceId, languageType)
{
	seasonYear = season;
	thisRaceId = raceId;
	langType = languageType;

	if (langType == 1 || langType == '1')
	{
		greenFlag.src=imgRef+"/i/racecast/deportes/flagGreen2.jpg";

		redFlag.src=imgRef+"/i/racecast/deportes/flagRed2.jpg";

		yellowFlag.src=imgRef+"/i/racecast/deportes/flagYellow2.jpg";

		whiteFlag.src=imgRef+"/i/racecast/deportes/flagWhite2.jpg";

		checkFlag.src=imgRef+"/i/racecast/deportes/flagCheck2.jpg";
	}


	setTimeout("trackReadyStatus()", 3000)
	if (raceIsDone == false)
	{
		statusUpdater = setInterval("checkStatus()", 53167)
	}
}

function initializeRightColumn(langType)
{
	setTimeout("updateRightFrame(\""+langType+"\")", 1000)
}

function updateRightFrame(langType)
{
	if (document.getElementById("rightColumnFrame"))
	{
		if (streamUrl != '0' && streamUrl != 0 && langType != 1)
		{
			document.getElementById("rightColumnFrame").src = "http://www.coveritlive.com/index2.php/option=com_altcaster/task=viewaltcast/altcast_code="+streamUrl+"/height=380/width=372"
		}
		else
		{
			if (seriesId == 2 || seriesId == '2')
			{
				if (langType == 1 || langType == '1')
				{
					document.getElementById("rightColumnFrame").src = "http://sports.espn.go.com/rpm/racecast/format/getChatDeportes"
				}
				else
				{
					document.getElementById("rightColumnFrame").src = "http://sports.espn.go.com/rpm/racecast/format/getChat"
				}
			}
			else
			{
				if (langType == 1 || langType == '1')
				{
					document.getElementById("rightColumnFrame").src = "http://sports.espn.go.com/rpm/racecast/format/getMotionDeportes"
				}
				else
				{
					document.getElementById("rightColumnFrame").src = "http://sports.espn.go.com/rpm/racecast/format/getMotion"
				}
			}			
		}
	}
}

function trackReadyStatus()
{
	trackReady = true
	rePositionCars()
}


function handleCasterMessage(node, message)
{
	if (debugData == true)
	{
		console.log(node+','+message)
	}

	if (updateRacecast == true)
	{
		var nodeInfo = node.split("_");

		if(nodeInfo[0] == "L")
		{
			handleLeaderboardMessage(node,message);

		}
		else if(nodeInfo[0] == "H")
		{
			handleHeartbeat(node, message);
		}
		else if(nodeInfo[0] == "S")
		{
			handleStatus(node, message);
		}
		else if(nodeInfo[0] == "R")
		{
			handleRaceStatus(node, message);
		}
		else if(nodeInfo[0] == "F")
		{
			handleFinal(node, message)
		}
	}
}

function handleFinal(node, message)
{
	if (message == '1')
	{
		updateRacecast = false;
	}
	raceIsDone = true;
	clearInterval(statusUpdater)
	clearInterval(driverCardUpdater)
	clearInterval(jayskiUpdater)
	if (document.getElementById("flagImage"))
	{
		document.getElementById("flagImage").innerHTML = '<img src=\"'+checkFlag.src+'\" />'
	}
		isOver = true
}

function handleLeaderboardMessage(node, message)
{
	var dataArray = node.split("_");
	if (dataArray[1] != "0")
	{
		if (dataArray[1] == "1")
		{
			updateRaceLeader(node, message);
		}
		else
		{
			updateRaceLeaderboard(node, message);
		}
	}
	else
	{
		updateLaps(node, message);
	}
}

function handleHeartbeat(node, message)
{
	var nodeInfo = node.split("_");
	var flagString = 'flagGreen';
	var secondsString = '';
	var minutesString = '';
	var hoursString = '';

	if (nodeInfo[1] == "0")
	{
		if (document.getElementById("raceInfoClock"))
		{
			var clock = parseFloat(message);
			var minutes = clock / 60;
			var hours = clock / 3600;
			var hrs = parseInt(hours);
			var min = parseInt(minutes) % 60;
			var sec = clock % 60;
			sec = Math.round(sec);

			if (sec == 60)
			{
				sec = 0
			}

			if (sec < 10)
			{
				secondsString = '0'+sec;
			}
			else
			{
				secondsString = sec;
			}

			if (min < 10)
			{
				minutesString = '0'+min;
			}
			else
			{
				minutesString = min;
			}

			if (hrs < 10)
			{
				hoursString = '0'+hrs;
			}
			else
			{
				hoursString = hrs;
			}
			document.getElementById("raceInfoClock").innerHTML = hoursString + ':' + minutesString + ':' + secondsString;
		}
	}
	else if (nodeInfo[1] == "1")
	{
		if (raceIsDone == false)
		{
			if (message == 'R')
			{
				flagString = redFlag;
			}
			else if (message == 'Y')
			{
				flagString = yellowFlag;
			}
			else
			{
				flagString = greenFlag;
			}
			if (document.getElementById("flagImage"))
			{
				document.getElementById("flagImage").innerHTML = '<img src=\"'+flagString.src+'\" />';
			}
		}
	}
}

function handleRaceStatus(node, message)
{
	var nodeInfo = node.split("_");
	var data = '';
	var element = '';

	if (nodeInfo[1] == "0")
	{
		data = parseFloat(message).toFixed(3) + ' '+dictionaryObj['sec'+langType];
	 	element = "raceStatusFastestLapTime";
	}
	else if (nodeInfo[1] == "1")
	{
		data = parseFloat(message).toFixed(3) + ' mph';
		element = "raceStatusFastestLapSpeed";
	}
	else if (nodeInfo[1] == "2")
	{
		data = message;
		element = "raceStatusLeadChanges";
	}
	else if (nodeInfo[1] == "3")
	{
		data = message;
		element = "raceStatusLeaders";
	}
	else if (nodeInfo[1] == "4")
	{
		data = parseFloat(message).toFixed(3) + ' mph';
		element = "raceStatusAverageSpeed";
	}
	else if (nodeInfo[1] == "5")
	{
		data = message
		element = "raceStatusCautions"
	}
	else if (nodeInfo[1] == "6")
	{
		if (parseInt(message) != 'NaN')
		{

			totalLaps = parseInt(message)
			LapsLeft = totalLaps - currentLap - 1

			data = totalLaps
			element = "raceInfoTotalLaps"

			data2 = LapsLeft
			element2 = "raceStatusLapsLeft";

			if (document.getElementById(element2))
			{
				fade(element2, data2)
			}
		}
	}

	if (document.getElementById(element))
	{
		fade(element, data)
	}

}

function handleStatus(node, message)
{
	if (raceIsDone == false)
	{
		var flagString = greenFlag;

		if (message == 'R')
		{
			flagString = redFlag;
		}
		else if (message == 'Y')
		{
			flagString = yellowFlag;
		}
		else
		{
			flagString = greenFlag;
		}

		if (document.getElementById("flagImage"))
		{
			document.getElementById("flagImage").innerHTML = '<img src=\"'+flagString.src+'\" />';
		}
	}
}

function rePositionCars()
{
	if (trackReady == true)
	{


		var yCoordMap = new Array()
		yCoordMap[0] = 0;
		yCoordMap[1] = 24;
		yCoordMap[2] = 12;
		yCoordMap[3] = 27;
		yCoordMap[4] = 0;
		yCoordMap[5] = 24;
		yCoordMap[6] = 12;
		yCoordMap[7] = 27;


		var xCoordMap = new Array()
		xCoordMap[0] = 310;
		xCoordMap[1] = 265;
		xCoordMap[2] = 210;
		xCoordMap[3] = 175;
		xCoordMap[4] = 130;
		xCoordMap[5] = 85;
		xCoordMap[6] = 40;
		xCoordMap[7] = 0;

		var timeBehind = 0;
		var position = 0;
		var xCoord = 0;
		var yCoord = 0;

		var data = '';

		for(var i = 7; i >= 0; i--)
		{
			position = i;

			timeBehind = miniLeaderboardTimeArray[position];

			if (timeBehind < 10)
			{
				break;
			}
		}

		if ( (position+1) < 3)
		{
			timeBehind = miniLeaderboardTimeArray[2];
			position = 2;
		}


		for(var i = position; i >= 0; i--)
		{
			if (timeBehind < 0.000000001)
			{
				xCoord = ((i - position) * 34) + xCoordMap[i];
			}
			else
			{

				if (i == 0)
				{
					xCoord = ( ( -1 * (position)) * 34) + 310;
				}
				else
				{
					xCoord = ((i-position) * 34) + (300 - (300 * (miniLeaderboardTimeArray[i]/timeBehind)));
				}
			}

			yCoord = yCoordMap[i];

			logoString = map[miniLeaderboardCarArray[i]]

			data = data +'<span class=\"num\" style=\"left: ' + xCoord + 'px; top: ' + yCoord + 'px;\" ><a href=\"#\" onClick=\"getPlayerCardMiniTrack('+seasonYear+','+thisRaceId+','+miniLeaderboardCarArray[i]+')\"><img src=\"' + imgRef + logoString + '\" alt=\"'+ namesMap[miniLeaderboardCarArray[i]]+'\" width=\"30\" height=\"24\" border=\"0\"></a></span>';
			}

		if (document.getElementById("miniTrack"))
		{
			var element = "miniTrack";
			fadeImage(element,data)
		}
	}

}






function getJayskiContent()
{
	if (document.getElementById("jayskiCaution"))
	{
		document.getElementById("jayskiCaution").innerHTML = '<iframe src ="racecast/format/getJayskiContent?raceId=' + thisRaceId + '&pageType=caution" width=350 height=290 frameborder=0 scrolling="auto"></iframe>';
	}
	if (document.getElementById("jayskiRace"))
	{
		document.getElementById("jayskiRace").innerHTML = '<iframe src ="racecast/format/getJayskiContent?raceId=' + thisRaceId + '&pageType=race" width=350 height=290 frameborder=0 scrolling="auto"></iframe>';
	}
}


function popFeedBackDeportes(raceInfo) {
	var raceInfoStr = "";
	if(raceInfo != undefined)
	{
		raceInfoStr = "&raceId="+raceInfo;
	}
	raceInfoStr += "+<br /><b>Resolution:</b>+"+screen.width+"x"+screen.height+"+("+screen.availWidth+"x"+screen.availHeight+")";

	window.open('http://dynamic.espn.go.com/espn/bugsDeportes?url=http://sports.espn.go.com/rpm/racecast'+raceInfoStr,'Bugs','nonresizable,noscrollbars,height=400,width=400');
}

function popFeedBack(raceInfo) {
	var raceInfoStr = "";
	if(raceInfo != undefined)
	{
		raceInfoStr = "&raceId="+raceInfo;
	}
	raceInfoStr += "+<br /><b>Resolution:</b>+"+screen.width+"x"+screen.height+"+("+screen.availWidth+"x"+screen.availHeight+")";

	window.open('http://dynamic.espn.go.com/espn/bugs?url=http://sports.espn.go.com/rpm/racecast'+raceInfoStr,'Bugs','nonresizable,noscrollbars,height=400,width=400');
}

function setActiveDriverCard(driverId)
{
	activeDriverCard = driverId
}

function updateElement(element,data)
{
	document.getElementById(element).innerHTML = data;
}

function fade(element, data)
{

	new Effect.Fade(element,
		{	queue: 'end',
			duration: 1.0,
			afterFinish: function(){
				new Effect.Appear(element,
				{	duration: 1.0,
					beforeStart: function(){updateElement(element, data)}
				})
				}});
}

function fadeLeader(element,data)
{
	new Effect.Fade(element,
			{	duration: 1.0,
				afterFinish: function(){
					new Effect.Appear(element,
					{	duration: 1.0,
						beforeStart: function(){updateElement(element, data)}
					})
				}});
}

function fadeImage(element, data)
{
	new Effect.Fade(element,
			{	duration: 0.1,
				afterFinish: function(){updateElement(element, data)}
			})

	setTimeout("imageAppear(\""+element+"\")", 1500)

}

function imageAppear(element)
{
	new Effect.Appear(element,
	{	duration: 0.1
	})
}

function updateLaps(node, message)
{
	var nodeInfo = node.split("_")
	if (havePoints == true)
	{
		if (pointsActive)
		{
			updatePointsLeaderboard(seasonYear, thisRaceId)
		}
	}

	var data = ''
	var data2 = ''
	var data3 = ''
	var element = ''
	var element2 = ''
	var element3 = ''

	if (nodeInfo[2] == "0")
	{
		if (document.getElementById("raceInfoCurrentLap"))
		{
			element3 = "raceInfoCurrentLap"
			data3 = parseInt(message)+1
			currentLap = data3

			if (data3 > totalLaps)
			{
				data3 = totalLaps
			}

			updateElement(element3, data3)
		}

		element = "raceStatusLapsCompleted"
		data = message



		if (document.getElementById(element))
		{
			fade(element, data)
		}


		element2 = "raceStatusLapsLeft"
		data2 = totalLaps - parseInt(message)
		if (data2 < 0)
		{
			data2 = 0
		}

		if (document.getElementById(element2))
		{
			fade(element2, data2)
		}
	}

	if (parseInt(message)+1 == totalLaps)
	{
		if (document.getElementById("flagImage"))
		{
			document.getElementById("flagImage").innerHTML = '<img src=\"'+whiteFlag.src+'\" />'
		}
	}
}


function raceLeaderboardUpdate(node, message)
{
	var nodeInfo = node.split("_")
	var position = parseInt(nodeInfo[1]);

	if (document.getElementById("raceLeaderboard_"+position))
	{
		updateRaceLeaderboard(node, message)
	}


}

function updateRaceLeaderboard(node, message)
{
	if (message != null || message != '')
	{
		var nodeInfo = node.split("_")
		var position = nodeInfo[1]

		var element = ''
		var data = ''

		var driverId;
		var lastPosition
		var dataTypes = new Array()
		dataTypes[0] = driverId;
		dataTypes[1] = "raceLeaderboard_"+position+"_carNumber"
		dataTypes[2] = "raceLeaderboard_"+position+"_Name"
		dataTypes[3] = "raceLeaderboard_"+position+"_behind"
		dataTypes[4] = lastPosition;

		messageType = parseInt(nodeInfo[2])

		if (parseInt(position) < 9)
		{
			if (messageType == 0)
			{
				miniLeaderboardCarArray[parseInt(position)-1] = message
				miniLeaderboardNameArray[parseInt(position)-1] = message
			}
			else if (messageType == 3)
			{
				miniLeaderboardTimeArray[parseInt(position)-1] = parseFloat(message)
			}
		}


		if (position == "8" && messageType == 3)
		{
			rePositionCars()
		}

		if (messageType == 0)
		{
			data = namesMap[message]
			element = "raceLeaderboard_"+position+"_Name"

			if (document.getElementById(element))
			{
				updateElement(element, data)
			}

			data = carsMap[message]
			element = "raceLeaderboard_"+position+"_carNumber"

			if (document.getElementById(element))
			{
				updateElement(element, data)
			}

			data = '[<a href=\"#\" onClick=\"getPlayerCard('+seasonYear+','+thisRaceId+','+parseInt(message)+')\">+</a>]'
			element = "raceLeaderboard_"+position+"_Link"

			if (document.getElementById(element))
			{
				updateElement(element, data)
			}
		}

		if (messageType == 3)
		{
			if (message != null && message != '' && parseFloat(message) != 'NaN')
			{
				if (message.indexOf("LAPS") == -1)
				{
					element = dataTypes[messageType]
					data = parseFloat(message).toFixed(3) + ' '+dictionaryObj['sec'+langType]
				}
				else
				{
					element = dataTypes[messageType]
					data = message.replace("LAPS", " "+dictionaryObj['laps'+langType])
				}
			}

			if (document.getElementById(element))
			{
				updateElement(element, data)
			}
		}

		if (messageType == 4)
		{
			if (parseInt(position) < parseInt(message))
			{
				element = "raceLeaderboard_"+position+"_status"
				data = '<img src=\"'+imgRef+'/i/arrows/darkBg/arrowUp_green.gif\" alt=\"up\">'
			}
			else if (parseInt(position) > parseInt(message))
			{
				element = "raceLeaderboard_"+position+"_status"
				data = '<img src=\"'+imgRef+'/i/arrows/darkBg/arrowDown_red.gif\" alt=\"down\">'
			}
			else
			{
				element = "raceLeaderboard_"+position+"_status"
				data = '<img src=\"'+imgRef+'/i/arrows/darkBg/arrowNeu_tan.gif\" alt=\"same\">'
			}

			if (document.getElementById(element))
			{
				updateElement(element, data)
			}
		}
	}

}


function updateRaceLeader(node, message)
{
	var data = ''
	var data2 = ''
	var element = ''
	var element2 = ''
	var noUpdate = false;

	var nodeInfo = node.split("_")

	var driverId;
	var dataTypes = new Array()
	dataTypes[0] = '';
	dataTypes[1] = "raceLeaderCarNumber"
	dataTypes[2] = "raceLeaderName"
	dataTypes[3] = "raceLeaderLead"
	dataTypes[4] = "raceLeaderboard_status"
	dataTypes[5] = "raceLeaderBestLapSpeed"
	dataTypes[6] = "raceLeaderLastLapSpeed"
	dataTypes[7] = "raceLeaderLapsLed"
	dataTypes[8] = "raceLeaderManufacturer"
	dataTypes[9] = "raceLeaderTeamName"

	var messageType = parseInt(nodeInfo[2])
	var position = parseInt(nodeInfo[1])

	if (messageType == 0)
	{

		imageString = imagesMap[message]
		mugString = map[message]
		switchMugShot(imageString)
		switchMugShotCar(mugString)

		miniLeaderboardCarArray[0] = message

		data2 = '<h2><span id=\"raceLeaderName\">'+namesMap[message]+'</span></h2><div class=\"modTeam\"><span id=\"raceLeaderManufacturer\"><strong>'+dictionaryObj['Model'+langType]+': </strong>'+modelsMap[message]+'</span>&nbsp;&nbsp;<span id=\"raceLeaderTeamName\"><strong>'+dictionaryObj['Team'+langType]+': </strong>'+teamsMap[message]+'</span></div>'
		element2 = 'leaderModule'
	}
	else if (messageType == 5 || messageType == 6)
	{
		data2 = parseFloat(message).toFixed(3) + ' mph'
		element2 = dataTypes[messageType]
	}
	else if (messageType == 3)
	{
		if (message != null && message != '' && parseFloat(message) != 'NaN')
		{
			if (message.indexOf("LAPS") == -1)
			{
				data2 = parseFloat(message).toFixed(3) + '&nbsp;'+dictionaryObj['sec'+langType]
				element2 = dataTypes[messageType]
			}
			else
			{
				data2 = message.replace("LAPS", " "+dictionaryObj['laps'+langType]);
				element2 = dataTypes[messageType]
			}
		}
		else
		{
			noUpdate = true;
		}
	}
	else
	{
		data2 = message
		element2 = dataTypes[messageType]
	}

	if (noUpdate == false)
	{
		if (document.getElementById(element2))
		{
			fade(element2, data2)
		}
	}

	var htmlElement = ''

	//update leaderboard as well...
	if (messageType == 0)
	{

		htmlElement = "raceLeaderboard_1_Link"
		data = message
		element = "L_1_0"
		if (document.getElementById(htmlElement))
		{
			updateRaceLeaderboard(element,data)
		}

		htmlElement = "raceLeaderboard_1_carNumber"
		data = carsMap[message]
		element = "L_1_1"
		if (document.getElementById(htmlElement))
		{
			updateRaceLeaderboard(element,data)
		}

		htmlElement = "raceLeaderboard_1_Name"
		data = namesMap[message]
		element = "L_1_2"
		if (document.getElementById(htmlElement))
		{
			updateRaceLeaderboard(element,data)
		}
	}

	if (messageType == 4)
	{
		htmlElement = "raceLeaderboard_1_status"
		data = message
		element = "L_1_4"

		if (document.getElementById(htmlElement))
		{
			updateRaceLeaderboard(element,data)
		}
	}




}


function updatePointLeaders()
{

	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{

		var myXML = xmlHttp.responseXML

		if (myXML != null)
		{

			var leaderboardXML = myXML.getElementsByTagName('points');

			if (leaderboardXML[0] != null)
			{
				var nodes = leaderboardXML[0].getElementsByTagName('driver');

				for (var i = 0; i < 50; i++)
				{
					position = i+1;

					if (document.getElementById("pointsLeaderboard_"+position+"_name"))
					{

						document.getElementById("pointsLeaderboard_"+position+"_name").innerHTML = nodes[i].childNodes[1].firstChild.nodeValue;
					}


					if (document.getElementById("pointsLeaderboard_"+position+"_Link"))
					{
						if (nodes[i].childNodes[5].firstChild.nodeValue == 'true')
						{
							linkText = "[<a href=\"#\" onClick=\"getPlayerCard("+seasonYear+","+thisRaceId+","+nodes[i].childNodes[0].firstChild.nodeValue+")\">+</a>]"
						}
						else
						{
							linkText = ' '
						}
						document.getElementById("pointsLeaderboard_"+position+"_Link").innerHTML = linkText
					}



					if (document.getElementById("pointsLeaderboard_"+position+"_carNumber"))
					{
						if (nodes[i].childNodes[2].firstChild)
						{
							document.getElementById("pointsLeaderboard_"+position+"_carNumber").innerHTML = nodes[i].childNodes[2].firstChild.nodeValue;
						}
						else
						{
							document.getElementById("pointsLeaderboard_"+position+"_carNumber").innerHTML = ' ';
						}
					}

					if (document.getElementById("pointsLeaderboard_"+position+"_points"))
					{
						if (nodes[i].childNodes[3].firstChild)
						{
							document.getElementById("pointsLeaderboard_"+position+"_points").innerHTML = nodes[i].childNodes[3].firstChild.nodeValue;
						}
						else
						{
							document.getElementById("pointsLeaderboard_"+position+"_points").innerHTML = ' ';
						}
					}


					if (document.getElementById("pointsLeaderboard_"+position+"_status"))
					{
						if (nodes[i].childNodes[4].firstChild)
						{
							if(parseInt(nodes[i].childNodes[4].firstChild.nodeValue) > 0)
							{
								var data = '<img src="'+imgRef+'/i/arrows/darkBg/arrowUp_green.gif" alt="">(+'+nodes[i].childNodes[4].firstChild.nodeValue+')'
								document.getElementById("pointsLeaderboard_"+position+"_status").innerHTML = data
							}
							else if ( parseInt(nodes[i].childNodes[4].firstChild.nodeValue) < 0)
							{
								var data = '<img src="'+imgRef+'/i/arrows/darkBg/arrowDown_red.gif" alt="">('+nodes[i].childNodes[4].firstChild.nodeValue+')'
								document.getElementById("pointsLeaderboard_"+position+"_status").innerHTML = data
							}
							else
							{
								var data = '<img src="'+imgRef+'/i/arrows/darkBg/arrowNeu_tan.gif" alt="">'
								document.getElementById("pointsLeaderboard_"+position+"_status").innerHTML = data
							}
						}
						else
						{
							var data = '<img src="'+imgRef+'/i/arrows/darkBg/arrowNeu_tan.gif" alt="">'
							document.getElementById("pointsLeaderboard_"+position+"_status").innerHTML = data
						}
					}
				}
			}
		}
	}
}



function switchMugShot(mugshotString)
{
	data = '<img src="'+imgRef+mugshotString+'" alt="">'
	fadeLeader("raceLeaderMugshot", data)
}

function switchMugShotCar(mugshotString)
{
	data = '<img src="'+imgRef+mugshotString+'" alt="">'
	fadeLeader("raceLeaderMugshotCar", data)
}

function getPlayerCard(season, raceId, driverId)
{
	document.forms["driverDropdown"].driverSelecter.options[0].selected = true;
	switchDriver(season, raceId, driverId, 1)
	changeLeaderboard('driverCard', '3')
}

function getPlayerCardMiniTrack(season, raceId, driverId)
{
	document.forms["driverDropdown"].driverSelecter.options[0].selected = true;
	switchDriver(season, raceId, driverId, 1)
	changeTab('2')
	changeLeaderboard('driverCard', '3')
}



function updateMotionPlayer()
{
	if (document.getElementById("multimediaContent"))
	{
		document.getElementById("multimediaContent").innerHTML = '<iframe src =\"http://proxy.espn.go.com/rpm/users/andyp/racecast/format/getMultimediaContent?raceId='+thisRaceId+'\" width=335 height=300 frameborder=0 scrolling=\"no\"></iframe>'
	}
}



function stateChangedDriverCard()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		var myXML = xmlHttp.responseXML

		if (myXML != null)
		{
			updateDriverCard(myXML)
		}

	}
}

function updateDriverCardStatic(driverId, newDriver)
{
	if (newDriver == 1)
	{
		if (document.getElementById('driverCardMug'))
		{
			data = '<img src="http://espn-ak.starwave.com/'+mugShotMap[driverId]+'" alt="">'
			fadeImage('driverCardMug', data)
		}

		if (document.getElementById('driverCardName'))
		{
			linkText = "<a style=\"text-decoration: none; color: #FFF;\" href=\"http://sports.espn.go.com/rpm/driver?driverId="+driverId+"&seriesId="+seriesId+"\" target=\"blank\">"+namesMap[driverId]+"</a>"
			document.getElementById('driverCardName').innerHTML = linkText
		}

		if (document.getElementById('driverCardCarNumber'))
		{
			document.getElementById('driverCardCarNumber').innerHTML = '#'+carsMap[driverId]
		}

		if (document.getElementById('driverCardManufacturer'))
		{
			document.getElementById('driverCardManufacturer').innerHTML = modelsMap[driverId]
		}

		if (document.getElementById('driverCardSponsorName'))
		{
			document.getElementById('driverCardSponsorName').innerHTML = sponsorMap[driverId]
		}

		if (document.getElementById('driverCardTeam'))
		{
			document.getElementById('driverCardTeam').innerHTML = teamsMap[driverId]
		}

		if (document.getElementById('driverCardCrewChief'))
		{
			document.getElementById('driverCardCrewChief').innerHTML = crewChiefMap[driverId]
		}

		if (document.getElementById('driverCardTire'))
		{
			document.getElementById('driverCardTire').innerHTML = tireMap[driverId]
		}

		if (document.getElementById('driverCardPlace'))
		{
			document.getElementById('driverCardPlace').innerHTML = ' '
		}

		if (document.getElementById('driverCardLastLapTime'))
		{
			document.getElementById('driverCardLastLapTime').innerHTML = ' '
		}

		if (document.getElementById('driverCardFastestLapSpeed'))
		{
			document.getElementById('driverCardFastestLapSpeed').innerHTML = ' '
		}

		if (document.getElementById('driverCardLastLapSpeed'))
		{
			document.getElementById('driverCardLastLapSpeed').innerHTML = ' '
		}

		if (document.getElementById('driverCardBehind'))
		{
			document.getElementById('driverCardBehind').innerHTML = ' '
		}

		if (document.getElementById('driverCardFastestLapNumber'))
		{
			document.getElementById('driverCardFastestLapNumber').innerHTML = ' '
		}

		if (document.getElementById('driverCardPits'))
		{
			document.getElementById('driverCardPits').innerHTML = ' '
		}

		if (document.getElementById('driverCardFastestLapTime'))
		{
			document.getElementById('driverCardFastestLapTime').innerHTML = ' '
		}

		if (document.getElementById('driverCardLapsLed'))
		{
			document.getElementById('driverCardLapsLed').innerHTML = ' '
		}

		if (document.getElementById('driverCardStatus'))
		{
			document.getElementById('driverCardStatus').innerHTML = ' '
		}
	}

}

function updateDriverCard(myXML)
{

	var driverXML = myXML.getElementsByTagName('driver');
	if (driverXML[0] != null)
	{
		var driverId = driverXML[0].getAttribute("driverId");
		var linkText = ''
		setActiveDriverCard(driverId)

		//var driverName = driverXML[0].childNodes[0].firstChild.nodeValue
		//var mugShotString = driverXML[0].childNodes[1].firstChild.nodeValue
		//var data = '<img src="http://espn-ak.starwave.com/'+mugShotString+'" alt="">'
		//var carNumber = driverXML[0].childNodes[2].firstChild.nodeValue
		var startingPosition =  driverXML[0].childNodes[0].firstChild.nodeValue
		var currentPosition =  driverXML[0].childNodes[1].firstChild.nodeValue
		//var manufacturer =  driverXML[0].childNodes[5].firstChild.nodeValue
		//var sponsor =  driverXML[0].childNodes[6].firstChild.nodeValue
		//var teamName = driverXML[0].childNodes[7].firstChild.nodeValue
		//var crewChief = driverXML[0].childNodes[8].firstChild.nodeValue
		//var tire = driverXML[0].childNodes[9].firstChild.nodeValue
		var lastLapTime = driverXML[0].childNodes[2].firstChild.nodeValue
		var lastLapSpeed = driverXML[0].childNodes[3].firstChild.nodeValue
		var fastestLapNumber = driverXML[0].childNodes[4].firstChild.nodeValue
		var fastestLapTime = driverXML[0].childNodes[5].firstChild.nodeValue
		var fastestLapSpeed = driverXML[0].childNodes[6].firstChild.nodeValue
		var behind = driverXML[0].childNodes[7].firstChild.nodeValue
		var pits = driverXML[0].childNodes[8].firstChild.nodeValue
		var lapsLed = driverXML[0].childNodes[9].firstChild.nodeValue
		var status = driverXML[0].childNodes[10].firstChild.nodeValue
		var newDriver = driverXML[0].childNodes[11].firstChild.nodeValue

		clearInterval(driverCardUpdater)
		driverCardUpdater = setInterval("switchDriver(\""+seasonYear+"\",\""+thisRaceId+"\",\""+activeDriverCard+"\", \"0\")", 60000)

		if (document.getElementById('driverCardPlace'))
		{
			document.getElementById('driverCardPlace').innerHTML = currentPosition
		}

		if (document.getElementById('driverCardLastLapTime'))
		{
			document.getElementById('driverCardLastLapTime').innerHTML = lastLapTime
		}

		if (document.getElementById('driverCardFastestLapSpeed'))
		{
			document.getElementById('driverCardFastestLapSpeed').innerHTML = fastestLapSpeed
		}

		if (document.getElementById('driverCardLastLapSpeed'))
		{
			document.getElementById('driverCardLastLapSpeed').innerHTML = lastLapSpeed
		}

		if (document.getElementById('driverCardBehind'))
		{
			if (langType == 1)
			{
				behind = behind.replace("sec", "seg")
				behind = behind.replace("lap(s)", "vta(s)")
			}
			document.getElementById('driverCardBehind').innerHTML = behind
		}

		if (document.getElementById('driverCardFastestLapNumber'))
		{
			document.getElementById('driverCardFastestLapNumber').innerHTML = fastestLapNumber
		}

		if (document.getElementById('driverCardPits'))
		{
			document.getElementById('driverCardPits').innerHTML = pits
		}

		if (document.getElementById('driverCardFastestLapTime'))
		{
			document.getElementById('driverCardFastestLapTime').innerHTML = fastestLapTime
		}

		if (document.getElementById('driverCardLapsLed'))
		{
			document.getElementById('driverCardLapsLed').innerHTML = lapsLed
		}

		if (document.getElementById('driverCardStatus'))
		{
			document.getElementById('driverCardStatus').innerHTML = status
		}
	}


}

function changeJayski(pageType, navId)
{
	document.getElementById('jayskiCaution').style.display = 'none';
	document.getElementById('jayskiRace').style.display = 'none';

	document.getElementById(pageType).style.display = 'block';

	if (navId == "1")
	{
		data = '<a href=\"#\" onClick=\"changeJayski(\'jayskiRace\', \'2\')\">Race/Pit Notes</a> ';

		document.getElementById('jayskiNav_1').innerHTML = "Caution Report "
		document.getElementById('jayskiNav_2').innerHTML = data
	}
	else
	{
		data = '<a href=\"#\" onClick=\"changeJayski(\'jayskiCaution\', \'1\')\">Caution Report</a> ';

		document.getElementById('jayskiNav_2').innerHTML = "Race/Pit Notes "
		document.getElementById('jayskiNav_1').innerHTML = data
	}
}

function changeTab(tabname) {

	for (var i = 1; i <= 6; i++)
	{
		if (document.getElementById('tab_'+i))
		{
  			document.getElementById('tab_'+i).style.display = 'none';
		}
	}

	if (tabname == 5)
	{
		mediaActive = true;
		updateMotionPlayer()
	}
	else
	{
		mediaActive = false;
	}

	if (tabname != 4)
	{
		jayskiActive = false;
		if (jayskiUpdater != 0)
		{
			clearInterval(jayskiUpdater)
			jayskiUpdater = 0
		}
	}
	else
	{
		jayskiActive = true;
		jayskiUpdater = setInterval("getJayskiContent()", 30000)
	}

	if (tabname == 2)
	{
		leaderboardActive = true;
	}
	else
	{
		leaderboardActive = false;
	}

  document.getElementById('tab_'+tabname).style.display = 'block';

  for (var i=1; i<=6; i++)
  {
	  if (document.getElementById('nav_'+i))
	  {
		  document.getElementById('nav_'+i).className='off';
	  }
  }

  document.getElementById('nav_'+tabname).className='on';
}

function changeLeaderboard(boardName, navId)
{
	for(var i = 1; i <= 3; i++)
	{
		if (document.getElementById('leaderboard_'+i))
		{
			document.getElementById('leaderboard_'+i).style.display = 'none';
		}
	}

	document.getElementById('leaderboard_'+navId).style.display = 'block';

	if (navId == '1')
	{
		pointsActive = false;
		data1 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_2\', \'2\')\">'+dictionaryObj['PointStandings'+langType]+'</a> ';
		data2 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_3\', \'3\')\">'+dictionaryObj['Drivers'+langType]+'</a> ';


		document.getElementById('leaderboardNav_1').innerHTML = dictionaryObj['RaceLeaders'+langType];
		if (document.getElementById('leaderboardNav_2'))
		{
			document.getElementById('leaderboardNav_2').innerHTML = data1;
		}
		if (document.getElementById('leaderboardNav_3'))
		{
			document.getElementById('leaderboardNav_3').innerHTML = data2;
		}
	}
	else if (navId == '2')
	{
		pointsActive = true;
		updatePointsLeaderboard(seasonYear, thisRaceId)
		data1 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_1\', \'1\')\">'+dictionaryObj['RaceLeaders'+langType]+'</a> ';
		data2 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_3\', \'3\')\">'+dictionaryObj['Drivers'+langType]+'</a> ';

		document.getElementById('leaderboardNav_2').innerHTML = dictionaryObj['PointStandings'+langType];
		if (document.getElementById('leaderboardNav_1'))
		{
			document.getElementById('leaderboardNav_1').innerHTML = data1;
		}
		if (document.getElementById('leaderboardNav_3'))
		{
			document.getElementById('leaderboardNav_3').innerHTML = data2;
		}
	}
	else
	{
		pointsActive = false;
		data1 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_1\', \'1\')\">'+dictionaryObj['RaceLeaders'+langType]+'</a> ';
		data2 = '<a href=\"#\" onClick=\"changeLeaderboard(\'leaderboard_2\', \'2\')\">'+dictionaryObj['PointStandings'+langType]+'</a> ';

		if (document.getElementById('leaderboardNav_1'))
		{
			document.getElementById('leaderboardNav_1').innerHTML = data1;
		}
		if (document.getElementById('leaderboardNav_2'))
		{
			document.getElementById('leaderboardNav_2').innerHTML = data2;
		}
		document.getElementById('leaderboardNav_3').innerHTML = dictionaryObj['Drivers'+langType];
	}
}

function changeStats(statName, navId)
{
	var statType = new Array();
	statType[0] = 'none';
	statType[1] = dictionaryObj['Totals'+langType];
	statType[2] = dictionaryObj['Wins/Poles'+langType];
	statType[3] = dictionaryObj['Averages'+langType];
	statType[4] = dictionaryObj['Other'+langType];

	for (var i = 1; i <= 4; i++)
	{
		document.getElementById('stats'+i).style.display = 'none';
	}

	document.getElementById(statName).style.display = 'block';

	for (var i = 1; i <= 4; i++)
	{
		if (i == navId)
		{
			document.getElementById('statsNav_'+navId).innerHTML = statType[navId] + ' ';
		}
		else
		{
			document.getElementById('statsNav_'+i).innerHTML = '<a href=\"#\" onClick=\"changeStats(\'stats'+i+'\', \''+i+'\')\">'+statType[i]+'</a> ';
		}
	}
}



function makeXmlHttpRequest(xmlUrl, returnFunction, param1Name, param1, param2Name, param2, param3Name, param3, param4Name, param4, param5Name, param5)
{
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	var url = xmlUrl

	if (param1Name != null)
	{
		url=url+"?"+param1Name+'='+param1
	}

	if (param2Name != null)
	{
		url=url+"&"+param2Name+'='+param2
	}

	if (param3Name != null)
	{
		url=url+"&"+param3Name+'='+param3
	}

	if (param4Name != null)
	{
		url=url+"&"+param4Name+'='+param4
	}

	if (param5Name != null)
	{
		url=url+"&"+param5Name+'='+param5
	}

	url=url+"&lapNumber="+currentLap+"&langType="+langType



	xmlHttp.onreadystatechange=returnFunction
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}


function checkStatus()
{
	makeXmlHttpRequest("racecast/xml/statusXML", updateStatus, "raceId", thisRaceId, null, null, null, null, null, null, null, null)
}



function updatePointsLeaderboard(season, raceId)
{
	makeXmlHttpRequest("racecast/xml/pointsLeaderboardXML", updatePointLeaders, "season", season, "raceId", raceId, "seriesId", seriesId, null, null, null, null)
}

function switchDriver(season, raceId, driverId, newDriver)
{
	if (driverId!='nothing')
	{
		if (newDriver == 1)
		{
			updateDriverCardStatic(driverId, newDriver)
		}
		makeXmlHttpRequest("racecast/xml/driverCardXML", stateChangedDriverCard, "season", season, "raceId", raceId, "driverId", driverId, "seriesId", seriesId, "newDriver", newDriver)
	}
}

function getNewXMLStatFeed(season, sortString)
{
	makeXmlHttpRequest("racecast/xml/statSortXML", stateChanged, "season", season, "statType", sortString, "seriesId", seriesId, null, null, null, null)
}




function GetXmlHttpObject()
{
	var objXMLHttp=null
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}


function updateStatus()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		var myXML = xmlHttp.responseXML

		if (myXML != null)
		{

			var nodes = myXML.getElementsByTagName('raceStatus')

			if (nodes[0] != null)
			{

				var hasJayski = nodes[0].childNodes[0].firstChild.nodeValue
				var hasPoints = nodes[0].childNodes[1].firstChild.nodeValue
				var hasMotion = nodes[0].childNodes[2].firstChild.nodeValue

				if (hasJayski == 'Yes')
				{
					if (document.getElementById("nav_4"))
					{
						document.getElementById("nav_4").style.display = 'block'
						if (jayskiActive == true)
						{
							document.getElementById('nav_4').className='on';
						}
						else
						{
							document.getElementById('nav_4').className='off';
						}
					}
				}
				else
				{
					if (document.getElementById("nav_4"))
					{
						document.getElementById("nav_4").style.display = 'none'
						document.getElementById('tab_4').style.display = 'none';
						if (jayskiUpdater != 0)
						{
							clearInterval(jayskiUpdater)
							jayskiUpdater = 0
						}

						if (jayskiActive == true)
						{
							jayskiActive = false;
							document.getElementById('tab_1').style.display = 'block';
							document.getElementById('nav_1').className='on';
						}
					}
				}

				if (hasMotion == 'Yes')
				{
					if (document.getElementById("nav_5"))
					{
						document.getElementById("nav_5").style.display = 'block'
						if (mediaActive == true)
						{
							document.getElementById('nav_5').className='on';
						}
						else
						{
							document.getElementById('nav_5').className='off';
						}
					}
				}
				else
				{
					if (document.getElementById("nav_5"))
					{
						document.getElementById("nav_5").style.display = 'none'
						document.getElementById('tab_5').style.display = 'none';

						if (mediaActive == true)
						{
							mediaActive = false;
							document.getElementById('tab_1').style.display = 'block';
							document.getElementById('nav_1').className='on';
						}
					}
				}

				if (hasPoints == 'Yes')
				{
					if (pointsActive == false)
					{
						data = '<h3 style="display: inline;"> | <span id="leaderboardNav_2" style="display: inline;"><a href="#" onClick=\"changeLeaderboard(\'leadeboard_2\', \'2\')\" >Point Standings</a></span></h3>';

						document.getElementById("hasPoints").innerHTML = data
					}

					havePoints = true;
					document.getElementById('hasPoints').style.display = 'inline'
				}
				else
				{
					havePoints = false;
					document.getElementById('hasPoints').style.display = 'none'
					document.getElementById('leaderboard_2').style.display = 'none'

					if (leaderboardActive == true)
					{
						if (pointsActive == true)
						{
							pointsActive = false;
							document.getElementById('leaderboardNav_1').innerHTML = "Race Leaders ";
							document.getElementById('leaderboard_1').style.display = 'block'
						}
					}
				}

			}
		}
	}
}


function stateChanged()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		var myXML = xmlHttp.responseXML
		var statsXML = myXML.getElementsByTagName('standings');
		if (statsXML[0] != null)
		{
			var sortBy = statsXML[0].getAttribute("sort");
			if (sortBy == "rank" || sortBy == "winnings")
			{
				buildStatTableTotals(myXML)
			}
			else if (sortBy == "wins" || sortBy == "poles")
			{
				buildStatTableWinsPoles(myXML)
			}
			else if (sortBy == "avgStartPos" || sortBy == "avgFinishPos")
			{
				buildStatTableAverages(myXML)
			}
			else
			{
				buildStatTableOther(myXML)
			}
		}
	}
}

function buildStatTableTotals(statXML)
{
	var statsXML = statXML.getElementsByTagName('standings');

	if (statsXML != null)
	{
		var seasonYear = statsXML[0].getAttribute("season");
		var data = ''
		statTableDiv = document.getElementById('stats1');
		var nodes = statXML.getElementsByTagName('driver');
		data = '<table cellpadding="3" cellspacing="1" class="tablehead" style="width: 93%;"><tr class="colhead" style="background: #CC9900;"><td width="20">#</td><td width="150">'+dictionaryObj['Driver'+langType]+'</td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'rank\')">'+dictionaryObj['Pts'+langType]+'</a></td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'winnings\')">'+dictionaryObj['Earnings'+langType]+'</a></td></tr>'
		for (i = 0; i < nodes.length; i++)
		{
			rank = i+1;
			if (nodes[i].childNodes[0].firstChild == null)
			{
				carNum = ' ';
			}
			else
			{
				carNum = nodes[i].childNodes[0].firstChild.nodeValue;
			}
			if (nodes[i].childNodes[1].firstChild == null)
			{
				manufacturer = 'N/A';
			}
			else
			{
				manufacturer = nodes[i].childNodes[1].firstChild.nodeValue;
			}
			if (manufacturer == "Chevrolet")
			{
				manufacturer = "Chevy"
			}
			if (nodes[i].childNodes[2].firstChild == null)
			{
				driverName = ' ';
			}
			else
			{
				driverName = nodes[i].childNodes[2].firstChild.nodeValue;
			}
			if (nodes[i].childNodes[5].firstChild == null)
			{
				points = ' ';
			}
			else
			{
				points = nodes[i].childNodes[5].firstChild.nodeValue;
			}
			if (nodes[i].childNodes[11].firstChild == null)
			{
				winnings = ' ';
			}
			else
			{
				winnings = nodes[i].childNodes[11].firstChild.nodeValue;
			}
			if(rank % 2 == 1)
			{
				data = data + '<tr class="oddrow">'
			}
			else
			{
				data = data + '<tr class="evenrow">'
			}
			data = data + '<td>' + rank + '</td><td>' + driverName + '</td><td>' + points + '</td><td>$' + winnings + '</td></tr>'
		}
		data = data + '</table>'
		if (statTableDiv)
		{
			statTableDiv.innerHTML = data;
		}
	}

}

function buildStatTableWinsPoles(statXML)
{

	var statsXML = statXML.getElementsByTagName('standings');

	if (statsXML != null)
	{

		var seasonYear = statsXML[0].getAttribute("season");

		var data = ''
		statTableDiv = document.getElementById('stats2');

		var nodes = statXML.getElementsByTagName('driver');

		data = '<table cellpadding="3" cellspacing="1" class="tablehead" style="width: 93%;" ><tr class="colhead" style="background: #CC9900;"><td width="20">#</td><td width="150">'+dictionaryObj['Driver'+langType]+'</td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'wins\')">'+dictionaryObj['Wins'+langType]+'</a></td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'poles\')">'+dictionaryObj['Poles'+langType]+'</a></td></tr>'

		for (i = 0; i < nodes.length; i++)
		{
			rank = i+1;

			if (nodes[i].childNodes[0].firstChild == null)
			{
				carNum = ' ';
			}
			else
			{
				carNum = nodes[i].childNodes[0].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[1].firstChild == null)
			{
				manufacturer = 'N/A';
			}
			else
			{
				manufacturer = nodes[i].childNodes[1].firstChild.nodeValue;
			}

			if (manufacturer == "Chevrolet")
			{
				manufacturer = "Chevy"
			}

			if (nodes[i].childNodes[2].firstChild == null)
			{
				driverName = ' ';
			}
			else
			{
				driverName = nodes[i].childNodes[2].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[12].firstChild == null)
			{
				wins = ' ';
			}
			else
			{
				wins = nodes[i].childNodes[12].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[13].firstChild == null)
			{
				poles = ' ';
			}
			else
			{
				poles = nodes[i].childNodes[13].firstChild.nodeValue;
			}

			if(rank % 2 == 1)
			{
				data = data + '<tr class="oddrow">'
			}
			else
			{
				data = data + '<tr class="evenrow">'
			}

			data = data + '<td>' + rank + '</td><td>' + driverName + '</td><td>' + wins + '</td><td>' + poles + '</td></tr>'

		}

		data = data + '</table>'

		if (statTableDiv)
		{
			statTableDiv.innerHTML = data;
		}
	}
}

function buildStatTableAverages(statXML)
{

	var statsXML = statXML.getElementsByTagName('standings');

	if (statsXML != null)
	{

		var seasonYear = statsXML[0].getAttribute("season");

		var data = ''
		statTableDiv = document.getElementById('stats3');

		var nodes = statXML.getElementsByTagName('driver');

		data = '<table cellpadding="3" cellspacing="1" class="tableheader" ><tr class="colhead" style="background: #CC9900;"><td width="20">#</td><td width="150">'+dictionaryObj['Driver'+langType]+'</td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'avgStartPos\')">'+dictionaryObj['StartPosition'+langType]+'</a></td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'avgFinishPos\')">'+dictionaryObj['FinishPosition'+langType]+'</a></td></tr>'

		for (i = 0; i < nodes.length; i++)
		{
			rank = i+1;

			if (nodes[i].childNodes[0].firstChild == null)
			{
				carNum = ' ';
			}
			else
			{
				carNum = nodes[i].childNodes[0].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[1].firstChild == null)
			{
				manufacturer = 'N/A';
			}
			else
			{
				manufacturer = nodes[i].childNodes[1].firstChild.nodeValue;
			}

			if (manufacturer == "Chevrolet")
			{
				manufacturer = "Chevy"
			}

			if (nodes[i].childNodes[2].firstChild == null)
			{
				driverName = ' ';
			}
			else
			{
				driverName = nodes[i].childNodes[2].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[3].firstChild == null)
			{
				avgFinish = ' ';
			}
			else
			{
				avgFinish = nodes[i].childNodes[3].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[4].firstChild == null)
			{
				avgStart = ' ';
			}
			else
			{
				avgStart = nodes[i].childNodes[4].firstChild.nodeValue;
			}

			if(rank % 2 == 1)
			{
				data = data + '<tr class="oddrow">'
			}
			else
			{
				data = data + '<tr class="evenrow">'
			}

			data = data + '<td>' + rank + '</td><td>' + driverName + '</td><td>' + avgStart + '</td><td>' + avgFinish + '</td></tr>'

		}

		data = data + '</table>'

		if (statTableDiv)
		{
			statTableDiv.innerHTML = data;
		}
	}
}

function buildStatTableOther(statXML)
{

	var statsXML = statXML.getElementsByTagName('standings');

	if (statsXML != null)
	{

		var seasonYear = statsXML[0].getAttribute("season");

		var data = ''
		statTableDiv = document.getElementById('stats4');

		var nodes = statXML.getElementsByTagName('driver');

		data = '<table cellpadding="3" cellspacing="1" class="tableheader" ><tr class="colhead" style="background: #CC9900;"><td width="20">#</td><td width="150">'+dictionaryObj['Driver'+langType]+'</td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'topfinish\')">'+dictionaryObj['TopFinish'+langType]+'</a></td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'top5\')">'+dictionaryObj['Top5'+langType]+'</a></td><td><a href="#" onClick="getNewXMLStatFeed('+seasonYear+',\'top10\')">'+dictionaryObj['Top10'+langType]+'</a></td></tr>'

		for (i = 0; i < nodes.length; i++)
		{
			rank = i+1;

			if (nodes[i].childNodes[0].firstChild == null)
			{
				carNum = ' ';
			}
			else
			{
				carNum = nodes[i].childNodes[0].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[1].firstChild == null)
			{
				manufacturer = 'N/A';
			}
			else
			{
				manufacturer = nodes[i].childNodes[1].firstChild.nodeValue;
			}

			if (manufacturer == "Chevrolet")
			{
				manufacturer = "Chevy"
			}

			if (nodes[i].childNodes[2].firstChild == null)
			{
				driverName = ' ';
			}
			else
			{
				driverName = nodes[i].childNodes[2].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[10].firstChild == null)
			{
				topFinish = ' ';
			}
			else
			{
				topFinish = nodes[i].childNodes[10].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[9].firstChild == null)
			{
				top5 = ' ';
			}
			else
			{
				top5 = nodes[i].childNodes[9].firstChild.nodeValue;
			}

			if (nodes[i].childNodes[8].firstChild == null)
			{
				top10 = ' ';
			}
			else
			{
				top10 = nodes[i].childNodes[8].firstChild.nodeValue;
			}

			if(rank % 2 == 1)
			{
				data = data + '<tr class="oddrow">'
			}
			else
			{
				data = data + '<tr class="evenrow">'
			}

			data = data + '<td>' + rank + '</td><td>' + driverName + '</td><td>' + topFinish + '</td><td>' + top5 + '</td><td>' + top10 + '</td></tr>'

		}

		data = data + '</table>'

		if (statTableDiv)
		{
			statTableDiv.innerHTML = data;
		}
	}

}





