var language = 'd';

/**
* Setzt die Sprache auf die angegebene (d = Deutsch, en = Englisch)
*/
function setLanguage(lang) {
	language = lang;
}

function getLanguage() {
	alert(language);
}

/**
* Zeigt im angegebenen Validierungsfeld an, ob ein Fehler aufgetreten ist.
* param valName: ID des Validierungsfeldes
* param isError: falls "1", dann einen Fehler anzeigen. Ansonsten "OK" anzeigen
*/
function setError(valName, isError) {
	if(isError == 1) {
		getE(valName).innerHTML = " <img src='/appl/img/layout/icons/icon_falsch.gif' />";
		
		setErrorMessage(getErrorMessageForValidationField(valName));
		placeErrorInfo(valName);
	} else {
		getE(valName).innerHTML = " <img src='/appl/img/layout/icons/icon_richtig.gif' />";
		hideErrorInfo();
	}
}

/**
* Überprüft, ob eine Mailadresse valid ist.
* ACHTUNG: Sobald längere Top-Level-Domains erlaubt sind, den letzten Teil der regex anpassen!!!
* param adresse: die zu überprüfende Mailadresse
*/
function isValidMail(adresse) {
	var pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return pattern.test(adresse); 
}

/**
* Validiert das Feld mit dem angegebenen Namen (param fieldName).
* return false falls ein Fehler gefunden wurde, ansonsten true
*/
function validate(fieldName) {
	// der validationName (der Name des Feldes, der das
	// Validierungsergebnis anzeigt) wird, aus dem Feldnamen generiert
	var validationName = "val_" + fieldName;
	
	var errorFound = false;
	
	if(fieldName == "pMail") { // Validierung der Mailadresse
	
		if ( isValidMail(getN("pMail").value) )	setError("val_pMail", 0);
		else {
			setError("val_pMail", 1);
			errorFound = true;
		}
		
	} else if(fieldName == "pType") { // Validierung der Kontakttypauswahl
		if ( getN("pType").value != -1 )	setError("val_pType", 0);
		else {
			setError("val_pType", 1);
			errorFound = true;
		}
	} else if(fieldName == "pGender") { // Validierung der Anredeauswahl
		if ( getN("pGender").value != -1 )	setError("val_pGender", 0);
		else {
			setError("val_pGender", 1);
			errorFound = true;
		}
	} else { // Validierung aller übrigen Felder
	
		if(getN(fieldName).value == "") {
			setError(validationName, 1);
			errorFound = true;
		} else {
			setError(validationName, 0);
		}
		
	}
	
	return !errorFound;
}

/**
* Liefert die zum angegebenen Validierungsfeld (param valFieldName) gehörende Fehlermeldung
*/
function getErrorMessageForValidationField(valFieldName) {
	switch(valFieldName) {
		case "val_pTitel":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihren Titel ein!" : "<strong>Mandatory field!</strong><br />Please enter your title!";
			break;
		case "val_pVorname":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihren Vornamen ein!" : "<strong>Mandatory field!</strong><br />Please enter your first name!";
			break;
		case "val_pNachname":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihren Nachnamen ein!" : "<strong>Mandatory field!</strong><br />Please enter your last name!";
			break;
		case "val_pStreet":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihre Adresse ein!" : "<strong>Mandatory field!</strong><br />Please enter your address!";
			break;
		case "val_pZIP":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihre Postleitzahl ein!" : "<strong>Mandatory field!</strong><br />Please enter your zip code!";
			break;
		case "val_pCity":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihren Ort ein!" : "<strong>Mandatory field!</strong><br />Please enter your city!";
			break;
		case "val_pTel":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihre Telefonnummer ein!" : "<strong>Mandatory field!</strong><br />Please enter your phone number!";
			break;
		case "val_pMobile":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihre Handynummer ein!" : "<strong>Mandatory field!</strong><br />Please enter your mobile phone number!";
			break;
		case "val_pFax":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihre Faxnummer ein!" : "<strong>Mandatory field!</strong><br />Please enter your fax number!";
			break;
		case "val_pMail":
			return language=="d" ? "<strong>E-Mail-Adresse nicht korrekt!</strong><br />Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben!" : "<strong>Invalid E-Mail address</strong><br />Please enter a valid E-mail address!";
			break;
		case "val_pType":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte w&auml;hlen Sie ein Thema!" : "<strong>Mandatory field!</strong><br />Please choose a topic!";
			break;
		case "val_pGender":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte w&auml;hlen Sie eine Anrede!" : "<strong>Mandatory field!</strong><br />Please enter your title!";
			break;
		case "val_pSubject":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie einen Betreff ein!" : "<strong>Mandatory field!</strong><br />Please enter a subject!";
			break;
		case "val_pText":
			return language=="d" ? "<strong>Dies ist ein Pflichtfeld!</strong><br />Bitte geben Sie Ihr Anliegen ein!" : "<strong>Mandatory field!</strong><br />Please enter your request!";
			break;
	}
	return language=="d" ? "Ein Fehler ist aufgetreten" : "An error occured";
}

/**
* Setzt den Inhalt der Error-Message-Box auf den angegebenen param message.
*/
function setErrorMessage(message) {
	getE("errorInfo").innerHTML = message;
}

/**
* Überprüft alle Felder auf Richtigkeit
* return true falls alle Felder korrekt befüllt sind, ansonsten false
*/
function validateAll() {
	var isErroneous = false;
	
	// Muss so umständlich sein, damit auf jeden Fall alle falschen Felder markiert werden.
	if(!validate("pText"))		isErroneous = true;
	if(!validate("pSubject"))	isErroneous = true;
	if(!validate("pType"))		isErroneous = true;
	if(!validate("pMail"))		isErroneous = true;
	if(!validate("pNachname"))	isErroneous = true;
	if(!validate("pVorname"))	isErroneous = true;
	// END Umständlich

	if(!isErroneous) {
		document.fLogin.pAction.value = "submit";
		return true;
	}
		
	//alert("Bitte korrigieren Sie Ihre Eingaben!");
	return false;
		
}