﻿$.validator.addMethod("phone", function(ph, element) {
if (ph == null) {
return false;
}
var stripped = ph.replace(/[\s()+-]|ext\.?/gi, "");
// 10 is the minimum number of numbers required
return ((/\d{10,}/i).test(stripped));
}, "Please enter a valid phone number");

$.validator.addMethod("zipcode", function(zip, element) {
if (zip == null) {
return false;
}
var stripped = zip.replace(/^\d{5}([\-]\d{4})?$/);
// 5 is the minimum number of numbers required
return ((/\d{5,}/i).test(stripped));
}, "Please enter a valid zip code");


$().ready(function() {
	// validate signup form on keyup and submit
	
	$("#form-newuser").validate({
		rules: {
			name: {
				required: true,
				minlength: 1
			},
			email: {
				required: true,
				email: true
			},
			confirm_email: {
				required: true,
				email: true,
				equalTo: "#email"
			},
			username: {
				required: true,
				minlength: 5
			},
			password: {
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				minlength: 5,
				equalTo: "#password"
			},
			phone: {
				required: true,
				minlength: 10
			},
			zipcode: "required"
		},
		messages: {
			name: {
				required: "Please provide a name",
				minlength: "Please enter a valid username"
			},
			email: "Please enter a valid email address",
			confirm_email: {
				required: "Please confirm your email address",
				equalTo: "Your email addresses do not match, please try again"
			},
			username: {
				required: "Please provide an username",
				minlength: "Your username must be at least 5 characters long"
			},
			password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long"
			},
			confirm_password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long",
				equalTo: "Your passwords do not match, please try again."
			},
			phone: {
				required: "Please provide a phone number",
				minlength: "Your phone number does not appear to be valid"
			}
		}
	});
	
	$("#form-signup").validate({
		rules: {
			fname: {
				required: true,
				minlength: 1
			},
			lname: {
				required: true,
				minlength: 1
			},
			
			email: {
				required: true,
				email: true
			},
			confirm_email: {
				required: true,
				email: true,
				equalTo: "#email"
			},
			username: {
				required: true,
				minlength: 5
			},
			password: {
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				minlength: 5,
				equalTo: "#password"
			},
			phone: {
				required: true,
				minlength: 10
			},
			fax: {
				required: false,
				minlength: 10
			},
			
			company: "required",
			address: "required",
			city: "required",
			state: "required",
			zipcode: "required",
			source: "required"
			
		},
		messages: {
			fname: {
				required: "Please provide a first name",
				minlength: "Please enter a valid username"
			},
			lname: {
				required: "Please provide a last name",
				minlength: "Please enter a valid username"
			},
			
			email: "Please enter a valid email address",
			confirm_email: {
				required: "Please confirm your email address",
				equalTo: "Your email addresses do not match, please try again"
			},
			username: {
				required: "Please provide an username",
				minlength: "Your username must be at least 5 characters long"
			},
			password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long"
			},
			confirm_password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long",
				equalTo: "Your passwords do not match, please try again."
			},
			phone: {
				required: "Please provide a phone number",
				minlength: "Your phone number does not appear to be valid"
			},
			fax: {
				minlength: "Your fax number does not appear to be valid"
			}
			
		}
	});

	
});
