var oldaction; // alte action von form, bevor ajaxifiziert

function init() {
    // beim Laden der Seite Fieldsets verstecken
    var f = document.getElementsByTagName("fieldset");
    for(var x=0; x < f.length; x++) {
        if(f[x].className == "initially-hidden") {
            f[x].className = "hidden";
            f[x].onclick = function() { this.className = "shown"; };
        }
    }

    /// außerdem Formularelemente ausgrauen
    // checked: data-src-file
    en('data-file');dis('data-form data-input data-text');
    // checked: dimension-src-diameter
    en('dimension-diameter');dis('dimension-width dimension-height')
    // Farbfelder:
    var k = new Array('imagebg', 'tapebg', 'punched', 'notpunched', 'feedholes');
    for(var x=0; x < k.length; x++) {
        color(document.forms[0].elements['color-'+k[x]], 'color-'+k[x]);
    }

    // und das AJAX-Zeug laden:
    // 1. Formular abändern
    oldaction = document.forms[0].getAttribute("action");
    document.forms[0].setAttribute("action", oldaction+"?ajax");

    // 2. Submit abänder
    var button = document.getElementById("submit-button");
    button.setAttribute("type", "button");
    button.setAttribute("onclick", "new POST().submitForm(document.forms[0], getHttpRes);");

    // 3. und dieses Teleport-Teil starten
    Init.run('BODY');
}

function en(names) {
     /* enables name */
     var n = names.split(" ");
     for(var x=0; x < n.length; x++) {
         document.forms[0].elements[n[x]].removeAttribute("disabled");
     }
}

function dis(names) {
     /* disable names */
     var n = names.split(" ");
     for(var x=0; x < n.length; x++) {
         document.forms[0].elements[n[x]].setAttribute("disabled", "disabled");
     }
}

function color(e, id) {
     /* colorizes testfield */
     document.getElementById(id+"-field").style.backgroundColor = e.value;
}


function getHttpRes(msg, state, extra){
     // Ajax-Antwort kriegen, mit diesem Teleport-Teil
     if(state != __RPC_SUCCESS__) return alert("Konnte nicht zu Server verbinden!");

     // nachricht checken:
     if(msg == "ok") {
         // weitermachen. Formular abschicken!
         document.getElementById('ajax-output').innerHTML = "<div class='big-okay'>Alle Eingaben richtig, Lochstreifen wird erstellt...</div>";
         // Formular wieder auf alte Zieladresse setzen (GET?ajax weg)
         document.forms[0].setAttribute("action", oldaction);
         // damit das Button seine FUnktion wieder hat, falls jemand zurückgeht
         document.getElementById("submit-button").setAttribute("type", "submit");
         // und damit nicht vor dem submit dummerweise die Ergebnisseite von dem Ajaxding
         // geladen wird, was zur Folge hat, dass das Bild doppelt generiert würde
         // keine Ahung ob das was bringt...
         document.getElementById("submit-button").removeAttribute("onclick");
         document.forms[0].submit();
     } else {
         var forword = "<p>Es sind Fehler in den Eingaben aufgetreten, daher kann der Lochstreifen noch nicht erstellt werden. Bitte berichtigen sie diese Fehler und klicken sie dann nochmals auf \"Lochstreifen generieren\"</p>\n";
         document.getElementById('ajax-output').innerHTML = forword+msg;
         var button = document.getElementById("submit-button");
         button.setAttribute("value", "Nochmal probieren & Lochstreifen generieren...");
     }
}


window.onload = init;
