$(document).ready(function() {
	
	if ($("#form_login").is("form")) { $("#form_login").submit( function() { return validateCommon('#form_login'); } ); }
	if ($("#form_recipients").is("form")) { $("#form_recipients").submit( function() { return validateCommon('#form_recipients'); } ); }
	if ($("#form_reset").is("form")) { $("#form_reset").submit( function() { return validateCommon('#form_reset'); } ); }
	if ($("#form_user").is("form")) { $("#form_user").submit( function() { return validateCommon('#form_user'); } ); }
	if ($("#form_paths").is("form")) { $("#form_paths").submit( function() { return validatePaths(); } ); }
	if ($("#form_response").is("form")) { $("#form_response").submit( function() { return validateResponse(); } ); }
	
	if ($("#form_contact_fields").is("form")) {
		$("div.options").hide();
		$("div.controls").prepend("<a href=\"#\" class=\"toggle_options\" title=\"Toggle visibility of form object options\">Show options</a>&nbsp;&nbsp;&nbsp;&nbsp;");
		$("a.toggle_options").toggle(
	      function () {
			var field = $(this).parents("div.field")[0];
			$(field).next().fadeIn("normal");
			$(this).html("Hide options");
	      },
	      function () {
			var field = $(this).parents("div.field")[0];
			$(field).next().hide();
			$(this).html("Show options");
	      }
	    );
	}
	
});

//--------------------------------------------------------------------------------------------------------- Validate common forms

function validateCommon(form) {
	
	$(form).find("p.err").remove();
	$(".err").removeClass("err");
	
	if ($("#email").is("input") && !isValidEmail($("#email").val())) {
		$("#email").addClass("err").after("<p class=\"err\"><em>Please enter a valid email address</em></p>");
	}
	
	if (form != '#form_user' && $("#password").is("input") && $("#password").val() == '') { // In 'user options' a new password does not necessarily have to be entered
		$("#password").addClass("err").after("<p class=\"err\"><em>Please enter your password</em></p>");
	}

	if ($("#password_confirm").is("input") && $("#password").val() != '' && $("#password").val() != $("#password_confirm").val()) {
		$("#password_confirm").addClass("err").after("<p class=\"err\"><em>Please confirm your password</em></p>");
	}
	
	if ($("p.err").length > 0) { return false; }
	
}

//--------------------------------------------------------------------------------------------------------- Validate paths

function validatePaths() {
	
	$("#form_paths").find("p.err").remove();
	$(".err").removeClass("err");
	
	if ($("#form_thankyou").val() == '') {
		$("#form_thankyou").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_subscribe_thankyou").val() == '') {
		$("#list_subscribe_thankyou").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_confirm").val() == '') {
		$("#list_confirm").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_confirm_failed").val() == '') {
		$("#list_confirm_failed").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_confirm_thankyou").val() == '') {
		$("#list_confirm_thankyou").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_unsubscribe_thankyou").val() == '') {
		$("#list_unsubscribe_thankyou").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("p.err").length > 0) { return false; }
	
}

//--------------------------------------------------------------------------------------------------------- Validate paths

function validateResponse() {
	
	$("#form_response").find("p.err").remove();
	$(".err").removeClass("err");
	
	if ($("#responder_name").val() == '') {
		$("#responder_name").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if (!isValidEmail($("#responder_email").val())) {
		$("#responder_email").addClass("err").after("<p class=\"err\"><em>Please enter a valid email address</em></p>");
	}
	
	if (!isValidEmail($("#responder_replyto").val())) {
		$("#responder_replyto").addClass("err").after("<p class=\"err\"><em>Please enter a valid email address</em></p>");
	}
	
	if ($("#responder_subject").val() == '') {
		$("#responder_subject").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#responder_message").val() == '') {
		$("#responder_message").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_responder_subject").val() == '') {
		$("#list_responder_subject").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("#list_responder_message").val() == '') {
		$("#list_responder_message").addClass("err").after("<p class=\"err\"><em>Please complete this field</em></p>");
	}
	
	if ($("p.err").length > 0) { return false; }
	
}
