jQuery(function($){
	$('form.validate').submit(function(e){
		var error = '';
		$('.required', this).each(function(){
			var jThis = $(this);
			var val = $.trim(jThis.val());
			if(jThis.hasClass('phone')){
				var msg = 'A valid phone number is required.\n';
				var parts = val.match(/[x\d]+/g);
				if(parts == null){
					error += msg;
				}else{
					parts = parts.join('').split('x', 3);
					var pLen = parts[0].length;
					if(parts.length > 2 || (pLen != 7 && pLen != 10)){
						error += msg;
					}
				}
			}else if(jThis.hasClass('email')){
				var pattern = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
				if(!pattern.test(val)) error += 'A valid email address is required.\n';
			}else if(jThis.hasClass('zip')){
				var pattern = /^\d{5}$/;
				if(!pattern.test(val)) error += 'A valid zip code is required.\n';
			}else{ //only requirment is not blank
				if(val == '') error += jThis.attr('title') + ' is required.\n';
			}
		});
		if(error != ''){
			alert(error);
			return false;
		}
		return true;
	});
});
