var http_request = [];
var htreq_funcs = [];

function makePOSTRequest(url, parameters, return_function, return_type, content_type) {
	return makeRequest('POST', url, parameters, return_function, return_type);
}

function makeGETRequest(url, return_function) {
	return makeRequest('GET', url, null, return_function);
	//return makeRequest('GET', url, null, return_function, return_type);
}

function makeRequest(reqType, url, parameters, return_function, return_type, content_type){
	var htcount = http_request.length;
	http_request[htcount] = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 http_request[htcount] = new XMLHttpRequest();
		 if (http_request[htcount].overrideMimeType) {
				http_request[htcount].overrideMimeType(return_type);
		 }
	} else if (window.ActiveXObject) { // IE
		 try {
				http_request[htcount] = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
				try {
					http_request[htcount] = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
		 }
	}

	if (!http_request[htcount]) {
		 alert('Cannot create XMLHTTP instance');
		 return false;
	}

	http_request[htcount].onreadystatechange = function() { ajax_response(htcount); }
	htreq_funcs[htcount] = return_function;
	http_request[htcount].open(reqType, url, true);

	if(reqType == 'POST'){
		content_type = (content_type) ? content_type : 'application/x-www-form-urlencoded';
		http_request[htcount].setRequestHeader("Content-type", content_type);
		http_request[htcount].setRequestHeader("Content-length", parameters.length);
		http_request[htcount].setRequestHeader("Connection", "close");
	}
	http_request[htcount].send(parameters);
	return true;
}

function ajax_response(Id){
	var htreq = http_request[Id];
	try{
		if(htreq.readyState == 4) {
			if(htreq.status == 200) {
				eval(htreq_funcs[Id] + '(htreq);');
			}
		}
	}
	catch(e){
	}
}