jQuery.validator.addMethod("alphanumeric", function(value, element) {
	return this.optional(element) || /^[\w\s]+$/i.test(value);
}, "Letters, numbers, spaces or underscores only please");  

jQuery.validator.addMethod("basictext", function(value, element) {
	return this.optional(element) || /^[a-z-.,()'\"\s]+$/i.test(value);
}, "Letters or punctuation only please");  


jQuery.validator.addMethod("endswith", function(value, element, params) { 
    var reg = new RegExp(params + "$");
    return this.optional(element) || reg.test(value); 
}, $.format("Field must end with {0}")); 

jQuery.validator.addMethod("equals", function(value, element, params) {
		return this.optional(element) || value== params;
		},  $.format("Value must equal {0}"));

jQuery.validator.addMethod("exactlength", function(value, element, params) {
		return this.optional(element) || this.getLength(value, element) == params
		},  $.format("Field should be {0} characters long"));

jQuery.validator.addMethod("numeric", function(value, element) {
		return jQuery.validator.methods.number.apply(this, arguments);
		}, "Numbers only please");
		
jQuery.validator.addMethod("currency", function(value, element) {
		return this.optional(element) || /^[,.0-9]+$/i.test(value);
		//return jQuery.validator.methods.number.apply(this, arguments);
		}, "Numbers only please");

jQuery.validator.addMethod("startswith", function(value, element, params) { 

    var reg = new RegExp("^" + params);
    return this.optional(element) || reg.test(value); 
}, $.format("Field must start with {0}")); 


jQuery.validator.addMethod(
	"ddmmyyyy",
	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 gg = parseInt(adata[0],10);
			var mm = 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;
	}, 
	"Date must be in correct format. e.g. 31/12/1999"
);
