/**
 * Makes an xml request.
 * @param url The URL to retrieve.
 * @param callback_function The Callback Function to call.
 * @param return_xml Boolean whether or not to return xml.
 */
function makeRequest(url, callback_function, return_xml) 
{
	var http_request;
	// check for a native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		// branch for native XMLHttpRequest object
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		// branch for IE/Windows ActiveX version
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) { }
		}
	}
	
	if (!http_request) {
		alert('Unfortunatly your browser doesn\'t support this feature.');
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				if (return_xml) {
					eval(callback_function + '(http_request.responseXML)');
				} else {
					eval(callback_function + '(http_request.responseText)');
				}
			} else {
				alert('There was a problem with the request. (Code: ' + http_request.status + ')');
			}
		}
	}
	http_request.open('GET', url, true);
	http_request.send(null);
}
