<?php

/**

 * 2007-2014 [PagSeguro Internet Ltda.]

 *

 * NOTICE OF LICENSE

 *

 *Licensed under the Apache License, Version 2.0 (the "License");

 *you may not use this file except in compliance with the License.

 *You may obtain a copy of the License at

 *

 *http://www.apache.org/licenses/LICENSE-2.0

 *

 *Unless required by applicable law or agreed to in writing, software

 *distributed under the License is distributed on an "AS IS" BASIS,

 *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 *See the License for the specific language governing permissions and

 *limitations under the License.

 *

 *  @author    PagSeguro Internet Ltda.

 *  @copyright 2007-2014 PagSeguro Internet Ltda.

 *  @license   http://www.apache.org/licenses/LICENSE-2.0

 */



/***

 * Class tha represents available currencies on PagSeguro

 */



class PagSeguroCurrencies

{



    /***

     * List of available currencies on PagSeguro Transactions

     * <code>

     *      key = currency name

     *      value = currency iso code 3

     * </code>

     * @var array

     */

    private static $currencies = array(

        'REAL' => 'BRL'

    );



    /***

     * Check if currency is available by informed iso code for PagSeguro transactions

     * @param string $currency_iso_code

     * @return boolean

     */

    public static function checkCurrencyAvailabilityByIsoCode($currency_iso_code)

    {

        $available = false;

        if (array_search(strtoupper($currency_iso_code), self::$currencies)) {

            $available = true;

        }

        return $available;

    }



    /***

     * Check if currency is available by informed currency name for PagSeguro transactions

     * @param string $name

     * @return boolean

     */

    public static function checkCurrencyAvailabilityByName($name)

    {

        $available = false;

        if (array_key_exists(strtoupper($name), self::$currencies)) {

            $available = true;

        }

        return $available;

    }



    /***

     * Return currencies list

     * @return array

     */

    public static function getCurrenciesList()

    {

        return self::$currencies;

    }



    /***

     * Return iso code by currency name

     * Default return BRL (Brazilian Real) iso code

     * @param string $name - the currency name

     * @return string

     */

    public static function getIsoCodeByName($name)

    {

        $name = strtoupper($name);

        return (isset(self::$currencies[$name])) ? self::$currencies[$name] : self::$currencies['REAL'];

    }



    /**

     * Return currency name by iso code

     * @param string $iso_code

     * @return string

     */

    public static function getCurrencyNameByIsoCode($iso_code)

    {

        return array_search(strtoupper($iso_code), self::getCurrenciesList());

    }

}

