var WatchDogTimer = 0;
var RefreshRate = 300000;
var FingerPrint = 'none';
var isWorking = false;
var http = getHTTPObject(); 

function handleHttpResponse() {

	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			try
			{
			// Use the XML DOM 
			var xmlDocument = http.responseXML; 
			var next;
			var score;

			var print = xmlDocument.getElementsByTagName('fingerprint').item(0);
			if (print.firstChild.data != FingerPrint) document.RefreshForm.submit();

			next = 0;
			score = xmlDocument.getElementsByTagName('score').item(next);
			while (score) {
				var i = 0;
				var team = score.getAttribute('team');
				var pts = score.firstChild.data;
				var tag = document.getElementById('TM' + team + 'V' + i);
				while (tag) {
				    if (tag.innerHTML != pts) tag.innerHTML = pts;
					i = i + 1;
					tag = document.getElementById('TM' + team + 'V' + i);
				}
				
				next = next + 1;
   			    score = xmlDocument.getElementsByTagName('score').item(next);
			}

			next = 0;
			score = xmlDocument.getElementsByTagName('highscore').item(next);
			while (score) {
				var i = 0;
				var game   = score.getAttribute('game');
				var pts    = score.getAttribute('points');
				var player = score.getAttribute('playerid');
				var linktext;

				if (player == "-1") {
					linktext = "None";
				} else {
					linktext = "<a class=headerLinks href=\"javascript:PlayerCard(" + escape(document.RefreshForm.LN.value) + ",'" + escape(document.RefreshForm.UID.value) + "'," + player +
						       ")\">" + score.firstChild.data + "</a>&nbsp;(" + pts + " points)";
				}
				
				var tag = document.getElementById('HS' + game + 'V' + i);
				while (tag) {
				    if (tag.innerHTML != linktext) tag.innerHTML = linktext;
					i = i + 1;
					tag = document.getElementById('HS' + game + 'V' + i);
				}
				
				next = next + 1;
   			    score = xmlDocument.getElementsByTagName('highscore').item(next);
			}

			var topdate = document.getElementById('TopCurrDate');
			if (topdate) {
				var update = xmlDocument.getElementsByTagName('update').item(0);
				topdate.innerHTML = update.firstChild.data;
			}

			isWorking = false;    

			timerID = setTimeout("UpdateScores()", RefreshRate);

			clearTimeout(WatchDogTimer);
			WatchDogTimer = setTimeout("RefreshPage()", RefreshRate * 2);
				
			}
			catch (e)
			{
				RefreshPage();
			}


		} else {
			//  invalid xml
			RefreshPage();
		}
	}
}

function UpdateScores() 
{
	if (!isWorking && http) {
		http.open("GET", "/cgi-bin/scoreboard?XML=1&LN=" + escape(document.RefreshForm.LN.value) + "&Week=" + escape(document.RefreshForm.FFL.value) + "&X=" + Math.floor(Math.random() * 99999), true);
		http.onreadystatechange = handleHttpResponse;
		isWorking = true;
	    http.send(null);
	}
}

function RefreshPage()
{
	document.RefreshForm.submit();
}

function SetFingerPrint(FPrint,Refresh)
{
	FingerPrint = FPrint;
	if (RefreshRate < 60000)
		RefreshRate = 60000; // be safe
	else 
		RefreshRate = Refresh;

	if (http) {
	   //  set the refresh timer and an emergency timer
	   RefreshTimer = setTimeout("UpdateScores()", RefreshRate);
	   WatchDogTimer = setTimeout("RefreshPage()", RefreshRate * 2);
	} else {
	   //  apparently does not support XMLHTTPRequest
	   ReloadTimer = setTimeout("RefreshPage()", RefreshRate);
	}
}


