var r_url = null;
var r_timeout = 0;
var r_parser = null;
var r_request = null;

function request_cancel()
{
	r_timeout = 0;
}

function request_change_url(url)
{
	r_url = url;
}

function request_done(c)
{
	if (r_parser != "")
	{
		eval(r_parser + "(c)");
	}
	if (r_timeout) setTimeout("request_url(r_url)", r_timeout);
}

function request_action()
{
	if (r_request.readyState == 4)
	{
		request_done(r_request.status == 200 ? r_request.responseText : null);
	}
}

function request_url(url)
{
	if (window.XMLHttpRequest)
	{
        	r_request = new XMLHttpRequest();
		if (r_request)
		{
			r_request.onreadystatechange = request_action;
			r_request.open("GET", url, true);
			r_request.send(null);
		}
	}
	else if (window.ActiveXObject)
	{
		r_request = new ActiveXObject("Microsoft.XMLHTTP");
        	if (r_request)
		{
			r_request.onreadystatechange = request_action;
			r_request.open("GET", url, true);
			r_request.send();
		}
	}
}

function request(url, timeout, parser)
{
	r_url = url;
	r_timeout = timeout;
	r_parser = parser;

	if (r_timeout) setTimeout("request_url(r_url)", r_timeout);
	else request_url(r_url);
}

