function Ajax() {
	this.xmlHttp = false;
	this.init();
}

Ajax.prototype.init = function() {

	try {
		this.xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
);

		for (var i=0; i<XmlHttpVersions.length && !this.xmlHttp; i++) {
			try {
				this.xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {}
		}
	}

	if (!this.xmlHttp) {
		alert("Error creating the XMLHttpRequest object.");
	}
	else {
		return this.xmlHttp;
	}

}

Ajax.prototype.process = function(method, url, params, callback) {

	if (this.xmlHttp) {
		try {
			this.xmlHttp.open(method, url, true);
			this.xmlHttp.onreadystatechange = callback;
this.xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			this.xmlHttp.send(url);
		}
		catch (e) {
			alert("Can't connect to server:\n" + e.toString());
		}
	}

}

function handleRequestStateChange() {

	switch (xmlHttpObj.readyState) {

		case 1:
		case 2:
		case 3:
			document.getElementById('myDiv').className = 'loader';
			document.getElementById('myDiv').innerHTML = '<div class="loadingDesc">Loading rates...</div>';
		break;

		case 4 :
			if (xmlHttpObj.status == 200) {
				var response = xmlHttpObj.responseText.toString();
				document.getElementById('myDiv').className = '';
				document.getElementById('myDiv').innerHTML = response;
			} else {
				document.getElementById('myDiv').className = '';
				document.getElementById('myDiv').innerHTML = wrappedErrorMsg;
			}

		break;

		default:
			document.getElementById('myDiv').className = '';
			document.getElementById('myDiv').innerHTML = wrappedErrorMsg;
		break;
	}

}