	var ajTimeout;
	
	var arGroups = new Array();
	var arOdds = new Array();

	var sbajObj = new ajaxXMLDoc();
	sbajObj.debugid = 'sboutput';
	sbajObj.processXML = processXML;
	
	function startajax() {
		(ajTimeout) && clearTimeout(ajTimeout);
		ajTimeout = setTimeout('initajax();', 5000);
	}
	
	function initajax() {
		(ajTimeout) && clearTimeout(ajTimeout);
		sbajObj.getURL(document.location.href + '&ajax=1');
	}
	
	
	function processXML( domObj ) {
		
		if (domObj == null)	{
			// invalid doc
			return;
		}
		
		var gps = domObj.getElementsByTagName('gp');
		
		for (var x = 0; x < gps.length; x++) {
			var intID = gps[x].getAttribute('id');
			var bnew = 0;
			
			if (intID) {
				// Ok got group id... check for any info to be displayed
				var score = gps[x].getElementsByTagName('SCORE');
				var scoreupd = document.getElementById('dscore' + intID);
				
				if (score.length > 0 && scoreupd) {
					if (score[0].firstChild.data != scoreupd.innerHTML) {
						scoreupd.innerHTML = score[0].firstChild.data;
						flashSpan('dscore' + intID, '#ffff55', 0);
					}
				}
				
				var part = gps[x].getElementsByTagName('GAMEPART');
				var partupd = document.getElementById('dpart' + intID);
				
				if (part.length > 0 && partupd) {
					if (part[0].firstChild.data != partupd.innerHTML) {
						partupd.innerHTML = part[0].firstChild.data;
						flashSpan('dpart' + intID, '#ffff55', 0);
					}
				}				
			}
				
			if ( ! arGroups[intID]) {
				arGroups[intID] = gps[x].getAttribute('dt')
				bnew = 1;
			}
			
			if (arGroups[intID] < gps[x].getAttribute('dt') || bnew == 1) {
				arGroups[intID] = gps[x].getAttribute('dt');
				
				// process changes 
				var ods = gps[x].getElementsByTagName('od');
				
				for (var y = 0; y < ods.length; y++ ) {
					var oID = ods[y].getAttribute('id');
					var oOV = ods[y].getAttribute('ov');
					var oUS = ods[y].getAttribute('us');
					var oOK = ods[y].getAttribute('ok');
									
					if ( typeof arOdds[oID] == 'undefined' ) {
						 arOdds[oID] = new Array();
						 arOdds[oID][0] = oOV;
						 arOdds[oID][1] = oUS;
						 arOdds[oID][2] = oOK;
					} else {
						if (arOdds[oID][1] != oUS) {
							arOdds[oID][1] = oUS;
							// Type change
							var objsp = document.getElementById('sp' + oID);
							if (objsp) {
								objsp.style.color = oUS;
							}
						}
						if (arOdds[oID][0] != oOV) {
							// Do not match.. Process
							var down = -1;
							if (arOdds[oID][0] < oOV) {
								down = 1;
							}
							arOdds[oID][0] = oOV;
							
							imgChange('im' + oID, down, '');
							
							var objsp = document.getElementById('sp' + oID);
							if (objsp) {
								objsp.innerHTML = ods[y].getAttribute('sp');
								flashSpan('sp' + oID, '#ffff55', 0);
							}
							var objcb = document.getElementById('cb' + oID);
							if (objcb) {
								objcb.value = ods[y].getAttribute('cb');
							}
						}
						if (arOdds[oID][2] != oOK) {
							arOdds[oID][2] = oOK;
							var objsp = document.getElementById('sp' + oID);
							var objcb = document.getElementById('cb' + oID);
														
							if (objsp && objcb) {
								if (oOK == 0) {
									objsp.style.visibility="hidden";
									objcb.style.visibility="hidden";
									objcb.style.checked = false;
								} else {
									objsp.style.visibility="visible";
									objcb.style.visibility="visible";
								}
							}
						}
					}
				}
			}
		}
		
		// At the end... Restart the timeout to get data again
		startajax();
	}
	
	function imgChange( idsp, changedir , imgurl) {
		var obimg = document.getElementById(idsp);
		
		if (obimg) {
			var oldurl = obimg.src;
			var ok = false;
			
			if (changedir < 0 && obimg.src.indexOf('shim') > 0) {
				// Down
				obimg.src = obimg.src.replace('shim','down');
				ok = true;
			} else if (changedir > 0 && obimg.src.indexOf('shim') > 0) {
				// Up
				obimg.src = obimg.src.replace('shim','up');
				ok = true;
			}
						
			if (ok) {
				setTimeout('imgChange( "' + idsp + '", 0, "' + oldurl + '");', 6000);
			} else {
				if (changedir == 0) {
					obimg.src = imgurl;
				}
			}
		}
	}	
	
	
	function flashSpan( idsp, txtcolor, count ) {
		var objsp = document.getElementById(idsp);
		
		if (objsp) {
			oldcolor = objsp.style.backgroundColor;
			if (oldcolor != txtcolor) {
				// background the same... do not do anything. Already Flashing
				objsp.style.backgroundColor = txtcolor;
				if (count < 15) {
					setTimeout('flashSpan( "' + idsp + '", "' + oldcolor + '", ' +  (count+1) + ' );', 400);
				}
			}
		}
	}
	
	// Start processing data..
	startajax();