    var callbackObj = new Object();
    function sendXMLHttpRequest(pageUrl, eventTarget, eventArgument, eventCallback, context, useAsync) 
    {
        useAsync = true;
        var postData = "xmlhttprequest=" + encodeXMLHttpRequest(eventTarget) + "&__CALLBACKPARAM=" + encodeXMLHttpRequest(eventArgument);
        var xmlRequest;
        var usePost = false;
        if (window.XMLHttpRequest) 
        {
            // http:
            // And: http:
            xmlRequest = new XMLHttpRequest();
            xmlRequest.onreadystatechange = XMLHttpRequestComplete;
            callbackObj.xmlRequest = xmlRequest;
            callbackObj.eventCallback = eventCallback;
            callbackObj.context = context;
            if (pageUrl.length + postData.length + 1 > 10000) 
            {
                usePost = true;
            }
            if (usePost) 
            {
                xmlRequest.open("POST", pageUrl, useAsync);
                xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlRequest.send(postData);
            }
            else 
            {
                if (pageUrl.indexOf("?") != -1) 
                {
                    xmlRequest.open("GET", pageUrl + "&" + postData, useAsync);
                }
                else 
                {
                    xmlRequest.open("GET", pageUrl + "?" + postData, useAsync);
                }
                xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlRequest.send(null);
            }
        }
        else 
        {
            xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
            xmlRequest.onreadystatechange = XMLHttpRequestComplete;
            callbackObj.xmlRequest = xmlRequest;
            callbackObj.eventCallback = eventCallback;
            callbackObj.context = context;
            if (pageUrl.length + postData.length + 1 > 2067) 
            {
                usePost = true;
            }
            if (usePost) 
            {
                xmlRequest.open("POST", pageUrl, useAsync);
                xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlRequest.send(postData);
            }
            else 
            {
                if (pageUrl.indexOf("?") != -1) 
                {
                    xmlRequest.open("GET", pageUrl + "&" + postData, useAsync);
                }
                else 
                {
                    xmlRequest.open("GET", pageUrl + "?" + postData, useAsync);
                }
                xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlRequest.send();
            }
        }
    }
    function XMLHttpRequestComplete() 
    {
        if (callbackObj.xmlRequest.readyState == 4)
        {
            if (callbackObj.xmlRequest.status == 200)
            {
                var response = callbackObj.xmlRequest.responseText;
                if(response != "")  
                    callbackObj.eventCallback(response, callbackObj.context);
            }
        }
    }
    function encodeXMLHttpRequest(parameter) 
    {
        if (encodeURIComponent) 
        {
            return encodeURIComponent(parameter);
        }
        else 
        {
            return escape(parameter);
        }
    }