
function createReq() {
    try {
        if (typeof ActiveXObject != "undefined") {
            return new ActiveXObject("Microsoft.XMLHTTP")
        } else if (window.XMLHttpRequest) {
            return new XMLHttpRequest
        }
    } catch(a) {
    }
    return null
}

function Cc() {
}

var AR = new AsyncRequest();

function AsyncRequest() {
    AsyncRequest.prototype.loadText = function(url, callback) {
         AsyncLoad(url, function(response, status) {
            if (status == 200)  callback(response,status);
             else  callback(null,status);
        });
    }
    AsyncRequest.prototype.loadXML = function(url, callback) {
        AsyncLoad(url, function(response, status) {
           if (status == 200)  callback(parseXML(response),status);
             else  callback(null,status);
        });
    }
}

function AsyncLoad(a, b) {
    var req = createReq();
    if (!req)return false;
    req.onreadystatechange = function() {
        if (req == null) return;
        if (req.readyState == 4) {
            try {
                b(req.responseText, req.status);
                req.onreadystatechange = Cc;
            } catch(e) {
            }
        }
    }
    req.open("GET", a, true);
    req.send(null)
    return true
}

function parseXML(a) {
    if (typeof ActiveXObject != "undefined" && typeof GetObject != "undefined") {
        var b = new ActiveXObject("Microsoft.XMLDOM");
        b.loadXML(a);
        return b
    }
    if (typeof DOMParser != "undefined") {
        return(new DOMParser).parseFromString(a, "text/xml")
    }
    return null;
}
