mirror of
https://github.com/KubaPro010/fm-dx-webserver.git
synced 2026-07-29 16:29:19 +02:00
507 lines
10 KiB
JavaScript
507 lines
10 KiB
JavaScript
var countries = [
|
|
"Albania",
|
|
"Estonia",
|
|
"Algeria",
|
|
"Ethiopia",
|
|
"Andorra",
|
|
"Angola",
|
|
"Finland",
|
|
"Armenia",
|
|
"France",
|
|
"Ascension Island",
|
|
"Gabon",
|
|
"Austria",
|
|
"Gambia",
|
|
"Azerbaijan",
|
|
"Georgia",
|
|
"Germany",
|
|
"Bahrein",
|
|
"Ghana",
|
|
"Belarus",
|
|
"Gibraltar",
|
|
"Belgium",
|
|
"Greece",
|
|
"Benin",
|
|
"Guinea",
|
|
"Bosnia Herzegovina",
|
|
"Guinea-Bissau",
|
|
"Botswana",
|
|
"Hungary",
|
|
"Bulgaria",
|
|
"Iceland",
|
|
"Burkina Faso",
|
|
"Iraq",
|
|
"Burundi",
|
|
"Ireland",
|
|
"Cabinda",
|
|
"Israel",
|
|
"Cameroon",
|
|
"Italy",
|
|
"Jordan",
|
|
"Cape Verde",
|
|
"Kazakhstan",
|
|
"Central African Republic",
|
|
"Kenya",
|
|
"Chad",
|
|
"Kosovo",
|
|
"Comoros",
|
|
"Kuwait",
|
|
"DR Congo",
|
|
"Kyrgyzstan",
|
|
"Republic of Congo",
|
|
"Latvia",
|
|
"Cote d'Ivoire",
|
|
"Lebanon",
|
|
"Croatia",
|
|
"Lesotho",
|
|
"Cyprus",
|
|
"Liberia",
|
|
"Czechia",
|
|
"Libya",
|
|
"Denmark",
|
|
"Liechtenstein",
|
|
"Djiboutia",
|
|
"Lithuania",
|
|
"Egypt",
|
|
"Luxembourg",
|
|
"Equatorial Guinea",
|
|
"Macedonia",
|
|
"Eritrea",
|
|
"Madagascar",
|
|
"Seychelles",
|
|
"Malawi",
|
|
"Sierra Leone",
|
|
"Mali",
|
|
"Slovakia",
|
|
"Malta",
|
|
"Slovenia",
|
|
"Mauritania",
|
|
"Somalia",
|
|
"Mauritius",
|
|
"South Africa",
|
|
"Moldova",
|
|
"South Sudan",
|
|
"Monaco",
|
|
"Spain",
|
|
"Mongolia",
|
|
"Sudan",
|
|
"Montenegro",
|
|
"Swaziland",
|
|
"Morocco",
|
|
"Sweden",
|
|
"Mozambique",
|
|
"Switzerland",
|
|
"Namibia",
|
|
"Syria",
|
|
"Netherlands",
|
|
"Tajikistan",
|
|
"Niger",
|
|
"Tanzania",
|
|
"Nigeria",
|
|
"Togo",
|
|
"Norway",
|
|
"Tunisia",
|
|
"Oman",
|
|
"Turkey",
|
|
"Palestine",
|
|
"Turkmenistan",
|
|
"Rzeczpospolita Polska",
|
|
"Uganda",
|
|
"Portugal",
|
|
"Ukraine",
|
|
"Qatar",
|
|
"United Arab Emirates",
|
|
"Romania",
|
|
"United Kingdom",
|
|
"Russia",
|
|
"Uzbekistan",
|
|
"Rwanda",
|
|
"Vatican",
|
|
"San Marino",
|
|
"Western Sahara",
|
|
"Sao Tome and Principe",
|
|
"Yemen",
|
|
"Saudi Arabia",
|
|
"Zambia",
|
|
"Senegal",
|
|
"Zimbabwe",
|
|
"Serbia",
|
|
"Anguilla",
|
|
"Guyana",
|
|
"Antigua and Barbuda",
|
|
"Haiti",
|
|
"Argentina",
|
|
"Honduras",
|
|
"Aruba",
|
|
"Jamaica",
|
|
"Bahamas",
|
|
"Martinique",
|
|
"Barbados",
|
|
"Mexico",
|
|
"Belize",
|
|
"Montserrat",
|
|
"Brazil/Bermuda",
|
|
"Brazil/AN",
|
|
"Bolivia",
|
|
"Nicaragua",
|
|
"Brazil",
|
|
"Panama",
|
|
"Canada",
|
|
"Paraguay",
|
|
"Cayman Islands",
|
|
"Peru",
|
|
"Chile",
|
|
"USA/VI/PR",
|
|
"Colombia",
|
|
"St. Kitts",
|
|
"Costa Rica",
|
|
"St. Lucia",
|
|
"Cuba",
|
|
"St. Pierre and Miquelon",
|
|
"Dominica",
|
|
"St. Vincent",
|
|
"Dominican Republic",
|
|
"Suriname",
|
|
"El Salvador",
|
|
"Trinidad and Tobago",
|
|
"Turks and Caicos islands",
|
|
"Falkland Islands",
|
|
"Greenland",
|
|
"Uruguay",
|
|
"Grenada",
|
|
"Venezuela",
|
|
"Guadeloupe",
|
|
"Virgin Islands",
|
|
"Guatemala",
|
|
"Afghanistan",
|
|
"South Korea",
|
|
"Laos",
|
|
"Australia Capital Territory",
|
|
"Macao",
|
|
"Australia New South Wales",
|
|
"Malaysia",
|
|
"Australia Victoria",
|
|
"Maldives",
|
|
"Australia Queensland",
|
|
"Marshall Islands",
|
|
"Australia South Australia",
|
|
"Micronesia",
|
|
"Australia Western Australia",
|
|
"Myanmar",
|
|
"Australia Tasmania",
|
|
"Nauru",
|
|
"Australia Northern Territory",
|
|
"Nepal",
|
|
"Bangladesh",
|
|
"New Zealand",
|
|
"Bhutan",
|
|
"Pakistan",
|
|
"Brunei Darussalam",
|
|
"Papua New Guinea",
|
|
"Cambodia",
|
|
"Philippines",
|
|
"China",
|
|
"Samoa",
|
|
"Singapore",
|
|
"Solomon Islands",
|
|
"Fiji",
|
|
"Sri Lanka",
|
|
"Hong Kong",
|
|
"Taiwan",
|
|
"India",
|
|
"Thailand",
|
|
"Indonesia",
|
|
"Tonga",
|
|
"Iran",
|
|
"Vanuatu",
|
|
"Japan",
|
|
"Vietnam",
|
|
"Kiribati",
|
|
"North Korea",
|
|
"Brazil/Equador"
|
|
]
|
|
|
|
var iso = [
|
|
"AL", "EE",
|
|
"DZ", "ET",
|
|
"AD", "AO",
|
|
"FI", "AM",
|
|
"FR", "SH",
|
|
"GA", "AT",
|
|
"GM", "AZ",
|
|
"GE", "DE",
|
|
"BH", "GH",
|
|
"BY", "GI",
|
|
"BE", "GR",
|
|
"BJ", "GN",
|
|
"BA", "GW",
|
|
"BW", "HU",
|
|
"BG", "IS",
|
|
"BF", "IQ",
|
|
"BI", "IE",
|
|
"--", "IL",
|
|
"CM", "IT",
|
|
"JO", "CV",
|
|
"KZ", "CF",
|
|
"KE", "TD",
|
|
"XK", "KM",
|
|
"KW", "CD",
|
|
"KG", "CG",
|
|
"LV", "CI",
|
|
"LB", "HR",
|
|
"LS", "CY",
|
|
"LR", "CZ",
|
|
"LY", "DK",
|
|
"LI", "DJ",
|
|
"LT", "EG",
|
|
"LU", "GQ",
|
|
"MK", "ER",
|
|
"MG", "SC",
|
|
"MW", "SL",
|
|
"ML", "SK",
|
|
"MT", "SI",
|
|
"MR", "SO",
|
|
"MU", "ZA",
|
|
"MD", "SS",
|
|
"MC", "ES",
|
|
"MN", "SD",
|
|
"ME", "SZ",
|
|
"MA", "SE",
|
|
"MZ", "CH",
|
|
"NA", "SY",
|
|
"NL", "TJ",
|
|
"NE", "TZ",
|
|
"NG", "TG",
|
|
"NO", "TN",
|
|
"OM", "TR",
|
|
"PS", "TM",
|
|
"PL", "UG",
|
|
"PT", "UA",
|
|
"QA", "AE",
|
|
"RO", "GB",
|
|
"RU", "UZ",
|
|
"RW", "VA",
|
|
"SM", "EH",
|
|
"ST", "YE",
|
|
"SA", "ZM",
|
|
"SN", "ZW",
|
|
"RS", "AI",
|
|
"GY", "AG",
|
|
"HT", "AR",
|
|
"HN", "AW",
|
|
"JM", "BS",
|
|
"MQ", "BB",
|
|
"MX", "BZ",
|
|
"MS", "--",
|
|
"--", "BO",
|
|
"NI", "BR",
|
|
"PA", "CA",
|
|
"PY", "KY",
|
|
"PE", "CL",
|
|
"--", "CO",
|
|
"KN", "CR",
|
|
"LC", "CU",
|
|
"PM", "DM",
|
|
"VC", "DO",
|
|
"SR", "SN",
|
|
"TT", "TB",
|
|
"FK", "GL",
|
|
"UY", "GD",
|
|
"VE", "GP",
|
|
"VG", "GT",
|
|
"AF", "KR",
|
|
"LA", "AU",
|
|
"MO", "AU",
|
|
"MY", "AU",
|
|
"MV", "AU",
|
|
"MH", "AU",
|
|
"FM", "AU",
|
|
"MM", "AU",
|
|
"NR", "AU",
|
|
"NP", "BD",
|
|
"NZ", "BT",
|
|
"PK", "BN",
|
|
"PG", "KH",
|
|
"PH", "CN",
|
|
"WS", "SG",
|
|
"SB", "FJ",
|
|
"LK", "HK",
|
|
"TW", "IN",
|
|
"TH", "ID",
|
|
"TO", "IR",
|
|
"VU", "JP",
|
|
"VN", "KI",
|
|
"KP", "--"
|
|
]
|
|
|
|
const rdsEccA0A6Lut = [
|
|
// A0
|
|
[ "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR",
|
|
"USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR", "USA/VI/PR",
|
|
"USA/VI/PR", "", "USA/VI/PR", "USA/VI/PR", ""
|
|
],
|
|
// A1
|
|
[ "", "", "", "", "", "", "", "", "", "",
|
|
"Canada", "Canada", "Canada", "Canada", "Greenland"
|
|
],
|
|
// A2
|
|
[ "Anguilla", "Antigua and Barbuda", "Brazil/Equador", "Falkland Islands", "Barbados",
|
|
"Belize", "Cayman Islands", "Costa Rica", "Cuba", "Argentina",
|
|
"Brazil", "Brazil/Bermuda", "Brazil/AN", "Guadeloupe", "Bahamas"
|
|
],
|
|
// A3
|
|
[ "Bolivia", "Colombia", "Jamaica", "Martinique", "",
|
|
"Paraguay", "Nicaragua", "", "Panama", "Dominica",
|
|
"Dominican Republic", "Chile", "Grenada", "Turks and Caicos islands", "Guyana"
|
|
],
|
|
// A4
|
|
[ "Guatemala", "Honduras", "Aruba", "", "Montserrat",
|
|
"Trinidad and Tobago", "Peru", "Suriname", "Uruguay", "St. Kitts",
|
|
"St. Lucia", "El Salvador", "Haiti", "Venezuela", "Virgin Islands"
|
|
],
|
|
// A5
|
|
[ "", "", "", "", "", "", "", "", "", "",
|
|
"Mexico", "St. Vincent", "Mexico", "Mexico", "Mexico"],
|
|
// A6
|
|
["", "", "", "", "", "", "", "", "", "", "", "", "", "", "St. Pierre and Miquelon"]
|
|
];
|
|
|
|
const rdsEccD0D4Lut = [
|
|
// D0
|
|
[
|
|
"Cameroon", "Central African Republic", "Djiboutia", "Madagascar", "Mali",
|
|
"Angola", "Equatorial Guinea", "Gabon", "Guinea", "South Africa",
|
|
"Burkina Faso", "Republic of Congo", "Togo", "Benin", "Malawi"
|
|
],
|
|
// D1
|
|
[
|
|
"Namibia", "Liberia", "Ghana", "Mauritania", "Sao Tome and Principe",
|
|
"Cape Verde", "Senegal", "Gambia", "Burundi", "Ascension Island",
|
|
"Botswana", "Comoros", "Tanzania", "Ethiopia", "Nigeria"
|
|
],
|
|
// D2
|
|
[
|
|
"Sierra Leone", "Zimbabwe", "Mozambique", "Uganda", "Swaziland",
|
|
"Kenya", "Somalia", "Niger", "Chad", "Guinea-Bissau",
|
|
"DR Congo", "Cote d'Ivoire", "", "Zambia", "Eritrea"
|
|
],
|
|
// D3
|
|
[
|
|
"", "", "Western Sahara", "Cabinda", "Rwanda",
|
|
"Lesotho", "", "Seychelles", "", "Mauritius",
|
|
"", "Sudan", "", "", ""
|
|
],
|
|
// D4
|
|
[
|
|
"", "", "", "", "",
|
|
"", "", "", "", "South Sudan",
|
|
"", "", "", "", ""
|
|
]
|
|
];
|
|
|
|
const rdsEccE0E5Lut = [
|
|
// E0
|
|
[
|
|
"Germany", "Algeria", "Andorra", "Israel", "Italy",
|
|
"Belgium", "Russia", "Palestine", "Albania", "Austria",
|
|
"Hungary", "Malta", "Germany", "", "Egypt"
|
|
],
|
|
// E1
|
|
[
|
|
"Greece", "Cyprus", "San Marino", "Switzerland", "Jordan",
|
|
"Finland", "Luxembourg", "Bulgaria", "Denmark", "Gibraltar",
|
|
"Iraq", "United Kingdom", "Libya", "Romania", "France"
|
|
],
|
|
// E2
|
|
[
|
|
"Morocco", "Czechia", "Rzeczpospolita Polska", "Vatican", "Slovakia",
|
|
"Syria", "Tunisia", "", "Liechtenstein", "Iceland",
|
|
"Monaco", "Lithuania", "Serbia", "Spain", "Norway"
|
|
],
|
|
// E3
|
|
[
|
|
"Montenegro", "Ireland", "Turkey", "", "Tajikistan",
|
|
"", "", "Netherlands", "Latvia", "Lebanon",
|
|
"Azerbaijan", "Croatia", "Kazakhstan", "Sweden", "Belarus"
|
|
],
|
|
// E4
|
|
[
|
|
"Moldova", "Estonia", "Macedonia", "", "",
|
|
"Ukraine", "Kosovo", "Portugal", "Slovenia", "Armenia",
|
|
"Uzbekistan", "Georgia", "", "Turkmenistan", "Bosnia Herzegovina"
|
|
],
|
|
// E5
|
|
[
|
|
"", "", "Kyrgyzstan", "", "",
|
|
"", "", "", "", "",
|
|
"", "", "", "", ""
|
|
]
|
|
];
|
|
|
|
const rdsEccF0F4Lut = [
|
|
// F0
|
|
[
|
|
"Australia Capital Territory", "Australia New South Wales", "Australia Victoria", "Australia Queensland", "Australia South Australia",
|
|
"Australia Western Australia", "Australia Tasmania", "Australia Northern Territory", "Saudi Arabia", "Afghanistan",
|
|
"Myanmar", "China", "North Korea", "Bahrein", "Malaysia"
|
|
],
|
|
// F1
|
|
[
|
|
"Kiribati", "Bhutan", "Bangladesh", "Pakistan", "Fiji",
|
|
"Oman", "Nauru", "Iran", "New Zealand", "Solomon Islands",
|
|
"Brunei Darussalam", "Sri Lanka", "Taiwan", "South Korea", "Hong Kong"
|
|
],
|
|
// F2
|
|
[
|
|
"Kuwait", "Qatar", "Cambodia", "Samoa", "India",
|
|
"Macao", "Vietnam", "Philippines", "Japan", "Singapore",
|
|
"Maldives", "Indonesia", "United Arab Emirates", "Nepal", "Vanuatu"
|
|
],
|
|
// F3
|
|
[
|
|
"Laos", "Thailand", "Tonga", "", "",
|
|
"", "", "China", "Papua New Guinea", "",
|
|
"Yemen", "", "", "Micronesia", "Mongolia"
|
|
],
|
|
// F4
|
|
[
|
|
"", "", "", "", "",
|
|
"", "", "", "China", "",
|
|
"Marshall Islands", "", "", "", ""
|
|
]
|
|
];
|
|
|
|
function rdsEccLookup(pi, ecc) {
|
|
const PI_UNKNOWN = -1;
|
|
|
|
const piCountry = (pi >> 12) & 0xF;
|
|
|
|
if (pi === PI_UNKNOWN || piCountry === 0) {
|
|
return ""
|
|
}
|
|
|
|
const piId = piCountry - 1;
|
|
|
|
const eccRanges = [
|
|
{ min: 0xA0, max: 0xA6, lut: rdsEccA0A6Lut },
|
|
{ min: 0xD0, max: 0xD4, lut: rdsEccD0D4Lut },
|
|
{ min: 0xE0, max: 0xE5, lut: rdsEccE0E5Lut },
|
|
{ min: 0xF0, max: 0xF4, lut: rdsEccF0F4Lut }
|
|
];
|
|
|
|
// Check each range
|
|
for (const range of eccRanges) {
|
|
if (ecc >= range.min && ecc <= range.max) {
|
|
const eccId = ecc - range.min;
|
|
return range.lut[eccId][piId];
|
|
}
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
module.exports = {
|
|
rdsEccLookup,
|
|
iso,
|
|
countries
|
|
}; |