/*

	Ajax
	by Radek N.

*/

function Ajax()
{
	this.async = null;
	this.url = null;
	response = new Object();
	response.text = null;
	response.status = null;
}

Ajax.prototype.request = function(oArgs) 
{
	this.async = oArgs.async;
	this.url = oArgs.url;
	var onSuccess = oArgs.onSuccess; 
	var onError = oArgs.onError;
	
	var oXMLHttp = this.createXMLHttp();
	oXMLHttp.open("get", this.url, this.async);
	oXMLHttp.onreadystatechange = function () {
		if (oXMLHttp.readyState == 4) {
			if (oXMLHttp.status == 200) {
				response.text = oXMLHttp.responseText;
				onSuccess(response);
			} else {
				response.status = oXMLHttp.statusText;
				onError(response);
			}
		}            
	};
	oXMLHttp.send(null);
}

Ajax.prototype.createXMLHttp = function()
{
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var aVersions = [ "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ];
		for (var i = 0; i < aVersions.length; i++) {
			try {
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			} catch (oError) {
				//alert(oError.message);
			}
		}
	}
	throw new Error("Obiekt XMLHttp nie został utworzony.");
}