var xmlHttp;

function GetXmlHttpObject (handler)
{
    var objXmlHttp = null;

    try
    {
        objXmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
        // IE
        var XMLHTTP_IDS = new Array
        (
            'MSXML3.XMLHTTP',
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP',
            'Microsoft.XMLHTTP'
        );
        var success = false;
        for (var i=0;i < XMLHTTP_IDS.length && !success; i++)
        {
            try
            {
                objXmlHttp = new ActiveXObject(XMLHTTP_IDS[i]);
                success = true;
                break;
            }
            catch (e){}
        }
        if (!success)
        {
            throw new Error('Unable to create XMLHttpRequest.');
        }
    }

    if (handler)
    {
        try
        {
            objXmlHttp.onreadystatechange=handler;
        }
        catch (e)
        {
            throw new Error('Unable to set handler function.');
        }
    }

    return objXmlHttp;
} 

