<!-- javascript functions needed to preform web requests START -->
var req;
var enabled = true; 
var timerID;
var gl_url = false;
var a_tries = 0;



function send(url, flag) 
{
	if (!enabled && flag == false)	return;
	gl_url = url;
	enabled = false;
	if (req)
		req.abort();
	url = url + '&' + Math.random(0,100);
	
	
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	} 
	else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) 
		{
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send(null);
		}
	}
	
}

function processReqChange() 
{
	//timerID = window.setTimeout("req.abort();", 100000000);
	if (req.readyState == 4) 
	{
		//clearTimeout(timerID);
		if (req.status == 200) 
		{
        	a_tries = 0;
        	processCells(req.responseText);
        	enabled = true;
		} 
		else 
		{
			a_tries = a_tries + 1;
			enabled = false;
			window.setTimeout("replaySend();", 1000);
		}
	}
} 

function replaySend() {
	if (a_tries >= 5) {
		//clearTimeout(timerID);
		a_tries = 0;
		req.abort();
		enabled = true;
		processFailure('');
		return false;
	} else {
		send(gl_url, true);
	}
}

<!-- javascript functions needed to preform web requests END -->