$(document).ready(function()
{
	/** Sign-up Form **/
		
		var signupForm = $("form.signupform");
		var btnSubmit = $(".signupform input[type='submit']");
		
		var field_email = $("#signupform_email");
		var field_mobile = $("#signupform_mobile");
		var field_zipcode = $("#signupform_zipcode");
		
		function isValidEmailAddress(emailAddress) 
		{
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);

			return pattern.test(emailAddress);
		}
		
		function checkFormEmail()
		{
			if (field_email.val() == "")
			{
				alert("An email address is required.");
				return false;
			}
			else if (!isValidEmailAddress(field_email.val()))
			{
				alert("The email address you entered is invalid.");
				return false;
			}
			else
			{
				return true;
			}
		}
		
		function checkMobileNumber()
		{
			if (field_mobile.val() == "")
			{
				return true;
			}
			else if (field_mobile.val().length < 9)
			{
				alert("The mobile number you entered is not valid. Please input full mobile phone number including area code. (Field is not required, only if you like to receive SMS alerts.)");
				return false;
			}
			else
			{
				return true;
			}
		}
		
		function checkZipCode()
		{
			if (field_zipcode.val() == "")
			{
				alert("Your Zip Code is required. Please enter your 5-digit zipcode.");
				return false;
			}
			else if (field_zipcode.val().length < 5)
			{
				alert("The Zip Code you entered is not valid. Please enter your 5-digit zipcode.");
				return false;
			}
			else
			{
				return true;
			}
		}
		
		function submitForm()
		{
			if (!checkFormEmail()) return false;
			if (!checkMobileNumber()) return false;
			if (!checkZipCode()) return false;
			
			return true;
		}
		
		signupForm.submit(submitForm);
		btnSubmit.click(submitForm);
		
	/** End Sign-up Form **/
});
