var myXMLHttpR = null;
var fieldSize = "2";
var errorColor = "#FF0000";
var okColor = "#00FF00";
var callChecked = false;
var callOK = false;


function init() {
  document.form1.betreff.focus();
}

function erzXMLHttpRequestObject() {
  var resObject = null;
  
  try {
    resObject = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(Error) {
    try {
      resObject = new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch(Error) {
      try {
        resObject = new XMLHttpRequest();
      }
      catch(Error) {
        alert("Ihr Browser unterstützt leider keine WEB 2 - Anwendungen!");
      }
    }
  }
  
  return resObject;
}


function response_of_call() {
  if (myXMLHttpR.readyState == 4) {
    if (myXMLHttpR.status == 200) {
      var resTxt = myXMLHttpR.responseText;
      if (resTxt == "0") {
        document.getElementById("status").innerHTML = "<font size=" + fieldSize + " color=" + errorColor + ">Rufzeichen ung&uuml;ltig!!!</font>";
        callOK = false;
        document.form1.call.focus();
        document.form1.call.select();
      } else if (resTxt = "1") {
        document.getElementById("status").innerHTML = "<font size=" + fieldSize + " color=" + okColor + ">Rufzeichen OK</font>";
        callOK = true;
      }  
    } else {
      document.getElementById("status").innerHTML = "<font size=" + fieldSize + " color=" + errorColor + ">&Uuml;berpr&uuml;fung nicht m&ouml;glich</font>";
      callOK = true;
    }

  }  
 
}

function setFieldInfo(feldNum) {
  if (feldNum == 1)
    document.getElementById("fieldInfo").innerHTML = "Die Kalenderwoche(n) f&uuml;r die Ver&ouml;ffentlichung angeben.";
  else if (feldNum == 2)
    document.getElementById("fieldInfo").innerHTML = "Thema: Z.B.: OV Exx OV - Abend usw.";
  else if (feldNum == 8)
    document.getElementById("fieldInfo").innerHTML = "Rufzeichen: Es werden nur deutsche Rufzeichen akzeptiert!";
  else if (feldNum == 9)
    document.getElementById("fieldInfo").innerHTML = "E-Mail: Wird direkt überprüft!!!";
  else document.getElementById("fieldInfo").innerHTML = "";
}


function checkCall() {
  if (document.form1.call.value != "") {
    // Rufzeichen immer in Grossbuchstaben
    var callStr = document.form1.call.value.toUpperCase();
    document.form1.call.value = callStr;
    
    // Es werden nur deutsche Rufzeichen ausgewertet
    if ((callStr.charAt(0) == 'D') && (callStr.length >= 4)){
      if (myXMLHttpR == null)
        myXMLHttpR = erzXMLHttpRequestObject();
      if (myXMLHttpR != null) {
        myXMLHttpR.open("POST", 'bnetza.php', true);
        myXMLHttpR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        myXMLHttpR.onreadystatechange = response_of_call;
        myXMLHttpR.send("call=" + callStr);
      }
    } else {
	  if (myXMLHttpR != null)
        document.getElementById("status").innerHTML = "<font size=" + fieldSize + " >&nbsp;</font>";	  
      alert("Fehlerhafte Eingabe des Rufzeichens");
      document.form1.call.focus();
      document.form1.call.select();	  
    }
  }
  
  callChecked = true;
}


function checkForm(theForm) {
  if (theForm.betreff.value == "") {
    alert("Geben Sie den Betreff Ihrer Nachricht ein.");
    theForm.betreff.focus();
    return false;
  }
  
  if (theForm.thema.value == "") {
    alert("Geben Sie das Thema Ihrer Nachricht ein.");
    theForm.thema.focus();
    return false;
  }
    
  if (theForm.vorname.value == "") {
    alert("Bitte geben Sie Ihren Vornamen ein.");
    theForm.vorname.focus();
    return false;
  }
  
  if (theForm.nachname.value == "") {
    alert("Bitte geben Sie Ihren Nachnamen ein.");
    theForm.nachname.focus();
    return false;
  }
    
  if (theForm.strasse.value == "") {
    alert("Bitte geben Sie Ihre Strasse ein.");
    theForm.strasse.focus();
    return false;
  }
  
  if (theForm.plz.value == "") {
    alert("Bitte geben Sie Ihre Postleitzahl ein.");
    theForm.plz.focus();
    return false;
  }
    
  if (theForm.ort.value == "") {
    alert("Bitte geben Sie Ihren Ort ein.");
    theForm.ort.focus();
    return false;
  }

  if (theForm.call.value == "") {
    alert("Bitte geben Sie Ihr Rufzeichen ein.");
    theForm.call.focus();
    return false;
  }

  if (!callChecked) {
    checkCall();
    return false;
  }
    
  if (!callOK)
    return false;
  
  if (theForm.email.value.length > 50)
  {
    alert("Geben Sie eine gültige E-Mail Adresse ein.");
    theForm.email.focus();
    theForm.email.select();	
    return (false);
  }

  if (theForm.email.value.length < 7)
  {
    alert("Geben Sie eine gültige E-Mail Adresse ein.");
    theForm.email.focus();
    theForm.email.select();		
    return (false);
  }

  var checkStr = theForm.email.value.toLowerCase();
  var notAllowed = "äöü ?,!=+*#'\\/&()%$§´`[]~\":<>|µ";
  var allValid = true;
  var dePoint = checkStr.lastIndexOf(".");
  var vLen = checkStr.length;
  
  if (dePoint < 0)
  {
    alert("Geben Sie eine gültige E-Mail Adresse ein.");
    theForm.email.focus();
    theForm.email.select();		
    return (false);
  }
  
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < notAllowed.length;  j++)
    {
      if (ch == notAllowed.charAt(j))
      {
        allValid = false;
        break;
      }  
    }  
  }
  
  if (!allValid) 
  {
    alert("Sonderzeichen sind in der E-Mail Adresse nicht erlaubt!");
    theForm.email.focus();
    theForm.email.select();		
    return (false);
  }
  
  if (checkStr.indexOf("@") < 0)
  {
    alert("Geben Sie eine gültige E-Mail Adresse ein.");
    theForm.email.focus();
    theForm.email.select();		
    return (false);
  }
    
  if ((checkStr.lastIndexOf(".de")   != vLen - 3)  &&
      (checkStr.lastIndexOf(".biz")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".org")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".net")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".info") != vLen - 5)  &&
      (checkStr.lastIndexOf(".tv")   != vLen - 3)  &&
      (checkStr.lastIndexOf(".arpa") != vLen - 5)  &&
      (checkStr.lastIndexOf(".edu")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".gov")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".int")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".nato") != vLen - 5)  &&
      (checkStr.lastIndexOf(".mil")  != vLen - 4)  &&
      (checkStr.lastIndexOf(".at")   != vLen - 3)  &&
      (checkStr.lastIndexOf(".com")  != vLen - 4))
  {
    alert("Geben Sie eine gültige E-Mail Adresse ein.");
    theForm.email.focus();
    theForm.email.select();		
    return (false);
  }
    
  if (theForm.message.value == "") {
    alert("Wollen Sie uns wirklich eine leere Nachricht zukommen lassen?");
    theForm.message.focus();
    return false;
  }
    
  return true;
}
