
/**
  *  XMLHttpRequest object creator from xmlhttp.js
  *
  *  Author:	José Jeria
  *  Version:	1.0
  *  Date:	13-06-05
  */

// XMLHttpRequest object creator
function createXMLHTTP()
{
	if(window.XMLHttpRequest) return new XMLHttpRequest();
	
	var aProgID = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
	
	for(var i=0, len=aProgID.length; i<len; i++)
	{
		try
		{
			var oReq = new ActiveXObject(aProgID[i]);
			return oReq;
		}
		catch(oError){}
	}
	
	return null;
}

// HttpClient constructor
var HttpClient = new Object();

HttpClient.get = function(file, fCallback)
{
	try
	{
		var oReq = new createXMLHTTP();
		
		oReq.onreadystatechange = function()
		{
			if(oReq.readyState == 4)
			{
				switch(oReq.status)
				{
					case 404:
						alert("Fatal error:\nFile \"" + file + "\" is missing on server. Cannot proceed.");
						break;
					case 500:
						alert("Fatal error:\nInternal server error. Cannot proceed.");
						break;
					case 0:
						alert("Fatal error:\nHTTP request cannot be done locally. It must be run on a server.");
						break;
					default:
						fCallback(oReq.responseText);
				}
			}
		}
		oReq.open("GET", file, true);
		oReq.send(null);
	}
	catch(oError)
	{
		alert("You browser seems to be outdated, please try again with one of the following\n\n- Mozilla Firefox\n- Opera 8+\n- Safari 1.2+\n- Internet Explorer 5+");
	}
}

