// vorhandene Typen: Datum_de, Text, Pulldown, Passwort, Passwort_neu, Checkbox, Checkbox_list, Pulldown_list

function checkFields(fieldNames, fieldDescription, fieldType)
{ 
  document.getElementById('form_submit').disabled = true;
  document.getElementById('form_submit').value = 'One Moment please ...';

  for (i=0; i < fieldNames.length; i++)
  {
    var felder = document.getElementsByName(fieldNames[i]);
    for (j=0; j < felder.length; j++)
    {
      if(fieldType[i] == 'Datum_de')
      {
        if (felder[j].value.length < 1)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
        else
        {
          var start = felder[j].value; 
          var x = start.split(".");

          if (start == 'TT.MM.JJJJ')
          {
            alert('TT.MM.JJJJ nicht erlaubt als Datum');
            document.getElementById('form_submit').disabled = false;
            document.getElementById('form_submit').value = 'Speichern';
            return (false);
          }
          else if (start.match(/\d\d\.\d\d\.\d\d\d\d/) && x[0] <= 31 && x[1] <= 12 && x[2] <= 2038) 
          {
            if ((x[2] % 4 == 0 && x[2] != 0) || x[2] % 400 == 0) // Schaltjahr
            {
              if ((x[1] == 02 && x[0] > 29) || (x[1] == 04 && x[0] > 30) || (x[1] == 06 && x[0] > 30) || (x[1] == 09 && x[0] > 30) || (x[1] == 11 && x[0] > 30))
              {
                alert('Fehlerhaftes Datum: ' + x[0] + '.' + x[1] + '.' + x[2]);
                document.getElementById('form_submit').disabled = false;
                document.getElementById('form_submit').value = 'Save';
                return (false);
              }
            }
            else // kein Schaltjahr
            {
              if ((x[1] == 02 && x[0] > 28) || (x[1] == 04 && x[0] > 30) || (x[1] == 06 && x[0] > 30) || (x[1] == 09 && x[0] > 30) || (x[1] == 11 && x[0] > 30))
              {
                alert('Fehlerhaftes Datum: ' + x[0] + '.' + x[1] + '.' + x[2]);
                document.getElementById('form_submit').disabled = false;
                document.getElementById('form_submit').value = 'Save';
                return (false);
              }
            }
          }
          else 
          {
            alert("Datumswerte oder Datumsformat ist nicht korrekt!");
            felder[j].focus();
            document.getElementById('form_submit').disabled = false;
            document.getElementById('form_submit').value = 'Save';
            return (false);
          }
        }
      }
      else if(fieldType[i] == 'Text')
      {
        if (felder[j].value.length < 1)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Email')
      {
        if (felder[j].value.length < 1)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Pulldown')
      {
        if (felder[j].value == 0)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Passwort')
      {
        if (felder[j].value.length < 1)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
        else if(document.getElementById(felder[j].id).value != document.getElementById(felder[j].id + '_confirm').value)
        {
          alert('New Password: The password and the repetition of password are not alike! Please enter the passwords again!');
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Passwort_neu')
      {
      if (felder[j].value != document.getElementById(felder[j].id + '_confirm').value)
        {
          alert('News Password: The new password and the repetition of password are not alike! Please enter the new passwords again!');
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Checkbox')
      {
        if (felder[j].checked == false)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
        else if (felder[j].value == 0)
        {
          alert(fieldDescription[i]);
          felder[j].focus();
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Checkbox_list')
      {
        var listFields = document.getElementsByName(felder[j].name);
        var counter = 0;
        for (x=0; x<listFields.length; x++)
        {
          if (listFields[x].checked == true)
          {
            counter = 1;
          }
        }
        if (counter == 0)        
        {
          alert(fieldDescription[i]);
          document.getElementById('form_submit').disabled = false;
          document.getElementById('form_submit').value = 'Save';
          return false;
        }
      }
      else if(fieldType[i] == 'Pulldown_list')
      {



        for(x=0;x<felder.length;x++){
          for(y=0;y<felder.length;y++){
            if(felder[x].value == felder[y].value && x!=y){
              //alert(felder[x].id + " und " + felder[y].id + " ist gleich");
              alert(fieldDescription[i]);
              felder[y].focus();
              document.getElementById('form_submit').disabled = false;
              document.getElementById('form_submit').value = 'Save';
              return false; 
            } 
          }
        }









      }
    }
  }
  document.getElementById('form_submit').disabled = false;
  return true;
}

