var usernameRegex = /^[a-zA-Z0-9_-]{3,30}$/;
var passwordRegex = /^.{4,30}$/;
//var passwordRegex = /^[a-zA-Z0-9_\.\!\?\@\%\$\§\&-]{4,30}$/;
var emailRegex = /^([a-zA-Z0-9_\.-]+)@([\da-zA-Z\.-]+)\.([a-zA-Z\.]{2,6})$/;


//ä=%E4  ü=%FC  ö=%F6  Ä=%C4  Ö=%D6  Ü=%DC  ß=%DF  &=%26
var requiredFields = "F%FClle bitte die Pflichtfelder aus.";
var acceptTerms = "Du musst die Nutzungsbedingungen aktzeptieren.";

//empty
var usernameEmpty = "Bitte erg%E4nze noch deinen Benutzernamen. Mindesl%E4nge: 3 Buchstaben.";
var passwordEmpty = "Bitte erg%E4nze noch dein Passwort. Mindesl%E4nge: 4 Zeichen.";
var firstnameEmpty = "Bitte erg%E4nze noch deinen Vornamen. Mindesl%E4nge: 3 Buchstaben.";
var lastnameEmpty = "Bitte erg%E4nze noch deinen Nachnamen. Mindesl%E4nge: 3 Buchstaben.";
var addressInfo = "mogree verwendet diese Adresse als deine anf%E4ngliche Startpositionierung und deinen Ausgangspunkt.";
var cityEmpty = "Bitte erg%E4nze noch deine Stadt.";
var streetEmpty = "Bitte erg%E4nze noch deine Strasse.";
var postcodeEmpty = "Bitte erg%E4nze noch deine Postleitzahl."; 
var countryEmpty = "Bitte erg%E4nze noch dein Land.";
var emailEmpty = "Bitte erg%E4nze noch deine Email Adresse.";
var phoneEmpty = "Bitte erg%E4nze noch deine Telefonnummer. An diese Telefonnummer kannst du dir mogree per SMS auf dein Handy zusenden lassen.";
var interestsEmpty = "Bitte erg%E4nze noch deine Interessen (mindestens 3 Begriffe). " +
		"Deine Interessen helfen mogree im Handumdrehen gleichinteressieret Personen, " +
		"Events u.v.m. in deiner Umgebung zu finden.";

//not valid
var emailNotValid = "Ung%FCltige Email Adresse.";
var passwordNotValid = "Passwort ung%FCltig (erlaubte Zeichen: Buchstaben(a-z, A-Z), Zahlen(0-9), Bindestrich(-) und Unterstrich(_)) oder " +
		"zu kurz (Mindestl%E4nge: 4 Zeichen).";
var usernameNotValid = "Username ung%FCltig (erlaubte Zeichen: Buchstaben(a-z, A-Z), Zahlen(0-9), Bindestrich(-) und Unterstrich(_)) oder " +
		"zu kurz (Mindestl%E4nge: 3 Zeichen).";
var passwordNotTheSame = "Passwort stimmt nicht %FCberein.";
	

//mogree userdata empty
var MusernameEmpty = "Bitte erg%E4nze noch deinen Benutzernamen von mogree.";
var MpasswordEmpty = "Bitte erg%E4nze noch dein Passwort.";
//szene1 password empty
var passwordEmptySzene1 = "Bitte erg%E4nze noch dein Passwort.";


function chkFormPersonal() {
	if((document.FormPersoenlich.firstname.value == "") || document.FormPersoenlich.firstname.value.length < 3) {
		alert(unescape(firstnameEmpty));
		document.FormPersoenlich.firstname.focus();
		return false;
	}
	
	if((document.FormPersoenlich.familyname.value == "") || document.FormPersoenlich.familyname.value.length < 3) {
		alert(unescape(lastnameEmpty));
		document.FormPersoenlich.familyname.focus();
		return false;
	}
	if (document.FormPersoenlich.gender[0].checked == false) {
		if (document.FormPersoenlich.gender[1].checked == false) {
			alert(unescape(requiredFields));
			return false;
		}
	}
	if (document.FormPersoenlich.city.value == "") {
		alert(unescape(cityEmpty + " " + addressInfo));
		document.FormPersoenlich.city.focus();
		return false;
	}
	if (document.FormPersoenlich.postcode.value == "") {
		alert(unescape(postcodeEmpty + " " + addressInfo));
		document.FormPersoenlich.postcode.focus();
		return false;
	}
	if (document.FormPersoenlich.str.value == "") {
		alert(unescape(streetEmpty + " " + addressInfo));
		document.FormPersoenlich.str.focus();
		return false;
	}
	if (document.FormPersoenlich.country.value == "") {
		alert(unescape(countryEmpty + " " + addressInfo));
		document.FormPersoenlich.country.focus();
		return false;
	}
	if (document.FormPersoenlich.email.value == "") {
		alert(unescape(emailEmpty));
		document.FormPersoenlich.email.focus();
		return false;
	}
	if (!emailRegex.test(document.FormPersoenlich.email.value)) {
		alert(unescape(emailNotValid));
		document.FormPersoenlich.email.focus();
		return false;
	}
	//document.getElementById("FormPersoenlich").submit();
	return true;
};


function chkFormPersonal2()
{
	if((document.FormPersoenlich.vorname.value == "") || document.FormPersoenlich.vorname.value.length < 3) {
		alert(unescape(firstnameEmpty));
		document.FormPersoenlich.vorname.focus();
		return false;
	}
	if((document.FormPersoenlich.nachname.value == "") || document.FormPersoenlich.nachname.value.length < 3) {
		alert(unescape(lastnameEmpty));
		document.FormPersoenlich.nachname.focus();
		return false;
	}
	
	if(document.FormPersoenlich.gender[0].checked == false) {
		if(document.FormPersoenlich.gender[1].checked == false) {
			alert(unescape(requiredFields));
			return false;
		}
	}
	//document.getElementById("FormPersoenlich").submit();
	return true;
};


function chkFormAddress(){
	if(document.FormUseradress.street.value == "") {
		alert(unescape(streetEmpty + " " + addressInfo));
		document.FormUseradress.street.focus();
		return false;
	}
	if(document.FormUseradress.city.value == "") {
		alert(unescape(cityEmpty + " " + addressInfo));
		document.FormUseradress.city.focus();
		return false;
	}
	if(document.FormUseradress.country.value == "" || document.FormUseradress.country.value == " ") {
		alert(unescape(countryEmpty + " " + addressInfo));
		document.FormUseradress.country.focus();
		return false;
	}
	if(document.FormUseradress.email.value == "") {
		alert(unescape(emailEmpty));
		document.FormUseradress.email.focus();
		return false;
	}
	if(!emailRegex.test(document.FormUseradress.email.value)){
		alert(unescape(emailNotValid));
		document.FormUseradress.email.focus();
		return false;
	}
	//document.getElementById("FormUseradress").submit();
	return true;
};

function chkPhone(){
	if(document.FormUseradress.phone.value == "") {
		//alert(unescape(phoneEmpty));
		document.FormUseradress.phone.focus();
		return false;
	}
	//document.getElementById("FormUseradress").submit();
	return true;
};

function trim(str){
	while(str.substring(0,1)==' ')str=str.substring(1,str.length);
	while(str.substring(str.length-1,str.length)==' ')str=str.substring(0,str.length-1);
	return str;
};

function chkFormInterests() {
	if (document.FormInteressen.txt_iam.value == "") {
		document.FormInteressen.txt_iam.focus();
		alert(unescape(interestsEmpty));
		return false;
	} else {
		var iam = trim(document.FormInteressen.txt_iam.value);
		var iam_split = iam.split(",");
		var counter = 0;
		if (iam_split.length > 2) {
			while (counter < 3) {
				if (iam_split[counter].length < 2) {
					document.FormInteressen.txt_iam.focus();
					alert(unescape(interestsEmpty));
					return false;
				}
				counter += 1;
			}
		} else {
			document.FormInteressen.txt_iam.focus();
			alert(unescape(interestsEmpty));
			return false;
		}
	}
	if (document.FormInteressen.txt_ilike.value == "") {
		document.FormInteressen.txt_ilike.focus();
		alert(unescape(interestsEmpty));
		return false;
	} else {
		var ilike = trim(document.FormInteressen.txt_ilike.value);
		var ilike_split = ilike.split(",");
		var counter = 0;
		if (ilike_split.length > 2) {
			while (counter < 3) {
				if (ilike_split[counter].length < 2) {
					document.FormInteressen.txt_ilike.focus();
					alert(unescape(interestsEmpty));
					return false;
				}
				counter += 1;
			}
		} else {
			document.FormInteressen.txt_ilike.focus();
			alert(unescape(interestsEmpty));
			return false;
		}
	}
	//document.getElementById("FormInteressen").submit();
	return true;
};

function keyevent(e) // submit key
{
	if (e.keyCode == 13) { // 13 = enter key
		return false;
	} else {
		return true;
	}
};

function chkFormActivation() {

	if (document.FormActivation.username.value == "") {
		alert(unescape(usernameEmpty));
		document.FormActivation.username.focus();
		return false;
	}
	if (document.FormActivation.password.value == "") {
		alert(unescape(passwordEmpty));
		document.FormActivation.password.focus();
		return false;
	}
	if (document.FormActivation.agb.checked == false) {
		alert(unescape(acceptTerms));
		document.FormActivation.agb.focus();
		return false;
	}
	//document.getElementById("FormActivation").submit();
	return true;
};

function chkFormLogin() {
	if (document.FormLogin.username.value == "") {
		alert(unescape(usernameEmpty));
		document.FormLogin.username.focus();
		return false;
	}
	if (document.FormLogin.password.value == "") {
		alert(unescape(passwordEmpty));
		document.FormLogin.password.focus();
		return false;
	}
	//document.getElementById("FormLogin").submit();
	return true;
};

function chkFormLogin2() {
	if (document.FormLogin2.username.value == "") {
		alert(unescape(usernameEmpty));
		document.FormLogin2.username.focus();
		return false;
	}
	if (document.FormLogin2.password.value == "") {
		alert(unescape(passwordEmpty));
		document.FormLogin2.password.focus();
		return false;
	}
	//document.getElementById("FormLogin2").submit();
	return true;
};


function chkFormNewUser() {
	if (document.FormNewUser.usernameNew.value == "") {
		alert(unescape(usernameEmpty));
		document.FormNewUser.usernameNew.focus();
		return false;
	}
	if (!usernameRegex.test(document.FormNewUser.usernameNew.value)) {
		alert(unescape(usernameNotValid));
		document.FormNewUser.usernameNew.focus();
		return false;
	}
	
	if (document.FormNewUser.passwordNew.value == "") {
		alert(unescape(passwordEmpty));
		document.FormNewUser.passwordNew.focus();
		return false;
	} 
	
	if (document.FormNewUser.passwordNew2.value == ""){
		alert(unescape(passwordEmpty));
		document.FormNewUser.passwordNew2.focus();
		return false;
	}
	
	if(!passwordRegex.test(document.FormNewUser.passwordNew.value)) {
		alert(unescape(passwordNotValid));
		document.FormNewUser.passwordNew.focus();
		return false;
	}
	
	if(document.FormNewUser.passwordNew.value != document.FormNewUser.passwordNew2.value){
		alert(unescape(passwordNotTheSame));
		document.FormNewUser.passwordNew.value = "";
		document.FormNewUser.passwordNew2.value = "";
		document.FormNewUser.passwordNew.focus();
		return false;
	}
	
	if(!passwordRegex.test(document.FormNewUser.passwordNew2.value)) {
		alert(unescape(passwordNotValid));
		document.FormNewUser.passwordNew2.focus();
		return false;
	}
	if (document.FormNewUser.emailNew.value == "") {
		alert(unescape(emailEmpty));
		document.FormNewUser.emailNew.focus();
		return false;
	}
	if (!emailRegex.test(document.FormNewUser.emailNew.value)) {
		alert(unescape(emailNotValid));
		document.FormNewUser.emailNew.focus();
		return false;
	}
	if(document.FormNewUser.agb.checked == false) {
		alert(unescape(acceptTerms));
		document.FormNewUser.agb.focus();
		return false;
		}
	//document.getElementById("FormNewUser").submit();
	return true;
};

function chkFormNewUserFB() {
	if (document.FormNewUserFB.usernameNew.value == "") {
		alert(unescape(usernameEmpty));
		document.FormNewUserFB.usernameNew.focus();
		return false;
	}
	if (!usernameRegex.test(document.FormNewUserFB.usernameNew.value)) {
		alert(unescape(usernameNotValid));
		document.FormNewUserFB.usernameNew.focus();
		return false;
	}
	if (document.FormNewUserFB.emailNew.value == "") {
		alert(unescape(emailEmpty));
		document.FormNewUserFB.emailNew.focus();
		return false;
	}
	if (!emailRegex
			.test(document.FormNewUserFB.emailNew.value)) {
		alert(unescape(emailNotValid));
		document.FormNewUserFB.emailNew.focus();
		return false;
	}
	if (document.FormNewUserFB.agb.checked == false) {
		alert(unescape(acceptTerms));
		document.FormNewUserFB.agb.focus();
		return false;
	}
	document.getElementById("FormNewUserFB").submit();
	return true;
};


function chkFormLoginSzene1() {
	if (document.FormLoginSzene1.username.value == "") {
		alert(unescape(usernameEmpty));
		document.FormLoginSzene1.username.focus();
		return false;
	}
	if (document.FormLoginSzene1.password.value == "") {
		alert(unescape(passwordEmpty));
		document.FormLoginSzene1.password.focus();
		return false;
	}
	return true;
};

function chkFormNewUserSzene1Register(){
	if(document.FormNewUserSzene1Register.usernameMogree.value == "") {
		alert(unescape(usernameNotValid));
		document.FormNewUserSzene1Register.usernameMogree.focus();
		return false;
	}
	if(!usernameRegex.test(document.FormNewUserSzene1Register.usernameMogree.value)) {
		alert(unescape(usernameNotValid));
		document.FormNewUserSzene1Register.usernameMogree.focus();
		return false;
	}

	
	if (document.FormNewUserSzene1Register.isMogreeUser.checked == true) {
		if (document.FormNewUserSzene1Register.Musername.value == "") {
			alert(unescape(MusernameEmpty));
			document.FormNewUserSzene1Register.Musername.focus();
			return false;
		}
		if (document.FormNewUserSzene1Register.Mpassword.value == "") {
			alert(unescape(MpasswordEmpty));
			document.FormNewUserSzene1Register.Mpassword.focus();
			return false;
		}
		
	} else {
	
		if(document.FormNewUserSzene1Register.email.value == "") {
			alert(unescape(emailEmpty));
			document.FormNewUserSzene1Register.email.focus();
			return false;
		}
		if(!emailRegex.test(document.FormNewUserSzene1Register.email.value)){
			alert(unescape(emailNotValid));
			document.FormNewUserSzene1Register.email.focus();
			return false;
		}
		if(document.FormNewUserSzene1Register.agb.checked == false) {
			alert(unescape(acceptTerms));
			document.FormNewUserSzene1Register.agb.focus();
			return false;
			}
	}
	//document.getElementById("FormNewUserSzene1Register").submit();
	return true;	
};

function chkFormSms() {
	if (document.formSms.nr.value == "") {
		document.formSms.nr.focus();
		return false;
	} else {
		document.getElementById("formSms").submit();
		return true;
	}
};

function chkFormEmail() {
	if (document.formEmail.email.value == "") {
		document.formEmail.email.focus();
		return false;
	} else {
		document.getElementById("formEmail").submit();
		return true;
	}
};

function chkFormPassword() {
	if (!emailRegex.test(document.FormPassword.email.value)) {
		alert(unescape(emailNotValid));
		document.FormPassword.email.focus();
		return false;
	}
	document.getElementById("FormPassword").submit();
	return true;
};

function chkFormActivationInfo() {
	if (!emailRegex.test(document.FormActivationInfo.email.value)) {
		alert(unescape(emailNotValid));
		document.FormActivationInfo.email.focus();
		return false;
	}
	document.getElementById("FormActivationInfo").submit();
	return true;
};



function ismaxlength(obj) {
	var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")): ""
	if (obj.getAttribute && obj.value.length > mlength)
		obj.value = obj.value.substring(0, mlength);
};

function checkPassword(obj){
	var s = obj.value;
	if(!passwordRegex.test(s)){
		alert(passwordNotValid);
	}
	return false;
};

function checkUsername(obj){
	var s = obj.value;
	if(!usernameRegex.test(s)){
		alert(usernameNotValid);
	}
	return false;
};


function chkFormSingleInvite() {
	if (!emailRegex.test(document.formEmail.email.value)) {
		alert(unescape(emailNotValid));
		document.formEmail.email.focus();
		return false;
	}
	return true;
};

function chkUsernameOrPasswordChange(){
	if(document.FormUsername.passwordOld.value != "" && document.FormUsername.passwordNew.value != "" && document.FormUsername.passwordNew2.value != ""){
		if(!passwordRegex.test(document.FormUsername.passwordNew.value)) {
			alert(unescape(passwordNotValid));
			document.FormUsername.passwordNew.focus();
			return false;
		} 
		if (!passwordRegex.test(document.FormUsername.passwordNew2.value)) {
			alert(unescape(passwordNotValid));
			document.FormUsername.passwordNew2.focus();
			return false;
		}
		if(document.FormUsername.passwordNew.value != document.FormUsername.passwordNew2.value){
			alert(unescape(passwordNotTheSame));
			document.FormUsername.passwordNew.value = "";
			document.FormUsername.passwordNew2.value = "";
			document.FormUsername.passwordNew.focus();
			return false;
		}
	} else {
		return false;
	}
	//document.getElementById("FormUsername").submit();
	return true;	
};

function chkFormChangePassword(){
	
	if(document.FormChangePassword.passwordNew.value == ""){
		alert(unescape(passwordEmpty));
		document.FormChangePassword.passwordNew.focus();
		return false;
	}
	if(document.FormChangePassword.passwordNew2.value == ""){
		alert(unescape(passwordEmpty));
		document.FormChangePassword.passwordNew2.focus();
		return false;
	}
	
	if(!passwordRegex.test(document.FormChangePassword.passwordNew.value)) {
		alert(unescape(passwordNotValid));
		document.FormChangePassword.passwordNew.focus();
		return false;
	} 
	if (!passwordRegex.test(document.FormChangePassword.passwordNew2.value)) {
		alert(unescape(passwordNotValid));
		document.FormChangePassword.passwordNew2.focus();
		return false;
	}
	if(document.FormChangePassword.passwordNew.value != document.FormChangePassword.passwordNew2.value){
		alert(unescape(passwordNotTheSame));
		document.FormChangePassword.passwordNew.value = "";
		document.FormChangePassword.passwordNew2.value = "";
		document.FormChangePassword.passwordNew.focus();
		return false;
	}
	
	//document.getElementById("FormChangePassword").submit();
	return true;	
};