var request;
var result;

var XMLHttpFactories = [
    function () {return new XMLHttpRequest()},
    function () {return new ActiveXObject("Msxml2.XMLHTTP")},
    function () {return new ActiveXObject("Msxml3.XMLHTTP")},
    function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
    var xmlhttp = false;
    for (var i=0;i<XMLHttpFactories.length;i++) {
        try {
            xmlhttp = XMLHttpFactories[i]();
        }
        catch (e) {
            continue;
        }
        break;
    }
    return xmlhttp;
}

function statechangeHandler(callback)
{
    if (request.readyState == 4) {
        if ((request.status == 200 || request.status == 304) && request.responseText.length) {
			eval(callback+'(\''+request.responseText+'\')');
        }else{
			eval(callback+'(false)');
		}
    }
}

function ajaxRequest(url, params, callback)
{
    request = createXMLHTTPObject();
    
    request.onreadystatechange = function(){statechangeHandler(callback);};
    request.open('POST', url, true);
    
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", params.length);
    request.setRequestHeader("Connection", "close");
        
    request.send(params);
}
