
//
// formulier functies
//

$.validator.setDefaults({
	submitHandler: function(form) {
		//alert("submitted!");
		form.submit();
	}
});

$().ready(function() {

	// validate the comment form when it is submitted
	$("#commentForm").validate();
		
		// INLOGGEN HEADER
		
		$("#inloggen").validate({
			rules: {
				gebruikersnaam: {
					required: true,
					minlength: 2
				},
				wachtwoord: {
					required: true,
					minlength: 6
				}
			},
			messages: {
				gebruikersnaam: {
					required: "<div>Wil je een geldige gebruikersnaam invullen.</div>",
					minlength: "<div>Je gebruikersnaam bestaat uit minimaal 2 karakters.</div>"
				},
				wachtwoord: {
					required: "<div>Wil je een wachtwoord invullen.</div>",
					minlength: "<div>Je wachtwoord bestaat uit minimaal 6 karakters.</div>"
				}
			}
		});

		// INLOGGEN

		var validator = $("#inloggen_fullscreen").bind("invalid-form.validate", function() {
			$("#summary").html("Je logingegevens zijn niet correct. Wil je het opnieuw proberen.");
			}).validate({

			debug: true,
			errorContainer: $("#summary"),

			rules: {
			gebruikersnaam: {
				required: true,
				minlength: 2
			},
			wachtwoord: {
				required: true,
				minlength: 6
			}
		},
		messages: {
			gebruikersnaam: {
				required: "<div class=\"verplicht_veld\">Vul je Splanner gebruikersnaam in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je gebruikersnaam bestaat uit minimaal 2 karakters.</div>"
			},
			wachtwoord: {
				required: "<div class=\"verplicht_veld\">Vul je wachtwoord in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je wachtwoord bestaat uit minimaal 6 karakters.</div>"
			}
		}
	});
	
	// WACHTWOORD VERGETEN?

		var validator = $("#wachtwoord-vergeten").bind("invalid-form.validate", function() {
			$("#summary").html("Wij hebben " + validator.numberOfInvalids() + " foutjes ontdekt. We hebben de velden rood omlijnd. Wil je dit aanpassen? ");
			}).validate({

			debug: true,
			
			errorContainer: $("#summary"),
			rules: {
			gebruikersnaam: {
				required: true,
				minlength: 2
			},
			email: {
				required: true,
				email: true
			}
			},
		messages: {
			gebruikersnaam: {
				required: "<div class=\"verplicht_veld\">Vul je Splanner gebruikersnaam in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je gebruikersnaam bestaat uit minimaal 2 karakters.</div>"
			},
			email: {
				required: "<div class=\"verplicht_veld\">We sturen het wachtwoord naar dit e-mailadres.</div>",
				email: "<div class=\"verplicht_veld\">Vul het e-mailadres in waarmee je geregistreerd bent.</div>"
			}
		}
	});
	
		// REGISTREREN STAP 1

		var validator = $("#registreren_stap1").bind("invalid-form.validate", function() {
			$("#summary").html("Je logingegevens zijn niet correct. Wil je het opnieuw proberen.");
			}).validate({

			debug: true,
			errorContainer: $("#summary"),

			rules: {
			naam: {
				required: true,
				minlength: 1
			},
			email: {
				required: true,
				email: true
			},
			gebruikersnaam: {
				required: true,
				minlength: 2
			},
			wachtwoord: {
				required: true,
				minlength: 6
			},
			wachtwoord_controle: {
				required: true,
				minlength: 6,
				equalTo: "#registreren_stap1 #wachtwoord"
			},
			environment_studenthome_postal: {
				required: true,
				minlength: 6
			},
			environment_studenthome_number: {
				required: true,
				minlength: 1
			},
			environment_studenthome_place: {
				required: true,
				minlength: 1
			}
		},
		messages: {
			naam: {
				required: "<div class=\"verplicht_veld\">Vul je naam in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je naam bestaat uit minimaal 1 karakter.</div>"
			},
			email: {
				required: "<div class=\"verplicht_veld\">Vul je e-mailadres in.</div>",
				email: "<div class=\"verplicht_veld\">Je e-mailadres moet een bestaand adres zijn.</div>"
			},
			gebruikersnaam: {
				required: "<div class=\"verplicht_veld\">Vul een gewenste gebruikersnaam in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je gebruikersnaam bestaat uit minimaal 2 karakters.</div>"
			},
			wachtwoord: {
				required: "<div class=\"verplicht_veld\">Vul je wachtwoord in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je wachtwoord bestaat uit minimaal 6 karakters.</div>"
			},
			wachtwoord_controle: {
				required: "<div class=\"verplicht_veld\">Vul je wachtwoord in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je wachtwoord bestaat uit minimaal 6 karakters.</div>",
				equalTo: "<div class=\"verplicht_veld\">Je wachtwoorden zijn niet hetzelfde.</div>"
			},
			environment_studenthome_postal: {
				required: "<div class=\"verplicht_veld\">Geef postcode.</div>",
				minlength: "<div class=\"verplicht_veld\">Geef postcode.</div>"
			},
			environment_studenthome_number: {
				required: "<div class=\"verplicht_veld\">Geef huisnummer.</div>",
				minlength: "<div class=\"verplicht_veld\">Geef huisnummer.</div>"
			},
			environment_studenthome_place: {
				required: "<div class=\"verplicht_veld\">Vul een woonplaats in.</div>",
				minlength: "<div class=\"verplicht_veld\">Vul een woonplaats in.</div>"
			}
		}
	});
	
		// STUDENTENHUIS AANMELDEN
		
		$("#registreren-studentenhuis_stap1").validate({
			rules: {
				studentenhuis_naam: {
					required: true,
					minlength: 2
				},
				postcode: {
					required: true,
					minlength: 6
				},
				huisnummer: {
					required: true,
					minlength: 1
				},
				huisgenoten: {
					required: true
				}
			},
			messages: {
				studentenhuis_naam: {
					required: "<div class=\"verplicht_veld\">Vul de naam van het studentenhuis in.</div>",
					minlength: "<div class=\"verplicht_veld\">De naam bestaat uit minimaal 2 karakters.</div>"
				},
				postcode: {
					required: "<div class=\"verplicht_veld\">Vul de postcode in van je studentenhuis.</div>",
					minlength: "<div class=\"verplicht_veld\">Je postcode moet bestaan uit 4 cijfers en 2 letters.</div>"
				},
				huisnummer: {
					required: "<div class=\"verplicht_veld\">Vul een huisnummer in.</div>",
					minlength: "<div class=\"verplicht_veld\">Je huisnummer moet bestaan uit minimaal 1 cijfer.</div>"
				},
				huigenoten: {
					required: "<div class=\"verplicht_veld\">Vul het aantal huisgenoten in.</div>",
					minlength: "<div class=\"verplicht_veld\">Als je in een studentenhuis woont heb je minstens 1 huisgenoot.</div>"
				}
			}
		});
	
	// validate signup form on keyup and submit
	$("#signupForm").validate({
		rules: {
			firstname: "required",
			lastname: "required",
			username: {
				required: true,
				minlength: 2
			},
			password: {
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				minlength: 5,
				equalTo: "#password"
			},
			email: {
				required: true,
				email: true
			},
			topic: {
				required: "#newsletter:checked",
				minlength: 2
			},
			agree: "required"
		},
		messages: {
			firstname: "Please enter your firstname",
			lastname: "Please enter your lastname",
			username: {
				required: "Please enter a username",
				minlength: "Your username must consist of at least 2 charactersssss"
			},
			password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 ddddcharacters long"
			},
			confirm_password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 charaassscters long",
				equalTo: "Please enter the same password as above"
			},
			email: "Please enter a valid email address",
			agree: "Please accept our policy"
		}
	});

	var validator = $("#logindataform").bind("invalid-form.validate", function() {
			$("#summary").html("Je logingegevens zijn niet correct. Wil je het opnieuw proberen.");
			}).validate({

			debug: true,
			errorContainer: $("#summary"),

			rules: {
				f_email: {
					required: true,
					email: true
				},
				f_wachtwoord: {
					required: true,
					minlength: 6
				},
				f_wachtwoord_controle: {
					required: true,
					minlength: 6,
					equalTo: "#f_wachtwoord"
				}
		},
		messages: {
			f_email: {
				required: "<div class=\"verplicht_veld\">Vul je e-mailadres in.</div>",
				email: "<div class=\"verplicht_veld\">Je e-mailadres moet een bestaand adres zijn.</div>"
			},
			f_wachtwoord: {
				required: "<div class=\"verplicht_veld\">Vul je wachtwoord in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je wachtwoord bestaat uit minimaal 6 karakters.</div>"
			},
			f_wachtwoord_controle: {
				required: "<div class=\"verplicht_veld\">Vul je wachtwoord in.</div>",
				minlength: "<div class=\"verplicht_veld\">Je wachtwoord bestaat uit minimaal 6 karakters.</div>",
				equalTo: "<div class=\"verplicht_veld\">Je wachtwoorden zijn niet hetzelfde.</div>"
			}
		}
	});
		
	// propose username by combining first- and lastname
	$("#username").focus(function() {
		var firstname = $("#firstname").val();
		var lastname = $("#lastname").val();
		if(firstname && lastname && !this.value) {
			this.value = firstname + "." + lastname;
		}
	});
	
	// check if confirm password is still valid after password changed
	$("#password").blur(function() {
		$("#confirm_password").valid();
	});
	
	//code to hide topic selection, disable for demo
	var newsletter = $("#newsletter");
	// newsletter topics are optional, hide at first
	var inital = newsletter.is(":checked");
	var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
	var topicInputs = topics.find("input").attr("disabled", !inital);
	// show when newsletter is checked
	newsletter.click(function() {
		topics[this.checked ? "removeClass" : "addClass"]("gray");
		topicInputs.attr("disabled", !this.checked);
	});
});