text: /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
   ~ distributed with this work for additional information
   ~ regarding copyright ownership.  The ASF licenses this file
   ~ to you under the Apache License, Version 2.0 (the
   ~ "License"); you may not use this file except in compliance
   ~ with the License.  You may obtain a copy of the License at
   ~
   ~   http://www.apache.org/licenses/LICENSE-2.0
   ~
   ~ Unless required by applicable law or agreed to in writing,
   ~ software distributed under the License is distributed on an
   ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   ~ KIND, either express or implied.  See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  $(document).ready(function () {
  
      function populateBlocked(ui) {
          var tab = ui.tab || ui.newTab;
          if (tab.attr('id') === 'blocked-tab') {
              $.ajax(window.location + '/blocked.json', {
                  success: function (data) {
                      if (data && data.hrefs) {
                          if (data.hrefs.length > 0) {
                              var rows = '';
                              for (var i = 0; i < data.hrefs.length; i++) {
                                  var cssClass = (i % 2) === 0 ? 'even' : 'odd';
                                  rows += `<tr class="${cssClass} ui-state-default">
                                              <td>${data.hrefs[i].href}</td>
                                              <td>${data.hrefs[i].times}</td>
                                          </tr>`;
                              }
                              $('#invalid-urls-rows').html(rows);
                              var table = $('#invalid-urls');
                              table.trigger('update');
                              var sorting = [[1, 1]];
                              table.trigger('sorton', [sorting]);
                          }
                      }
                  }
              });
          }
      }
  
      $('#invalid-urls').tablesorter();
      $('#xss-tabs').tabs({
          create: function (event, ui) {
              populateBlocked(ui);
          },
          activate: function (event, ui) {
              populateBlocked(ui);
          }
      });
  });
  
  
  