function validateZipCode(elementValue){
    var zipCodePattern = /^\d{5}$|^\d{5}-\d{4}$/;
     return zipCodePattern.test(elementValue);
}

function validatePhone(str){
  var re = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/
  return re.test(str);
}

function isEmail(str){
  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
  return re.test(str);
}

jQuery(document).ready(function(){
	jQuery('#submit').click(function(e){
		var errCnt = 0;
		jQuery('#contact_form .required').each(function(){
			if(jQuery(this).val()=='') {
				jQuery(this).next('div').text('Required');
				errCnt++;
			} else {
				jQuery(this).next('div').text('');
			}
		});
		var zip = jQuery('input[name="zip"]').val();
		if (!validateZipCode(zip)) {
			jQuery('input[name="zip"]').next('div').text('Invalid ZIP code');
			errCnt++;
		} else {
			jQuery('input[name="zip"]').next('div').text('');
		}
		var phone = jQuery('input[name="phone"]').val();
		if (!validatePhone(phone)) {
			jQuery('input[name="phone"]').next('div').text('Invalid phone number');
			errCnt++;
		} else {
			jQuery('input[name="phone"]').next('div').text('');
		}
		var email = jQuery('input[name="email"]').val();
		if (!isEmail(email)) {
			jQuery('input[name="email"]').next('div').text('Invalid email');
			errCnt++;
		} else {
			jQuery('input[name="email"]').next('div').text('');
		}
		if (errCnt) {
			e.preventDefault();
		}
	});
});

