function getXmlHttp() {
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.6.0");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
					xmlhttp = false;
				}
			}
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function sendXmlHttpRequest(url, callback, params, method) {
	params = params || "";
	method = method || "GET";
	callback = callback || defaultCallback;
	request = getXmlHttp();
	if (request) {
		request.onreadystatechange = callback;
		if (method == "GET") {
			request.open(method, url + params, true);
			request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
			request.send(null);
		} else {
			request.open(method, url, true);
			request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
			request.setRequestHeader("Content-type",
					"application/x-www-form-urlencoded");
			request.setRequestHeader("Content-length", params.length);
			request.setRequestHeader("Connection", "close");
			request.send(params);
		}
	}
}

function defaultCallback() {
	try {
		if (request.readyState == 4) {
			if (request.status == 200) {
				// json = eval("(" + request.responseText + ")");
				alert(request.responseText);
			} else {
				alert("Error:\n" + request.statusText);
			}
		}
	} catch (e) {
		alert('Caught Exception: ' + e.description);
	}
}
