<?php

class Service_HjtwApi {

    public static $exchangeHJTWPP = array(
        '13' => array(//澳大利亞
            array(
                'code' => 'SYD',
                'ref' => 'AUS',
                'reg' => '/^[01249].*$/'
            ),
            array(
                'code' => 'MEL',
                'ref' => 'AUS',
                'reg' => '/^[35678].*$/'
            ),
			
        ),
        '14' => array(//奧地利
            array(
                'code' => 'VIE',
                'ref' => 'AUT',
                'reg' => ''
            )
        ),
        '10' => array(//阿根廷
            array(
                'code' => 'BUE',
                'ref' => 'ARG',
                'reg' => ''
            )
        ),
        '22' => array(//比利時
            array(
                'code' => 'BUR',
                'ref' => 'BEL',
                'reg' => ''
            )
        ),
        '33' => array(//巴西
            array(
                'code' => 'RIO',
                'ref' => 'BRA',
                'reg' => ''
            )
        ),
        '18' => array(//巴林
            array(
                'code' => 'BAH',
                'ref' => 'BHR',
                'reg' => ''
            )
        ),
        '41' => array(//加拿大
            array(
                'code' => 'YVR',
                'ref' => 'CAN',
                'reg' => ''
            )
        ),
        '81' => array(//芬蘭
            array(
                'code' => 'HEL',
                'ref' => 'FIN',
                'reg' => ''
            )
        ),
        '82' => array(//法國
            array(
                'code' => 'PAR',
                'ref' => 'FRA',
                'reg' => ''
            )
        ),
        '92' => array(//希臘
            array(
                'code' => 'ATH',
                'ref' => 'GRC',
                'reg' => ''
            )
        ),
        '89' => array(//德國
            array(
                'code' => 'FRA',
                'ref' => 'DEU',
                'reg' => ''
            )
        ),
        '252' => array(//英國
            array(
                'code' => 'LAL',
                'ref' => 'GBR',
                'reg' => ''
            )
        ),
        '109' => array(//印度
            array(
                'code' => 'CCU',
                'ref' => 'IND',
                'reg' => ''
            )
        ),
        '110' => array(//印尼
            array(
                'code' => 'JKT',
                'ref' => 'IDN',
                'reg' => ''
            )
        ),
        '113' => array(// 愛爾蘭
            array(
                'code' => 'DUB',
                'ref' => 'IRL',
                'reg' => ''
            )
        ),
        '115' => array(// 義大利
            array(
                'code' => 'MIL',
                'ref' => 'ITA',
                'reg' => ''
            )
        ),
        '118' => array(//  日本
            array(
                'code' => 'NAH',
                'ref' => 'JPN',
                'reg' => '/^90.*$/',
            ),
            array(
                'code' => 'KWS',
                'ref' => 'JPN',
                'reg' => ''
            )
        ),
        '128' => array(// 科威特
            array(
                'code' => 'KWI',
                'ref' => 'KWT',
                'reg' => ''
            )
        ),
        '138' => array(// 盧森堡
            array(
                'code' => 'LUX',
                'ref' => 'LUX',
                'reg' => ''
            )
        ),
        '144' => array(// 馬來西亞
            array(
                'code' => 'KUL',
                'ref' => 'MYS',
                'reg' => ''
            )
        ),
        '154' => array(//  墨西哥
            array(
                'code' => 'MEX',
                'ref' => 'MEX',
                'reg' => ''
            )
        ),
        '168' => array(// 荷蘭
            array(
                'code' => 'AMS',
                'ref' => 'NLD',
                'reg' => ''
            )
        ),
        '172' => array(// 紐西蘭
            array(
                'code' => 'AKL',
                'ref' => 'NZL',
                'reg' => ''
            )
        ),
        '182' => array(// 挪威
            array(
                'code' => 'OSL',
                'ref' => 'NOR',
                'reg' => ''
            )
        ),
        '183' => array(// 阿曼
            array(
                'code' => 'MCT',
                'ref' => 'OMN',
                'reg' => ''
            )
        ),
        '184' => array(// 巴基斯坦
            array(
                'code' => 'KHI',
                'ref' => 'PAK',
                'reg' => ''
            )
        ),
        '191' => array(// 菲律賓
            array(
                'code' => 'MNL',
                'ref' => 'PHL',
                'reg' => ''
            )
        ),
        '197' => array(// 卡達
            array(
                'code' => 'DOH',
                'ref' => 'QAT',
                'reg' => ''
            )
        ),
        '208' => array(// 沙烏地阿拉伯
            array(
                'code' => 'RUH',
                'ref' => 'SAU',
                'reg' => '/^1.*$/',
            ),
            array(
                'code'=>'JED',
                'ref' => 'SAU',
                'reg'=>'/^2.*$/'
            ),
            array(
                'code'=>'DMN',
                'ref' => 'SAU',
                'reg'=>'/^3.*$/'
            ),
        ),
        '214' => array(// 新加坡
            array(
                'code' => 'SIN',
                'ref' => 'SGP',
                'reg' => ''
            )
        ),
        '220' => array(//  南非
            array(
                'code' => 'JNB',
                'ref' => 'ZAF',
                'reg' => ''
            )
        ),
        '125' => array(//  韓國
            array(
                'code' => 'SEL',
                'ref' => 'KOR',
                'reg' => ''
            )
        ),
        '221' => array(// 西班牙
            array(
                'code' => 'MAD',
                'ref' => 'ESP',
                'reg' => ''
            )
        ),
        '230' => array(// 瑞士
            array(
                'code' => 'ZRH',
                'ref' => 'CHE',
                'reg' => ''
            )
        ),
        '229' => array(// 瑞典
            array(
                'code' => 'STO',
                'ref' => 'SWE',
                'reg' => ''
            )
        ),
        '236' => array(// 泰國
            array(
                'code' => 'BKK',
                'ref' => 'THA',
                'reg' => ''
            )
        ),
        '251' => array(// 阿拉伯聯合大公國
            array(
                'code' => 'DXB',
                'ref' => 'UAE',
                'reg' => ''
            )
        ),
        '253' => array(// 美國
            array(
                'code' => 'JFK',
                'ref' => 'USA',
                'reg' => '/^[0123].*$/'
            ),
             array(
                'code' => 'ORD',
                'ref' => 'USA',
                'reg' => '/^[456].*$/'
            ),
            array(
                'code' => 'LAX',
                'ref' => 'USA',
                'reg' => '/^[789].*$/'
            ),
            
        ),
        '260' => array(// 越南
            array(
                'code' => 'SGN',
                'ref' => 'VNM',
                'reg' => ''
            )
        ),
        '201' => array(// 俄羅斯
            array(
                'code' => 'MOW',
                'ref' => 'RUS',
                'reg' => ''
            )
        ),
        '245' => array(// 土耳其
            array(
                'code' => 'IST',
                'ref' => 'TUR',
                'reg' => ''
            )
        ),
        '71' => array(// 埃及
            array(
                'code' => 'CAI',
                'ref' => 'EGY',
                'reg' => ''
            )
        ), 
        '48' => array(// 智利
            array(
                'code' => 'SCL',
                'ref' => 'CHL',
                'reg' => ''
            )
        ),
        '259' => array(// 委內瑞拉
            array(
                'code' => 'MAI',
                'ref' => 'VEN',
                'reg' => ''
            )
        ),
        '192' => array(// 波蘭
            array(
                'code' => 'WAW',
                'ref' => 'POL',
                'reg' => ''
            )
        ),
    );
public static $exchangeHJTWPG = array(
        '13' => array(//澳大利亞
            array(
                'code' => 'SYDR',
                'ref' => 'AUS',
                'reg' => '/^[01249].*$/'
            ),
            array(
                'code' => 'MELR',
                'ref' => 'AUS',
                'reg' => '/^[35678].*$/'
            )
        ),
        '14' => array(//奧地利
            array(
                'code' => 'VIE',
                'ref' => 'AUT',
                'reg' => ''
            )
        ),
        '10' => array(//阿根廷
            array(
                'code' => 'BUE',
                'ref' => 'ARG',
                'reg' => ''
            )
        ),
        '22' => array(//比利時
            array(
                'code' => 'BUR',
                'ref' => 'BEL',
                'reg' => ''
            )
        ),
        '33' => array(//巴西
            array(
                'code' => 'RIO',
                'ref' => 'BRA',
                'reg' => ''
            )
        ),
        '18' => array(//巴林
            array(
                'code' => 'BAH',
                'ref' => 'BHR',
                'reg' => ''
            )
        ),
        '41' => array(//加拿大
            array(
                'code' => 'YVR',
                'ref' => 'CAN',
                'reg' => ''
            )
        ),
        '81' => array(//芬蘭
            array(
                'code' => 'HEL',
                'ref' => 'FIN',
                'reg' => ''
            )
        ),
        '82' => array(//法國
            array(
                'code' => 'PAR',
                'ref' => 'FRA',
                'reg' => ''
            )
        ),
        '92' => array(//希臘
            array(
                'code' => 'ATH',
                'ref' => 'GRC',
                'reg' => ''
            )
        ),
        '89' => array(//德國
            array(
                'code' => 'FRA',
                'ref' => 'DEU',
                'reg' => ''
            )
        ),
        '252' => array(//英國
            array(
                'code' => 'LAL',
                'ref' => 'GBR',
                'reg' => ''
            )
        ),
        '109' => array(//印度
            array(
                'code' => 'CCU',
                'ref' => 'IND',
                'reg' => ''
            )
        ),
        '110' => array(//印尼
            array(
                'code' => 'JKT',
                'ref' => 'IDN',
                'reg' => ''
            )
        ),
        '113' => array(// 愛爾蘭
            array(
                'code' => 'DUB',
                'ref' => 'IRL',
                'reg' => ''
            )
        ),
        '115' => array(// 義大利
            array(
                'code' => 'MIL',
                'ref' => 'ITA',
                'reg' => ''
            )
        ),
        '118' => array(//  日本
            array(
                'code' => 'NAH',
                'ref' => 'JPN',
                'reg' => '/^90.*$/',
            ),
            array(
                'code' => 'KWS',
                'ref' => 'JPN',
                'reg' => ''
            )
        ),
        '128' => array(// 科威特
            array(
                'code' => 'KWI',
                'ref' => 'KWT',
                'reg' => ''
            )
        ),
        '138' => array(// 盧森堡
            array(
                'code' => 'LUX',
                'ref' => 'LUX',
                'reg' => ''
            )
        ),
        '144' => array(// 馬來西亞
            array(
                'code' => 'KUL',
                'ref' => 'MYS',
                'reg' => ''
            )
        ),
        '154' => array(//  墨西哥
            array(
                'code' => 'MEX',
                'ref' => 'MEX',
                'reg' => ''
            )
        ),
        '168' => array(// 荷蘭
            array(
                'code' => 'AMS',
                'ref' => 'NLD',
                'reg' => ''
            )
        ),
        '172' => array(// 紐西蘭
            array(
                'code' => 'AKL',
                'ref' => 'NZL',
                'reg' => ''
            )
        ),
        '182' => array(// 挪威
            array(
                'code' => 'OSL',
                'ref' => 'NOR',
                'reg' => ''
            )
        ),
        '183' => array(// 阿曼
            array(
                'code' => 'MCT',
                'ref' => 'OMN',
                'reg' => ''
            )
        ),
        '184' => array(// 巴基斯坦
            array(
                'code' => 'KHI',
                'ref' => 'PAK',
                'reg' => ''
            )
        ),
        '191' => array(// 菲律賓
            array(
                'code' => 'MNL',
                'ref' => 'PHL',
                'reg' => ''
            )
        ),
        '197' => array(// 卡達
            array(
                'code' => 'DOH',
                'ref' => 'QAT',
                'reg' => ''
            )
        ),
        '208' => array(// 沙烏地阿拉伯
            array(
                'code' => 'RUH',
                'ref' => 'SAU',
                'reg' => '/^1.*$/',
            ),
            array(
                'code'=>'JED',
                'ref' => 'SAU',
                'reg'=>'/^2.*$/'
            ),
            array(
                'code'=>'DMN',
                'ref' => 'SAU',
                'reg'=>'/^3.*$/'
            ),
        ),
        '214' => array(// 新加坡
            array(
                'code' => 'SIN',
                'ref' => 'SGP',
                'reg' => ''
            )
        ),
        '220' => array(//  南非
            array(
                'code' => 'JNB',
                'ref' => 'ZAF',
                'reg' => ''
            )
        ),
        '125' => array(//  韓國
            array(
                'code' => 'SEL',
                'ref' => 'KOR',
                'reg' => ''
            )
        ),
        '221' => array(// 西班牙
            array(
                'code' => 'MAD',
                'ref' => 'ESP',
                'reg' => ''
            )
        ),
        '230' => array(// 瑞士
            array(
                'code' => 'ZRH',
                'ref' => 'CHE',
                'reg' => ''
            )
        ),
        '229' => array(// 瑞典
            array(
                'code' => 'STO',
                'ref' => 'SWE',
                'reg' => ''
            )
        ),
        '236' => array(// 泰國
            array(
                'code' => 'BKK',
                'ref' => 'THA',
                'reg' => ''
            )
        ),
        '251' => array(// 阿拉伯聯合大公國
            array(
                'code' => 'DXB',
                'ref' => 'UAE',
                'reg' => ''
            )
        ),
        '253' => array(// 美國
            array(
                'code' => 'JFKR',
                'ref' => 'USA',
                'reg' => '/^[0123].*$/'
            ),
             array(
                'code' => 'ORDR',
                'ref' => 'USA',
                'reg' => '/^[456].*$/'
            ),
            array(
                'code' => 'LAXR',
                'ref' => 'USA',
                'reg' => '/^[789].*$/'
            ),
            
        ),
        '260' => array(// 越南
            array(
                'code' => 'SGN',
                'ref' => 'VNM',
                'reg' => ''
            )
        ),
        '201' => array(// 俄羅斯
            array(
                'code' => 'MOW',
                'ref' => 'RUS',
                'reg' => ''
            )
        ),
        '245' => array(// 土耳其
            array(
                'code' => 'IST',
                'ref' => 'TUR',
                'reg' => ''
            )
        ),
        '71' => array(// 埃及
            array(
                'code' => 'CAI',
                'ref' => 'EGY',
                'reg' => ''
            )
        ), 
        '48' => array(// 智利
            array(
                'code' => 'SCL',
                'ref' => 'CHL',
                'reg' => ''
            )
        ),
        '259' => array(// 委內瑞拉
            array(
                'code' => 'MAI',
                'ref' => 'VEN',
                'reg' => ''
            )
        ),
        '192' => array(// 波蘭
            array(
                'code' => 'WAW',
                'ref' => 'POL',
                'reg' => ''
            )
        ),
    );
    public static  function getCode($contryId,$postCode,$smCode){
		$exchangeRull=array();
		if($smCode=='TWPG'){
			$exchangeRull=self::$exchangeHJTWPG;
		}elseif($smCode=='TWPP'){
			$exchangeRull=self::$exchangeHJTWPP;
		}else{
			return '';
		}
        if(!isset($exchangeRull[$contryId])){
            return '';
        }
        $returnCode='';
        foreach($exchangeRull[$contryId] as $codeList){
           if($codeList['reg']){
               if(preg_match($codeList['reg'], $postCode)){
                   $returnCode=$codeList['code'];
                   break;
               }
           }else{
               $returnCode=$codeList['code'];
           }
        }
        return $returnCode;
    }
    public static  function getReferred($contryId,$postCode,$smCode){
		$exchangeRull=array();
		if($smCode=='TWPG'){
			$exchangeRull=self::$exchangeHJTWPG;
		}elseif($smCode=='TWPP'){
			$exchangeRull=self::$exchangeHJTWPP;
		}else{
			return '';
		}
        if(!isset($exchangeRull[$contryId])){
            return '';
        }
        $returnRef='';
        foreach($exchangeRull[$contryId] as $codeList){
           if($codeList['reg']){
               if(preg_match($codeList['reg'], $postCode)){
                   $returnRef=$codeList['ref'];
                   break;
               }
           }else{
               $returnRef=$codeList['ref'];
           }
        }
        return $returnRef;
    }
}
