var requests = new Array();

function ajaxRequest(url) 
{
	var http_request = false;

	if(window.XMLHttpRequest)
	{ 
		http_request = new XMLHttpRequest();
		if(http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/xml');
		}
	} 
	else if(window.ActiveXObject)
	{
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}

	if(!http_request) 
	{
		return false;
	}
	
	requests.push(http_request);
	http_request.open('GET', url, true);
	http_request.setRequestHeader("If-Modified-Since", "0");
	http_request.onreadystatechange = alertContents;
	http_request.send(null);

	
	return false;
}

function alertContents() 
{
	for(var i=requests.length-1; i>=0; i--)
	{
		if(requests[i].readyState == 4) 
		{
			var request = requests[i];
			requests[i] = requests[requests.length-1];
			requests.pop();
		
			if(request.status == 200) 
			{
			    var allResponses = request.responseText.split("<>");
			    for(var ari=0; ari<allResponses.length; ari++)
			    {
				    var rest, type, id, response;
				    rest = allResponses[ari];

				    type = rest.substr(0, rest.indexOf(';'));
				    rest = rest.substr(rest.indexOf(';')+1);

				    if(type == 'set')
				    {
					    id = rest.substr(0, rest.indexOf(';'));
					    rest = rest.substr(rest.indexOf(';')+1);

    				    document.getElementById(id).innerHTML = rest;
				    }
				    else if(type == 'location')
				    {
					    window.location = rest;
				    }
				    else if(type == 'alert')
				    {
					    alert(rest);
				    }
				    else
				    {
					    id = rest.substr(0, rest.indexOf(';'));
					    rest = rest.substr(rest.indexOf(';')+1);

					    response = rest;
    					
					    handleAjax(request.responseText, type, id, response);
				    }
		        }
			}
		}
	}
}

function deString(str)
{
	str = str.replace("&;", "&amp;");
	str = str.replace("'", "&#39;");
	str = str.replace("\"", "&quot;");
	return str;
}

function urlencode(str) 
{
	return escape(str).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}