var msg_1 = 'Fehler:';
var regexname = /^[a-zA-ZÄÖÜäöü][a-zA-ZÄÖÜäöüß \-\.]{1,38}$/;
var regexstr = /^[a-zA-ZÄÖÜäöü][a-zA-ZÄÖÜäöüß0-9/ \-\.]{1,39}$/;
var regexort = /^[a-zA-ZÄÖÜäöü][a-zA-ZÄÖÜäöüß/ \-]{1,39}$/;

var var_1 = new Array();
var_1[0] = new Array('subject','e','Sie haben keinen Betreff angegeben.',/^[^<>]{10,60}$/);
var_1[1] = new Array('subject','r','Der Betreff ist zu kurz oder enthält spitze Klammern: "<,>".',/^[^<>]{10,60}$/);
var_1[2] = new Array('letter','e','Bitte schreiben Sie einen Nachrichtentext.','');
var_1[3] = new Array('letter','r','Der Mailtext ist zu kurz oder enthält spitze Klammern: "<,>".',/^[^<>]{10,}$/);
var_1[4] = new Array('salutation','e','Sie haben keine Anrede angegeben.','');
var_1[5] = new Array('salutation','r','Die Anrede ist ungültig.',/^[a-zA-ZÄÖÜäöü][a-zA-ZÄÖÜäöüß/ \-\.]{1,39}$/);
var_1[6] = new Array('firstname','e','Sie haben keinen Vornamen angegeben.','');
var_1[7] = new Array('firstname','r','Der Vorname ist ungültig.',regexname);
var_1[8] = new Array('surname','e','Sie haben keinen Nachnamen angegeben.','');
var_1[9] = new Array('surname','r','Der Nachname ist ungültig.',regexname);
var_1[10] = new Array('email','e','Sie haben keine Mailadresse angegeben.','');
var_1[11] = new Array('email','m','Die Mailadresse ist ungültig.','');
var_1[12] = new Array('street','e','Sie haben keine Straße angegeben.','');
var_1[13] = new Array('street','r','Der Straßenname ist ungültig.',regexstr);
var_1[14] = new Array('town','e','Sie haben keinen Ort angegeben.','');
var_1[15] = new Array('town','r','Der Ortsname ist ungültig.',regexort);
var_1[16] = new Array('postcode','e','Sie haben keine Postleitzahl angegeben.','');
var_1[17] = new Array('postcode','r','Die Postleitzahl ist ungültig.',/^\d{4}$/);


function validate(sender,myarray,err_hd) {

var err_msg = new Array('Folgende Fehler sind aufgetreten:\n');
var error = false;
var counter = 0;
for (i=0;i<myarray.length;i++) {
counter++;
  field = document.forms[sender.name].elements[myarray[i][0]];

// Block 1 überprüft Felder, die ausgefüllt sein müssen
  if (myarray[i][1].indexOf('e')>-1) {
    if (!field.value) {
      error = true;
      err_msg.push(myarray[i][2]);
    }
  }

// Block 2 überprüft, ob die Emailadresse formal richtig ist
  else if (myarray[i][1].indexOf('m')>-1) {
    if (field.value) {
      var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
      var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
      var regex = "^"+usr+"\@"+domain+"$";
      var myrxp = new RegExp(regex);
      var check = (myrxp.test(field.value));
        if (check!=true) {
          error=true;
          err_msg.push(field.value+" "+myarray[i][2]);
        }
      }
    }

// Block 3 überprüft Wert anhand eines regulären Audrucks auf bestimmte Muster
  else if (myarray[i][1].indexOf('r')>-1) {
    var regexp = myarray[i][3];
    if (field.value) {
      if (!regexp.test(field.value)) {
        error = true;
        err_msg.push(field.value+" "+myarray[i][2]);
      }
    }
  }

}
// im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das Formular ohne Beanstandung ist, wird es übertragen
  if (error) {
    feedback = err_msg.join('\r\n');
    alert(feedback);
    return false;
  } else {
    return true;
  }
}
