CINXE.COM
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="css/jquery-ui.min.css" /> <link rel="stylesheet" type="text/css" href="css/MonthPicker.min.css" /> <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css" /> <link rel="stylesheet" type="text/css" href="css/custom.css?version=buildNumber" /> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.3/dist/leaflet.css" /> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=GTM-55NWRPG"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GTM-55NWRPG'); </script> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-55NWRPG" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <div id="loader"> <div id="spinner"> </div> </div> <nav class="navbar navbar-toggleable-md navbar-inverse blue-color-9"> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <a class="navbar-brand" href="#">Community Relations</a> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item"> <a class="nav-link new-window" target="_blank" id="flighttracker" href="https://macnoms.com">Flight Tracker</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle active" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Reports</a> <div class="dropdown-menu"> <a class="dropdown-item active" href="/reports/">MSP Interactive Reports</a> <a class="dropdown-item" href="/reports/relievers.html">Relievers Interactive Reports</a> </div> </li> <li class="nav-item"> <a class="nav-link" href="/customers">Complaint Form</a> </li> </ul> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link new-window" target="_blank" href="http://www.metroairports.org">metroairports.org</a> </li> <li class="nav-item"> <a class="nav-link" onclick="$('#helpGeneral').modal('show');">Help</a> </li> <li class="nav-item"> <a class="nav-link new-window" target="_blank" href="https://metroairports.org/file-noise-complaint">Contact Us</a> </li> <li class="nav-item macnoms-brand"> <a class="nav-link" href="https://customers.macnoms.com/reports/" target="_blank"> <img src="./images/MACNOMS_REV Vertical.svg"> </a> </li> </ul> </div> </nav> <div id="sub-nav" class="row bg-faded tab-bar"> <div class="col-sm-6"> <ul class="nav nav-tabs justify-content-center"> <li class="nav-item"> <a class="nav-link active" href="#Data" data-toggle="tab" role="tab">Data</a> </li> <li class="nav-item"> <a class="nav-link" href="#Maps" data-toggle="tab" role="tab">Maps</a> </li> <li class="nav-item"> <a class="nav-link" href="#Archive" data-toggle="tab" role="tab">Archive</a> </li> </ul> </div> <div class="col-sm-6 text-center"> <div class="nav-date-picker"> <label for="MonthPicker">Date: </label> <input class="month-year-input" id="MonthPicker" type="text"> </div> </div> </div> <div class="tab-content"> <div class="tab-pane active" id="Data" role="tabpanel"> <div id="container" class="container"> <div class="card"> <div class="card-block"> <ul class="nav nav-tabs nav-fill"> <li class="nav-item"> <a class="nav-link active" data-toggle="tab" href="#HomePage">Home</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Operations</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" href="#operations-overview">Overview</a> <a class="dropdown-item" data-toggle="tab" href="#operations-detail">By Runway</a> <a class="dropdown-item" data-toggle="tab" href="#operations-schedule">Nighttime Scheduled and Actual</a> <a class="dropdown-item" data-toggle="tab" href="#operations-types">Carrier Jet Aircraft Types</a> <a class="dropdown-item" data-toggle="tab" href="#operations-top15">Top Destinations</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Complaints</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" href="#complaints-overview">Overview</a> <a class="dropdown-item" data-toggle="tab" href="#complaints-city">Complaints By City</a> <a class="dropdown-item" data-toggle="tab" href="#complaints-airport">Complaints By Airport</a> <a class="dropdown-item" data-toggle="tab" href="#complaints-type">Complaints By Types</a> <a class="dropdown-item" data-toggle="tab" href="#complaints-time">Complaints By Time of Day</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Sound Monitoring</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" href="#sound-overview">Overview</a> <a class="dropdown-item" data-toggle="tab" href="#sound-top-ten">Top 10's</a> <a class="dropdown-item" data-toggle="tab" href="#dnl-by-day">Daily DNLs</a> <a class="dropdown-item" data-toggle="tab" href="#dnl-by-month">Monthly DNLs</a> <a class="dropdown-item" data-toggle="tab" href="#sound-count-above">Events Above</a> <a class="dropdown-item" data-toggle="tab" href="#sound-time-above">Time Above</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Abatement</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" href="#abatement-overview">Overview</a> <a class="dropdown-item" data-toggle="tab" href="#abatement-rus">Runway Use System</a> <a class="dropdown-item" data-toggle="tab" href="#abatement-rus-tool">Runway Use System Tool</a> <a class="dropdown-item" data-toggle="tab" href="#abatement-rus-flow">Runway Use System by Flow</a> </div> </li> </ul> <div class="row"> <div id="progress" class="col-12"></div> <div id="alerts" class="col-12"></div> </div> <div class="tab-content" id="resultsView"> <div class="tab-pane active" id="HomePage"> <div class="row"> <div class="col text-center"> <h1>MSP Interactive Reports</h1> </div> </div> <br /> <div class="row"> <img src="img/MSP_home.jpg" class="img-fluid rounded mx-auto d-block" alt=""> </div> </div> <div class="tab-pane"> <div id="CoverPage"> <!-- Coverpage --> </div> </div> <div class="tab-pane" id="operations-overview"> <div id="Operations"> <!-- Operations Template --> </div> </div> <div class="tab-pane" id="operations-detail"> <h3>Operations by Runway</h3> <div class="filters"> <div class="btn-group mr-2" role="group" aria-label="First group"> <button class="btn btn-sm btn-primary active" type="button" name="All"> All </button> <button class="btn btn-sm btn-primary" type="button" name="Night" data-toggle="button" aria-pressed="false" autocomplete="off">Night</button> <button class="btn btn-sm btn-primary" type="button" name="Jet" data-toggle="button" aria-pressed="false" autocomplete="off"> Jet </button> </div> </div> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="operations-types"> <h3>Carrier Jet Aircraft Types</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="operations-schedule"> <h3>Carrier Jet Schedule</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="operations-top15"> <h3>Top Destinations from MSP by runway</h3> <div class="filters"> <div class="btn-group mr-2" role="group" aria-label="First group"> <button class="btn btn-sm btn-primary active" type="button" name="All"> All </button> <button class="btn btn-sm btn-primary" type="button" name="30R" data-toggle="button" aria-pressed="false" autocomplete="off"> 30R </button> <button class="btn btn-sm btn-primary" type="button" name="30L" data-toggle="button" aria-pressed="false" autocomplete="off"> 30L </button> <button class="btn btn-sm btn-primary" type="button" name="17" data-toggle="button" aria-pressed="false" autocomplete="off"> 17 </button> <button class="btn btn-sm btn-primary" type="button" name="12R" data-toggle="button" aria-pressed="false" autocomplete="off"> 12R </button> <button class="btn btn-sm btn-primary" type="button" name="12L" data-toggle="button" aria-pressed="false" autocomplete="off"> 12L </button> </div> </div> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="complaints-overview"> <div id="Complaints"> <!-- Complaints Template --> </div> </div> <div class="tab-pane" id="complaints-city"> <h3>Complaints By City</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="complaints-airport"> <h3>Complaints By Airport</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="complaints-type"> <h3>Complaints By Type</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="complaints-time"> <h3>Complaints By Time of Day</h3> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="sound-overview"> <div id="Noise"> <!-- Noise Template --> </div> </div> <div class="tab-pane" id="sound-top-ten"> <h3>Top 10 Aircraft Sound Events</h3> <div class="row"> <div class="col-lg-4"> <img src="img/rmtMap.png" alt="RMT Map" class="img-fluid"> </div> <div class="col-lg-8"> <div class="form-inline"> <label for="rmt_top_ten_select">Remote Monitoring Tower: </label><select class="form-control" id="rmt_top_ten_select"></select> </div> <div class="results"> <!-- Where results are placed --> </div> </div> </div> </div> <div class="tab-pane" id="dnl-by-day"> <div class="row"> <div class="col-lg-6"> <h3>Daily Aircraft DNL (ADNL) and Community DNL (CDNL) Levels by RMT</h3> <div class="form-inline"> <label for="rmt_dnl_select">Remote Monitoring Tower Location: </label><select class="form-control" id="rmt_dnl_select"></select> </div> <br /> <img src="img/rmtMap.png" alt="RMT Map" class="img-fluid"> </div> <div class="col-lg-6 results"> <!-- Where results are placed --> </div> </div> </div> <div class="tab-pane" id="dnl-by-month"> <div class="row"> <div class="col-xl-4"> <h5>Montly DNL Levels by RMT</h5> <br /> <img src="img/rmtMap.png" alt="RMT Map" class="img-fluid"> </div> <div class="col-xl-8 text-center"> <div class="row"> <div class="col"> <h5>Minneapolis</h5> <div id="Minneapolis-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Richfield</h5> <div id="Richfield-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>St. Paul</h5> <div id="StPaul-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Mendota Heights</h5> <div id="Mendota-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Bloomington</h5> <div id="Bloomington-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Burnsville</h5> <div id="Burnsville-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Apple Valley</h5> <div id="AppleValley-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Inver Grove Heights</h5> <div id="InverGrove-rmt"> </div> </div> </div> <br /> <div class="row"> <div class="col"> <h5>Eagan</h5> <div id="Eagan-rmt"> </div> </div> </div> </div> </div> </div> <div class="tab-pane" id="sound-count-above"> <div class="row"> <div class="col"> <h3>Count Above Breakdown for Arrivals and Departures by RMT</h3> <div class="btn-group" data-toggle="buttons" id="CA-Filter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="total" id="CA-All" autocomplete="off" checked="checked"> Total </label> <label class="btn btn-sm btn-primary"><input type="radio" value="arrival" id="CA-Arrivals" autocomplete="off"> Arrivals </label> <label class="btn btn-sm btn-primary"><input type="radio" value="departure" id="CA-Departures" autocomplete="off"> Departures </label> </div> <div class="results"> <!-- Where results are placed --> </div> </div> </div> </div> <div class="tab-pane" id="sound-time-above"> <div class="row"> <div class="col"> <h3>Time Above Breakdown for Arrivals and Departures by RMT</h3> <div class="btn-group" data-toggle="buttons" id="TA-Filter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="total" id="TA-All" autocomplete="off" checked="checked"> Total </label> <label class="btn btn-sm btn-primary"><input type="radio" value="arrival" id="TA-Arrivals" autocomplete="off"> Arrivals </label> <label class="btn btn-sm btn-primary"><input type="radio" value="departure" id="TA-Departures" autocomplete="off"> Departures </label> </div> <div class="results"> <!-- Where results are placed --> </div> </div> </div> </div> <div class="tab-pane" id="abatement-overview"> <div id="Abatement"> <!-- Abatement Template --> </div> </div> <div class="tab-pane" id="abatement-rus"> <div class="row"> <div class="col-lg-6"> <h3>Runway Use System</h3> </div> <div class="col-lg-6 text-lg-right"> <p>What is the runway use system? <a class="btn btn-sm btn-primary" href="https://metroairports.org/msp-runway-use-system-overview" target="_blank">Learn More</a></p> </div> </div> <div class="results"> <!-- Where results are placed --> </div> </div> <div class="tab-pane" id="abatement-rus-tool"> <div class="row"> <div class="col-lg-6"> <h3>Runway Use System Tool</h3> </div> <div class="col-lg-6 text-lg-right"> <p>What is the runway use system? <a class="btn btn-sm btn-primary" href="https://metroairports.org/msp-runway-use-system-overview" target="_blank">Learn More</a></p> </div> </div> <div class="row"> <div class="col text-center"> <button type="button" class="btn-primary btn" name="Prev" onclick="rusChange('prev')">Previous</button> <input id="RUS-Date"> <button type="button" class="btn-primary btn" name="Next" onclick="rusChange('next')">Next</button> </div> </div> <div class="row"> <div class="col"> <div id="RUS-TOOL" class="results"> <!-- Where results are placed --> </div> </div> </div> </div> <div class="tab-pane" id="abatement-rus-flow"> <div class="row"> <div class="col-lg-6"> <h3>Runway Use System by Flow</h3> </div> <div class="col-lg-6 text-lg-right"> <p>What is the runway use system? <a class="btn btn-sm btn-primary" href="https://metroairports.org/msp-runway-use-system-overview" target="_blank">Learn More</a></p> </div> </div> <div class="results"> <!-- Where results are placed --> </div> </div> </div> </div> <footer class="footer" id="footer" style="display:none;"> <div class="row"> <div class="col text-center"> <h5>Source: MACNOMS</h5> <h6 id="disclaimer"></h6> <div id='Notes'></div> </div> </div> </footer> </div> </div> </div> <div class="tab-pane" id="Maps" role="tabpanel"> <div class="container-fluid"> <ul class="nav nav-tabs justify-content-center"> <li class="nav-item"> <a class="nav-link active" href="#MAP-MSP" data-toggle="tab" role="tab" style="display:none;">MSP</a> </li> <li class="nav-item"> <a class="nav-link" href="#MAP-Operations" data-toggle="tab" role="tab">Operations</a> </li> <li class="nav-item"> <a class="nav-link" href="#MAP-Complaints" data-toggle="tab" role="tab">Complaints</a> </li> <li class="nav-item"> <a class="nav-link" href="#MAP-Sound" data-toggle="tab" role="tab">Sound Monitoring</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Abatement</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" href="#MAP-Corridor">Corridor - Jets</a> <a class="dropdown-item" data-toggle="tab" href="#MAP-TurboProps">Corridor - Turboprops</a> <a class="dropdown-item" data-toggle="tab" href="#MAP-Crossing">Crossing in the Corridor</a> <a class="dropdown-item" data-toggle="tab" href="#MAP-Runway17">Runway 17 Departures</a> </div> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="MAP-Map" role="tabpanel"> </div> <div class="tab-pane" id="MAP-Operations" role="tabpanel"> <label for="MAP-OperationsFilter">Operation: </label> <div class="btn-group" data-toggle="buttons" id="MAP-OperationsFilter"> <label class="btn btn-sm btn-primary active filter-all"><input type="radio" value="total" autocomplete="off" checked="checked"> All </label> <label class="btn btn-sm btn-primary"><input type="radio" value="A" autocomplete="off"> Arrivals </label> <label class="btn btn-sm btn-primary"><input type="radio" value="D" autocomplete="off"> Departures </label> </div> <label for="MAP-OperationsRunwayFilter">Runway: </label> <div class="btn-group" data-toggle="buttons" id="MAP-OperationsRunwayFilter"> <label class="btn btn-sm btn-primary active filter-all"><input type="radio" value="all" autocomplete="off" checked="checked"> All </label> <label class="btn btn-sm btn-primary"><input type="radio" value="04" autocomplete="off"> 4 </label> <label class="btn btn-sm btn-primary"><input type="radio" value="12L" autocomplete="off"> 12L </label> <label class="btn btn-sm btn-primary"><input type="radio" value="12R" autocomplete="off"> 12R </label> <label class="btn btn-sm btn-primary"><input type="radio" value="17" autocomplete="off"> 17 </label> <label class="btn btn-sm btn-primary"><input type="radio" value="22" autocomplete="off"> 22 </label> <label class="btn btn-sm btn-primary"><input type="radio" value="30L" autocomplete="off"> 30L </label> <label class="btn btn-sm btn-primary"><input type="radio" value="30R" autocomplete="off"> 30R </label> <label class="btn btn-sm btn-primary"><input type="radio" value="35" autocomplete="off"> 35 </label> </div> </div> <div class="tab-pane" id="MAP-Complaints" role="tabpanel"> <div class="btn-group" data-toggle="buttons" id="MAP-ComplaintsFilter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="ByLocations" autocomplete="off" checked="checked"> By Locations </label> <label class="btn btn-sm btn-primary"><input type="radio" value="ByComplaints" autocomplete="off"> By Complaints </label> </div> </div> <div class="tab-pane" id="MAP-Sound" role="tabpanel"> </div> <div class="tab-pane" id="MAP-Corridor" role="tabpanel"> <!-- <div class="btn-group" data-toggle="buttons" id="MAP-CorridorFilter">--> <!-- <label class="btn btn-sm btn-primary active"><input type="radio" value="North" autocomplete="off" checked="checked"> North of Corridor </label>--> <!-- <label class="btn btn-sm btn-primary"><input type="radio" value="South" autocomplete="off"> South of Corridor </label>--> <!-- </div>--> </div> <div class="tab-pane" id="MAP-Runway17" role="tabpanel"> <div class="btn-group" data-toggle="buttons" id="MAP-Runway17Filter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="West" autocomplete="off" checked="checked"> Early Westbound Turns </label> <label class="btn btn-sm btn-primary"><input type="radio" value="Night" autocomplete="off"> Night </label> </div> </div> <div class="tab-pane" id="MAP-Crossing" role="tabpanel"> <div class="btn-group" data-toggle="buttons" id="MAP-CrossingFilter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="Day" autocomplete="off" checked="checked"> Day </label> <label class="btn btn-sm btn-primary"><input type="radio" value="Night" autocomplete="off"> Night </label> </div> </div> <div class="tab-pane" id="MAP-TurboProps" role="tabpanel"> <div class="btn-group" data-toggle="buttons" id="MAP-TurboPropsFilter"> <label class="btn btn-sm btn-primary active"><input type="radio" value="North+South" autocomplete="off" checked="checked"> All </label> <!-- <label class="btn btn-sm btn-primary"><input type="radio" value="South" autocomplete="off"> South </label>--> <label class="btn btn-sm btn-primary"><input type="radio" value="In" autocomplete="off"> In </label> </div> </div> </div> <div id="map"></div> </div> </div> <div class="tab-pane" id="Archive" role="tabpanel"> <div class="container"> <div class="row"> <div class="col-4"> <p>PDF reports archive</p> </div> <div class="col-8"> <div class="results" id="archive-list"> </div> </div> </div> </div> </div> <div id="helpGeneral" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="helpGeneral" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Help</h4> </div> <div class="modal-body"> <h3>MSP Reports</h3> <p>Your gateway to <a href="https://customers.macnoms.com/reports/" target="_blank">MACNOMS</a> data.</p> <p>Help Video:</p> <!-- <iframe width="100%" height="300" src="https://www.youtube.com/embed/iHBksoAw724" frameborder="0" allowfullscreen></iframe>--> <iframe width="100%" height="300" src="https://www.youtube-nocookie.com/embed/iHBksoAw724" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Interactive Report Tutorial" ></iframe> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="dataDisclaimer" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="dataDisclaimer" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Disclaimer</h4> </div> <div class="modal-body"> <h3>Data is not finalized</h3> <p>The data is not finalized for the date range you selected. Data will change until the final report is published. Monthly reports are typically published by the 10th day of the following month.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-warning" data-dismiss="modal">Acknowledge</button> </div> </div> </div> </div> </div> <img src="/images/logo.png" class="d-inline-block align-top" alt="Metropolitain Airports Commission" id="MAC-Logo"> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery-ui.min.js"></script> <script type="text/javascript" src="js/tether.min.js"></script> <script type="text/javascript" src="js/bootstrap.min.js"></script> <script type="text/javascript" src="js/plotlyjs-bundle.js"></script> <script type="text/javascript" src="js/handlebars.js"></script> <script type="text/javascript" src="js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="js/MonthPicker.min.js"></script> <script src="https://unpkg.com/leaflet@latest/dist/leaflet.js"></script> <script type="text/javascript" src="js/viewer.js?version=buildNumber"></script> <script type="text/javascript" src="js/viewerMap.js?version=buildNumber"></script> <script type="text/javascript" src="/js/environment.js?version=buildNumber"></script> <script> var api = environment.api_host; // DO NOT CHANGE THIS LINE $('#flighttracker').attr('href',environment.flighttracker); Handlebars.registerHelper("math", function(lvalue, operator, rvalue, options) { if (arguments.length < 4) { // Operator omitted, assuming "+" options = rvalue; rvalue = operator; operator = "+"; } if (typeof lvalue != "undefined") { lvalue = parseFloat(lvalue); } else { lvalue = 0.0; } if (typeof rvalue != "undefined") { rvalue = parseFloat(rvalue); } else { rvalue = 0.0; } return { "+": lvalue + rvalue, "+r": (lvalue + rvalue).toFixed(1), "-": lvalue - rvalue, "*": lvalue * rvalue, "/": lvalue / rvalue, "%": (lvalue / rvalue * 100).toFixed(1) }[operator]; }); // Operations filters [night,jet] var operationsFilter = [false, false]; function operationsInDetail(filters, data) { if (data) { var filter = ''; if (filters[0] === false && filters[1] === false) { filter = 'total'; } else if (filters[0] === false && filters[1] === true) { filter = 'carrier'; } else if (filters[0] === true && filters[1] === false) { filter = 'night'; } else if (filters[1] === true && filters[1] === true) { filter = 'night_carrier'; } report.buildSection('operations-by-runway', $('#operations-detail .results'), data[filter]) } } $('#operations-detail .filters div .btn-primary').on('click', function() { if ($(this).attr('aria-pressed') == 'false') { if (this.name == 'Jet') { operationsFilter[1] = true; } else if (this.name == 'Night') { operationsFilter[0] = true; } } else if ($(this).attr('aria-pressed') == 'true') { if (this.name == 'Jet') { operationsFilter[1] = false; } else if (this.name == 'Night') { operationsFilter[0] = false; } } if (this.name == 'All') { operationsFilter[0] = false; operationsFilter[1] = false; $('#operations-detail .filters div .btn-primary').removeClass('active'); $('#operations-detail .filters div .btn-primary').attr('aria-pressed', 'false'); } if (operationsFilter[0] == false && operationsFilter[1] == false) { $('#operations-detail .filters div button[name="All"]').addClass('active'); } else { $('#operations-detail .filters div button[name="All"]').removeClass('active'); } try { operationsInDetail(operationsFilter, report.exData.operations.byRunway); $('#operations-detail table').DataTable({ "paging": false, "autoWidth": false, "order": [], "info": false, "searching": false, "columns": [null, null, { "orderable": false }, null, { "orderable": false }] }); } catch (err) {} }); var top15Filter = []; var topDestinations = ''; $('#operations-top15 .filters div .btn-primary').on('click', function() { if ($(this).attr('aria-pressed') == 'false') { if (this.name == '30R') { top15Filter.push('30R'); } else if (this.name == '30L') { top15Filter.push('30L'); } else if (this.name == '17') { top15Filter.push('17'); } else if (this.name == '12R') { top15Filter.push('12R'); } else if (this.name == '12L') { top15Filter.push('12L'); } } else if ($(this).attr('aria-pressed') == 'true') { if (this.name == '30R') { top15Filter.splice(top15Filter.indexOf('30R'), 1); } else if (this.name == '30L') { top15Filter.splice(top15Filter.indexOf('30L'), 1); } else if (this.name == '17') { top15Filter.splice(top15Filter.indexOf('17'), 1); } else if (this.name == '12R') { top15Filter.splice(top15Filter.indexOf('12R'), 1); } else if (this.name == '12L') { top15Filter.splice(top15Filter.indexOf('12L'), 1); } } if (this.name == 'All') { top15Filter = []; $('#operations-top15 .filters div .btn-primary').removeClass('active'); $('#operations-top15 .filters div .btn-primary').attr('aria-pressed', 'false'); } if (top15Filter.length == 0) { $('#operations-top15 .filters div button[name="All"]').addClass('active'); } else { $('#operations-top15 .filters div button[name="All"]').removeClass('active'); } try { topDestinations.columns(0).search(top15Filter.join('|'), true).draw() } catch (e) {} }); $('#operations .filters div .btn-secondary').on('click', function() { $('#operations-detail .filters div .btn-primary').attr('aria-pressed', 'false'); $('#operations-detail .filters div .btn-primary').removeClass('active'); operationsFilter = [false, false]; console.log(operationsFilter); operationsInDetail(operationsFilter, report.totalOperations); }); $('#rmt_dnl_select').on('change', function() { report.buildSection('sound-dnl-by-day', $('#dnl-by-day .results'), report.exData.sound.dnlByDay[$('#rmt_dnl_select').val()]); $('#dnl-by-day table').DataTable({ "paging": false, "autoWidth": false, "info": false }); }); $('#rmt_top_ten_select').on('change', function() { report.buildSection('sound-top-ten', $('#sound-top-ten .results'), report.exData.sound.topTens[$('#rmt_top_ten_select').val()]); $('#sound-top-ten table').DataTable({ "paging": false, "autoWidth": false, "order": [1, 'desc'], "info": false }); }); var report = new TAReportView(api, 'TAframework.json?version=buildNumber'); function viewReport(report, report_id) { $('#loader').show(); var month; var year; var deferred = $.Deferred() if (report_id) { $.ajax(api+ '/api/v2/1/report/report/'+report_id+'/').done(function (data) { month = data.month; year = data.year; deferred.resolve([month, year]) }); } else { var date_regex = /^(\d{2})\/(\d{4})$/; if (date_regex.test($('#MonthPicker').val().toString())) { month = $('#MonthPicker').val().toString().split(date_regex)[1]; year = $('#MonthPicker').val().toString().split(date_regex)[2]; deferred.resolve([month, year]) } else { document.getElementById('alerts').appendChild(createAlert("You must select a valid timeframe.", 2)); } } deferred.promise().then(function (result) { month=parseInt(result[0]); year=parseInt(result[1]); report.month = month; report.year = year; var promise = report.renderReport(year, month); promise.then(function () { $('#loader').hide(); }) }); $('button[name="All"]').click(); $('#Notes').html(''); }; function rusChange(option) { function loadRUS() { report.runwayUseChart("RUS-TOOL", report.framework.content.charts.runwayUseTool, report.exData.abatement.runwayUse.detail[report.rusDays[report.rusSelected]], report.rusDays[report.rusSelected]); $('#RUS-Date').val(report.rusDays[report.rusSelected]); } if (option == 'next' && report.rusSelected < report.rusDays.length) { report.rusSelected++; loadRUS(); } else if (option == 'prev' && report.rusSelected > 0) { report.rusSelected--; loadRUS(); } else if (option == 'update') { loadRUS(); } }; // Get the most recent published report, note that some of these might not be finalized. // STart out viewing the most recently published report - which is the last AIRPORT report, // Not the web report, which would trigger the disclaimer. // $.ajax(api+ '/api/v2/1/report/report/?published=True&ordering=-year,-month&report_type__in=AIRPORT&limit=1').done(function (data) { // var selectedMonth = new Date(data.results[0].start_time); // viewReport(report, data.results[0].id); // $.ajax(api+ '/api/v2/1/report/report/?published=True&ordering=-year,-month&report_type__in=WEB-REPORT&limit=1').done(function (data) { var selectedMonth = new Date(data.results[0].start_time); viewReport(report, data.results[0].id); var maxMonth = new Date(data.results[0].start_time); // maxMonth.setDate(maxMonth.getDate() - 1); $('#MonthPicker').MonthPicker({ 'MinMonth': '-60m', 'MaxMonth': maxMonth, 'Button': false, 'SelectedMonth': selectedMonth }); $('#MonthPicker').MonthPicker('option', 'OnAfterMenuClose', function() { viewReport(report); }); $('#RUS-Date').on('change', function() { var rusDay = $('#RUS-Date').datepicker('getDate'); report.rusSelected = rusDay.getDate() - 1; rusChange('update'); }); }); // }); </script> </body> </html>