   //Payment
   function isValidCardNum(str_raw_card_num){
   //Synopsis: Validate card number
      // ...tba... strip internal whitespace 
	   //           test things like is minimum length, is numeric
	   //           leave checksum, hot card, and pre-auth to server-side 
      return true;
   }

   function isValidCardPin(str_raw_card_pin){
   //Synopsis: Validate card PIN
      // ...tba... strip internal whitespace 
	   //           test things like is minimum length, is numeric
	   //           leave checksum, hot card, and pre-auth to server-side
	   //           what else can we do with PIN? 
      return true;
   }

   function isValidCardExpiryDate(str_raw_card_expiry_mm, str_raw_card_expiry_yy){
   //Synopsis: Validate card expiry date
      // ...tba... strip internal whitespace 
	   //           test things like is numeric, is date, is date in future
      return true;
   }

   //If we have reached the maximum card length, go to the nextFieldId
   function moveOnMaxLength(field,nextFieldId)
   {
      if(field.value.length >= field.maxLength)
      {
         document.getElementById(nextFieldId).focus();
      }
   }
   
   //On select of a value, move to the nextFieldId
   function moveOnSelect(field,nextFieldId)
   {  
      if(field.value != '')
      {
         document.getElementById(nextFieldId).focus();
      }
   }
