﻿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;
}

function hasClassA(xclass, strCheck) {
    var x = false;
    var A1 = xclass.split(" ");
    for (var i = 0; i < A1.length; i++) {
        if (A1[i] == strCheck) {
            x = true;
            break;
        }
    }
    return x;
}

function keyIntA(e, xobj) {
    var xkey;
    if (document.all) {
        xkey = window.event.keyCode;
    } else {
        xkey = e.which;
    }
    if ((xkey >= 48 && xkey <= 57) || (xkey == 8)) {
        return true;
    } else {
        return false;
    }
}

function editA(event, xobj) {
    var xbox = xobj.parentNode.parentNode;
    var A1 = xbox.getElementsByTagName("div");
    var editrow;
    var x2;
    for (var i = 0; i < A1.length; i++) {
        if (A1[i].getAttribute("fieldA") != null) {
            x2 = "<input type='text' value='" + A1[i].innerHTML + "'";
            x2 += " name='" + A1[i].getAttribute("fieldA") + "' ";
            if (hasClassA(A1[i].className, "int")) {
                x2 += " class='int' onkeypress='return keyIntA(event,this);' ";
            }
            x2 += "/>";
            x2 += "<span style='display:none'>" + A1[i].innerHTML + "</span>";
            A1[i].innerHTML = x2;
        }
        if (A1[i].getAttribute("buttonA") == "edit") {
            editrow = A1[i];
        }
    }
    editrow.innerHTML = "<input type='button' value='Update' onclick='updateA(event,this);'/> " +
                        "<input type='button' value='Cancel' onclick='cancelA(event,this);'/>";
}



function cancelA(event, xobj) {
    var xbox = xobj.parentNode.parentNode;
    var A1 = xbox.getElementsByTagName("div");
    var editrow;
    for (var i = 0; i < A1.length; i++) {
        if (A1[i].getAttribute("fieldA") != null) {
            A1[i].innerHTML = A1[i].firstChild.nextSibling.innerHTML;
        }
        if (A1[i].getAttribute("buttonA") == "edit") {
            editrow = A1[i];
        }
    }
    editrow.innerHTML = "<input type='button' value='Edit' onclick='editA(event,this);'/> ";

}

function updateA(event, xobj) {
    var xbox = xobj.parentNode.parentNode;
    var A1 = xbox.getElementsByTagName("div");
    saveData(xbox);
    var editrow;
    for (var i = 0; i < A1.length; i++) {
        if (A1[i].getAttribute("fieldA") != null) {
            A1[i].innerHTML = A1[i].firstChild.value;
        }
        if (A1[i].getAttribute("buttonA") == "edit") {
            editrow = A1[i];
        }
    }
    editrow.innerHTML = "<input type='button' value='Edit' onclick='editA(event,this);'/> ";
}

function postBox(xbox) {
    var A1 = xbox.getElementsByTagName("input");
    var x = "";
    for (var i = 0; i < A1.length; i++) {
        if (A1[i].name != "") {
            if (x != "") {
                x += "&";
            }
            x += A1[i].name + "=" + encodeURIComponent(A1[i].value);
        }
    }
    return x;
}
