﻿var req;

function asyncRequest(url, callback) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = callback;
        req.open("GET", url, true);
        req.send(null);
        
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");        
        if (req) {
            req.onreadystatechange = callback;
            req.open("GET", url, true);
            req.send();
        }
    }
    
    return req;
}

function syncRequest(url) {
    var r;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        r = new XMLHttpRequest();
        r.open("GET", url, false);
        r.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        r = new ActiveXObject("Microsoft.XMLHTTP");
        if (r) {
            r.open("GET", url, false);
            r.send();
        }
    }
    return r;
}

//callback example
function processReqChange() 
{
    if (req.readyState == 4) {
        if (req.status == 200) {
            alert(req.responseText);
        } else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}
