function ajax_new() { 
    var xmlhttp = false; 

    try { 
// Creating AJAX object on non  IE browsers
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e) { 
        try { 
// Creating AJAX object on IE browser
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { 
            xmlhttp = false; 
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
        xmlhttp = new XMLHttpRequest(); 
    } 
    return xmlhttp; 
}

function ajax_load(async, idContainer, url, method, parameters, waiting) {
    var ajax = ajax_new();
    var container = document.getElementById(idContainer);

    if (waiting == undefined) waiting = true;
    if (ajax) {
        ajax.open (method.toUpperCase(), url, async);
        if (async) {
            ajax.onreadystatechange = function() {
                var waitMess = '';

                if (waiting) {
                    waitMess = "<table width='100%' height='100%' border='0' cellpadding='0' cellspacing='0'>";
                    waitMess = waitMess + "<tr><td style='height: 100%; width: 100%; text-align: center; vertical-align: middle;'>";
                    waitMess = waitMess + "<img src='img/loading.gif' alt='loading' width='24' height='24'/><br/>Loading...";
                    waitMess = waitMess + "</td></tr></table>";
                }
                if (ajax.readyState == 1) {
                    container.innerHTML = waitMess;
                }
                else if (ajax.readyState == 4) {
                    if (ajax.status == 200 || window.location.href.indexOf ("http") == - 1) {
                        container.innerHTML = ajax.responseText;
                    }
                    else if (ajax.status == 404) {
                        container.innerHTML = "Site not found";
                    }
                    else {
                        container.innerHTML = "Error: " + ajax.status;
                    }
                }
            }
        }
        ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        if (method.toUpperCase() == 'POST') {
            ajax.setRequestHeader("Content-length", parameters.length);
            ajax.setRequestHeader("Connection", "close");
            ajax.send (parameters);
            return;
        }
        else {
            ajax.send (null);
            return;
        }
    }
}

function post_request(divId, url, parameters, waiting, sync) {
    if (parameters == undefined) parameters = '';
    if (sync == undefined) sync = false;
    if (waiting == undefined) waiting = true;
    if (sync)
        ajax_load(false, divId, url, 'POST', parameters, waiting);
    else
        ajax_load(true, divId, url, 'POST', parameters, waiting);
}
