// main.js
// Zentrale Sammlung von Basisfunktionen fuer GWS
// --mb 2010-08-11
// DIESE VERSION BENOETIGT JQUERY
// show and hide CSS elements
function showdiv(id) {
	document.getElementById(id).style.visibility = "visible";
	document.getElementById(id).style.display = "block";
}

function hidediv(id) {
	document.getElementById(id).style.visibility = "hidden";
	document.getElementById(id).style.display = "none";
}

// check if string is a number (phone, postal code)
function isint(s) {
	var i;
  for(i = 0; i < s.length; i++) {
  	var c = s.charAt(i);
  	if ((c < 0) || (c > 9)) return false;
  }
  return true;
}
// check if string is standard text
function isstring(str) {
	var text = new RegExp('^[\.\,\a-zäüöÄÜÖßA-Z\-\ ]+$', 'i');
	if (text.test(str) === false) {
		return false;
	}
	return true;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, "");
}

function TByes() {
	document.forms["game"].teilnbed.checked = true;
	hidediv('msg');
}

function checkall() {
	// Anrede Vorname Nachname Email TB
	var form = document.forms["game"];
	var error = "";
	var regemail = new RegExp ('^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+){2}(\.)([a-z]{2,4})$');

	if((form.UD_ANREDE[0].checked != true) && (form.UD_ANREDE[1].checked != true)) {
	 	error += " - Anrede<br>";
	}
	if(trim(form.UD_VORNAME.value).length < 2) {
		error += " - Vorname<br>";
		form.UD_VORNAME.style.borderColor = "#ff0000";
	} else if (isstring(form.UD_VORNAME.value) == false) {
		error += " - Vorname ist ungültig<br>";
		markInputField("UD_VORNAME");
	}
	if(trim(form.UD_NACHNAME.value).length < 2) {
		error += " - Nachname<br>";
		markInputField("UD_NACHNAME");
	} else if (isstring(form.UD_NACHNAME.value) == false) {
		error += " - Nachname ist ungültig<br>";
		markInputField("UD_NACHNAME");
	}
	if(trim(form.UD_EMAIL.value) == '') {
		error += " - E-Mail<br>";
		markInputField("UD_EMAIL");
	} else if (regemail.test(form.UD_EMAIL.value) == false) {
		error += " - E-Mail-Format ist nicht korrekt<br>";
		markInputField("UD_EMAIL");
	}
	// Strasse mindestens 3 Buchstaben
	if(trim(form.UD_STRASSE.value).length < 3) {
		error += " - Strasse<br>";
		markInputField("UD_STRASSE");
		}
	// Hausnummer mindestens ein Zeichen
	if(trim(form.UD_HAUSNR.value).length < 1) {
		error += " - Hausnummer<br>";
		markInputField("UD_HAUSNR");
		}
	// PLZ - 5 Stellen in DE, 4 in AT/CH, und gar keine geht auch nicht
	if(trim(form.UD_PLZ.value).length == '') {
		error += " - PLZ<br>";
		markInputField("UD_PLZ");
		} 
	else if (trim(form.UD_LAND.value) == 'D') {
		if(trim(form.UD_PLZ.value).length != 5 || isint(form.UD_PLZ.value) == false) {
			error += " - PLZ ist nicht korrekt<br>";
			markInputField("UD_PLZ");
			}
		} 
	else if (trim(form.UD_LAND.value) == 'AT' || trim(form.UD_LAND.value == 'CH')) {
		if(trim(form.UD_PLZ.value).length != 4 || isint(form.UD_PLZ.value) == false) {
			error += " - PLZ ist nicht korrekt<br>";
			markInputField("UD_ORT");
			}
		}
	// Ortscheck unsinnig, da es zuviele Ausnahmen wie Ziffern in
	// validen Ortsnamen oder Orte mit 2 Zeichen gibt
	if(trim(form.UD_ORT.value).length < 2) {
		error += " - Ort<br>";
		markInputField("UD_ORT");
		} 	
	// Echter Adresscheck dann im Anschluss durch das Skript

	// Geburtsdatum: mindestens 18
	// var gd = form.geb_day.value;
	var gd = form.geb_day.value;
	var gm = form.geb_month.value;
	var gy = form.geb_year.value;
	if(gd == '' || gm == '' || gy == '') {
		error += " - Geburtsdatum<br>";
		markInputField("geb_day","geb_month","geb_year");
		}
	else {
		var now = new Date();
		var nowsecs = now.getTime()/1000;
		var user = new Date(gy, gm-1, gd);
		var usersecs = user.getTime()/1000;
		var diff = nowsecs - usersecs;
		// kann evtl. einen Tag abweichen wird aber eh vom Skript nochmal
		// nachgerechnet
		if(diff < 567993600) {
			error += " - Teilnahme erst ab 18!<br>";
			markInputField("geb_day","geb_month","geb_year");
			}
		}	

	if(error=="" && typeof jQuery != 'undefined' && trim(form.UD_LAND.value) == 'D') {
		var plz=jQuery.trim($("input[name=UD_PLZ]").val());
		var ort=escape(jQuery.trim($("input[name=UD_ORT]").val()));
		var strasse=escape(jQuery.trim($("input[name=UD_STRASSE]").val()));
		var adrcheck=($.ajax({ type: "Post",
				url: "/game/adrtest.php",
				data: "todo=adrcheck&plz="+plz+"&ort="+ort+"&str="+strasse,
				async: false
		}).responseText);
		if(adrcheck==0) {
			error += "<div style=\"text-align:left\">Bitte überprüfen Sie Ihre Adresse! Achten Sie bitte auf eventuelle Schreibfehler, kürzen Sie Ortsnamen bitte nicht ab und geben Sie ggf. Ortsnamen bitte ohne Erweiterungen an (z.B. \"Frankfurt\" statt \"Frankfurt am Main\").</div>";
			markInputField("UD_PLZ","UD_ORT","UD_STRASSE");
		}
	}

	if(!form.teilnbed.checked) {
		error += " - Einverständniserklärung<br>";
	}

	if(error != "") {
		errormsg = "<div style=\"font-size:11px;font-weight:bold;\"><div style=\"height:20px;width:345px;padding:5px 10px 5px 10px;text-align:right;background-color:#e30026;\"><a href=\"javascript:hidediv('msg');\" style=\";text-decoration:none\"><b style=\"color:#ffffff;border:1px solid white\">&nbsp;X&nbsp;</b></a></div>";
		errormsg += "<div class=\"errorboxtxt\" style=\"width:345px;padding:10px;background-color:#ffffff;\">";
		errormsg += "<b>Haben Sie schon alles ausgefüllt?</b><br><br>"; 
		errormsg += error;
		errormsg += "</div>";
		
		nachricht = document.getElementById('msg');
		showdiv('msg');
		nachricht.innerHTML = errormsg;
		return false;
	} else {
		return true;
	}
}

function markInputField(){
	form=document.forms["game"];
	for(i=0;i<markInputField.arguments.length;i++) {
		form.elements[arguments[i]].style.borderColor="#ff0000";
		}
	}
function unmarkInputField(){
	form=document.forms["game"];
	for(i=0;i<markInputField.arguments.length;i++) {
		form.elements[arguments[i]].style.borderColor="#333333";
		}
	}

