jQuery(function() {
	// create loading indicator object
	var loader = jQuery('')
		.appendTo("#loadingIndicator")
		.hide("#loadingIndicator");
	
	// handle loading indicator
	jQuery().ajaxStart(function() {
		loader.show();
	}).ajaxStop(function() {
		loader.hide();
	}).ajaxError(function(a, b, e) {
		throw e;
	});
	
	// add method maxWords
	jQuery.validator.addMethod("maxWords", function(value, element) { 
		return this.optional(element) || value.match(/\b\w+\b/g).length < 60; 
	}, "Please use 60 words or less.");

	// create validation object
	var v = jQuery("#bumacultuurform").validate({
			rules: {
				NaamFestival:{
        			required: function(element) {
             			return $("#SelCat:checked").val() == 'festival';
             		}
				},
				password_check: {
					equalTo: "#Wachtwoord"
				},
				"SelectGeslacht": "required",
				"SelectFunctie[]": {"required":true,"maxlength":3},
				"SelectCategorie[]": {"required":true,"maxlength":3},
				"Profiel": "maxWords",
				"PanelTekst": {"required":true,"maxWords":true},
				"arrival_one[]": {"required":true,"maxlength":1,"minlength":1},
				"arrival_two[]": {"required":true,"maxlength":2,"minlength":2},
				"arrival_three[]": {"required":true,"maxlength":3,"minlength":3},
				"arrival_four[]": {"required":true,"maxlength":4,"minlength":4},
				"arrival_five[]": {"required":true,"maxlength":5,"minlength":5},
				"EtepWelcomeDinerSelect": "required",
				"EtepWelcomeDinerVegetarianSelect": "required",
				"MusicXportHotelOfferSelect": "required",
				"MusicXportDinerSelect": "required",
				"MusicXportDinerVegetarianSelect": "required",
				"Soort kamer": "required",
				roommate:{
        			required: function(element) {
             			return $("#roomtype:checked").val() == 'twin room';
             		}
				}
			
			},
			
			messages: {
				"SelectCategorie[]": {"maxlength":"Please 3 categories or less."},
				"arrival_one[]": "Please select one night.",
				"arrival_two[]": "Please select two nights.",
				"arrival_three[]": "Please select three nights.",
				"arrival_four[]": "Please select four nights.",
				"arrival_five[]": "Please select five nights.",
				"NaamFestival": "Please fill out the name(s) of the Festival(s)."
			},
			submitHandler: function(form) {
			// hide form
			jQuery(form).hide();
			jQuery("#title").hide();
			jQuery("#intro").hide();
			// submit form
			jQuery(form).ajaxSubmit({
				target: "#result"
			});
			// fade in result page
			jQuery('#result').fadeIn("slow");
		}
	});
	
	// reset form
	jQuery("#reset").click(function() {
		v.resetForm();
	});
	

});


