var commReqs = new Array();

function saveInputText(type, groupid, itemid)
{
    var ta = document.getElementById(type+"_"+itemid);
    if (ta.value == editValue[type+"_"+itemid]) {
        editStatus[type+"_"+itemid] = "0";
        showhide("edit_"+type+"_"+itemid);
        showhide("display_"+type+"_"+itemid);
        return;
    }

    var timestamp = new Date();
    var url = "/wcpa/servlet/org.oclc.lac.lists.AjaxEditingDistributor?"
            + "type="+type
            + "&groupid="+groupid
            + "&itemid="+itemid
            + "&content="
            + encodeURIComponent(document.getElementById(type+"_"+itemid).value)
            + "&time=" + timestamp.getTime();
    var req;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    showhide("edit_"+type+"_"+itemid);
    showhide("inpsaving_" +type+"_"+itemid);

    if (req) {
        commReqs.push(req);
        req.onreadystatechange = saveSuccess;
        req.open("GET", url, true);
        req.send(null);
    }
}

function saveSuccess()
{
    for (var i = 0; i < commReqs.length; i++) {
        try {
            if (commReqs[i].readyState == 4) {
                //alert("you see this after waiting 5 seconds");
                if (commReqs[i].status == 200) {
                    var response = commReqs[i].responseXML.documentElement;
                    response.normalize();
                    commReqs.splice(i, 1);
                    i--;
                    var elements = response.getElementsByTagName('element');
                    for (i = 0; i < elements.length; i++) {
                        var id = elements[i].getElementsByTagName('id')[0].firstChild.data;
                        var type = elements[i].getElementsByTagName('type')[0].firstChild.data;
                            //var note = elements[i].getElementsByTagName('note')[0].firstChild.data;
                        //alert(id+" "+note);
                        document.getElementById("saved_"+type+"_"+id).innerHTML = document.getElementById(type+"_"+id).value;
                            //document.getElementById(id + "_comments").value = note;
                        editStatus[type+"_"+id] = "0";
                        showhide("inpsaving_" + type+"_"+id);
                        showhide("display_"+type+"_"+id);
                    }
                } else {
                    commReqs.splice(i, 1);
                    i--;
                }
            }
        } catch (e) {
            showhide("inpsaving_"+ type+"_"+id);
            showhide("display_"+type+"_"+id);
            commReqs.splice(i, 1);
            i--;
        }
    }
}

    //var unsavedNoteCount = 0;
// number of notes being edited
var editValue = new Array();
    // saved values of comments to restore on cancel
var editStatus = new Array();
    //0-saved 1-unsaved
function editText(type, itemid, change) {
    var ta = document.getElementById(type+"_"+itemid);
    document.getElementById("update_"+type+"_"+itemid).disabled = false;
    ta.style.background = '';

        //editNoteCount += change; // update number of notes being edited
    if (change < 0) {  // cancel; restore value before display
        if (ta.value != editValue[type+"_"+itemid]) {
            ta.value = editValue[type+"_"+itemid];
        }
        editStatus[type+"_"+itemid] = "0";
    }
    showhide("edit_"+type+"_"+itemid);
    showhide("display_"+type+"_"+itemid);
    if (change > 0) { // editing; set focus after display
        ta.focus();
        editValue[type+"_"+itemid] = ta.value;
    }
}

function checkValue(type, itemid, value) {
    var ta = document.getElementById(type+"_"+itemid);
    if (value == editValue[type+"_"+itemid]) {
        ta.style.background = '';
        document.getElementById("update_"+type+"_"+itemid).disabled = false;
        editStatus[type+"_"+itemid] = "0";
    } else {
        ta.style.background = '#FFFFCC';
        document.getElementById("update_"+type+"_"+itemid).disabled = false;
        editStatus[type+"_"+itemid] = "1";
    }
}

function checkRadioValue(type, itemid, value) {
    var ta = document.getElementById(type+"_"+itemid);
    if (value == editValue[type+"_"+itemid]) {
        ta.style.background = '';
        document.getElementById("update_"+type+"_"+itemid).disabled = false;
        editStatus[type+"_"+itemid] = "0";
    } else {
        ta.style.background = '#FFFFCC';
        document.getElementById("update_"+type+"_"+itemid).disabled = false;
        editStatus[type+"_"+itemid] = "1";
    }
}

window.onbeforeunload = confirmBrowseAway;
function confirmBrowseAway()
{
    var unsaved = 0;
    for (var rec in editStatus) {
        if (editStatus[rec] == "1") {
            unsaved++;
        }
    }
    if (unsaved > 0) {
        //todo need a general message if we want to reuse
        return "你将会失去未被保存好对注释的更改 (" + unsaved + ")";
    }
}
