    function getHTTPRequestObject() {
        var http_request = null;
        if (window.XMLHttpRequest) { 
            http_request = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                }
            }
        }

        return http_request;
    }

    function ajaxCall(http_request, ajaxfunction, action, parameters) {
        var requestFlag = false;
        if (http_request) {
            http_request.onreadystatechange = ajaxfunction;
            http_request.open('POST', action, true);
            http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
            http_request.setRequestHeader("Cache-Control", "no-cache");
            if (parameters) {
                http_request.setRequestHeader("Content-length", parameters.length);
            }
            http_request.setRequestHeader("Connection", "close");
            http_request.send(parameters);
            requestFlag = true;

            showProcessingMessage();
        } else {
            showErrorMessage();
        }

        return requestFlag;
    }

    function cleanMessage() {
        var message = document.getElementById("message");
        if (message) {
            var messageChildNodes = message.childNodes;

            while (messageChildNodes && messageChildNodes[0]) {
                node = messageChildNodes[0];
                message.removeChild(node);
            }
        }

        return message;
    }

    function showProcessingMessage() {
        var messageObject = cleanMessage();
        if (messageObject) {
            var oField1 = document.createElement("img");
            oField1.setAttribute("src", "/instasecure/images/Change_History.BMP");
            oField1.setAttribute("border", "0");
            messageObject.appendChild(oField1);
        }
    }

    function showErrorMessage() {
        var messageObject = cleanMessage();
        alert("Could not processes the request. Please try later.");
    }
