var happy = {
  USPhone: function (val) {
    return /^\(?(\d{3})\)?[\- ]?\d{3}[\- ]?\d{4}$/.test(val)
  },

  date: function (val) {
    return /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12][0-9]|3[01])\/(?:\d{4})/.test(val);
  },
  
  email: function (val) {
    return /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/.test(val);
  },
  
  minLength: function (val, length) {
    return val.length >= 6;
  },
  
  maxLength: function (val, length) {
    return val.length <= 8;
  },

  shortminLength: function (val, length) {
    return val.length >= 2;
  },
  
  equal: function (val1, val2) {
    return (val1 == val2);
  }
};

//for e-newsletter signup form validation:
$(document).ready(function () {
$('#subForm').isHappy({
  fields: {
    '#firstname': {
      required: true,
      message: 'Please fill out your first name',
      test: happy.shortminLength      
    },
    '#lastname': {
      required: true,
      message: 'Please fill out your last name',
      test: happy.shortminLength      
    },
    '#bjtltd-bjtltd': {
      required: true,
      message: 'Please fill out a proper email address', 
      test: happy.email
    },
    '#province': {
      required: true,
      message: 'Please select a province', 
      test: happy.minLength
    },
    '#country': {
      required: true,
      message: 'Please select a country', 
      test: happy.minLength
    },
    '#postal': {
      required: true,
      message: 'Please enter your postal code', 
      test: happy.maxLength
    }  
    
  }
});
}); 

