var ajax_request = null;
var ajax_response = null;
var ajax_contentType = null;
var ajax_doFunction = null;
var ajax_return = null;

function fsAjax(method, url, contentType, data, doFunction) {
	ajax_request = null;
	ajax_return = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	    ajax_request = new XMLHttpRequest();
	    if (ajax_request.overrideMimeType) {
	        ajax_request.overrideMimeType('text/xml');
	    }
	} else if (window.ActiveXObject) { // IE
	    try {
	        ajax_request = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	        try {
	            ajax_request = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch (e) {
	        	
	        }
	    }
	}
	if (!ajax_request) {
	    alert('Giving up :( Cannot create an XMLHTTP instance');
	    return;
	}
	ajax_contentType = contentType;
	ajax_doFunction = doFunction;
	ajax_request.onreadystatechange = fsAjaxResponse;
	ajax_request.open(method, url);
	
	if (method == "POST") {
		ajax_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		ajax_request.send(data);
	} else {
		ajax_request.send(null);
	}
}

function fsAjaxResponse() {
    if (ajax_request.readyState == 4) {
        if (ajax_request.status == 200) {
        	if (ajax_contentType == "text") {
        		ajax_return = ajax_request.responseText;
        	} else {
        		ajax_return = ajax_request.responseXML;
        	}
        	if (ajax_doFunction != null) ajax_doFunction(ajax_return);
        } else {
            alert('There was a problem with the request. HTTP Status: ' + ajax_request.status);
        }
    }
}
