<!--
function getFormErrors(form) {
   var errors = new Array();
  
   // loop thru all form elements
   for (var elementIndex = 0; elementIndex < form.elements.length; elementIndex++) {
      var element = form.elements[elementIndex];
 
      // text and textarea types
      if (element.type == "text" || element.type == "textarea") {
         element.value = trimWhitespace(element.value)
 
         // required element
         if (element.required  && element.value == '') {
            errors[errors.length] = element.requiredError;
         }
 
         // maximum length
         else if (element.maxlength && isValidLength(element.value, 0, element.maxlength) == false) {
            errors[errors.length] = element.maxlengthError;
         }
 
         // minimum length
         else if (element.minlength && isValidLength(element.value, element.minlength, Number.MAX_VALUE) == false) {
            errors[errors.length] = element.minlengthError;
         }
 
         // pattern (credit card number, email address, zip or postal code, alphanumeric, numeric)
         else if (element.pattern) {
            if ( ( (element.pattern.toLowerCase() == 'visa' || element.pattern.toLowerCase() == 'mastercard' || element.pattern.toLowerCase() == 'american express' || element.pattern.toLowerCase() == 'diners club' || element.pattern.toLowerCase() == 'discover' || element.pattern.toLowerCase() == 'enroute' || element.pattern.toLowerCase() == 'jcb' || element.pattern.toLowerCase() == 'credit card') && isValidCreditCard(element.value, element.pattern) == false) ||
                  (element.pattern.toLowerCase() == 'email' && isValidEmail(element.value) == false) ||
                  (element.pattern.toLowerCase() == 'zip or postal code' && isValidZipcode(element.value) == false && isValidPostalcode(element.value) == false) ||
                  (element.pattern.toLowerCase() == 'zipcode' && isValidZipcode(element.value) == false) ||
                  (element.pattern.toLowerCase() == 'postal code' && isValidPostalcode(element.value) == false) ||
                  (element.pattern.toLowerCase() == 'us phone number' &&
                     ( (element.prefix && element.suffix && isValidUSPhoneNumber(element.value, form[element.prefix].value, form[element.suffix].value) == false) ||
                        (!element.prefix && !element.suffix && isValidUSPhoneNumber(element.value) == false) ) ) ||
                  (element.pattern.toLowerCase() == 'alphanumeric' && isAlphanumeric(element.value, true) == false) ||
                  (element.pattern.toLowerCase() == 'numeric' && isNumeric(element.value, true) == false) ||
                  (element.pattern.toLowerCase() == 'alphabetic' && isAlphabetic(element.value, true) == false) ) {
               errors[errors.length] = element.patternError;
            }
         }
      }
 
      // password
      else if (element.type == "password") {
 
         // required element
         if (element.required  && element.value == '') {
            errors[errors.length] = element.requiredError;
         }
 
         // maximum length
         else if (element.maxlength && isValidLength(element.value, 0, element.maxlength) == false) {
            errors[errors.length] = element.maxLengthError;
         }
 
         // minimum length
         else if (element.minlength && isValidLength(element.value, element.minlength, Number.MAX_VALUE) == false) {
            errors[errors.length] = element.minLengthError;
         }
      }
     
      // file upload
      if (element.type == "file") {
        
         // required element
         if (element.required  && element.value == '') {
            errors[errors.length] = element.requiredError;
         }
      }
     
      // select
      else if (element.type == "select-one" || element.type == "select-multiple" || element.type == "select") {
 
         // required element
         if (element.required && element.selectedIndex == -1) {
            errors[errors.length] = element.requiredError;
         }
        
   // disallow empty value selection
         else if (element.disallowEmptyValue && element.options[element.selectedIndex].value == '') {
            errors[errors.length] = element.disallowEmptyValueError;
         }
 
      }
     
      // checkbox
      else if (element.type == "checkbox") {
        
         // required element
         if (element.required && element.checked != true) {
            errors[errors.length] = element.requiredError;
         }
      }
     
      // radio buttons
      else if (element.type == "radio") {
         var radiogroup = form.elements[element.name];
        
         // required element
         if (radiogroup.required && radiogroup.length) {
            var checkedRadioButton = -1;
            for (var radioIndex = 0; radioIndex < radiogroup.length; radioIndex++) {
               if (radiogroup[radioIndex].checked == true) {
                  checkedRadioButton = radioIndex;
                  break;
               }
            }
            if (checkedRadioButton == -1 && !radiogroup.tested) {
               errors[errors.length] = radiogroup.requiredError;
               radiogroup.tested = true;
            }
         }
        
         radiogroup = null;
      }
   }  
   return errors;
}
 
// Check that an email address is valid based on RFC 821 (?)
function isValidEmail(address) {
 if (address != '' && address.search) {
      if (address.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true;
      else return false;
 }
 
   // allow empty strings to return true - screen these with either a 'required' test or a 'length' test
   else return true;
}
 
// Check that an email address has the form something@something.something
// This is a stricter standard than RFC 821 (?) which allows addresses like postmaster@localhost
function isValidEmailStrict(address) {
 if (isValidEmail(address) == false) return false;
 var domain = address.substring(address.indexOf('@') + 1);
 if (domain.indexOf('.') == -1) return false;
 if (domain.indexOf('.') == 0 || domain.indexOf('.') == domain.length - 1) return false;
 return true;
}
 

// Check that a string contains only letters and numbers
function isAlphanumeric(string, ignoreWhiteSpace) {
 if (string.search) {
  if ((ignoreWhiteSpace && string.search(/[^\w\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\W/) != -1)) return false;
 }
 return true;
}
 
// Check that a string contains only letters
function isAlphabetic(string, ignoreWhiteSpace) {
 if (string.search) {
  if ((ignoreWhiteSpace && string.search(/[^a-zA-Z\s]/) != -1) || (!ignoreWhiteSpace && string.search(/[^a-zA-Z]/) != -1)) return false;
 }
 return true;
}
 
// Check that a string contains only numbers
function isNumeric(string, ignoreWhiteSpace) {
 if (string.search) {
  if ((ignoreWhiteSpace && string.search(/[^\d\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\D/) != -1)) return false;
 }
 return true;
}
 
// Remove characters that might cause security problems from a string
function removeBadCharacters(string) {
 if (string.replace) {
  string.replace(/[><\"\'%;\)\(&\+]/, '');
 }
 return string;
}
 
// Remove all spaces from a string
function removeSpaces(string) {
 var newString = '';
 for (var i = 0; i < string.length; i++) {
  if (string.charAt(i) != ' ') newString += string.charAt(i);
 }
 return newString;
}
 
// Remove leading and trailing whitespace from a string
function trimWhitespace(string) {
 var newString  = '';
 var substring  = '';
 beginningFound = false;
 
 // copy characters over to a new string
 // retain whitespace characters if they are between other characters
 for (var i = 0; i < string.length; i++) {
  
  // copy non-whitespace characters
  if (string.charAt(i) != ' ' && string.charCodeAt(i) != 9) {
   
   // if the temporary string contains some whitespace characters, copy them first
   if (substring != '') {
    newString += substring;
    substring = '';
   }
   newString += string.charAt(i);
   if (beginningFound == false) beginningFound = true;
  }
  
  // hold whitespace characters in a temporary string if they follow a non-whitespace character
  else if (beginningFound == true) substring += string.charAt(i);
 }
 return newString;
}




         function checkForm(form) {
              
            form.email.required = true;
            form.email.requiredError = 'das Feld "Email-Adresse" wurde nicht ausgefüllt.';
            
            form.email.pattern = 'email';
            form.email.patternError = 'das Feld "Email-Adresse" enthält einen ungültigen Eintrag.';

            var errors = getFormErrors(form);
           
            if (errors.length > 0) {
               var errorMessage = 'Das Formular konnte nicht übermittelt werden, da folgende' + ((errors.length < 2) ? 'r' : '') + ' Fehler auftrat' + ((errors.length > 1) ? 'en' : '') + ':\n\n';
               for (var errorIndex = 0; errorIndex < errors.length; errorIndex++) {
                  errorMessage += '  -> ' + errors[errorIndex] + '\n';
               }
			 
               errorMessage += '\nBitte korrigieren Sie ' + ((errors.length > 1) ? ' diese' : ' diesen') + ' Eintrag und klicken dann erneut auf "Absenden".';
               alert(errorMessage);
               return false;
            }

            // no errors: return true
            return true;
         }


//-->
