var request = false;

function ajax_request(url, query, _ajax_callback) {
   
    /* Creating request class */
	var req = null;
	if (typeof XMLHttpRequest != "undefined")
		req = new XMLHttpRequest();
	if (!req && typeof ActiveXObject != "undefined") {
		try {
			req=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				req=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e2) {
				try {
					req=new ActiveXObject("Msxml2.XMLHTTP.4.0");
				}
				catch (e3) {
					req=null;
				}
			}
		}
	}
	request = req;
    request.open('POST', url, true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.onreadystatechange = function () {
		ajax_callback(_ajax_callback);
	};
    return request.send(query);
}
function ajax_abort_request() {
	request.abort();
	request = false;
}

function ajax_callback(_ajax_callback) {
	if (request.readyState == 4) {
		eval(_ajax_callback+'(request.responseText);');
	}
}

