<?php
Class CountryDetection{

    // currency - return local currency
    // country - return full name of local country
    static function get( $param ) {
        $countries = array(
            'AF'=>'AFGHANISTAN',
            'AL'=>'ALBANIA',
            'DZ'=>'ALGERIA',
            'AS'=>'AMERICAN SAMOA',
            'AD'=>'ANDORRA',
            'AO'=>'ANGOLA',
            'AI'=>'ANGUILLA',
            'AQ'=>'ANTARCTICA',
            'AG'=>'ANTIGUA AND BARBUDA',
            'AR'=>'ARGENTINA',
            'AM'=>'ARMENIA',
            'AW'=>'ARUBA',
            'AU'=>'AUSTRALIA',
            'AT'=>'AUSTRIA',
            'AZ'=>'AZERBAIJAN',
            'BS'=>'BAHAMAS',
            'BH'=>'BAHRAIN',
            'BD'=>'BANGLADESH',
            'BB'=>'BARBADOS',
            'BY'=>'BELARUS',
            'BE'=>'BELGIUM',
            'BZ'=>'BELIZE',
            'BJ'=>'BENIN',
            'BM'=>'BERMUDA',
            'BT'=>'BHUTAN',
            'BO'=>'BOLIVIA',
            'BA'=>'BOSNIA AND HERZEGOVINA',
            'BW'=>'BOTSWANA',
            'BV'=>'BOUVET ISLAND',
            'BR'=>'BRAZIL',
            'IO'=>'BRITISH INDIAN OCEAN TERRITORY',
            'BN'=>'BRUNEI DARUSSALAM',
            'BG'=>'BULGARIA',
            'BF'=>'BURKINA FASO',
            'BI'=>'BURUNDI',
            'KH'=>'CAMBODIA',
            'CM'=>'CAMEROON',
            'CA'=>'CANADA',
            'CV'=>'CAPE VERDE',
            'KY'=>'CAYMAN ISLANDS',
            'CF'=>'CENTRAL AFRICAN REPUBLIC',
            'TD'=>'CHAD',
            'CL'=>'CHILE',
            'CN'=>'CHINA',
            'CX'=>'CHRISTMAS ISLAND',
            'CC'=>'COCOS (KEELING) ISLANDS',
            'CO'=>'COLOMBIA',
            'KM'=>'COMOROS',
            'CG'=>'CONGO',
            'CD'=>'CONGO, THE DEMOCRATIC REPUBLIC OF THE',
            'CK'=>'COOK ISLANDS',
            'CR'=>'COSTA RICA',
            'CI'=>'COTE D IVOIRE',
            'HR'=>'CROATIA',
            'CU'=>'CUBA',
            'CY'=>'CYPRUS',
            'CZ'=>'CZECH REPUBLIC',
            'DK'=>'DENMARK',
            'DJ'=>'DJIBOUTI',
            'DM'=>'DOMINICA',
            'DO'=>'DOMINICAN REPUBLIC',
            'TP'=>'EAST TIMOR',
            'EC'=>'ECUADOR',
            'EG'=>'EGYPT',
            'SV'=>'EL SALVADOR',
            'GQ'=>'EQUATORIAL GUINEA',
            'ER'=>'ERITREA',
            'EE'=>'ESTONIA',
            'ET'=>'ETHIOPIA',
            'FK'=>'FALKLAND ISLANDS (MALVINAS)',
            'FO'=>'FAROE ISLANDS',
            'FJ'=>'FIJI',
            'FI'=>'FINLAND',
            'FR'=>'FRANCE',
            'GF'=>'FRENCH GUIANA',
            'PF'=>'FRENCH POLYNESIA',
            'TF'=>'FRENCH SOUTHERN TERRITORIES',
            'GA'=>'GABON',
            'GM'=>'GAMBIA',
            'GE'=>'GEORGIA',
            'DE'=>'GERMANY',
            'GH'=>'GHANA',
            'GI'=>'GIBRALTAR',
            'GR'=>'GREECE',
            'GL'=>'GREENLAND',
            'GD'=>'GRENADA',
            'GP'=>'GUADELOUPE',
            'GU'=>'GUAM',
            'GT'=>'GUATEMALA',
            'GN'=>'GUINEA',
            'GW'=>'GUINEA-BISSAU',
            'GY'=>'GUYANA',
            'HT'=>'HAITI',
            'HM'=>'HEARD ISLAND AND MCDONALD ISLANDS',
            'VA'=>'HOLY SEE (VATICAN CITY STATE)',
            'HN'=>'HONDURAS',
            'HK'=>'HONG KONG',
            'HU'=>'HUNGARY',
            'IS'=>'ICELAND',
            'IN'=>'INDIA',
            'ID'=>'INDONESIA',
            'IR'=>'IRAN, ISLAMIC REPUBLIC OF',
            'IQ'=>'IRAQ',
            'IE'=>'IRELAND',
            'IL'=>'ISRAEL',
            'IT'=>'ITALY',
            'JM'=>'JAMAICA',
            'JP'=>'JAPAN',
            'JO'=>'JORDAN',
            'KZ'=>'KAZAKSTAN',
            'KE'=>'KENYA',
            'KI'=>'KIRIBATI',
            'KP'=>'KOREA DEMOCRATIC PEOPLES REPUBLIC OF',
            'KR'=>'KOREA REPUBLIC OF',
            'KW'=>'KUWAIT',
            'KG'=>'KYRGYZSTAN',
            'LA'=>'LAO PEOPLES DEMOCRATIC REPUBLIC',
            'LV'=>'LATVIA',
            'LB'=>'LEBANON',
            'LS'=>'LESOTHO',
            'LR'=>'LIBERIA',
            'LY'=>'LIBYAN ARAB JAMAHIRIYA',
            'LI'=>'LIECHTENSTEIN',
            'LT'=>'LITHUANIA',
            'LU'=>'LUXEMBOURG',
            'MO'=>'MACAU',
            'MK'=>'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF',
            'MG'=>'MADAGASCAR',
            'MW'=>'MALAWI',
            'MY'=>'MALAYSIA',
            'MV'=>'MALDIVES',
            'ML'=>'MALI',
            'MT'=>'MALTA',
            'MH'=>'MARSHALL ISLANDS',
            'MQ'=>'MARTINIQUE',
            'MR'=>'MAURITANIA',
            'MU'=>'MAURITIUS',
            'YT'=>'MAYOTTE',
            'MX'=>'MEXICO',
            'FM'=>'MICRONESIA, FEDERATED STATES OF',
            'MD'=>'MOLDOVA, REPUBLIC OF',
            'MC'=>'MONACO',
            'MN'=>'MONGOLIA',
            'MS'=>'MONTSERRAT',
            'MA'=>'MOROCCO',
            'MZ'=>'MOZAMBIQUE',
            'MM'=>'MYANMAR',
            'NA'=>'NAMIBIA',
            'NR'=>'NAURU',
            'NP'=>'NEPAL',
            'NL'=>'NETHERLANDS',
            'AN'=>'NETHERLANDS ANTILLES',
            'NC'=>'NEW CALEDONIA',
            'NZ'=>'NEW ZEALAND',
            'NI'=>'NICARAGUA',
            'NE'=>'NIGER',
            'NG'=>'NIGERIA',
            'NU'=>'NIUE',
            'NF'=>'NORFOLK ISLAND',
            'MP'=>'NORTHERN MARIANA ISLANDS',
            'NO'=>'NORWAY',
            'OM'=>'OMAN',
            'PK'=>'PAKISTAN',
            'PW'=>'PALAU',
            'PS'=>'PALESTINIAN TERRITORY, OCCUPIED',
            'PA'=>'PANAMA',
            'PG'=>'PAPUA NEW GUINEA',
            'PY'=>'PARAGUAY',
            'PE'=>'PERU',
            'PH'=>'PHILIPPINES',
            'PN'=>'PITCAIRN',
            'PL'=>'POLAND',
            'PT'=>'PORTUGAL',
            'PR'=>'PUERTO RICO',
            'QA'=>'QATAR',
            'RE'=>'REUNION',
            'RO'=>'ROMANIA',
            'RU'=>'RUSSIAN FEDERATION',
            'RW'=>'RWANDA',
            'SH'=>'SAINT HELENA',
            'KN'=>'SAINT KITTS AND NEVIS',
            'LC'=>'SAINT LUCIA',
            'PM'=>'SAINT PIERRE AND MIQUELON',
            'VC'=>'SAINT VINCENT AND THE GRENADINES',
            'WS'=>'SAMOA',
            'SM'=>'SAN MARINO',
            'ST'=>'SAO TOME AND PRINCIPE',
            'SA'=>'SAUDI ARABIA',
            'SN'=>'SENEGAL',
            'SC'=>'SEYCHELLES',
            'SL'=>'SIERRA LEONE',
            'SG'=>'SINGAPORE',
            'SK'=>'SLOVAKIA',
            'SI'=>'SLOVENIA',
            'SB'=>'SOLOMON ISLANDS',
            'SO'=>'SOMALIA',
            'ZA'=>'SOUTH AFRICA',
            'GS'=>'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS',
            'ES'=>'SPAIN',
            'LK'=>'SRI LANKA',
            'SD'=>'SUDAN',
            'SR'=>'SURINAME',
            'SJ'=>'SVALBARD AND JAN MAYEN',
            'SZ'=>'SWAZILAND',
            'SE'=>'SWEDEN',
            'CH'=>'SWITZERLAND',
            'SY'=>'SYRIAN ARAB REPUBLIC',
            'TW'=>'TAIWAN, PROVINCE OF CHINA',
            'TJ'=>'TAJIKISTAN',
            'TZ'=>'TANZANIA, UNITED REPUBLIC OF',
            'TH'=>'THAILAND',
            'TG'=>'TOGO',
            'TK'=>'TOKELAU',
            'TO'=>'TONGA',
            'TT'=>'TRINIDAD AND TOBAGO',
            'TN'=>'TUNISIA',
            'TR'=>'TURKEY',
            'TM'=>'TURKMENISTAN',
            'TC'=>'TURKS AND CAICOS ISLANDS',
            'TV'=>'TUVALU',
            'UG'=>'UGANDA',
            'UA'=>'UKRAINE',
            'AE'=>'UNITED ARAB EMIRATES',
            'GB'=>'UNITED KINGDOM',
            'US'=>'UNITED STATES',
            'UM'=>'UNITED STATES MINOR OUTLYING ISLANDS',
            'UY'=>'URUGUAY',
            'UZ'=>'UZBEKISTAN',
            'VU'=>'VANUATU',
            'VE'=>'VENEZUELA',
            'VN'=>'VIET NAM',
            'VG'=>'VIRGIN ISLANDS, BRITISH',
            'VI'=>'VIRGIN ISLANDS, U.S.',
            'WF'=>'WALLIS AND FUTUNA',
            'EH'=>'WESTERN SAHARA',
            'YE'=>'YEMEN',
            'YU'=>'YUGOSLAVIA',
            'ZM'=>'ZAMBIA',
            'ZW'=>'ZIMBABWE',
          );

          $currency = array(
             'BD' => 'BDT',
             'BE' => 'EUR',
             'BF' => 'XOF',
             'BG' => 'BGN',
             'BA' => 'BAM',
             'BB' => 'BBD',
             'WF' => 'XPF',
             'BL' => 'EUR',
             'BM' => 'BMD',
             'BN' => 'BND',
             'BO' => 'BOB',
             'BH' => 'BHD',
             'BI' => 'BIF',
             'BJ' => 'XOF',
             'BT' => 'BTN',
             'JM' => 'JMD',
             'BV' => 'NOK',
             'BW' => 'BWP',
             'WS' => 'WST',
             'BQ' => 'USD',
             'BR' => 'BRL',
             'BS' => 'BSD',
             'JE' => 'GBP',
             'BY' => 'BYR',
             'BZ' => 'BZD',
             'RU' => 'RUB',
             'RW' => 'RWF',
             'RS' => 'RSD',
             'TL' => 'USD',
             'RE' => 'EUR',
             'TM' => 'TMT',
             'TJ' => 'TJS',
             'RO' => 'RON',
             'TK' => 'NZD',
             'GW' => 'XOF',
             'GU' => 'USD',
             'GT' => 'GTQ',
             'GS' => 'GBP',
             'GR' => 'EUR',
             'GQ' => 'XAF',
             'GP' => 'EUR',
             'JP' => 'JPY',
             'GY' => 'GYD',
             'GG' => 'GBP',
             'GF' => 'EUR',
             'GE' => 'GEL',
             'GD' => 'XCD',
             'GB' => 'GBP',
             'GA' => 'XAF',
             'SV' => 'USD',
             'GN' => 'GNF',
             'GM' => 'GMD',
             'GL' => 'DKK',
             'GI' => 'GIP',
             'GH' => 'GHS',
             'OM' => 'OMR',
             'TN' => 'TND',
             'JO' => 'JOD',
             'HR' => 'HRK',
             'HT' => 'HTG',
             'HU' => 'HUF',
             'HK' => 'HKD',
             'HN' => 'HNL',
             'HM' => 'AUD',
             'VE' => 'VEF',
             'PR' => 'USD',
             'PS' => 'ILS',
             'PW' => 'USD',
             'PT' => 'EUR',
             'SJ' => 'NOK',
             'PY' => 'PYG',
             'IQ' => 'IQD',
             'PA' => 'PAB',
             'PF' => 'XPF',
             'PG' => 'PGK',
             'PE' => 'PEN',
             'PK' => 'PKR',
             'PH' => 'PHP',
             'PN' => 'NZD',
             'PL' => 'PLN',
             'PM' => 'EUR',
             'ZM' => 'ZMK',
             'EH' => 'MAD',
             'EE' => 'EUR',
             'EG' => 'EGP',
             'ZA' => 'ZAR',
             'EC' => 'USD',
             'IT' => 'EUR',
             'VN' => 'VND',
             'SB' => 'SBD',
             'ET' => 'ETB',
             'SO' => 'SOS',
             'ZW' => 'ZWL',
             'SA' => 'SAR',
             'ES' => 'EUR',
             'ER' => 'ERN',
             'ME' => 'EUR',
             'MD' => 'MDL',
             'MG' => 'MGA',
             'MF' => 'EUR',
             'MA' => 'MAD',
             'MC' => 'EUR',
             'UZ' => 'UZS',
             'MM' => 'MMK',
             'ML' => 'XOF',
             'MO' => 'MOP',
             'MN' => 'MNT',
             'MH' => 'USD',
             'MK' => 'MKD',
             'MU' => 'MUR',
             'MT' => 'EUR',
             'MW' => 'MWK',
             'MV' => 'MVR',
             'MQ' => 'EUR',
             'MP' => 'USD',
             'MS' => 'XCD',
             'MR' => 'MRO',
             'IM' => 'GBP',
             'UG' => 'UGX',
             'TZ' => 'TZS',
             'MY' => 'MYR',
             'MX' => 'MXN',
             'IL' => 'ILS',
             'FR' => 'EUR',
             'IO' => 'USD',
             'SH' => 'SHP',
             'FI' => 'EUR',
             'FJ' => 'FJD',
             'FK' => 'FKP',
             'FM' => 'USD',
             'FO' => 'DKK',
             'NI' => 'NIO',
             'NL' => 'EUR',
             'NO' => 'NOK',
             'NA' => 'NAD',
             'VU' => 'VUV',
             'NC' => 'XPF',
             'NE' => 'XOF',
             'NF' => 'AUD',
             'NG' => 'NGN',
             'NZ' => 'NZD',
             'NP' => 'NPR',
             'NR' => 'AUD',
             'NU' => 'NZD',
             'CK' => 'NZD',
             'XK' => 'EUR',
             'CI' => 'XOF',
             'CH' => 'CHF',
             'CO' => 'COP',
             'CN' => 'CNY',
             'CM' => 'XAF',
             'CL' => 'CLP',
             'CC' => 'AUD',
             'CA' => 'CAD',
             'CG' => 'XAF',
             'CF' => 'XAF',
             'CD' => 'CDF',
             'CZ' => 'CZK',
             'CY' => 'EUR',
             'CX' => 'AUD',
             'CR' => 'CRC',
             'CW' => 'ANG',
             'CV' => 'CVE',
             'CU' => 'CUP',
             'SZ' => 'SZL',
             'SY' => 'SYP',
             'SX' => 'ANG',
             'KG' => 'KGS',
             'KE' => 'KES',
             'SS' => 'SSP',
             'SR' => 'SRD',
             'KI' => 'AUD',
             'KH' => 'KHR',
             'KN' => 'XCD',
             'KM' => 'KMF',
             'ST' => 'STD',
             'SK' => 'EUR',
             'KR' => 'KRW',
             'SI' => 'EUR',
             'KP' => 'KPW',
             'KW' => 'KWD',
             'SN' => 'XOF',
             'SM' => 'EUR',
             'SL' => 'SLL',
             'SC' => 'SCR',
             'KZ' => 'KZT',
             'KY' => 'KYD',
             'SG' => 'SGD',
             'SE' => 'SEK',
             'SD' => 'SDG',
             'DO' => 'DOP',
             'DM' => 'XCD',
             'DJ' => 'DJF',
             'DK' => 'DKK',
             'VG' => 'USD',
             'DE' => 'EUR',
             'YE' => 'YER',
             'DZ' => 'DZD',
             'US' => 'USD',
             'UY' => 'UYU',
             'YT' => 'EUR',
             'UM' => 'USD',
             'LB' => 'LBP',
             'LC' => 'XCD',
             'LA' => 'LAK',
             'TV' => 'AUD',
             'TW' => 'TWD',
             'TT' => 'TTD',
             'TR' => 'TRY',
             'LK' => 'LKR',
             'LI' => 'CHF',
             'LV' => 'EUR',
             'TO' => 'TOP',
             'LT' => 'LTL',
             'LU' => 'EUR',
             'LR' => 'LRD',
             'LS' => 'LSL',
             'TH' => 'THB',
             'TF' => 'EUR',
             'TG' => 'XOF',
             'TD' => 'XAF',
             'TC' => 'USD',
             'LY' => 'LYD',
             'VA' => 'EUR',
             'VC' => 'XCD',
             'AE' => 'AED',
             'AD' => 'EUR',
             'AG' => 'XCD',
             'AF' => 'AFN',
             'AI' => 'XCD',
             'VI' => 'USD',
             'IS' => 'ISK',
             'IR' => 'IRR',
             'AM' => 'AMD',
             'AL' => 'ALL',
             'AO' => 'AOA',
             'AQ' => '',
             'AS' => 'USD',
             'AR' => 'ARS',
             'AU' => 'AUD',
             'AT' => 'EUR',
             'AW' => 'AWG',
             'IN' => 'INR',
             'AX' => 'EUR',
             'AZ' => 'AZN',
             'IE' => 'EUR',
             'ID' => 'IDR',
             'UA' => 'UAH',
             'QA' => 'QAR',
             'MZ' => 'MZN',
          );

        if ( $param == 'country' ){
            $country = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'][3] . $_SERVER['HTTP_ACCEPT_LANGUAGE'][4]);
            return ucfirst(strtolower($countries[strtoupper($country)]));
        }
        if ( $param == 'currency' ){
            return $currency[strtoupper($_SERVER['HTTP_ACCEPT_LANGUAGE'][3] . $_SERVER['HTTP_ACCEPT_LANGUAGE'][4])];
        }
    }

}
