diff --git a/.gitignore b/.gitignore index 5108de2..ce400e6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ json/keys.json /tiles/ /data/aircraft1.json /data/battery.json -/data/ \ No newline at end of file +/data/ +/.vscode/ +/information_files/ +/information/ diff --git a/autostart.sh b/autostart.sh deleted file mode 100644 index e65ef7d..0000000 --- a/autostart.sh +++ /dev/null @@ -1,6 +0,0 @@ -# All Scripts to be run at start -unclutter & -cd /usr/share/dump1090-mutability/html -sudo python battery.py & -sudo python api.py & -sudo node /scripts/internet_data.js \ No newline at end of file diff --git a/css/css-circular-prog-bar.css b/css/css-circular-prog-bar.css deleted file mode 100644 index e972b7a..0000000 --- a/css/css-circular-prog-bar.css +++ /dev/null @@ -1,499 +0,0 @@ -.progress-circle { - font-size: 20px; - margin: 20px; - position: relative; - /* so that children can be absolutely positioned */ - padding: 0; - width: 5em; - height: 5em; - background-color: #F2E9E1; - border-radius: 50%; - line-height: 5em; -} - -.progress-circle:after { - border: none; - position: absolute; - top: 0.35em; - left: 0.35em; - text-align: center; - display: block; - border-radius: 50%; - width: 4.3em; - height: 4.3em; - background-color: white; - content: " "; -} - - -/* Text inside the control */ - -.progress-circle span { - position: absolute; - line-height: 5em; - width: 5em; - text-align: center; - display: block; - color: #53777A; - z-index: 2; -} - -.left-half-clipper { - /* a round circle */ - border-radius: 50%; - width: 5em; - height: 5em; - position: absolute; - /* needed for clipping */ - clip: rect(0, 5em, 5em, 2.5em); - /* clips the whole left half*/ -} - - -/* when p>50, don't clip left half*/ - -.progress-circle.over50 .left-half-clipper { - clip: rect(auto, auto, auto, auto); -} - -.value-bar { - /*This is an overlayed square, that is made round with the border radius, - then it is cut to display only the left half, then rotated clockwise - to escape the outer clipping path.*/ - position: absolute; - /*needed for clipping*/ - clip: rect(0, 2.5em, 5em, 0); - width: 5em; - height: 5em; - border-radius: 50%; - border: 0.45em solid #53777A; - /*The border is 0.35 but making it larger removes visual artifacts */ - /*background-color: #4D642D;*/ - /* for debug */ - box-sizing: border-box; -} - - -/* Progress bar filling the whole right half for values above 50% */ - -.progress-circle.over50 .first50-bar { - /*Progress bar for the first 50%, filling the whole right half*/ - position: absolute; - /*needed for clipping*/ - clip: rect(0, 5em, 5em, 2.5em); - background-color: #53777A; - border-radius: 50%; - width: 5em; - height: 5em; -} - -.progress-circle:not(.over50) .first50-bar { - display: none; -} - - -/* Progress bar rotation position */ - -.progress-circle.p0 .value-bar { - display: none; -} - -.progress-circle.p1 .value-bar { - transform: rotate(4deg); -} - -.progress-circle.p2 .value-bar { - transform: rotate(7deg); -} - -.progress-circle.p3 .value-bar { - transform: rotate(11deg); -} - -.progress-circle.p4 .value-bar { - transform: rotate(14deg); -} - -.progress-circle.p5 .value-bar { - transform: rotate(18deg); -} - -.progress-circle.p6 .value-bar { - transform: rotate(22deg); -} - -.progress-circle.p7 .value-bar { - transform: rotate(25deg); -} - -.progress-circle.p8 .value-bar { - transform: rotate(29deg); -} - -.progress-circle.p9 .value-bar { - transform: rotate(32deg); -} - -.progress-circle.p10 .value-bar { - transform: rotate(36deg); -} - -.progress-circle.p11 .value-bar { - transform: rotate(40deg); -} - -.progress-circle.p12 .value-bar { - transform: rotate(43deg); -} - -.progress-circle.p13 .value-bar { - transform: rotate(47deg); -} - -.progress-circle.p14 .value-bar { - transform: rotate(50deg); -} - -.progress-circle.p15 .value-bar { - transform: rotate(54deg); -} - -.progress-circle.p16 .value-bar { - transform: rotate(58deg); -} - -.progress-circle.p17 .value-bar { - transform: rotate(61deg); -} - -.progress-circle.p18 .value-bar { - transform: rotate(65deg); -} - -.progress-circle.p19 .value-bar { - transform: rotate(68deg); -} - -.progress-circle.p20 .value-bar { - transform: rotate(72deg); -} - -.progress-circle.p21 .value-bar { - transform: rotate(76deg); -} - -.progress-circle.p22 .value-bar { - transform: rotate(79deg); -} - -.progress-circle.p23 .value-bar { - transform: rotate(83deg); -} - -.progress-circle.p24 .value-bar { - transform: rotate(86deg); -} - -.progress-circle.p25 .value-bar { - transform: rotate(90deg); -} - -.progress-circle.p26 .value-bar { - transform: rotate(94deg); -} - -.progress-circle.p27 .value-bar { - transform: rotate(97deg); -} - -.progress-circle.p28 .value-bar { - transform: rotate(101deg); -} - -.progress-circle.p29 .value-bar { - transform: rotate(104deg); -} - -.progress-circle.p30 .value-bar { - transform: rotate(108deg); -} - -.progress-circle.p31 .value-bar { - transform: rotate(112deg); -} - -.progress-circle.p32 .value-bar { - transform: rotate(115deg); -} - -.progress-circle.p33 .value-bar { - transform: rotate(119deg); -} - -.progress-circle.p34 .value-bar { - transform: rotate(122deg); -} - -.progress-circle.p35 .value-bar { - transform: rotate(126deg); -} - -.progress-circle.p36 .value-bar { - transform: rotate(130deg); -} - -.progress-circle.p37 .value-bar { - transform: rotate(133deg); -} - -.progress-circle.p38 .value-bar { - transform: rotate(137deg); -} - -.progress-circle.p39 .value-bar { - transform: rotate(140deg); -} - -.progress-circle.p40 .value-bar { - transform: rotate(144deg); -} - -.progress-circle.p41 .value-bar { - transform: rotate(148deg); -} - -.progress-circle.p42 .value-bar { - transform: rotate(151deg); -} - -.progress-circle.p43 .value-bar { - transform: rotate(155deg); -} - -.progress-circle.p44 .value-bar { - transform: rotate(158deg); -} - -.progress-circle.p45 .value-bar { - transform: rotate(162deg); -} - -.progress-circle.p46 .value-bar { - transform: rotate(166deg); -} - -.progress-circle.p47 .value-bar { - transform: rotate(169deg); -} - -.progress-circle.p48 .value-bar { - transform: rotate(173deg); -} - -.progress-circle.p49 .value-bar { - transform: rotate(176deg); -} - -.progress-circle.p50 .value-bar { - transform: rotate(180deg); -} - -.progress-circle.p51 .value-bar { - transform: rotate(184deg); -} - -.progress-circle.p52 .value-bar { - transform: rotate(187deg); -} - -.progress-circle.p53 .value-bar { - transform: rotate(191deg); -} - -.progress-circle.p54 .value-bar { - transform: rotate(194deg); -} - -.progress-circle.p55 .value-bar { - transform: rotate(198deg); -} - -.progress-circle.p56 .value-bar { - transform: rotate(202deg); -} - -.progress-circle.p57 .value-bar { - transform: rotate(205deg); -} - -.progress-circle.p58 .value-bar { - transform: rotate(209deg); -} - -.progress-circle.p59 .value-bar { - transform: rotate(212deg); -} - -.progress-circle.p60 .value-bar { - transform: rotate(216deg); -} - -.progress-circle.p61 .value-bar { - transform: rotate(220deg); -} - -.progress-circle.p62 .value-bar { - transform: rotate(223deg); -} - -.progress-circle.p63 .value-bar { - transform: rotate(227deg); -} - -.progress-circle.p64 .value-bar { - transform: rotate(230deg); -} - -.progress-circle.p65 .value-bar { - transform: rotate(234deg); -} - -.progress-circle.p66 .value-bar { - transform: rotate(238deg); -} - -.progress-circle.p67 .value-bar { - transform: rotate(241deg); -} - -.progress-circle.p68 .value-bar { - transform: rotate(245deg); -} - -.progress-circle.p69 .value-bar { - transform: rotate(248deg); -} - -.progress-circle.p70 .value-bar { - transform: rotate(252deg); -} - -.progress-circle.p71 .value-bar { - transform: rotate(256deg); -} - -.progress-circle.p72 .value-bar { - transform: rotate(259deg); -} - -.progress-circle.p73 .value-bar { - transform: rotate(263deg); -} - -.progress-circle.p74 .value-bar { - transform: rotate(266deg); -} - -.progress-circle.p75 .value-bar { - transform: rotate(270deg); -} - -.progress-circle.p76 .value-bar { - transform: rotate(274deg); -} - -.progress-circle.p77 .value-bar { - transform: rotate(277deg); -} - -.progress-circle.p78 .value-bar { - transform: rotate(281deg); -} - -.progress-circle.p79 .value-bar { - transform: rotate(284deg); -} - -.progress-circle.p80 .value-bar { - transform: rotate(288deg); -} - -.progress-circle.p81 .value-bar { - transform: rotate(292deg); -} - -.progress-circle.p82 .value-bar { - transform: rotate(295deg); -} - -.progress-circle.p83 .value-bar { - transform: rotate(299deg); -} - -.progress-circle.p84 .value-bar { - transform: rotate(302deg); -} - -.progress-circle.p85 .value-bar { - transform: rotate(306deg); -} - -.progress-circle.p86 .value-bar { - transform: rotate(310deg); -} - -.progress-circle.p87 .value-bar { - transform: rotate(313deg); -} - -.progress-circle.p88 .value-bar { - transform: rotate(317deg); -} - -.progress-circle.p89 .value-bar { - transform: rotate(320deg); -} - -.progress-circle.p90 .value-bar { - transform: rotate(324deg); -} - -.progress-circle.p91 .value-bar { - transform: rotate(328deg); -} - -.progress-circle.p92 .value-bar { - transform: rotate(331deg); -} - -.progress-circle.p93 .value-bar { - transform: rotate(335deg); -} - -.progress-circle.p94 .value-bar { - transform: rotate(338deg); -} - -.progress-circle.p95 .value-bar { - transform: rotate(342deg); -} - -.progress-circle.p96 .value-bar { - transform: rotate(346deg); -} - -.progress-circle.p97 .value-bar { - transform: rotate(349deg); -} - -.progress-circle.p98 .value-bar { - transform: rotate(353deg); -} - -.progress-circle.p99 .value-bar { - transform: rotate(356deg); -} - -.progress-circle.p100 .value-bar { - transform: rotate(360deg); -} \ No newline at end of file diff --git a/css/jquery-ui.min.css b/css/jquery-ui.min.css deleted file mode 100644 index 0750fca..0000000 --- a/css/jquery-ui.min.css +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * jQuery UI CSS Framework 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/theming/ - */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item:focus,.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:0}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:0}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:0}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:0}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:0}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:0}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}/*! - * jQuery UI CSS Framework 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/theming/ - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px - */.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-button .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/css/ui1-dark.css b/css/ui1-dark.css deleted file mode 100644 index 3b09096..0000000 --- a/css/ui1-dark.css +++ /dev/null @@ -1,806 +0,0 @@ -html, -body -{ - background-color: #000000; - color: white; - font-family: Tahoma, Sans-Serif; - font-size: 10pt; - height: 100%; - margin: 0; - padding: 0; -} -#map_container -{ - color: black; -} -#planes_table -{ - background-color: black; - cursor: pointer; -} -#metar_loading -{ - top: 4px; -} -#liveatc_button -{ - color: white; -} -#metar_button -{ - color: white; -} -#radar_button -{ - color: white; -} -#radar_flight_tab_button -{ - color: white; -} -#radar_aircraft_tab_button -{ - color: white; -} -#radar_radar_tab_button -{ - color: white; -} -#vol_down_button -{ - background-color: white; -} -#power_button -{ - background-color: white; -} -#vol_up_button -{ - background-color: white; -} -#home_button -{ - background-color: white; -} -#internet_mode_button -{ - background-color: white; -} -#power_modal > .modal-content -{ - background-color: #000; - font-size: 18px; - height: 30%; - left: 25%; - line-height: 45px; - position: absolute; - text-align: center; - top: 25%; - width: 50%; -} -#power_table -{ - width: 100%; -} -#power_table > tbody > tr:nth-child(1) > td:nth-child(1) > button -{ - background-color: white; -} -#power_table > tbody > tr:nth-child(1) > td:nth-child(2) > button -{ - background-color: white; -} -#power_table > tbody > tr:nth-child(1) > td:nth-child(3) > button -{ - background-color: white; -} -div.atc_state -{ - background-color: #000; - border: 1px solid white; - border-radius: 25px; - height: 20px; - margin: 4px; - padding: 4px; - padding-left: 10px; - text-decoration: none; -} -#branch_button -{ - background-color: white; -} -div#nav_bar -{ - background: black; - border-bottom: 2px solid white; - color: white; - height: 40px; - left: 0px; - padding: 5px; - position: fixed; - top: 0px; - width: 100%; - z-index: 1; -} -div#itinerary_body -{ - height: 100%; - position: absolute; - top: 50px; - width: 100%; -} -img#aircraft_image -{ - height: auto; - max-width: 100%; -} -div#map_container -{ - height: 100%; - position: fixed; - top: 50px; - width: 100%; -} -.subtab_button -{ - width: 25%; -} -div#graphs_body -{ - height: 100%; - position: absolute; - top: 50px; - width: 100%; -} -div#graphs_body -{ - overflow: hidden; -} -img.graphs -{ - height: 70%; - left: 10%; - position: relative; - top: 5%; - width: 80%; -} -img.graphs_s -{ - height: 40%; - left: 10%; - position: relative; - top: 30%; - width: 80%; -} -#arrow_back_graphs -{ - left: 10px; - position: absolute; - top: 40%; -} -#arrow_forward_graphs -{ - position: absolute; - right: 10px; - top: 40%; -} -html::-webkit-scrollbar -{ - display: none; -} -img#message_rate img#cpu_usage -{ - width: 50%; -} -div#subtab_buttons>button -{ - margin-left: 20px; - width: 100px; -} -div#subtab_buttons -{ - background: black; - bottom: 0px; - padding: 5px; - position: fixed; - width: 100%; - z-index: 1; -} -div#map_canvas -{ - height: 100%; - margin-right: 390px; -} -div#sidebar_container -{ - height: 90%; - position: absolute; - right: 0px; - top: 50px; - width: 390px; -} -#nav_bar.divider -{ - width: 25px; -} -.pointer -{ - cursor: pointer; -} -.noselect -{ - khtml-user-select: none; - moz-user-select: none; - ms-user-select: none; - user-select: none; - webkit-touch-callout: none; - webkit-user-select: none; -} -.space -{ - display: inline-block; - margin: auto; - padding-bottom: 0px; - padding-right: 20px; - padding-top: 0px; - width: fit-content; -} -#planes_table > tr > td -{ - border-bottom: solid white .5px; - text-align: center; -} -.space-nopad -{ - display: inline-block; - margin: auto; - width: fit-content; -} -.center -{ - display: table-cell; - vertical-align: middle; -} -#radar_aircraft_tab -{ - line-height: 17px; -} -#img_button -{ - bottom: 50px; - position: fixed; - right: 10%; -} -#aircraft_button -{ - bottom: 49px; - position: fixed; - right: 14%; -} -#info_button -{ - bottom: 5px; - position: absolute; - right: 10px; -} -#info_icon -{ - bottom: 5px; - position: absolute; - right: 10px; -} -div#SpecialSquawkWarning -{ - background-color: #FFFFA3; - border: 2px solid red; - bottom: 25px; - filter: alpha(opacity=75); - opacity: 0.75; - padding: 5px; - position: absolute; - right: 430px; - text-align: center; -} -div#update_error -{ - background-color: #FFFFA3; - border: 2px solid red; - bottom: 25px; - filter: alpha(opacity=75); - left: 25px; - opacity: 0.75; - padding: 5px; - position: absolute; - text-align: center; -} -div#loader -{ - background: #000; - bottom: 0; - filter: alpha(opacity=100); - left: 0; - opacity: 1; - position: absolute; - right: 0; - top: 0; - z-index: 99; -} -#spinny -{ - height: 128px; - left: 50%; - margin: -64px 0 0 -64px; - position: absolute; - top: 50%; - width: 128px; -} -#loader_progress -{ - height: 20px; - left: 50%; - margin: 128px 0 0 -125px; - position: absolute; - top: 50%; - width: 250px; -} -#tableinfo, -#sudo_buttons -{ - font-family: monospace; - font-size: x-small; -} -.vPosition -{ - background-color: #d5ffd5; - font-weight: bold; -} -.mlat -{ - background-color: #d5d5ff; - font-weight: bold; -} -.squawk7500 -{ - background-color: #ff5555; - font-weight: bold; -} -.squawk7600 -{ - background-color: #00ffff; - font-weight: bold; -} -.squawk7700 -{ - background-color: #ffff00; - font-weight: bold; -} -.selected -{ - background-color: #dddddd; -} -.plane_table_row -{ - background-color: black; - border: white; - cursor: pointer; -} -.hidden -{ - display: none; -} -.infoblock_heading -{ - font-size: larger; -} -.infoblock_heading a -{ - color: blue; - font-size: x-small; - text-decoration: none; -} -.infoblock_body -{ - font-size: medium; -} -#selected_icao -{ - font-size: x-small; -} -#selected_registration -{ - font-size: x-small; -} -#selected_icaotype -{ - font-size: x-small; -} -.dim -{ - filter: alpha(opacity=30); - opacity: 0.3; -} -.pointer -{ - cursor: pointer; -} -td#icao -{ - font-size: medium; -} -td#flag -{ - font-size: medium; -} -td#flight -{ - font-size: medium; -} -td#squawk -{ - font-size: medium; -} -td#altitude -{ - font-size: medium; -} -td#speed -{ - font-size: medium; -} -td#distance -{ - font-size: medium; -} -td#track -{ - font-size: medium; -} -td#msgs -{ - font-size: medium; -} -td#seen -{ - font-size: medium; -} -#modal2_title -{ - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} -#aircraft_name_css -{ - font-size: 30px; - line-height: 25px; - white-space: nowrap; -} -#modal3_title -{ - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} -.material-icons.md-18 -{ - font-size: 18px; -} -.material-icons.md-24 -{ - font-size: 24px; -} -.material-icons.md-36 -{ - font-size: 36px; -} -.material-icons.md-48 -{ - font-size: 48px; -} -.modal -{ - background-color: rgb(0, 0, 0); - background-color: rgba(0, 0, 0, 0.4); - display: none; - height: 100%; - left: 0; - overflow: auto; - position: fixed; - top: 0; - width: 100%; - z-index: 2; -} -.modal-content -{ - background-color: #fefefe; - border: 1px solid #888; - height: 80%; - margin: 2% auto; - padding: 20px; - width: 90%; -} -.close -{ - color: #aaa; - float: right; - font-size: 28px; - font-weight: bold; -} -.close:hover, -.close:focus -{ - color: black; - cursor: pointer; - text-decoration: none; -} -.logo -{ - display: block; - margin-left: auto; - margin-right: auto; - margin-top: 10%; - width: 80%; -} -.settingslogo -{ - display: block; - margin-left: auto; - margin-right: auto; - margin-top: 2%; - width: 40%; -} -.settingstext -{ - margin-left: auto; - margin-right: auto; - text-align: center; -} -.home_table -{ - margin-left: auto; - margin-right: auto; - width: 60%; -} -#home_page -{ - overflow: hidden; -} -#settings_page -{ - overflow: hidden; -} -#settingstext>table -{ - margin: auto; -} -#external_mode_button -{ - background-color: white; - left: 50%; - position: relative; - right: 50%; -} -#settingstext>table>tbody>tr>td -{ - padding: 15px; -} -#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td -{ - left: -25%; - position: relative; - top: 0; -} -#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td -{ - left: -25%; - position: relative; - top: 0; -} -#home_page>table>tbody>tr>td>img -{ - width: 100%; -} -#arrivals -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#departures -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#sch-arrivals -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#sch-departures -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -.airportBoard -{ - border: white solid 2px; -} -#aircraft_image1 -{ - width: 100%; -} -#aircraft_image2 -{ - bottom: 12%; - left: 5%; - position: absolute; - width: 24.5%; -} -#aircraft_image3 -{ - bottom: 12%; - left: 30.5%; - position: absolute; - width: 24.5%; -} -#aircraft_image4 -{ - bottom: 12%; - left: 56%; - position: absolute; - width: 24.5%; -} -#itinerary_loading -{ - position: fixed; - width: 100%; -} -#flight_progress_circle -{ - position: absolute; - right: 25%; - top: 10%; -} -#flight_progress_title -{ - font-size: 18px; - position: absolute; - right: 5%; - top: 22%; -} -#flight_progress_elapsed_title -{ - font-size: 18px; - left: 68%; - position: absolute; - top: 40%; -} -#flight_progress_remaining_title -{ - font-size: 18px; - left: 67%; - position: absolute; - top: 53%; -} -#flight_progress_time_title -{ - font-size: 18px; - left: 67%; - position: absolute; - top: 66%; -} -#flight_progress_elapsed_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 45%; -} -#flight_progress_remaining_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 58%; -} -#flight_progress_time_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 71%; -} -#aircraft_name_title -{ - font-size: 18px; - left: 66%; - position: absolute; - top: 20%; -} -#aircraft_model_title -{ - font-size: 18px; - left: 66%; - position: absolute; - top: 33%; -} -#aircraft_registration_title -{ - font-size: 18px; - left: 64%; - position: absolute; - top: 46%; -} -#aircraft_name_addl -{ - font-size: 20px; - font-weight: bold; - left: 67%; - position: absolute; - top: 25%; -} -#aircraft_model -{ - font-size: 20px; - font-weight: bold; - left: 69.5%; - position: absolute; - top: 38%; -} -#aircraft_registration -{ - font-size: 20px; - font-weight: bold; - left: 69%; - position: absolute; - top: 51%; -} -#external_connected -{ - background-color: black; - color: red; - font-size: xx-large; - font-weight: bold; - height: 100%; - text-align: center; - width: 100%; -} -#external_title -{ - animation: blinkingText 1s infinite; - left: 22%; - position: absolute; - top: 55%; -} -#external_image -{ - animation: blinkingText 1s infinite; - left: 43%; - position: absolute; - top: 30%; -} -@keyframes blinkingText -{ - 0% - { - opacity: 0; - } - 50% - { - opacity: 1; - } - 100% - { - opacity: 0; - } -} \ No newline at end of file diff --git a/css/ui1-light.css b/css/ui1-light.css deleted file mode 100644 index 5410ffd..0000000 --- a/css/ui1-light.css +++ /dev/null @@ -1,756 +0,0 @@ -html, -body -{ - background-color: #ffffff; - font-family: Tahoma, Sans-Serif; - font-size: 10pt; - height: 100%; - margin: 0; - padding: 0; -} -#power_modal > .modal-content -{ - font-size: 18px; - height: 30%; - left: 25%; - line-height: 45px; - position: absolute; - text-align: center; - top: 25%; - width: 50%; -} -#power_table -{ - width: 100%; -} -#lock_button -{ - left: 70%; - line-height: 0%; - margin-bottom: -80px; - position: relative; - top: -70px; - z-index: 1; -} -#atc_title, #atc_location -{ - padding-left: 2px; -} -#audioControl -{ - position: absolute; - right: 25px; - top: 30px; -} -div.atc_state -{ - background-color: #ffffffa6; - border: 1px solid black; - border-radius: 25px; - height: 20px; - margin: 4px; - padding: 4px; - padding-left: 10px; - text-decoration: none; -} -div#nav_bar -{ - background: white; - border: 2px solid black; - height: 40px; - left: 0px; - padding: 5px; - position: fixed; - top: 0px; - width: 100%; - z-index: 1; -} -#planes_table -{ - cursor: pointer; -} -#planes_table > tr > td -{ - border-bottom: solid black .5px; - text-align: center; -} -div#itinerary_body -{ - height: 100%; - position: absolute; - top: 50px; - width: 100%; -} -img#aircraft_image -{ - height: auto; - max-width: 100%; -} -div#map_container -{ - height: 100%; - position: fixed; - top: 50px; - width: 100%; -} -.subtab_button -{ - width: 25%; -} -div#graphs_body -{ - height: 100%; - position: absolute; - top: 50px; - width: 100%; -} -div#graphs_body -{ - overflow: hidden; -} -img.graphs -{ - height: 70%; - left: 10%; - position: relative; - top: 5%; - width: 80%; -} -img.graphs_s -{ - height: 40%; - left: 10%; - position: relative; - top: 30%; - width: 80%; -} -#arrow_back_graphs -{ - left: 10px; - position: absolute; - top: 40%; -} -#arrow_forward_graphs -{ - position: absolute; - right: 10px; - top: 40%; -} -html::-webkit-scrollbar -{ - display: none; -} -img#message_rate img#cpu_usage -{ - width: 50%; -} -div#subtab_buttons>button -{ - margin-left: 20px; - width: 100px; -} -div#subtab_buttons -{ - background: white; - bottom: 0px; - padding: 5px; - position: fixed; - width: 100%; - z-index: 1; -} -div#map_canvas -{ - height: 100%; - margin-right: 390px; -} -div#sidebar_container -{ - height: 90%; - position: absolute; - right: 0px; - top: 50px; - width: 390px; -} -#nav_bar.divider -{ - width: 25px; -} -.pointer -{ - cursor: pointer; -} -.noselect -{ - khtml-user-select: none; - moz-user-select: none; - ms-user-select: none; - user-select: none; - webkit-touch-callout: none; - webkit-user-select: none; -} -.space -{ - display: inline-block; - margin: auto; - padding-bottom: 0px; - padding-right: 20px; - padding-top: 0px; - width: fit-content; -} -.space-nopad -{ - display: inline-block; - margin: auto; - width: fit-content; -} -.center -{ - display: table-cell; - vertical-align: middle; -} -#radar_aircraft_tab -{ - line-height: 17px; -} -#img_button -{ - bottom: 50px; - position: fixed; - right: 10%; -} -#aircraft_button -{ - bottom: 49px; - position: fixed; - right: 14%; -} -#info_button -{ - bottom: 5px; - position: absolute; - right: 10px; -} -#info_icon -{ - bottom: 5px; - position: absolute; - right: 10px; -} -div#SpecialSquawkWarning -{ - background-color: #FFFFA3; - border: 2px solid red; - bottom: 25px; - filter: alpha(opacity=75); - opacity: 0.75; - padding: 5px; - position: absolute; - right: 430px; - text-align: center; -} -div#update_error -{ - background-color: #FFFFA3; - border: 2px solid red; - bottom: 25px; - filter: alpha(opacity=75); - left: 25px; - opacity: 0.75; - padding: 5px; - position: absolute; - text-align: center; -} -div#loader -{ - background: #000; - bottom: 0; - filter: alpha(opacity=100); - left: 0; - opacity: 1; - position: absolute; - right: 0; - top: 0; - z-index: 99; -} -#spinny -{ - height: 128px; - left: 50%; - margin: -64px 0 0 -64px; - position: absolute; - top: 50%; - width: 128px; -} -#loader_progress -{ - height: 20px; - left: 50%; - margin: 128px 0 0 -125px; - position: absolute; - top: 50%; - width: 250px; -} -#tableinfo, -#sudo_buttons -{ - font-family: monospace; - font-size: x-small; -} -.vPosition -{ - background-color: #d5ffd5; - font-weight: bold; -} -.mlat -{ - background-color: #d5d5ff; - font-weight: bold; -} -.squawk7500 -{ - background-color: #ff5555; - font-weight: bold; -} -.squawk7600 -{ - background-color: #00ffff; - font-weight: bold; -} -.squawk7700 -{ - background-color: #ffff00; - font-weight: bold; -} -.selected -{ - background-color: #dddddd; -} -.plane_table_row -{ - cursor: pointer; -} -.hidden -{ - display: none; -} -.infoblock_heading -{ - font-size: larger; -} -.infoblock_heading a -{ - color: blue; - font-size: x-small; - text-decoration: none; -} -.infoblock_body -{ - font-size: medium; -} -#selected_icao -{ - font-size: x-small; -} -#selected_registration -{ - font-size: x-small; -} -#selected_icaotype -{ - font-size: x-small; -} -.dim -{ - filter: alpha(opacity=30); - opacity: 0.3; -} -.pointer -{ - cursor: pointer; -} -td#icao -{ - font-size: medium; -} -td#flag -{ - font-size: medium; -} -td#flight -{ - font-size: medium; -} -td#squawk -{ - font-size: medium; -} -td#altitude -{ - font-size: medium; -} -td#speed -{ - font-size: medium; -} -td#distance -{ - font-size: medium; -} -td#track -{ - font-size: medium; -} -td#msgs -{ - font-size: medium; -} -td#seen -{ - font-size: medium; -} -#modal2_title -{ - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} -#aircraft_name_css -{ - font-size: 30px; - line-height: 25px; - white-space: nowrap; -} -#modal3_title -{ - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} -.material-icons.md-18 -{ - font-size: 18px; -} -.material-icons.md-24 -{ - font-size: 24px; -} -.material-icons.md-36 -{ - font-size: 36px; -} -.material-icons.md-48 -{ - font-size: 48px; -} -.modal -{ - background-color: rgb(0, 0, 0); - background-color: rgba(0, 0, 0, 0.4); - display: none; - height: 100%; - left: 0; - overflow: auto; - position: fixed; - top: 0; - width: 100%; - z-index: 2; -} -.modal-content -{ - background-color: #fefefe; - border: 1px solid #888; - height: 80%; - margin: 2% auto; - padding: 20px; - width: 90%; -} -.close -{ - color: #aaa; - float: right; - font-size: 28px; - font-weight: bold; -} -.close:hover, -.close:focus -{ - color: black; - cursor: pointer; - text-decoration: none; -} -.logo -{ - display: block; - margin-left: auto; - margin-right: auto; - margin-top: 10%; - width: 80%; -} -.settingslogo -{ - display: block; - margin-left: auto; - margin-right: auto; - margin-top: 2%; - width: 40%; -} -.settingstext -{ - margin-left: auto; - margin-right: auto; - text-align: center; -} -.home_table -{ - margin-left: auto; - margin-right: auto; - width: 60%; -} -#home_page -{ - overflow: hidden; -} -#settings_page -{ - overflow: hidden; -} -#settingstext>table -{ - margin: auto; -} -#external_mode_button -{ - left: 50%; - position: relative; - right: 50%; -} -#settingstext>table>tbody>tr>td -{ - padding: 15px; -} -#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td -{ - left: -25%; - position: relative; - top: 0; -} -#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td -{ - left: -25%; - position: relative; - top: 0; -} -#home_page>table>tbody>tr>td>img -{ - width: 100%; -} -#arrivals -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#departures -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#sch-arrivals -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -#sch-departures -{ - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} -.airportBoard -{ - border: black solid 2px; -} -#aircraft_image1 -{ - width: 100%; -} -#aircraft_image2 -{ - bottom: 12%; - left: 5%; - position: absolute; - width: 24.5%; -} -#aircraft_image3 -{ - bottom: 12%; - left: 30.5%; - position: absolute; - width: 24.5%; -} -#aircraft_image4 -{ - bottom: 12%; - left: 56%; - position: absolute; - width: 24.5%; -} -#metar_loading -{ - top: 4px; -} -#itinerary_loading -{ - position: fixed; - width: 100%; -} -#flight_progress_circle -{ - position: absolute; - right: 25%; - top: 10%; -} -#flight_progress_title -{ - font-size: 18px; - position: absolute; - right: 5%; - top: 22%; -} -#flight_progress_elapsed_title -{ - font-size: 18px; - left: 68%; - position: absolute; - top: 40%; -} -#flight_progress_remaining_title -{ - font-size: 18px; - left: 67%; - position: absolute; - top: 53%; -} -#flight_progress_time_title -{ - font-size: 18px; - left: 67%; - position: absolute; - top: 66%; -} -#flight_progress_elapsed_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 45%; -} -#flight_progress_remaining_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 58%; -} -#flight_progress_time_amount -{ - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 71%; -} -#aircraft_name_title -{ - font-size: 18px; - left: 66%; - position: absolute; - top: 20%; -} -#aircraft_model_title -{ - font-size: 18px; - left: 66%; - position: absolute; - top: 33%; -} -#aircraft_registration_title -{ - font-size: 18px; - left: 64%; - position: absolute; - top: 46%; -} -#aircraft_name_addl -{ - font-size: 20px; - font-weight: bold; - left: 67%; - position: absolute; - top: 25%; -} -#aircraft_model -{ - font-size: 20px; - font-weight: bold; - left: 69.5%; - position: absolute; - top: 38%; -} -#aircraft_registration -{ - font-size: 20px; - font-weight: bold; - left: 69%; - position: absolute; - top: 51%; -} -#external_connected -{ - background-color: black; - color: red; - font-size: xx-large; - font-weight: bold; - height: 100%; - text-align: center; - width: 100%; -} -#external_title -{ - animation: blinkingText 1s infinite; - left: 22%; - position: absolute; - top: 55%; -} - - -#external_image -{ - animation: blinkingText 1s infinite; - left: 43%; - position: absolute; - top: 30%; -} -@keyframes blinkingText -{ - 0% - { - opacity: 0; - } - 50% - { - opacity: 1; - } - 100% - { - opacity: 0; - } -} \ No newline at end of file diff --git a/css/ui2-dark.css b/css/ui2-dark.css index e3f6c27..ef56912 100644 --- a/css/ui2-dark.css +++ b/css/ui2-dark.css @@ -1,34 +1,3 @@ -#aircraft_button { - bottom: 49px; - position: fixed; - right: 14%; -} - -#aircraft_image1 { - width: 100%; -} - -#aircraft_image2 { - bottom: 12%; - left: 5%; - position: absolute; - width: 24.5%; -} - -#aircraft_image3 { - bottom: 12%; - left: 30.5%; - position: absolute; - width: 24.5%; -} - -#aircraft_image4 { - bottom: 12%; - left: 56%; - position: absolute; - width: 24.5%; -} - #aircraft_info_overlay { color: rgba(255, 255, 255, .7); font-size: large; @@ -36,70 +5,12 @@ top: 175px; } -#aircraft_model { - font-size: 20px; - font-weight: bold; - left: 69.5%; - position: absolute; - top: 38%; -} - -#aircraft_model_title { - font-size: 18px; - left: 66%; - position: absolute; - top: 33%; -} - -#aircraft_name_addl { - font-size: 20px; - font-weight: bold; - left: 67%; - position: absolute; - top: 25%; -} - -#aircraft_name_css { - font-size: 30px; - line-height: 25px; - white-space: nowrap; -} - -#aircraft_name_title { - font-size: 18px; - left: 66%; - position: absolute; - top: 20%; -} - -#aircraft_registration { - font-size: 20px; - font-weight: bold; - left: 69%; - position: absolute; - top: 51%; -} - -#aircraft_registration_title { - font-size: 18px; - left: 64%; - position: absolute; - top: 46%; -} - #aircraft_tab_background { filter: brightness(50%); height: 225px; width: 400px; } -#arrivals { - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} - #arrow_back_graphs { left: 10px; position: absolute; @@ -131,13 +42,6 @@ top: 5px; } -#departures { - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} - #expand_icon { height: 10%; position: absolute; @@ -194,68 +98,6 @@ top: 55%; } -#flight_progress_circle { - position: absolute; - right: 25%; - top: 10%; -} - -#flight_progress_div { - color: black; -} - -#flight_progress_elapsed_amount { - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 45%; -} - -#flight_progress_elapsed_title { - font-size: 18px; - left: 68%; - position: absolute; - top: 40%; -} - -#flight_progress_remaining_amount { - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 58%; -} - -#flight_progress_remaining_title { - font-size: 18px; - left: 67%; - position: absolute; - top: 53%; -} - -#flight_progress_time_amount { - font-size: 20px; - font-weight: bold; - left: 64%; - position: absolute; - top: 71%; -} - -#flight_progress_time_title { - font-size: 18px; - left: 67%; - position: absolute; - top: 66%; -} - -#flight_progress_title { - font-size: 18px; - position: absolute; - right: 5%; - top: 22%; -} - #home_page { overflow: hidden; } @@ -264,12 +106,6 @@ width: 100%; } -#img_button { - bottom: 70px; - position: fixed; - right: 10%; -} - #info_button { bottom: 5px; position: absolute; @@ -282,17 +118,6 @@ right: 10px; } -#arrivals {} - -#loader_progress { - height: 20px; - left: 50%; - margin: 128px 0 0 -125px; - position: absolute; - top: 50%; - width: 250px; -} - #lock_button { background-color: rgba(0, 0, 0, .3); line-height: 0%; @@ -308,22 +133,6 @@ top: 4px; } -#modal2_title { - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} - -#modal3_title { - font-size: 30px; - line-height: 40px; - text-decoration: bold; -} - -#nav_bar.divider { - width: 25px; -} - #percentage { bottom: 0px; font-size: 12px; @@ -340,10 +149,6 @@ text-align: center; } -#planestable { - height: 200px; -} - #power_button { position: absolute; right: 4px; @@ -368,31 +173,6 @@ width: 100%; } -#radar_aircraft_tab { - line-height: 17px; -} - -#sch-arrivals { - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} - -#sch-departures { - display: inline-table; - margin: auto; - padding: 5px; - width: fit-content; -} - -#selected_icao { - font-size: x-small; -} - -#selected_icaotype { - font-size: x-small; -} #selected_position { left: 138px; @@ -400,10 +180,6 @@ top: 228px; } -#selected_registration { - font-size: x-small; -} - #settings_page { overflow: hidden; } @@ -451,25 +227,12 @@ z-index: 2; } -#spinny { - height: 128px; - left: 50%; - margin: -64px 0 0 -64px; - position: absolute; - top: 50%; - width: 128px; -} - #tableinfo, #sudo_buttons { font-family: monospace; font-size: x-small; } -#tableinfo::-webkit-scrollbar { - display: none; -} - #vol_down_button { position: absolute; right: 250px; @@ -575,15 +338,6 @@ border: rgba(255, 255, 255, .7) solid 2px; } -.mainHeader { - display: none; -} - -.center { - display: table-cell; - vertical-align: middle; -} - .close { color: #aaa; float: right; @@ -598,11 +352,6 @@ text-decoration: none; } -.dim { - filter: alpha(opacity=30); - opacity: 0.3; -} - .hidden { display: none; } @@ -621,12 +370,6 @@ font-size: larger; } -.infoblock_heading a { - color: blue; - font-size: x-small; - text-decoration: none; -} - .logo { display: block; margin-left: auto; @@ -635,27 +378,10 @@ width: 80%; } -.material-icons.md-18 { - font-size: 18px; -} - -.material-icons.md-24 { - font-size: 24px; -} - .material-icons.md-36 { font-size: 36px; } -.material-icons.md-48 { - font-size: 48px; -} - -.mlat { - background-color: #d5d5ff; - font-weight: bold; -} - .modal { background-color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0.75); @@ -679,12 +405,7 @@ } .noselect { - khtml-user-select: none; - moz-user-select: none; - ms-user-select: none; user-select: none; - webkit-touch-callout: none; - webkit-user-select: none; } .plane_table_row { @@ -701,10 +422,6 @@ cursor: pointer; } -.selected { - background-color: #dddddd; -} - .settingslogo { display: block; margin-left: auto; @@ -713,27 +430,6 @@ width: 40%; } -.settingstext { - margin-left: auto; - margin-right: auto; - text-align: center; -} - -.space { - display: inline-block; - margin: auto; - padding-bottom: 0px; - padding-right: 20px; - padding-top: 0px; - width: fit-content; -} - -.space-nopad { - display: inline-block; - margin: auto; - width: fit-content; -} - .squawk7500 { background-color: #ff5555; font-weight: bold; @@ -749,29 +445,11 @@ font-weight: bold; } -.subtab_button { - width: 25%; -} - .vPosition { background-color: #d5ffd5; font-weight: bold; } -@keyframes blinkingText { - 0% { - opacity: 0; - } - - 100% { - opacity: 0; - } - - 50% { - opacity: 1; - } -} - div#graphs_body { overflow: hidden; } @@ -783,13 +461,6 @@ div#graphs_body { width: 100%; } -div#itinerary_body { - height: 100%; - position: absolute; - top: 50px; - width: 100%; -} - div#loader { background: #000; bottom: 0; @@ -847,24 +518,15 @@ div#itin_nav_bar { z-index: 1; } -#itin_title { - color: rgba(255, 255, 255, .7); - position: absolute; - right: 10px; - top: -18px; -} - div#sidebar_container { background-color: rgba(0, 0, 0, .9); border-radius: 8px; box-shadow: 0 4px 8px 0 rgba(255, 255, 255, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19); display: none; height: 85%; - ms-overflow-style: none; overflow: auto; position: absolute; right: 5px; - scrollbar-width: none; top: 60px; width: 390px; z-index: 1; @@ -886,21 +548,6 @@ div#SpecialSquawkWarning { text-align: center; } -div#subtab_buttons { - background: transparent; - bottom: 15px; - display: none; - padding: 5px; - position: fixed; - width: 100%; - z-index: 1; -} - -div#subtab_buttons>button { - margin-left: 20px; - width: 100px; -} - div#update_error { background-color: #FFFFA3; border: 2px solid red; @@ -961,17 +608,6 @@ div.atc_state { width: 42%; } -.itin_header1 { - box-shadow: 0 4px 8px 0 rgba(255, 255, 255, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19); - display: inline-block; - height: 50px; - line-height: 50px; - margin: 5px; - padding: 5px; - text-align: center; - width: 28%; -} - #itin_airport_name { font-size: 46px; font-weight: bold; @@ -1120,16 +756,6 @@ div.atc_header1 { #radar_button { color: rgba(255, 255, 255, .8); } -#radar_flight_tab_button { - color: rgba(255, 255, 255, .7); -} -#radar_aircraft_tab_button { - color: rgba(255, 255, 255, .7); -} -#radar_radar_tab_button { - color: rgba(255, 255, 255, .7); -} - #home_button { color:rgba(255, 255, 255, .7); background-color: transparent; @@ -1154,11 +780,6 @@ html::-webkit-scrollbar { display: none; } -img#aircraft_image { - height: auto; - max-width: 100%; -} - img#message_rate img#cpu_usage { width: 50%; } diff --git a/css/ui2-light.css b/css/ui2-light.css index 05cea88..41b480e 100644 --- a/css/ui2-light.css +++ b/css/ui2-light.css @@ -571,7 +571,6 @@ .close:hover, .close:focus { color: black; - cursor: pointer; text-decoration: none; } @@ -672,9 +671,6 @@ cursor: pointer; } -.pointer { - cursor: pointer; -} .selected { background-color: #dddddd; diff --git a/dockerfile b/dockerfile deleted file mode 100644 index e69de29..0000000 diff --git a/gmap.html b/gmap.html index a9a8884..ca2853a 100644 --- a/gmap.html +++ b/gmap.html @@ -5,16 +5,12 @@ - - - - - + @@ -37,7 +33,7 @@ Aviation Assistant - +
@@ -267,15 +265,17 @@
- - + - + +
@@ -337,16 +337,15 @@ N/A
- N/A
- N/A + style="font-size: 18px;">
+
+ N/A
- N/A
- N/A + style="font-size: 18px;">
+
+ @@ -427,146 +426,6 @@ - - @@ -646,7 +505,7 @@ - + diff --git a/tiles/keys.json b/information/keys.json similarity index 100% rename from tiles/keys.json rename to information/keys.json diff --git a/json/liveatc.json b/information/liveatc.json similarity index 94% rename from json/liveatc.json rename to information/liveatc.json index 44bf485..b3c99e2 100644 --- a/json/liveatc.json +++ b/information/liveatc.json @@ -1,4 +1,83 @@ { + "": { + "airports": { + "SN98": { + "feeds": "ERROR" + }, + "TA01": { + "feeds": "ERROR" + }, + "TA89": { + "feeds": "ERROR" + }, + "TN65": { + "feeds": "ERROR" + }, + "TX37": { + "feeds": "ERROR" + }, + "VA62": { + "feeds": "ERROR" + }, + "WI10": { + "feeds": "ERROR" + }, + "WI49": { + "feeds": "ERROR" + }, + "WI54": { + "feeds": "ERROR" + }, + "WI55": { + "feeds": "ERROR" + }, + "WI56": { + "feeds": "ERROR" + }, + "WI62": { + "feeds": "ERROR" + }, + "WI65": { + "feeds": "ERROR" + }, + "WI66": { + "feeds": "ERROR" + }, + "WI70": { + "feeds": "ERROR" + }, + "WI74": { + "feeds": "ERROR" + }, + "WI84": { + "feeds": "ERROR" + }, + "WI92": { + "feeds": "ERROR" + }, + "WN00": { + "feeds": "ERROR" + }, + "WN08": { + "feeds": "ERROR" + }, + "WN09": { + "feeds": "ERROR" + }, + "WN11": { + "feeds": "ERROR" + }, + "WN13": { + "feeds": "ERROR" + }, + "WN17": { + "feeds": "ERROR" + }, + "WN18": { + "feeds": "ERROR" + } + } + }, "Alabama": { "airports": { "00AL": { @@ -456,7 +535,7 @@ "KBHM": { "feeds": { "0": { - "name": "KBHM Gnd/Twr/App", + "name": "KBHM Del/Gnd/Twr/App", "url": "/play/kbhm.pls" } }, @@ -569,14 +648,6 @@ "5": { "name": "ZME Memphis Center (Hamilton)", "url": "/play/zme_hsv_120800.pls" - }, - "6": { - "name": "ZME Memphis Center (HSV/Hamilton)", - "url": "/play/zme_hsv2.pls" - }, - "7": { - "name": "ZTL Atlanta Center (HSV/Sector 02)", - "url": "/play/ztl_hsv2.pls" } }, "name": "Huntsville International Carl T Jones Field" @@ -585,10 +656,22 @@ "feeds": "ERROR" }, "KJFX": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KJFX CTAF", + "url": "/play/kjfx.pls" + } + }, + "name": "Walker County Bevill Field" }, "KJKA": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KJKA Twr/CTAF", + "url": "/play/kpns1_kjka_twr.pls" + } + }, + "name": "Jack Edwards Airport" }, "KM22": { "feeds": "ERROR" @@ -612,7 +695,7 @@ "feeds": { "0": { "name": "KMOB Gnd/Twr/App", - "url": "/play/kmob2.pls" + "url": "/archive.php?m=kmob2" } }, "name": "Mobile Regional Airport" @@ -1375,13 +1458,7 @@ "feeds": "ERROR" }, "PAAQ": { - "feeds": { - "0": { - "name": "Matsu CTAF", - "url": "/archive.php?m=paws" - } - }, - "name": "Palmer Municipal Airport" + "feeds": "ERROR" }, "PABA": { "feeds": "ERROR" @@ -1431,13 +1508,7 @@ "feeds": "ERROR" }, "PABV": { - "feeds": { - "0": { - "name": "Matsu CTAF", - "url": "/archive.php?m=paws" - } - }, - "name": "Birchwood Airport" + "feeds": "ERROR" }, "PACD": { "feeds": "ERROR" @@ -1541,8 +1612,24 @@ "PAFA": { "feeds": { "0": { + "name": "Anchorage Center (PAFA Area)", + "url": "/play/pafa1_ctr.pls" + }, + "1": { + "name": "PAFA App/Dep", + "url": "/play/pafa1_app.pls" + }, + "2": { + "name": "PAFA Del/Gnd", + "url": "/play/pafa1_del_gnd.pls" + }, + "3": { "name": "PAFA Gnd/Twr/App", "url": "/play/pafa.pls" + }, + "4": { + "name": "PAFA Tower", + "url": "/play/pafa1_twr.pls" } }, "name": "Fairbanks International Airport" @@ -2025,13 +2112,7 @@ "feeds": "ERROR" }, "PAWS": { - "feeds": { - "0": { - "name": "Matsu CTAF", - "url": "/archive.php?m=paws" - } - }, - "name": "Wasilla Airport" + "feeds": "ERROR" }, "PAWT": { "feeds": "ERROR" @@ -2302,7 +2383,13 @@ "feeds": "ERROR" }, "54AZ": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "54AZ CTAF", + "url": "/play/54az_ctaf.pls" + } + }, + "name": "Somerton Airport" }, "55AZ": { "feeds": "ERROR" @@ -2509,7 +2596,7 @@ "feeds": { "0": { "name": "KAVQ CTAF", - "url": "/play/kavq.pls" + "url": "/archive.php?m=kavq" } }, "name": "Marana Regional Airport" @@ -2518,7 +2605,13 @@ "feeds": "ERROR" }, "KBXK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBXK CTAF", + "url": "/play/kbxk1_ctaf.pls" + } + }, + "name": "Buckeye Municipal Airport" }, "KCFT": { "feeds": "ERROR" @@ -2548,11 +2641,19 @@ "feeds": { "0": { "name": "KCHD Tower (North)", - "url": "/archive.php?m=kchd_twr1" + "url": "/play/kchd_twr1.pls" }, "1": { "name": "KCHD Tower (South)", "url": "/play/kchd_twr2.pls" + }, + "2": { + "name": "KPHX Approach (East Tempe Sector)", + "url": "/play/kphx4_app_123700.pls" + }, + "3": { + "name": "KPHX Approach (Pima/Willy Sectors)", + "url": "/play/kphx4_app_pima_willy.pls" } }, "name": "Chandler Municipal Airport" @@ -2673,7 +2774,25 @@ "feeds": "ERROR" }, "KGEU": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KGEU App/Dep", + "url": "/play/kgeu1_app.pls" + }, + "1": { + "name": "KGEU ATIS", + "url": "/play/kgeu1_atis.pls" + }, + "2": { + "name": "KGEU Ground", + "url": "/play/kgeu1_gnd.pls" + }, + "3": { + "name": "KGEU Tower", + "url": "/play/kgeu1_twr.pls" + } + }, + "name": "Glendale Municipal Airport" }, "KGYR": { "feeds": { @@ -2696,7 +2815,13 @@ "feeds": "ERROR" }, "KIFP": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KIFP Tower", + "url": "/play/kifp2_twr.pls" + } + }, + "name": "Laughlin Bullhead International Airport" }, "KIGM": { "feeds": "ERROR" @@ -2721,6 +2846,10 @@ "3": { "name": "KIWA Tower", "url": "/play/kiwa1_twr.pls" + }, + "4": { + "name": "KPHX Approach (Pima/Willy Sectors)", + "url": "/play/kphx4_app_pima_willy.pls" } }, "name": "Phoenix-Mesa-Gateway Airport" @@ -2732,13 +2861,37 @@ "feeds": "ERROR" }, "KLUF": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLUF App/Dep", + "url": "/play/kphx5_kluf_app.pls" + }, + "1": { + "name": "KLUF Del/Gnd/Twr/Misc", + "url": "/play/kphx5_kluf_gnd_twr.pls" + } + }, + "name": "Luke Air Force Base" }, "KMZJ": { "feeds": "ERROR" }, "KNYL": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KNYL App/Dep", + "url": "/play/knyl1_app.pls" + }, + "1": { + "name": "KNYL Del/Gnd/Twr", + "url": "/play/knyl1_local.pls" + }, + "2": { + "name": "ZLA Sector 31", + "url": "/play/knyl1_zla31.pls" + } + }, + "name": "Yuma MCAS/Yuma International Airport" }, "KOLS": { "feeds": "ERROR" @@ -2791,46 +2944,62 @@ "KPHX": { "feeds": { "0": { + "name": "KPHX Approach (Biltmore Sector)", + "url": "/play/kphx4_app_sdl.pls" + }, + "1": { "name": "KPHX Approach (N/S)/S Final", "url": "/play/kphx_app_s.pls" }, - "1": { + "2": { "name": "KPHX Approach (North Final)", "url": "/play/kphx_app_nf.pls" }, - "2": { + "3": { + "name": "KPHX Approach (Pima Sector)", + "url": "/play/kphx4_app_123700.pls" + }, + "4": { + "name": "KPHX Approach (Pima/Willy Sectors)", + "url": "/play/kphx4_app_pima_willy.pls" + }, + "5": { "name": "KPHX Approach (SDL/Tempe/West)", "url": "/play/kphx_app_sat.pls" }, - "3": { + "6": { "name": "KPHX Departure", "url": "/play/kphx_dep.pls" }, - "4": { + "7": { "name": "KPHX Ground (North/Pri)", "url": "/play/kphx_gnd_n1.pls" }, - "5": { + "8": { "name": "KPHX Ground (North/Sec)", "url": "/play/kphx_gnd_n2.pls" }, - "6": { + "9": { "name": "KPHX Ground (South)", "url": "/play/kphx_gnd_s.pls" }, - "7": { + "10": { + "name": "KPHX Tower (Discrete/Emergency)", + "url": "/play/kphx4_twr_em.pls" + }, + "11": { "name": "KPHX Tower (North)", "url": "/play/kphx_twr_n.pls" }, - "8": { + "12": { "name": "KPHX Tower (North/South)", "url": "/play/kphx_twr_both.pls" }, - "9": { + "13": { "name": "KPHX Tower (South)", "url": "/play/kphx_twr_s.pls" }, - "10": { + "14": { "name": "ZAB Sector 38 (Miami Low)", "url": "/play/kphx4_zab38.pls" } @@ -2882,19 +3051,27 @@ "KSDL": { "feeds": { "0": { + "name": "KPHX Approach (Biltmore Sector)", + "url": "/play/kphx4_app_sdl.pls" + }, + "1": { "name": "KSDL ATIS", "url": "/play/ksdl2_atis.pls" }, - "1": { + "2": { "name": "KSDL Emergency/Guard", "url": "/play/ksdl2_guard.pls" }, - "2": { + "3": { "name": "KSDL Ground", "url": "/play/ksdl2_gnd.pls" }, - "3": { - "name": "KSDL Tower", + "4": { + "name": "KSDL Tower #1", + "url": "/archive.php?m=ksdl3_twr" + }, + "5": { + "name": "KSDL Tower #2", "url": "/play/ksdl2_twr.pls" } }, @@ -3507,7 +3684,13 @@ "feeds": "ERROR" }, "KARG": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KARG CTAF/Memphis Center", + "url": "/play/karg1.pls" + } + }, + "name": "Walnut Ridge Regional Airport" }, "KASG": { "feeds": { @@ -3581,7 +3764,13 @@ "feeds": "ERROR" }, "KFSM": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KFSM Gnd/Twr/App", + "url": "/play/kfsm1.pls" + } + }, + "name": "Fort Smith Regional Airport" }, "KFYV": { "feeds": { @@ -3599,13 +3788,7 @@ "feeds": "ERROR" }, "KHBZ": { - "feeds": { - "0": { - "name": "KHBZ CTAF", - "url": "/play/khbz1_ctaf.pls" - } - }, - "name": "Heber Springs Municipal Airport" + "feeds": "ERROR" }, "KHEE": { "feeds": "ERROR" @@ -3689,15 +3872,7 @@ "feeds": { "0": { "name": "KORK CTAF/ZME", - "url": "/archive.php?m=kork" - }, - "1": { - "name": "KORK/KLIT CTAF/Del/Gnd/Twr/App", - "url": "/archive.php?m=kork_lcl_app" - }, - "2": { - "name": "ZME Sectors 20/21 (ORK)", - "url": "/archive.php?m=zme_ork" + "url": "/play/kork.pls" } }, "name": "North Little Rock Municipal Airport" @@ -4782,7 +4957,13 @@ "name": "Buchanan Field" }, "KCEC": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBOK/KCEC CTAF", + "url": "/play/kbok.pls" + } + }, + "name": "Jack Mc Namara Field Airport" }, "KCIC": { "feeds": { @@ -4799,11 +4980,15 @@ "KCMA": { "feeds": { "0": { + "name": "KCMA App/Dep (Mugu App)", + "url": "/play/kcma_app.pls" + }, + "1": { "name": "KCMA ATIS", "url": "/play/kcma_atis.pls" }, - "1": { - "name": "KCMA Gnd/Twr/App", + "2": { + "name": "KCMA Ground/Tower", "url": "/play/kcma.pls" } }, @@ -4966,7 +5151,13 @@ "feeds": "ERROR" }, "KFUL": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KFUL Ground/Tower", + "url": "/play/kful2.pls" + } + }, + "name": "Fullerton Municipal Airport" }, "KGOO": { "feeds": "ERROR" @@ -4978,7 +5169,13 @@ "feeds": "ERROR" }, "KHAF": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KHAF CTAF", + "url": "/play/khaf2.pls" + } + }, + "name": "Half Moon Bay Airport" }, "KHES": { "feeds": "ERROR" @@ -4986,8 +5183,12 @@ "KHHR": { "feeds": { "0": { + "name": "KHHR ATIS", + "url": "/archive.php?m=khhr1_atis" + }, + "1": { "name": "KHHR Ground/Tower", - "url": "/play/khhr2.pls" + "url": "/archive.php?m=khhr1_gnd_twr" } }, "name": "Jack Northrop Field Hawthorne Municipal Airport" @@ -4996,13 +5197,7 @@ "feeds": "ERROR" }, "KHMT": { - "feeds": { - "0": { - "name": "KHMT CTAF", - "url": "/archive.php?m=khmt2" - } - }, - "name": "Hemet Ryan Airport" + "feeds": "ERROR" }, "KHWD": { "feeds": { @@ -5111,94 +5306,110 @@ "url": "/play/klax3n_nw_feeder.pls" }, "2": { + "name": "KLAX ARFF/Emergency", + "url": "/archive.php?m=klax3n_arff" + }, + "3": { + "name": "KLAX ARINC 128.9", + "url": "/play/klax4n_arinc.pls" + }, + "4": { "name": "KLAX ATIS (Arrival)", "url": "/play/klax4n_atis_arr.pls" }, - "3": { + "5": { "name": "KLAX ATIS (Departure)", "url": "/play/klax4n_atis_dep.pls" }, - "4": { + "6": { "name": "KLAX Clearance Delivery", "url": "/play/klax3n_del.pls" }, - "5": { + "7": { "name": "KLAX Dep/West App", "url": "/play/klax7.pls" }, - "6": { + "8": { "name": "KLAX Final App (North)", "url": "/play/klax4n_app_fin_n.pls" }, - "7": { + "9": { "name": "KLAX Final App (North/South)", "url": "/play/klax6.pls" }, - "8": { + "10": { "name": "KLAX Final App (South)", "url": "/play/klax4n_app_fin_s.pls" }, - "9": { + "11": { "name": "KLAX Ground (North)", "url": "/play/klax1.pls" }, - "10": { + "12": { "name": "KLAX Ground (North/South)", "url": "/play/klax_gnd.pls" }, - "11": { + "13": { "name": "KLAX Ground (South)", "url": "/play/klax5.pls" }, - "12": { + "14": { "name": "KLAX SFRA", "url": "/play/klax4n_sfra.pls" }, - "13": { + "15": { "name": "KLAX Tower (Helicopters)", "url": "/play/klax3n_heli.pls" }, - "14": { + "16": { "name": "KLAX Tower (North)", "url": "/play/klax3.pls" }, - "15": { + "17": { "name": "KLAX Tower (North/South)", "url": "/play/klax_twr.pls" }, - "16": { + "18": { "name": "KLAX Tower (South)", "url": "/play/klax4.pls" }, - "17": { - "name": "KLAX Twr (Heli)/SFRA", - "url": "/archive.php?m=klax_heli2" + "19": { + "name": "SOCAL App (Zuma Sector)", + "url": "/play/ksmo2_app_124500.pls" }, - "18": { + "20": { + "name": "SOCAL Dep (Malibu Sector)", + "url": "/play/ksmo2_dep_125200.pls" + }, + "21": { + "name": "SOCAL Dep (Manhattan Sector)", + "url": "/play/ksmo2_dep_124300.pls" + }, + "22": { "name": "ZLA LA Center Sector 09", "url": "/play/ksan_zla09.pls" }, - "19": { + "23": { "name": "ZLA LA Center Sector 10", "url": "/play/ksan_zla10.pls" }, - "20": { + "24": { "name": "ZLA LA Center Sector 12", "url": "/play/ksan_zla12.pls" }, - "21": { + "25": { "name": "ZLA LA Center Sector 30", "url": "/play/ksan_zla30.pls" }, - "22": { + "26": { "name": "ZLA LA Center Sector 31", "url": "/play/ksan_zla31.pls" }, - "23": { + "27": { "name": "ZLA LA Center Sector 40", "url": "/play/ksan_zla40.pls" }, - "24": { + "28": { "name": "ZLA LA Center Sectors 04/13/21", "url": "/play/klax8.pls" } @@ -5287,13 +5498,47 @@ "name": "Sacramento Mather Airport" }, "KMHV": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KMHV App/Dep (133.65)", + "url": "/play/kmhv1_app_133650.pls" + }, + "1": { + "name": "KMHV App/Dep (All)", + "url": "/play/kmhv1_app.pls" + }, + "2": { + "name": "KMHV AWOS", + "url": "/play/kmhv1_awos.pls" + }, + "3": { + "name": "KMHV Ground/Tower", + "url": "/play/kmhv1_local.pls" + } + }, + "name": "Mojave Airport" }, "KMIC": { "feeds": { "0": { + "name": "KMIC ATIS", + "url": "/play/kmic2_atis.pls" + }, + "1": { + "name": "KMIC Emergency/Guard", + "url": "/play/kmic2_guard.pls" + }, + "2": { + "name": "KMIC Ground", + "url": "/play/kmic2_gnd.pls" + }, + "3": { + "name": "KMIC Ground/Tower", + "url": "/play/kmic2_gnd_twr.pls" + }, + "4": { "name": "KMIC Tower/CTAF", - "url": "/play/kmic.pls" + "url": "/play/kmic2_twr.pls" } }, "name": "Crystal Airport" @@ -5338,10 +5583,14 @@ "url": "/play/ksan_kmyf_gnd.pls" }, "2": { + "name": "KMYF Guard", + "url": "/play/ksan_kmyf_guard.pls" + }, + "3": { "name": "KMYF Tower", "url": "/play/kmyf1_twr.pls" }, - "3": { + "4": { "name": "KMYF Tower (Primary)", "url": "/play/ksan_kmyf_twr.pls" } @@ -5487,22 +5736,10 @@ "url": "/play/koak.pls" }, "1": { - "name": "KOAK Tower (Both)", - "url": "/archive.php?m=koak1_twr" - }, - "2": { - "name": "KOAK Tower (Rwys 12/30)", - "url": "/archive.php?m=koak1_twr2" - }, - "3": { - "name": "KOAK Tower (Rwys 28R/10L 28L/10R 15/33)", - "url": "/archive.php?m=koak1_twr1" - }, - "4": { "name": "NORCAL Approach (KOAK)", "url": "/play/koak_app.pls" }, - "5": { + "2": { "name": "NORCAL Departure (KSFO/KOAK)", "url": "/play/koak_dep.pls" } @@ -5518,8 +5755,40 @@ "KONT": { "feeds": { "0": { - "name": "KONT Del/Gnd/Twr/App", - "url": "/play/kont2.pls" + "name": "KONT Del/Gnd/Twr/App #1", + "url": "/play/kont1_all.pls" + }, + "1": { + "name": "KONT Delivery", + "url": "/play/kont1_del.pls" + }, + "2": { + "name": "KONT Ground", + "url": "/play/kont1_gnd.pls" + }, + "3": { + "name": "KONT Tower", + "url": "/play/kont1_twr.pls" + }, + "4": { + "name": "SOCAL App/Dep (KONT NE)", + "url": "/play/kont1_app_127000.pls" + }, + "5": { + "name": "SOCAL App/Dep (KONT NW)", + "url": "/play/kont1_app_125500.pls" + }, + "6": { + "name": "SOCAL App/Dep (KONT SE)", + "url": "/play/kont1_app_134000.pls" + }, + "7": { + "name": "SOCAL App/Dep (KONT SW)", + "url": "/play/kont1_app_135400.pls" + }, + "8": { + "name": "ZLA Sector 12 #1", + "url": "/play/kont1_zla12.pls" } }, "name": "Ontario International Airport" @@ -5667,28 +5936,32 @@ "url": "/play/ksan1_all.pls" }, "4": { - "name": "KSAN SOCAL App/Dep (East)", - "url": "/play/ksan_app_east.pls" - }, - "5": { - "name": "KSAN SOCAL App/Dep (NW)", - "url": "/play/ksan_app_nw.pls" - }, - "6": { - "name": "KSAN SOCAL App/Dep (West)", - "url": "/play/ksan_app_west.pls" - }, - "7": { "name": "KSAN SOCAL Dep (South Bay)", "url": "/play/ksan_dep_125150.pls" }, - "8": { + "5": { "name": "KSAN Tower #1", "url": "/play/ksan1_twr.pls" }, - "9": { + "6": { "name": "KSAN Tower #2", "url": "/play/ksan2.pls" + }, + "7": { + "name": "SOCAL App/Dep (Del Mar VHF)", + "url": "/play/ksan_app_delmar.pls" + }, + "8": { + "name": "SOCAL App/Dep (East)", + "url": "/play/ksan_app_east.pls" + }, + "9": { + "name": "SOCAL App/Dep (NW)", + "url": "/play/ksan_app_nw.pls" + }, + "10": { + "name": "SOCAL App/Dep (West)", + "url": "/play/ksan_app_west.pls" } }, "name": "San Diego International Airport" @@ -5774,8 +6047,16 @@ "KSEE": { "feeds": { "0": { - "name": "KSEE Tower", + "name": "KSEE Del/Gnd", + "url": "/play/ksee_del_gnd.pls" + }, + "1": { + "name": "KSEE Del/Gnd/Twr", "url": "/play/ksee.pls" + }, + "2": { + "name": "KSEE Tower", + "url": "/play/ksee_twr.pls" } }, "name": "Gillespie Field" @@ -5898,16 +6179,40 @@ "KSMO": { "feeds": { "0": { - "name": "KSMO Ground", - "url": "/play/ksmo2_gnd.pls" + "name": "KSMO ATIS", + "url": "/play/ksmo2_atis.pls" }, "1": { + "name": "KSMO Ground #1", + "url": "/play/ksmo2_gnd.pls" + }, + "2": { + "name": "KSMO Ground #2", + "url": "/play/ksmo3_gnd.pls" + }, + "3": { "name": "KSMO Ground/Tower", "url": "/play/ksmo2_s.pls" }, - "2": { - "name": "KSMO Tower", + "4": { + "name": "KSMO Tower #1", "url": "/play/ksmo2_twr.pls" + }, + "5": { + "name": "KSMO Tower #2", + "url": "/play/ksmo3_twr.pls" + }, + "6": { + "name": "SOCAL App (Zuma Sector)", + "url": "/play/ksmo2_app_124500.pls" + }, + "7": { + "name": "SOCAL Dep (Malibu Sector)", + "url": "/play/ksmo2_dep_125200.pls" + }, + "8": { + "name": "SOCAL Dep (Manhattan Sector)", + "url": "/play/ksmo2_dep_124300.pls" } }, "name": "Santa Monica Municipal Airport" @@ -5924,6 +6229,10 @@ "1": { "name": "KSNA Del/Gnd/Twr/App", "url": "/play/ksna2.pls" + }, + "2": { + "name": "KSNA Tower", + "url": "/archive.php?m=ksna3_twr" } }, "name": "John Wayne Airport-Orange County Airport" @@ -5935,7 +6244,7 @@ "feeds": { "0": { "name": "KSTS Ground/Tower", - "url": "/archive.php?m=ksts2" + "url": "/play/ksts2.pls" }, "1": { "name": "KSTS Tower", @@ -6070,50 +6379,54 @@ "KVNY": { "feeds": { "0": { + "name": "KVNY App/Dep (VNY)", + "url": "/play/kvny1_4.pls" + }, + "1": { "name": "KVNY ATIS", "url": "/play/kvny1_atis.pls" }, - "1": { + "2": { "name": "KVNY Del/Gnd", "url": "/play/kvny1_del_gnd.pls" }, - "2": { + "3": { "name": "KVNY Gnd/Heli", "url": "/play/kvny_gnd.pls" }, - "3": { + "4": { "name": "KVNY Gnd/Twr #1", "url": "/play/kvny_gnd_twr.pls" }, - "4": { + "5": { "name": "KVNY Gnd/Twr #2", "url": "/play/kwhp1_kvny_gnd_twr.pls" }, - "5": { + "6": { "name": "KVNY Ground", "url": "/play/kwhp1_kvny_gnd.pls" }, - "6": { + "7": { "name": "KVNY Tower #1", "url": "/play/kvny.pls" }, - "7": { + "8": { "name": "KVNY Tower #2", "url": "/play/kwhp1_kvny_twr.pls" }, - "8": { + "9": { "name": "KVNY Tower #3", "url": "/play/kvny1_twr.pls" }, - "9": { + "10": { "name": "KVNY Tower (East)", "url": "/play/kvny1_twr2.pls" }, - "10": { + "11": { "name": "KVNY Tower (West)", "url": "/play/kvny1_twr1.pls" }, - "11": { + "12": { "name": "KWHP/KVNY/KBUR App/Dep", "url": "/play/kwhp1_app.pls" } @@ -6854,7 +7167,13 @@ "feeds": "ERROR" }, "KANK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KANK CTAF", + "url": "/play/kank2_ctaf.pls" + } + }, + "name": "Harriet Alexander Field" }, "KAPA": { "feeds": { @@ -6923,7 +7242,7 @@ "feeds": { "0": { "name": "KBJC Ground/Tower", - "url": "/play/kbjc2.pls" + "url": "/play/kbjc1.pls" } }, "name": "Rocky Mountain Metropolitan Airport" @@ -6955,7 +7274,7 @@ "feeds": { "0": { "name": "KCEZ CTAF/ZDV", - "url": "/archive.php?m=kcez" + "url": "/play/kcez.pls" } }, "name": "Cortez Municipal Airport" @@ -7035,16 +7354,16 @@ "KFNL": { "feeds": { "0": { + "name": "KFNL ASRI (FBO)", + "url": "/play/kfnl3_unicom.pls" + }, + "1": { "name": "KFNL Ground", "url": "/play/kfnl3_ground.pls" }, - "1": { + "2": { "name": "KFNL Tower/CTAF", "url": "/play/kfnl2.pls" - }, - "2": { - "name": "KFNL UNICOM", - "url": "/archive.php?m=kfnl3_unicom" } }, "name": "Fort Collins Loveland Municipal Airport" @@ -7085,13 +7404,7 @@ "name": "Glenwood Springs Municipal Airport" }, "KGXY": { - "feeds": { - "0": { - "name": "KGXY RCO (Denver Radio)", - "url": "/play/kgxy2_rco.pls" - } - }, - "name": "Greeley Weld County Airport" + "feeds": "ERROR" }, "KHDN": { "feeds": "ERROR" @@ -7122,28 +7435,16 @@ }, "1": { "name": "KLMO CTAF", - "url": "/play/klmo.pls" + "url": "/archive.php?m=klmo" } }, "name": "Vance Brand Airport" }, "KLXV": { - "feeds": { - "0": { - "name": "KLXV CTAF", - "url": "/play/klxv.pls" - } - }, - "name": "Lake County Airport" + "feeds": "ERROR" }, "KMTJ": { - "feeds": { - "0": { - "name": "KMTJ CTAF/ZDV/Guard", - "url": "/play/kmtj2.pls" - } - }, - "name": "Montrose Regional Airport" + "feeds": "ERROR" }, "KMVI": { "feeds": "ERROR" @@ -7161,7 +7462,7 @@ "feeds": { "0": { "name": "KPUB App/Dep (Denver App)", - "url": "/play/kpub1_app.pls" + "url": "/archive.php?m=kpub1_app" }, "1": { "name": "KPUB ATIS", @@ -7173,15 +7474,19 @@ }, "3": { "name": "KPUB Tiger Traffic", - "url": "/play/kpub1_co.pls" + "url": "/archive.php?m=kpub1_co" }, "4": { - "name": "KPUB Tower", - "url": "/play/kpub1_twr.pls" + "name": "KPUB Tiger/Twr2", + "url": "/archive.php?m=kpub1_2" }, "5": { + "name": "KPUB Tower", + "url": "/archive.php?m=kpub1_twr" + }, + "6": { "name": "KPUB Tower #2", - "url": "/play/kpub1_twr2.pls" + "url": "/archive.php?m=kpub1_twr2" } }, "name": "Pueblo Memorial Airport" @@ -7384,7 +7689,13 @@ "name": "Danbury Municipal Airport" }, "KEFD": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KEFD Tower", + "url": "/play/kefd3_twr.pls" + } + }, + "name": "Ellington Field" }, "KGON": { "feeds": "ERROR" @@ -7521,7 +7832,7 @@ "feeds": { "0": { "name": "KDOV App/Dep", - "url": "/archive.php?m=kdov_app" + "url": "/play/kdov_app.pls" }, "1": { "name": "KDOV ATIS", @@ -7529,7 +7840,7 @@ }, "2": { "name": "KDOV Del/Gnd/Twr", - "url": "/archive.php?m=kdov_del_gnd_twr" + "url": "/play/kdov_del_gnd_twr.pls" }, "3": { "name": "KDOV Gnd/App", @@ -7541,7 +7852,7 @@ }, "5": { "name": "ZDC19/53 Kenton/Woodstown", - "url": "/archive.php?m=kdov_zdc" + "url": "/play/kdov_zdc.pls" } }, "name": "Dover Air Force Base" @@ -7553,15 +7864,19 @@ "feeds": { "0": { "name": "KGED ASOS", - "url": "/archive.php?m=kged2_asos" + "url": "/play/kged2_asos.pls" }, "1": { "name": "KGED Clearance Delivery", - "url": "/archive.php?m=kged2_del" + "url": "/play/kged2_del.pls" }, "2": { "name": "KGED CTAF", - "url": "/archive.php?m=kged2_ctaf" + "url": "/play/kged2_ctaf.pls" + }, + "3": { + "name": "KGED Emergency/Guard", + "url": "/play/kged2_guard.pls" } }, "name": "Sussex County Airport" @@ -7740,13 +8055,7 @@ "feeds": "ERROR" }, "17FL": { - "feeds": { - "0": { - "name": "17FL CTAF", - "url": "/play/17fl.pls" - } - }, - "name": "Jumbolair-Greystone Airport" + "feeds": "ERROR" }, "18FA": { "feeds": "ERROR" @@ -8181,7 +8490,7 @@ "feeds": { "0": { "name": "7FL6 CTAF", - "url": "/play/7fl6.pls" + "url": "/archive.php?m=7fl6" } }, "name": "Spruce Creek Airport" @@ -8869,7 +9178,7 @@ "feeds": { "0": { "name": "KAVO CTAF", - "url": "/play/kavo.pls" + "url": "/archive.php?m=kavo" } }, "name": "Avon Park Executive Airport" @@ -8978,7 +9287,7 @@ }, "3": { "name": "KDAB ATIS", - "url": "/archive.php?m=kdab_atis2" + "url": "/play/kdab_atis2.pls" }, "4": { "name": "KDAB Clearance/Ground", @@ -8986,7 +9295,7 @@ }, "5": { "name": "KDAB Ground/Tower", - "url": "/archive.php?m=kdab_tmp" + "url": "/play/kdab_tmp.pls" }, "6": { "name": "KDAB Tower (118.1)", @@ -9033,11 +9342,19 @@ "feeds": { "0": { "name": "KEVB ATIS", - "url": "/archive.php?m=kevb_atis" + "url": "/play/kevb_atis.pls" }, "1": { "name": "KEVB Gnd/Twr", "url": "/play/kevb.pls" + }, + "2": { + "name": "KEVB Ground", + "url": "/play/kevb_gnd.pls" + }, + "3": { + "name": "KEVB Tower", + "url": "/play/kevb_twr.pls" } }, "name": "New Smyrna Beach Municipal Airport" @@ -9085,26 +9402,22 @@ "url": "/play/kfll1_gnd2.pls" }, "7": { - "name": "KFLL Ground/Tower", - "url": "/play/kfll.pls" - }, - "8": { "name": "KFLL Ramp", "url": "/play/kfll1_ramp.pls" }, - "9": { + "8": { "name": "KFLL Tower", "url": "/play/kfll1_twr.pls" }, - "10": { + "9": { "name": "KFLL Tower (Main)", "url": "/play/kfll1_twr1.pls" }, - "11": { + "10": { "name": "KFLL Tower (Secondary)", "url": "/play/kfll1_twr2.pls" }, - "12": { + "11": { "name": "KMIA Approach (KFLL)", "url": "/play/kmia3_app_133775.pls" } @@ -9260,10 +9573,6 @@ "url": "/play/khwo2_twr.pls" }, "3": { - "name": "KHWO Tower (Primary)", - "url": "/archive.php?m=khwo2_twr1" - }, - "4": { "name": "KHWO Tower (Secondary)", "url": "/play/khwo2_twr2.pls" } @@ -9318,20 +9627,56 @@ "url": "/play/sunfunlive1.pls" }, "1": { - "name": "KLAL Approach/Departure", - "url": "/play/klal_app_dep.pls" + "name": "KLAL Arrival ATIS", + "url": "/play/klal_atis_arr.pls" }, "2": { - "name": "KLAL ATIS", + "name": "KLAL ATIS (Departure during Sun 'n Fun) ", "url": "/play/klal_atis.pls" }, "3": { + "name": "KLAL Departure Mon (Rwy 10L/28R)", + "url": "/play/klal_depmon_9l27r.pls" + }, + "4": { + "name": "KLAL Departure Mon (Rwy 10R/28L)", + "url": "/play/klal_depmon_9r27l.pls" + }, + "5": { "name": "KLAL Ground/Advisory", "url": "/play/klal_gnd.pls" }, - "4": { + "6": { + "name": "KLAL Lake Parker VFR Arrival", + "url": "/archive.php?m=klal_lp" + }, + "7": { "name": "KLAL Tower", "url": "/play/klal_twr.pls" + }, + "8": { + "name": "KLAL Tower (North)", + "url": "/play/klal_twr_north.pls" + }, + "9": { + "name": "KLAL Tower (South)", + "url": "/play/klal_twr_south.pls" + }, + "10": { + "name": "KTPA App/Dep (East Low)", + "url": "/play/klal_app_tpa_e.pls" + }, + "11": { + "name": "Sun 'n Fun Air Show/Dep/Misc", + "url": "/play/klal_air.pls" + }, + "12": { + "name": "Sun 'n Fun Paradise City", + "url": "/archive.php?m=snfpc" + }, + "13": { + "name": "Tampa App/Dep (LAL Area)", + "url": "/play/klal_app_dep.pls" } }, "name": "Lakeland Linder Regional Airport" @@ -9361,7 +9706,13 @@ "name": "Leesburg International Airport" }, "KLNA": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLNA CTAF", + "url": "/play/kpbi2_klna.pls" + } + }, + "name": "Palm Beach County Park Airport" }, "KLOM": { "feeds": "ERROR" @@ -9375,50 +9726,54 @@ "KMCO": { "feeds": { "0": { + "name": "KMCO App/Dep (120.15)", + "url": "/play/korl_kmco_app_120150.pls" + }, + "1": { "name": "KMCO App/Dep (124.8)", "url": "/play/korl_kmco_app_124800.pls" }, - "1": { + "2": { "name": "KMCO App/Dep (128.375)", "url": "/play/korl_kmco_app_128375.pls" }, - "2": { + "3": { "name": "KMCO App/Dep (Disney Sector)", "url": "/play/korl_app_119400.pls" }, - "3": { + "4": { "name": "KMCO App/Dep (North Satellite)", "url": "/play/korl_kmco_app_135300.pls" }, - "4": { + "5": { "name": "KMCO App/Dep (OVIDO Sector)", "url": "/play/korl_app_119775.pls" }, - "5": { + "6": { "name": "KMCO Approach (Final)", "url": "/play/korl_kmco_app_final.pls" }, - "6": { - "name": "KMCO Ground (East)", - "url": "/play/korl_kmco_gnd_126400.pls" - }, "7": { - "name": "KMCO Ground (West)", - "url": "/play/korl_kmco_gnd_121800.pls" + "name": "KMCO Ground (East)", + "url": "/archive.php?m=korl_kmco_gnd_126400" }, "8": { - "name": "KMCO Tower (Both)", - "url": "/play/korl_kmco_twr_both.pls" + "name": "KMCO Ground (West)", + "url": "/archive.php?m=korl_kmco_gnd_121800" }, "9": { - "name": "KMCO Tower (East) #1", - "url": "/play/korl_kmco_twr_118450.pls" + "name": "KMCO Tower (Both)", + "url": "/archive.php?m=korl_kmco_twr_both" }, "10": { - "name": "KMCO Tower (West) #1", - "url": "/play/korl_kmco_twr_124300.pls" + "name": "KMCO Tower (East) #1", + "url": "/archive.php?m=korl_kmco_twr_118450" }, "11": { + "name": "KMCO Tower (West) #1", + "url": "/archive.php?m=korl_kmco_twr_124300" + }, + "12": { "name": "KMCO Tower (West) #2", "url": "/play/korl_kmco_twr_west.pls" } @@ -9428,98 +9783,90 @@ "KMIA": { "feeds": { "0": { - "name": "KMIA Approach #1", - "url": "/play/kmia_app.pls" - }, - "1": { "name": "KMIA Approach #2", "url": "/play/kmia_app2.pls" }, - "2": { + "1": { "name": "KMIA Approach (KFLL)", "url": "/play/kmia3_app_133775.pls" }, - "3": { + "2": { "name": "KMIA Approach (North Arr Backup)", "url": "/play/kmia3_app_12575.pls" }, - "4": { + "3": { "name": "KMIA Approach (North Arr)", "url": "/play/kmia3_app_12485.pls" }, - "5": { + "4": { "name": "KMIA Approach (South Arr)", "url": "/play/kmia3_app_1205.pls" }, - "6": { + "5": { "name": "KMIA ATIS (Arrival)", "url": "/play/kmia3_atis_arr.pls" }, - "7": { + "6": { "name": "KMIA ATIS (Departure)", "url": "/play/kmia3_atis_dep.pls" }, - "8": { + "7": { "name": "KMIA Clearance Delivery", "url": "/play/kmia3_del.pls" }, - "9": { + "8": { "name": "KMIA Departure (North)", "url": "/play/kmia3_app_11945.pls" }, - "10": { + "9": { "name": "KMIA Departure (South)", "url": "/play/kmia3_dep_1255.pls" }, - "11": { - "name": "KMIA Departure/Approach", - "url": "/play/kmia_dep.pls" + "10": { + "name": "KMIA Emergency/Guard", + "url": "/play/kmia3_guard.pls" }, - "12": { + "11": { "name": "KMIA Gate Hold", "url": "/play/kmia3_gate_hold.pls" }, - "13": { + "12": { "name": "KMIA Ground (8L/8R/12/26L/26R)", "url": "/play/kmia3_gnd.pls" }, - "14": { - "name": "KMIA Tower #1", - "url": "/play/kmia_twr.pls" - }, - "15": { + "13": { "name": "KMIA Tower #2", "url": "/play/kmia3_twr.pls" }, - "16": { + "14": { "name": "KMIA Tower (North)", "url": "/play/kmia3_twr_1183.pls" }, - "17": { + "15": { "name": "KMIA Tower (South)", "url": "/play/kmia3_twr_1239.pls" }, - "18": { + "16": { "name": "Miami FSS/Misc", "url": "/play/kmia_fss_misc.pls" }, - "19": { + "17": { "name": "Miami FSS/Misc/App", "url": "/play/kmia_fss_app.pls" }, - "20": { + "18": { "name": "ZMA26 Miami Center (Homestead)", "url": "/play/zma26_kmia3.pls" }, - "21": { + "19": { "name": "ZMA40 Miami Center (Bimini)", "url": "/play/zma40_kmia3.pls" }, - "22": { + "20": { "name": "ZMA41 Miami Center (Junar)", "url": "/play/zma41_kmia3.pls" }, - "23": { + "21": { "name": "ZMA60 Miami Center (Georgetown)", "url": "/play/zma60_kmia3.pls" } @@ -9548,7 +9895,7 @@ "feeds": { "0": { "name": "KNDZ/KNSE Twr/App", - "url": "/archive.php?m=kpns1_uhf" + "url": "/play/kpns1_uhf.pls" } }, "name": "Whiting Field Naval Air Station South Airport" @@ -9572,11 +9919,11 @@ "feeds": { "0": { "name": "KNDZ/KNSE Twr/App", - "url": "/archive.php?m=kpns1_uhf" + "url": "/play/kpns1_uhf.pls" }, "1": { - "name": "KPNS/KNPA App 120.65", - "url": "/archive.php?m=kpns1_knpa_app1" + "name": "KPNS App/Dep 120.65", + "url": "/play/kpns1_app_120650.pls" } }, "name": "Pensacola Naval Air Station/Forrest Sherman field" @@ -9594,7 +9941,7 @@ "feeds": { "0": { "name": "KNDZ/KNSE Twr/App", - "url": "/archive.php?m=kpns1_uhf" + "url": "/play/kpns1_uhf.pls" } }, "name": "Whiting Field Naval Air Station North Airport" @@ -9667,50 +10014,58 @@ "KPBI": { "feeds": { "0": { + "name": "KPBI App (Final)", + "url": "/play/kpbi2_final.pls" + }, + "1": { "name": "KPBI App (North)", "url": "/play/kpbi2_app_n.pls" }, - "1": { + "2": { "name": "KPBI App (North/South)", "url": "/play/kpbi2_app.pls" }, - "2": { + "3": { "name": "KPBI App (South)", "url": "/play/kpbi2_app_s.pls" }, - "3": { + "4": { "name": "KPBI ATIS", "url": "/play/kpbi2_atis.pls" }, - "4": { + "5": { "name": "KPBI Clearance Delivery", "url": "/play/kpbi2_del.pls" }, - "5": { + "6": { "name": "KPBI Dep (North)", "url": "/play/kpbi2_dep_n.pls" }, - "6": { + "7": { "name": "KPBI Dep (North/South)", "url": "/play/kpbi2_dep.pls" }, - "7": { + "8": { "name": "KPBI Dep (South)", "url": "/play/kpbi2_dep_s.pls" }, - "8": { + "9": { "name": "KPBI Emergency/Guard", "url": "/play/kpbi2_guard.pls" }, - "9": { + "10": { + "name": "KPBI GA Gate Hold ", + "url": "/play/kpbi2_gate_ga.pls" + }, + "11": { "name": "KPBI Gnd/Twr", "url": "/play/kpbi2_gnd_twr.pls" }, - "10": { + "12": { "name": "KPBI Ground", "url": "/play/kpbi2_gnd.pls" }, - "11": { + "13": { "name": "KPBI Tower", "url": "/play/kpbi2_twr.pls" } @@ -9764,7 +10119,57 @@ "name": "Pompano Beach Airpark" }, "KPNS": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KNDZ/KNSE Twr/App", + "url": "/play/kpns1_uhf.pls" + }, + "1": { + "name": "KPNS App/Dep 118.6", + "url": "/play/kpns1_app_118600.pls" + }, + "2": { + "name": "KPNS App/Dep 119.0", + "url": "/play/kpns1_app_119000.pls" + }, + "3": { + "name": "KPNS App/Dep 120.65", + "url": "/play/kpns1_app_120650.pls" + }, + "4": { + "name": "KPNS App/Dep 125.35", + "url": "/play/kpns1_app_125350.pls" + }, + "5": { + "name": "KPNS ATIS", + "url": "/play/kpns1_atis.pls" + }, + "6": { + "name": "KPNS Clearance Delivery", + "url": "/play/kpns1_del.pls" + }, + "7": { + "name": "KPNS Del/Gnd/Twr", + "url": "/play/kpns3_del_gnd_twr.pls" + }, + "8": { + "name": "KPNS Ground", + "url": "/play/kpns1_gnd.pls" + }, + "9": { + "name": "KPNS Tower #1", + "url": "/play/kpns1_twr.pls" + }, + "10": { + "name": "KPNS Tower #2", + "url": "/play/kpns1_twr2.pls" + }, + "11": { + "name": "KPNS Tower #3", + "url": "/play/kpns2_twr3.pls" + } + }, + "name": "Pensacola Regional Airport" }, "KRSW": { "feeds": { @@ -9779,27 +10184,27 @@ "feeds": { "0": { "name": "KSEF CTAF", - "url": "/play/ksef.pls" + "url": "/archive.php?m=ksef" }, "1": { "name": "KSEF Emergency/Guard", - "url": "/play/ksef_guard.pls" + "url": "/archive.php?m=ksef_guard" }, "2": { "name": "ZMA64 Avon High", - "url": "/play/zma64_sef.pls" + "url": "/archive.php?m=zma64_sef" }, "3": { "name": "ZMA66 Lakeland Low", - "url": "/play/zma66_sef.pls" + "url": "/archive.php?m=zma66_sef" }, "4": { "name": "ZMA66/67 Lakeland", - "url": "/play/zma_sef_lakeland.pls" + "url": "/archive.php?m=zma_sef_lakeland" }, "5": { "name": "ZMA67 Lakeland High", - "url": "/play/zma67_sef.pls" + "url": "/archive.php?m=zma67_sef" } }, "name": "Sebring Regional Airport" @@ -9844,20 +10249,34 @@ "KSGJ": { "feeds": { "0": { + "name": "Jacksonville App/Dep (SGJ)", + "url": "/play/ksgj1_app.pls" + }, + "1": { + "name": "KSGJ ATIS", + "url": "/play/ksgj1_atis.pls" + }, + "2": { + "name": "KSGJ Ground", + "url": "/play/ksgj1_gnd.pls" + }, + "3": { "name": "KSGJ Ground/Tower", - "url": "/play/ksgj.pls" + "url": "/play/ksgj1_gnd_twr.pls" + }, + "4": { + "name": "KSGJ Ground/Tower/App", + "url": "/play/ksgj1_gnd_twr_app.pls" + }, + "5": { + "name": "KSGJ Tower", + "url": "/play/ksgj1_twr.pls" } }, "name": "St Augustine Airport" }, "KSPG": { - "feeds": { - "0": { - "name": "KSPG Tower", - "url": "/play/kspg2.pls" - } - }, - "name": "Albert Whitted Airport" + "feeds": "ERROR" }, "KSRQ": { "feeds": { @@ -9883,14 +10302,10 @@ "KSUA": { "feeds": { "0": { - "name": "KSUA ATIS", - "url": "/play/ksua1_atis.pls" - }, - "1": { "name": "KSUA Ground/Tower", "url": "/play/ksua1.pls" }, - "2": { + "1": { "name": "Palm Beach App/Dep", "url": "/play/kfpr1_app.pls" } @@ -9954,20 +10369,24 @@ "KTPA": { "feeds": { "0": { - "name": "KTPA App/Dep 118.8", - "url": "/archive.php?m=ktpa1_app_118800" + "name": "KTPA App/Dep (135.5)", + "url": "/play/ktpa1_app_135500.pls" }, "1": { - "name": "KTPA Gnd/Twr/App", - "url": "/play/ktpa2.pls" + "name": "KTPA App/Dep (East Low)", + "url": "/play/klal_app_tpa_e.pls" }, "2": { - "name": "KTPA Ground", - "url": "/archive.php?m=ktpa1_gnd" + "name": "KTPA App/Dep 118.8 #1", + "url": "/play/ktpa1_app_118800.pls" }, "3": { - "name": "KTPA Tower", - "url": "/archive.php?m=ktpa1_twr" + "name": "KTPA Ground", + "url": "/play/ktpa1_gnd.pls" + }, + "4": { + "name": "KTPA Tower #1", + "url": "/play/ktpa1_twr.pls" } }, "name": "Tampa International Airport" @@ -10955,7 +11374,7 @@ "url": "/play/kryy1_atlapp_128000.pls" }, "2": { - "name": "KATL Approach (Center Final/South Sat)", + "name": "KATL Approach (Center Final)", "url": "/play/kcco1_atl_app.pls" }, "3": { @@ -11032,11 +11451,11 @@ }, "21": { "name": "ZTL Atlanta Ctr (Sector 38 N Dep)", - "url": "/play/kgvl1_ztl38.pls" + "url": "/archive.php?m=kgvl1_ztl38" }, "22": { "name": "ZTL Atlanta Ctr (Sector 49 LOGEN) #1", - "url": "/play/kgvl1_ztl49.pls" + "url": "/archive.php?m=kgvl1_ztl49" }, "23": { "name": "ZTL Atlanta Ctr (Sector 49 LOGEN) #2", @@ -11069,8 +11488,24 @@ "KCCO": { "feeds": { "0": { + "name": "KATL Approach (South Sat)", + "url": "/play/kcco1_app.pls" + }, + "1": { + "name": "KCCO Area Air-to-Air", + "url": "/play/kcco1_a2a.pls" + }, + "2": { + "name": "KCCO AWOS", + "url": "/play/kcco1_awos.pls" + }, + "3": { "name": "KCCO CTAF", "url": "/play/kcco1.pls" + }, + "4": { + "name": "KCCO Emergency/Guard", + "url": "/play/kcco1_guard.pls" } }, "name": "Newnan Coweta County Airport" @@ -11085,7 +11520,7 @@ "feeds": { "0": { "name": "KCTJ/KLGC CTAF", - "url": "/archive.php?m=kcco1_122975" + "url": "/play/kcco1_122975.pls" } }, "name": "West Georgia Regional O V Gray Field" @@ -11152,7 +11587,7 @@ "feeds": { "0": { "name": "KGVL AWOS", - "url": "/play/kgvl1_awos.pls" + "url": "/archive.php?m=kgvl1_awos" }, "1": { "name": "KGVL CTAF/Clearance", @@ -11286,13 +11721,7 @@ "feeds": "ERROR" }, "KPXE": { - "feeds": { - "0": { - "name": "KPXE CTAF", - "url": "/play/kpxe.pls" - } - }, - "name": "Perry Houston County Airport" + "feeds": "ERROR" }, "KRMG": { "feeds": "ERROR" @@ -11312,7 +11741,7 @@ }, "2": { "name": "KRYY Gnd/Twr/CTAF", - "url": "/play/kryy2.pls" + "url": "/archive.php?m=kryy2" }, "3": { "name": "KRYY Ground", @@ -11326,7 +11755,25 @@ "name": "Cobb County-Mc Collum Field" }, "KSAV": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KSAV App/Dep", + "url": "/play/ksav1_app.pls" + }, + "1": { + "name": "KSAV Del/Gnd", + "url": "/play/ksav1_del_gnd.pls" + }, + "2": { + "name": "KSAV Tower", + "url": "/play/ksav1_twr.pls" + }, + "3": { + "name": "ZJX Sectors 67/68/73", + "url": "/play/ksav1_zjx.pls" + } + }, + "name": "Savannah Hilton Head International Airport" }, "KSBO": { "feeds": "ERROR" @@ -11347,7 +11794,13 @@ "feeds": "ERROR" }, "KTOC": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KTOC CTAF", + "url": "/play/ktoc2.pls" + } + }, + "name": "Toccoa Rg Letourneau Field" }, "KTVI": { "feeds": "ERROR" @@ -11369,7 +11822,7 @@ }, "1": { "name": "KVLD Gnd/Twr/App/Dep/Center", - "url": "/archive.php?m=kvld_s" + "url": "/play/kvld_s.pls" }, "2": { "name": "ZJX Jax Center (Valdosta GA)", @@ -11384,8 +11837,12 @@ "KWDR": { "feeds": { "0": { - "name": "KWDR/KCVC/KCNI CTAF", + "name": "KWDR/KCVC/KCNI CTAF #1", "url": "/play/kwdr4_ctaf.pls" + }, + "1": { + "name": "KWDR/KCVC/KCNI CTAF #2", + "url": "/play/kwdr2_ctaf.pls" } }, "name": "Barrow County Airport" @@ -11492,7 +11949,77 @@ "feeds": "ERROR" }, "PHNL": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "HCF Center (Mt. Kaala/119.9)", + "url": "/play/phnl1_hcf_119900.pls" + }, + "1": { + "name": "HCF Center (Mt. Kaala/126.5)", + "url": "/play/phnl1_hcf_126500.pls" + }, + "2": { + "name": "HCF Center (W/NW/Oceanic)", + "url": "/play/phnl1_ctr.pls" + }, + "3": { + "name": "PHNL ARFF/Emergency", + "url": "/play/phnl1_arff.pls" + }, + "4": { + "name": "PHNL ATIS", + "url": "/play/phnl1_atis.pls" + }, + "5": { + "name": "PHNL Clearance Delivery", + "url": "/play/phnl1_del.pls" + }, + "6": { + "name": "PHNL Del/Gnd/Ramp", + "url": "/play/phnl1_dgr.pls" + }, + "7": { + "name": "PHNL Emergency/Guard", + "url": "/play/phnl1_guard.pls" + }, + "8": { + "name": "PHNL Ground", + "url": "/play/phnl1_gnd.pls" + }, + "9": { + "name": "PHNL HCF App/Dep", + "url": "/play/phnl1_app.pls" + }, + "10": { + "name": "PHNL HCF App/Dep (119.1)", + "url": "/play/phnl1_app_119100.pls" + }, + "11": { + "name": "PHNL HCF App/Dep (East)", + "url": "/play/phnl1_app_e.pls" + }, + "12": { + "name": "PHNL HCF App/Dep (West)", + "url": "/play/phnl1_app_w.pls" + }, + "13": { + "name": "PHNL Ramp Advisory", + "url": "/play/phnl1_ramp.pls" + }, + "14": { + "name": "PHNL Tower (Both)", + "url": "/play/phnl1_twr.pls" + }, + "15": { + "name": "PHNL Tower (Primary)", + "url": "/play/phnl1_twr_pri.pls" + }, + "16": { + "name": "PHNL Tower (Rwy 08R/26L)", + "url": "/play/phnl1_twr_08r26l.pls" + } + }, + "name": "Honolulu International Airport" }, "PHNP": { "feeds": "ERROR" @@ -11949,7 +12476,21 @@ "feeds": "ERROR" }, "KCOE": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCOE CTAF", + "url": "/play/kcoe2_ctaf.pls" + }, + "1": { + "name": "KCOE FSS", + "url": "/play/kcoe2_fss.pls" + }, + "2": { + "name": "Seattle Center (Sector 8)", + "url": "/play/kcoe2_zse8.pls" + } + }, + "name": "Coeur D'Alene - Pappy Boyington Field" }, "KDIJ": { "feeds": "ERROR" @@ -11958,7 +12499,7 @@ "feeds": { "0": { "name": "KMAN/KEUL CTAF", - "url": "/play/kman.pls" + "url": "/archive.php?m=kman" } }, "name": "Caldwell Industrial Airport" @@ -11979,7 +12520,13 @@ "feeds": "ERROR" }, "KLWS": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLWS Ground/Tower", + "url": "/play/klws.pls" + } + }, + "name": "Lewiston Nez Perce County Airport" }, "KMLD": { "feeds": "ERROR" @@ -13429,8 +13976,24 @@ "KBMI": { "feeds": { "0": { + "name": "KBMI App/Dep", + "url": "/play/kbmi_app.pls" + }, + "1": { + "name": "KBMI ATIS", + "url": "/play/kbmi_atis.pls" + }, + "2": { + "name": "KBMI Gnd/Twr/App", + "url": "/play/kbmi_gnd_twr_app.pls" + }, + "3": { "name": "KBMI Gnd/Twr/App/Dep", "url": "/play/kbmi.pls" + }, + "4": { + "name": "ZAU Sector 45 Roberts High", + "url": "/play/kbmi_zau.pls" } }, "name": "Central Illinois Regional Airport at Bloomington-Normal" @@ -13460,7 +14023,17 @@ "feeds": "ERROR" }, "KCMI": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCMI App/Dep", + "url": "/archive.php?m=kcmi2_app" + }, + "1": { + "name": "KCMI Tower", + "url": "/archive.php?m=kcmi2_twr" + } + }, + "name": "University of Illinois Willard Airport" }, "KCPS": { "feeds": { @@ -13513,7 +14086,13 @@ "feeds": "ERROR" }, "KFEP": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "C77/1C8/KFEP CTAF", + "url": "/play/krfd2_c77_ctaf.pls" + } + }, + "name": "Albertus Airport" }, "KFOA": { "feeds": "ERROR" @@ -13522,7 +14101,13 @@ "feeds": "ERROR" }, "KGBG": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KGBG CTAF", + "url": "/play/kgbg_ctaf.pls" + } + }, + "name": "Galesburg Municipal Airport" }, "KGRE": { "feeds": "ERROR" @@ -13567,7 +14152,7 @@ "feeds": { "0": { "name": "KMDH Ground/Tower", - "url": "/play/kmdh.pls" + "url": "/archive.php?m=kmdh" } }, "name": "Southern Illinois Airport" @@ -13587,11 +14172,11 @@ "url": "/play/kmdw_2.pls" }, "3": { - "name": "KMDW Ground #1", + "name": "KMDW Ground", "url": "/play/kmdw_3.pls" }, "4": { - "name": "KMDW Tower #1", + "name": "KMDW Tower", "url": "/play/kmdw_1.pls" } }, @@ -13645,44 +14230,64 @@ "url": "/play/kord6.pls" }, "3": { + "name": "KORD App (28C)", + "url": "/play/kord1n1_app_132175.pls" + }, + "4": { + "name": "KORD ATIS", + "url": "/play/kord13.pls" + }, + "5": { "name": "KORD Clearance/Metering", "url": "/play/kord9.pls" }, - "4": { + "6": { + "name": "KORD Dep (125.0)", + "url": "/play/kord2n_dep_125000.pls" + }, + "7": { + "name": "KORD Dep (125.4)", + "url": "/play/kord1n1_dep_125400.pls" + }, + "8": { "name": "KORD Departure", "url": "/play/kord8.pls" }, - "5": { + "9": { "name": "KORD Ground", "url": "/play/kord1.pls" }, - "6": { - "name": "KORD Ramp/De-Ice/Misc", - "url": "/archive.php?m=kord2n_ramp" + "10": { + "name": "KORD Ground (Inbound)", + "url": "/play/kord2n_gnd_in.pls" }, - "7": { + "11": { + "name": "KORD Ground (Outbound)", + "url": "/play/kord2n_gnd_out.pls" + }, + "12": { "name": "KORD Tower", "url": "/play/kord7.pls" }, - "8": { + "13": { "name": "KORD Tower (Center)", "url": "/play/kord2.pls" }, - "9": { + "14": { "name": "KORD Tower (North)", "url": "/play/kord4.pls" }, - "10": { + "15": { "name": "KORD Tower (South)", "url": "/play/kord3.pls" }, - "11": { + "16": { "name": "ZAU Chicago Center (Sector 74 FARMM Low)", "url": "/play/zau_farmm.pls" }, - "12": { + "17": { "name": "ZAU Chicago Center (Sector 81 CRIBB Low)", - "url": "/play/kord10.pls" + "url": "/play/kord1n1_zau_cribb.pls" } }, "name": "Chicago O'Hare International Airport" @@ -13739,8 +14344,40 @@ "KPWK": { "feeds": { "0": { - "name": "KPWK Del/Gnd/Tower", - "url": "/play/kpwk.pls" + "name": "Chicago Approach (North)", + "url": "/play/kugn_app.pls" + }, + "1": { + "name": "KPWK ATIS", + "url": "/play/kpwk1_atis.pls" + }, + "2": { + "name": "KPWK Clearance Delivery", + "url": "/play/kpwk1_del.pls" + }, + "3": { + "name": "KPWK Ground #1", + "url": "/play/kpwk1_gnd.pls" + }, + "4": { + "name": "KPWK Ground #2", + "url": "/play/kpwk1_gnd2.pls" + }, + "5": { + "name": "KPWK Ground/Tower #1", + "url": "/play/kpwk1_gnd_twr.pls" + }, + "6": { + "name": "KPWK Ground/Tower #2", + "url": "/play/kpwk1_gnd_twr2.pls" + }, + "7": { + "name": "KPWK Tower #1", + "url": "/play/kpwk1_twr.pls" + }, + "8": { + "name": "KPWK Tower #2", + "url": "/play/kpwk1_twr2.pls" } }, "name": "Chicago Executive Airport" @@ -13748,26 +14385,54 @@ "KRFD": { "feeds": { "0": { - "name": "KRFD Gnd/Twr/App", - "url": "/play/krfd.pls" + "name": "KRFD App/Dep", + "url": "/play/krfd2_app.pls" + }, + "1": { + "name": "KRFD ATIS", + "url": "/play/krfd2_atis.pls" + }, + "2": { + "name": "KRFD Del/Gnd", + "url": "/play/krfd2_del_gnd.pls" + }, + "3": { + "name": "KRFD Del/Gnd/Twr", + "url": "/play/krfd2_del_gnd_twr.pls" + }, + "4": { + "name": "KRFD Del/Gnd/Twr/App", + "url": "/play/krfd2_del_gnd_twr_app.pls" + }, + "5": { + "name": "KRFD Emery/FBO", + "url": "/play/krfd2_emery.pls" + }, + "6": { + "name": "KRFD Tower", + "url": "/play/krfd2_twr.pls" + }, + "7": { + "name": "ZAU Sector 92 (HAWKS)", + "url": "/play/krfd2_zau.pls" } }, "name": "Chicago Rockford International Airport" }, "KRPJ": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KRPJ CTAF", + "url": "/play/krfd2_krpj.pls" + } + }, + "name": "Rochelle Municipal Airport - Koritz Field" }, "KRSV": { "feeds": "ERROR" }, "KSAR": { - "feeds": { - "0": { - "name": "KSAR CTAF", - "url": "/archive.php?m=ksar1_ctaf" - } - }, - "name": "Sparta Community Hunter Field" + "feeds": "ERROR" }, "KSFY": { "feeds": "ERROR" @@ -15227,7 +15892,21 @@ "feeds": "ERROR" }, "KBAK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBAK Gnd/Twr", + "url": "/play/kbak2_gnd_twr.pls" + }, + "1": { + "name": "KBAK Gnd/Twr/App/Dep", + "url": "/play/kbak2_s.pls" + }, + "2": { + "name": "KBAK Indy App/Dep/Guard", + "url": "/play/kbak2_app.pls" + } + }, + "name": "Columbus Municipal Airport" }, "KBFR": { "feeds": "ERROR" @@ -15325,7 +16004,21 @@ "feeds": "ERROR" }, "KGWB": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KGWB AWOS", + "url": "/play/kgwb1_awos.pls" + }, + "1": { + "name": "KGWB Clearance Delivery", + "url": "/archive.php?m=kgwb1_del" + }, + "2": { + "name": "KGWB CTAF", + "url": "/play/kgwb1_ctaf.pls" + } + }, + "name": "De Kalb County Airport" }, "KGYY": { "feeds": "ERROR" @@ -15369,12 +16062,12 @@ "url": "/play/khuf_twr.pls" }, "6": { - "name": "ZID Sector 35 (Terre Haute Low)", - "url": "/play/khuf_zid_low.pls" + "name": "ZID Indy Center (King)", + "url": "/play/khuf_zid_hi.pls" }, "7": { - "name": "ZID Sector 80 (King High)", - "url": "/play/khuf_zid_hi.pls" + "name": "ZID Indy Center (Terre Haute)", + "url": "/play/khuf_zid_low.pls" } }, "name": "Terre Haute International Hulman Field" @@ -15389,29 +16082,55 @@ "feeds": "ERROR" }, "KIMS": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KIMS AWOS", + "url": "/play/kims1_awos.pls" + }, + "1": { + "name": "KIMS CTAF", + "url": "/play/kims1_ctaf.pls" + } + }, + "name": "Madison Municipal Airport" }, "KIND": { "feeds": { "0": { "name": "KIND App/Dep", - "url": "/play/kind5.pls" + "url": "/play/kind2_app.pls" }, "1": { - "name": "KIND Ground", - "url": "/play/kind3.pls" + "name": "KIND ATIS", + "url": "/play/kind2_atis.pls" }, "2": { - "name": "KIND Tower", - "url": "/play/kind4.pls" + "name": "KIND Ground", + "url": "/play/kind2_gnd.pls" }, "3": { - "name": "KIND UNICOM/FSS/FBO", - "url": "/play/kind6.pls" + "name": "KIND Tower", + "url": "/play/kind2_twr.pls" }, "4": { - "name": "ZID Indy Center (IND)", - "url": "/play/zid_int.pls" + "name": "ZID Indy Center (Indianapolis)", + "url": "/play/kind2_zid_133425.pls" + }, + "5": { + "name": "ZID Indy Center (Muncie)", + "url": "/play/kind2_zid_124525.pls" + }, + "6": { + "name": "ZID Indy Center (Rushville)", + "url": "/play/kind2_zid_125125.pls" + }, + "7": { + "name": "ZID Indy Center (Shelbyville)", + "url": "/play/kind2_zid_119550.pls" + }, + "8": { + "name": "ZID Indy Center (Wabash)", + "url": "/play/kind2_zid_132775.pls" } }, "name": "Indianapolis International Airport" @@ -15485,7 +16204,7 @@ }, "2": { "name": "MA/RI/CT Area CTAF", - "url": "/play/marict_area_ctaf.pls" + "url": "/archive.php?m=marict_area_ctaf" } }, "name": "Plymouth Municipal Airport" @@ -15994,7 +16713,7 @@ "feeds": { "0": { "name": "KCID Del/Gnd/Twr/App", - "url": "/play/kcid2.pls" + "url": "/archive.php?m=kcid2" }, "1": { "name": "KCID Gnd/Twr/App/KIOW", @@ -16086,8 +16805,8 @@ "KDSM": { "feeds": { "0": { - "name": "KDSM Del/Gnd/Twr/App", - "url": "/archive.php?m=kdsm1" + "name": "KDSM Twr/App", + "url": "/play/kdsm2.pls" } }, "name": "Des Moines International Airport" @@ -17113,7 +17832,7 @@ "feeds": { "0": { "name": "KSLN ATIS", - "url": "/archive.php?m=ksln_atis" + "url": "/play/ksln_atis.pls" }, "1": { "name": "KSLN Ground", @@ -17129,7 +17848,7 @@ }, "4": { "name": "ZKC KC Center (Salina Low/High)", - "url": "/archive.php?m=zkc_sln" + "url": "/play/zkc_sln.pls" } }, "name": "Salina Municipal Airport" @@ -17770,11 +18489,11 @@ }, "1": { "name": "KCVG Approach (Final)", - "url": "/archive.php?m=kcvg1_app_final" + "url": "/play/kcvg1_app_final.pls" }, "2": { "name": "KCVG Approach (North)", - "url": "/archive.php?m=kcvg1_app_n" + "url": "/play/kcvg1_app_n.pls" }, "3": { "name": "KCVG Approach (South)", @@ -17782,15 +18501,15 @@ }, "4": { "name": "KCVG ATIS (Arrival)", - "url": "/archive.php?m=kcvg1_atis_arr" + "url": "/play/kcvg1_atis_arr.pls" }, "5": { "name": "KCVG ATIS (Departure)", - "url": "/archive.php?m=kcvg1_atis_dep" + "url": "/play/kcvg1_atis_dep.pls" }, "6": { "name": "KCVG Clearance Delivery", - "url": "/archive.php?m=kcvg2_del" + "url": "/play/kcvg2_del.pls" }, "7": { "name": "KCVG Departure (East)", @@ -17798,7 +18517,7 @@ }, "8": { "name": "KCVG Departure (East/West)", - "url": "/archive.php?m=kcvg2_dep" + "url": "/play/kcvg2_dep.pls" }, "9": { "name": "KCVG Departure (West)", @@ -17814,7 +18533,7 @@ }, "12": { "name": "KCVG Tower (All)", - "url": "/archive.php?m=kcvg1_twr_all" + "url": "/play/kcvg1_twr_all.pls" }, "13": { "name": "KCVG Tower (Center)", @@ -17826,10 +18545,10 @@ }, "15": { "name": "KCVG Tower (West)", - "url": "/archive.php?m=kcvg1_twr_w" + "url": "/play/kcvg1_twr_w.pls" }, "16": { - "name": "ZID76 Indy Center (Batesville)", + "name": "ZID Indy Center (Batesville)", "url": "/play/kcvg2_zid76.pls" } }, @@ -18529,10 +19248,6 @@ "0": { "name": "KMSY Del/Gnd/Twr/App", "url": "/play/kmsy2.pls" - }, - "1": { - "name": "KMSY Gnd/Twr/App", - "url": "/archive.php?m=kmsy" } }, "name": "Louis Armstrong New Orleans International Airport" @@ -18944,12 +19659,20 @@ "KAUG": { "feeds": { "0": { - "name": "KAUG Del/CTAF", - "url": "/play/kaug.pls" + "name": "KAUG App/Center", + "url": "/play/kaug_app.pls" }, "1": { - "name": "KAUG Portland App/ZBW", - "url": "/play/kaug_app.pls" + "name": "KAUG ASOS", + "url": "/play/kaug2_asos.pls" + }, + "2": { + "name": "KAUG Clearance Delivery", + "url": "/play/kaug2_del.pls" + }, + "3": { + "name": "KAUG CTAF/FSS", + "url": "/play/kaug.pls" } }, "name": "Augusta State Airport" @@ -19474,32 +20197,40 @@ "url": "/play/kmrb1_app_belay.pls" }, "4": { + "name": "Potomac App (BELAY/BUFFR)", + "url": "/play/kbwi_belay.pls" + }, + "5": { "name": "Potomac App (DC ADIZ)", "url": "/play/kbwi_adiz.pls" }, - "5": { + "6": { "name": "Potomac App (Final)", "url": "/play/kbwi_final.pls" }, - "6": { + "7": { "name": "Potomac App (GRACO/PALEO)", "url": "/play/kbwi_graco.pls" }, - "7": { + "8": { "name": "Potomac App (WOOLY) #1", "url": "/play/kbwi_wooly.pls" }, - "8": { + "9": { "name": "Potomac App (WOOLY) #2", "url": "/play/kbwi1_pi_wooly.pls" }, - "9": { + "10": { "name": "Potomac App/Dep (BUFFR)", "url": "/play/kmrb1_app_buffr.pls" }, - "10": { + "11": { "name": "ZDC Washington Center (SWANN)", "url": "/play/zdc_swann.pls" + }, + "12": { + "name": "ZDC Washington Center (SWANN) #2", + "url": "/play/kbwi1_pi_zdc_swann.pls" } }, "name": "Baltimore/Washington International Thurgood Marshal Airport" @@ -19528,10 +20259,6 @@ "1": { "name": "KFDK Del/Gnd/Twr/CTAF #1", "url": "/play/kfdk2.pls" - }, - "2": { - "name": "KFDK Del/Gnd/Twr/CTAF #2", - "url": "/play/kfdk.pls" } }, "name": "Frederick Municipal Airport" @@ -19551,8 +20278,16 @@ "KHGR": { "feeds": { "0": { + "name": "KHGR Ground/Tower", + "url": "/play/khgr2_gnd_twr.pls" + }, + "1": { "name": "KHGR Tower", "url": "/play/kmrb1_khgr_twr.pls" + }, + "2": { + "name": "ZDC Sector 06 (HGR)", + "url": "/play/kmrb1_zdc_hgr.pls" } }, "name": "Hagerstown Regional Richard A Henson Field" @@ -19560,10 +20295,14 @@ "KMTN": { "feeds": { "0": { + "name": "KMTN Gnd/Twr", + "url": "/play/kmtn1.pls" + }, + "1": { "name": "KMTN Ground/Misc", "url": "/play/kmtn_gnd.pls" }, - "1": { + "2": { "name": "KMTN Tower", "url": "/play/kmtn_twr.pls" } @@ -19900,30 +20639,34 @@ "url": "/play/kbed_murp_app.pls" }, "2": { + "name": "Boston App/Dep (North Sat) #3", + "url": "/play/kbed4_app.pls" + }, + "3": { "name": "KBED ATIS #1", "url": "/play/kbed1_atis.pls" }, - "3": { + "4": { "name": "KBED ATIS #2", "url": "/play/kbed_murp_atis2.pls" }, - "4": { + "5": { "name": "KBED Clearance Delivery", "url": "/play/kbed1_del.pls" }, - "5": { + "6": { "name": "KBED Del/Gnd", "url": "/play/kbed1_del_gnd.pls" }, - "6": { + "7": { "name": "KBED Gnd/Twr", "url": "/play/kbed1_gnd_twr.pls" }, - "7": { + "8": { "name": "KBED Ground", "url": "/play/kbed1_gnd.pls" }, - "8": { + "9": { "name": "KBED Tower", "url": "/play/kbed1_twr.pls" } @@ -19950,7 +20693,7 @@ }, "4": { "name": "KBOS ARINC/Flight Service", - "url": "/play/kbos_arinc_fs.pls" + "url": "/archive.php?m=kbos_arinc_fs" }, "5": { "name": "KBOS Del/Gnd", @@ -20087,7 +20830,7 @@ "feeds": { "0": { "name": "5B6/KCQX/KPVC CTAF", - "url": "/play/khya2_122800.pls" + "url": "/archive.php?m=khya2_122800" } }, "name": "Chatham Municipal Airport" @@ -20098,7 +20841,7 @@ "KFIT": { "feeds": { "0": { - "name": "KCON/KFIT CTAF", + "name": "KCON/KDAW/KFIT CTAF", "url": "/play/kmht_murp_122700.pls" }, "1": { @@ -20174,7 +20917,7 @@ "feeds": { "0": { "name": "ARINC Oceanic", - "url": "/play/khya2_arinc.pls" + "url": "/archive.php?m=khya2_arinc" }, "1": { "name": "Boston Approach (Cape North)", @@ -20182,27 +20925,27 @@ }, "2": { "name": "KHYA ATIS", - "url": "/play/khya2_atis.pls" + "url": "/archive.php?m=khya2_atis" }, "3": { "name": "KHYA Del/Gnd", - "url": "/play/khya2_del_gnd.pls" + "url": "/archive.php?m=khya2_del_gnd" }, "4": { "name": "KHYA Del/Gnd/Twr", - "url": "/play/khya2_del_gnd_twr.pls" + "url": "/archive.php?m=khya2_del_gnd_twr" }, "5": { "name": "KHYA Emergency/Guard", - "url": "/play/khya2_121500.pls" + "url": "/archive.php?m=khya2_121500" }, "6": { "name": "KHYA Tower", - "url": "/play/khya2_twr.pls" + "url": "/archive.php?m=khya2_twr" }, "7": { "name": "ZBW Boston Center (ACK17)", - "url": "/play/khya2_zbw.pls" + "url": "/play/kfmh1_zbw17.pls" } }, "name": "Barnstable Municipal Boardman Polando Field" @@ -20252,7 +20995,7 @@ "feeds": { "0": { "name": "FSS (Central MA)", - "url": "/play/korh2_fss.pls" + "url": "/archive.php?m=korh2_fss" }, "1": { "name": "KORH ATIS", @@ -20273,7 +21016,7 @@ "feeds": { "0": { "name": "KOWD Ground/Tower", - "url": "/play/kowd.pls" + "url": "/play/kowd2.pls" } }, "name": "Norwood Memorial Airport" @@ -20285,11 +21028,11 @@ "feeds": { "0": { "name": "5B6/KCQX/KPVC CTAF", - "url": "/play/khya2_122800.pls" + "url": "/archive.php?m=khya2_122800" }, "1": { "name": "KPVC CTAF", - "url": "/play/kpvc.pls" + "url": "/archive.php?m=kpvc" } }, "name": "Provincetown Municipal Airport" @@ -20298,7 +21041,7 @@ "feeds": { "0": { "name": "KTAN CTAF", - "url": "/play/ktan.pls" + "url": "/archive.php?m=ktan" } }, "name": "Taunton Municipal King Field" @@ -20782,17 +21525,7 @@ "feeds": "ERROR" }, "KAPN": { - "feeds": { - "0": { - "name": "KAPN App/Dep/ZMP", - "url": "/play/kapn_app.pls" - }, - "1": { - "name": "KAPN Tower", - "url": "/play/kapn_twr.pls" - } - }, - "name": "Alpena County Regional Airport" + "feeds": "ERROR" }, "KARB": { "feeds": { @@ -20927,7 +21660,21 @@ "feeds": "ERROR" }, "KFNT": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KFNT App/Dep", + "url": "/play/kfnt2_app.pls" + }, + "1": { + "name": "KFNT Tower", + "url": "/play/kfnt2_twr.pls" + }, + "2": { + "name": "ZOB Sector 12", + "url": "/play/kfnt2_zob12.pls" + } + }, + "name": "Bishop International Airport" }, "KFPK": { "feeds": "ERROR" @@ -21055,7 +21802,53 @@ "feeds": "ERROR" }, "KMKG": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KMKG App/Dep (North)", + "url": "/archive.php?m=kmkg3_app_n" + }, + "1": { + "name": "KMKG App/Dep (North/South)", + "url": "/archive.php?m=kmkg3_app" + }, + "2": { + "name": "KMKG App/Dep (South)", + "url": "/archive.php?m=kmkg3_app_s" + }, + "3": { + "name": "KMKG ATIS", + "url": "/archive.php?m=kmkg3_atis" + }, + "4": { + "name": "KMKG Emergency/Guard", + "url": "/archive.php?m=kmkg3_guard" + }, + "5": { + "name": "KMKG Gnd/Twr/App/Dep", + "url": "/archive.php?m=kmkg3_all" + }, + "6": { + "name": "KMKG Ground", + "url": "/archive.php?m=kmkg3_gnd" + }, + "7": { + "name": "KMKG Ground/Tower", + "url": "/archive.php?m=kmkg3_gnd_twr" + }, + "8": { + "name": "KMKG Tower", + "url": "/archive.php?m=kmkg3_twr" + }, + "9": { + "name": "KMKG UNICOM", + "url": "/archive.php?m=kmkg3_unicom" + }, + "10": { + "name": "ZAU Sectors 24/25", + "url": "/archive.php?m=kmkg3_zau" + } + }, + "name": "Muskegon County Airport" }, "KMNM": { "feeds": "ERROR" @@ -21066,28 +21859,8 @@ "KMTC": { "feeds": { "0": { - "name": "KMTC App/Dep", - "url": "/archive.php?m=kmtc1_app" - }, - "1": { "name": "KMTC Ground/Tower", "url": "/archive.php?m=kmtc1_gnd_twr" - }, - "2": { - "name": "ZOB Sector 19 Gamble Hi", - "url": "/archive.php?m=zob_alg1_gambshi" - }, - "3": { - "name": "ZOB Sector 20 Dresden Low", - "url": "/archive.php?m=zob_alg1_dresdlo" - }, - "4": { - "name": "ZOB Sector 26 Lake Hi", - "url": "/archive.php?m=zob_alg1_lakehi" - }, - "5": { - "name": "ZOB Sector 27 Hudson Hi", - "url": "/archive.php?m=zob_alg1_hudhi" } }, "name": "Selfridge Angb Airport" @@ -21111,13 +21884,7 @@ "feeds": "ERROR" }, "KPHN": { - "feeds": { - "0": { - "name": "KMTC Area CTAF", - "url": "/archive.php?m=kmtc1_area_ctaf" - } - }, - "name": "St Clair County International Airport" + "feeds": "ERROR" }, "KPLN": { "feeds": "ERROR" @@ -21190,8 +21957,7 @@ "KVLL": { "feeds": { "0": { - "name": "KMTC Area CTAF", - "url": "/archive.php?m=kmtc1_area_ctaf" + "name": "KMTC Area CTAF" } }, "name": "Oakland Troy Airport" @@ -22219,13 +22985,7 @@ "feeds": "ERROR" }, "KRST": { - "feeds": { - "0": { - "name": "KRST Gnd/Twr/App", - "url": "/play/krst.pls" - } - }, - "name": "Rochester International Airport" + "feeds": "ERROR" }, "KRWF": { "feeds": "ERROR" @@ -22886,45 +23646,7 @@ "feeds": "ERROR" }, "KGPT": { - "feeds": { - "0": { - "name": "KGPT App/Dep", - "url": "/play/kgpt_app.pls" - }, - "1": { - "name": "KGPT App/Dep #1", - "url": "/play/kgpt_app1.pls" - }, - "2": { - "name": "KGPT App/Dep #2", - "url": "/play/kgpt_app2.pls" - }, - "3": { - "name": "KGPT Approach (Final)", - "url": "/play/kgpt_app_final.pls" - }, - "4": { - "name": "KGPT ATIS", - "url": "/play/kgpt_atis.pls" - }, - "5": { - "name": "KGPT Emergency/Guard", - "url": "/play/kgpt_guard.pls" - }, - "6": { - "name": "KGPT Gnd/Twr", - "url": "/play/kgpt_gnd_twr.pls" - }, - "7": { - "name": "KGPT Ground", - "url": "/play/kgpt_gnd.pls" - }, - "8": { - "name": "KGPT Tower", - "url": "/play/kgpt_twr.pls" - } - }, - "name": "Gulfport Biloxi International Airport" + "feeds": "ERROR" }, "KGTR": { "feeds": "ERROR" @@ -23879,13 +24601,19 @@ "feeds": { "0": { "name": "KCOU CTAF/Gnd/App", - "url": "/play/kcou.pls" + "url": "/archive.php?m=kcou" } }, "name": "Columbia Regional Airport" }, "KDAW": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCON/KDAW/KFIT CTAF", + "url": "/play/kmht_murp_122700.pls" + } + }, + "name": "Skyhaven Airport" }, "KDMO": { "feeds": "ERROR" @@ -24016,14 +24744,6 @@ "0": { "name": "KLXT CTAF (Air Race Classic)", "url": "/archive.php?m=arc5" - }, - "1": { - "name": "KLXT/3GV CTAF", - "url": "/play/kojc2_2.pls" - }, - "2": { - "name": "KLXT/KMKC Area Helicopters", - "url": "/play/kojc2_1.pls" } }, "name": "Lee's Summit Municipal Airport" @@ -24079,18 +24799,14 @@ "KMKC": { "feeds": { "0": { - "name": "KLXT/KMKC Area Helicopters", - "url": "/play/kojc2_1.pls" - }, - "1": { "name": "KMKC ATIS", "url": "/play/kmkc_atis.pls" }, - "2": { + "1": { "name": "KMKC Ground", "url": "/play/kmkc_gnd.pls" }, - "3": { + "2": { "name": "KMKC Tower", "url": "/play/kmkc_twr.pls" } @@ -24142,15 +24858,47 @@ "KSGF": { "feeds": { "0": { - "name": "KSGF Approach", - "url": "/play/ksgf_app.pls" + "name": "KSGF Approach (East)", + "url": "/play/ksgf5_app_121100.pls" }, "1": { + "name": "KSGF Approach (West)", + "url": "/play/ksgf5_app_124950.pls" + }, + "2": { + "name": "KSGF Approach/Departure", + "url": "/play/ksgf5_app.pls" + }, + "3": { + "name": "KSGF ATIS", + "url": "/play/ksgf5_atis.pls" + }, + "4": { + "name": "KSGF Clearance Delivery", + "url": "/play/ksgf5_del.pls" + }, + "5": { + "name": "KSGF Ground", + "url": "/play/ksgf5_gnd.pls" + }, + "6": { "name": "KSGF Ground/Tower", "url": "/play/ksgf.pls" }, - "2": { - "name": "ZKC Springfield", + "7": { + "name": "KSGF Tower", + "url": "/play/ksgf5_twr.pls" + }, + "8": { + "name": "ZKC Sector 28", + "url": "/play/ksgf5_zkc_133475.pls" + }, + "9": { + "name": "ZKC Sector 77", + "url": "/play/ksgf5_zkc_127500.pls" + }, + "10": { + "name": "ZKC Sectors 28/77", "url": "/play/zkc_sgf.pls" } }, @@ -24964,7 +25712,29 @@ "feeds": "ERROR" }, "KLNK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLNK Approach", + "url": "/play/klnk3_app.pls" + }, + "1": { + "name": "KLNK ATIS", + "url": "/play/klnk3_atis.pls" + }, + "2": { + "name": "KLNK Ground", + "url": "/play/klnk3_gnd.pls" + }, + "3": { + "name": "KLNK Tower", + "url": "/play/klnk3_twr.pls" + }, + "4": { + "name": "KLNK Twr/App", + "url": "/play/klnk3_twr_app.pls" + } + }, + "name": "Lincoln Airport" }, "KLTY": { "feeds": "ERROR" @@ -26103,7 +26873,13 @@ "feeds": "ERROR" }, "KCXP": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCXP CTAF", + "url": "/play/kcxp1.pls" + } + }, + "name": "Carson Airport" }, "KDRA": { "feeds": "ERROR" @@ -26123,6 +26899,10 @@ "KHND": { "feeds": { "0": { + "name": "KHND ATIS", + "url": "/play/khnd_atis.pls" + }, + "1": { "name": "KHND Ground/Tower", "url": "/play/khnd.pls" } @@ -26205,18 +26985,22 @@ "url": "/play/klas4_twr.pls" }, "16": { + "name": "KLAS Tower (Emergency/Discrete)", + "url": "/play/klas4_twr_emerg.pls" + }, + "17": { "name": "KLAS Tower (Rwys 01/19)", "url": "/play/klas4_twr_0119.pls" }, - "17": { + "18": { "name": "KLAS Tower (Rwys 08/26)", "url": "/play/klas4_twr_0826.pls" }, - "18": { + "19": { "name": "ZLA Sector 16 (Low/High)", "url": "/play/klas4_zla16.pls" }, - "19": { + "20": { "name": "ZLA Sector 34 (High)", "url": "/play/klas5_zla34.pls" } @@ -26525,7 +27309,7 @@ "KCON": { "feeds": { "0": { - "name": "KCON/KFIT CTAF", + "name": "KCON/KDAW/KFIT CTAF", "url": "/play/kmht_murp_122700.pls" }, "1": { @@ -26561,6 +27345,10 @@ "url": "/play/klci_awos.pls" }, "1": { + "name": "KLCI Clearance Delivery", + "url": "/play/klci_del.pls" + }, + "2": { "name": "KLCI Del/CTAF", "url": "/play/klci.pls" } @@ -26577,36 +27365,52 @@ "url": "/play/kmht_murp_fitzy.pls" }, "1": { - "name": "KMHT ATIS", + "name": "KMHT ATIS #1", "url": "/play/kmht_atis.pls" }, "2": { + "name": "KMHT ATIS #2", + "url": "/play/kmht_atis2.pls" + }, + "3": { "name": "KMHT Boston App/Dep #1", "url": "/play/kmht_app.pls" }, - "3": { + "4": { "name": "KMHT Boston App/Dep #2", "url": "/play/kmht4_app.pls" }, - "4": { + "5": { "name": "KMHT Boston App/Dep #3", "url": "/play/kash_app_124900.pls" }, - "5": { + "6": { "name": "KMHT Del/Gnd/Twr", "url": "/play/kmht.pls" }, - "6": { + "7": { + "name": "KMHT Del/Gnd/Twr #2", + "url": "/play/kmht4_del_gnd_twr.pls" + }, + "8": { "name": "KMHT Del/Gnd/Twr/App", "url": "/play/kmht2.pls" }, - "7": { + "9": { + "name": "KMHT Ground", + "url": "/play/kmht_gnd.pls" + }, + "10": { "name": "KMHT Tower #1", "url": "/play/kmht_twr.pls" }, - "8": { + "11": { "name": "KMHT Tower #2", "url": "/play/kmht_murp_twr.pls" + }, + "12": { + "name": "KMHT Tower #3", + "url": "/play/kmht_murp_twr2.pls" } }, "name": "Manchester Airport" @@ -26881,7 +27685,7 @@ "feeds": { "0": { "name": "KBLM/N12/3N6/KMJX", - "url": "/play/kblm2.pls" + "url": "/archive.php?m=kblm2" } }, "name": "Monmouth Executive Airport" @@ -26899,91 +27703,71 @@ "feeds": { "0": { "name": "KEWR ATIS", - "url": "/play/kewr3_atis.pls" + "url": "/play/kewr_atis.pls" }, "1": { "name": "KEWR Clearance Delivery", - "url": "/play/kewr2_del.pls" + "url": "/play/kewr_del.pls" }, "2": { - "name": "KEWR Del/Gnd", - "url": "/play/kewr_del_gnd.pls" + "name": "KEWR Ground", + "url": "/play/kewr_gnd_pri.pls" }, "3": { - "name": "KEWR Ground", - "url": "/play/kewr2_gnd.pls" + "name": "KEWR Ground (Pre-Taxi)", + "url": "/archive.php?m=kewr2_gnd2" }, "4": { - "name": "KEWR Ground (Pre-Taxi)", - "url": "/play/kewr2_gnd2.pls" + "name": "KEWR NY App (ARD Sector)", + "url": "/play/kewr_app_ard.pls" }, "5": { - "name": "KEWR NY App (ARD Sector) #1", - "url": "/play/kewr3_app_ard.pls" + "name": "KEWR NY App (EWR Final)", + "url": "/play/kewr_app_final.pls" }, "6": { - "name": "KEWR NY App (ARD Sector) #2", - "url": "/play/kewr_app_rbv.pls" + "name": "KEWR NY App (EWR Satellite)", + "url": "/archive.php?m=kewr2_app_sat" }, "7": { - "name": "KEWR NY App (EWR Satellite)", - "url": "/play/kewr2_app_sat.pls" + "name": "KEWR NY App (MUGZY Sector)", + "url": "/play/kewr_app_mugzy.pls" }, "8": { - "name": "KEWR NY App (MUGZY Sector) #1", - "url": "/play/kewr2_app_mugzy.pls" + "name": "KEWR NY App (N. Arrival)", + "url": "/play/kewr_app_n.pls" }, "9": { - "name": "KEWR NY App (MUGZY Sector) #2", - "url": "/play/kewr_app_sat.pls" - }, - "10": { - "name": "KEWR NY App (N. Arrival) #1", - "url": "/play/kewr2_app_n_arr.pls" - }, - "11": { - "name": "KEWR NY App (N. Arrival) #2", - "url": "/play/kewr_app_sax.pls" - }, - "12": { - "name": "KEWR NY Departure #1", + "name": "KEWR NY Departure", "url": "/play/kewr_dep.pls" }, - "13": { - "name": "KEWR NY Departure #2", - "url": "/play/kewr2_dep.pls" + "10": { + "name": "KEWR Ramp/Company/Misc", + "url": "/play/kewr_co.pls" }, - "14": { - "name": "KEWR Tower #1", + "11": { + "name": "KEWR Tower", "url": "/play/kewr_twr.pls" }, + "12": { + "name": "KEWR Tower (TCA)", + "url": "/play/kewr_twr_tca.pls" + }, + "13": { + "name": "KEWR Tower/TCA/Backup", + "url": "/play/kewr_twr_bu_tca.pls" + }, + "14": { + "name": "KLGA NY App (EMPYR)", + "url": "/play/kewr_klga_app_empyr.pls" + }, "15": { - "name": "KEWR Tower #2", - "url": "/play/kewr2_twr.pls" + "name": "NY Departure (Liberty South)", + "url": "/play/kewr_dep_lib_s.pls" }, "16": { - "name": "KEWR Tower (TCA)", - "url": "/play/kewr2_twr_tca.pls" - }, - "17": { - "name": "NY Departure (Liberty South) #1", - "url": "/play/kewr2_dep_lib_s.pls" - }, - "18": { - "name": "NY Departure (Liberty South) #2", - "url": "/play/kewr_app_lib_s.pls" - }, - "19": { - "name": "NY Departure (Liberty West) #1", - "url": "/play/kewr2_dep_lib_w.pls" - }, - "20": { - "name": "NY Departure (Liberty West) #2", - "url": "/play/kewr_app_lib_w.pls" - }, - "21": { - "name": "ZNY New York Ctr (DIXIE Low)", - "url": "/play/kewr2_zny67_dixie.pls" + "name": "NY Departure (Liberty West)", + "url": "/play/kewr_dep_lib_w.pls" } }, "name": "Newark Liberty International Airport" @@ -26992,13 +27776,7 @@ "feeds": "ERROR" }, "KLDJ": { - "feeds": { - "0": { - "name": "KLDJ CTAF", - "url": "/play/kjra1_kldj.pls" - } - }, - "name": "Linden Airport" + "feeds": "ERROR" }, "KMIV": { "feeds": "ERROR" @@ -27007,7 +27785,7 @@ "feeds": { "0": { "name": "KBLM/N12/3N6/KMJX", - "url": "/play/kblm2.pls" + "url": "/archive.php?m=kblm2" }, "1": { "name": "KMJX CTAF", @@ -27075,7 +27853,7 @@ "feeds": { "0": { "name": "KNEL/KWRI/ZNY", - "url": "/play/kblm1.pls" + "url": "/archive.php?m=kblm1" } }, "name": "Lakehurst NAES /Maxfield Field" @@ -27089,8 +27867,48 @@ "KTEB": { "feeds": { "0": { - "name": "KTEB Tower", + "name": "KTEB ATIS", + "url": "/play/kteb_es_atis.pls" + }, + "1": { + "name": "KTEB Clearance Delivery", + "url": "/play/kteb_es_del.pls" + }, + "2": { + "name": "KTEB Del/Gnd/Ramp", "url": "/play/kteb1.pls" + }, + "3": { + "name": "KTEB Ground #1", + "url": "/play/kteb_es_gnd_r.pls" + }, + "4": { + "name": "KTEB Ground #2", + "url": "/play/kteb_es_gnd.pls" + }, + "5": { + "name": "KTEB Ops", + "url": "/play/kteb_es_ops.pls" + }, + "6": { + "name": "KTEB Ramp Control", + "url": "/play/kteb_es_ramp.pls" + }, + "7": { + "name": "KTEB Tower #1", + "url": "/play/kteb_es_twr_r.pls" + }, + "8": { + "name": "KTEB Tower #2", + "url": "/play/kteb_es_twr.pls" + }, + "9": { + "name": "KTEB Tower #3", + "url": "/archive.php?m=kteb_twr" + }, + "10": { + "name": "KTEB Tower (Secondary)", + "url": "/play/kteb_es_twr2.pls" } }, "name": "Teterboro Airport" @@ -27117,7 +27935,7 @@ "feeds": { "0": { "name": "KNEL/KWRI/ZNY", - "url": "/play/kblm1.pls" + "url": "/archive.php?m=kblm1" } }, "name": "Mc Guire Air Force Base" @@ -27403,7 +28221,13 @@ "feeds": "ERROR" }, "KFMN": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KFMN Gnd/Twr/App", + "url": "/play/kfmn2.pls" + } + }, + "name": "Four Corners Regional Airport" }, "KFSU": { "feeds": "ERROR" @@ -28323,7 +29147,13 @@ "feeds": "ERROR" }, "KBGM": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBGM Del/Gnd/Twr/App", + "url": "/play/kbgm2.pls" + } + }, + "name": "Greater Binghamton/Edwin A Link field" }, "KBQR": { "feeds": "ERROR" @@ -28331,8 +29161,8 @@ "KBUF": { "feeds": { "0": { - "name": "KBUF Twr/App/Dep", - "url": "/play/kbuf_app.pls" + "name": "KBUF Gnd/Twr/App", + "url": "/play/kbuf2_gta.pls" } }, "name": "Buffalo Niagara International Airport" @@ -28387,14 +29217,18 @@ "KFRG": { "feeds": { "0": { + "name": "Jones Beach Air Show", + "url": "/play/kfrg_jbas.pls" + }, + "1": { "name": "KFRG ATIS", "url": "/play/kfrg_atis1.pls" }, - "1": { + "2": { "name": "KFRG Delivery/Ground", "url": "/play/kfrg_del_gnd1.pls" }, - "2": { + "3": { "name": "KFRG Tower", "url": "/play/kfrg_twr1.pls" } @@ -28430,18 +29264,14 @@ "url": "/play/khpn2_del_gnd_twr.pls" }, "2": { - "name": "KHPN Del/Gnd/Tower #2", - "url": "/play/khpn_del_gnd_twr.pls" - }, - "3": { "name": "KHPN Delivery/Ground", "url": "/play/khpn_del_gnd.pls" }, - "4": { + "3": { "name": "KHPN Tower", "url": "/play/khpn_twr.pls" }, - "5": { + "4": { "name": "NY Approach (NOBBI/NYACK/HAARP)", "url": "/play/khpn2.pls" } @@ -28461,7 +29291,7 @@ "feeds": { "0": { "name": "KHWV CTAF", - "url": "/archive.php?m=khwv" + "url": "/play/khwv.pls" } }, "name": "Brookhaven Airport" @@ -28496,7 +29326,13 @@ "feeds": "ERROR" }, "KIUA": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KIUA CTAF", + "url": "/play/kiua1_ctaf.pls" + } + }, + "name": "Canandaigua Airport" }, "KJFK": { "feeds": { @@ -28533,74 +29369,86 @@ "url": "/play/kjfk9_gnd.pls" }, "8": { - "name": "KJFK NY App (CAMRN)", - "url": "/play/kjfk_app_camrn.pls" + "name": "KJFK NY App (CAMRN) #1", + "url": "/play/kjfk_bw_app_camrn.pls" }, "9": { - "name": "KJFK NY App (Final)", - "url": "/play/kjfk_app_final.pls" + "name": "KJFK NY App (CAMRN) #2", + "url": "/play/kjfk_app_camrn.pls" }, "10": { + "name": "KJFK NY App (Final) #1", + "url": "/play/kjfk_bw_app_final.pls" + }, + "11": { + "name": "KJFK NY App (Final) #2", + "url": "/play/kjfk_app_final.pls" + }, + "12": { "name": "KJFK NY App (ROBER)", "url": "/play/kjfk_app_rober.pls" }, - "11": { + "13": { "name": "KJFK NY Dep (JFK)", "url": "/play/kjfk_dep.pls" }, - "12": { + "14": { "name": "KJFK Tower", "url": "/play/kjfk_twr.pls" }, - "13": { + "15": { "name": "KJFK Tower #2", "url": "/play/kjfk_twr3.pls" }, - "14": { + "16": { "name": "KJFK Tower #3", "url": "/play/kjfk9_twr.pls" }, - "15": { + "17": { "name": "KJFK Tower 119.1", "url": "/play/kjfk_twr_1191.pls" }, - "16": { + "18": { "name": "KJFK Tower 123.9", "url": "/play/kjfk_twr_1239.pls" }, - "17": { + "19": { "name": "NY Dep (Liberty North) #1", + "url": "/play/khpn_app_lib_n.pls" + }, + "20": { + "name": "NY Dep (Liberty North) #2", "url": "/play/ny_app_lib_north.pls" }, - "18": { + "21": { "name": "ZBW Boston Center (CLIPR32)", "url": "/play/zbw_ccc1.pls" }, - "19": { + "22": { "name": "ZBW Boston Center (HTO31)", "url": "/play/zbw_ccc2.pls" }, - "20": { + "23": { "name": "ZBW/ZNY/ZDC (JFK Area) #1", "url": "/play/zbw_ron1.pls" }, - "21": { + "24": { "name": "ZBW/ZNY/ZDC (JFK Area) #2", "url": "/play/zbw_ron2.pls" }, - "22": { + "25": { "name": "ZBW/ZNY/ZDC (JFK Area) #3", "url": "/play/zbw_ron3.pls" }, - "23": { + "26": { "name": "ZBW/ZNY/ZDC (JFK Area) #4", "url": "/play/zbw_ron4.pls" }, - "24": { + "27": { "name": "ZNY Sector 56 (Kennedy)", "url": "/play/zny_col_ken.pls" }, - "25": { + "28": { "name": "ZNY Sector 67 (Dixie)", "url": "/play/zny_col_dix.pls" } @@ -28635,48 +29483,52 @@ "url": "/play/klga_118_gnd.pls" }, "4": { - "name": "KLGA NY App (EMPYR) #1", - "url": "/play/kewr2_lga_app_empyr.pls" + "name": "KLGA NY App (EMPYR)", + "url": "/play/kewr_klga_app_empyr.pls" }, "5": { - "name": "KLGA NY App (EMPYR) #2", - "url": "/play/klga_app_empyr.pls" - }, - "6": { "name": "KLGA NY App (Final) #1", "url": "/play/klga_final.pls" }, - "7": { + "6": { "name": "KLGA NY App (Final) #2", "url": "/play/klga_final2.pls" }, - "8": { + "7": { "name": "KLGA NY App (Final) #3", - "url": "/play/kewr3_app_lga_final.pls" + "url": "/archive.php?m=kewr3_app_lga_final" }, - "9": { + "8": { "name": "KLGA NY App (HAARP)", "url": "/play/klga_ny_app.pls" }, - "10": { + "9": { "name": "KLGA NY Dep", "url": "/play/klga_ny_dep.pls" }, - "11": { + "10": { "name": "KLGA Tower #1", "url": "/play/klga_twr.pls" }, - "12": { + "11": { "name": "KLGA Tower #2", "url": "/play/klga_118_twr.pls" }, - "13": { + "12": { "name": "KLGA Tower (TCA/Heli)", "url": "/play/klga_twr2.pls" }, + "13": { + "name": "NY Dep (Liberty North) #1", + "url": "/play/khpn_app_lib_n.pls" + }, "14": { - "name": "NY Dep (Liberty North)", + "name": "NY Dep (Liberty North) #2", "url": "/play/ny_app_lib_north.pls" + }, + "15": { + "name": "ZNY Sector 86 (121.125)", + "url": "/play/klga_118_zny86.pls" } }, "name": "La Guardia Airport" @@ -28784,13 +29636,7 @@ "name": "Greater Rochester International Airport" }, "KSCH": { - "feeds": { - "0": { - "name": "KSCH Gnd/Twr", - "url": "/play/ksch.pls" - } - }, - "name": "Schenectady County Airport" + "feeds": "ERROR" }, "KSDC": { "feeds": "ERROR" @@ -29689,30 +30535,64 @@ "KAVL": { "feeds": { "0": { + "name": "KAVL ATIS", + "url": "/play/kavl2_atis.pls" + }, + "1": { + "name": "KAVL Gnd/Twr", + "url": "/play/kavl2_gnd_twr.pls" + }, + "2": { "name": "KAVL Gnd/Twr/App", "url": "/play/kavl2.pls" + }, + "3": { + "name": "KAVL Ground", + "url": "/play/kavl2_gnd.pls" + }, + "4": { + "name": "KAVL Guard", + "url": "/play/kavl2_guard.pls" + }, + "5": { + "name": "KAVL Tower", + "url": "/play/kavl2_twr.pls" + }, + "6": { + "name": "ZTL Sector 44 (Shine Low)", + "url": "/play/kavl2_ztl44.pls" } }, "name": "Asheville Regional Airport" }, "KBUY": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBUY CTAF", + "url": "/play/kbuy2.pls" + } + }, + "name": "Burlington Alamance Regional Airport" }, "KCLT": { "feeds": { "0": { + "name": "KCLT Approach (Arrival)", + "url": "/play/kclt4_arr.pls" + }, + "1": { "name": "KCLT Approach/Departure", "url": "/play/kclt2.pls" }, - "1": { + "2": { "name": "KCLT Del/Gnd", "url": "/play/kclt_gnd.pls" }, - "2": { + "3": { "name": "KCLT Del/Gnd/Twr", "url": "/play/kclt1.pls" }, - "3": { + "4": { "name": "KCLT Tower", "url": "/play/kclt_twr.pls" } @@ -29756,23 +30636,23 @@ "feeds": { "0": { "name": "KFAY App/Dep", - "url": "/archive.php?m=kfay1_app" + "url": "/play/kfay1_app.pls" }, "1": { "name": "KFAY ATIS", - "url": "/archive.php?m=kfay1_atis" + "url": "/play/kfay1_atis.pls" }, "2": { "name": "KFAY Emergency/Guard", - "url": "/archive.php?m=kfay1_guard" + "url": "/play/kfay1_guard.pls" }, "3": { "name": "KFAY Ground", - "url": "/archive.php?m=kfay1_gnd" + "url": "/play/kfay1_gnd.pls" }, "4": { "name": "KFAY Tower", - "url": "/archive.php?m=kfay1_twr" + "url": "/play/kfay1_twr.pls" } }, "name": "Fayetteville Regional Grannis Field" @@ -29901,13 +30781,7 @@ "name": "Wilmington International Airport" }, "KINT": { - "feeds": { - "0": { - "name": "KINT Ground/Tower", - "url": "/play/kint.pls" - } - }, - "name": "Smith Reynolds Airport" + "feeds": "ERROR" }, "KIPJ": { "feeds": { @@ -29941,7 +30815,7 @@ "feeds": { "0": { "name": "KJQF Ground/Tower", - "url": "/archive.php?m=kjqf" + "url": "/play/kjqf.pls" } }, "name": "Concord Regional Airport" @@ -29992,7 +30866,17 @@ "feeds": "ERROR" }, "KNKT": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KNKT Giant Killer/Misc", + "url": "/play/knkt1_sc.pls" + }, + "1": { + "name": "KNKT Gnd/Twr/App/Dep", + "url": "/archive.php?m=knkt1_gtap" + } + }, + "name": "Cherry Point MCAS /Cunningham Field/" }, "KOAJ": { "feeds": { @@ -30028,43 +30912,19 @@ "feeds": { "0": { "name": "KRDU Approach", - "url": "/play/krdu_app.pls" + "url": "/archive.php?m=krdu_app" }, "1": { - "name": "KRDU Approach (Final)", - "url": "/archive.php?m=krdu1_app_final" + "name": "KRDU Approach/Departure", + "url": "/archive.php?m=krdu_app2" }, "2": { - "name": "KRDU Approach/Departure", - "url": "/play/krdu_app2.pls" + "name": "KRDU Departure", + "url": "/archive.php?m=krdu_dep" }, "3": { - "name": "KRDU ATIS", - "url": "/archive.php?m=krdu1_atis" - }, - "4": { - "name": "KRDU Del/Ground", - "url": "/archive.php?m=krdu1_del_gnd" - }, - "5": { - "name": "KRDU Departure", - "url": "/play/krdu_dep.pls" - }, - "6": { "name": "KRDU Departure 132.35", "url": "/play/krdu3_dep.pls" - }, - "7": { - "name": "KRDU Tower (East)", - "url": "/archive.php?m=krdu1_twr2" - }, - "8": { - "name": "KRDU Tower (East/West)", - "url": "/archive.php?m=krdu1_twr" - }, - "9": { - "name": "KRDU Tower (West)", - "url": "/archive.php?m=krdu1_twr1" } }, "name": "Raleigh Durham International Airport" @@ -30085,7 +30945,21 @@ "feeds": "ERROR" }, "KSOP": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KSOP AWOS", + "url": "/play/ksop1_awos.pls" + }, + "1": { + "name": "KSOP Clearance Delivery (RCO)", + "url": "/play/ksop1_del.pls" + }, + "2": { + "name": "KSOP CTAF", + "url": "/play/ksop1_ctaf.pls" + } + }, + "name": "Moore County Airport" }, "KSUT": { "feeds": "ERROR" @@ -30100,11 +30974,11 @@ "feeds": { "0": { "name": "KTTA AWOS", - "url": "/play/ktta_awos.pls" + "url": "/archive.php?m=ktta_awos" }, "1": { "name": "KTTA CTAF", - "url": "/play/ktta.pls" + "url": "/archive.php?m=ktta" } }, "name": "Sanford-Lee County Regional Airport" @@ -32048,14 +32922,10 @@ "url": "/play/kcak_app.pls" }, "1": { - "name": "KCAK ATIS", - "url": "/play/kcak_atis.pls" - }, - "2": { "name": "KCAK Del/Gnd/Twr", "url": "/play/kcak_del_gnd_twr.pls" }, - "3": { + "2": { "name": "KCAK Del/Gnd/Twr/App", "url": "/play/kcak.pls" } @@ -32120,8 +32990,96 @@ "KCMH": { "feeds": { "0": { - "name": "KCMH Twr/App", - "url": "/play/kcmh.pls" + "name": "KCMH App/Dep", + "url": "/play/kcmh1_app.pls" + }, + "1": { + "name": "KCMH App/Dep (118.0)", + "url": "/play/kcmh_es_1_app_118000.pls" + }, + "2": { + "name": "KCMH App/Dep (118.2)", + "url": "/play/kcmh_es_1_app_118200.pls" + }, + "3": { + "name": "KCMH App/Dep (119.65)", + "url": "/play/kcmh_es_1_app_119650.pls" + }, + "4": { + "name": "KCMH App/Dep (120.2)", + "url": "/play/kcmh_es_1_app_120200.pls" + }, + "5": { + "name": "KCMH App/Dep (125.95)", + "url": "/play/kcmh_es_1_app_125950.pls" + }, + "6": { + "name": "KCMH App/Dep (132.3)", + "url": "/play/kcmh_es_1_app_132300.pls" + }, + "7": { + "name": "KCMH App/Dep (134.0)", + "url": "/play/kcmh_es_1_app_134000.pls" + }, + "8": { + "name": "KCMH App/Dep (South/UHF)", + "url": "/play/kcmh_es_2_app_uhf.pls" + }, + "9": { + "name": "KCMH ATIS #1", + "url": "/play/kcmh_es_2_atis.pls" + }, + "10": { + "name": "KCMH ATIS #2", + "url": "/play/kcmh1_atis.pls" + }, + "11": { + "name": "KCMH Clearance Delivery #1", + "url": "/play/kcmh_es_1_del.pls" + }, + "12": { + "name": "KCMH Clearance Delivery #2", + "url": "/play/kcmh1_del.pls" + }, + "13": { + "name": "KCMH De-Ice", + "url": "/play/kcmh_es_2_deice.pls" + }, + "14": { + "name": "KCMH Del/Gnd/Twr", + "url": "/play/kcmh1_del_gnd_twr.pls" + }, + "15": { + "name": "KCMH Emergency/Guard #1", + "url": "/play/kcmh_es_2_guard.pls" + }, + "16": { + "name": "KCMH Emergency/Guard #2", + "url": "/play/kcmh1_guard.pls" + }, + "17": { + "name": "KCMH Ground #1", + "url": "/play/kcmh_es_2_gnd.pls" + }, + "18": { + "name": "KCMH Ground #2", + "url": "/play/kcmh1_gnd.pls" + }, + "19": { + "name": "KCMH Tower #1", + "url": "/play/kcmh_es_2_twr.pls" + }, + "20": { + "name": "KCMH Tower #2", + "url": "/play/kcmh1_twr.pls" + }, + "21": { + "name": "KCMH Twr/App/Dep", + "url": "/play/kcmh1_twr_app.pls" + }, + "22": { + "name": "ZID Sector 78", + "url": "/play/kcmh2_zid_135800.pls" } }, "name": "Port Columbus International Airport" @@ -32175,7 +33133,7 @@ "feeds": { "0": { "name": "KGQQ CTAF/Del/App", - "url": "/archive.php?m=kgqq" + "url": "/play/kgqq.pls" } }, "name": "Galion Municipal Airport" @@ -32247,7 +33205,45 @@ "feeds": "ERROR" }, "KLCK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCMH App/Dep (134.0)", + "url": "/play/kcmh_es_1_app_134000.pls" + }, + "1": { + "name": "KCMH App/Dep (South/UHF)", + "url": "/play/kcmh_es_2_app_uhf.pls" + }, + "2": { + "name": "KLCK ATIS/AWOS", + "url": "/play/klck_es_2_atis.pls" + }, + "3": { + "name": "KLCK Del/Gnd", + "url": "/play/klck_es_1_del_gnd.pls" + }, + "4": { + "name": "KLCK Del/Gnd (UHF)", + "url": "/play/klck_es_1_del_gnd_uhf.pls" + }, + "5": { + "name": "KLCK Emergency/Guard", + "url": "/play/klck_es_1_guard.pls" + }, + "6": { + "name": "KLCK Tower", + "url": "/play/klck_es_1_twr.pls" + }, + "7": { + "name": "KLCK Tower (UHF)", + "url": "/play/klck_es_1_twr_uhf.pls" + }, + "8": { + "name": "KLCK UNICOM", + "url": "/play/klck_es_2_unicom.pls" + } + }, + "name": "Rickenbacker International Airport" }, "KLHQ": { "feeds": "ERROR" @@ -32337,6 +33333,10 @@ "KOSU": { "feeds": { "0": { + "name": "KCMH App/Dep (125.95)", + "url": "/play/kcmh_es_1_app_125950.pls" + }, + "1": { "name": "KOSU Ground/Tower", "url": "/play/kosu.pls" } @@ -32416,16 +33416,48 @@ "feeds": "ERROR" }, "KYNG": { - "feeds": { - "0": { - "name": "KYNG Gnd/Twr/App", - "url": "/archive.php?m=kyng2" - } - }, - "name": "Youngstown Warren Regional Airport" + "feeds": "ERROR" }, "KZZV": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KCDI CTAF", + "url": "/play/kzzv1_kcdi.pls" + }, + "1": { + "name": "KZZV AWOS", + "url": "/play/kzzv1_awos.pls" + }, + "2": { + "name": "KZZV CTAF", + "url": "/play/kzzv1_ctaf.pls" + }, + "3": { + "name": "ZID Sector 30 Columbus Low", + "url": "/play/kzzv1_zid30.pls" + }, + "4": { + "name": "ZID Sector 30/77/87/97 (UHF)", + "url": "/play/kzzv1_zid_uhf.pls" + }, + "5": { + "name": "ZID Sector 77 University High", + "url": "/play/kzzv1_zid77.pls" + }, + "6": { + "name": "ZID Sector 87 Appleton High", + "url": "/play/kzzv1_zid87.pls" + }, + "7": { + "name": "ZID Sector 97 Lockbourne UH", + "url": "/play/kzzv1_zid97.pls" + }, + "8": { + "name": "ZID Sectors 87/87", + "url": "/play/kzzv1_zid_87_97.pls" + } + }, + "name": "Zanesville Municipal Airport" }, "OA00": { "feeds": "ERROR" @@ -33467,7 +34499,13 @@ "feeds": "ERROR" }, "KHSD": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KHSD CTAF", + "url": "/play/khsd2.pls" + } + }, + "name": "Sundance Airpark" }, "KJSV": { "feeds": "ERROR" @@ -33554,7 +34592,13 @@ "feeds": "ERROR" }, "KOUN": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KOUN Tower", + "url": "/play/koun_twr.pls" + } + }, + "name": "University of Oklahoma Westheimer Airport" }, "KOWP": { "feeds": "ERROR" @@ -33599,7 +34643,7 @@ "feeds": { "0": { "name": "KSWO Tower", - "url": "/play/kswo2.pls" + "url": "/archive.php?m=kswo2" } }, "name": "Stillwater Regional Airport" @@ -34393,60 +35437,7 @@ "name": "Corvallis Municipal Airport" }, "KEUG": { - "feeds": { - "0": { - "name": "KEUG App/Dep", - "url": "/archive.php?m=keug1_app_dep" - }, - "1": { - "name": "KEUG App/Dep 119.6", - "url": "/archive.php?m=keug1_app1" - }, - "2": { - "name": "KEUG App/Dep 120.25", - "url": "/archive.php?m=keug1_app2" - }, - "3": { - "name": "KEUG ATIS", - "url": "/archive.php?m=keug1_atis" - }, - "4": { - "name": "KEUG Emergency/Guard", - "url": "/archive.php?m=keug1_guard" - }, - "5": { - "name": "KEUG Ground", - "url": "/archive.php?m=keug1_gnd" - }, - "6": { - "name": "KEUG Ground/Tower", - "url": "/archive.php?m=keug1_twr" - }, - "7": { - "name": "KEUG Tower (Both)", - "url": "/archive.php?m=keug1_twr2" - }, - "8": { - "name": "KEUG Tower (Rwy 16L/34R)", - "url": "/archive.php?m=keug1_twr1" - }, - "9": { - "name": "KEUG Tower (Rwy 16R/34L)", - "url": "/archive.php?m=keug1_zse06" - }, - "10": { - "name": "Seattle Center (Sector 06 Low)", - "url": "/archive.php?m=keug1_zse15" - }, - "11": { - "name": "Seattle Center (Sector 15 High)", - "url": "/archive.php?m=keug1_zse30" - }, - "12": { - "name": "Seattle Center (Sector 30 Low)" - } - }, - "name": "Mahlon Sweet Field" + "feeds": "ERROR" }, "KGCD": { "feeds": "ERROR" @@ -34591,31 +35582,51 @@ "feeds": { "0": { "name": "KPDX App/Dep", - "url": "/play/kpdx_app_dep.pls" + "url": "/archive.php?m=kpdx_app" }, "1": { - "name": "KPDX App/Dep/Final", - "url": "/play/kpdx_app_all.pls" + "name": "KPDX App/Dep (North)", + "url": "/play/kpdx_app_124350.pls" }, "2": { + "name": "KPDX App/Dep (South)", + "url": "/play/kpdx_app_118100.pls" + }, + "3": { "name": "KPDX Approach (Final)", "url": "/play/kpdx_app_final.pls" }, - "3": { - "name": "KPDX ATIS", - "url": "/play/kpdx_atis.pls" - }, "4": { - "name": "KPDX Del/Gnd", - "url": "/play/kpdx_del_gnd.pls" + "name": "KPDX ATIS", + "url": "/play/kpdx3_atis.pls" }, "5": { - "name": "KPDX Del/Gnd/Twr", - "url": "/play/kpdx_del_gnd_twr.pls" + "name": "KPDX Clearance Delivery", + "url": "/play/kpdx3_del.pls" }, "6": { - "name": "KPDX Tower", - "url": "/play/kpdx_twr.pls" + "name": "KPDX Del/Gnd", + "url": "/play/kpdx3_del_gnd.pls" + }, + "7": { + "name": "KPDX Ground", + "url": "/play/kpdx3_gnd.pls" + }, + "8": { + "name": "KPDX Tower (Both)", + "url": "/play/kpdx3_twr.pls" + }, + "9": { + "name": "KPDX Tower (Primary)", + "url": "/play/kpdx3_twr_123775.pls" + }, + "10": { + "name": "KPDX Tower (Rwy 10L/28R)", + "url": "/play/kpdx3_twr_118700.pls" + }, + "11": { + "name": "ZSE Seattle Center (PDX Area)", + "url": "/play/kpdx_zse.pls" } }, "name": "Portland International Airport" @@ -34654,13 +35665,7 @@ "feeds": "ERROR" }, "KSFF": { - "feeds": { - "0": { - "name": "KSFF Ground/Tower", - "url": "/play/ksff.pls" - } - }, - "name": "Felts Field" + "feeds": "ERROR" }, "KSLE": { "feeds": { @@ -35796,8 +36801,52 @@ "KABE": { "feeds": { "0": { - "name": "KABE Gnd/Twr/App", - "url": "/play/kabe2.pls" + "name": "KABE App/Dep", + "url": "/play/kabe1_app.pls" + }, + "1": { + "name": "KABE App/Dep (Above 3000')", + "url": "/play/kabe1_app_124450.pls" + }, + "2": { + "name": "KABE App/Dep (Below 3000')", + "url": "/play/kabe1_app_119650.pls" + }, + "3": { + "name": "KABE ATIS", + "url": "/play/kabe1_atis.pls" + }, + "4": { + "name": "KABE Clearance Delivery", + "url": "/play/kabe1_del.pls" + }, + "5": { + "name": "KABE Del/Gnd/Twr", + "url": "/play/kabe1_del_gnd_twr.pls" + }, + "6": { + "name": "KABE Del/Gnd/Twr/App", + "url": "/play/kabe1_all.pls" + }, + "7": { + "name": "KABE Ground", + "url": "/play/kabe1_gnd.pls" + }, + "8": { + "name": "KABE Tower", + "url": "/play/kabe1_twr.pls" + }, + "9": { + "name": "KABE Twr/App/Dep", + "url": "/play/kabe1_twr_app.pls" + }, + "10": { + "name": "ZNY Sector 92 (Pottstown Low)", + "url": "/play/kabe1_zny92.pls" + }, + "11": { + "name": "ZNY Sectors 39/55 (Parke/Yardley)", + "url": "/play/kabe1_zny39_55.pls" } }, "name": "Lehigh Valley International Airport" @@ -35816,10 +36865,6 @@ "0": { "name": "KAVP Gnd/Twr/App", "url": "/play/kavp.pls" - }, - "1": { - "name": "ZNY34 NY Ctr Elmira Hi", - "url": "/play/zny_avp_elmhi.pls" } }, "name": "Wilkes Barre Scranton International Airport" @@ -35848,8 +36893,12 @@ "url": "/play/kbvi.pls" }, "3": { - "name": "KBVI Tower", + "name": "KBVI Tower #1", "url": "/play/kbvi_twr.pls" + }, + "4": { + "name": "KBVI Tower #2", + "url": "/play/kbvi_twr2.pls" } }, "name": "Beaver County Airport" @@ -35861,15 +36910,15 @@ "feeds": { "0": { "name": "KCXY Ground", - "url": "/play/kmdt1_kcxy_gnd.pls" + "url": "/archive.php?m=kmdt1_kcxy_gnd" }, "1": { "name": "KCXY Ground/Tower", - "url": "/play/kmdt1_kcxy_gnd_twr.pls" + "url": "/archive.php?m=kmdt1_kcxy_gnd_twr" }, "2": { "name": "KCXY Tower", - "url": "/play/kmdt1_kcxy_twr.pls" + "url": "/archive.php?m=kmdt1_kcxy_twr" } }, "name": "Capital City Airport" @@ -35917,20 +36966,32 @@ "KIPT": { "feeds": { "0": { + "name": "KIPT ASOS", + "url": "/play/kipt_asos.pls" + }, + "1": { + "name": "KIPT Gnd/Twr/UNICOM", + "url": "/play/kipt_gnd_twr_unicom.pls" + }, + "2": { "name": "KIPT Gnd/Twr/ZNY", "url": "/play/kipt.pls" }, - "1": { + "3": { "name": "ZNY Sector 72", "url": "/play/zny_ipt_72.pls" }, - "2": { + "4": { "name": "ZNY Sector 74", "url": "/play/zny_ipt_74.pls" }, - "3": { + "5": { "name": "ZNY Sector 75", "url": "/play/zny_ipt_75.pls" + }, + "6": { + "name": "ZNY Sector 91", + "url": "/play/zny_ipt_91.pls" } }, "name": "Williamsport Regional Airport" @@ -35979,51 +37040,51 @@ "feeds": { "0": { "name": "KMDT App/Dep (East)", - "url": "/play/kmdt1_app_e.pls" + "url": "/archive.php?m=kmdt1_app_e" }, "1": { "name": "KMDT App/Dep (East/West)", - "url": "/play/kmdt1_app.pls" + "url": "/archive.php?m=kmdt1_app" }, "2": { "name": "KMDT App/Dep (North)", - "url": "/play/kmdt1_app_n.pls" + "url": "/archive.php?m=kmdt1_app_n" }, "3": { "name": "KMDT App/Dep (West)", - "url": "/play/kmdt1_app_w.pls" + "url": "/archive.php?m=kmdt1_app_w" }, "4": { "name": "KMDT ATIS", - "url": "/play/kmdt1_atis.pls" + "url": "/archive.php?m=kmdt1_atis" }, "5": { "name": "KMDT Emergency/Ground", - "url": "/play/kmdt1_guard.pls" + "url": "/archive.php?m=kmdt1_guard" }, "6": { "name": "KMDT Ground", - "url": "/play/kmdt1_gnd.pls" + "url": "/archive.php?m=kmdt1_gnd" }, "7": { "name": "KMDT Tower", - "url": "/play/kmdt1_twr.pls" + "url": "/archive.php?m=kmdt1_twr" }, "8": { "name": "ZNY New York Center Sector 10", - "url": "/play/kmdt1_zny10.pls" + "url": "/archive.php?m=kmdt1_zny10" }, "9": { "name": "ZNY New York Center Sector 26", - "url": "/play/kmdt1_zny26.pls" + "url": "/archive.php?m=kmdt1_zny26" }, "10": { "name": "ZNY New York Center Sector 27", - "url": "/play/kmdt1_zny27.pls" + "url": "/archive.php?m=kmdt1_zny27" }, "11": { "name": "ZNY New York Center Sector 8", - "url": "/play/kmdt1_zny08.pls" + "url": "/archive.php?m=kmdt1_zny08" } }, "name": "Harrisburg International Airport" @@ -36032,7 +37093,13 @@ "feeds": "ERROR" }, "KMQS": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KMQS/KPTW CTAF", + "url": "/play/koqn1_kmqs.pls" + } + }, + "name": "Chester County G O Carlson Airport" }, "KMUI": { "feeds": "ERROR" @@ -36077,7 +37144,29 @@ "feeds": "ERROR" }, "KOQN": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KOQN AWOS", + "url": "/play/koqn1_awos.pls" + }, + "1": { + "name": "KOQN CTAF #1", + "url": "/play/koqn1_ctaf.pls" + }, + "2": { + "name": "KOQN CTAF #2", + "url": "/play/koqn1_ctaf2.pls" + }, + "3": { + "name": "ZDC Sector 18 (Dupont)", + "url": "/play/koqn1_zdc18.pls" + }, + "4": { + "name": "ZNY Sector 25 (Modena)", + "url": "/play/koqn1_zny25.pls" + } + }, + "name": "Brandywine Airport" }, "KOYM": { "feeds": "ERROR" @@ -36182,10 +37271,14 @@ "url": "/play/kpne_app.pls" }, "1": { + "name": "KPNE ATIS", + "url": "/play/kpne1_atis.pls" + }, + "2": { "name": "KPNE Del/Gnd/Twr", "url": "/play/kpne_gnd_twr.pls" }, - "2": { + "3": { "name": "KPNE Del/Gnd/Twr/App", "url": "/play/kpne.pls" } @@ -36709,7 +37802,7 @@ "feeds": { "0": { "name": "KBID CTAF", - "url": "/play/kbid.pls" + "url": "/archive.php?m=kbid" } }, "name": "Block Island State Airport" @@ -36718,29 +37811,7 @@ "feeds": "ERROR" }, "KPVD": { - "feeds": { - "0": { - "name": "KPVD Approach/Departure", - "url": "/play/kpvd_app.pls" - }, - "1": { - "name": "KPVD ATIS", - "url": "/play/kpvd_atis.pls" - }, - "2": { - "name": "KPVD Clearance Delivery", - "url": "/play/kpvd2_del.pls" - }, - "3": { - "name": "KPVD Gnd/Twr", - "url": "/play/kpvd_gnd_twr.pls" - }, - "4": { - "name": "KPVD Gnd/Twr/App", - "url": "/play/kpvd2_s.pls" - } - }, - "name": "Theodore Francis Green State Airport" + "feeds": "ERROR" }, "KSFZ": { "feeds": { @@ -36750,7 +37821,7 @@ }, "1": { "name": "MA/RI/CT Area CTAF", - "url": "/play/marict_area_ctaf.pls" + "url": "/archive.php?m=marict_area_ctaf" } }, "name": "North Central State Airport" @@ -36954,8 +38025,16 @@ "KCRE": { "feeds": { "0": { + "name": "KCRE ATIS", + "url": "/play/kcre2_atis.pls" + }, + "1": { "name": "KCRE Ground/Tower", "url": "/play/kcre2.pls" + }, + "2": { + "name": "KCRE Guard", + "url": "/play/kcre2_guard.pls" } }, "name": "Grand Strand Airport" @@ -36964,7 +38043,7 @@ "feeds": { "0": { "name": "KCUB CTAF", - "url": "/archive.php?m=kcub2" + "url": "/play/kcub2.pls" } }, "name": "Jim Hamilton L.B. Owens Airport" @@ -36998,18 +38077,22 @@ "url": "/play/kflo1_atis.pls" }, "2": { - "name": "KFLO Gnd/Twr/App", - "url": "/play/kflo2.pls" + "name": "KFLO Emergency/Guard", + "url": "/play/kflo1_guard.pls" }, "3": { + "name": "KFLO Gnd/Twr/App", + "url": "/archive.php?m=kflo2" + }, + "4": { "name": "KFLO Ground", "url": "/play/kflo1_gnd.pls" }, - "4": { + "5": { "name": "KFLO Tower", "url": "/play/kflo1_twr.pls" }, - "5": { + "6": { "name": "ZJX Sector 71 Florence Low", "url": "/play/kflo1_zjx.pls" } @@ -37147,7 +38230,7 @@ "feeds": { "0": { "name": "KOGB CTAF", - "url": "/play/kogb2.pls" + "url": "/archive.php?m=kogb2" } }, "name": "Orangeburg Municipal Airport" @@ -38198,15 +39281,7 @@ "feeds": { "0": { "name": "KCHA Twr/App", - "url": "/archive.php?m=kcha" - }, - "1": { - "name": "ZTL Atlanta Center 05/36", - "url": "/archive.php?m=ztl_cha1" - }, - "2": { - "name": "ZTL Atlanta Center 06/37/39", - "url": "/archive.php?m=ztl_cha2" + "url": "/play/kcha2.pls" } }, "name": "Lovell Field" @@ -38236,7 +39311,13 @@ "feeds": "ERROR" }, "KGKT": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KGKT CTAF", + "url": "/play/kgkt2.pls" + } + }, + "name": "Gatlinburg Pigeon Forge Airport" }, "KGZS": { "feeds": "ERROR" @@ -38302,21 +39383,7 @@ "feeds": "ERROR" }, "KMEM": { - "feeds": { - "0": { - "name": "KMEM Approach", - "url": "/play/kmem2_app.pls" - }, - "1": { - "name": "KMEM Tower", - "url": "/play/kmem2_twr.pls" - }, - "2": { - "name": "ZME Memphis RCAG", - "url": "/play/kmem2_zme.pls" - } - }, - "name": "Memphis International Airport" + "feeds": "ERROR" }, "KMKL": { "feeds": { @@ -38337,15 +39404,15 @@ "feeds": { "0": { "name": "KMOR AWOS", - "url": "/play/kmor_awos.pls" + "url": "/archive.php?m=kmor_awos" }, "1": { "name": "KMOR Clearance Delivery", - "url": "/play/kmor_del.pls" + "url": "/archive.php?m=kmor_del" }, "2": { "name": "KMOR CTAF", - "url": "/play/kmor.pls" + "url": "/archive.php?m=kmor" } }, "name": "Moore Murrell Airport" @@ -39210,13 +40277,7 @@ "feeds": "ERROR" }, "2TS6": { - "feeds": { - "0": { - "name": "KJWY/2TS6 CTAF/Unicom", - "url": "/play/kjwy2.pls" - } - }, - "name": "Eagle's Nest Estates Airport" + "feeds": "ERROR" }, "2TS8": { "feeds": "ERROR" @@ -41063,18 +42124,22 @@ "KAFW": { "feeds": { "0": { + "name": "KAFW ATIS", + "url": "/play/kafw1_atis.pls" + }, + "1": { "name": "KAFW Clearance/Ground", "url": "/play/kafw3_1.pls" }, - "1": { + "2": { "name": "KAFW Regional App (North)", "url": "/play/kafw1_2.pls" }, - "2": { + "3": { "name": "KAFW Tower/Heli", "url": "/play/kafw1_1.pls" }, - "3": { + "4": { "name": "KAFW Tower/Heli/App", "url": "/play/kafw1.pls" } @@ -41106,7 +42171,7 @@ "feeds": { "0": { "name": "KAUS App/Dep #1", - "url": "/play/kaus2_app.pls" + "url": "/play/kaus3_app_dep.pls" }, "1": { "name": "KAUS App/Dep #2", @@ -41114,7 +42179,7 @@ }, "2": { "name": "KAUS App/Dep #3", - "url": "/play/kaus3_app_dep.pls" + "url": "/archive.php?m=kaus2_app" }, "3": { "name": "KAUS App/Dep (East) #1", @@ -41165,50 +42230,70 @@ "url": "/play/kaus1_del.pls" }, "15": { + "name": "KAUS FBO (Atlantic Aviation)", + "url": "/play/kaus3_fbo_atlantic.pls" + }, + "16": { + "name": "KAUS FBO (Millionair)", + "url": "/play/kaus3_fbo_millionair.pls" + }, + "17": { + "name": "KAUS FBO (Signature)", + "url": "/play/kaus3_fbo_signature.pls" + }, + "18": { "name": "KAUS Ground #1", "url": "/play/kaus3_gnd.pls" }, - "16": { + "19": { "name": "KAUS Ground #2", "url": "/play/kaus1_gnd.pls" }, - "17": { + "20": { "name": "KAUS Ground (Primary) #2", "url": "/play/kaus1_gnd1.pls" }, - "18": { + "21": { + "name": "KAUS Ground (Secondary) #1", + "url": "/play/kaus3_gnd_secondary.pls" + }, + "22": { "name": "KAUS Ground (Secondary) #2", "url": "/play/kaus1_gnd2.pls" }, - "19": { + "23": { "name": "KAUS Tower #1", "url": "/play/kaus3_twr.pls" }, - "20": { + "24": { "name": "KAUS Tower #2", "url": "/play/kaus1_twr.pls" }, - "21": { + "25": { "name": "KAUS Tower #3", - "url": "/play/kaus2.pls" + "url": "/archive.php?m=kaus2" }, - "22": { + "26": { "name": "KAUS Tower (Main) #2", "url": "/play/kaus1_twr1.pls" }, - "23": { + "27": { + "name": "KAUS Tower (Secondary) #1", + "url": "/play/kaus3_twr_secondary.pls" + }, + "28": { "name": "KAUS Tower (Secondary) #2", "url": "/play/kaus1_twr2.pls" }, - "24": { + "29": { "name": "ZHU Houston Center (Sector 78)", "url": "/play/zhu_aus2.pls" }, - "25": { + "30": { "name": "ZHU Houston Center (Sector 80)", "url": "/play/zhu_aus3.pls" }, - "26": { + "31": { "name": "ZHU Houston Center (Sector 96)", "url": "/play/zhu_aus1.pls" } @@ -41319,7 +42404,29 @@ "feeds": "ERROR" }, "KCXO": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "Houston App/Dep (119.7)", + "url": "/play/kcxo1_app.pls" + }, + "1": { + "name": "KCXO ATIS", + "url": "/play/kcxo1_atis.pls" + }, + "2": { + "name": "KCXO Ground", + "url": "/play/kcxo1_gnd.pls" + }, + "3": { + "name": "KCXO Ground/Tower", + "url": "/play/kcxo1_gnd_twr.pls" + }, + "4": { + "name": "KCXO Tower", + "url": "/play/kcxo1_twr.pls" + } + }, + "name": "Lone Star Executive Airport" }, "KCZT": { "feeds": "ERROR" @@ -41332,23 +42439,23 @@ }, "1": { "name": "KDAL ATIS", - "url": "/play/kdal_atis.pls" + "url": "/archive.php?m=kdal_atis" }, "2": { "name": "KDAL Clearance Delivery", - "url": "/play/kdal_del.pls" + "url": "/archive.php?m=kdal_del" }, "3": { "name": "KDAL Emergency/Guard", - "url": "/play/kdal_guard.pls" + "url": "/archive.php?m=kdal_guard" }, "4": { "name": "KDAL Ground", - "url": "/play/kdal_gnd.pls" + "url": "/archive.php?m=kdal_gnd" }, "5": { "name": "KDAL Tower", - "url": "/play/kdal_twr.pls" + "url": "/archive.php?m=kdal_twr" } }, "name": "Dallas Love Field" @@ -41412,16 +42519,20 @@ "url": "/play/kdfw1_twr1_e.pls" }, "14": { + "name": "KDFW Tower (East/126.55)", + "url": "/play/kdfw1_twr1_e_126550.pls" + }, + "15": { + "name": "KDFW Tower (East/127.5)", + "url": "/play/kdfw1_twr1_e_127500.pls" + }, + "16": { "name": "KDFW Tower (West)", "url": "/play/kdfw1_twr1_w.pls" }, - "15": { + "17": { "name": "KDFW Tower (West/Rwy 13R/31L)", "url": "/play/kdfw2_twr2_w.pls" - }, - "16": { - "name": "Regional Approach (Feeder 2/East)", - "url": "/archive.php?m=krbd1_app_133525" } }, "name": "Dallas Fort Worth International Airport" @@ -41578,7 +42689,7 @@ }, "4": { "name": "KELP Tower", - "url": "/play/kelp1_twr.pls" + "url": "/archive.php?m=kelp1_twr" } }, "name": "El Paso International Airport" @@ -41703,17 +42814,7 @@ "feeds": "ERROR" }, "KGGG": { - "feeds": { - "0": { - "name": "KGGG App/Dep", - "url": "/play/kggg_app.pls" - }, - "1": { - "name": "KGGG Gnd/Twr", - "url": "/play/kggg.pls" - } - }, - "name": "East Texas Regional Airport" + "feeds": "ERROR" }, "KGLE": { "feeds": "ERROR" @@ -41728,7 +42829,13 @@ "feeds": "ERROR" }, "KGPM": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KGPM Tower", + "url": "/play/kgpm2_twr.pls" + } + }, + "name": "Grand Prairie Municipal Airport" }, "KGRK": { "feeds": { @@ -41754,12 +42861,12 @@ "KGYI": { "feeds": { "0": { - "name": "KGYI ATIS", - "url": "/play/kgyi_atis.pls" - }, - "1": { "name": "KGYI Ground/Tower", "url": "/play/kgyi.pls" + }, + "1": { + "name": "KGYI Tower", + "url": "/archive.php?m=kgyi2_twr" } }, "name": "North Texas Rgnl/Perrin Field" @@ -41795,7 +42902,7 @@ "feeds": { "0": { "name": "KHQZ Gnd/Twr", - "url": "/play/khqz.pls" + "url": "/archive.php?m=khqz" } }, "name": "Mesquite Metro Airport" @@ -41816,7 +42923,7 @@ "feeds": { "0": { "name": "KHYI Gnd/Twr/Misc", - "url": "/play/khyi1.pls" + "url": "/archive.php?m=khyi1" } }, "name": "San Marcos Municipal Airport" @@ -41952,13 +43059,27 @@ "feeds": { "0": { "name": "KLBX CTAF", - "url": "/play/klbx.pls" + "url": "/archive.php?m=klbx" } }, "name": "Brazoria County Airport" }, "KLFK": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLFK Emergency/Guard", + "url": "/play/klfk1_guard.pls" + }, + "1": { + "name": "KLFK/KOCH CTAF", + "url": "/play/klfk1_ctaf.pls" + }, + "2": { + "name": "ZHU Sector 86", + "url": "/play/klfk1_s.pls" + } + }, + "name": "Angelina County Airport" }, "KLHB": { "feeds": "ERROR" @@ -41985,7 +43106,13 @@ "feeds": "ERROR" }, "KLVJ": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLVJ CTAF", + "url": "/play/klvj1.pls" + } + }, + "name": "Pearland Regional Airport" }, "KLXY": { "feeds": "ERROR" @@ -42100,7 +43227,13 @@ "feeds": "ERROR" }, "KOCH": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KLFK/KOCH CTAF", + "url": "/play/klfk1_ctaf.pls" + } + }, + "name": "A L Mangham Jr. Regional Airport" }, "KODO": { "feeds": "ERROR" @@ -42133,7 +43266,21 @@ "feeds": "ERROR" }, "KPRX": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KPRX AWOS", + "url": "/play/kprx1_awos.pls" + }, + "1": { + "name": "KPRX CTAF", + "url": "/play/kprx1_ctaf.pls" + }, + "2": { + "name": "ZFW Sector 42", + "url": "/play/kprx1_zfw42.pls" + } + }, + "name": "Cox Field" }, "KPSN": { "feeds": "ERROR" @@ -42160,7 +43307,13 @@ "name": "Mustang Beach Airport" }, "KRBD": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KRBD Ground/Tower", + "url": "/play/krbd.pls" + } + }, + "name": "Dallas Executive Airport" }, "KRBO": { "feeds": "ERROR" @@ -42400,30 +43553,26 @@ "url": "/play/ktyr2_app.pls" }, "1": { - "name": "KTYR App/Dep/Center", - "url": "/play/ktyr2_app_ctr.pls" - }, - "2": { "name": "KTYR ATIS", "url": "/play/ktyr2_atis.pls" }, - "3": { + "2": { "name": "KTYR Ground", "url": "/play/ktyr2_gnd.pls" }, - "4": { + "3": { "name": "KTYR Ground/Tower", "url": "/play/ktyr2_gnd_twr.pls" }, - "5": { + "4": { "name": "KTYR Tower", "url": "/play/ktyr2_twr.pls" }, - "6": { + "5": { "name": "KTYR UNICOM", "url": "/play/ktyr2_unicom.pls" }, - "7": { + "6": { "name": "ZFW Sector 25", "url": "/play/ktyr2_ctr.pls" } @@ -43675,38 +44824,34 @@ "url": "/play/kcdc1_ctaf.pls" }, "2": { - "name": "KCDC CTAF #2", - "url": "/play/kcdc.pls" - }, - "3": { "name": "KCDC Guard", "url": "/play/kcdc1_guard.pls" }, - "4": { + "3": { "name": "KCDC T-Bird Dispatch", "url": "/play/kcdc1_co.pls" }, - "5": { + "4": { "name": "ZLA Sector 07", "url": "/play/kcdc1_zla07.pls" }, - "6": { + "5": { "name": "ZLA Sector 32", "url": "/play/kcdc1_zla32.pls" }, - "7": { + "6": { "name": "ZLA Sector 32/33", "url": "/play/kcdc1_zla32_33.pls" }, - "8": { + "7": { "name": "ZLA Sector 33", "url": "/play/kcdc1_zla33.pls" }, - "9": { + "8": { "name": "ZLA Sector 36", "url": "/play/kcdc1_zla36.pls" }, - "10": { + "9": { "name": "ZLC Sector 44", "url": "/play/kcdc1_zlc44.pls" } @@ -43759,39 +44904,38 @@ "feeds": "ERROR" }, "KPVU": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KPVU Tower", + "url": "/play/kpvu2.pls" + } + }, + "name": "Provo Municipal Airport" }, "KRIF": { "feeds": "ERROR" }, "KSGU": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KSGU CTAF/Del" + } + }, + "name": "St George Municipal Airport" }, "KSLC": { "feeds": { "0": { - "name": "KSLC Tower (Main)", - "url": "/play/kslc_br1.pls" + "name": "KSLC Tower Rwy 34L/16R ", + "url": "/archive.php?m=kslc_vfr" }, "1": { - "name": "KSLC Tower (Rwy 34L/16R)", - "url": "/play/kslc_twr3.pls" + "name": "ZLC Salt Lake Center (SLC) #1", + "url": "/archive.php?m=zlc_slc" }, "2": { - "name": "KSLC Tower (Rwy 34R/16L)", - "url": "/play/kslc_twr2.pls" - }, - "3": { - "name": "KSLC Twr/App", - "url": "/play/kslc_vfr.pls" - }, - "4": { - "name": "ZLC Salt Lake Center (SLC) #1", - "url": "/play/zlc_slc.pls" - }, - "5": { "name": "ZLC Salt Lake Center (SLC) #2", - "url": "/play/zlc_slc5.pls" + "url": "/archive.php?m=zlc_slc5" } }, "name": "Salt Lake City International Airport" @@ -44577,7 +45721,17 @@ "feeds": "ERROR" }, "KBCB": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KBCB AWOS", + "url": "/play/kbcb2_awos.pls" + }, + "1": { + "name": "KBCB CTAF", + "url": "/play/kbcb2_ctaf.pls" + } + }, + "name": "Virginia Tech Montgomery Executive Airport" }, "KBKT": { "feeds": "ERROR" @@ -44585,18 +45739,14 @@ "KCHO": { "feeds": { "0": { - "name": "KCHO Ground/Tower", - "url": "/archive.php?m=kcho2" - }, - "1": { "name": "KCHO Tower", "url": "/play/kcho3_ctf.pls" }, - "2": { + "1": { "name": "KCHO Tower/App", "url": "/play/kcho3_twr_app.pls" }, - "3": { + "2": { "name": "ZDC Sector 2", "url": "/play/kcho3_wc1.pls" } @@ -44635,32 +45785,36 @@ "url": "/play/kmrb1_app_luray.pls" }, "2": { - "name": "KDCA Potomac App/Dep", - "url": "/play/kdca3.pls" - }, - "3": { "name": "KDCA Potomac App/Dep (KRANT)", "url": "/play/kdca1_dep_e.pls" }, - "4": { + "3": { "name": "KDCA Potomac Approach (DCA Final)", "url": "/play/kdca1_app_final.pls" }, - "5": { + "4": { "name": "KDCA Potomac Departure", "url": "/play/kdca1_dep.pls" }, - "6": { + "5": { "name": "KDCA Tower #1", "url": "/play/kdca2_twr.pls" }, - "7": { + "6": { "name": "KDCA Tower #2", "url": "/play/kdca1_twr.pls" }, + "7": { + "name": "KDCA Tower (Helicopters)", + "url": "/play/kdca1_heli.pls" + }, "8": { "name": "KDCA Tower/Approach", "url": "/play/kdca.pls" + }, + "9": { + "name": "KDCA Tower/Heli", + "url": "/play/kdca1_twr_heli.pls" } }, "name": "Ronald Reagan Washington National Airport" @@ -44788,6 +45942,10 @@ "url": "/play/kjyo1_del_gnd.pls" }, "3": { + "name": "KJYO Del/Gnd/Twr/CTAF", + "url": "/play/kjyo1_s.pls" + }, + "4": { "name": "ZDC Sectors 12/04", "url": "/play/kiad2_5.pls" } @@ -44816,9 +45974,13 @@ "feeds": { "0": { "name": "KLYH Ground", - "url": "/archive.php?m=klyh2_gnd" + "url": "/play/klyh2_gnd.pls" }, "1": { + "name": "KLYH Roanoke Approach", + "url": "/play/klyh_roa_app.pls" + }, + "2": { "name": "KLYH Tower", "url": "/play/klyh2_twr.pls" } @@ -44883,12 +46045,32 @@ "KORF": { "feeds": { "0": { + "name": "KORF App/Dep (125.2)", + "url": "/play/korf1_app_125200.pls" + }, + "1": { + "name": "KORF App/Dep (126.05)", + "url": "/play/korf1_app_126050.pls" + }, + "2": { "name": "KORF ATIS", "url": "/play/korf1_atis.pls" }, - "1": { + "3": { + "name": "KORF Gnd/Twr", + "url": "/play/korf1_gnd_twr.pls" + }, + "4": { "name": "KORF Gnd/Twr/App/Radar", "url": "/play/korf1.pls" + }, + "5": { + "name": "KORF Ground", + "url": "/play/korf1_gnd.pls" + }, + "6": { + "name": "KORF Tower", + "url": "/play/korf1_twr.pls" } }, "name": "Norfolk International Airport" @@ -44920,30 +46102,42 @@ "KROA": { "feeds": { "0": { + "name": "KLYH Roanoke Approach", + "url": "/play/klyh_roa_app.pls" + }, + "1": { "name": "KROA App/Dep #1", "url": "/play/kroa2_app.pls" }, - "1": { + "2": { "name": "KROA App/Dep #2", "url": "/play/kroa_app.pls" }, - "2": { + "3": { "name": "KROA ATIS", "url": "/play/kroa_atis.pls" }, - "3": { + "4": { + "name": "KROA Clearance Delivery", + "url": "/play/kroa_del.pls" + }, + "5": { "name": "KROA Del/Gnd", "url": "/play/kroa_del_gnd.pls" }, - "4": { + "6": { "name": "KROA Gnd/Twr", "url": "/play/kroa2_twr.pls" }, - "5": { + "7": { "name": "KROA Gnd/Twr/App", "url": "/play/kroa2.pls" }, - "6": { + "8": { + "name": "KROA Ground", + "url": "/play/kroa_gnd.pls" + }, + "9": { "name": "KROA Tower", "url": "/play/kroa_twr.pls" } @@ -45799,36 +46993,8 @@ "KBFI": { "feeds": { "0": { - "name": "KBFI ATIS", - "url": "/play/kbfi_atis.pls" - }, - "1": { - "name": "KBFI Clearance Delivery", - "url": "/play/kbfi_del.pls" - }, - "2": { - "name": "KBFI Ground", - "url": "/play/kbfi_gnd.pls" - }, - "3": { "name": "KBFI Ground/Tower", "url": "/play/kbfi.pls" - }, - "4": { - "name": "KBFI Guard", - "url": "/play/kbfi_guard.pls" - }, - "5": { - "name": "KBFI Tower (IFR)", - "url": "/play/kbfi_twr_ifr.pls" - }, - "6": { - "name": "KBFI Tower (VFR)", - "url": "/play/kbfi_twr_vfr.pls" - }, - "7": { - "name": "KBFI Tower (VFR/IFR)", - "url": "/play/kbfi_4sdr_twr.pls" } }, "name": "Boeing Field King County International Airport" @@ -45876,13 +47042,7 @@ "feeds": "ERROR" }, "KFHR": { - "feeds": { - "0": { - "name": "KFHR CTAF", - "url": "/play/kfhr.pls" - } - }, - "name": "Friday Harbor Airport" + "feeds": "ERROR" }, "KGEG": { "feeds": { @@ -46043,7 +47203,7 @@ }, "1": { "name": "KSEA App/Arrivals", - "url": "/play/ksea2_app_arr.pls" + "url": "/archive.php?m=ksea2_app_arr" }, "2": { "name": "KSEA App/CHINS STAR", @@ -46106,22 +47266,10 @@ "url": "/play/ksea2_ramp_s.pls" }, "17": { - "name": "KSEA Tower", - "url": "/play/ksea_twr.pls" - }, - "18": { - "name": "KSEA Tower (16L/34R,16C/34C) #1", - "url": "/play/kbfi_ksea_twr1.pls" - }, - "19": { "name": "KSEA Tower (16L/34R,16C/34C) #2", "url": "/play/ksea2_twr_e.pls" }, - "20": { - "name": "KSEA Tower (16R/34L) #1", - "url": "/play/kbfi_ksea_twr2.pls" - }, - "21": { + "18": { "name": "KSEA Tower (16R/34L) #2", "url": "/play/ksea2_twr_w.pls" } @@ -46153,7 +47301,13 @@ "feeds": "ERROR" }, "KVUO": { - "feeds": "ERROR" + "feeds": { + "0": { + "name": "KVUO CTAF/Guard", + "url": "/play/kpdx_pearson.pls" + } + }, + "name": "Pearson Field" }, "KW01": { "feeds": "ERROR" @@ -46623,8 +47777,16 @@ "KMGW": { "feeds": { "0": { - "name": "KMGW Ground/Tower", - "url": "/play/kmgw1_gnd_twr.pls" + "name": "KMGW ASOS", + "url": "/play/kmgw1_asos.pls" + }, + "1": { + "name": "KMGW Ground", + "url": "/play/kmgw1_gnd.pls" + }, + "2": { + "name": "KMGW Tower", + "url": "/play/kmgw1_twr.pls" } }, "name": "Morgantown Municipal Walter L. Bill Hart Field" @@ -46684,11 +47846,11 @@ "KPKB": { "feeds": { "0": { - "name": "KPKB Gnd/Twr/Unicom", + "name": "KPKB Gnd/Twr", "url": "/play/kpkb.pls" }, "1": { - "name": "ZID Indy Center (Parkersburg RCAG)", + "name": "ZID Indy Center (Marietta RCAG)", "url": "/play/kpkb_zid.pls" } }, @@ -47584,13 +48746,7 @@ "feeds": "ERROR" }, "KGRB": { - "feeds": { - "0": { - "name": "KGRB Del/Gnd/Twr/App", - "url": "/play/kgrb.pls" - } - }, - "name": "Austin Straubel International Airport" + "feeds": "ERROR" }, "KGTG": { "feeds": "ERROR" @@ -47711,14 +48867,34 @@ "KOSH": { "feeds": { "0": { + "name": "KOSH ATIS", + "url": "/play/kosh6.pls" + }, + "1": { + "name": "KOSH Del/Gnd/Misc", + "url": "/play/kosh7.pls" + }, + "2": { + "name": "KOSH Emergency/Guard", + "url": "/play/kosh_guard.pls" + }, + "3": { "name": "KOSH Gnd/Twr/App #1", "url": "/play/kosh_perm.pls" }, - "1": { + "4": { "name": "KOSH Gnd/Twr/App #2", "url": "/play/kosh5_all.pls" }, - "2": { + "5": { + "name": "KOSH Tower", + "url": "/play/kosh.pls" + }, + "6": { + "name": "Milwaukee App (OSH)", + "url": "/play/kosh8.pls" + }, + "7": { "name": "ZAU Chicago Center (Lone Rock, Low)", "url": "/play/zau_osh.pls" } @@ -47757,7 +48933,7 @@ "feeds": { "0": { "name": "KRAC CTAF", - "url": "/play/krac.pls" + "url": "/archive.php?m=krac" } }, "name": "John H Batten Airport" diff --git a/js/config.js b/js/config.js index cf7fcd5..d0f0ef9 100644 --- a/js/config.js +++ b/js/config.js @@ -9,7 +9,7 @@ var keys = {} // API Keys var xhr = new XMLHttpRequest(); -xhr.open("GET", "tiles/keys.json", true); +xhr.open("GET", "information/keys.json", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -20,7 +20,6 @@ xhr.send(); var ol3d -var cesuim_active = false var internet_mode = 0 var lastMETAR = 0 var lastItin = 0 @@ -41,7 +40,7 @@ xhr1.send(); var flight_info = {} var TAB = "Radar" -var DateTime = luxon.DateTime; +//var DateTime = luxon.DateTime; var graph_types = ["/dump1090-localhost-local_trailing_rate-", "/dump1090-localhost-aircraft-", "/dump1090-localhost-tracks-", "/dump1090-localhost-signal-", "/dump1090-localhost-local_rate-", "/dump1090-localhost-aircraft_message_rate-", "/dump1090-localhost-cpu-", "/system-localhost-cpu-", "/system-localhost-temperature-", "/system-localhost-memory-", "/system-localhost-network_bandwidth-", "/system-localhost-df_root-", "/system-localhost-disk_io_iops-", "/system-localhost-disk_io_octets-"] /* var graph_types = { "ADSB Message Rate": "/dump1090-localhost-local_trailing_rate-", diff --git a/js/flightinfo.js b/js/flightinfo.js index 70c1820..fc06ef3 100644 --- a/js/flightinfo.js +++ b/js/flightinfo.js @@ -1,371 +1,72 @@ // Generic update function for radar subtabs function updateFlightTab() { - if (flight_info[SelectedPlane]) { + if (internet_mode) { $.getJSON('json/airlines.json', function (world_airlines) { $.getJSON('json/world_airports.json', function (world_airports) { $.getJSON('json/airplanes.json', function (aircraft_information) { - var flightdata = flight_info[SelectedPlane] - var scheduledata = flight_info[SelectedPlane].schedule - flightInfo(flightdata, world_airports, world_airlines) - flightProgress(flightdata, world_airports, scheduledata) - getAircraftInfo(aircraft_information, flightdata) - getPlaneImage(flightdata) - document.getElementById("radar_flight_info").style.display = "block" - document.getElementById("radar_flight_loading").style.display = "none" - document.getElementById("radar_aircraft_info").style.display = "block" - document.getElementById("radar_aircraft_loading").style.display = "none" - }) - }); - }); + // Planes[SelectedPlane] gives + document.getElementById("flight_airport_long_destination").innerHTML = "" + document.getElementById("flight_airport_short_destination").innerHTML = "" + document.getElementById("flight_airport_loc_destination").innerHTML = "" + document.getElementById("flight_airport_long_origin").innerHTML = "" + document.getElementById("flight_airport_short_origin").innerHTML = "" + document.getElementById("flight_airport_loc_origin").innerHTML = "" - } else { - if (internet_mode) { - $.getJSON('json/airlines.json', function (world_airlines) { - $.getJSON('json/world_airports.json', function (world_airports) { - $.getJSON('json/airplanes.json', function (aircraft_information) { - // Planes[SelectedPlane] gives - document.getElementById("flight_progress_div").style.display = "none" - document.getElementById('additional_info_hidden').style.display = "none" - document.getElementById("img_button").disabled = true - - document.getElementById("flight_airport_long_destination").innerHTML = "N/A" - document.getElementById("flight_airport_short_destination").innerHTML = "N/A" - document.getElementById("flight_airport_loc_destination").innerHTML = "N/A" - document.getElementById("flight_airport_long_origin").innerHTML = "N/A" - document.getElementById("flight_airport_short_origin").innerHTML = "N/A" - document.getElementById("flight_airport_loc_origin").innerHTML = "N/A" - - for (element in internet_mode_data) { - if (internet_mode_data[element].hex === SelectedPlane) { - var data = internet_mode_data[element] - if (data.airline != "") { - document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "") - document.getElementById("flight_status").innerHTML = "" - document.getElementById("flight_flighticaonum").innerHTML = data.flight - try { - document.getElementById("flight_airline").innerHTML = world_airlines[data.airline].nameAirline + " " - } catch { - document.getElementById("flight_airline").innerHTML = "N/A " - } - } else { - //document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "") - document.getElementById("flight_status").innerHTML = "" - document.getElementById("flight_flightnum").innerHTML = "" - document.getElementById("flight_flighticaonum").innerHTML = data.flight - document.getElementById("flight_airline").innerHTML = data.flight + for (element in internet_mode_data) { + if (internet_mode_data[element].hex === SelectedPlane) { + var data = internet_mode_data[element] + if (data.airline != "") { + document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "") + try { + document.getElementById("flight_airline").innerHTML = world_airlines[data.airline].nameAirline + " " + } catch { + document.getElementById("flight_airline").innerHTML = "N/A " } - for (airport_search in world_airports) { - if (world_airports[airport_search].iata === internet_mode_data[element].arr && internet_mode_data[element].arr != "") { - var airport = world_airports[airport_search] - try { - document.getElementById("flight_airport_long_destination").innerHTML = airport.name - document.getElementById("flight_airport_short_destination").innerHTML = airport.icao - document.getElementById("flight_airport_loc_destination").innerHTML = airport.city + ", " + country_names[airport.country] - } catch { - document.getElementById("flight_airport_long_destination").innerHTML = "N/A" - document.getElementById("flight_airport_short_destination").innerHTML = "N/A" - document.getElementById("flight_airport_loc_destination").innerHTML = "N/A" - } - } else if (internet_mode_data[element].arr === "") { - document.getElementById("flight_airport_long_destination").innerHTML = "N/A" - document.getElementById("flight_airport_short_destination").innerHTML = "N/A" - document.getElementById("flight_airport_loc_destination").innerHTML = "N/A" + } else { + //document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "") + document.getElementById("flight_flightnum").innerHTML = "" + document.getElementById("flight_airline").innerHTML = data.flight + } + for (airport_search in world_airports) { + if (world_airports[airport_search].iata === internet_mode_data[element].arr && internet_mode_data[element].arr != "") { + var airport = world_airports[airport_search] + try { + document.getElementById("flight_airport_long_destination").innerHTML = airport.name + document.getElementById("flight_airport_short_destination").innerHTML = airport.icao + document.getElementById("flight_airport_loc_destination").innerHTML = airport.city + ", " + country_names[airport.country] + } catch { + document.getElementById("flight_airport_long_destination").innerHTML = "" + document.getElementById("flight_airport_short_destination").innerHTML = "" + document.getElementById("flight_airport_loc_destination").innerHTML = "" } + } else if (internet_mode_data[element].arr === "") { + document.getElementById("flight_airport_long_destination").innerHTML = "" + document.getElementById("flight_airport_short_destination").innerHTML = "" + document.getElementById("flight_airport_loc_destination").innerHTML = "" + } - if (world_airports[airport_search].iata === internet_mode_data[element].dep && internet_mode_data[element].dep != "") { - var airport = world_airports[airport_search] - try { - document.getElementById("flight_airport_long_origin").innerHTML = airport.name - document.getElementById("flight_airport_short_origin").innerHTML = airport.icao - document.getElementById("flight_airport_loc_origin").innerHTML = airport.city + ", " + country_names[airport.country] - } catch { - document.getElementById("flight_airport_long_origin").innerHTML = "N/A" - document.getElementById("flight_airport_short_origin").innerHTML = "N/A" - document.getElementById("flight_airport_loc_origin").innerHTML = "N/A" - } - } else if (internet_mode_data[element].dep === "") { - document.getElementById("flight_airport_long_origin").innerHTML = "N/A" - document.getElementById("flight_airport_short_origin").innerHTML = "N/A" - document.getElementById("flight_airport_loc_origin").innerHTML = "N/A" + if (world_airports[airport_search].iata === internet_mode_data[element].dep && internet_mode_data[element].dep != "") { + var airport = world_airports[airport_search] + try { + document.getElementById("flight_airport_long_origin").innerHTML = airport.name + document.getElementById("flight_airport_short_origin").innerHTML = airport.icao + document.getElementById("flight_airport_loc_origin").innerHTML = airport.city + ", " + country_names[airport.country] + } catch { + document.getElementById("flight_airport_long_origin").innerHTML = "" + document.getElementById("flight_airport_short_origin").innerHTML = "" + document.getElementById("flight_airport_loc_origin").innerHTML = "" } + } else if (internet_mode_data[element].dep === "") { + document.getElementById("flight_airport_long_origin").innerHTML = "" + document.getElementById("flight_airport_short_origin").innerHTML = "" + document.getElementById("flight_airport_loc_origin").innerHTML = "" } } } - document.getElementById("radar_flight_info").style.display = "block" - document.getElementById("radar_flight_loading").style.display = "none" - document.getElementById("radar_aircraft_info").style.display = "block" - document.getElementById("radar_aircraft_loading").style.display = "none" - }) - }); + } + + }) }); - } else { - $.getJSON("https://aviation-edge.com/v2/public/flights?key=" + keys['AE'] + "&aircraftIcao24=" + SelectedPlane, function (flightdata) { - flightdata = flightdata[0] - $.getJSON("https://aviation-edge.com/v2/public/timetable?key=" + keys['AE'] + "&flight_icao=" + flightdata.flight.icaoNumber + "&status=active", function (scheduledata) { - scheduledata = scheduledata[0] - $.getJSON('json/airlines.json', function (world_airlines) { - $.getJSON('json/world_airports.json', function (world_airports) { - $.getJSON('json/airplanes.json', function (aircraft_information) { - flight_info[SelectedPlane] = flightdata - flight_info[SelectedPlane].schedule = scheduledata - flight_info[SelectedPlane].aircraft.information = aircraft_information[flightdata.aircraft.iataCode] - flightInfo(flightdata, world_airports, world_airlines) - flightProgress(flightdata, world_airports, scheduledata) - getAircraftInfo(aircraft_information, flightdata) - getPlaneImage(flightdata) - - document.getElementById("radar_flight_info").style.display = "block" - document.getElementById("radar_flight_loading").style.display = "none" - document.getElementById("radar_aircraft_info").style.display = "block" - document.getElementById("radar_aircraft_loading").style.display = "none" - document.getElementById("img_button").disabled = false - }) - }); - }); - }); - }); - } - - } -} - -// handles information of flight itself -function flightInfo(data, world_airports, world_airlines) { - try { - document.getElementById("flight_flightnum").innerHTML = data.flight.number - document.getElementById("flight_status").innerHTML = toTitleCase(data.status) - document.getElementById("flight_flighticaonum").innerHTML = data.flight.icaoNumber - try { - document.getElementById("flight_airport_long_origin").innerHTML = world_airports[data.departure.icaoCode].name - document.getElementById("flight_airport_short_origin").innerHTML = data.departure.icaoCode - document.getElementById("flight_airport_loc_origin").innerHTML = world_airports[data.departure.icaoCode].city + ", " + country_names[world_airports[data.departure.icaoCode].country] - } catch { - document.getElementById("flight_airport_long_origin").innerHTML = "N/A" - document.getElementById("flight_airport_short_origin").innerHTML = "N/A" - document.getElementById("flight_airport_loc_origin").innerHTML = "N/A" - } - - try { - document.getElementById("flight_airport_long_destination").innerHTML = world_airports[data.arrival.icaoCode].name - document.getElementById("flight_airport_short_destination").innerHTML = data.arrival.icaoCode - document.getElementById("flight_airport_loc_destination").innerHTML = world_airports[data.arrival.icaoCode].city + ", " + country_names[world_airports[data.arrival.icaoCode].country] - } catch { - document.getElementById("flight_airport_long_destination").innerHTML = "N/A" - document.getElementById("flight_airport_short_destination").innerHTML = "N/A" - document.getElementById("flight_airport_loc_destination").innerHTML = "N/A" - } - - - try { - document.getElementById("flight_airline").innerHTML = world_airlines[data.airline.icaoCode].nameAirline + " " - } catch { - document.getElementById("flight_airline").innerHTML = "N/A " - } - } catch { - radarRadarTabSwitch() - } -} - -// get's aircraft information -function getAircraftInfo(aircraft_information, data) { - var aircraft = aircraft_information[data.aircraft.iataCode] - if (aircraft) { - document.getElementById("aircraft_name").innerHTML = aircraft.productionLine - document.getElementById("aircraft_name_addl").innerHTML = aircraft.productionLine - document.getElementById("aircraft_model").innerHTML = aircraft.modelCode - document.getElementById("aircraft_registration").innerHTML = aircraft.numberRegistration - document.getElementById("aircraft_engine").innerHTML = aircraft.enginesType - document.getElementById("aircraft_engine_count").innerHTML = aircraft.enginesCount - document.getElementById("aircraft_status").innerHTML = toTitleCase(aircraft.planeStatus) - document.getElementById("aircraft_age").innerHTML = aircraft.planeAge - if (aircraft.rolloutDate) { - document.getElementById("aircraft_rollout_date").innerHTML = DateTime.fromISO(aircraft.rolloutDate).toLocaleString("DATE_SHORT") - } - if (aircraft.firstFlight) { - document.getElementById("aircraft_first_flight").innerHTML = DateTime.fromISO(aircraft.firstFlight).toLocaleString("DATE_SHORT") - } - - } else { - radarRadarTabSwitch() - - } -} - -// Flight's current progress -function flightProgress(flightdata, world_airports, data) { - try { - arrival_timezone = world_airports[data.arrival.icaoCode].tz - departure_timezone = world_airports[data.departure.icaoCode].tz - - if (data.departure.actualTime) { - departure_time = DateTime.fromISO(data.departure.actualTime, { - zone: departure_timezone - }); - } else if (data.departure.estimatedTime) { - departure_time = DateTime.fromISO(data.departure.estimatedTime, { - zone: departure_timezone - }); - } else if (data.departure.scheduledTime) { - departure_time = DateTime.fromISO(data.departure.scheduledTime, { - zone: departure_timezone - }); - } - - if (data.arrival.actualTime) { - arrival_time = DateTime.fromISO(data.arrival.actualTime, { - zone: arrival_timezone - }); - } else if (data.arrival.estimatedTime) { - arrival_time = DateTime.fromISO(data.arrival.estimatedTime, { - zone: arrival_timezone - }); - } else if (data.arrival.scheduledTime) { - arrival_time = DateTime.fromISO(data.arrival.scheduledTime, { - zone: arrival_timezone - }); - } - - arrival_time = arrival_time.setZone("America/New_York") - departure_time = departure_time.setZone("America/New_York") - document.getElementById("flight_depart_time").innerHTML = departure_time.toLocaleString(DateTime.DATETIME_MED) - document.getElementById("flight_arrival_time").innerHTML = arrival_time.toLocaleString(DateTime.DATETIME_MED) - var trip_progress = getTripProgress(arrival_time, departure_time) - document.getElementById("flight_percentage_spinner").innerHTML = trip_progress + "%" - document.getElementById("flight_progress_circle").setAttribute("class", "progress-circle p" + trip_progress) - flight_info[SelectedPlane].schedule.progress = trip_progress - getFlightPlanImage(flightdata, trip_progress, world_airports) - document.getElementById("flight_progress_div").style.display = "block" - document.getElementById('additional_info_hidden').style.display = "block" - if (data.departure.terminal) { - document.getElementById("flight_depart_terminal").innerHTML = data.departure.terminal - } - if (data.departure.gate) { - document.getElementById("flight_depart_gate").innerHTML = data.departure.gate - } - - if (data.arrival.terminal) { - document.getElementById("flight_arrival_terminal").innerHTML = data.arrival.terminal - } - if (data.arrival.gate) { - document.getElementById("flight_arrival_gate").innerHTML = data.arrival.gate - } - } catch { - document.getElementById("flight_progress_div").style.display = "none" - document.getElementById('additional_info_hidden').style.display = "none" - getFlightPlanImage(flightdata, 1, world_airports) - - } -} - -//Flight progress percentage -function getTripProgress(arrival_time, departure_time) { - var current_time = DateTime.local(); - var total_time = arrival_time.diff(departure_time); - var time_elapsed = current_time.diff(departure_time); - var trip_progress = ((time_elapsed * 100) / total_time).toFixed(0) - var time_remaining = arrival_time.diff(current_time); - document.getElementById("flight_progress").MaterialProgress.setProgress(trip_progress); - if (time_remaining.days != 0) { - document.getElementById("flight_progress_remaining_amount").innerHTML = time_remaining.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'") - } else { - document.getElementById("flight_progress_remaining_amount").innerHTML = time_remaining.toFormat("h 'Hour(s), ' m 'Minute(s)'") - } - if (time_elapsed.days != 0) { - document.getElementById("flight_progress_elapsed_amount").innerHTML = time_elapsed.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'") - } else { - document.getElementById("flight_progress_elapsed_amount").innerHTML = time_elapsed.toFormat("h 'Hour(s), ' m 'Minute(s)'") - } - if (total_time.days != 0) { - document.getElementById("flight_progress_time_amount").innerHTML = total_time.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'") - } else { - document.getElementById("flight_progress_time_amount").innerHTML = total_time.toFormat("h 'Hour(s), ' m 'Minute(s)'") - } - - return trip_progress -} - -// Get image of aircraft -function getPlaneImage(flightdata) { - var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://"+window.location.hostname+":5000/cmd", true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - var page_nodes = $($.parseHTML(xhr.response)); - var img1 = page_nodes.find("#results > div:nth-child(1) > div.result__section.result__section--photo-wrapper > a > img") - var img2 = page_nodes.find("#results > div:nth-child(3) > div.result__section.result__section--photo-wrapper > a > img") - var img3 = page_nodes.find("#results > div:nth-child(4) > div.result__section.result__section--photo-wrapper > a > img") - var img4 = page_nodes.find("#results > div:nth-child(5) > div.result__section.result__section--photo-wrapper > a > img") - if (img2) { - document.getElementById("aircraft_image2").setAttribute('src', img2.attr('src')) - flight_info[SelectedPlane].aircraft.imageurl2 = img2.attr('src') - document.getElementById("aircraft_image3").style.display = "block" - } else { - document.getElementById("aircraft_image2").style.display = "none" - } - - if (img3) { - document.getElementById("aircraft_image3").setAttribute('src', img3.attr('src')) - flight_info[SelectedPlane].aircraft.imageurl3 = img3.attr('src') - document.getElementById("aircraft_image3").style.display = "block" - } else { - document.getElementById("aircraft_image3").style.display = "none" - } - - if (img4) { - document.getElementById("aircraft_image4").style.display = "block" - document.getElementById("aircraft_image4").setAttribute('src', img4.attr('src')) - flight_info[SelectedPlane].aircraft.imageurl4 = img4.attr('src') - } else { - document.getElementById("aircraft_image4").style.display = "none" - } - - - - document.getElementById("aircraft_image1").setAttribute('src', img1.attr('src')) - document.getElementById("aircraft_image1-1").setAttribute('src', img1.attr('src')) - flight_info[SelectedPlane].aircraft.imageurl1 = img1.attr('src') - return - } - } - xhr.send(JSON.stringify({ - command: "curl https://127.0.0.1:7000/www.jetphotos.com/photo/keyword/" + flightdata.aircraft.regNumber - })); -} - -// get image of whole flight path -function getFlightPlanImage(data, flight_progress, world_airports) { - try { - departure_timezone = world_airports[data.departure.icaoCode].tz - /* - if (data.departure.actualTime) { - departure_time = DateTime.fromISO(data.departure.actualTime, { - zone: departure_timezone - }); - } else if (data.departure.estimatedTime) { - departure_time = DateTime.fromISO(data.departure.estimatedTime, { - zone: departure_timezone - }); - } else if (data.departure.scheduledTime) { - departure_time = DateTime.fromISO(data.departure.scheduledTime, { - zone: departure_timezone }); } -*/ - departure_time = DateTime.local(); - var dep_date = departure_time.toFormat('yyyyMMdd') - document.getElementById("progress_image").setAttribute("src", "https://www.flightview.com/fvPublicSiteFT/FlightViewCGI.exe?qtype=gif&acid=" + data.flight.iataNumber + "&depap=" + data.departure.iataCode + "&arrap=" + data.arrival.iataCode + "&depdate=" + dep_date + "&pctcomplete=" + flight_progress) - flight_info[SelectedPlane].flightimage = "https://www.flightview.com/fvPublicSiteFT/FlightViewCGI.exe?qtype=gif&acid=" + data.flight.iataNumber + "&depap=" + data.departure.iataCode + "&arrap=" + data.arrival.iataCode + "&depdate=" + dep_date + "&pctcomplete=" + flight_progress - document.getElementById("img_button").disabled = false - } catch { - document.getElementById("image_modal").style.display = "none" - document.getElementById("img_button").disabled = true - } -} - -function setBigImage(source) { - var source_url = document.getElementById(source).getAttribute("src") - var dest_url = document.getElementById("aircraft_image1-1").getAttribute("src") - document.getElementById("aircraft_image1-1").setAttribute("src", source_url) - document.getElementById(source).setAttribute("src", dest_url) } \ No newline at end of file diff --git a/js/liveatc.js b/js/liveatc.js index d706ba3..40db9d5 100644 --- a/js/liveatc.js +++ b/js/liveatc.js @@ -45,7 +45,7 @@ function playPLS(url, title) { // PLS INFO const proxyurl = "http://" + window.location.hostname + ":7000/"; var request = $.ajax({ - url: 'json/liveatc.json', + url: 'information/liveatc.json', timeout: 5000, cache: true, dataType: 'json' @@ -80,7 +80,7 @@ function playPause() { function listStations() { document.getElementById("atc_selector").innerHTML = "" var request = $.ajax({ - url: 'json/liveatc.json', + url: 'information/liveatc.json', timeout: 5000, cache: true, dataType: 'json' @@ -118,7 +118,7 @@ function selectState(state) { var node = document.createElement("hr") document.getElementById("atc_selector").appendChild(node) var request = $.ajax({ - url: 'json/liveatc.json', + url: 'information/liveatc.json', timeout: 5000, cache: true, dataType: 'json' @@ -165,7 +165,7 @@ function selectAirport(airport, state) { var node = document.createElement("hr") document.getElementById("atc_selector").appendChild(node) var request = $.ajax({ - url: 'json/liveatc.json', + url: 'information/liveatc.json', timeout: 5000, cache: true, dataType: 'json' @@ -188,71 +188,6 @@ function selectAirport(airport, state) { } -//DEPRECATED - NOT USED - GENERATES FILE -function startPulling() { - var json = {} - - FetchPending = $.ajax({ - url: 'json/us_airports.json', - timeout: 5000, - cache: false, - dataType: 'json', - }); - FetchPending.done(function (data) { - var us_airports = data - for (state in us_airports) { - for (airport in us_airports[state].airports) { - var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://127.0.0.1:5000/cmd", true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - console.log(xhr.response) - let a = $(data); - if (json[airport_json[airport].state]) { - - } else { - json[airport_json[airport].state] = {} - } - - if (json[airport_json[airport].state].airports) { - - } else { - json[airport_json[airport].state].airports = {} - } - if (a('font.body > font[color="red"]').html()) { - json[airport_json[airport].state].airports[airport].feeds = "ERROR" - } else { - var feedName = a('table.body > tbody > tr > td[bgcolor="lightblue"]'); - n = 0 - json[airport_json[airport].state].airports[airport].feeds = {} - json[airport_json[airport].state].airports[airport].name = airport_json[airport].name - for (b in feedName) { - let title = a(b).find("strong").text(); - json[airport_json[airport].state].airports[airport].feeds[n] = {} - json[airport_json[airport].state].airports[airport].feeds[n].name = title - n++ - } - var pageurl = a('table.body > tbody > tr:nth-child(4) > td') - i = 0 - for (url in pageurl) { - let title = a(url).find("a").attr('href'); - if (title) { - json[airport_json[airport].state].airports[airport].feeds[i].url = title - i++ - } - } - } - } - } - xhr.send(JSON.stringify({ - command: "https://www.liveatc.net/search/?icao=" + airport - })); - } - } - }) -} - function HHMMSS(time) { var sec_num = parseInt(time, 10); // don't forget the second param var hours = Math.floor(sec_num / 3600); diff --git a/js/luxon.js b/js/luxon.js deleted file mode 100644 index 59df19e..0000000 --- a/js/luxon.js +++ /dev/null @@ -1 +0,0 @@ -var luxon=function(e){"use strict";function r(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(t(Error)),l=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return a(e,t),e}(n),d=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return a(e,t),e}(n),f=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return a(e,t),e}(n),L=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(n),h=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return a(e,t),e}(n),m=function(e){function t(){return e.apply(this,arguments)||this}return a(t,e),t}(n),y=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return a(t,e),t}(n),v="numeric",g="short",p="long",w={year:v,month:v,day:v},k={year:v,month:g,day:v},b={year:v,month:g,day:v,weekday:g},O={year:v,month:p,day:v},S={year:v,month:p,day:v,weekday:p},T={hour:v,minute:v},M={hour:v,minute:v,second:v},N={hour:v,minute:v,second:v,timeZoneName:g},D={hour:v,minute:v,second:v,timeZoneName:p},E={hour:v,minute:v,hour12:!1},x={hour:v,minute:v,second:v,hour12:!1},C={hour:v,minute:v,second:v,hour12:!1,timeZoneName:g},F={hour:v,minute:v,second:v,hour12:!1,timeZoneName:p},Z={year:v,month:v,day:v,hour:v,minute:v},j={year:v,month:v,day:v,hour:v,minute:v,second:v},A={year:v,month:g,day:v,hour:v,minute:v},z={year:v,month:g,day:v,hour:v,minute:v,second:v},_={year:v,month:g,day:v,weekday:g,hour:v,minute:v},q={year:v,month:p,day:v,hour:v,minute:v,timeZoneName:g},H={year:v,month:p,day:v,hour:v,minute:v,second:v,timeZoneName:g},U={year:v,month:p,day:v,weekday:p,hour:v,minute:v,timeZoneName:p},R={year:v,month:p,day:v,weekday:p,hour:v,minute:v,second:v,timeZoneName:p};function W(e){return void 0===e}function P(e){return"number"==typeof e}function J(e){return"number"==typeof e&&e%1==0}function I(){try{return"undefined"!=typeof Intl&&Intl.DateTimeFormat}catch(e){return!1}}function Y(){return!W(Intl.DateTimeFormat.prototype.formatToParts)}function G(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function $(e,r,i){if(0!==e.length)return e.reduce(function(e,t){var n=[r(t),t];return e&&i(e[0],n[0])===e[0]?e:n},null)[1]}function B(n,e){return e.reduce(function(e,t){return e[t]=n[t],e},{})}function Q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function K(e,t,n){return J(e)&&t<=e&&e<=n}function X(e,t){return void 0===t&&(t=2),e.toString().lengthtn.indexOf(c)&&an(this.matrix,u,h,a,c)}else P(u[c])&&(o[c]=u[c])}for(var m in o)0!==o[m]&&(a[r]+=m===r?o[m]:o[m]/this.matrix[r][m]);return rn(this,{values:a},!0).normalize()},e.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);te},e.isBefore=function(e){return!!this.isValid&&this.e<=e},e.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},e.set=function(e){var t=void 0===e?{}:e,n=t.start,r=t.end;return this.isValid?f.fromDateTimes(n||this.s,r||this.e):this},e.splitAt=function(){var t=this;if(!this.isValid)return[];for(var e=arguments.length,n=new Array(e),r=0;r+this.e?this.e:s;a.push(f.fromDateTimes(o,c)),o=c,u+=1}return a},e.splitBy=function(e){var t=un(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var n,r,i=this.s,a=[];i+this.e?this.e:n,a.push(f.fromDateTimes(i,r)),i=r;return a},e.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},e.overlaps=function(e){return this.e>e.s&&this.s=e.e)},e.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},e.intersection=function(e){if(!this.isValid)return this;var t=this.s>e.s?this.s:e.s,n=this.ee.e?this.e:e.e;return f.fromDateTimes(t,n)},f.merge=function(e){var t=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],r=e[1];return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]},[[],null]),n=t[0],r=t[1];return r&&n.push(r),n},f.xor=function(e){for(var t,n,r=null,i=0,a=[],o=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),u=V((t=Array.prototype).concat.apply(t,o).sort(function(e,t){return e.time-t.time}));!(n=u()).done;){var s=n.value;r=1===(i+="s"===s.type?1:-1)?s.time:(r&&+r!=+s.time&&a.push(f.fromDateTimes(r,s.time)),null)}return f.merge(a)},e.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;rue(n)?(t=n+1,u=1):t=n,Object.assign({weekYear:t,weekNumber:u,weekday:o},me(e))}function zn(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,a=Fn(n,1,4),o=ie(n),u=7*r+i-a-3;u<1?u+=ie(t=n-1):othis.valueOf(),u=dn(o?this:e,o?e:this,a,i);return o?u.negate():u},e.diffNow=function(e,t){return void 0===e&&(e="milliseconds"),void 0===t&&(t={}),this.diff(I.local(),e,t)},e.until=function(e){return this.isValid?cn.fromDateTimes(this,e):this},e.hasSame=function(e,t){if(!this.isValid)return!1;if("millisecond"===t)return this.valueOf()===e.valueOf();var n=e.valueOf();return this.startOf(t)<=n&&n<=this.endOf(t)},e.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},e.toRelative=function(e){if(void 0===e&&(e={}),!this.isValid)return null;var t=e.base||I.fromObject({zone:this.zone}),n=e.padding?thisthis.set({month:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return re(this.year)}},{key:"daysInMonth",get:function(){return ae(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?ie(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?ue(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return w}},{key:"DATE_MED",get:function(){return k}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return b}},{key:"DATE_FULL",get:function(){return O}},{key:"DATE_HUGE",get:function(){return S}},{key:"TIME_SIMPLE",get:function(){return T}},{key:"TIME_WITH_SECONDS",get:function(){return M}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return N}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return D}},{key:"TIME_24_SIMPLE",get:function(){return E}},{key:"TIME_24_WITH_SECONDS",get:function(){return x}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return C}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return F}},{key:"DATETIME_SHORT",get:function(){return Z}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return j}},{key:"DATETIME_MED",get:function(){return A}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return _}},{key:"DATETIME_FULL",get:function(){return q}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return H}},{key:"DATETIME_HUGE",get:function(){return U}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return R}}]),I}();function lr(e){if(cr.isDateTime(e))return e;if(e&&e.valueOf&&P(e.valueOf()))return cr.fromJSDate(e);if(e&&"object"==typeof e)return cr.fromObject(e);throw new m("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=cr,e.Duration=on,e.FixedOffsetZone=Re,e.IANAZone=He,e.Info=ln,e.Interval=cn,e.InvalidZone=We,e.LocalZone=je,e.Settings=Ke,e.Zone=Fe,e}({}); \ No newline at end of file diff --git a/js/schedules.js b/js/schedules.js index 96989fd..e72363b 100644 --- a/js/schedules.js +++ b/js/schedules.js @@ -4,7 +4,7 @@ function initializeSchedulesPage() { document.getElementById("itin_body").innerHTML = "" document.getElementById("itin_img").setAttribute("src", 'images/black.jpg') FetchPending = $.ajax({ - url: 'json/liveatc.json', + url: 'information/liveatc.json', timeout: 5000, cache: false, dataType: 'json', @@ -141,7 +141,7 @@ function retrieveSchedule(airport, state) { var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://"+window.location.hostname+":5000/cmd", true); + xhr.open("POST", "http://"+window.location.hostname+":5000/curl", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -251,7 +251,7 @@ function retrieveSchedule(airport, state) { } } xhr.send(JSON.stringify({ - command: "curl https://flightaware.com/live/airport/" + airport + url: "https://flightaware.com/live/airport/" + airport })); } \ No newline at end of file diff --git a/js/script.js b/js/script.js index 2c75f02..37d2a4e 100644 --- a/js/script.js +++ b/js/script.js @@ -246,6 +246,12 @@ function initialize() { document.getElementById("graphs_holder").setAttribute("class", "graphs_s") document.getElementById("graphs_holder").setAttribute("src", "http://localhost/graphs1090/graphs" + graph_types[starting_graph] + "2h.png") $("#loader").removeClass("hidden"); + + if (navigator.userAgent === "RPI") { + document.getElementById("body").style.cursor = "none" + } else { + + } // Get receiver metadata, reconfigure using it, then continue // with initialization $.ajax({ @@ -1014,10 +1020,6 @@ function selectPlaneByHex(hex, autofollow) { Planes[SelectedPlane].clearLines(); Planes[SelectedPlane].updateMarker(); $(Planes[SelectedPlane].tr).removeClass("selected"); - document.getElementById("radar_flight_info").style.display = "none" - document.getElementById("radar_flight_loading").style.display = "block" - document.getElementById("radar_aircraft_info").style.display = "none" - document.getElementById("radar_aircraft_loading").style.display = "block" document.getElementById("lock_button").disabled = false closeSidebar() document.getElementById("tableinfo").style.display = "block" @@ -1029,13 +1031,8 @@ function selectPlaneByHex(hex, autofollow) { // (unless it was a doubleclick..) if (SelectedPlane === hex && !autofollow) { hex = null; - document.getElementById("radar_flight_info").style.display = "none" - document.getElementById("radar_flight_loading").style.display = "block" - document.getElementById("radar_aircraft_info").style.display = "none" - document.getElementById("radar_aircraft_loading").style.display = "block" document.getElementById("lock_button").disabled = false closeSidebar() - radarRadarTabSwitch() document.getElementById("tableinfo").style.display = "block" } @@ -1046,23 +1043,14 @@ function selectPlaneByHex(hex, autofollow) { document.getElementById("aircraft_tab_background").setAttribute('src', "images/black.jpg") tabBackgroundImage() expandSidebar() - radarRadarTabSwitch() updateFlightTab() document.getElementById("tableinfo").style.display = "none" Planes[SelectedPlane].selected = true; Planes[SelectedPlane].updateLines(); Planes[SelectedPlane].updateMarker(); $(Planes[SelectedPlane].tr).addClass("selected"); - document.getElementById("radar_flight_info").style.display = "none" - document.getElementById("radar_flight_loading").style.display = "block" - document.getElementById("radar_aircraft_info").style.display = "none" - document.getElementById("radar_aircraft_loading").style.display = "block" } else { SelectedPlane = null; - document.getElementById("radar_flight_info").style.display = "none" - document.getElementById("radar_flight_loading").style.display = "block" - document.getElementById("radar_aircraft_info").style.display = "none" - document.getElementById("radar_aircraft_loading").style.display = "block" } if (SelectedPlane !== null && autofollow) { @@ -1096,15 +1084,4 @@ function resetMap() { OLMap.getView().setCenter(ol.proj.fromLonLat([CenterLon, CenterLat])); selectPlaneByHex(null, false); -} - -function toggleOffline() { - // Activates Offline Mode - if (OfflineMode === true) { - OfflineMode = false - console.log("False") - } else { - OfflineMode = true - console.log("True") - } } \ No newline at end of file diff --git a/js/script2.js b/js/script2.js index e32c2b1..ad43950 100644 --- a/js/script2.js +++ b/js/script2.js @@ -82,17 +82,6 @@ function ktsToMPH(num) { return num * 1.15078 } -function showInformation() { - document.getElementById("settings_information").style.display = "block" - document.getElementById("settings_default").style.display = "none" - -} - -function showDefault() { - document.getElementById("settings_default").style.display = "block" - document.getElementById("settings_information").style.display = "none" -} - function volUp() { var xhr = new XMLHttpRequest(); xhr.open("POST", "http://" + window.location.hostname + ":5000/audio", true); @@ -139,6 +128,7 @@ function changeMapBounds(btm_left, top_right) { long_east: btm_left[0], long_west: top_right[0] } + console.log(json) xhr.send(JSON.stringify(json)); } @@ -177,42 +167,6 @@ function modal() { modal.style.display = "none"; } } - modal2() -} - -function modal2() { - var modal = document.getElementById("image_modal"); - var btn = document.getElementById("img_button"); - var span = document.getElementById("close_modal2"); - btn.onclick = function () { - modal.style.display = "block"; - } - span.onclick = function () { - modal.style.display = "none"; - } - window.onclick = function (event) { - if (event.target == modal) { - modal.style.display = "none"; - } - } - modal3() -} - -function modal3() { - var modal = document.getElementById("aircraft_modal"); - var btn = document.getElementById("aircraft_button"); - var span = document.getElementById("close_modal3"); - btn.onclick = function () { - modal.style.display = "block"; - } - span.onclick = function () { - modal.style.display = "none"; - } - window.onclick = function (event) { - if (event.target == modal) { - modal.style.display = "none"; - } - } modal4() } @@ -250,7 +204,7 @@ function getInitialVolume() { function getCPUTemp() { var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("GET", "http://" + window.location.hostname + ":5000/cputemp", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -262,9 +216,7 @@ function getCPUTemp() { document.getElementById("internal_temperature").style.color = hsl_col_perc(temp_percentage, 0, 120) } } - xhr.send(JSON.stringify({ - command: "vcgencmd measure_temp" - })); + xhr.send(); } function readBrightnessLevel() { @@ -312,25 +264,6 @@ function setBrightness(direction) { } } -function offlineToggle() { - if (document.getElementById("switch-1").checked) { - openRadar() - document.getElementById("metar_button").disabled = true; - document.getElementById("liveatc_button").disabled = true; - document.getElementById("player").pause() - document.getElementById("itinerary_button").style.opacity = .4 - document.getElementById("itinerary_button").classList.remove("pointer") - document.getElementById("itinerary_button").removeAttribute("onclick") - } else { - document.getElementById("metar_button").disabled = false; - document.getElementById("liveatc_button").disabled = false; - document.getElementById("itinerary_button").style.opacity = 1 - document.getElementById("itinerary_button").classList.add("pointer") - document.getElementById("itinerary_button").setAttribute("onclick", "goItinerary()") - } - -} - function lockPlane() { selectPlaneByHex(SelectedPlane, true); document.getElementById("lock_button").disabled = true @@ -340,7 +273,7 @@ function sendCMD(cmd) { if (cmd === "update") { var output = "" var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("GET", "http://" + window.location.hostname + ":5000/update", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -360,14 +293,12 @@ function sendCMD(cmd) { } } } - xhr.send(JSON.stringify({ - command: "sudo git pull" - })); + xhr.send(); } if (cmd === "getbranch") { var output = "" var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("GET", "http://" + window.location.hostname + ":5000/branch", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -396,7 +327,7 @@ function sendCMD(cmd) { snackbarContainer.MaterialSnackbar.showSnackbar(data); var output = "" var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("GET", "http://" + window.location.hostname + ":5000/shutdown", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -404,9 +335,7 @@ function sendCMD(cmd) { output = xhr.response } } - xhr.send(JSON.stringify({ - command: "cd /usr/local/bin && sudo x728softsd.sh" - })); + xhr.send(); } if (cmd === "restart") { var snackbarContainer = document.getElementById('no-updates-snackbar'); @@ -416,7 +345,7 @@ function sendCMD(cmd) { snackbarContainer.MaterialSnackbar.showSnackbar(data); var output = "" var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("GET", "http://" + window.location.hostname + ":5000/reboot", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { @@ -424,9 +353,7 @@ function sendCMD(cmd) { output = xhr.response } } - xhr.send(JSON.stringify({ - command: "cd /usr/local/bin && sudo reboot" - })); + xhr.send(); } @@ -472,7 +399,7 @@ function changeColorMode() { const themeStylesheet = document.getElementById('theme') //const themeToggle = document.getElementById('theme-toggle') if (themeStylesheet.href.includes('light')) { - + themeStylesheet.href = 'css/ui2-dark.css' document.getElementById("logo").setAttribute("src", "images/dark/logo.png") document.getElementById("radar_image").setAttribute("src", "images/dark/radar.png") document.getElementById("itinerary_image").setAttribute("src", "images/dark/itinerary.png") @@ -496,10 +423,10 @@ function changeColorMode() { function changeBranch(branch) { var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true); + xhr.open("POST", "http://" + window.location.hostname + ":5000/setbranch", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify({ - command: "sudo git checkout " + branch + command: branch })); sendCMD("getbranch") } @@ -567,23 +494,6 @@ function itinAirportDepartures() { document.getElementById("itin_info").style.display = "none" } -function radarRadarTabSwitch() { - document.getElementById("radar_radar_tab").style.display = "block" - document.getElementById("radar_flight_tab").style.display = "none" - document.getElementById("radar_aircraft_tab").style.display = "none" -} - -function radarFlightTabSwitch() { - document.getElementById("radar_radar_tab").style.display = "none" - document.getElementById("radar_flight_tab").style.display = "block" - document.getElementById("radar_aircraft_tab").style.display = "none" -} - -function radarAircraftTabSwitch() { - document.getElementById("radar_radar_tab").style.display = "none" - document.getElementById("radar_flight_tab").style.display = "none" - document.getElementById("radar_aircraft_tab").style.display = "block" -} function changeGraphsTime() { var time = document.getElementById("graphs_time").value @@ -621,13 +531,6 @@ function changeGraph(direction) { } } - -function toTitleCase(str) { - return str.toLowerCase().split(' ').map(function (word) { - return (word.charAt(0).toUpperCase() + word.slice(1)); - }).join(' '); -} - function hsl_col_perc(percent, start, end) { var a = percent / 100, b = (end - start) * a, @@ -636,12 +539,4 @@ function hsl_col_perc(percent, start, end) { // Return a CSS HSL string return 'hsl(' + c + ', 100%, 50%)'; // hsl_col_perc(bed_percent, 0, 120) -} - -function toggleMarkers() { - if (text_labels) { - text_labels = 0 - } else { - text_labels = 1 - } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 191bb9b..0000000 --- a/package-lock.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "olcs": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/olcs/-/olcs-2.13.0.tgz", - "integrity": "sha512-5H41vMRdyvDcy4BWm+6V7vkS7glK+jVpUysVRqhzPnXjwvJG9NnvMxKBhAjBG07Lh9QAKAPMLnQ+RWDofN707Q==" - } - } -} diff --git a/python/api.py b/python/api.py index d20972d..672c65a 100644 --- a/python/api.py +++ b/python/api.py @@ -50,14 +50,52 @@ def volume(): level = os.popen('vol').read() return str(level) -@app.route('/cmd',methods = ['POST']) -def command(): +@app.route('/curl',methods = ['POST']) +def curl(): if request.method == 'POST': json = request.get_json() - output = os.popen("cd /usr/share/dump1090-mutability/html && "+json['command']).read() + output = os.popen("curl "+json['url']).read() #output = os.popen(json['command']).read() return str(output) +@app.route('/cputemp',methods = ['GET']) +def cputemp(): + if request.method == 'GET': + output = os.popen("vcgencmd measure_temp").read() + return str(output) + +@app.route('/update',methods = ['GET']) +def update(): + if request.method == 'GET': + output = os.popen("sudo git pull").read() + return str(output) + +@app.route('/branch',methods = ['GET']) +def branch(): + if request.method == 'GET': + output = os.popen("sudo git branch | grep -F '*'").read() + return str(output) + +@app.route('/shutdown',methods = ['GET']) +def shutdown(): + if request.method == 'GET': + output = os.popen("cd /usr/local/bin && sudo x728softsd.sh").read() + return str(output) + + +@app.route('/reboot',methods = ['GET']) +def reboot(): + if request.method == 'GET': + output = os.popen("cd /usr/local/bin && sudo reboot").read() + return str(output) + +@app.route('/setbranch',methods = ['POST']) +def setbranch(): + if request.method == 'POST': + json = request.get_json() + output = os.popen("cd /usr/share/dump1090-mutability/html && sudo git checkout " +json['branch']).read() + return str(output) + @app.after_request def after_request(response): diff --git a/scripts/internet_data_pc.js b/scripts/internet_data_pc.js index 8710a45..f12ee36 100644 --- a/scripts/internet_data_pc.js +++ b/scripts/internet_data_pc.js @@ -32,26 +32,6 @@ app.use(function (req, res, next) { next(); }); -/* -function getData() { - //console.log('http://localhost:7000/data-live.flightradar24.com/zones/fcgi/feed.js?faa=1&bounds='+bounds.lat_north.toFixed(3)+'%2C'+bounds.lat_south.toFixed(3)+'%2C'+bounds.long_east.toFixed(3)+'%2C'+bounds.long_west.toFixed(3)+'&satellite=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&maxage=14400&gliders=1&stats=1') - const options = { - url: 'http://localhost:7000/data-live.flightradar24.com/zones/fcgi/feed.js?faa=1&bounds=' + bounds.lat_north.toFixed(3) + '%2C' + bounds.lat_south.toFixed(3) + '%2C' + bounds.long_east.toFixed(3) + '%2C' + bounds.long_west.toFixed(3) + '&satellite=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&maxage=14400&gliders=1&stats=1', - headers: { - 'x-requested-with': 'request', - "origin": "*", - "timeout": 4000 - } - }; - request(options, function (error, response, body) { - if (body) { - //console.log(body) - parseData(body) - } - }); -} -*/ - function getData() { var xhr = new XMLHttpRequest() xhr.open("POST", "http://127.0.0.1:5000/cmd", true); diff --git a/scripts/pc_debug.sh b/scripts/pc_debug.sh deleted file mode 100644 index c8a9dce..0000000 --- a/scripts/pc_debug.sh +++ /dev/null @@ -1,9 +0,0 @@ -cd "/mnt/c/Users/Nicholas Pease/Offline Documents/cors-anywhere" -export PORT=7000 -node server.js & - -cd "/mnt/c/Users/Nicholas Pease/OneDrive/Documents/AviationAssistant/python" -python api_pc.py & - -cd "/mnt/c/Users/Nicholas Pease/OneDrive/Documents/AviationAssistant/" -python -m http.server 9500 \ No newline at end of file diff --git a/services.sh b/services.sh index 7d674b3..7db0485 100755 --- a/services.sh +++ b/services.sh @@ -1,6 +1,7 @@ sudo python /usr/share/dump1090-mutability/html/python/battery.py & > /dev/null 2>&1 & sudo python /usr/share/dump1090-mutability/html/python/api.py & > /dev/null 2>&1 & -sudo node /usr/share/dump1090-mutability/html/scripts/internet_data.js & > /usr/share/dump1090-mutability/html/scripts/log & +sudo node /usr/share/dump1090-mutability/html/scripts/internet_data.js & > /dev/null 2>&1 & +/usr/bin/wget http://server1.nicholaspease.com:6500/reports/liveatc.json -O /home/pi/dump1090-info/liveatc.json export PORT=8080 sudo node /home/pi/cors-anywhere/server.js \ No newline at end of file