var ajaxReq = ajax_createXMLHttpRequest();
var ajaxSuccess = "";
var ajaxFailure = "";

function ajax_createXMLHttpRequest() {
        var ua;
        if (window.XMLHttpRequest) {
                try {
                        ua = new XMLHttpRequest();
                } catch(e) {
                        ua = false;
                }
        } else if (window.ActiveXObject) {
                try {
                        ua = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                        ua = false;
                }
        }
        return ua;
}

function ajax_sendRequest(thisPage, thisData, success, failure) {
        var cachebust = Math.random();
        if (thisData) {
                var requestURL = "_ajax.php";
                var requestData = "rq=" + thisPage + "&" + thisData + "&cachebust=" + cachebust;
                ajaxReq.open("post", requestURL, true);
                ajaxReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
                // set response
                ajaxSuccess = success;
                ajaxFailure = failure;
                ajaxReq.onreadystatechange = ajax_handleResponse;
                ajaxReq.send(requestData);
                return true;
        }
        return false;
}

function ajax_handleResponse() {
        if (ajaxReq.readyState == 4) {
                var thisResult = ajaxReq.responseText;
                // split the result
                var result = thisResult.split("|");
                if (result[0] == 1) {
                        // success, call function -- send pre-split result
                        eval(ajaxSuccess + "(\"" + thisResult + "\");");
                } else {
                        // display the error message
                        if ( 0 ) {
				alert(result[0]);
			}
                        // alert(result[1]);
                        eval(ajaxFailure + "(\"" + thisResult + "\");");
                }
        }
}
