// JavaScript for Customer Registration Form

$(function() {
		
	//Date fields
	$("#birthday").hint();
	$("#birthmonth").hint();
	$("#birthyear").hint();
	
	//// Validate ////
	$("form#RegCustomer").validate({
		rules: {
			'Email': { required: true, email: true },
			'RawPassword': { required: true, minLength: 5, maxLength: 12 },
			'PersonalInfoPtr.First_Name': "required",
			'PersonalInfoPtr.Last_Name': "required",
			'Day[0].Day': { digits: true, realDate: true, required: true },
			'Month[0].Month': { digits: true, realDate: true, required: true },
			'Year[0].Year': { minLength: 4, digits: true, realDate: true, required: true },
			'BillingAddressPtr.Address1': "required",
			'BillingAddressPtr.City': "required",
			'BillingAddressPtr.Postal_Code': "required",
			'Gender': "required",
			'ShippingAddressPtr.Address1': { 
				required: function(element) { 
					return !($("#deliveryDifferent:checked").val()); 
				} 
			},
			'ShippingAddressPtr.City': { 
				required: function(element) { 
					return !($("#deliveryDifferent:checked").val()); 
				} 
			},
			'Work_Phone': "required"
		},
		messages: {
			'Email': { required: "Please enter your email address." },
			'RawPassword': {
				required: "Please enter your password.",
				minLength: "Password should be between 5 - 12 characters length.",
				maxLength: "Password should be between 5 - 12 characters length."
			},
			'PersonalInfoPtr.First_Name': "Please enter your first name.",
			'PersonalInfoPtr.Last_Name': "Please enter your last name.",
			'Day[0].Day': {
			    required: "Please enter your birth day.",
				digits: "Please enter the Day in the format <b>dd</b> only using digits",
				realDate: "Please enter valid date."
			},
			'Month[0].Month': {
			    required: "Please enter your birth month.",
				digits: "Please enter the Month in the format <b>mm</b> only using digits",
				realDate: "Please enter valid date."
			},
			'Year[0].Year': {
			    required: "Please enter your year of birth.",
				minLength: "Please enter the Year in the format <b>yyyy</b> only using digits", 
				digits: "Please enter the Year in the format <b>yyyy</b> only using digits",
				realDate: "Please enter valid date."
			},
			'BillingAddressPtr.Address1': "Please enter your address.",
			'BillingAddressPtr.City': "Please enter your suburb.",
			'BillingAddressPtr.Postal_Code': "Please enter your postcode.",
			'Gender': "Please enter your gender",
			'ShippingAddressPtr.Address1': "Please enter delivery address.",
			'ShippingAddressPtr.City': "Please enter delivery suburb.",
			'Work_Phone': "Please enter your phone number."
		},
		errorPlacement: function(error, element) {
			if( element.parent().hasClass('after') ) {
				error.appendTo( element.parent().parent("li") );
			} else {
				error.appendTo( element.parent("li") );
			}
		}
	});

	
	//Hide Delivery Address with checkbox
	function checkDelivery( checkbox ) {
		if( checkbox.is(":checked") ) {
			$(".deliveryHide").hide();
		} else {
			$(".deliveryHide").show();
		}
	}
	$("#deliveryDifferent").click(function () {
		checkDelivery( $(this) );
	});
	checkDelivery( $("#deliveryDifferent") );
	
	//if Billing Address is not a deliverable location uncheck & disable Delivery Address 'use same as above'.
	$("#MailingProvince_Code").change(function () {
		var mailProv = $("#MailingProvince_Code option:selected").text();
		if( $("#ShippingProvince_Code option:contains('"+mailProv+"')").length > 0 ) {
			//MailingProvince_Code in ShippingProvince_Code
			$("#deliveryDifferent").attr("disabled","");
		} else {
			//MailingProvince_Code NOT in ShippingProvince_Code
			if( $("#deliveryDifferent").is(":checked") ) {
				$("#deliveryDifferent").click();
				checkDelivery( $("#deliveryDifferent") );
			}
			$("#deliveryDifferent").attr("disabled","disabled");
		}

	})
	.change();

	

});







