

Validation.addAllThese([
      ['validate-lcase', 'Please only use lower-case (a-z) letters in this field', function(v){
         return Validation.get('IsEmpty').test(v) || /^[a-z]+$/.test(v);
      }],
      ['validate-zip', 'Please ensure your zip code has only 5 digits (you may also include a 4 digit lookup e.g. 99999-9999)', function(v){
         return Validation.get('IsEmpty').test(v) || /^(\d{5})(( |-)?(\d{4}))?$/.test(v);
      }],
      ['validate-phone', 'Please ensure the phone number is entered in a standard format (e.g. 999-999-9999)', function(v){
         return Validation.get('IsEmpty').test(v) || /^(([0-9]{3}-)|\([0-9]{3}\) ?)?[0-9]{3}-[0-9]{4}$/.test(v);
      }],
      ['validate-ssn', 'Please check the Social Security Number. It should follow the format 999-99-9999', function(v){
         return Validation.get('IsEmpty').test(v) || /^([0-9]{3}(-?)[0-9]{2}(-?)[0-9]{4})$/.test(v);
      }],
      ['validate-ip', 'Please check the IP address', function(v){
         return Validation.get('IsEmpty').test(v) || /^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/.test(v);
      }],
      ['validate-float', 'Please only use floating point numbers in this field', function(v){
         return Validation.get('IsEmpty').test(v) || /^(\b[0-9]+\.([0-9]+\b)?|\.[0-9]+\b)$/.test(v);
      }],
      ['validate-visa', 'Please check your credit card number', function(v){
         return Validation.get('IsEmpty').test(v) || /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/.test(v);
      }],
      ['validate-mastercard', 'Please check your credit card number', function(v){
         return Validation.get('IsEmpty').test(v) || /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/.test(v);
      }],
      ['validate-discovery', 'Please check your credit card number', function(v){
         return Validation.get('IsEmpty').test(v) || /^6011-?\d{4}-?\d{4}-?\d{4}$/.test(v);
      }],
      ['validate-amex', 'Please check your credit card number', function(v){
         return Validation.get('IsEmpty').test(v) || /^3[4,7]\d{13}$/.test(v);
      }],
      ['validate-diners', 'Please check your credit card number', function(v){
         return Validation.get('IsEmpty').test(v) || /^3[0,6,8]\d{12}$/.test(v);
      }],
      ['validate-currency-db', 'Please enter a valid dollar value', function(v){
         return Validation.get('IsEmpty').test(v) || /^\$?\d+(\.\d{1,2})?$/.test(v);
      }],
      ['validate-date-us', 'Please use this date format: MM/DD/YYYY. For example 03/17/2006 for the 17th of March, 2006.', function(v) {
				if(Validation.get('IsEmpty').test(v)) return true;
				var regex = /^([01]?\d{1})\/(\d{2})\/(\d{4})$/;
				if(!regex.test(v)) return false;
				var d = new Date(v.replace(regex, '$1/$2/$3'));
				return ( parseInt(RegExp.$1, 10) == (1+d.getMonth()) ) && 
							(parseInt(RegExp.$2, 10) == d.getDate()) && 
							(parseInt(RegExp.$3, 10) == d.getFullYear() );
      }],
      ['validate-time', 'Please only use time in this field', function(v){
         return Validation.get('IsEmpty').test(v) || /^\d{1,2}[:]\d{2}([:]\d{2})?( [aApP][mM]?)?$/.test(v);
      }]
]);


//(?n:(^\$?(?!0,?\d)\d{1,3}(?=(?<1>,)|(?<1>))(\k<1>\d{3})   * (\.\d\d)?   )$)