// Returns true if a string contains only whitespace characters.
function isBlank(s) {
  for(var i = 0; i < s.length; i++) {
    var c = s.charAt(i);
    if ((c != ' ') && (c != '\n') && (c != '\t'))
      return false;
  }
  return true;
}

// Returns true if a form field contains only whitespace characters.
function isEmpty(field) {
  if ((field == null) || (field == ""))
    return true;
  return isBlank(field.value);
}

// Returns a copy of the string with leading and trailing blanks omitted.
function trim(s) {
  if (s == null)
    return null;
  var i = 0;
  while(i < s.length && s.charAt(i) == ' ')
    ++i;
  if (i >= s.length)
    return '';
  var j = s.length - 1;
  while(j >= 0 && s.charAt(j) == ' ')
    --j;
  return s.substring(i, ++j);
}

function check_newsletter(form, what) {
  form.email.value = trim(form.email.value);
  if (isEmpty(form.email)) {
    if (what == 'an')
      alert("Bitte geben Sie Ihre E-Mail-Adresse ein, an die der Newsletter geschickt werden soll.");
    else
      alert("Bitte geben Sie Ihre E-Mail-Adresse ein, an die der Newsletter bisher geschickt wurde.");
    form.email.focus();
  } else if (check_email(form.email)) {
    form.aktion.value = (what == 'an') ? "abonieren" : "abbestellen";
    form.submit();
  }
}

function check_kommentar(form) {
  form.email.value = trim(form.email.value);
  form.kommentar.value = trim(form.kommentar.value);
  if (isEmpty(form.kommentar)) {
    alert("Bitte geben Sie Text ein.");
    form.kommentar.focus();
    return false;
  }
  return isEmpty(form.email) || check_email(form.email);
}

function check_email(field) {
  var ok = false;
  var at = field.value.indexOf('@');
  if (at >= 1 && at <= field.value.length - 5) {  // a@b.de => mindestens ein Zeichen vor und vier nach @
    var pt = field.value.indexOf('.', at);
    if (pt >= 3 && pt <= field.value.length - 3) {  // a@b.de => mindestens drei Zeichen vor und zwei nach .
      var bl = field.value.indexOf(' ');
      if (bl < 0)
        ok = true;
      else alert("Die E-Mail-Adresse ist ungültig, sie enthält Leerzeichen.");
    } else alert("Die E-Mail-Adresse ist ungültig, sie enthält keine gültige Domain.");
  } else alert("Die E-Mail-Adresse ist ungültig, sie enthält kein @.");
  if (!ok)
    field.focus();
  return ok;
}

