function ist_Emailadresse(strEmail){
	var Ergebnis = false;
	if (strEmail.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){
    	Ergebnis = true;
	}
	return Ergebnis;
}


function ist_Gutschein(strGutschein){
	var Ergebnis = false;
	if (strGutschein.match(/^[A-Z0-9]{9}$/)){
    	Ergebnis = true;
	}
	return Ergebnis;
}

function ist_Schaltjahr(Jahr) {
	var Eins = new Date(Jahr, 1, 28).getTime();
	var Zwei = new Date(Jahr, 2, 1).getTime();
	var Tage = (Zwei - Eins) / 86400000;
	var Erg  = "1";
	if(Tage == 1) {
    	Erg = "0";
    	return Erg;
 	} else {
    	return Erg;
 	}
	return Erg;
}

function ist_Datum(strDatum){
	var Ergebnis = false;
   	var re = new RegExp("^([0-9]{2,2}[.]{1,1}){2,2}[0-9]{4,4}$");
  	if (strDatum.match(re)) {
         var myDate  = strDatum.split(".")
         var Tag     = myDate[0];
         var Monat   = myDate[1];
         var Jahr    = myDate[2];
         var Datum   = Tag + "." + Monat + "." + Jahr;
         var Days = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
         if(ist_Schaltjahr(Jahr) == "1") {
             Days[1] = "29";
         }
         if(	Tag > 0 && Tag < 32 &&
             	Monat > 0 && Monat < 13 &&
             	Jahr > 1900 && Jahr < 2000) {
            if(Tag <= Days[Monat - 1]) {
            	Ergebnis = true;
         	}
    	}
  	}
	return Ergebnis;
}

function Grossschreibung(strWort){
   Zeichen_Beginn = strWort.substring(0,1);
   return Zeichen_Beginn.toUpperCase() + strWort.substring(1);
}

function Mehrzahl(strWort, intAnzahl){
	if (intAnzahl > 1) {
		switch (strWort) {
		  case "das folgende Feld":
		    strWort = "die folgenden Felder";
		  break;
		}
	}
	return strWort;
}

function Formulareingabenpruefen_Teil(FormularName){
	var Fehlermeldung_Pflichtfelder = '';
	var Fehlermeldung_Emailadressen = '';
	var Fehlermeldung_Wiederholungen = '';
	var Fehlermeldung_Datum = '';
	var Fehlermeldung_Gutschein = '';

	var FormularFelder = document.getElementById(FormularName).elements;
	var gewaehlt = false;

	for(var i = 0; i < FormularFelder.length; i++){

		if (FormularFelder[i].name == undefined) {
			FormularFelder[i].name = "undefined_" + i;
		}

		if(FormularFelder[i].nodeName == "FIELDSET"){
			//Ergebnis = Formulareingabenpruefen_Teil(FormularFelder[i].name);
		} else {
			if ( FormularFelder[i].name.length > 0 ) {
				if ( FormularFelder[i].name.lastIndexOf("_") == (FormularFelder[i].name.length - 1)) {
					if (FormularFelder[i].value == "") {
						Fehlermeldung_Pflichtfelder += Grossschreibung(FormularFelder[i].name.substring(0,FormularFelder[i].name.lastIndexOf("_"))) + ", ";
					}
					if ( (FormularFelder[i].type == "radio")  && (FormularFelder[i].checked != true) ){
						gewaehlt = false;
						for (fi=0; fi<FormularFelder.length; fi++) {
							if ( FormularFelder[fi].name == FormularFelder[i].name) {
								if (FormularFelder[fi].checked == true) {
									gewaehlt = true;
								}
							}
						}
						if ( ! gewaehlt)  {
							if (Fehlermeldung_Pflichtfelder.lastIndexOf(Grossschreibung(FormularFelder[i].name.substring(0,FormularFelder[i].name.lastIndexOf("_"))) + ", ") < 0){
								Fehlermeldung_Pflichtfelder += Grossschreibung(FormularFelder[i].name.substring(0,FormularFelder[i].name.lastIndexOf("_"))) + ", ";
							}
						}
					}
				}
				if	( (FormularFelder[i].name.lastIndexOf("Tag") > -1) || (FormularFelder[i].name.lastIndexOf("tag") > -1) ){
					FormularFelder[i].value = FormularFelder[i].value.replace("-", "");
					var test = FormularFelder[i].value;
					if (test.length > 0) {
						if (! ist_Datum(test)){
							Fehlermeldung_Datum = Texxt(1005) + "\n";
						}
					}
				}
				if	( (FormularFelder[i].name.toLowerCase().lastIndexOf("email") > -1) || (FormularFelder[i].name.toLowerCase().lastIndexOf("e-mail") > -1) ){
					var test = FormularFelder[i].value;
					if (test.length > 0) {
						if (! ist_Emailadresse(test)){
							Fehlermeldung_Emailadressen = Texxt(1002) + "\n";
						}
					}
				}
				if	( (FormularFelder[i].name.lastIndexOf("Gutschein") > -1) || (FormularFelder[i].name.lastIndexOf("gutschein") > -1) ){
					FormularFelder[i].value = FormularFelder[i].value.replace(" ", ""); // ... jedes Leerzeichen einzeln...
					FormularFelder[i].value = FormularFelder[i].value.replace(" ", "");
					FormularFelder[i].value = FormularFelder[i].value.replace(" ", "");
					FormularFelder[i].value = FormularFelder[i].value.replace(" ", "");
					FormularFelder[i].value = FormularFelder[i].value.toUpperCase();
					var test = FormularFelder[i].value;
					if (test.length > 0) {
						if (! ist_Gutschein(test)){
							Fehlermeldung_Gutschein = Texxt(1006) + "\n";
						}
					}
				}
				if (FormularFelder[i].name.lastIndexOf("_wdh") > -1) {
					var Feldname = FormularFelder[i].name;
					Feldname = Feldname.substring(0,Feldname.lastIndexOf("_wdh"));
					if (FormularFelder[Feldname]) {
						var testWert_1 = FormularFelder[i].value;
						var testWert_2 = FormularFelder[Feldname].value;
						if (! (testWert_1 == testWert_2)) {
							Fehlermeldung_Wiederholungen = Texxt(1004) + "\n";
						}
					} else {
						alert("Wiederholung: " + Feldname);
					}
				}
			}
		}
	}

	var Rueckgabe = new Array(5);
    Rueckgabe[0] = Fehlermeldung_Pflichtfelder;
    Rueckgabe[1] = Fehlermeldung_Emailadressen;
    Rueckgabe[2] = Fehlermeldung_Wiederholungen;
    Rueckgabe[3] = Fehlermeldung_Datum;
    Rueckgabe[4] = Fehlermeldung_Gutschein;

	return Rueckgabe;
}

function Formulareingabenpruefen(FormularName){
	var Fehlermeldung = '';
	var Fehlermeldung_Pflichtfelder = '';
	var Fehlermeldung_Emailadressen = '';
	var Fehlermeldung_Wiederholungen = '';
	var Fehlermeldung_Datum = '';
	var Fehlermeldung_Gutschein = '';

	Ergebnis = Formulareingabenpruefen_Teil(FormularName);
	Fehlermeldung_Pflichtfelder = 	Ergebnis[0];
	Fehlermeldung_Emailadressen = 	Ergebnis[1];
	Fehlermeldung_Wiederholungen = 	Ergebnis[2];
	Fehlermeldung_Datum = 		 	Ergebnis[3];
	Fehlermeldung_Gutschein = 		Ergebnis[4];

	if (Fehlermeldung_Pflichtfelder.length > 0){
		Fehlermeldung_Pflichtfelder = Fehlermeldung_Pflichtfelder.substring(0,(Fehlermeldung_Pflichtfelder.length-2));
		var aryTest = Fehlermeldung_Pflichtfelder.split(',');
		Fehlermeldung += Texxt(1003).replace(/das folgende Feld/g, Mehrzahl('das folgende Feld',aryTest.length)) + Fehlermeldung_Pflichtfelder + "\n";
	}
	if (Fehlermeldung_Emailadressen.length > 0){
		Fehlermeldung += Fehlermeldung_Emailadressen + "\n";
	}
	if (Fehlermeldung_Wiederholungen.length > 0){
		Fehlermeldung += Fehlermeldung_Wiederholungen + "\n";
	}
	if (Fehlermeldung_Datum.length > 0){
		Fehlermeldung += Fehlermeldung_Datum + "\n";
	}
	if (Fehlermeldung_Gutschein.length > 0){
		Fehlermeldung += Fehlermeldung_Gutschein + "\n";
	}
	if (Fehlermeldung.length > 0){
		Fehlermeldung += Texxt(1001);
		alert(Fehlermeldung);
		return false;
	}
	return true;
}

function textarea_begrenzer(feldname, maximum) {
	if (document.getElementById('novar_' + feldname)) {
		if (document.getElementById('novar_' + feldname).value = "") {
			document.getElementById('novar_' + feldname).value = maximum;
		}
	} else {
		alert('novar_' + feldname + " gibt es nicht.");
	}
	if (document.getElementById(feldname)){
		if (document.getElementById(feldname).value.length > maximum) {
			document.getElementById(feldname).value = document.getElementById(feldname).value.substring(0, maximum);
		} else {
			if (document.getElementById('novar_' + feldname)) {
				document.getElementById('novar_' + feldname).value = maximum - document.getElementById(feldname).value.length;
			}
		}
	} else {
		alert(feldname + " gibt es nicht.");
	}
}
