/**
  * Validate the current credit card details
  */
 function validate_card_details(&$ret)
 {
     // validate input fields
     if ($this->req_all_flds) {
         $this->req_fields_arr = array('first_name', 'last_name', 'address1', 'state', 'zip');
     }
     if (is_array($this->req_fields_arr)) {
         $validate = true;
         global $VAR;
         foreach ($this->req_fields_arr as $fld) {
             if (empty($this->billing["{$fld}"]) && empty($this->account["{$fld}"])) {
                 $VAR["{$fld}_error"] = true;
                 $validate = false;
             }
         }
         if (!$validate) {
             global $C_translate;
             $ret['status'] = 0;
             $ret['msg'] = $C_translate->translate('missing_fields', 'checkout', '');
             return false;
         }
     }
     // validate actual credit card details
     include_once PATH_CORE . 'validate.inc.php';
     $validate = new CORE_validate();
     $this->billing["cc_no"] == preg_replace('/^[0-9]/', '', $this->billing["cc_no"]);
     if (!$validate->validate_cc($this->billing["cc_no"], false, $this->billing["card_type"], $this->cfg['card_type'])) {
         $ret['status'] = 0;
         global $C_translate;
         $ret['msg'] = $C_translate->translate('card_invalid', 'checkout', '');
     } elseif (!$validate->validate_cc_exp(@$this->billing["exp_month"], @$this->billing["exp_year"])) {
         $ret['status'] = 0;
         global $C_translate;
         $ret['msg'] = $C_translate->translate('card_exp_invalid', 'checkout', '');
     } else {
         $ret['status'] = 1;
         return true;
     }
     return false;
 }