/* Validierungsfunktionen

created by A@OG 02/2003
updated 04/2003
///////////////////  für nicht zu prüfende Funktion bitte "no" oder "0" eingeben  /////////////////////////////////////

0 = Pflichtfeld 
1 = Maximale Wortzahl
2 = Maximale Zeichenzahl
3 = Email
4 = Feldbezeichnung in Fehlerausgabe

Beispiel: conf["Feldname"] = new Array("no", "1", "10", "0");
=> Das Feld "Feldname" ist kein Pflichtfeld , darf maximal 1 Wort haben und maximal 10 Zeichen. Außerdem wird keine email-Validierung vorgenommen.

*/

var conf = new Array();				// Welche Felder sollen mit welchen Validierungen überprüft werden
conf["angebotsform"] = new Array("1", "no", "no", "no", "Angebotsform");
conf["aktion"] = new Array("1", "no", "no", "no", "gewünschte Aktion");
conf["teilnehmer"] = new Array("1", "no", "no", "no", "Teilnehmerzahl");
conf["name"] = new Array("1", "no", "no", "no", "Name");
conf["vorname"] = new Array("1", "no", "no", "no", "Vorname");
conf["email"] = new Array("1" , "no", "no", "1", "E-Mail");
conf["strasse"] = new Array("1" , "no", "no", "no", "Straße");
conf["ort"] = new Array("1", "no", "no", "no", "Ort");
conf["telefon"] = new Array("1", "no", "no", "no", "Telefonnummer");
conf["nachricht"] = new Array("1" , "no", "no", "no", "Nachricht");
conf["einverstaendnis"] = new Array("1", "no", "no", "no", "Teilnahmebedingungen");




function checkEmail(field) { // email check funktion

var validEmail = field.value.match(/^([a-zA-Z0-9_\.\-])+\@((([a-zA-Z0-9\-]{1,99})+\.)*)+(([a-zA-Z0-9\-]{2,99})+\.)+([a-zA-Z0-9]{2,4})+$/);

if (validEmail){
   return true;
} else {
     return false;
   }
}


function blank(field) {
   
   //alert(field.type);
   switch (field.type) {
      case "checkbox":
        //alert(field.checked);
        if (field.checked) {
           return true;
        }
        else {
           return false;
        }
	break;      


      case "text":
      default:
      if (field.value == ''){
         return false;
      }
      else {
        return true;
      }
      break;
   }

}

function countWords(field) {			// Wortzahl aus Element auslesen
	matchTable=field.value.match(/\w+/g);
	var zahl = matchTable?matchTable.length:0;
	return zahl;
	}
	
	
	
	
function maxlength(field){		//  Buchstabenzahl aus Element lesen
	
	var length =field.value.length;
	return length;									
	}



function doValidForm (tform) {			// Start Validfunktion
var valtext;
valtext = "";
//alert ("JoeCool");
 for (var i in conf) 
 {
 
  	 for (var v = 0; v < conf[i].length ; v++)
		{
		
		switch(v) {
		
 			case 0:		// Muß ausgefüllt sein !!!
			
			if (conf[i][v] != "no" && conf[i][v] != "0"){
				if (blank(tform.elements[i])) // checkt ob Feld ausgefüllt ist
					{
					//alert("1 abgeschlossen");
					} // endif
				else
					{
					if (conf[i][4] != ""){
					valtext = valtext + "Pflichtfeld " + conf[i][4] + " bitte ausfüllen\n";
					}
					else {
						valtext = valtext + "Pflichtfeld " + tform.elements[i].name + " bitte ausfüllen\n";
						}
					//alert("Pflichtfeld " + tform.elements[i].name + " ist leer");
					//return false;
					} //endelse
					} // endif
					
					break;				
			case 1:		// Max Wortzahl!!!
			if (conf[i][v] != "no" && conf[i][v] != "0"){
				
				if (countWords(tform.elements[i]) > conf[i][v]) // check Wortzahl
					{
					if (conf[i][4] != ""){
					valtext = valtext + "Maximale Wortzahl von " + conf[i][v] + " in Feld " + conf[i][4] + " überschritten\n";
					}
					else {
						valtext = valtext + "Maximale Wortzahl von " + conf[i][v] + " in Feld " + tform.elements[i].name + " überschritten\n";
						}

					//alert("Maximale Wortzahl von " + conf[i][v] + " in Feld " + tform.elements[i].name + " überschritten");
					//return false;
					} //endif
				else
					{
			 		//alert("2 abgeschlossen");
					
					} //endelse
					} //endif
					
					
					break;
			case 2:		// Max Buchstabenzahl!!!
			if (conf[i][v] != "no" && conf[i][v] != "0"){
				if (maxlength(tform.elements[i]) > conf[i][v]) // check Buchstabenzahl
					{
					if (conf[i][4] != ""){
						valtext = valtext + "Maximale Zeichenzahl von " + conf[i][v] + " Zeichen in Feld " + conf[i][4] + " überschritten\n";
					}
					else {
						valtext = valtext + "Maximale Zeichenzahl von " + conf[i][v] + " Zeichen in Feld " + tform.elements[i].name + " überschritten\n";
						}
					

					//alert("Maximale Zeichenzahl von " + conf[i][v] + " Zeichen in Feld " + tform.elements[i].name + " überschritten");
					//return false;
					} //endif
				else
					{
			 		//alert("3 abgeschlossen");
					
					} //endelse
					} //endif
					
					break;
			case 3:		// Emailvalidate!!!
			if (conf[i][v] != "no" && conf[i][v] != "0"){
				if (checkEmail(tform.elements[i])) // check Email
					{
					//alert("4 abgeschlossen");
					
					} //endif
				else
					{
					if (conf[i][4] != ""){
						valtext = valtext + "Bitte eine gültige E-Mail-Adresse in Feld " + conf[i][4] + "  angeben.\n"
					}
					else {
						valtext = valtext + "Bitte eine gültige E-Mail-Adresse in Feld " + tform.elements[i].name + "  angeben.\n"
						}
					
					
					

			 		//alert("Email bitte überprüfen")
					//return false;
					} //endelse
					} //endif
					
					break;

					
					
			/* Erweiterung cases bzw. Funktionen
			
			case x:		//   Validierung xy!!! für x wird die position im Validierungsarray s.o. angegeben new array ("case 0", "case 1", "case 2", ...., "case n")
			if (conf[i][v] != "no"){
				if (funktionsname(tform.elements[i])) // Hier die Funktion einfügen , mit "tform.elements[i]" werden die einzelnen Felder der Form angesprochen.
					{
					//alert("4 abgeschlossen");
					
					} //endif
				else
					{
			 		alert("Fehlermeldung") // Hier die Fehlermeldung eintragen
					return false;
					} //endelse
					} //endif
					
					break; // um den jeweiligen Fall abzuschliessen
			*/
					
					
					
					
					
				} //endswitch
				
 		 } // close innerfor
    } // close outerfor
    if(valtext=="")
    {
			//alert("Validation erfolgreich abgeschlossen");
			return true;
		}
	else
		{
			alert(valtext);
			return false;
		}
} // close func

