var form = "";
var submitted = false;
var error = false;
var error_message = "";

function check_counts(field_name, field_size, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == '' || field_value.length < field_size) {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_signs(field_name, signs, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == '' || signs.test(field_value) == false) {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_checked(field_name, checker, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    if (form.elements[field_name].checked != checker) {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_radio(field_name, message) {
myOption = -1;
for (i=form.elements[field_name].length-1; i > -1; i--) {
if (form.elements[field_name][i].checked) {
myOption = i; i = -1;
}
}
if (myOption == -1) {
    error_message = error_message + "* " + message + "\n";
    error = true;
}
}


function check_select(matrix, minwahl, maxwahl, message) {
  var Summe = 0;
  for (var i = 0; i < matrix.length; ++i) {
    if (form.elements[matrix[i]] && (form.elements[matrix[i]].type != "hidden")) {
      if (form.elements[matrix[i]].checked == true) {
        ++Summe;
      }
    }
  }
  if (Summe < minwahl || Summe > maxwahl) {
      error_message = error_message + "* " + message + "\n";
      error = true;
  }
}

function check_form(form_name) {
  if (submitted == true) {
    alert("Diese Seite wurde bereits bestätigt. Betätigen Sie bitte OK und warten bis der Prozess durchgeführt wurde.");
    return false;
  }

  error = false;
  form = form_name;
  error_message = "Notwendige Angaben fehlen!\nBitte folgende Felder richtig ausfüllen:\n\n";

  check_counts("firma", 2, "Firma");
  check_counts("strasse", 2, "Strasse");
  check_counts("plz", 5, "PLZ");
  check_counts("ort", 2, "Ort");
  check_signs("anrede", RegExp('Herr|Frau'), "Anrede");
  check_counts("vorname", 2, "Vorname");
  check_counts("nachname", 2, "Nachname");
  check_signs("mail", RegExp('^(.+)@(.+)\\.(.+)$'), "E-Mail");
  check_radio("teilnahme", "Teilnahme?");

//  check_checked("teilnahmeb", true, "Teilnahmebedingungen");

  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

