﻿function createrequest() {
    if (window.XMLHttpRequest)
        return new XMLHttpRequest();
    else if (window.ActiveXObject)
        return new ActiveXObject("Microsoft.XMLHTTP");
    else
        return null;
}
function http_request(url, requestcomplete, method, data) {
    if (!method)
        method = "GET";
    if (!data)
        data = null;

    var http = createrequest();
    if (http != null) {
        http.onreadystatechange = function() { internal_statechange(requestcomplete, url, http); }
        http.open(method, url, true);

        http.setRequestHeader("Cookie", document.cookie);
        http.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
        if (method == "POST")
            http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        http.send(data);

        return false;
    } else {
        return true;
    }
}
function http_request_sync(url, method, data) {
    if (!method)
        method = "GET";
    if (!data)
        data = null;

    var http = createrequest();

    if (http != null) {
        http.open(method, url, false);

        http.setRequestHeader("Cookie", document.cookie);
        http.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
        if (method == "POST")
            http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        http.send(data);

        return http;
    }
}
function internal_statechange(requestcomplete, url, http) {
    try {
        if (http.readyState == 4 && http.status == 200) {
            requestcomplete(http);
        } else {
            if (http.readyState == 4)
                alert("AJAX error requesting '" + url + "'.\nReturn value: " + http.status + " (" + http.statusText + ")");
        }
    }
    catch (err) { }
}