lastel = null;
lastid = null;
select_storage = new Array();

function updateContent(elname, bildname, schuelerid) {
    curIndex = document.getElementById('dropdown' + elname).selectedIndex;
    curVal   = document.getElementById('dropdown' + elname).options[document.getElementById('dropdown' + elname).selectedIndex].value;
    if (curIndex == 0 && select_storage[elname]) {
        schuelerid.value = select_storage[elname];
        bildname         = '';
    }

    for (i in selfields) {
        if (selfields[i].options && (selfields[i].id != 'dropdown' + elname && selfields[i].selectedIndex != 0) && selfields[i].options[selfields[i].selectedIndex].value == schuelerid.value) {
            want_abort = confirm('VORSICHT! Sie wollen einen Schüler diesem Bild zuordnen, der bereits einem anderen Bild zugeordnet ist. Wenn Sie fortfahren, wird das bereits zugewiesene Bild keinem Schüler mehr zugeordnet sein. Klicken sie auf OK (JA), wenn Sie fortfahren wollen. Klicken sie auf ABBRECHEN (NEIN) wenn sie die Zuordnung nicht ausführen wollen.');
            if (!want_abort) {
                f = document.getElementById('dropdown' + elname);
                //selfields[i].selectedIndex = 0;
                //selfields[i].options[0].selected = 0;
                f.selectedIndex = 0;
                f.options[0].selected = 0;
                for (jj in f.options) {
                    if (f.options[jj] && f.options[jj].value == select_storage[elname]) {
                        f.selectedIndex = jj;
                        f.options[jj].selected = 1;
                    }
                }
                return true;
            }

        }
    }

    xurl = 'http://www.brinkmannundsoehne.de/newajax.php?id=' + schuelerid.value + '&bildname=' + escape(bildname);
    microAjax(xurl, finished);

    if (document.getElementById('schueler_' + schuelerid.value)) {
        document.getElementById('info' + elname).innerHTML = document.getElementById('schueler_' + schuelerid.value).value;

        if (select_storage[elname] == "empty" || select_storage[elname] == "") {
            document.getElementById('done').innerHTML = parseInt(document.getElementById('done').innerHTML) + 1;
            document.getElementById('todo').innerHTML = parseInt(document.getElementById('todo').innerHTML) - 1;
        } else {
            document.getElementById('done').innerHTML = parseInt(document.getElementById('done').innerHTML) - 1;
            document.getElementById('todo').innerHTML = parseInt(document.getElementById('todo').innerHTML) + 1;
        }
    } else {
        if (curVal == 0) {
            document.getElementById('done').innerHTML = parseInt(document.getElementById('done').innerHTML) - 1;
            document.getElementById('todo').innerHTML = parseInt(document.getElementById('todo').innerHTML) + 1;
        } else {
            document.getElementById('done').innerHTML = parseInt(document.getElementById('done').innerHTML) + 1;
            document.getElementById('todo').innerHTML = parseInt(document.getElementById('todo').innerHTML) - 1;
        }
    }

    lastel = elname;
    lastid = schuelerid.value;
    select_storage[elname] = curVal;
}

function finished(returnval) {
    document.getElementById('bild' + lastel).className = "bild finished";

//    new Effect.Pulsate(document.getElementById('bild' + lastel), {duration: 1.5});
    pulsname = '#bild' + lastel;
    $(pulsname).Pulsate(100,5);

    for (i in selfields) {
        if (selfields[i].options && (selfields[i].id != 'dropdown' + lastel || selfields[i].selectedIndex == 0) && selfields[i].options[selfields[i].selectedIndex].value == lastid) {
            selfields[i].selectedIndex = 0;
            selfields[i].options[0].value = 0;
            parentel = 'bild' + i;
            parentelinfo = 'info' + i;
            document.getElementById(parentel).className = "bild missing";
            document.getElementById(parentelinfo).innerHTML = "";
            break;
        }
    }

/*
    for (i in selfields) {
        if (selfields[i].options && (selfields[i].id != 'dropdown' + lastel || selfields[i].selectedIndex == 0) && selfields[i].options[selfields[i].selectedIndex].value == lastid) {
            selfields[i].selectedIndex = 0;
            selfields[i].options[0].value = 0;
            parentel = selfields[i].id.replace(/dropdown/, "bild");
            parentelinfo = selfields[i].id.replace(/dropdown/, "info");
            document.getElementById(parentel).className = "bild missing";
            document.getElementById(parentelinfo).innerHTML = "";
            break;
        }
    }
*/
}

function showfields() {
    // selfields = document.getElementsByClassName('dropdown');

    // for (i in selfields) {
        // if (selfields[i].options) {
            // alert('Dropdown #' + i + ' hat: ' + selfields[i].selectedIndex + ': ' + selfields[i].options[selfields[i].selectedIndex].value);
        // }
    // }

    return true;
}

function microAjax(url, callbackFunction) {
    this.bindFunction = function (caller, object) {
        return function() {
            return caller.apply(object, new Array(object));
        }
    }

    this.stateChange = function (object) {
        if (this.request.readyState==4) {
            this.callbackFunction(this.request.responseText);
        }
    }

    this.getRequest = function() {
        if (window.ActiveXObject) {
            return new ActiveXObject('Microsoft.XMLHTTP');
        } else if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        } else {
            return false;
        }
    }

    if (arguments[2]) {
        this.postBody = arguments[2];
    } else {
        this.postBody="";
    }

    this.callbackFunction=callbackFunction;
    this.url=url;
    this.request = this.getRequest();

    if (this.request) {
        this.request.onreadystatechange = this.bindFunction(this.stateChange, this);

        if (this.postBody!="") {
            this.request.open("POST", url, true);
            this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            this.request.setRequestHeader('Connection', 'close');
        } else {
            this.request.open("GET", url, true);
        }

        this.request.send(this.postBody);
    }
}
