var data_fields = new Array("reg_name", "reg_email", "reg_date_1", "reg_date_2", "reg_date_3", "reg_date_4", "reg_position");
var timestamp = 0;

function validate_form() {
	try
	{
		// Check that name is reasonable length
		var name_length = $("#reg_name").val().length;
		if (name_length == 0 || name_length > 40)
			throw "#reg_name_error";

		// Check that email is reasonable length (technically could be longer but that's pretty unusual)
		var email_length = $("#reg_email").val().length;
		if (email_length == 0 || email_length > 60)
			throw "#reg_email_error";

		// Check that email format is vaguely plausible
		var email_regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		if (!email_regex.test($("#reg_email").val()))
			throw "#reg_email_error";

		// Check that at least one date is checked
		var date_1 = $("#reg_date_1")[0].checked;
		var date_2 = $("#reg_date_2")[0].checked;
		var date_3 = $("#reg_date_3")[0].checked;
		var date_4 = $("#reg_date_4")[0].checked;
		if (!date_1 && !date_2 && !date_3 && !date_4)
			throw "#reg_date_error";
	}
	catch (e) {
		$(e).show(); // unveil the specified error
		return false;
	}

	return true;
}

function construct_POST_data() {
	var POST_data = "";
	for (i in data_fields) {
		if (i > 0)
			POST_data += "&";

		POST_data += data_fields[i] + "=";

		var input_field = $("#" + data_fields[i]);
		var input_field_DOM = input_field[0];

		switch (input_field_DOM.type) {
			case "text":
				if (input_field.val() != input_field_DOM.defaultValue)
				POST_data += input_field.val();
				break;

			case "checkbox":
				POST_data += input_field_DOM.checked;
				break;

			default:
				break;
		}
	}

	POST_data += "&timestamp=" + timestamp;

	return POST_data;
}

$(document).ready(function() {
		$(".form_error").hide();

	$.get("scripts/token.php", function(txt) {
		timestamp = txt;
	});

	$("form#registration").submit(function() {
		$(".form_error").hide();

		if (validate_form()) {
			$.ajax({
				type: "post",
				url:  "scripts/form.php",
				data: construct_POST_data(),
				success: function() {
					$("#registration").hide();
					$("#form_success").html("<div><center>Thanks for registering - see you this summer!</center></div>")
					.hide()
					.fadeIn(1000);
				}
			});
		}

		return false; // don't submit the form through the traditional means
	});

});

