/**********************************************
	Formular-Ueberpruefung mit Java-Script
	hat den Vorteil, dass die Felder direkt
	angesprungen werden koennen, die noch
	verbessert werden sollen und dass die 
	alert-Meldungen recht praktisch sind.
	
	Nach dem Absenden wird aber auch noch
	eine Serverseitige-Pruefung durchgefuehrt
	damit die Daten auch wirklich korrekt sind.
	

	Die  Ueberpruefungsfunktionen koennen
	weiterverwendet werden.
	Das Formular hat den Namen ADRESSE.
	Die Feld-Namen erklearen sich selbst.	
	
***********************************************/	

function buchstaben_pruef(pruef)
{
   
 var feld   =pruef;
 var inhalt = feld.value;  
 if (inhalt) //Wenn ein Feldeintrag vorhanden ist
   {
    //Wenn die Funktion RegExp bekannt ist 	
	if (window.RegExp) 
    {   
		var buchstaben = new RegExp("(^[&auml;&ouml;&uuml;&szlig;&Auml;&Ouml;&Uuml;A-Za-z-\ ]+$)");	
		//Nur Buchstaben, Leerzeichen und Bindestrich
		if (!buchstaben.test(inhalt))				
	       {alert  ("   Haben Sie sich vertippt?  \n\n[Es sind nur Buchstaben zul&auml;ssig]");
            feld.select();
			feld.focus();
			return "stop";
		   }	
		else return true;   
	}//ENDE (window.RegExp)
   }//ENDE if (inhalt)
	else return true;
}// END of Function


function zahl_pruef(pruef, hier)
{
  
 var feld   =pruef;
 var inhalt = feld.value;  

 if (hier=="PLZ"){var zahlen = new RegExp("^([0-9]{5})$");}
 // 5 Zahlen von 0 bis 9		
 if (hier=="Plaetze"){var zahlen = new RegExp("^([1-9][0-9]{0,2})$");}
 // Maximal 999 erste Zahl darf nicht Null sein 
 
 
 if (inhalt) //Wenn ein Feldeintrag vorhanden ist  
   {
    //Wenn die Funktion RegExp bekannt ist 	
	if (window.RegExp) 
    {  		
		if (!zahlen.test(inhalt))				
	       {alert  ("   Haben Sie sich vertippt?  \n\n[Es sind nur Zahlen zul&auml;ssig]");
            feld.select();
			feld.focus();
			return "stop";
		   }	
		else return true;   
	}//ENDE (window.RegExp)
   }//ENDE if (inhalt)
	else return true;
}// END of Function

/***************************************************
   HIER BEGINNT DIE EIGENTLICHE PRUEF_ROUTINE
***************************************************/

// Pruefen ob Name und Telefonnummer 
// ueberhaupt eingetragen sind

 function adresse_pruefen()
 { 
  var fehlmeld = "";
  var feld = "";
  var adr = document.anfrage;
  var flag = "";
  
 if (adr.Firma.value==""){ //FIRMA nicht eingetragen
 	fehlmeld = "an, für welche Bank oder Zeitung/Zeitschrift\n";
 	fehlmeld +="die Reise veranstaltet werden soll.\n\n";    
	feld = adr.Firma;
	}

 if ((feld=="")&&(adr.Nachname.value=="")){ //Nachname nicht eingetragen
 	fehlmeld = "Ihren Nachnamen an.";
	feld = adr.Nachname;
	}
	
 if ((feld=="")&&(adr.Vorname.value=="")){ //Vorname nicht eingetragen
 	fehlmeld = "Ihren Vornamen an.";
	feld = adr.Vorname;
	}

 if ((feld=="")&&(adr.Telefon.value=="")){ //Telefonnummer nicht eingetragen
 	fehlmeld = "Ihre Telefonnummer an.";
	feld = adr.Telefon;
	}	

 if ((feld=="")&&(adr.Bemerkung.value=="")){ //Bemerkung nicht eingetragen
 	fehlmeld = "an, worüber Sie informiert werden möchten.";
	feld = adr.Bemerkung;
	}

	
/**********************************************
	Wenn es eine Fehl(er)-Meldung gibt
	wird diese ausgegeben und der Cursor 
	auf das entsprechende Feld gesetzt
***********************************************/	
 if (feld!=""){ 
	alert(" Bitte geben Sie " + fehlmeld );	
		feld.select(); //Feld mit fehlenden Eintrag wird gewaehlt
		feld.focus();  //Cursor auf dieses Feld gesetzt
	return false;
  	}
	
	

   ///////////////////////////////
   //  Genauer  &uuml;berpr&uuml;fen      //
   //  Namen nur Buchstaben     //
   //  und PLZ nur f&uuml;nf Ziffern //  
   ///////////////////////////////
   
 if (feld=="")// Nur wenn 
 {
  if(buchstaben_pruef(adr.Nachname)=="stop")
  {var flag = "halt";}
   //alert ("Flag-Anzeige 1: " + flag);} //Bei Fehleintrag: HALT
   
  if (flag!="halt"){ //Nicht wenn schon ein Feleintrag gefunden
     if(buchstaben_pruef(adr.Vorname)=="stop") 
     { var flag = "halt";}  //Bei Fehleintrag: HALT
  }
  
  if (flag!="halt"){ //Nicht wenn schon ein Feleintrag gefunden
     if(buchstaben_pruef(adr.Ort)=="stop") 
     { var flag = "halt";}  //Bei Fehleintrag: HALT
  }
  
  if (flag!="halt"){ //Nicht wenn schon ein Feleintrag gefunden   
	if(zahl_pruef(adr.PLZ, "PLZ")=="stop") 
    { var flag = "halt";}  //Bei Fehleintrag: HALT
  }
    

  
  if(flag =="halt") //Wenn HALT => Feleintrag gefunden
  {return false;}   //aus SUBMIT aussteigen   
   
   
   //////////////////////////////
   // Telefonnummer &uuml;berpr&uuml;fen //
   // ( Script irgendwoher? )  //
   //////////////////////////////
   if (flag=="")
   {
   var feld		        = document.anfrage.Telefon;
   var telefon          = document.anfrage.Telefon.value;
   var zeichen_okay     = true;   // Annahme: Alle Zeichen sind okay
   var akt_zeichen_pos  = 0;      // Z&auml;hler f&uuml;r aktuelles Zeichen
   var akt_zeichen      = "";
   var erlaubte_zeichen = "1234567890 /-()";

   while (zeichen_okay && (akt_zeichen_pos < telefon.length))
      {
      akt_zeichen  = telefon.charAt(akt_zeichen_pos);
      zeichen_okay = (erlaubte_zeichen.indexOf(akt_zeichen) != -1);
      akt_zeichen_pos++;
      }
   if (! zeichen_okay)
      {
        alert("Irgendwie hat sich ein falsches Zeichen in \n das Feld mit der Telefonnummer eingeschlichen: \n -- "+akt_zeichen +" --");
        	feld.select(); //Feld mit fehlenden Eintrag wird gewaehlt
			feld.focus();  //Cursor auf dieses Feld gesetzt
		return false;
      }	  
    }//ENDE Telefonnummer &uuml;berpr&uuml;fen
	
	
   ////////////////////////////////
   //  Emailadresse  &uuml;berpr&uuml;fen  //
   ////////////////////////////////
   
   if ((flag=="")&&(document.anfrage.Email.value!=""))
   { 
  
  var emailadr = document.anfrage.Email.value;
  var feld     = document.anfrage.Email;
  var test1    = "";
  var test2    = "";
/*der Inhalt des Formularfeldes eMail*/

  
  if (window.RegExp) {
  
    var falschformat = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
	var rechtformat = "(^[A-Za-z0-9_.-]+)@[a-zA-Z0-9-]+\.([a-zA-Z]{1,3})(\.[_a-zA-Z]{2,3})$"; 

 	/*
	Der RegExp Abgleich KLAPPT 
	falschformat prueft, ob das  @  richtig gesetzt ist.
	rechtformat fischt ungueltige Zeichen vor und nach dem @
	zuverlaessig heraus.
	Die Domain-Pruefung ist jedoch noch nicht optimal.
	*/

    
	var falsch = new RegExp(falschformat);
    var recht = new RegExp(rechtformat);	
	
	var test1 = falsch.test(emailadr);
	var test2 = recht.test(emailadr);
	
	
	if((test1==true)||(test2==false))
			{
	        alert("Irgendwie hat sich ein Fehler in das Feld\n mit der Email-Adresse eingeschlichen.");
        	  feld.select(); //Feld mit fehlenden Eintrag wird gewaehlt
			  feld.focus();  //Cursor auf dieses Feld gesetzt
		    return false;
            }		
	  }//ENDE if (window.RegExp)
	}// ENDE e-Mail-Adresse pruefen



 }//ENDE von if feld==""
	return true;
}//ENDE der function adresse_pruefen()
