tmO.ajaxOb=initxmlhttp();
tmO.requestInterval = 5000; // get data from server every 5 seconds
tmO.dispPerSecond = 10; // 10 display updates per second
tmO.dispPerRequest = tmO.requestInterval/1000*tmO.dispPerSecond;
tmO.displayInterval = tmO.requestInterval/tmO.dispPerRequest;
tmO.step = 0.01;
tmO.displayMoves=tmO.totalMoves;

tmO.request = function() {
	tmO.ajaxOb.open('GET', '/pub/tilesmoved.php?t='+(new Date()).getTime(), true);
	tmO.ajaxOb.onreadystatechange = tmO.receive;
	tmO.ajaxOb.send(null);
} 

tmO.receive = function() {
	if (tmO.ajaxOb.readyState!=4) return;
	
	var newNum = parseInt(tmO.ajaxOb.responseText);
	if (newNum) {
		tmO.step = (newNum-tmO.displayMoves)/tmO.dispPerRequest;
		tmO.totalMoves = newNum;
	}
	setTimeout(tmO.request,tmO.requestInterval);
}

tmO.updateDisplay = function() {
	if (tmO.displayMoves<tmO.totalMoves) {
		tmO.displayMoves += tmO.step;
		document.getElementById("total_moves").innerHTML = parseInt(tmO.displayMoves);
	}
	setTimeout(tmO.updateDisplay,tmO.displayInterval);
}

tmO.initDisplay = function() {
	tmO.request();
	tmO.updateDisplay();
}	

function initxmlhttp() {
	var xmlhttp;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
	} catch (e) {
		try {
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
		} catch (E) {
			xmlhttp=false
		}
	}
	@else
	xmlhttp=false
	@end @*/
	if ( !xmlhttp && typeof XMLHttpRequest!='undefined' ) {
		try {
			xmlhttp = new XMLHttpRequest() ;
		}
		catch (e) {
			xmlhttp = false ;
		}
	} 
	return xmlhttp ;
}

window.onload = tmO.initDisplay;
