<!-- Javascripts zum Verlinken von "internen" und "externen" Seiten -->

/* ----------------------------------------------------------------------------------------------------
      Aufgabe: Erweitere ein HTML-Formular um weitere Felder und löse den Submit dieses Formulares aus
      Eingabe: die Zieladresse für das Formular (Standardwert ist der leere String), die zu
               übertragenden Parameter (analog dem Querystring [get-Methode]), optional das Ziel
               (target) des Formulars (Standardwert ist hier "_self"), den Typ des Popup-Fensters
               (Standardwert ist hier 0), sowie optional die Option, ob die Session-ID mit dem
               Formular übertragen werden soll, oder nicht (Standartwert ist hier true)
      Ausgabe: nichts
    Bemerkung: (wird durch andere Funktionen aufgerufen)
   ---------------------------------------------------------------------------------------------------- */
    function followLink(action, querystring, target, popuptype, withSID) {
      // Setze einen Standardwert für nicht gesetzte Parameter
      if (withSID == undefined) {
        withSID = true;
       }
      // Übernehme die Standarteinstellungen aus den Muster-Formular und
      // erstelle dynamisch eine Kopie
      var myReservedPlace = document.getElementById("followlinks");
      var myForm = document.createElement("form");
      myReservedPlace.appendChild(myForm);
      var sourceForm = document.getElementById("followlinksTemplate");
      myForm.setAttribute("name", "followlinks");
      myForm.setAttribute("action", sourceForm.getAttribute("action"));
      myForm.setAttribute("method", sourceForm.getAttribute("method"));
      myForm.setAttribute("target", sourceForm.getAttribute("target"));
      // Lege ggf. das Ziel des Formulars (action) neu fest
      if ((action != undefined) && (action != "")) {
        myForm.setAttribute("action", action);
       }
      // Lege ggf. das Ziel des Links (target) neu fest
      newWindow = false;
      if ((popuptype >= 1) && (popuptype <= 2)) {
        popuptype = 0;
       }
      myForm.setAttribute("target", "_self");
      if ((target != "") && (target != undefined)) {
        myForm.setAttribute("target", target);
        if (target.toLowerCase() == "_blank") {
          myForm.setAttribute("target", createPopUp(popuptype));
          newWindow = true;
         }
       }
      // Hebe die HTML-Kodierung teilweise auf
      while (querystring.search(/&quot;/) != -1) {
        querystring = querystring.replace(/&quot;/, "\"");
       }
      while (querystring.search(/&amp;/) != -1) {
        querystring = querystring.replace(/&amp;/, "&");
       }
      // Zerlege den übergebenen String
      parameters = querystring.split("&");
      for (var i=0; i<parameters.length; i++) {
        temp = parameters[i].split("=");
        if (temp.length == 2) {
          parameters[i] = temp;
         }
       }
      // Generiere die notwendigen Tabellenfelder
      baseelement1 = document.getElementById("followlinksTemplate").elements['SID'];
      baseelement2 = document.getElementById("followlinksTemplate").elements['linkID'];
      if (withSID) {
        var newElement = baseelement1.cloneNode(true);
        newElement = myForm.appendChild(newElement);
        var newElement = baseelement2.cloneNode(true);
        newElement = myForm.appendChild(newElement);
       }
      for (var i=0; i<parameters.length; i++) {
        var newElement = baseelement1.cloneNode(true);
        newElement = myForm.appendChild(newElement);
        newElement.name = parameters[i][0];
        newElement.value = parameters[i][1];
       }
      // Übermittle das dynamisch erstellte Formular
      myForm.submit();
      // Vernichte das dynamisch erstellte Formular wieder
      myReservedPlace.removeChild(myForm);
     }

/* ----------------------------------------------------------------------------------------------------
      Aufgabe: Erzeugt ein Popup-Fenster
      Eingabe: der Typ des Popup-Fensters
      Ausgabe: nichts
    Bemerkung: keine
   ---------------------------------------------------------------------------------------------------- */
    function createPopUp(popuptype) {
      now = new Date();
      if (popuptype == 1) {
        newWindow = window.open("about:blank", now.getTime(), "status=no, toolbar=no, resizable=yes, scrollbars=yes");
       } else if (popuptype == 2) {
        newWindow = window.open("about:blank", now.getTime(), "height=400, width=320, status=no, toolbar=no, resizable=yes, scrollbars=yes");
       } else if ((popuptype == "help") || (popuptype == "helpPrinting")) {
        newWindow = window.open("about:blank", popuptype, "left=" + (screen.width - 520) / 2 + ", top=" + (screen.height - 400) / 2 + ", width=520, height=400, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, toolbar=no");
       } else {
        newWindow = window.open("about:blank", now.getTime(), "");
       }
      return newWindow.name;
     }

/* ----------------------------------------------------------------------------------------------------
      Aufgabe: Erweitere ein HTML-Formular um weitere Felder und löse den Submit aus
      Eingabe: die zu übertragenden Parameter (analog dem Querystring [get-Methode]), den Namen des
               Formulars, optional das Ziel (target) des Formulars, den Typ des Popup-Fensters, sowie
               optional das Ziel des Formulars (action)
      Ausgabe: nichts
    Bemerkung: (Spezialisierung einer anderen Funktion)
   ---------------------------------------------------------------------------------------------------- */
    function followInternalLinkExtended(querystring, formname, target, popuptype, action) {
      // Lese die Felder des zu berücksichtigenden Eingabeformulares ein
      for (var i=0; i<document.forms[formname].elements.length; i++) {
        if (document.forms[formname].elements[i].type != "submit") {
          if (document.forms[formname].elements[i].type == "radio") {
            if (document.forms[formname].elements[i].checked == true) {
              querystring = querystring + "&" + document.forms[formname].elements[i].name + "=" + document.forms[formname].elements[i].value;
             }
           } else {
            querystring = querystring + "&" + document.forms[formname].elements[i].name + "=" + document.forms[formname].elements[i].value;
           }
         }
       }
      // Rufe die Schwesterfunktion auf
      followLink(querystring, target, popuptype, action, true);
     }

/* ----------------------------------------------------------------------------------------------------
      Aufgabe: Rufe ein bestimmtes Hilfedokument in einem gesonderten Fenster auf
      Eingabe: die ID des aufzurufenden Hilfedokuments und optional eine ID zur Navigation in der
               History der Hilfeseiten
      Ausgabe: nichts
    Bemerkung: (nutzt eine andere Funktion)
   ---------------------------------------------------------------------------------------------------- */
    function openHelp(documentID, historyID) {
      // Ergänze ggf. die Übermittelte History-ID
      addOn = "";
      if (historyID != undefined) {
        addOn = "&historyID=" + historyID;
       }
      // Aufruf der Schwesterfunktion
      followLink("", "portal=all&cmd=helppage&helppage=" + documentID + addOn, "_blank", "help", true);
     }

/* ----------------------------------------------------------------------------------------------------
      Aufgabe: Rufe ein bestimmtes Hilfedokument in einem gesonderten Fenster auf
      Eingabe: die ID des aufzurufenden Hilfedokuments und optional eine ID zur Navigation in der
               History der Hilfeseiten
      Ausgabe: nichts
    Bemerkung: (nutzt eine andere Funktion)
   ---------------------------------------------------------------------------------------------------- */
    function openHelpToPrint(documentID, historyID) {
      // Ergänze ggf. die Übermittelte History-ID
      addOn = "";
      if (historyID != undefined) {
        addOn = "&historyID=" + historyID;
       }
      // Aufruf der Schwesterfunktion
      followLink("", "portal=all&cmd=helppage&helppage=" + documentID + addOn + "&print=true", "_blank", "helpPrinting", true);
     }