function makeGetRequest(url, callback, aArg, message) {

    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/plain');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    if(message && window.top.progressShow){
        window.top.progressShow(true, message);
        if(callback){
            http_request.onreadystatechange =  function() {
                if (http_request.readyState == 4) {
                    window.top.progressShow(false);
                    if (http_request && http_request.status == 200) {
                        callback(http_request.responseText, aArg);
                       }else if(http_request.status > 0) {
                           alert("There was a problem ("+http_request.status+") with the request to "+url);
                    }
                }
            };

        }else{
            http_request.onreadystatechange =  function() { if (http_request.readyState == 4) { window.top.progressShow(false); } };
        }
    }else if(callback){
        http_request.onreadystatechange =  function() {
            if (http_request.readyState == 4) {
                if (http_request && http_request.status == 200) {
                    callback(http_request.responseText, aArg);
                }else if(http_request.status > 0) {
                    alert("There was a problem ("+http_request.status+") with the request to "+url);
                }
            }
        };
    }
    http_request.open('GET', url, true);
    http_request.send(null);
}

/* AJAX Functions */

    function makePOSTRequest(url, param, callback, aArg, message) {

        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/plain');
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }

        if(message && window.top.progressShow){
            window.top.progressShow(true, message);
            if(callback){
                http_request.onreadystatechange =  function() {
                    if (http_request.readyState == 4) {
                        window.top.progressShow(false);
                        if (http_request && http_request.status == 200) {
                            callback(http_request.responseText, aArg);
                           }else if(http_request.status > 0) {
                            alert("There was a problem ("+http_request.status+") with the request to "+url);
                        }
                    }
                };

            }else{
                http_request.onreadystatechange =  function() { if (http_request.readyState == 4) { window.top.progressShow(false); } };
            }
        }else if(callback){
            http_request.onreadystatechange =  function() {
                if (http_request.readyState == 4) {
                    if (http_request && http_request.status == 200) {
                        callback(http_request.responseText, aArg);
                    }else if(http_request.status > 0) {
                        alert("There was a problem ("+http_request.status+") with the request to "+url);
                    }
                }
            };
        }
        http_request.open('POST', url, true);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", param.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(param);
    }

    function POSTform(url, formId, callback,aArg, message) {
        //Tell the golbal var is_recalcing that the the page is waiting on a recalc!
        var    fobj = document.getElementById(formId);

        var str = "";
        var valueArr = null;
        var val = "";
        var cmd = "";

       for(var i = 0;i < fobj.elements.length;i++){


           switch(fobj.elements[i].type) {
               case "select":
               case "select-one":
               case "text":
               case "hidden":
               case "textarea":
               case "password":
                    str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                    fobj.elements[i].disabled;
                    break;
               case "checkbox":
                       if(fobj.elements[i].checked){
                           str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                       }
                    break;
               case "radio":
                       if(fobj.elements[i].checked){
                           str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                       }
                       break;
           }
       }

        str = str.substr(0,(str.length - 1));
        makePOSTRequest(url, str, callback,aArg, message);
    }

    function alertContents(responseText) {
        alert(responseText);
    }