text: <?php
  
  ////
  // Class to handle currencies
  // TABLES: currencies
    class currencies
    {
      public $currencies;
  
  // class constructor
      public function __construct()
      {
        $this->currencies = array();
        $currenciesTable= new Table("cc_currencies"," * ");
        $DBHandle = DBConnect();
        $return = $currenciesTable -> Get_list($DBHandle,"",0);
        $this->currencies = array();
        foreach ($return as $value) {
          $this->currencies[$value['currency']] = array('currency' => $value['currency'],
                                                         'name' => $value['name'],
                                                         'value' => $value['value'],
                                                         'decimal_point' => $value['decimal_point'],
                                                         'basecurrency' => $value['basecurrency'],
                                                         'decimal_places' => 2);
        }
      }
  
  // class methods
      public function format($number, $calculate_currency_value = true, $currency_type = '', $currency_value = '')
      {
        global $currency;
  
        if (empty($currency_type)) $currency_type = $currency;
  
        if ($calculate_currency_value == true) {
          $rate = (tep_not_null($currency_value)) ? $currency_value : $this->currencies[$currency_type]['value'];
          $format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(tep_round($number * $rate, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];
  // if the selected currency is in the european euro-conversion and the default currency is euro,
  // the currency will displayed in the national currency and euro currency
          if ( (DEFAULT_CURRENCY == 'EUR') && ($currency_type == 'DEM' || $currency_type == 'BEF' || $currency_type == 'LUF' || $currency_type == 'ESP' || $currency_type == 'FRF' || $currency_type == 'IEP' || $currency_type == 'ITL' || $currency_type == 'NLG' || $currency_type == 'ATS' || $currency_type == 'PTE' || $currency_type == 'FIM' || $currency_type == 'GRD') ) {
            $format_string .= ' <small>[' . $this->format($number, true, 'EUR') . ']</small>';
          }
        } else {
          $format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(tep_round($number, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];
        }
  
        return $format_string;
      }
  
      public function is_set($code)
      {
        if (isset($this->currencies[$code]) && tep_not_null($this->currencies[$code])) {
          return true;
        } else {
          return false;
        }
      }
  
      public function get_value($code)
      {
        return $this->currencies[$code]['value'];
      }
  
      public function get_decimal_places($code)
      {
        return $this->currencies[$code]['decimal_places'];
      }
  
      public function display_price($products_price, $products_tax, $quantity = 1)
      {
        return $this->format(tep_add_tax($products_price, $products_tax) * $quantity);
      }
    }
  