// Datei:                www/lib/jscript/plausi.js
// Java-Script:          Formulareingabe-Prüfungen
// Autor:                Uwe Schmitt
//                       Landeshauptstadt Düsseldorf, Amt 10/3
// Datum:                06.2002
// Letzte Änderungen:    xx.xxxx - Brigitte Siebers - Funktion Telefon
//                       03.2003 - Detlef Lange/Brigitte Siebers - neue Funktion DatumVergangen
//                       02.2004 - Detlef Lange - neue Funktion CheckboxCheck


// Allgemein gültiger Teil -> Standardplausibilitäten




function Vollstaendig(Feld)
// Prüft, ob Pflichteingaben vorhanden sind.
{


        var Wert = document.Formular.elements[Feld].value;
        if (Wert == "")
           {   alert("\nEingabe im Feld " +
                     document.Formular.elements[Feld].name + " fehlt!");
               document.Formular.elements[Feld].focus();
               return false;
           }

}




function Alpha(Feld)
// Prüft, ob nur A bis Z und einige Sonderzeichen.
{
        var Wert = document.Formular.elements[Feld].value;
        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if (((Buchstabe < "a" || "z" < Buchstabe) &&
                     (Buchstabe < "A" || "Z" < Buchstabe)) &&
                     Buchstabe != " " && Buchstabe != "-" && Buchstabe != "'" &&
                     Buchstabe != "ä" && Buchstabe != "ö" && Buchstabe != "ü" &&
                     Buchstabe != "Ä" && Buchstabe != "Ö" && Buchstabe != "Ü" && Buchstabe != "ß")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }
}




function Telefon(Feld)
// Prüft, ob nur Ziffern, Blanks und  "("  ")"  "/"  "-" "+"

{
 var Wert = document.Formular.elements[Feld].value;
 var z = 0;
 if (Wert != "")
 {
        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                 if (Buchstabe >= "0" || "9" <= Buchstabe)        {
                z = z + 1;
                }
                if ((Buchstabe < "0" || "9" < Buchstabe) && ((Buchstabe!="+") && (Buchstabe!="/") && (Buchstabe!="-") && (Buchstabe!="(") && (Buchstabe!=")") && (Buchstabe!=" ")))
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!" + "\nErlaubt sind Zahlen und ( ) / - +  sowie Leerzeichen" );
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }
 }
 if (z <=3) {
        alert("\nEingabe im Feld " + document.Formular.elements[Feld].name + " ist falsch!\nDie Nummer ist nicht korrekt angegeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
          }
}




function Nummer(Feld)
// Prüft, ob nur Ziffern
{
        var Wert = document.Formular.elements[Feld].value;
        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if (Buchstabe < "0" || "9" < Buchstabe)
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }
}




function NummerBlanks(Feld)
// Prüft, ob nur Ziffern und Blanks
{
        var Wert = document.Formular.elements[Feld].value;
        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if ((Buchstabe < "0" || "9" < Buchstabe) && Buchstabe != " ")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }
}




function NummerPunkt(Feld)
// Prüft, ob nur Ziffern und Punkt
{
        var Wert = document.Formular.elements[Feld].value;
        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if ((Buchstabe < "0" || "9" < Buchstabe) && Buchstabe != ".")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }
}




function eMail(Feld)
// Prüft, ob eMail-Adresse syntaktisch richtig.
{
        var Wert = document.Formular.elements[Feld].value;

        if (document.Formular.elements[Feld].value.indexOf ('@',0) == -1 ||
            document.Formular.elements[Feld].value.indexOf ('.',0) == -1)
           { alert("\nDie eMail-Adresse benötigt ein @-Zeichen und mindestens einen \'.\'");
             document.Formular.elements[Feld].select();
             document.Formular.elements[Feld].focus();
             return false;
           }
}




function DatumZehn(Feld)
// Prüft, ob nur zehnstelliges Datum,z.B. 16.05.2000
{
        var Wert = document.Formular.elements[Feld].value;

        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if ((Buchstabe < "0" || "9" < Buchstabe) && Buchstabe != ".")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }

        if (Wert.length != 10)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte Datum in der Form TT.MM.JJJJ, z.B. 16.05.1965 ausfüllen.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if (Wert.substring(0, 2) < 1 || Wert.substring(0, 2) > 31)
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültigen Tag eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if (Wert.substring(3, 5) < 1 || Wert.substring(3, 5) > 12)
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültigen Monat eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if (Wert.substring(6, 10) < "1890")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültiges Jahr eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if ((Wert.substring(3, 5) == 4 ||
            Wert.substring(3, 5) == 6 ||
            Wert.substring(3, 5) == 9 ||
            Wert.substring(3, 5) == 11) &&
            (Wert.substring(0, 2) > 30))
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültiges Datum eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if ((Wert.substring(3, 5) == 2) &&
            (Wert.substring(0, 2) > 29))
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültiges Datum eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if ((Wert.substring(6, 10) % 4) > 0)
           {
            if ((Wert.substring(3, 5) == 2) && (Wert.substring(0, 2) > 28))
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nBitte gültiges Datum eingeben.");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }

           }
}




function DatumZukunft(Feld)
// Prüft, ob Datum in der Zukunft liegt
{
        var Wert = document.Formular.elements[Feld].value;

        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if ((Buchstabe < "0" || "9" < Buchstabe) && Buchstabe != ".")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }

        jetzt = new Date();
        Tag = jetzt.getDate();
        Monat = jetzt.getMonth() + 1;
        Jahr = jetzt.getYear();
        if(Jahr <= 999) Jahr+=1900;

        if (Wert.substring(6, 10) > Jahr)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Zukunft liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if  (Wert.substring(6, 10) == Jahr &&
             Wert.substring(3, 5) > Monat)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Zukunft liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if  (Wert.substring(6, 10) == Jahr &&
             Wert.substring(3, 5) == Monat &&
             Wert.substring(0, 2) > Tag)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Zukunft liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }

}




function DatumVergangen(Feld)
// Prüft, ob Datum in der Vergangenheit liegt
{
        var Wert = document.Formular.elements[Feld].value;

        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if ((Buchstabe < "0" || "9" < Buchstabe) && Buchstabe != ".")
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }

        jetzt = new Date();
        Tag = jetzt.getDate();
        Monat = jetzt.getMonth() + 1;
        Jahr = jetzt.getYear();
        if(Jahr <= 999) Jahr+=1900;

        if (Wert.substring(6, 10) < Jahr)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Vergangenheit liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if  (Wert.substring(6, 10) == Jahr &&
             Wert.substring(3, 5) < Monat)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Vergangenheit liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
        if  (Wert.substring(6, 10) == Jahr &&
             Wert.substring(3, 5) == Monat &&
             Wert.substring(0, 2) < Tag)
                  {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name +
                            "!\nDatum darf nicht in der Vergangenheit liegen!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
}




function PLZ(Feld)
// Prüft, ob Postleitzahl fünfstellig
{
        var Wert = document.Formular.elements[Feld].value;

        for (var i = 0; i < Wert.length; i++)
            {   var Buchstabe = Wert.substring(i, i + 1);
                if (Buchstabe < "0" || "9" < Buchstabe)
                   {  alert("\nUngültige Eingabe im Feld " +
                            document.Formular.elements[Feld].name + "!");
                      document.Formular.elements[Feld].select();
                      document.Formular.elements[Feld].focus();
                      return false;
                   }
            }

                if (document.Formular.elements[Feld].value.length < 5)
              {   alert("\nPostleitzahl bitte fünfstellig angeben!");
                  document.Formular.elements[Feld].focus();
                  return false;
              }
}




function Hinweis(Feld)
// Prüft, ob Hinweisfeld beachtet wurde
{
        var Wert = document.Formular.elements[Feld].value;

                if (document.Formular.elements[Feld].checked == false)
              {   alert("\nBitte Hinweis lesen und anklicken!");
                  document.Formular.elements[Feld].focus();
                  return false;
              }
}



function CheckboxCheck(Feld, min_checkbox, max_checkbox) {
//Prüft, ob die Anzahl der markierten Checkboxen zwischen "min_checkbox" und "max_checkbox" liegt und damit zulässig ist
	var count_checkbox = 0;
	for (var i = 0; i < document.Formular.elements[Feld].length; i++) {
		if (document.Formular.elements[Feld][i].checked == true) {
			count_checkbox++;
		}
	}
	if (count_checkbox > max_checkbox) {
		alert("\n"+Feld+": Es sind maximal "+max_checkbox+" Nennungen möglich, bitte korrigieren Sie Ihre Angaben.");
		document.Formular.elements[Feld][0].focus();
		return false;
	}
	if (count_checkbox < min_checkbox) {
		alert("\n"+Feld+": Mindestens "+min_checkbox+" Nennung(en) erforderlich, bitte korrigieren Sie Ihre Angaben.");
		document.Formular.elements[Feld][0].focus();
		return false;
	}
}