if( typeof core == 'undefined' ) { core = {}; } core['currency'] = { now: 'HKD', exrates: JSON.parse('{"JPY":{"id":"22362","from_cur":"JPY","to_cur":"HKD","exrate":"0.05284","created":"1714181402","order_num":"1"},"CNY":{"id":"22364","from_cur":"CNY","to_cur":"HKD","exrate":"1.14088","created":"1714181402","order_num":"2"},"USD":{"id":"22365","from_cur":"USD","to_cur":"HKD","exrate":"8.18480","created":"1714181402","order_num":"3"},"KRW":{"id":"22369","from_cur":"KRW","to_cur":"HKD","exrate":"0.00640","created":"1714181402","order_num":"4"},"TWD":{"id":"22363","from_cur":"TWD","to_cur":"HKD","exrate":"0.26624","created":"1714181402","order_num":"5"},"GBP":{"id":"22366","from_cur":"GBP","to_cur":"HKD","exrate":"10.34800","created":"1714181402","order_num":"6"},"EUR":{"id":"22367","from_cur":"EUR","to_cur":"HKD","exrate":"8.84000","created":"1714181402","order_num":"7"},"AUD":{"id":"22368","from_cur":"AUD","to_cur":"HKD","exrate":"5.41840","created":"1714181402","order_num":"8"},"CAD":{"id":"13849","from_cur":"CAD","to_cur":"HKD","exrate":"7.00000","created":"1621984260","order_num":"9"},"PLN":{"id":"22","from_cur":"PLN","to_cur":"HKD","exrate":"2.80000","created":null,"order_num":"10"},"HKD":{"id":"1367","from_cur":"HKD","to_cur":"HKD","exrate":"1.00000","created":"1486194758","order_num":"11"}}'), name: function(cur) { switch(cur) { case 'JPY': return '日圓'; case 'TWD': return '新台幣'; case 'CNY': return '人民幣'; case 'USD': return '美元'; case 'HKD': return '港元'; case 'GBP': return '英鎊'; case 'EUR': return '歐元'; case 'AUD': return '澳元'; case 'KRW': return '韓圜'; case 'PLN': return '波蘭元'; case 'CAD': return '加拿大元'; default: return ''; } }, format: function(amt, cur, withfix) { if( typeof withfix == 'undefined' ) { withfix = true; } var dec = core.currency.decimal(cur); var num = parseFloat(amt).toFixed(dec); num = core.currency._commas(num); if( withfix ) { var formatStr = core.currency._formatstr(cur); return formatStr.replace('999', num); } else { return num; } }, amt_text: function(amt, cur) { if( typeof cur == 'undefined' ) { cur = core.currency.now; } return core.currency.format(amt, cur, true); }, amt_symbol: function(amt, cur) { if( typeof cur == 'undefined' ) { cur = core.currency.now; } var dec = core.currency.decimal(cur); var symbol = core.currency.symbol(cur); var num = parseFloat(amt).toFixed(dec); num = core.currency._commas(num); return symbol + num; }, amt_num: function(amt, cur) { if( typeof cur == 'undefined' ) { cur = core.currency.now; } if( amt == '' ) { return ''; } if( isNaN(amt) ) { return ''; } return core.currency.format(amt, cur, false); }, amt_escape: function(amt) { amt = String(amt); if( typeof amt == 'undefined' ) { return ''; } return parseFloat(amt.replace(/,/g, '')); }, exchange: function(amt, fromCur) { var rate = core.currency.exrates[fromCur]['exrate']; return parseFloat(amt) * parseFloat(rate); }, exchange_to: function(amt, toCur) { var rate = core.currency.exrates[toCur]['exrate']; return parseFloat(amt) / parseFloat(rate); }, decimal: function(cur) { if( typeof cur == 'undefined' ) { cur = core.currency.now; } switch(cur) { case 'JPY': case 'TWD': case 'KRW': return 0; default: return 2; } }, prefix: function(cur) { var str = core.currency._formatstr(cur); var splited = str.split('999'); return splited[0]; }, suffix: function(cur) { var str = core.currency._formatstr(cur); var splited = str.split('999'); if( splited.length > 1 ) { return splited[1]; } else { return ''; } }, symbol: function(cur) { switch(cur) { case 'JPY': return '¥'; case 'TWD': return '$'; case 'CNY': return '¥'; case 'USD': return '$'; case 'HKD': return '$'; case 'GBP': return '£'; case 'EUR': return '€'; case 'AUD': return '$'; case 'KRW': return '₩'; case 'PLN': return 'zł'; case 'CAD': return '$'; default: return '$'; } }, from_country: function(country) { switch(country) { case 'jp': return 'JPY'; case 'tw': return 'TWD'; case 'cn': return 'CNY'; case 'us': return 'USD'; case 'hk': return 'HKD'; case 'gb': return 'GBP'; case 'eu': return 'EUR'; case 'au': return 'AUD'; case 'kr': return 'KRW'; case 'pl': return 'PLN'; case 'ca': return 'CAD'; default: return false; } }, _formatstr: function(cur) { switch(cur) { case 'JPY': return '日圓 999 円'; case 'TWD': return '新台幣 $999'; case 'CNY': return '人民幣 ¥999'; case 'USD': return '美元 $999'; case 'HKD': return '港元 $999'; case 'GBP': return '英鎊 £999'; case 'EUR': return '歐元 €999'; case 'AUD': return '澳元 $999'; case 'KRW': return '韓圜 ₩999'; case 'PLN': return '波蘭元 zł999'; case 'CAD': return '加拿大元 $999'; default: return '999'; } }, _commas: function(nStr) { nStr += ''; var x = nStr.split('.'); var x1 = x[0]; var x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } }; if( typeof angular != 'undefined' ) { angular.module('currencyFilters', []). filter('amt_symbol', ['$window', function($window) { return function(input, cur) { if( isNaN(input) || input == '' ) { return ''; } return $window.core.currency.amt_symbol(input, cur); } }]). filter('amt_text', ['$window', function($window) { return function(input, cur) { if( isNaN(input) || input == '' ) { return ''; } return $window.core.currency.amt_text(input, cur); } }]). filter('amt_num', ['$window', function($window) { return function(input, cur) { return $window.core.currency.amt_num(input, cur); } }]). filter('exchange', ['$window', function($window) { return function(input, fromCur) { if( isNaN(input) || input == '' ) { return ''; } return $window.core.currency.exchange(input, fromCur); } }]). filter('exchange_to', ['$window', function($window) { return function(input, toCur) { if( isNaN(input) || input == '' ) { return ''; } return $window.core.currency.exchange_to(input, toCur); } }]). filter('currency_code', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.from_country(input); } }]). filter('currency_prefix', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.prefix(input); } }]). filter('currency_suffix', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.suffix(input); } }]). filter('currency_name', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.name(input); } }]). filter('exrate', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.exrates[input]['exrate']; } }]) .filter('amt_escape', ['$window', function($window) { return function(input) { if( input == '' ) { return ''; } return $window.core.currency.amt_escape(input); } }]); }