
function DataProvider()
{
	this.http = zXmlHttp.createRequest();
}

DataProvider.prototype.requestData = function (oQuarterly, ajaxUrl) {

	var oHttp = this.http;
	
	if (oHttp.readyState != 0)
	{
		oHttp.abort();
	}
	
	oHttp.open("get", ajaxUrl, false);
	oHttp.onreadystatechange = function () {
		if (oHttp.readyState == 4)
		{
			oQuarterly.textResponse = oHttp.responseText;
		}
	};
	
	oHttp.send(null);
};

DataProvider.prototype.requestXmlData = function (oQuarterly, ajaxUrl) {

	var oHttp = this.http;
	
	if (oHttp.readyState != 0)
	{
		oHttp.abort();
	}
	
	oHttp.open("get", ajaxUrl, false);
	oHttp.onreadystatechange = function () {
		if (oHttp.readyState == 4)
		{
			oQuarterly.xmlResponse = oHttp.responseXML;
		}
	};
	
	oHttp.send(null);
};


DataProvider.prototype.postData = function (oRequester, ajaxUrl, data) {

	var oHttp = this.http;
	
	if (oHttp.readyState != 0)
	{
		oHttp.abort();
	}
	
	oHttp.open("post", ajaxUrl, false);
	oHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	oHttp.onreadystatechange = function () {
		if (oHttp.readyState == 4)
		{
			oRequester.textResponse = oHttp.responseText;
		}
	};
	
	oHttp.send(data);
};

DataProvider.prototype.postXmlData = function (oRequester, ajaxUrl, data) {

	var oHttp = this.http;
	
	if (oHttp.readyState != 0)
	{
		oHttp.abort();
	}
	
	oHttp.open("post", ajaxUrl, false);
	oHttp.setRequestHeader("Content-Type", "text/xml");
	oHttp.onreadystatechange = function () {
		if (oHttp.readyState == 4)
		{
			oRequester.textResponse = oHttp.responseText;
		}
	};
	
	oHttp.send(data);
};


DataProvider.prototype.getRequestBody = function(oForm) {
	
	var aParams = new Array();
	
	for (var i = 0; i < oForm.elements.length; i++)
	{
		var sParam = encodeURIComponent(oForm.elements[i].id);
		sParam += "=";
		sParam += encodeURIComponent(oForm.elements[i].value);
		aParams.push(sParam);
	}
	
	return aParams.join("&");
};
