﻿function xmlCreateA() {
    var xmlHttp;
    if (typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();
    } else {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlHttp = null;
            }
        }
    }
    return xmlHttp;
}

function xmlAsyncA(url, postData, oncomplete, onconnecterror, onfinish) {
    var xtimeout;
    var req = xmlCreateA();
    if (req == null) { return; }
    var method = (postData) ? "POST" : "GET";
    req.open(method, url, true);
    req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
    if (postData) { req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); }
    xtimeout = window.setTimeout(function() {
        req.abort();
        if (onconnecterror) { onconnecterror(); }
        if (onfinish) { onfinish(); }
        alert("Cannot connect to server, please try again later");
    }, 10000);
    req.onreadystatechange = function() {
        if (req.readyState != 4) { return; }
        if (req.status != 200 & req.status != 304) { return; }
        window.clearTimeout(xtimeout);
        oncomplete(req);
        if (onfinish) { onfinish(); }
    }
    req.send(postData);
}

function xmlSyncA(url, postData) {
    var req = xmlCreateA();
    if (req == null) { return; }
    var method = (postData) ? "POST" : "GET";
    req.open(method, url, false);
    req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
    if (postData) { req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); }
    req.send(postData);
    return req;
}
