/* written by T.D.L.

dieses Script testet das Formular komplett ab
fehlende Werte werden angesprungen
falsche Eingaben können und müssen korrigiert werden

*/
function chkFormular()
 {
  var testvar;
  testvar = sub_chkFields();
  if (testvar)
   { testvar = sub_chkDatum(); }
  if (testvar)
   { testvar = distinct_date(); }
  if (testvar)
   {
    if(document.Eingabe.n_Email.value == "")
     {
      document.Eingabe.n_Email.value = "nomail";
     }
   }
  Dateshift();
  if (document.Eingabe.c_actual.checked == true)
   {
    document.Eingabe.n_npb.value = "1";
   }
  else
   {
    document.Eingabe.n_npb.value = "0";
   }
  return testvar;
 }

// Test, ob alle notwendigen Felder ausgefüllt sind

function sub_chkFields()
 {
  if(document.Eingabe.n_Datum_von.value == "")
   {
    alert("Bitte geben Sie ein Datum ein!");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }

  if(document.Eingabe.n_Titel.value == "")
   {
    alert("Bitte geben Sie einen Titel ein!");
    document.Eingabe.n_Titel.focus();
    return false;
   }

  if(document.Eingabe.n_Ort.value == "")
   {
    alert("Bitte geben Sie einen Veranstaltungsort an!");
    document.Eingabe.n_Ort.focus();
    return false;
   }

  if(document.Eingabe.n_Beschreibung.value == "")
   {
    alert("Bitte geben Sie eine kurze Beschreibung an!");
    document.Eingabe.n_Beschreibung.focus();
    return false;
   }

  if(document.Eingabe.n_Veranstalter.value == "")
   {
    alert("Bitte geben Sie den Veranstalter an!");
    document.Eingabe.n_Veranstalter.focus();
    return false;
   }

  if(document.Eingabe.n_Email.value.indexOf('@') == -1)
   {
     if(document.Eingabe.n_Email.value == "")
      {
      }
     else
      {
       if(document.Eingabe.n_Email.value != "nomail")
       {
        alert("Die Emailadresse ist ungültig!");
        alert("Bitte eine gültige Adresse eingeben oder Feld leer lassen...");
        document.Eingabe.n_Email.focus();
        return false;
       }
      }
    }
  return true;
 }

// Datumslänge wird geprüft

function sub_chkDatum()
 {
  var chka; chka = 0;
  var chkb; chkb = 0;

  if (document.Eingabe.n_Datum_von.value.length < 10)
   {
    alert("Die Datumsangabe ist zu kurz!");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }
  else
   {
    if (document.Eingabe.n_Datum_von.value.charAt(2) == ".")
     {   if (document.Eingabe.n_Datum_von.value.charAt(5) == ".")
          { chka = 1 }
     }

    if (chka==0)
     {
      alert("Das Datum muss das Format tt.mm.jjjj besitzen!");
      document.Eingabe.n_Datum_von.focus();
      return false;
     }
   }

  if (document.Eingabe.n_Datum_bis.value != "")
   {
    if (document.Eingabe.n_Datum_bis.value.length < 10)
     {
      alert("Die Datumsangabe ist zu kurz!");
      document.Eingabe.n_Datum_bis.focus();
      return false;
     }
    else
     {
      if (document.Eingabe.n_Datum_bis.value.charAt(2) == ".")
       {   if (document.Eingabe.n_Datum_bis.value.charAt(5) == ".")
            { chkb = 1 }
       }

      if (chkb==0)
       {
        alert("Das Datum muss das Format tt.mm.jjjj besitzen!");
        document.Eingabe.n_Datum_bis.focus();
        return false;
       }
      }
     }
  return true;
 }

// Datumsformat wird geprüft

function distinct_date()
 {
  tag=document.Eingabe.n_Datum_von.value.substr(0,2);
  monat=document.Eingabe.n_Datum_von.value.substr(3,2);
  jahr=document.Eingabe.n_Datum_von.value.substr(6,4);

  if (isNaN(parseInt(tag))|| isNaN(parseInt(monat)) || isNaN(parseInt(jahr)) )
   {
    alert("Das Datum sollte besser nur aus Zahlen bestehen...");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }
  else
   {
    if (tag.charAt(0) == "0") {tag = tag.charAt(1);}
    if (monat.charAt(0) == "0") {monat = monat.charAt(1);;}
    ntag = parseInt(tag);
    nmonat = parseInt(monat);
    njahr = parseInt(jahr);
   }

  if (ntag>31 ||ntag<1)
   {
    alert("Leider kenne ich keinen Monat, der mehr als 31 Tage hat...");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }

  if (nmonat>12 || nmonat<1)
   {
    alert("komische Monatsangabe...");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }

  if (njahr>2050 || njahr<1999)  // wichtig! muss irgendwann einmal geändert werden...
   {
    alert("Diese Jahresangabe erscheint mir dann doch ein wenig sinnlos...");
    document.Eingabe.n_Datum_von.focus();
    return false;
   }

  if (document.Eingabe.n_Datum_bis.value != "")
   {
    tag2=document.Eingabe.n_Datum_bis.value.substr(0,2);
    monat2=document.Eingabe.n_Datum_bis.value.substr(3,2);
    jahr2=document.Eingabe.n_Datum_bis.value.substr(6,4);

    if (isNaN(parseInt(tag2))|| isNaN(parseInt(monat2)) || isNaN(parseInt(jahr2)) )
     {
      alert("Das Datum sollte besser nur aus Zahlen bestehen...");
      document.Eingabe.n_Datum_bis.focus();
      return false;
     }
    else
     {
      if (tag2.charAt(0) == "0") {tag2 = tag2.charAt(1);}
      if (monat2.charAt(0) == "0") {monat2 = monat2.charAt(1);;}
      ntag2 = parseInt(tag2);
      nmonat2 = parseInt(monat2);
      njahr2 = parseInt(jahr2);
     }

    if (ntag2>31 ||ntag2<1)
     {
      alert("Leider kenne ich keinen Monat, der mehr als 31 Tage hat...");
      document.Eingabe.n_Datum_bis.focus();
      return false;
     }

    if (nmonat2>12 || nmonat2<1)
     {
      alert("komische Monatsangabe...");
      document.Eingabe.n_Datum_bis.focus();
      return false;
     }

    if (njahr2>2050 || njahr2<1999)  // wichtig! muss irgendwann einmal geändert werden...
     {
      alert("Diese Jahresangabe erscheint mir dann doch ein wenig sinnlos...");
      document.Eingabe.n_Datum_bis.focus();
      return false;
     }
   }
  return true;
 }

// Datum wird umgewandelt

function Dateshift()
 {
  htag=document.Eingabe.n_Datum_von.value.substr(0,2);
  hmonat=document.Eingabe.n_Datum_von.value.substr(3,2);
  hjahr=document.Eingabe.n_Datum_von.value.substr(6,4);

  document.Eingabe.n_hdate.value = hjahr+hmonat+htag;
 }