$(document).ready(function() {
	// validate signup form on keyup and submit
	$("form").validate({
		rules: {
			designation: "required",
			gift_amount: "required",
			gift_amount_other:  {
				required: function(element) {
					return ($("input[name='gift_amount']:checked").val() == "Other ");
				}, 
				number: function(element) {
					return ($("input[name='gift_amount']:checked").val() == "Other ");
				}
			},
			first_name: "required",
			last_name: "required",
			uid: {
				required: true,
				minlength: 9,
				maxlength: 10
			},
			school: "required",
			address: "required",
			city: "required",
			state: "required",
			zip: "required",
			email_address: {
				required: true,
				email: true
			},
			credit_card_type: {
				required: true
			},
			credit_card_number: {
				required: true,
				creditcard: true
			},
			expiration_month: "required",
			expiration_year: "required"
		},
		messages: {
			designation: "Please select a fund above before continuing.",
			gift_amount_other: {
				required: "Please enter a valid custom gift amount (only numbers and periods) or  select a different gift level.",
				number: "Please enter a valid custom gift amount (only numbers and periods) or  select a different gift level."
			},
			first_name: "Please provide your first name.",
			last_name: "Please provide your last name.",
			uid: {
				required: "Please provide your BUID number.",
				minlength: "Format your BUID number as U########.",
				maxlength: "Format your BUID number as U########."
			},
			school: {
				minlength: "Please indicate your school."
			},
			address: "Please enter your address.",
			city: "Please enter your city.",
			state: "Please enter your state.",
			zip: "Please enter your ZIP code.",
			email_address: {
				required: "Please provide your e-mail address.",
				email: "Please provide a valid e-mail address."
			},
			credit_card_type: {
				required: "Please provide your credit card issuer."
			},
			credit_card_number: {
				required: "Please provide your credit card number.",
				creditcard: "Please enter a valid credit card number (no dashes)."
			},
			expiration_month: "Please provide your credit card's expiration month.",
			expiration_year: "Please provide your credit card's expiration year."
		},
		errorPlacement: function(error, element) {
     		error.appendTo('fieldset:visible div#error_box:first');
			error.appendTo( element.next('small') );
   		}
	});
});