Cleanups, reformatting, a few bugfixes, add sort-by-country.

This commit is contained in:
Oliver Jowett 2015-09-01 12:19:23 +01:00
parent 7bebcc558f
commit b5960fd44a
5 changed files with 255 additions and 227 deletions

View file

@ -99,7 +99,8 @@ ShowClocks = true;
// Controls page title, righthand pane when nothing is selected // Controls page title, righthand pane when nothing is selected
PageName = "DUMP1090"; PageName = "DUMP1090";
// Path to country flags subfolder // Show country flags by ICAO addresses?
flag_dir = "flags-tiny"; ShowFlags = true;
// Path to country flags (can be a relative or absolute URL; include a trailing /)
FlagPath = "flags-tiny/";

View file

@ -4,191 +4,211 @@
// install the flag images in flags-tiny subdirectory. // install the flag images in flags-tiny subdirectory.
var ICAO_Codes = [ var ICAO_Codes = [
{start:0x700000, end:0x701000, Country: "Afghanistan", icon_fn: "Afghanistan.png"}, {start:0x700000, end:0x701000, country: "Afghanistan", flag_image: "Afghanistan.png"},
{start:0x501000, end:0x501400, Country: "Albania", icon_fn: "Albania.png"}, {start:0x501000, end:0x501400, country: "Albania", flag_image: "Albania.png"},
{start:0x0A0000, end:0x0A8000, Country: "Algeria", icon_fn: "Algeria.png"}, {start:0x0A0000, end:0x0A8000, country: "Algeria", flag_image: "Algeria.png"},
{start:0x090000, end:0x091000, Country: "Angola", icon_fn: "Angola.png"}, {start:0x090000, end:0x091000, country: "Angola", flag_image: "Angola.png"},
{start:0x0CA000, end:0x0CA400, Country: "Antigua and Barbuda", icon_fn: "Antigua_and_Barbuda.png"}, {start:0x0CA000, end:0x0CA400, country: "Antigua and Barbuda", flag_image: "Antigua_and_Barbuda.png"},
{start:0xE00000, end:0xE40000, Country: "Argentina", icon_fn: "Argentina.png"}, {start:0xE00000, end:0xE40000, country: "Argentina", flag_image: "Argentina.png"},
{start:0x600000, end:0x600400, Country: "Armenia", icon_fn: "Armenia.png"}, {start:0x600000, end:0x600400, country: "Armenia", flag_image: "Armenia.png"},
{start:0x7C0000, end:0x800000, Country: "Australia", icon_fn: "Australia.png"}, {start:0x7C0000, end:0x800000, country: "Australia", flag_image: "Australia.png"},
{start:0x440000, end:0x448000, Country: "Austria", icon_fn: "Austria.png"}, {start:0x440000, end:0x448000, country: "Austria", flag_image: "Austria.png"},
{start:0x600800, end:0x600C00, Country: "Azerbaijan", icon_fn: "Azerbaijan.png"}, {start:0x600800, end:0x600C00, country: "Azerbaijan", flag_image: "Azerbaijan.png"},
{start:0x0A8000, end:0x0A9000, Country: "Bahamas", icon_fn: "Bahamas.png"}, {start:0x0A8000, end:0x0A9000, country: "Bahamas", flag_image: "Bahamas.png"},
{start:0x894000, end:0x895000, Country: "Bahrain", icon_fn: "Bahrain.png"}, {start:0x894000, end:0x895000, country: "Bahrain", flag_image: "Bahrain.png"},
{start:0x702000, end:0x703000, Country: "Bangladesh", icon_fn: "Bangladesh.png"}, {start:0x702000, end:0x703000, country: "Bangladesh", flag_image: "Bangladesh.png"},
{start:0x0AA000, end:0x0AA400, Country: "Barbados", icon_fn: "Barbados.png"}, {start:0x0AA000, end:0x0AA400, country: "Barbados", flag_image: "Barbados.png"},
{start:0x510000, end:0x510400, Country: "Belarus", icon_fn: "Belarus.png"}, {start:0x510000, end:0x510400, country: "Belarus", flag_image: "Belarus.png"},
{start:0x448000, end:0x450000, Country: "Belgium", icon_fn: "Belgium.png"}, {start:0x448000, end:0x450000, country: "Belgium", flag_image: "Belgium.png"},
{start:0x0AB000, end:0x0AB400, Country: "Belize", icon_fn: "Belize.png"}, {start:0x0AB000, end:0x0AB400, country: "Belize", flag_image: "Belize.png"},
{start:0x094000, end:0x094400, Country: "Benin", icon_fn: "Benin.png"}, {start:0x094000, end:0x094400, country: "Benin", flag_image: "Benin.png"},
{start:0x400080, end:0x4000FF, Country: "Bermuda", icon_fn: "Bermuda.png"}, {start:0x400080, end:0x4001C0, country: "Bermuda", flag_image: "Bermuda.png"},
{start:0x400100, end:0x40017F, Country: "Bermuda", icon_fn: "Bermuda.png"}, {start:0x424000, end:0x424100, country: "Bermuda", flag_image: "Bermuda.png"},
{start:0x400180, end:0x4001BF, Country: "Bermuda", icon_fn: "Bermuda.png"}, {start:0x680000, end:0x680400, country: "Bhutan", flag_image: "Bhutan.png"},
{start:0x424000, end:0x4240FF, Country: "Bermuda", icon_fn: "Bermuda.png"}, {start:0xE94000, end:0xE95000, country: "Bolivia", flag_image: "Bolivia.png"},
{start:0x680000, end:0x680400, Country: "Bhutan", icon_fn: "Bhutan.png"}, {start:0x513000, end:0x513400, country: "Bosnia", flag_image: "Bosnia.png"},
{start:0xE94000, end:0xE95000, Country: "Bolivia", icon_fn: "Bolivia.png"}, {start:0x030000, end:0x030400, country: "Botswana", flag_image: "Botswana.png"},
{start:0x513000, end:0x513400, Country: "Bosnia", icon_fn: "Bosnia.png"}, {start:0xE40000, end:0xE80000, country: "Brazil", flag_image: "Brazil.png"},
{start:0x030000, end:0x030400, Country: "Botswana", icon_fn: "Botswana.png"}, {start:0x895000, end:0x895400, country: "Brunei", flag_image: "Brunei.png"},
{start:0xE40000, end:0xE80000, Country: "Brazil", icon_fn: "Brazil.png"}, {start:0x450000, end:0x458000, country: "Bulgaria", flag_image: "Bulgaria.png"},
{start:0x895000, end:0x895400, Country: "Brunei", icon_fn: "Brunei.png"}, {start:0x09C000, end:0x09D000, country: "Burkina Faso", flag_image: "Burkina_Faso.png"},
{start:0x450000, end:0x458000, Country: "Bulgaria", icon_fn: "Bulgaria.png"}, {start:0x032000, end:0x033000, country: "Burundi", flag_image: "Burundi.png"},
{start:0x09C000, end:0x09D000, Country: "Burkina Faso", icon_fn: "Burkina_Faso.png"}, {start:0x038000, end:0x039000, country: "Cote d'Ivoire", flag_image: "Cote_d_Ivoire.png"},
{start:0x032000, end:0x033000, Country: "Burundi", icon_fn: "Burundi.png"}, {start:0x70E000, end:0x70F000, country: "Cambodia", flag_image: "Cambodia.png"},
{start:0x038000, end:0x039000, Country: "Cote d'Ivoire", icon_fn: "Cote_d_Ivoire.png"}, {start:0x034000, end:0x035000, country: "Cameroon", flag_image: "Cameroon.png"},
{start:0x70E000, end:0x70F000, Country: "Cambodia", icon_fn: "Cambodia.png"}, {start:0xC00000, end:0xC40000, country: "Canada", flag_image: "Canada.png"},
{start:0x034000, end:0x035000, Country: "Cameroon", icon_fn: "Cameroon.png"}, {start:0x096000, end:0x096400, country: "Cape Verde", flag_image: "Cape_Verde.png"},
{start:0xC00000, end:0xC40000, Country: "Canada", icon_fn: "Canada.png"}, {start:0x06C000, end:0x06D000, country: "Central African Republic", flag_image: "Central_African_Republic.png"},
{start:0x096000, end:0x096400, Country: "Cape Verde", icon_fn: "Cape_Verde.png"}, {start:0x084000, end:0x085000, country: "Chad", flag_image: "Chad.png"},
{start:0x06C000, end:0x06D000, Country: "Central African Republic", icon_fn: "Central_African_Republic.png"}, {start:0xE80000, end:0xE81000, country: "Chile", flag_image: "Chile.png"},
{start:0x084000, end:0x085000, Country: "Chad", icon_fn: "Chad.png"}, {start:0x780000, end:0x7C0000, country: "China", flag_image: "China.png"},
{start:0xE80000, end:0xE81000, Country: "Chile", icon_fn: "Chile.png"}, {start:0x0AC000, end:0x0AD000, country: "Colombia", flag_image: "Colombia.png"},
{start:0x780000, end:0x7C0000, Country: "China", icon_fn: "China.png"}, {start:0x035000, end:0x035400, country: "Comoros", flag_image: "Comoros.png"},
{start:0x0AC000, end:0x0AD000, Country: "Colombia", icon_fn: "Colombia.png"}, {start:0x036000, end:0x037000, country: "Democratic Republic of the Congo", flag_image: "Democratic_Republic_of_the_Congo.png"},
{start:0x035000, end:0x035400, Country: "Comoros", icon_fn: "Comoros.png"}, {start:0x901000, end:0x901400, country: "Cook Islands", flag_image: "Cook_Islands.png"},
{start:0x036000, end:0x037000, Country: "Democratic Republic of the Congo", icon_fn: "Democratic_Republic_of_the_Congo.png"}, {start:0x0AE000, end:0x0AF000, country: "Costa Rica", flag_image: "Costa_Rica.png"},
{start:0x901000, end:0x901400, Country: "Cook Islands", icon_fn: "Cook_Islands.png"}, {start:0x501C00, end:0x502000, country: "Croatia", flag_image: "Croatia.png"},
{start:0x0AE000, end:0x0AF000, Country: "Costa Rica", icon_fn: "Costa_Rica.png"}, {start:0x0B0000, end:0x0B1000, country: "Cuba", flag_image: "Cuba.png"},
{start:0x501C00, end:0x502000, Country: "Croatia", icon_fn: "Croatia.png"}, {start:0x4C8000, end:0x4C8400, country: "Cyprus", flag_image: "Cyprus.png"},
{start:0x0B0000, end:0x0B1000, Country: "Cuba", icon_fn: "Cuba.png"}, {start:0x498000, end:0x4A0000, country: "Czech Republic", flag_image: "Czech_Republic.png"},
{start:0x4C8000, end:0x4C8400, Country: "Cyprus", icon_fn: "Cyprus.png"}, {start:0x720000, end:0x728000, country: "Democratic People's Republic of Korea", flag_image: "North_Korea.png"},
{start:0x498000, end:0x4A0000, Country: "Czech Republic", icon_fn: "Czech_Republic.png"}, {start:0x08C000, end:0x08D000, country: "Democratic Republic of the Congo", flag_image: "Democratic_Republic_of_the_Congo.png"},
{start:0x720000, end:0x728000, Country: "Democratic People's Republic of Korea", icon_fn: "North_Korea.png"}, {start:0x458000, end:0x460000, country: "Denmark", flag_image: "Denmark.png"},
{start:0x08C000, end:0x08D000, Country: "Democratic Republic of the Congo", icon_fn: "Democratic_Republic_of_the_Congo.png"}, {start:0x098000, end:0x098400, country: "Djibouti", flag_image: "Djibouti.png"},
{start:0x458000, end:0x460000, Country: "Denmark", icon_fn: "Denmark.png"}, {start:0x0C4000, end:0x0C5000, country: "Dominican Republic", flag_image: "Dominican_Republic.png"},
{start:0x098000, end:0x098400, Country: "Djibouti", icon_fn: "Djibouti.png"}, {start:0xE84000, end:0xE85000, country: "Ecuador", flag_image: "Ecuador.png"},
{start:0x0C4000, end:0x0C5000, Country: "Dominican Republic", icon_fn: "Dominican_Republic.png"}, {start:0x010000, end:0x018000, country: "Egypt", flag_image: "Egypt.png"},
{start:0xE84000, end:0xE85000, Country: "Ecuador", icon_fn: "Ecuador.png"}, {start:0x0B2000, end:0x0B3000, country: "El Salvador", flag_image: "El_Salvador.png"},
{start:0x010000, end:0x018000, Country: "Egypt", icon_fn: "Egypt.png"}, {start:0x042000, end:0x043000, country: "Equatorial Guinea", flag_image: "Equatorial_Guinea.png"},
{start:0x0B2000, end:0x0B3000, Country: "El Salvador", icon_fn: "El_Salvador.png"}, {start:0x202000, end:0x202400, country: "Eritrea", flag_image: "Eritrea.png"},
{start:0x042000, end:0x043000, Country: "Equatorial Guinea", icon_fn: "Equatorial_Guinea.png"}, {start:0x511000, end:0x511400, country: "Estonia", flag_image: "Estonia.png"},
{start:0x202000, end:0x202400, Country: "Eritrea", icon_fn: "Eritrea.png"}, {start:0x040000, end:0x041000, country: "Ethiopia", flag_image: "Ethiopia.png"},
{start:0x511000, end:0x511400, Country: "Estonia", icon_fn: "Estonia.png"}, {start:0xC88000, end:0xC89000, country: "Fiji", flag_image: "Fiji.png"},
{start:0x040000, end:0x041000, Country: "Ethiopia", icon_fn: "Ethiopia.png"}, {start:0x460000, end:0x468000, country: "Finland", flag_image: "Finland.png"},
{start:0xC88000, end:0xC89000, Country: "Fiji", icon_fn: "Fiji.png"}, {start:0x380000, end:0x3C0000, country: "France", flag_image: "France.png"},
{start:0x460000, end:0x468000, Country: "Finland", icon_fn: "Finland.png"}, {start:0x03E000, end:0x03F000, country: "Gabon", flag_image: "Gabon.png"},
{start:0x380000, end:0x3C0000, Country: "France", icon_fn: "France.png"}, {start:0x09A000, end:0x09B000, country: "Gambia", flag_image: "Gambia.png"},
{start:0x03E000, end:0x03F000, Country: "Gabon", icon_fn: "Gabon.png"}, {start:0x514000, end:0x514400, country: "Georgia", flag_image: "Georgia.png"},
{start:0x09A000, end:0x09B000, Country: "Gambia", icon_fn: "Gambia.png"}, {start:0x3C0000, end:0x400000, country: "Germany", flag_image: "Germany.png"},
{start:0x514000, end:0x514400, Country: "Georgia", icon_fn: "Georgia.png"}, {start:0x044000, end:0x045000, country: "Ghana", flag_image: "Ghana.png"},
{start:0x3C0000, end:0x400000, Country: "Germany", icon_fn: "Germany.png"}, {start:0x468000, end:0x470000, country: "Greece", flag_image: "Greece.png"},
{start:0x044000, end:0x045000, Country: "Ghana", icon_fn: "Ghana.png"}, {start:0x0CC000, end:0x0CC400, country: "Grenada", flag_image: "Grenada.png"},
{start:0x468000, end:0x470000, Country: "Greece", icon_fn: "Greece.png"}, {start:0x0B4000, end:0x0B5000, country: "Guatemala", flag_image: "Guatemala.png"},
{start:0x0CC000, end:0x0CC400, Country: "Grenada", icon_fn: "Grenada.png"}, {start:0x046000, end:0x047000, country: "Guinea", flag_image: "Guinea.png"},
{start:0x0B4000, end:0x0B5000, Country: "Guatemala", icon_fn: "Guatemala.png"}, {start:0x048000, end:0x048400, country: "Guinea Bissau", flag_image: "Guinea_Bissau.png"},
{start:0x046000, end:0x047000, Country: "Guinea", icon_fn: "Guinea.png"}, {start:0x0B6000, end:0x0B7000, country: "Guyana", flag_image: "Guyana.png"},
{start:0x048000, end:0x048400, Country: "Guinea Bissau", icon_fn: "Guinea_Bissau.png"}, {start:0x0B8000, end:0x0B9000, country: "Haiti", flag_image: "Haiti.png"},
{start:0x0B6000, end:0x0B7000, Country: "Guyana", icon_fn: "Guyana.png"}, {start:0x0BA000, end:0x0BB000, country: "Honduras", flag_image: "Honduras.png"},
{start:0x0B8000, end:0x0B9000, Country: "Haiti", icon_fn: "Haiti.png"}, {start:0x470000, end:0x478000, country: "Hungary", flag_image: "Hungary.png"},
{start:0x0BA000, end:0x0BB000, Country: "Honduras", icon_fn: "Honduras.png"}, {start:0xF00000, end:0xF08000, country: "blank", flag_image: "blank.png"},
{start:0x470000, end:0x478000, Country: "Hungary", icon_fn: "Hungary.png"}, {start:0xF09000, end:0xF09400, country: "blank", flag_image: "blank.png"},
{start:0xF00000, end:0xF08000, Country: "blank", icon_fn: "blank.png"}, {start:0x4CC000, end:0x4CD000, country: "Iceland", flag_image: "Iceland.png"},
{start:0xF09000, end:0xF09400, Country: "blank", icon_fn: "blank.png"}, {start:0x800000, end:0x840000, country: "India", flag_image: "India.png"},
{start:0x4CC000, end:0x4CD000, Country: "Iceland", icon_fn: "Iceland.png"}, {start:0x8A0000, end:0x8A8000, country: "Indonesia", flag_image: "Indonesia.png"},
{start:0x800000, end:0x840000, Country: "India", icon_fn: "India.png"}, {start:0x730000, end:0x738000, country: "Iran", flag_image: "Iran.png"},
{start:0x8A0000, end:0x8A8000, Country: "Indonesia", icon_fn: "Indonesia.png"}, {start:0x728000, end:0x730000, country: "Iraq", flag_image: "Iraq.png"},
{start:0x730000, end:0x738000, Country: "Iran", icon_fn: "Iran.png"}, {start:0x4CA000, end:0x4CB000, country: "Ireland", flag_image: "Ireland.png"},
{start:0x728000, end:0x730000, Country: "Iraq", icon_fn: "Iraq.png"}, {start:0x738000, end:0x740000, country: "Israel", flag_image: "Israel.png"},
{start:0x4CA000, end:0x4CB000, Country: "Ireland", icon_fn: "Ireland.png"}, {start:0x300000, end:0x340000, country: "Italy", flag_image: "Italy.png"},
{start:0x738000, end:0x740000, Country: "Israel", icon_fn: "Israel.png"}, {start:0x0BE000, end:0x0BF000, country: "Jamaica", flag_image: "Jamaica.png"},
{start:0x300000, end:0x340000, Country: "Italy", icon_fn: "Italy.png"}, {start:0x840000, end:0x880000, country: "Japan", flag_image: "Japan.png"},
{start:0x0BE000, end:0x0BF000, Country: "Jamaica", icon_fn: "Jamaica.png"}, {start:0x740000, end:0x748000, country: "Jordan", flag_image: "Jordan.png"},
{start:0x840000, end:0x880000, Country: "Japan", icon_fn: "Japan.png"}, {start:0x683000, end:0x683400, country: "Kazakhstan", flag_image: "Kazakhstan.png"},
{start:0x740000, end:0x748000, Country: "Jordan", icon_fn: "Jordan.png"}, {start:0x04C000, end:0x04D000, country: "Kenya", flag_image: "Kenya.png"},
{start:0x683000, end:0x683400, Country: "Kazakhstan", icon_fn: "Kazakhstan.png"}, {start:0xC8E000, end:0xC8E400, country: "Kiribati", flag_image: "Kiribati.png"},
{start:0x04C000, end:0x04D000, Country: "Kenya", icon_fn: "Kenya.png"}, {start:0x706000, end:0x707000, country: "Kuwait", flag_image: "Kuwait.png"},
{start:0xC8E000, end:0xC8E400, Country: "Kiribati", icon_fn: "Kiribati.png"}, {start:0x601000, end:0x601400, country: "Kyrgyzstan", flag_image: "Kyrgyzstan.png"},
{start:0x706000, end:0x707000, Country: "Kuwait", icon_fn: "Kuwait.png"}, {start:0x708000, end:0x709000, country: "Laos", flag_image: "Laos.png"},
{start:0x601000, end:0x601400, Country: "Kyrgyzstan", icon_fn: "Kyrgyzstan.png"}, {start:0x502C00, end:0x503000, country: "Latvia", flag_image: "Latvia.png"},
{start:0x708000, end:0x709000, Country: "Laos", icon_fn: "Laos.png"}, {start:0x748000, end:0x750000, country: "Lebanon", flag_image: "Lebanon.png"},
{start:0x502C00, end:0x503000, Country: "Latvia", icon_fn: "Latvia.png"}, {start:0x04A000, end:0x04A400, country: "Lesotho", flag_image: "Lesotho.png"},
{start:0x748000, end:0x750000, Country: "Lebanon", icon_fn: "Lebanon.png"}, {start:0x050000, end:0x051000, country: "Liberia", flag_image: "Liberia.png"},
{start:0x04A000, end:0x04A400, Country: "Lesotho", icon_fn: "Lesotho.png"}, {start:0x018000, end:0x020000, country: "Libya", flag_image: "Libya.png"},
{start:0x050000, end:0x051000, Country: "Liberia", icon_fn: "Liberia.png"}, {start:0x503C00, end:0x504000, country: "Lithuania", flag_image: "Lithuania.png"},
{start:0x018000, end:0x020000, Country: "Libya", icon_fn: "Libya.png"}, {start:0x4D0000, end:0x4D0400, country: "Luxembourg", flag_image: "Luxembourg.png"},
{start:0x503C00, end:0x504000, Country: "Lithuania", icon_fn: "Lithuania.png"}, {start:0x054000, end:0x055000, country: "Madagascar", flag_image: "Madagascar.png"},
{start:0x4D0000, end:0x4D0400, Country: "Luxembourg", icon_fn: "Luxembourg.png"}, {start:0x058000, end:0x059000, country: "Malawi", flag_image: "Malawi.png"},
{start:0x054000, end:0x055000, Country: "Madagascar", icon_fn: "Madagascar.png"}, {start:0x750000, end:0x758000, country: "Malaysia", flag_image: "Malaysia.png"},
{start:0x058000, end:0x059000, Country: "Malawi", icon_fn: "Malawi.png"}, {start:0x05A000, end:0x05A400, country: "Maldives", flag_image: "Maldives.png"},
{start:0x750000, end:0x758000, Country: "Malaysia", icon_fn: "Malaysia.png"}, {start:0x05C000, end:0x05D000, country: "Mali", flag_image: "Mali.png"},
{start:0x05A000, end:0x05A400, Country: "Maldives", icon_fn: "Maldives.png"}, {start:0x4D2000, end:0x4D2400, country: "Malta", flag_image: "Malta.png"},
{start:0x05C000, end:0x05D000, Country: "Mali", icon_fn: "Mali.png"}, {start:0x900000, end:0x900400, country: "Marshall Islands", flag_image: "Marshall_Islands.png"},
{start:0x4D2000, end:0x4D2400, Country: "Malta", icon_fn: "Malta.png"}, {start:0x05E000, end:0x05E400, country: "Mauritania", flag_image: "Mauritania.png"},
{start:0x900000, end:0x900400, Country: "Marshall Islands", icon_fn: "Marshall_Islands.png"}, {start:0x060000, end:0x060400, country: "Mauritius", flag_image: "Mauritius.png"},
{start:0x05E000, end:0x05E400, Country: "Mauritania", icon_fn: "Mauritania.png"}, {start:0x0D0000, end:0x0D8000, country: "Mexico", flag_image: "Mexico.png"},
{start:0x060000, end:0x060400, Country: "Mauritius", icon_fn: "Mauritius.png"}, {start:0x681000, end:0x681400, country: "Micronesia", flag_image: "Micronesia.png"},
{start:0x0D0000, end:0x0D8000, Country: "Mexico", icon_fn: "Mexico.png"}, {start:0x4D4000, end:0x4D4400, country: "Monaco", flag_image: "Monaco.png"},
{start:0x681000, end:0x681400, Country: "Micronesia", icon_fn: "Micronesia.png"}, {start:0x682000, end:0x682400, country: "Mongolia", flag_image: "Mongolia.png"},
{start:0x4D4000, end:0x4D4400, Country: "Monaco", icon_fn: "Monaco.png"}, {start:0x516000, end:0x516400, country: "Serbia and Montenegro", flag_image: "Serbia_and_Montenegro.png"},
{start:0x682000, end:0x682400, Country: "Mongolia", icon_fn: "Mongolia.png"}, {start:0x020000, end:0x028000, country: "Morocco", flag_image: "Morocco.png"},
{start:0x516000, end:0x516400, Country: "Serbia and Montenegro", icon_fn: "Serbia_and_Montenegro.png"}, {start:0x006000, end:0x007000, country: "Mozambique", flag_image: "Mozambique.png"},
{start:0x020000, end:0x028000, Country: "Morocco", icon_fn: "Morocco.png"}, {start:0x704000, end:0x705000, country: "Myanmar", flag_image: "Myanmar.png"},
{start:0x006000, end:0x007000, Country: "Mozambique", icon_fn: "Mozambique.png"}, {start:0x201000, end:0x201400, country: "Namibia", flag_image: "Namibia.png"},
{start:0x704000, end:0x705000, Country: "Myanmar", icon_fn: "Myanmar.png"}, {start:0xC8A000, end:0xC8A400, country: "Nauru", flag_image: "Nauru.png"},
{start:0x201000, end:0x201400, Country: "Namibia", icon_fn: "Namibia.png"}, {start:0x70A000, end:0x70B000, country: "Nepal", flag_image: "Nepal.png"},
{start:0xC8A000, end:0xC8A400, Country: "Nauru", icon_fn: "Nauru.png"}, {start:0x480000, end:0x488000, country: "Netherlands", flag_image: "Netherlands.png"},
{start:0x70A000, end:0x70B000, Country: "Nepal", icon_fn: "Nepal.png"}, {start:0xC80000, end:0xC88000, country: "New Zealand", flag_image: "New_Zealand.png"},
{start:0x480000, end:0x488000, Country: "Netherlands", icon_fn: "Netherlands.png"}, {start:0x0C0000, end:0x0C1000, country: "Nicaragua", flag_image: "Nicaragua.png"},
{start:0xC80000, end:0xC88000, Country: "New Zealand", icon_fn: "New_Zealand.png"}, {start:0x062000, end:0x063000, country: "Niger", flag_image: "Niger.png"},
{start:0x0C0000, end:0x0C1000, Country: "Nicaragua", icon_fn: "Nicaragua.png"}, {start:0x064000, end:0x065000, country: "Nigeria", flag_image: "Nigeria.png"},
{start:0x062000, end:0x063000, Country: "Niger", icon_fn: "Niger.png"}, {start:0x478000, end:0x480000, country: "Norway", flag_image: "Norway.png"},
{start:0x064000, end:0x065000, Country: "Nigeria", icon_fn: "Nigeria.png"}, {start:0x70C000, end:0x70C400, country: "Oman", flag_image: "Oman.png"},
{start:0x478000, end:0x480000, Country: "Norway", icon_fn: "Norway.png"}, {start:0x760000, end:0x768000, country: "Pakistan", flag_image: "Pakistan.png"},
{start:0x70C000, end:0x70C400, Country: "Oman", icon_fn: "Oman.png"}, {start:0x684000, end:0x684400, country: "Palau", flag_image: "Palau.png"},
{start:0x760000, end:0x768000, Country: "Pakistan", icon_fn: "Pakistan.png"}, {start:0x0C2000, end:0x0C3000, country: "Panama", flag_image: "Panama.png"},
{start:0x684000, end:0x684400, Country: "Palau", icon_fn: "Palau.png"}, {start:0x898000, end:0x899000, country: "Papua New Guinea", flag_image: "Papua_New_Guinea.png"},
{start:0x0C2000, end:0x0C3000, Country: "Panama", icon_fn: "Panama.png"}, {start:0xE88000, end:0xE89000, country: "Paraguay", flag_image: "Paraguay.png"},
{start:0x898000, end:0x899000, Country: "Papua New Guinea", icon_fn: "Papua_New_Guinea.png"}, {start:0xE8C000, end:0xE8D000, country: "Peru", flag_image: "Peru.png"},
{start:0xE88000, end:0xE89000, Country: "Paraguay", icon_fn: "Paraguay.png"}, {start:0x758000, end:0x760000, country: "Philippines", flag_image: "Philippines.png"},
{start:0xE8C000, end:0xE8D000, Country: "Peru", icon_fn: "Peru.png"}, {start:0x488000, end:0x490000, country: "Poland", flag_image: "Poland.png"},
{start:0x758000, end:0x760000, Country: "Philippines", icon_fn: "Philippines.png"}, {start:0x490000, end:0x498000, country: "Portugal", flag_image: "Portugal.png"},
{start:0x488000, end:0x490000, Country: "Poland", icon_fn: "Poland.png"}, {start:0x06A000, end:0x06A400, country: "Qatar", flag_image: "Qatar.png"},
{start:0x490000, end:0x498000, Country: "Portugal", icon_fn: "Portugal.png"}, {start:0x718000, end:0x720000, country: "Republic of Korea", flag_image: "South_Korea.png"},
{start:0x06A000, end:0x06A400, Country: "Qatar", icon_fn: "Qatar.png"}, {start:0x504C00, end:0x505000, country: "Moldova", flag_image: "Moldova.png"},
{start:0x718000, end:0x720000, Country: "Republic of Korea", icon_fn: "South_Korea.png"}, {start:0x4A0000, end:0x4A8000, country: "Romania", flag_image: "Romania.png"},
{start:0x504C00, end:0x505000, Country: "Moldova", icon_fn: "Moldova.png"}, {start:0x100000, end:0x200000, country: "Russian Federation", flag_image: "Russian_Federation.png"},
{start:0x4A0000, end:0x4A8000, Country: "Romania", icon_fn: "Romania.png"}, {start:0x06E000, end:0x06F000, country: "Rwanda", flag_image: "Rwanda.png"},
{start:0x100000, end:0x200000, Country: "Russian Federation", icon_fn: "Russian_Federation.png"}, {start:0xC8C000, end:0xC8C400, country: "Saint Lucia", flag_image: "Saint_Lucia.png"},
{start:0x06E000, end:0x06F000, Country: "Rwanda", icon_fn: "Rwanda.png"}, {start:0x0BC000, end:0x0BC400, country: "Saint Vincent and the Grenadines", flag_image: "Saint_Vincent_and_the_Grenadines.png"},
{start:0xC8C000, end:0xC8C400, Country: "Saint Lucia", icon_fn: "Saint_Lucia.png"}, {start:0x902000, end:0x902400, country: "Samoa", flag_image: "Samoa.png"},
{start:0x0BC000, end:0x0BC400, Country: "Saint Vincent and the Grenadines", icon_fn: "Saint_Vincent_and_the_Grenadines.png"}, {start:0x500000, end:0x500400, country: "San Marino", flag_image: "San_Marino.png"},
{start:0x902000, end:0x902400, Country: "Samoa", icon_fn: "Samoa.png"}, {start:0x710000, end:0x718000, country: "Saudi Arabia", flag_image: "Saudi_Arabia.png"},
{start:0x500000, end:0x500400, Country: "San Marino", icon_fn: "San_Marino.png"}, {start:0x070000, end:0x071000, country: "Senegal", flag_image: "Senegal.png"},
{start:0x710000, end:0x718000, Country: "Saudi Arabia", icon_fn: "Saudi_Arabia.png"}, {start:0x074000, end:0x074400, country: "Seychelles", flag_image: "Seychelles.png"},
{start:0x070000, end:0x071000, Country: "Senegal", icon_fn: "Senegal.png"}, {start:0x076000, end:0x076400, country: "Sierra Leone", flag_image: "Sierra_Leone.png"},
{start:0x074000, end:0x074400, Country: "Seychelles", icon_fn: "Seychelles.png"}, {start:0x768000, end:0x770000, country: "Singapore", flag_image: "Singapore.png"},
{start:0x076000, end:0x076400, Country: "Sierra Leone", icon_fn: "Sierra_Leone.png"}, {start:0x505C00, end:0x506000, country: "Slovakia", flag_image: "Slovakia.png"},
{start:0x768000, end:0x770000, Country: "Singapore", icon_fn: "Singapore.png"}, {start:0x506C00, end:0x507000, country: "Slovenia", flag_image: "Slovenia.png"},
{start:0x505C00, end:0x506000, Country: "Slovakia", icon_fn: "Slovakia.png"}, {start:0x078000, end:0x079000, country: "Somalia", flag_image: "Somalia.png"},
{start:0x506C00, end:0x507000, Country: "Slovenia", icon_fn: "Slovenia.png"}, {start:0x008000, end:0x010000, country: "South Africa", flag_image: "South_Africa.png"},
{start:0x078000, end:0x079000, Country: "Somalia", icon_fn: "Somalia.png"}, {start:0x340000, end:0x380000, country: "Spain", flag_image: "Spain.png"},
{start:0x008000, end:0x010000, Country: "South Africa", icon_fn: "South_Africa.png"}, {start:0x770000, end:0x778000, country: "Sri Lanka", flag_image: "Sri_Lanka.png"},
{start:0x340000, end:0x380000, Country: "Spain", icon_fn: "Spain.png"}, {start:0x07C000, end:0x07D000, country: "Sudan", flag_image: "Sudan.png"},
{start:0x770000, end:0x778000, Country: "Sri Lanka", icon_fn: "Sri_Lanka.png"}, {start:0x0C8000, end:0x0C9000, country: "Suriname", flag_image: "Suriname.png"},
{start:0x07C000, end:0x07D000, Country: "Sudan", icon_fn: "Sudan.png"}, {start:0x07A000, end:0x07A400, country: "Swaziland", flag_image: "Swaziland.png"},
{start:0x0C8000, end:0x0C9000, Country: "Suriname", icon_fn: "Suriname.png"}, {start:0x4A8000, end:0x4B0000, country: "Sweden", flag_image: "Sweden.png"},
{start:0x07A000, end:0x07A400, Country: "Swaziland", icon_fn: "Swaziland.png"}, {start:0x4B0000, end:0x4B8000, country: "Switzerland", flag_image: "Switzerland.png"},
{start:0x4A8000, end:0x4B0000, Country: "Sweden", icon_fn: "Sweden.png"}, {start:0x778000, end:0x780000, country: "Syria", flag_image: "Syria.png"},
{start:0x4B0000, end:0x4B8000, Country: "Switzerland", icon_fn: "Switzerland.png"}, {start:0x899000, end:0x899400, country: "Taiwan", flag_image: "Taiwan.png"},
{start:0x778000, end:0x780000, Country: "Syria", icon_fn: "Syria.png"}, {start:0x515000, end:0x515400, country: "Tajikistan", flag_image: "Tajikistan.png"},
{start:0x899000, end:0x899400, Country: "Taiwan", icon_fn: "Taiwan.png"}, {start:0x880000, end:0x888000, country: "Thailand", flag_image: "Thailand.png"},
{start:0x515000, end:0x515400, Country: "Tajikistan", icon_fn: "Tajikistan.png"}, {start:0x088000, end:0x089000, country: "Togo", flag_image: "Togo.png"},
{start:0x880000, end:0x888000, Country: "Thailand", icon_fn: "Thailand.png"}, {start:0xC8D000, end:0xC8D400, country: "Tonga", flag_image: "Tonga.png"},
{start:0x088000, end:0x089000, Country: "Togo", icon_fn: "Togo.png"}, {start:0x0C6000, end:0x0C7000, country: "Trinidad and Tobago", flag_image: "Trinidad_and_Tobago.png"},
{start:0xC8D000, end:0xC8D400, Country: "Tonga", icon_fn: "Tonga.png"}, {start:0x028000, end:0x030000, country: "Tunisia", flag_image: "Tunisia.png"},
{start:0x0C6000, end:0x0C7000, Country: "Trinidad and Tobago", icon_fn: "Trinidad_and_Tobago.png"}, {start:0x4B8000, end:0x4C0000, country: "Turkey", flag_image: "Turkey.png"},
{start:0x028000, end:0x030000, Country: "Tunisia", icon_fn: "Tunisia.png"}, {start:0x601800, end:0x601C00, country: "Turkmenistan", flag_image: "Turkmenistan.png"},
{start:0x4B8000, end:0x4C0000, Country: "Turkey", icon_fn: "Turkey.png"}, {start:0x068000, end:0x069000, country: "Uganda", flag_image: "Uganda.png"},
{start:0x601800, end:0x601C00, Country: "Turkmenistan", icon_fn: "Turkmenistan.png"}, {start:0x508000, end:0x510000, country: "Ukraine", flag_image: "Ukraine.png"},
{start:0x068000, end:0x069000, Country: "Uganda", icon_fn: "Uganda.png"}, {start:0x896000, end:0x897000, country: "UAE", flag_image: "UAE.png"},
{start:0x508000, end:0x510000, Country: "Ukraine", icon_fn: "Ukraine.png"}, {start:0x400000, end:0x440000, country: "United Kingdom", flag_image: "United_Kingdom.png"},
{start:0x896000, end:0x897000, Country: "UAE", icon_fn: "UAE.png"}, {start:0xA00000, end:0xB00000, country: "United States of America", flag_image: "United_States_of_America.png"},
{start:0x400000, end:0x440000, Country: "United Kingdom", icon_fn: "United_Kingdom.png"}, {start:0xE90000, end:0xE91000, country: "Uruguay", flag_image: "Uruguay.png"},
{start:0xA00000, end:0xB00000, Country: "United States of America", icon_fn: "United_States_of_America.png"}, {start:0x507C00, end:0x508000, country: "Uzbekistan", flag_image: "Uzbekistan.png"},
{start:0xE90000, end:0xE91000, Country: "Uruguay", icon_fn: "Uruguay.png"}, {start:0xC90000, end:0xC90400, country: "Vanuatu", flag_image: "Vanuatu.png"},
{start:0x507C00, end:0x508000, Country: "Uzbekistan", icon_fn: "Uzbekistan.png"}, {start:0x0D8000, end:0x0E0000, country: "Venezuela", flag_image: "Venezuela.png"},
{start:0xC90000, end:0xC90400, Country: "Vanuatu", icon_fn: "Vanuatu.png"}, {start:0x888000, end:0x890000, country: "Vietnam", flag_image: "Vietnam.png"},
{start:0x0D8000, end:0x0E0000, Country: "Venezuela", icon_fn: "Venezuela.png"}, {start:0x890000, end:0x891000, country: "Yemen", flag_image: "Yemen.png"},
{start:0x888000, end:0x890000, Country: "Vietnam", icon_fn: "Vietnam.png"}, {start:0x004000, end:0x004400, country: "Zimbabwe", flag_image: "Zimbabwe.png"},
{start:0x890000, end:0x891000, Country: "Yemen", icon_fn: "Yemen.png"}, ];
{start:0x004000, end:0x004400, Country: "Zimbabwe", icon_fn: "Zimbabwe.png"}];
var unassigned_range = {
country: "Unassigned",
flag_image: null
};
// Given a (hex string) ICAO address,
// return an object describing that ICAO range.
// Always returns a non-null object.
// (todo: binary search)
function findICAORange(icao) {
var hexa = +("0x" + icao);
for (var i = 0; i < ICAO_Codes.length; ++i) {
if (hexa >= ICAO_Codes[i].start && hexa < ICAO_Codes[i].end) {
return ICAO_Codes[i];
}
}
return unassigned_range;
}

View file

@ -112,10 +112,13 @@
</b> </b>
<span id="selected_follow" onclick="toggleFollowSelected();" class="pointer">&#x21D2</span> <span id="selected_follow" onclick="toggleFollowSelected();" class="pointer">&#x21D2</span>
<span id="selected_flag">
<img width="20" height="12">
</span>
<a href="http://www.airframes.org/" onclick="document.getElementById('horrible_hack').submit.call(document.getElementById('airframes_post')); return false;"> <a href="http://www.airframes.org/" onclick="document.getElementById('horrible_hack').submit.call(document.getElementById('airframes_post')); return false;">
<span id="selected_icao"></span> <span id="selected_icao"></span>
</a> </a>
<span id="selected_flag"></span>
<span id="selected_registration"></span> <span id="selected_registration"></span>
<span id="selected_icaotype"></span> <span id="selected_icaotype"></span>
<span id="selected_emergency"></span> <span id="selected_emergency"></span>
@ -127,6 +130,10 @@
</td> </td>
</tr> </tr>
<tr id="infoblock_country" class="infoblock_body">
<td colspan="2">Country of registration: <span id="selected_country">n/a</span></td>
</tr>
<tr class="infoblock_body"> <tr class="infoblock_body">
<td width="55%">Altitude: <span id="selected_altitude"></span></td> <td width="55%">Altitude: <span id="selected_altitude"></span></td>
<td width="45%">Squawk: <span id="selected_squawk"></span></td> <td width="45%">Squawk: <span id="selected_squawk"></span></td>
@ -143,8 +150,7 @@
</tr> </tr>
<tr class="infoblock_body"> <tr class="infoblock_body">
<td>Position: <span id="selected_position">n/a</span></td> <td colspan="2">Position: <span id="selected_position">n/a</span></td>
<td>Country: <span id="selected_country">n/a</span></td>
</tr> </tr>
<tr class="infoblock_body"> <tr class="infoblock_body">
@ -156,7 +162,7 @@
<table id="tableinfo" width="100%"> <table id="tableinfo" width="100%">
<thead style="background-color: #BBBBBB; cursor: pointer;"> <thead style="background-color: #BBBBBB; cursor: pointer;">
<td id="icao" onclick="sortByICAO();">ICAO</td> <td id="icao" onclick="sortByICAO();">ICAO</td>
<td>Country</td> <td id="flag" onclick="sortByCountry()"><!-- column for flag image --></td>
<td id="flight" onclick="sortByFlight();">Flight</td> <td id="flight" onclick="sortByFlight();">Flight</td>
<td id="squawk" onclick="sortBySquawk();" align="right">Squawk</td> <td id="squawk" onclick="sortBySquawk();" align="right">Squawk</td>
<td id="altitude" onclick="sortByAltitude();" align="right">Altitude</td> <td id="altitude" onclick="sortByAltitude();" align="right">Altitude</td>
@ -169,7 +175,7 @@
<tbody> <tbody>
<tr id="plane_row_template" class="plane_table_row hidden"> <tr id="plane_row_template" class="plane_table_row hidden">
<td>ICAO</td> <td>ICAO</td>
<td>COUNTRY</td> <td><img width="20" height="12"></td>
<td>FLIGHT</td> <td>FLIGHT</td>
<td align="right">SQUAWK</td> <td align="right">SQUAWK</td>
<td align="right">ALTITUDE</td> <td align="right">ALTITUDE</td>

View file

@ -3,6 +3,7 @@
function PlaneObject(icao) { function PlaneObject(icao) {
// Info about the plane // Info about the plane
this.icao = icao; this.icao = icao;
this.icaorange = findICAORange(icao);
this.flight = null; this.flight = null;
this.squawk = null; this.squawk = null;
this.selected = false; this.selected = false;

View file

@ -70,26 +70,20 @@ function processReceiverUpdate(data) {
plane = new PlaneObject(hex); plane = new PlaneObject(hex);
plane.tr = PlaneRowTemplate.cloneNode(true); plane.tr = PlaneRowTemplate.cloneNode(true);
// Lookup ICAO country flag
var hexa = +("0x" + hex);
for (var i = 0; i < ICAO_Codes.length; i++) {
if ( hexa >= ICAO_Codes[i].start && hexa <= ICAO_Codes[i].end) {
plane.Country = ICAO_Codes[i].Country;
plane.Flag = '<img src="' + flag_dir + '/' + ICAO_Codes[i].icon_fn + '" title="' + ICAO_Codes[i].Country + '\">';
}
}
// end of flag lookup
if (hex[0] === '~') { if (hex[0] === '~') {
// Non-ICAO address // Non-ICAO address
plane.tr.cells[0].textContent = hex.substring(1); plane.tr.cells[0].textContent = hex.substring(1);
$(plane.tr).css('font-style', 'italic'); $(plane.tr).css('font-style', 'italic');
plane.tr.cells[1].textContent = null;
} else { } else {
plane.tr.cells[0].textContent = hex; plane.tr.cells[0].textContent = hex;
plane.tr.cells[1].innerHTML = plane.Flag; }
// set flag image if available
if (ShowFlags && plane.icaorange.flag_image !== null) {
$('img', plane.tr.cells[1]).attr('src', FlagPath + plane.icaorange.flag_image);
$('img', plane.tr.cells[1]).attr('title', plane.icaorange.country);
} else {
$('img', plane.tr.cells[1]).css('display', 'none');
} }
plane.tr.addEventListener('click', selectPlaneByHex.bind(undefined,hex,false)); plane.tr.addEventListener('click', selectPlaneByHex.bind(undefined,hex,false));
@ -330,6 +324,13 @@ function initialize_map() {
sortByAltitude(); sortByAltitude();
} }
// Maybe hide flag info
if (!ShowFlags) {
PlaneRowTemplate.cells[1].style.display = 'none'; // hide flag column
document.getElementById("flag").style.display = 'none'; // hide flag header
document.getElementById("infoblock_country").style.display = 'none'; // hide country row
}
// Make a list of all the available map IDs // Make a list of all the available map IDs
var mapTypeIds = []; var mapTypeIds = [];
for(var type in google.maps.MapTypeId) { for(var type in google.maps.MapTypeId) {
@ -609,16 +610,15 @@ function refreshSelected() {
$('#selected_seen').text(selected.seen.toFixed(1) + 's'); $('#selected_seen').text(selected.seen.toFixed(1) + 's');
} }
$('#selected_country').text(selected.icaorange.country);
// add the country and flag if (ShowFlags && selected.icaorange.flag_image !== null) {
$('#selected_country').text(selected.Country); $('#selected_flag').removeClass('hidden');
if (selected.Flag !== null) { $('#selected_flag img').attr('src', FlagPath + selected.icaorange.flag_image);
$('#selected_flag').html(selected.Flag); $('#selected_flag img').attr('title', selected.icaorange.country);
} else { } else {
$('#selected_flag').text('Unrecognized'); $('#selected_flag').addClass('hidden');
} }
if (selected.position === null) { if (selected.position === null) {
$('#selected_position').text('n/a'); $('#selected_position').text('n/a');
$('#selected_follow').addClass('hidden'); $('#selected_follow').addClass('hidden');
@ -684,7 +684,6 @@ function refreshTableInfo() {
tableplane.tr.cells[8].textContent = tableplane.messages; tableplane.tr.cells[8].textContent = tableplane.messages;
tableplane.tr.cells[9].textContent = tableplane.seen.toFixed(0); tableplane.tr.cells[9].textContent = tableplane.seen.toFixed(0);
tableplane.tr.className = classes; tableplane.tr.className = classes;
} }
} }
@ -725,6 +724,7 @@ function sortByDistance() { sortBy('sitedist',compareNumeric, function(x) { retu
function sortByTrack() { sortBy('track', compareNumeric, function(x) { return x.track; }); } function sortByTrack() { sortBy('track', compareNumeric, function(x) { return x.track; }); }
function sortByMsgs() { sortBy('msgs', compareNumeric, function(x) { return x.messages; }); } function sortByMsgs() { sortBy('msgs', compareNumeric, function(x) { return x.messages; }); }
function sortBySeen() { sortBy('seen', compareNumeric, function(x) { return x.seen; }); } function sortBySeen() { sortBy('seen', compareNumeric, function(x) { return x.seen; }); }
function sortByCountry() { sortBy('country', compareAlpha, function(x) { return x.icaorange.country; }); }
var sortId = ''; var sortId = '';
var sortCompare = null; var sortCompare = null;