/**
 * Javascript-Funtionen für die Form-Klasse
 * @version 21.08.09
 * @author Markus Heisterberg
 */

function markiereAlsOK(tempFeld, tempLabelFeld) {
	tempLabelFeld.style.color = "#555";
	tempLabelFeld.style.fontWeight = "normal";
	tempFeld.style.border = "1px solid #888";
	tempFeld.style.background = "#ffffff";
}
function markiereAlsFalsch(tempFeld, tempLabelFeld) {
	tempFeld.style.border = "1px solid #BF0008";
	tempFeld.style.background = "#FFDFDF";
	tempLabelFeld.style.color = "#cc0000";
	tempLabelFeld.style.fontWeight = "bold";
}

function validiereInhalt(feld, art) {
	var inhalt = feld.value;
	var regexpression = / /;
	switch (art) {
	case "Inhalt":
		var regexpression = /^\s*$/;
		break;
	case "Editor":
		var regexpression = /^\s*$/;
		var inhalt = inhalt.replace(/<br>|<br \/>/, "");
		break;
	case "Zahl":
		var regexpression = /^[0-9]+$/;
		break;
	case "Dezimal":
		var regexpression = /^([\d]+)(,|.){0,1}([\d]*)$/;
		break;
	case "Datum":
		var regexpression = /^\d{1,2}\.\d{1,2}\.(\d{2}|\d{4})$/;
		break;
	case "E-Mail":
		var regexpression = /^[a-zA-Z0-9_\.-]{2,}@[a-zA-Z0-9-\.]{2,}\.[a-zA-Z]{2,6}$/;
		break;
	default:
		alert ("Unknown validation: "+art);
		break;
	}
	var pruefung = regexpression.test(inhalt);
	if (pruefung === true) {
		return (true);
	}
	return (false);
}

function validiereFelder(feld, mitAusgabe) {
	if (!mitAusgabe) mitAusgabe = false;
	var istOK = true;
	var fehlermeldung = '';
	var fehlerfeldID = false;
	for (name in feld) {
		var feldID = name;
		var feldIstPflichtfeld = feld[name][0];
		var feldLabel = feld[name][1];
		var feldLaenge = feld[name][2];
		var feldTyp = feld[name][3];
		var tempFeld = document.getElementById(feldID);
		var tempLabelFeld = document.getElementById(feldLabel);
		if (tempFeld&&tempLabelFeld) {

			if (feldIstPflichtfeld==true) {
				// Prüfen ob das Feld leer ist...
				if (((tempFeld.type == "checkbox" && tempFeld.checked === false) || ((tempFeld.type == "text" || tempFeld.type == "password"
						|| tempFeld.type == "textarea" || tempFeld.type == "select-one") && validiereInhalt(tempFeld, "Inhalt") ))) {
					markiereAlsFalsch(tempFeld, tempLabelFeld);
					if (!fehlermeldung) {
						fehlermeldung = "\'" + tempLabelFeld.getAttribute("title") + "\' ist ein Pflichtfeld.";
						fehlerfeldID = feldID;
					}
					istOK = false;
				} else {
					markiereAlsOK(tempFeld, tempLabelFeld);
				}				
			}

			
			// Prüfen ob die Laenge passt...
			if (tempFeld.value != "" && feldLaenge != "" && (tempFeld.type == "text" || tempFeld.type == "password" || tempFeld.type == "textarea")) {
				if (feldLaenge.lastIndexOf("-") == -1) {
					var von = feldLaenge;
					var bis = feldLaenge;
					var text = "muss genau " + von + " Zeichen lang sein.";
				} else {
					var temp = feldLaenge.split("-");
					if (!temp[0]) {
						var von = 0;
					} else {
						var von = temp[0];
					}
					if (!temp[1]) {
						var bis = 99999;
					} else {
						var bis = temp[1];
					}
					if (!temp[0])
						var text = "darf maximal " + bis + " Zeichen lang sein.";
					if (!temp[1])
						var text = "muss mindestens " + von + " Zeichen lang sein.";
					if (temp[1] && temp[1])
						var text = "muss zwischen " + von + "-" + bis + " Zeichen enthalten.";
				}
				if (tempFeld.value.length < von || tempFeld.value.length > bis) {
					markiereAlsFalsch(tempFeld, tempLabelFeld);
					if (!fehlermeldung) {
						fehlermeldung = "\'" + tempLabelFeld.getAttribute("title") + "\' " + text;
						fehlerfeldID = feldID;
					}
					istOK = false;
				} else {
					markiereAlsOK(tempFeld, tempLabelFeld);
				}			
		}

			// Typ-Prüfungen, wenn gewüscht...
			if (tempFeld.value != "" && feldTyp != "" && (tempFeld.type == "text" || tempFeld.type == "password" || tempFeld.type == "textarea")) {
				if (validiereInhalt(tempFeld, feldTyp) == false) {
					markiereAlsFalsch(tempFeld, tempLabelFeld);
					if (!fehlermeldung) {
						fehlermeldung = "\'" + tempLabelFeld.getAttribute("title") + "\' muss vom Typ \'" + feldTyp + "\' sein.";
						fehlerfeldID = feldID;
					}
					istOK = false;
				} else {
					markiereAlsOK(tempFeld, tempLabelFeld);
				}
			}

		}



	}
	if (istOK === false) {
		if (mitAusgabe==true) {
			alert(fehlermeldung);
			return fehlerfeldID;
		} else {
			return fehlerfeldID+";"+fehlermeldung;
		}
	} else {
		return true;
	}

}

