function getHTTPObject() 
{
    var xhr = false;
    
    if (window.XMLHttpRequest) //native implementation - IE 7+, Firefox, Safari 1.2+, Opera 8+
    {
        xhr = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) 
    {
        try 
        {
            xhr = new ActiveXObject("Msxml2.XMLHTTP"); //IE 5-6 newer library
        } 
        catch(e) 
        {
            try 
            {
                xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5-6
            } 
            catch(e) 
            {
                xhr = false; //IE 5 for Mac supports ActiveX, but not this object
            }
        }
    }
    
    return xhr;
}

function makeAJAXRequest(path,dataString)
{
    var request = getHTTPObject();
    var AJAXNotSupported = (request == false);
    
    if (request)
    {
        request.onreadystatechange = //assign anonymous function
            function() 
            {
                if(request.readyState == 4) //complete
                {
                    if(request.status == 200 || request.status == 304) //"OK" or "Not Modified" (for Opera's conditional GET)
                    {
                        AJAXCallbackFunction(request); //include specific response handler on page that makes call
                    }
                }
            };
        request.open("POST", path, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(dataString);
    }
    
    return AJAXNotSupported;    
}
