var http_request = false;

function makeHttpRequest(url, callback_function, element_id, return_xml) {
	var http_request, response, i;	
	
	var activex_ids = [
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
	];
	
	if (window.XMLHttpRequest) {
		//checking here if we're dealing with gecko or other
		//standards compliant browswers.
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		//checking for IE's multiple implementations
		//of httpRequest
		for (i = 0; i < activex_ids.length; i++) {
			try {
				http_request = new ActiveXObject(activex_ids[i]);
			} catch (e) { }
		}
	}
	
	if (!http_request) {
		alert ('You browser does not support client side http requests');
		return false;
	}
	
	http_request.onreadystatechange = function () {
		if (http_request.readyState !== 4) {
			//if the transaction was complete return
			return;
		}
		if (http_request.status !== 200) {
			alert('There was a problem with the request. (Code: ' + http_request.status + ')');
		}
		if (return_xml) {
			response = http_request.responseXML;
		} else {
			response = http_request.responseText;
		}
		
		//Functionality was added here so target element can be set for output.
		if (element_id == null) {
			//this would work well with an alert for example
			alert(response);
		} else {
			//this would work well with innerhtml for example
			callback_function(response,element_id);
		}
	}
	
	http_request.open("GET",url,true);
	http_request.send(null);
}

function displayText(response,id) {
	document.getElementById(id).innerHTML=response;
}