function checkStep(myStep) { // sets results, preview and shows element itself switch (myStep) { case "Fachrichtung": // getID, name MySelect = document.getElementById('Fachrichtung'); FachrichtungID = MySelect.options[MySelect.selectedIndex].value; Fachrichtung = MySelect.options[MySelect.selectedIndex].text; // remove depending options, they are maybe set before unsetStep('Adressen'); unsetStep('Spezialisierung'); unsetStep('WM1'); unsetStep('WM2'); unsetStep('WM3'); if (FachrichtungID > 0) { // determine next step if (arrFR[FachrichtungID]["Spezialisierung"] == 1) { unsetStep('WM1'); showStep('Spezialisierung'); } else { showStep('WM1'); // IE fix, IE needs a rest otherwise autoselect of WM1 fails window.setTimeout("checkStep('WM1')", 10); } // end if (arrFR[Fachrichtung]["Spezialisierung"] == 1) { } else { // no choice made //resetall(); Bezeichnung = "-"; } // end if (Fachrichtung > 0) { // set status myinfo = document.getElementById('pv_fachrichtung'); myinfo.innerHTML = Fachrichtung; // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = arrFR[FachrichtungID]["Hint"]; break; case "Spezialisierung": unsetStep('Adressen'); unsetStep('WM1'); unsetStep('WM2'); unsetStep('WM3'); // get value, text myelement = document.getElementById('Printmedien'); if (myelement.checked) Spezialisierung = myelement.value; myelement = document.getElementById('Digitalmedien'); if (myelement.checked) Spezialisierung = myelement.value; // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = "Bitte wählen Sie jetzt die Wahlmodule aus"; if (Spezialisierung != '') { // show next step showStep('WM1'); // set status myinfo = document.getElementById('pv_spezialisierung'); myinfo.innerHTML = Spezialisierung; } break; case "WM1": unsetStep('Adressen'); // check selections of WM1: setSelection and check count only, there are no dependencies in WM1 WM1 = document.getElementById('Wahlmodul1'); maxCount = ChoicesWM1; count = 0; Wahlmodul1 = new Array(maxCount); for (var i = 0; i < WM1.length; i++) { if (WM1[i].selected) { ModuleID = WM1[i].value; Modulename = WM1[i].text; // set status if (count <= maxCount) { // save Selection in arr Wahlmodul1 Wahlmodul1[count] = Modulename; myinfo = document.getElementById('pv_wahlmodul1'); // join add too many html breaks //myinfo.innerHTML = Wahlmodul1.join("
"); info = ""; for (j in Wahlmodul1) { if (info != "") info += "
"; info += Wahlmodul1[j]; } // end for (i in arrFR) { myinfo.innerHTML = info; count ++; } } // end if (WM1[i].selected) { } // end for (var i = 0; i < WM1.length; i++) { // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = "Bitte wählen Sie hier " + maxCount + " Modul(e) aus"; if (count == maxCount) { showStep('WM2'); } else { if (count > maxCount) alert("Bitte wählen Sie maximal " + maxCount + " Modul(e) aus."); unsetStep('WM2'); unsetStep('WM3'); } break; case "WM2": unsetStep('Adressen'); // check selection of WM2: get values, count and check dependecies WM2 = document.getElementById('Wahlmodul2'); maxCount = ChoicesWM2; count = 0; validModule = false; Wahlmodul2 = new Array(maxCount); for (var i = 0; i < WM2.length; i++) { if (WM2[i].selected) { // get Module ID and name to check dependecies ModuleID = WM2.options[i].value; Modulename = WM2.options[i].text; // check if there are any dependecies for this module if (arrWM2[ModuleID]["Dependecies"] != "") validModule = checkDependecies(arrWM2[ModuleID]["Dependecies"]); else validModule = true; // set results if selection is valid or print warning if (validModule && count <= maxCount) { // save Selection in arr Wahlmodul1 Wahlmodul2[count] = Modulename; myinfo = document.getElementById('pv_wahlmodul2'); // join add too many html breaks //myinfo.innerHTML = Wahlmodul2.join("
"); info = ""; for (j in Wahlmodul2) { if (info != "") info += "
"; info += Wahlmodul2[j]; } // end for (i in arrFR) { myinfo.innerHTML = info; count ++; } else if (!validModule) { WM2[i].selected = false; warnmsg = "Um das Modul \"" + Modulename + "\" wählen zu können müssen Sie \"" + arrWM2[ModuleID]["Dependecies"] + "\" ausgewählt haben."; alert(warnmsg) } // end if (validSelection) } // end if (element[i].selected) { } // end for (var i = 0; i < element.length; i++) { // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = "Bitte wählen Sie hier " + maxCount + " Modul(e) aus"; if (count == maxCount) { showStep('WM3'); } else { if (count > maxCount) alert("Bitte wählen Sie maximal " + maxCount + " Modul(e) aus."); unsetStep('WM3'); } break; case "WM3": unsetStep('Adressen'); // check selection of WM3: get values, count and check dependecies WM3 = document.getElementById('Wahlmodul3'); maxCount = ChoicesWM3; count = 0; validModule = false; Wahlmodul3 = new Array(maxCount); for (var i = 0; i < WM3.length; i++) { if (WM3[i].selected) { // get Module ID and name to check dependecies ModuleID = WM3.options[i].value; Modulename = WM3.options[i].text; // check if there are any dependecies for this module if (arrWM3[ModuleID]["Dependecies"] != "") validModule = checkDependecies(arrWM3[ModuleID]["Dependecies"]); else validModule = true; // set results if selection is valid or print warning if (validModule && count <= maxCount) { // save Selection in arr Wahlmodul1 Wahlmodul3[count] = Modulename; myinfo = document.getElementById('pv_wahlmodul3'); //myinfo.innerHTML = Wahlmodul3.join("
"); info = ""; for (j in Wahlmodul3) { if (info != "") info += "
"; info += Wahlmodul3[j]; } // end for (i in arrFR) { myinfo.innerHTML = info; count ++; } else if (!validModule) { WM3[i].selected = false; warnmsg = "Um das Modul \"" + Modulename + "\" wählen zu können müssen Sie \"" + arrWM3[ModuleID]["Dependecies"] + "\" ausgewählt haben."; alert(warnmsg); } // end if (validSelection) } // end if (WM3[i].selected) { } // end for (var i = 0; i < WM3.length; i++) { if (count == maxCount) { showStep('Adressen'); } else { if (count > maxCount) alert("Bitte wählen Sie maximal " + maxCount + " Modul(e) aus."); } break; case "Adressen": // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = "Bitte geben Sie jetzt die Adressen ein"; break; } // end switch (Step) { } function unsetStep(myStep) { // unsets results, preview and hides element itself switch (myStep) { case "Fachrichtung": init(); // remove value FachrichtungID = ""; Fachrichtung = ""; // set status myinfo = document.getElementById('pv_fachrichtung'); myinfo.innerHTML = "-"; break; case "Spezialisierung": Spezialisierung = ""; // hide element myelement = document.getElementById('Spezialisierungen'); myelement.style.visibility = "hidden"; // remove status info myinfo = document.getElementById('pv_spezialisierung'); myinfo.innerHTML = "-"; // remove value mybutton = document.getElementById('Printmedien'); mybutton.checked = false; mybutton = document.getElementById('Digitalmedien'); mybutton.checked = false; break; case "WM1": // delete results Wahlmodul1 = new Array(); Wahlmodul2 = new Array(); Wahlmodul3 = new Array(); // remove modules unlinkelements('Wahlmodul1'); // hide elements, 3 in this case myelement = document.getElementById('Wahlmodule'); //myelement.style.visibility = "hidden"; setOpacity(myelement,5); myelement = document.getElementById('Wahlmodule1'); //myelement.style.visibility = "hidden"; setOpacity(myelement,5); // remove status myinfo = document.getElementById('pv_wahlmodul1'); myinfo.innerHTML = "-"; break; case "WM2": // delete results Wahlmodul2 = new Array(); Wahlmodul3 = new Array(); // remove modules unlinkelements('Wahlmodul2'); // hide element myelement = document.getElementById('Wahlmodule2'); //myelement.style.visibility = "hidden"; setOpacity(myelement,5); // remove status myinfo = document.getElementById('pv_wahlmodul2'); myinfo.innerHTML = "-"; break; case "WM3": // delete results Wahlmodul3 = new Array(); // remove modules unlinkelements('Wahlmodul3'); // hide element myelement = document.getElementById('Wahlmodule3'); //myelement.style.visibility = "hidden"; setOpacity(myelement,5); // remove status myinfo = document.getElementById('pv_wahlmodul3'); myinfo.innerHTML = "-"; break; case "Adressen": // hide element myelement = document.getElementById('Adressen'); //myelement.style.visibility = "hidden"; setOpacity(myelement,5); break; } // end switch (Step) { } function showStep(myStep) { // unsets results, preview and hides element itself switch (myStep) { case "Spezialisierung": myelement = document.getElementById('Spezialisierungen'); myelement.style.visibility = "visible"; setOpacity(myelement,10); unsetStep('WM1'); unsetStep('WM2'); unsetStep('WM3'); break; case "WM1": // show elements, 4 in this case myelement = document.getElementById('Wahlmodule'); //myelement.style.visibility = "visible"; setOpacity(myelement,10); myelement = document.getElementById('Wahlmodule1'); //myelement.style.visibility = "visible"; setOpacity(myelement,10); maxCount = ChoicesWM1; // insert options updateelements('Wahlmodul1',false,arrWM1,arrFR[FachrichtungID]["Wahlmodul1"],maxCount,Wahlmodul1); // prepare next step total = countelements(arrFR[FachrichtungID]["Wahlmodul1"],arrWM1); if (total == maxCount) { checkStep('WM1'); } // end if (total == arrFR[FachrichtungID]["Choices"]) { break; case "WM2": maxCount = ChoicesWM2; // show element myelement = document.getElementById("Wahlmodule2"); //myelement.style.visibility = "visible"; setOpacity(myelement,10); // insert options updateelements("Wahlmodul2",false,arrWM2,arrFR[FachrichtungID]["Wahlmodul2"],maxCount,Wahlmodul2); // remove depending options unlinkelements('Wahlmodul3'); // prepare next step total = countelements(arrFR[FachrichtungID]["Wahlmodul2"],arrWM2); if (total == maxCount) checkStep('WM2'); break; case "WM3": // show element myelement = document.getElementById("Wahlmodule3"); //myelement.style.visibility = "visible"; setOpacity(myelement,10); maxCount = ChoicesWM3; // insert options updateelements('Wahlmodul3',false,arrWM3,arrFR[FachrichtungID]["Wahlmodul3"],maxCount,Wahlmodul3); // prepare next step total = countelements(arrFR[FachrichtungID]["Wahlmodul3"],arrWM3); if (total == maxCount) checkStep('WM3'); break; case "Adressen": myelement = document.getElementById('Adressen'); //myelement.style.visibility = "visible"; setOpacity(myelement,9); myelement = document.getElementById('AVDate'); //myelement.style.visibility = "visible"; setOpacity(myelement,9); myelement = document.getElementById('Azubi'); setOpacity(myelement,9); myelement = document.getElementById('Ausbildungsbetrieb'); setOpacity(myelement,9); myelement = document.getElementById('Formate'); setOpacity(myelement,9); // set hint myinfo = document.getElementById('Hint'); myinfo.innerHTML = "Bitte geben Sie jetzt die Adressen ein"; break; } // end switch (Step) { }