/*
 * einfacher JS-Check für das Teilnehmer-Anmeldeformular,
 * um den Server nicht mit unnötigen Anfragen zu belasten
 */
function checkSignInForm(){
	var signInForm = document.getElementById("signInForm");
	/*
	 * Der Nachname ist zwingend erforderlich
	 */
	if(signInForm.lastname.value == "")  {
		alert("Bitte Ihren Nachnamen eingeben!");
		signInForm.lastname.focus();
		return false;
	}
	/*
	 * Der Vorname ist zwingend erforderlich
	 */
	if(signInForm.firstname.value == "")  {
		alert("Bitte Ihren Vornamen eingeben!");
		signInForm.firstname.focus();
		return false;
	}
	/*
	 * Das Geburtsdatum ist zwingend erforderlich
	 */
	if(signInForm.birth_day.value == "")  {
		alert("Bitte Ihren Geburtstag eingeben!");
		signInForm.birth_day.value = "";
		signInForm.birth_day.focus();
		return false;
	}

	if(signInForm.birth_month.value == "")  {		alert("Bitte Ihren Geburtstag eingeben!");		signInForm.birth_month.value = "";		signInForm.birth_month.focus();		return false;	}

	if(signInForm.birth_year.value == "")  {		alert("Bitte Ihren Geburtstag eingeben!");		signInForm.birth_year.value = "";		signInForm.birth_year.focus();		return false;	}

	if(signInForm.birth_year.value > 1999)  {
	/*if((signInForm.birth_year.value > 1999) || ((signInForm.birth_year.value == 1999) && (signInForm.birth_month.value > 10)) || ((signInForm.birth_year.value == 1999) && (signInForm.birth_month.value == 10) && (signInForm.birth_day.value > 8)))  {*/
		alert("Das Mindestalter für Teilnehmer beträgt 12 Jahre (Jahrgang 1999)!");
		signInForm.birth_year.focus();
		return false;
	}

	/*
	 * Die Strasse ist zwingend erforderlich
	 */	
	if(signInForm.street.value == "")  {
		alert("Bitte Ihre Straße eingeben!");
		signInForm.street.focus();
		return false;
	}
	/*
	 * Die PLZ ist zwingend erforderlich und muss dem Muster "12345" entsprechen
	 */
	if((signInForm.zipcode.value.length != 5) || (isNaN(signInForm.zipcode.value)))  {
		alert("Bitte eine 5-stellige Postleitzahl eingeben!");
		signInForm.zipcode.value = "";
		signInForm.zipcode.focus();
		return false;
	}

	/*
	 * Die Stadt ist zwingend erforderlich
	 */
	if(signInForm.city.value == "")  {
		alert("Bitte Ihre Stadt eingeben!");
		signInForm.city.focus();		return false;
	}
	
	/*
	 * Die Email ist zwar NICHT zwingend erforderlich,
	 * aber wenn das Feld ausgefüllt wird, dann muss
	 * es dem Muster "name@domain.tld" entsprechen
	 */
	if(signInForm.email.value != "")  {
		/*Regular Expression:
		^ => word-element required at the beginning of String
		\w => word-element : abcdefghijklmnopqrstxyz_1234567890
		[] => group
		| => logical "or"
		\. => "."
		\- => "-"
		+ => 
		a-zA-Z => top-level domains only consist of characters
		2,4 => minimum 2 (eg ".de"), maximum 4 (".info") characters after the last "."
		*/		regEx=/^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$/;		if(!regEx.test(signInForm.email.value)){			alert("Bitte eine korrekte E-Mail Adresse eingeben!");			signInForm.email.value = "";			signInForm.email.focus();		  return false;		}	}

	/*
	 * Das Geschlecht ist zwingend erforderlich
	 */
	if((signInForm.gender_m.checked == false) && (signInForm.gender_w.checked == false)) {
		alert("Bitte Ihr Geschlecht angeben!");
		signInForm.gender_m.focus();
		return false;
	}
	
	/*
	 * Man kenn teilnehmen an:
	 * 1. nur junior
	 * 2. nur classic	 * 3. nur slalom	 * 4. junior + slalom	 * 5. classic + slalom	 */
/*	if((signInForm.races.checked == false) && (signInForm.slalom.checked == false)) {		alert("Bitte melden Sie sich für ein Rennen an!");			signInForm.races.focus();		return false;	}
*/	// if(signInForm.races.checked == true){
		if((signInForm.race_10.checked == false) && (signInForm.race_30.checked == false)) {
			alert("Bitte wählen Sie, an welchem Rennen Sie teilnehmen möchten!");
			signInForm.race_10.focus();
			return false;
		}
	// }
	
	/*
	 * Der name des Vereins ist ist zwingend erforderlich, gdw. angegeben wurde,	 * dass man für einen Verein teilnimmt	 */		if((signInForm.club_no.checked == false) && (signInForm.club_yes.checked == false)) {		alert("Bitte geben Sie an, ob Sie für eine Gruppe / einen Verein starten!");		signInForm.club_no.focus();		return false;	}		/*	 * Der name des Vereins ist ist zwingend erforderlich, gdw. angegeben wurde,	 * dass man für einen Verein teilnimmt	 */		if((signInForm.club_yes.checked == true) && (signInForm.clubname.value == "")) {		alert("Bitte Ihre Gruppe / Ihren Verein angeben!");		signInForm.clubname.focus();		return false;	}
	/*
	 * Kombination Alter/Rennen:
	 * Teilnahme am 30km erst ab Jahrgang 1994 
	 */
	if((signInForm.race_30.checked == true) && (signInForm.birth_year.value > 1996)) {
		alert("Das Mindestalter zur Teilnahme am 30km-Rennen beträgt 15 Jahre (=Jahrgang 1996)");
		signInForm.race_10.checked == true;
		return false;
	}

	if(signInForm.races.checked == true && (signInForm.accountno.value == "" || signInForm.bankcode.value == "" || signInForm.bank.value == "")) {
		alert("Bitte geben Sie Ihre vollständige Bankverbindung an!");
		signInForm.authorization.focus();
		return false;
	}

	if(!signInForm.accountno.value.match(/^[0-9]{1,12}$/)) {
		alert("Bitte geben Sie Ihre Kontonummer ein!");
		signInForm.accountno.focus();
		return false;
	}

	if(!signInForm.bankcode.value.match(/^[0-9]{8,8}$/)) {
		alert("Bitte geben Sie die BLZ Ihrer Bank ein!");
		signInForm.bankcode.focus();
		return false;
	}

	if(signInForm.bank.value.length < 3) {
		alert("Bitte geben Sie den Namen Ihrer Bank ein!");
		signInForm.bank.focus();
		return false;
	}

	if(!signInForm.authorization.checked) {
		alert("Bitte erteilen Sie uns eine Einzugsermächtigung zur Abbuchung der Startgebühr von Ihrem Bankkonto!");
		signInForm.authorization.focus();
		return false;
	}

	/*
	 * Die Annahme der AGB ist zwingend erforderlich
	 */
	if(signInForm.agb.checked == false) {
		alert("Bitte bestätigen Sie die Teilnahmebedingungen!");
		signInForm.agb.focus();
		return false;
	}

	return true;
}
/* * Setzt den disabled-Status des Feldes "id" auf "false" * und focussiert es */function enable(id){	var name = document.getElementById(id);	name.disabled = false;	name.focus();}
/* * Setzt den disabled-Status des Feldes "id" auf "true" * und seinen Wert auf "" */function disable(id){	var name = document.getElementById(id);	name.disabled = true;	name.value= "";
}
/*
 * Switcht den disabled-Status der Radio-Buttons zur Auswahl
 * der Rennen in Abhängigkeit davon, ob die zugehörige Checkbox
 * geckecked is oder nicht
 */
function changeStatus(id1,id2){
	var name1 = document.getElementById(id1);
	var name2 = document.getElementById(id2);	if((name1.disabled == false) && (name2.disabled == false)){ 		name1.checked = false;		name2.checked = false;		name1.disabled = true;		name2.disabled = true;	}else{		name1.disabled = false;		name2.disabled = false;		name1.focus();	}
}
