﻿//http://regexlib.com/REDetails.aspx?regexp_id=1456
$.validator.addMethod("bbjPassword", function(value, element) {
    return this.optional(element) || value.match(/(?=^\w{6,15}$)\w*(([a-zA-Z]+\d+)|(\d+[a-zA-Z]+))\w*/);
}, "More Complicated password needed");

$.validator.addMethod("bbjEmail", function(value, element) {
    return this.optional(element) || value.match(/^\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z0-9._%-]{2,4}\b$/);
}, "Please enter a valid email");

$.validator.addMethod("bbjPhone", function(value, element) {
    return this.optional(element) || value.length > 9 && value.match(/^[-+\s0-9]*$/);
}, "Invalid Phone Number");

$.validator.addMethod("bbjCurrency", function(value, element) {
    return this.optional(element) || value.match(/^\d+(?:\.\d{0,2})?$/);
}, "The currency entered is not valid!");

$.validator.addMethod("bbjZip", function(value, element) {
    return this.optional(element) || value.match(/^[0-9]\d{1,10}[-]*\d{1,10}$/);
}, "Wrong Zip Code Format!");

$.validator.addMethod(
	"dateUSA",
	function(value, element) {
	    var check = false;
	    var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
	    if (re.test(value)) {
	        var adata = value.split('/');
	        var mm = parseInt(adata[0], 10);
	        var gg = parseInt(adata[1], 10);
	        var aaaa = parseInt(adata[2], 10);
	        var xdata = new Date(aaaa, mm - 1, gg);
	        if ((xdata.getFullYear() == aaaa) && (xdata.getMonth() == mm - 1) && (xdata.getDate() == gg))
	            check = true;
	        else
	            check = false;
	    } else
	        check = false;
	    return this.optional(element) || check;
	},
	"Please enter a correct date"
);