jQuery.validator.addMethod(
	"requiredIfGiftAidSingleChecked",
	function(value, element) {
		if ($('#giftAidSingle').is(':checked'))
			return !(element.value == '');
		else
			return true;
	},
	"Please select an option.");

jQuery.validator.addMethod(
	"requiredIfGiftAidRegularChecked",
	function(value, element) {
		if ($('#giftAidRegular').is(':checked'))
			return !(element.value == '');
		else
			return true;
	},
	"Please select an option.");

jQuery.validator.addMethod(
	"requiredCheckboxIfGiftAidSingleChecked",
	function(value, element) {
		if ($('#giftAidSingle').is(':checked'))
			return element.checked
		else
			return true;
	},
	"Please select an option.");

jQuery.validator.addMethod(
	"requiredCheckboxIfGiftAidRegularChecked",
	function(value, element) {
		if ($('#giftAidRegular').is(':checked'))
			return element.checked
		else
			return true;
	},
	"Please select an option.");
	
$(document).ready(function() {
    // hide gift aid forms
    $('.giftAidForm').hide();
    $('#giftAidSingle').click(function(node) {
        $('#giftAidSingleForm').slideToggle(250);
    })
    $('#giftAidRegular').click(function(node) {
        $('#giftAidRegularForm').slideToggle(250);
    })
	if ($('#giftAidSingle').is(':checked')) {
		$('#giftAidSingleForm').show()
	}
	if ($('#giftAidRegular').is(':checked')) {
		$('#giftAidRegularForm').show()
	}

	$('#giftAidSingleConfirmationDate').datepicker({ altField: '#giftAidSingleConfirmationDateFormatted', altFormat: 'yy-mm-dd' });
	$('#giftAidRegularConfirmationDate').datepicker({ altField: '#giftAidRegularConfirmationDateFormatted', altFormat: 'yy-mm-dd' });

	$("#singleDonation").validate({
		rules: {
			amount: "required",
			email: "email",
			address1: "requiredIfGiftAidSingleChecked",
			postcode: "requiredIfGiftAidSingleChecked",
			name: "requiredIfGiftAidSingleChecked",
			giftAidSingleConfirmationDate: "requiredIfGiftAidSingleChecked",
			notGettingAProductDisclaimer: "requiredCheckboxIfGiftAidSingleChecked",
			treatAllDonationsAsGiftAidDisclaimer: "requiredCheckboxIfGiftAidSingleChecked"
		},
		messages: {
			amount: "*",
			email: "Invalid",
			address1: "*",
			postcode: "*",
			name: "*",
			giftAidSingleConfirmationDate: "*",
			notGettingAProductDisclaimer: "*",
			treatAllDonationsAsGiftAidDisclaimer: "*"
		},
		errorPlacement: function(error, element) {
			error.appendTo( element.next(".fieldError") );
		}
   });

	$("#multipleDonation").validate({
		rules: {
			normalAmount: "required",
			email: "email",
			address1: "requiredIfGiftAidRegularChecked",
			postcode: "requiredIfGiftAidRegularChecked",
			name: "requiredIfGiftAidRegularChecked",
			giftAidRegularConfirmationDate: "requiredIfGiftAidRegularChecked",
			notGettingAProductDisclaimer: "requiredCheckboxIfGiftAidRegularChecked",
			treatAllDonationsAsGiftAidDisclaimer: "requiredCheckboxIfGiftAidRegularChecked"
		},
		messages: {
			normalAmount: "*",
			email: "Invalid",
			address1: "*",
			postcode: "*",
			name: "*",
			giftAidRegularConfirmationDate: "*",
			giftAidRegularConfirmationDate: "*",
			notGettingAProductDisclaimer: "*",
			treatAllDonationsAsGiftAidDisclaimer: "*"
		},
		errorPlacement: function(error, element) {
			error.appendTo( element.next(".fieldError") );
		}
	});
});
