$(document).ready(function(){
	
	$(function(){
		$('#Dog_Question_8').keyup(function(){
			textarea_limit('Dog_Question_8', 255, 'Dog_Question_8_Warning');
		})
	});

	$(function() {
		// make numeric at every action
		$("#Dog_Age").numeric();
	});
	
	$(function() {
		// make numeric at every action
		$("#Dog_Weight").numeric();
	});
	
	$(function() {
		// make numeric at every action
		$("#Boss_Number").numeric();
	});

	$(":checkbox[name='Boss_Other_Pets[11]']").click(function() {
		//if($(":checkbox[name='Boss_Other_Pets[11]']").attr('checked')) { // works too
		if($(":checkbox[name='Boss_Other_Pets[11]']").is(':checked')) {
			for($i = 0; $i < 11; $i++) {
				$(":checkbox[name='Boss_Other_Pets[" + $i + "]']").removeAttr("checked");
			}
		}
	});
	
	$("form").submit(function() {
		var _required = errmsg("_required");
		var _numbers = errmsg("_numbers");
		var _wrong = errmsg("_wrong");
		
		/************************ Dog ***********************/
		var slength = $("#Dog_First_Name").val().length;
		$("#Dog_First_Name_Warning").empty();
		if (slength < 1) {
			$("#Dog_First_Name_Warning").append(_required);
			$("#Dog_First_Name").focus();
			return false;
		}
		
		var slength = $("#Dog_Race").val().length;
		$("#Dog_Race_Warning").empty();
		if (slength < 1) {
			$("#Dog_Race_Warning").append(_required);
			$("#Dog_Race").focus();
			return false;
		}
		
		var val = $("#Dog_Gender").val();
		$("#Dog_Gender_Warning").empty();
		if (val != "m" && val != "f") {
			$("#Dog_Gender_Warning").append(_required);
			$("#Dog_Gender").focus();
			return false;
		}
		
		var slength = $("#Dog_City").val().length;
		$("#Dog_City_Warning").empty();
		if (slength < 1) {
			$("#Dog_City_Warning").append(_required);
			$("#Dog_City").focus();
			return false;
		}
		/********************* Password *********************/
		var pw1 = $("#Boss_Password1").val(); // only check length
		$("#Boss_Password1_Warning").empty();
		if(pw1.length < 4) {
			$("#Boss_Password1_Warning").append( errmsg("Het wachtwoord moet bestaan uit minimaal 4 karakters") );
			$("#Boss_Password1").focus();
			return false;
		}
		
		// check for differences
		var pw2 = $("#Boss_Password2").val();
		$("#Boss_Password2_Warning").empty();
		if(!do_passwords_match(pw1, pw2)) {
			$("#Boss_Password2_Warning").append( errmsg("De wachtwoorden zijn niet gelijk aan elkaar") );
			$("#Boss_Password2").focus();
			return false;
		}
		/*********************** Boss ***********************/
		// check birthday
		var day = $(":input[name='Boss_Age_Day']").val();
		var month = $(":input[name='Boss_Age_Month']").val();
		var year = $(":input[name='Boss_Age_Year']").val();
		$("#Boss_Birthday_Warning").empty();
		if ( (day == "01" && month == "01" && year == "1991") ||
			(day == "" && month == "" && year == "") ) {
				$("#Boss_Birthday_Warning").append( errmsg("Uw leeftijd invullen is verplicht") );
				$("#Boss_Age_Day").focus();
				return false;
		}
		
		// birthday (Y-m-d) is selectbox and cannot be wrong or corrected
		var slength = $("#Boss_First_Name").val().length;
		$("#Boss_First_Name_Warning").empty();
		if (slength < 1) {
			$("#Boss_First_Name_Warning").append(_required);
			$("#Boss_First_Name").focus();
			return false;
		}
		
		var slength = $("#Boss_Last_Name").val().length;
		$("#Boss_Last_Name_Warning").empty();
		if (slength < 1) {
			$("#Boss_Last_Name_Warning").append(_required);
			$("#Boss_Last_Name").focus();
			return false;
		}
	
		var slength = $("#Boss_Street").val().length;
		$("#Boss_Street_Warning").empty();
		if (slength < 1) {
			$("#Boss_Street_Warning").append(_required);
			$("#Boss_Street").focus();
			return false;
		}
		
		var val = $("#Boss_Number").val();
		$("#Boss_Number_Warning").empty();
		if(!is_numeric(val)) {
			$("#Boss_Number_Warning").append(_numbers);
			$("#Boss_Number").focus();
			return false;
		} else if(val.length < 1) {
			$("#Boss_Number_Warning").append(_required);
			$("#Boss_Number").focus();
			return false;
		}
		
		var ZC = $("#Boss_Zipcode").val();
		$("#Boss_Zipcode_Warning").empty();
		if(is_empty(ZC)) {
			$("#Boss_Zipcode_Warning").append(_required);
			$("#Boss_Zipcode").focus();
			return false;
		} else if (!is_valid_zipcode(ZC)) {
			$("#Boss_Zipcode_Warning").append(_wrong);
			$("#Boss_Zipcode").focus();
			return false;
		}
		
		var slength = $("#Boss_City").val().length;
		$("#Boss_City_Warning").empty();
		if (slength < 1) {
			$("#Boss_City_Warning").append(_required);
			$("#Boss_City").focus();
			return false;
		}
		
		var PN = $("#Boss_Phone_Number").val();
		$("#Boss_Phone_Number_Warning").empty();
		if(is_empty(PN)) {
			$("#Boss_Phone_Number_Warning").append(_required);
			$("#Boss_Phone_Number").focus();
			return false;
		} else {
			if(!is_numeric(PN) || PN.length != 10) {
				$("#Boss_Phone_Number_Warning").append( errmsg("Het telefoonnummer moet inclusief het netnummer uit precies tien cijfers bestaan") );
				$("#Boss_Phone_Number").focus();
				return false;
			}
		}
		
		var EA = $("#Boss_Email_Address").val();
		$("#Boss_Email_Address_Warning").empty();
		if(is_empty(EA)) {
			$("#Boss_Email_Address_Warning").append(_required);
			$("#Boss_Email_Address").focus();
			return false;
		} else {
			if(!is_valid_emailaddress(EA)) {
				$("#Boss_Email_Address_Warning").append(_wrong);
				$("#Boss_Email_Address").focus();
				return false;
			} else {
				// valid e-mailaddress
				var Regex =/\@((telfort|tiscali|versatel)+\.)+([a-zA-Z0-9]{2,7})+$/;
				if(Regex.test(EA)){
					$("#Boss_Email_Address_Warning").append( errmsg("Het blijkt dat niet alle uitnodigingen naar e-mailadressen van Versatel en Telfort daadwerkelijk worden afgeleverd. Wil je er zeker van zijn dat je uitnodiging wordt afgeleverd, stuur dan ook nog een uitnodiging vanaf je eigen e-mail account. Of neem een gratis e-mail account bij Hotmail, MSN of Google Gmail.") );
					return false;
				}
			}
		}
		
		var rules = $(":checkbox[name='Boss_Accepted_Rules']").val();
		$("#Boss_Accepted_Rules_Warning").empty();
		if(!$(":checkbox[name='Boss_Accepted_Rules']").is(':checked')) {
			$("#Boss_Accepted_Rules_Warning").append(_required);
			$("#Boss_Accepted_Rules").focus();
			return false;
		}
		
		//var Assurance = $("input[@name='Boss_Insurance_Information']").is(":selected");
		//window.alert(Assurance);
		
		/*********************** End ***********************/
		return true;
	});
});
