function sendRequest(url, successCallback, failureCallback, method) 
{
    var req = createXmlHttpRequestObject();
    if (req)
    {
        req.open(method, url, true);
        req.setRequestHeader('User-Agent','XMLHTTP/1.0');
        req.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
        req.onreadystatechange = function()
        {
            if (req.readyState == 4)
            {
                if (req.status == 200)
                {
                    var success = function(req) { }
                    if (successCallback)
                    {
                        success = successCallback;
                    }
                    success(req);
                }
                else
                {
                    var failure = function(req) { }
                    if (failureCallback)
                    {
                        failure = failureCallback;
                    }
                    failure(req);
                }
            }
        }
        req.send(null);
    }
}

var XMLHttpFactories = 
[
    function () { return new XMLHttpRequest()                   }, // IE7, Firefox, Mozilla, Safari etc
    function () { return new ActiveXObject("Msxml2.XMLHTTP")    }, // newer versions IE5+
    function () { return new ActiveXObject("Microsoft.XMLHTTP") }  // older versions IE5+
];

function createXmlHttpRequestObject() 
{
    var xmlhttp = false;
    for (var i = 0; i < XMLHttpFactories.length; i++) 
    {
        try 
        {
            xmlhttp = XMLHttpFactories[i]();
        }
        catch (e) 
        {
            continue;
        }
        break;
    }
    return xmlhttp;
}