git repos / PlatformFolders

blame: html/doxygen/4.1.0/search/search.js

normal view · raw

9e6bb466 Poul Sander 2021-08-08 15:42 1
/*
9e6bb466 Poul Sander 2021-08-08 15:42 2
 @licstart  The following is the entire license notice for the
9e6bb466 Poul Sander 2021-08-08 15:42 3
 JavaScript code in this file.
9e6bb466 Poul Sander 2021-08-08 15:42 4
9e6bb466 Poul Sander 2021-08-08 15:42 5
 Copyright (C) 1997-2017 by Dimitri van Heesch
9e6bb466 Poul Sander 2021-08-08 15:42 6
9e6bb466 Poul Sander 2021-08-08 15:42 7
 This program is free software; you can redistribute it and/or modify
9e6bb466 Poul Sander 2021-08-08 15:42 8
 it under the terms of the GNU General Public License as published by
9e6bb466 Poul Sander 2021-08-08 15:42 9
 the Free Software Foundation; either version 2 of the License, or
9e6bb466 Poul Sander 2021-08-08 15:42 10
 (at your option) any later version.
9e6bb466 Poul Sander 2021-08-08 15:42 11
9e6bb466 Poul Sander 2021-08-08 15:42 12
 This program is distributed in the hope that it will be useful,
9e6bb466 Poul Sander 2021-08-08 15:42 13
 but WITHOUT ANY WARRANTY; without even the implied warranty of
9e6bb466 Poul Sander 2021-08-08 15:42 14
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9e6bb466 Poul Sander 2021-08-08 15:42 15
 GNU General Public License for more details.
9e6bb466 Poul Sander 2021-08-08 15:42 16
9e6bb466 Poul Sander 2021-08-08 15:42 17
 You should have received a copy of the GNU General Public License along
9e6bb466 Poul Sander 2021-08-08 15:42 18
 with this program; if not, write to the Free Software Foundation, Inc.,
9e6bb466 Poul Sander 2021-08-08 15:42 19
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
9e6bb466 Poul Sander 2021-08-08 15:42 20
9e6bb466 Poul Sander 2021-08-08 15:42 21
 @licend  The above is the entire license notice
9e6bb466 Poul Sander 2021-08-08 15:42 22
 for the JavaScript code in this file
9e6bb466 Poul Sander 2021-08-08 15:42 23
 */
9e6bb466 Poul Sander 2021-08-08 15:42 24
function convertToId(search)
9e6bb466 Poul Sander 2021-08-08 15:42 25
{
9e6bb466 Poul Sander 2021-08-08 15:42 26
  var result = '';
9e6bb466 Poul Sander 2021-08-08 15:42 27
  for (i=0;i<search.length;i++)
9e6bb466 Poul Sander 2021-08-08 15:42 28
  {
9e6bb466 Poul Sander 2021-08-08 15:42 29
    var c = search.charAt(i);
9e6bb466 Poul Sander 2021-08-08 15:42 30
    var cn = c.charCodeAt(0);
9e6bb466 Poul Sander 2021-08-08 15:42 31
    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
9e6bb466 Poul Sander 2021-08-08 15:42 32
    {
9e6bb466 Poul Sander 2021-08-08 15:42 33
      result+=c;
9e6bb466 Poul Sander 2021-08-08 15:42 34
    }
9e6bb466 Poul Sander 2021-08-08 15:42 35
    else if (cn<16)
9e6bb466 Poul Sander 2021-08-08 15:42 36
    {
9e6bb466 Poul Sander 2021-08-08 15:42 37
      result+="_0"+cn.toString(16);
9e6bb466 Poul Sander 2021-08-08 15:42 38
    }
9e6bb466 Poul Sander 2021-08-08 15:42 39
    else
9e6bb466 Poul Sander 2021-08-08 15:42 40
    {
9e6bb466 Poul Sander 2021-08-08 15:42 41
      result+="_"+cn.toString(16);
9e6bb466 Poul Sander 2021-08-08 15:42 42
    }
9e6bb466 Poul Sander 2021-08-08 15:42 43
  }
9e6bb466 Poul Sander 2021-08-08 15:42 44
  return result;
9e6bb466 Poul Sander 2021-08-08 15:42 45
}
9e6bb466 Poul Sander 2021-08-08 15:42 46
9e6bb466 Poul Sander 2021-08-08 15:42 47
function getXPos(item)
9e6bb466 Poul Sander 2021-08-08 15:42 48
{
9e6bb466 Poul Sander 2021-08-08 15:42 49
  var x = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 50
  if (item.offsetWidth)
9e6bb466 Poul Sander 2021-08-08 15:42 51
  {
9e6bb466 Poul Sander 2021-08-08 15:42 52
    while (item && item!=document.body)
9e6bb466 Poul Sander 2021-08-08 15:42 53
    {
9e6bb466 Poul Sander 2021-08-08 15:42 54
      x   += item.offsetLeft;
9e6bb466 Poul Sander 2021-08-08 15:42 55
      item = item.offsetParent;
9e6bb466 Poul Sander 2021-08-08 15:42 56
    }
9e6bb466 Poul Sander 2021-08-08 15:42 57
  }
9e6bb466 Poul Sander 2021-08-08 15:42 58
  return x;
9e6bb466 Poul Sander 2021-08-08 15:42 59
}
9e6bb466 Poul Sander 2021-08-08 15:42 60
9e6bb466 Poul Sander 2021-08-08 15:42 61
function getYPos(item)
9e6bb466 Poul Sander 2021-08-08 15:42 62
{
9e6bb466 Poul Sander 2021-08-08 15:42 63
  var y = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 64
  if (item.offsetWidth)
9e6bb466 Poul Sander 2021-08-08 15:42 65
  {
9e6bb466 Poul Sander 2021-08-08 15:42 66
     while (item && item!=document.body)
9e6bb466 Poul Sander 2021-08-08 15:42 67
     {
9e6bb466 Poul Sander 2021-08-08 15:42 68
       y   += item.offsetTop;
9e6bb466 Poul Sander 2021-08-08 15:42 69
       item = item.offsetParent;
9e6bb466 Poul Sander 2021-08-08 15:42 70
     }
9e6bb466 Poul Sander 2021-08-08 15:42 71
  }
9e6bb466 Poul Sander 2021-08-08 15:42 72
  return y;
9e6bb466 Poul Sander 2021-08-08 15:42 73
}
9e6bb466 Poul Sander 2021-08-08 15:42 74
9e6bb466 Poul Sander 2021-08-08 15:42 75
/* A class handling everything associated with the search panel.
9e6bb466 Poul Sander 2021-08-08 15:42 76
9e6bb466 Poul Sander 2021-08-08 15:42 77
   Parameters:
9e6bb466 Poul Sander 2021-08-08 15:42 78
   name - The name of the global variable that will be
9e6bb466 Poul Sander 2021-08-08 15:42 79
          storing this instance.  Is needed to be able to set timeouts.
9e6bb466 Poul Sander 2021-08-08 15:42 80
   resultPath - path to use for external files
9e6bb466 Poul Sander 2021-08-08 15:42 81
*/
9e6bb466 Poul Sander 2021-08-08 15:42 82
function SearchBox(name, resultsPath, inFrame, label)
9e6bb466 Poul Sander 2021-08-08 15:42 83
{
9e6bb466 Poul Sander 2021-08-08 15:42 84
  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
9e6bb466 Poul Sander 2021-08-08 15:42 85
9e6bb466 Poul Sander 2021-08-08 15:42 86
  // ---------- Instance variables
9e6bb466 Poul Sander 2021-08-08 15:42 87
  this.name                  = name;
9e6bb466 Poul Sander 2021-08-08 15:42 88
  this.resultsPath           = resultsPath;
9e6bb466 Poul Sander 2021-08-08 15:42 89
  this.keyTimeout            = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 90
  this.keyTimeoutLength      = 500;
9e6bb466 Poul Sander 2021-08-08 15:42 91
  this.closeSelectionTimeout = 300;
9e6bb466 Poul Sander 2021-08-08 15:42 92
  this.lastSearchValue       = "";
9e6bb466 Poul Sander 2021-08-08 15:42 93
  this.lastResultsPage       = "";
9e6bb466 Poul Sander 2021-08-08 15:42 94
  this.hideTimeout           = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 95
  this.searchIndex           = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 96
  this.searchActive          = false;
9e6bb466 Poul Sander 2021-08-08 15:42 97
  this.insideFrame           = inFrame;
9e6bb466 Poul Sander 2021-08-08 15:42 98
  this.searchLabel           = label;
9e6bb466 Poul Sander 2021-08-08 15:42 99
9e6bb466 Poul Sander 2021-08-08 15:42 100
  // ----------- DOM Elements
9e6bb466 Poul Sander 2021-08-08 15:42 101
9e6bb466 Poul Sander 2021-08-08 15:42 102
  this.DOMSearchField = function()
9e6bb466 Poul Sander 2021-08-08 15:42 103
  {  return document.getElementById("MSearchField");  }
9e6bb466 Poul Sander 2021-08-08 15:42 104
9e6bb466 Poul Sander 2021-08-08 15:42 105
  this.DOMSearchSelect = function()
9e6bb466 Poul Sander 2021-08-08 15:42 106
  {  return document.getElementById("MSearchSelect");  }
9e6bb466 Poul Sander 2021-08-08 15:42 107
9e6bb466 Poul Sander 2021-08-08 15:42 108
  this.DOMSearchSelectWindow = function()
9e6bb466 Poul Sander 2021-08-08 15:42 109
  {  return document.getElementById("MSearchSelectWindow");  }
9e6bb466 Poul Sander 2021-08-08 15:42 110
9e6bb466 Poul Sander 2021-08-08 15:42 111
  this.DOMPopupSearchResults = function()
9e6bb466 Poul Sander 2021-08-08 15:42 112
  {  return document.getElementById("MSearchResults");  }
9e6bb466 Poul Sander 2021-08-08 15:42 113
9e6bb466 Poul Sander 2021-08-08 15:42 114
  this.DOMPopupSearchResultsWindow = function()
9e6bb466 Poul Sander 2021-08-08 15:42 115
  {  return document.getElementById("MSearchResultsWindow");  }
9e6bb466 Poul Sander 2021-08-08 15:42 116
9e6bb466 Poul Sander 2021-08-08 15:42 117
  this.DOMSearchClose = function()
9e6bb466 Poul Sander 2021-08-08 15:42 118
  {  return document.getElementById("MSearchClose"); }
9e6bb466 Poul Sander 2021-08-08 15:42 119
9e6bb466 Poul Sander 2021-08-08 15:42 120
  this.DOMSearchBox = function()
9e6bb466 Poul Sander 2021-08-08 15:42 121
  {  return document.getElementById("MSearchBox");  }
9e6bb466 Poul Sander 2021-08-08 15:42 122
9e6bb466 Poul Sander 2021-08-08 15:42 123
  // ------------ Event Handlers
9e6bb466 Poul Sander 2021-08-08 15:42 124
9e6bb466 Poul Sander 2021-08-08 15:42 125
  // Called when focus is added or removed from the search field.
9e6bb466 Poul Sander 2021-08-08 15:42 126
  this.OnSearchFieldFocus = function(isActive)
9e6bb466 Poul Sander 2021-08-08 15:42 127
  {
9e6bb466 Poul Sander 2021-08-08 15:42 128
    this.Activate(isActive);
9e6bb466 Poul Sander 2021-08-08 15:42 129
  }
9e6bb466 Poul Sander 2021-08-08 15:42 130
9e6bb466 Poul Sander 2021-08-08 15:42 131
  this.OnSearchSelectShow = function()
9e6bb466 Poul Sander 2021-08-08 15:42 132
  {
9e6bb466 Poul Sander 2021-08-08 15:42 133
    var searchSelectWindow = this.DOMSearchSelectWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 134
    var searchField        = this.DOMSearchSelect();
9e6bb466 Poul Sander 2021-08-08 15:42 135
9e6bb466 Poul Sander 2021-08-08 15:42 136
    if (this.insideFrame)
9e6bb466 Poul Sander 2021-08-08 15:42 137
    {
9e6bb466 Poul Sander 2021-08-08 15:42 138
      var left = getXPos(searchField);
9e6bb466 Poul Sander 2021-08-08 15:42 139
      var top  = getYPos(searchField);
9e6bb466 Poul Sander 2021-08-08 15:42 140
      left += searchField.offsetWidth + 6;
9e6bb466 Poul Sander 2021-08-08 15:42 141
      top += searchField.offsetHeight;
9e6bb466 Poul Sander 2021-08-08 15:42 142
9e6bb466 Poul Sander 2021-08-08 15:42 143
      // show search selection popup
9e6bb466 Poul Sander 2021-08-08 15:42 144
      searchSelectWindow.style.display='block';
9e6bb466 Poul Sander 2021-08-08 15:42 145
      left -= searchSelectWindow.offsetWidth;
9e6bb466 Poul Sander 2021-08-08 15:42 146
      searchSelectWindow.style.left =  left + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 147
      searchSelectWindow.style.top  =  top  + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 148
    }
9e6bb466 Poul Sander 2021-08-08 15:42 149
    else
9e6bb466 Poul Sander 2021-08-08 15:42 150
    {
9e6bb466 Poul Sander 2021-08-08 15:42 151
      var left = getXPos(searchField);
9e6bb466 Poul Sander 2021-08-08 15:42 152
      var top  = getYPos(searchField);
9e6bb466 Poul Sander 2021-08-08 15:42 153
      top += searchField.offsetHeight;
9e6bb466 Poul Sander 2021-08-08 15:42 154
9e6bb466 Poul Sander 2021-08-08 15:42 155
      // show search selection popup
9e6bb466 Poul Sander 2021-08-08 15:42 156
      searchSelectWindow.style.display='block';
9e6bb466 Poul Sander 2021-08-08 15:42 157
      searchSelectWindow.style.left =  left + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 158
      searchSelectWindow.style.top  =  top  + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 159
    }
9e6bb466 Poul Sander 2021-08-08 15:42 160
9e6bb466 Poul Sander 2021-08-08 15:42 161
    // stop selection hide timer
9e6bb466 Poul Sander 2021-08-08 15:42 162
    if (this.hideTimeout)
9e6bb466 Poul Sander 2021-08-08 15:42 163
    {
9e6bb466 Poul Sander 2021-08-08 15:42 164
      clearTimeout(this.hideTimeout);
9e6bb466 Poul Sander 2021-08-08 15:42 165
      this.hideTimeout=0;
9e6bb466 Poul Sander 2021-08-08 15:42 166
    }
9e6bb466 Poul Sander 2021-08-08 15:42 167
    return false; // to avoid "image drag" default event
9e6bb466 Poul Sander 2021-08-08 15:42 168
  }
9e6bb466 Poul Sander 2021-08-08 15:42 169
9e6bb466 Poul Sander 2021-08-08 15:42 170
  this.OnSearchSelectHide = function()
9e6bb466 Poul Sander 2021-08-08 15:42 171
  {
9e6bb466 Poul Sander 2021-08-08 15:42 172
    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
9e6bb466 Poul Sander 2021-08-08 15:42 173
                                  this.closeSelectionTimeout);
9e6bb466 Poul Sander 2021-08-08 15:42 174
  }
9e6bb466 Poul Sander 2021-08-08 15:42 175
9e6bb466 Poul Sander 2021-08-08 15:42 176
  // Called when the content of the search field is changed.
9e6bb466 Poul Sander 2021-08-08 15:42 177
  this.OnSearchFieldChange = function(evt)
9e6bb466 Poul Sander 2021-08-08 15:42 178
  {
9e6bb466 Poul Sander 2021-08-08 15:42 179
    if (this.keyTimeout) // kill running timer
9e6bb466 Poul Sander 2021-08-08 15:42 180
    {
9e6bb466 Poul Sander 2021-08-08 15:42 181
      clearTimeout(this.keyTimeout);
9e6bb466 Poul Sander 2021-08-08 15:42 182
      this.keyTimeout = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 183
    }
9e6bb466 Poul Sander 2021-08-08 15:42 184
9e6bb466 Poul Sander 2021-08-08 15:42 185
    var e  = (evt) ? evt : window.event; // for IE
9e6bb466 Poul Sander 2021-08-08 15:42 186
    if (e.keyCode==40 || e.keyCode==13)
9e6bb466 Poul Sander 2021-08-08 15:42 187
    {
9e6bb466 Poul Sander 2021-08-08 15:42 188
      if (e.shiftKey==1)
9e6bb466 Poul Sander 2021-08-08 15:42 189
      {
9e6bb466 Poul Sander 2021-08-08 15:42 190
        this.OnSearchSelectShow();
9e6bb466 Poul Sander 2021-08-08 15:42 191
        var win=this.DOMSearchSelectWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 192
        for (i=0;i<win.childNodes.length;i++)
9e6bb466 Poul Sander 2021-08-08 15:42 193
        {
9e6bb466 Poul Sander 2021-08-08 15:42 194
          var child = win.childNodes[i]; // get span within a
9e6bb466 Poul Sander 2021-08-08 15:42 195
          if (child.className=='SelectItem')
9e6bb466 Poul Sander 2021-08-08 15:42 196
          {
9e6bb466 Poul Sander 2021-08-08 15:42 197
            child.focus();
9e6bb466 Poul Sander 2021-08-08 15:42 198
            return;
9e6bb466 Poul Sander 2021-08-08 15:42 199
          }
9e6bb466 Poul Sander 2021-08-08 15:42 200
        }
9e6bb466 Poul Sander 2021-08-08 15:42 201
        return;
9e6bb466 Poul Sander 2021-08-08 15:42 202
      }
9e6bb466 Poul Sander 2021-08-08 15:42 203
      else if (window.frames.MSearchResults.searchResults)
9e6bb466 Poul Sander 2021-08-08 15:42 204
      {
9e6bb466 Poul Sander 2021-08-08 15:42 205
        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
9e6bb466 Poul Sander 2021-08-08 15:42 206
        if (elem) elem.focus();
9e6bb466 Poul Sander 2021-08-08 15:42 207
      }
9e6bb466 Poul Sander 2021-08-08 15:42 208
    }
9e6bb466 Poul Sander 2021-08-08 15:42 209
    else if (e.keyCode==27) // Escape out of the search field
9e6bb466 Poul Sander 2021-08-08 15:42 210
    {
9e6bb466 Poul Sander 2021-08-08 15:42 211
      this.DOMSearchField().blur();
9e6bb466 Poul Sander 2021-08-08 15:42 212
      this.DOMPopupSearchResultsWindow().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 213
      this.DOMSearchClose().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 214
      this.lastSearchValue = '';
9e6bb466 Poul Sander 2021-08-08 15:42 215
      this.Activate(false);
9e6bb466 Poul Sander 2021-08-08 15:42 216
      return;
9e6bb466 Poul Sander 2021-08-08 15:42 217
    }
9e6bb466 Poul Sander 2021-08-08 15:42 218
9e6bb466 Poul Sander 2021-08-08 15:42 219
    // strip whitespaces
9e6bb466 Poul Sander 2021-08-08 15:42 220
    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
9e6bb466 Poul Sander 2021-08-08 15:42 221
9e6bb466 Poul Sander 2021-08-08 15:42 222
    if (searchValue != this.lastSearchValue) // search value has changed
9e6bb466 Poul Sander 2021-08-08 15:42 223
    {
9e6bb466 Poul Sander 2021-08-08 15:42 224
      if (searchValue != "") // non-empty search
9e6bb466 Poul Sander 2021-08-08 15:42 225
      {
9e6bb466 Poul Sander 2021-08-08 15:42 226
        // set timer for search update
9e6bb466 Poul Sander 2021-08-08 15:42 227
        this.keyTimeout = setTimeout(this.name + '.Search()',
9e6bb466 Poul Sander 2021-08-08 15:42 228
                                     this.keyTimeoutLength);
9e6bb466 Poul Sander 2021-08-08 15:42 229
      }
9e6bb466 Poul Sander 2021-08-08 15:42 230
      else // empty search field
9e6bb466 Poul Sander 2021-08-08 15:42 231
      {
9e6bb466 Poul Sander 2021-08-08 15:42 232
        this.DOMPopupSearchResultsWindow().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 233
        this.DOMSearchClose().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 234
        this.lastSearchValue = '';
9e6bb466 Poul Sander 2021-08-08 15:42 235
      }
9e6bb466 Poul Sander 2021-08-08 15:42 236
    }
9e6bb466 Poul Sander 2021-08-08 15:42 237
  }
9e6bb466 Poul Sander 2021-08-08 15:42 238
9e6bb466 Poul Sander 2021-08-08 15:42 239
  this.SelectItemCount = function(id)
9e6bb466 Poul Sander 2021-08-08 15:42 240
  {
9e6bb466 Poul Sander 2021-08-08 15:42 241
    var count=0;
9e6bb466 Poul Sander 2021-08-08 15:42 242
    var win=this.DOMSearchSelectWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 243
    for (i=0;i<win.childNodes.length;i++)
9e6bb466 Poul Sander 2021-08-08 15:42 244
    {
9e6bb466 Poul Sander 2021-08-08 15:42 245
      var child = win.childNodes[i]; // get span within a
9e6bb466 Poul Sander 2021-08-08 15:42 246
      if (child.className=='SelectItem')
9e6bb466 Poul Sander 2021-08-08 15:42 247
      {
9e6bb466 Poul Sander 2021-08-08 15:42 248
        count++;
9e6bb466 Poul Sander 2021-08-08 15:42 249
      }
9e6bb466 Poul Sander 2021-08-08 15:42 250
    }
9e6bb466 Poul Sander 2021-08-08 15:42 251
    return count;
9e6bb466 Poul Sander 2021-08-08 15:42 252
  }
9e6bb466 Poul Sander 2021-08-08 15:42 253
9e6bb466 Poul Sander 2021-08-08 15:42 254
  this.SelectItemSet = function(id)
9e6bb466 Poul Sander 2021-08-08 15:42 255
  {
9e6bb466 Poul Sander 2021-08-08 15:42 256
    var i,j=0;
9e6bb466 Poul Sander 2021-08-08 15:42 257
    var win=this.DOMSearchSelectWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 258
    for (i=0;i<win.childNodes.length;i++)
9e6bb466 Poul Sander 2021-08-08 15:42 259
    {
9e6bb466 Poul Sander 2021-08-08 15:42 260
      var child = win.childNodes[i]; // get span within a
9e6bb466 Poul Sander 2021-08-08 15:42 261
      if (child.className=='SelectItem')
9e6bb466 Poul Sander 2021-08-08 15:42 262
      {
9e6bb466 Poul Sander 2021-08-08 15:42 263
        var node = child.firstChild;
9e6bb466 Poul Sander 2021-08-08 15:42 264
        if (j==id)
9e6bb466 Poul Sander 2021-08-08 15:42 265
        {
9e6bb466 Poul Sander 2021-08-08 15:42 266
          node.innerHTML='&#8226;';
9e6bb466 Poul Sander 2021-08-08 15:42 267
        }
9e6bb466 Poul Sander 2021-08-08 15:42 268
        else
9e6bb466 Poul Sander 2021-08-08 15:42 269
        {
9e6bb466 Poul Sander 2021-08-08 15:42 270
          node.innerHTML='&#160;';
9e6bb466 Poul Sander 2021-08-08 15:42 271
        }
9e6bb466 Poul Sander 2021-08-08 15:42 272
        j++;
9e6bb466 Poul Sander 2021-08-08 15:42 273
      }
9e6bb466 Poul Sander 2021-08-08 15:42 274
    }
9e6bb466 Poul Sander 2021-08-08 15:42 275
  }
9e6bb466 Poul Sander 2021-08-08 15:42 276
9e6bb466 Poul Sander 2021-08-08 15:42 277
  // Called when an search filter selection is made.
9e6bb466 Poul Sander 2021-08-08 15:42 278
  // set item with index id as the active item
9e6bb466 Poul Sander 2021-08-08 15:42 279
  this.OnSelectItem = function(id)
9e6bb466 Poul Sander 2021-08-08 15:42 280
  {
9e6bb466 Poul Sander 2021-08-08 15:42 281
    this.searchIndex = id;
9e6bb466 Poul Sander 2021-08-08 15:42 282
    this.SelectItemSet(id);
9e6bb466 Poul Sander 2021-08-08 15:42 283
    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
9e6bb466 Poul Sander 2021-08-08 15:42 284
    if (searchValue!="" && this.searchActive) // something was found -> do a search
9e6bb466 Poul Sander 2021-08-08 15:42 285
    {
9e6bb466 Poul Sander 2021-08-08 15:42 286
      this.Search();
9e6bb466 Poul Sander 2021-08-08 15:42 287
    }
9e6bb466 Poul Sander 2021-08-08 15:42 288
  }
9e6bb466 Poul Sander 2021-08-08 15:42 289
9e6bb466 Poul Sander 2021-08-08 15:42 290
  this.OnSearchSelectKey = function(evt)
9e6bb466 Poul Sander 2021-08-08 15:42 291
  {
9e6bb466 Poul Sander 2021-08-08 15:42 292
    var e = (evt) ? evt : window.event; // for IE
9e6bb466 Poul Sander 2021-08-08 15:42 293
    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
9e6bb466 Poul Sander 2021-08-08 15:42 294
    {
9e6bb466 Poul Sander 2021-08-08 15:42 295
      this.searchIndex++;
9e6bb466 Poul Sander 2021-08-08 15:42 296
      this.OnSelectItem(this.searchIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 297
    }
9e6bb466 Poul Sander 2021-08-08 15:42 298
    else if (e.keyCode==38 && this.searchIndex>0) // Up
9e6bb466 Poul Sander 2021-08-08 15:42 299
    {
9e6bb466 Poul Sander 2021-08-08 15:42 300
      this.searchIndex--;
9e6bb466 Poul Sander 2021-08-08 15:42 301
      this.OnSelectItem(this.searchIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 302
    }
9e6bb466 Poul Sander 2021-08-08 15:42 303
    else if (e.keyCode==13 || e.keyCode==27)
9e6bb466 Poul Sander 2021-08-08 15:42 304
    {
9e6bb466 Poul Sander 2021-08-08 15:42 305
      this.OnSelectItem(this.searchIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 306
      this.CloseSelectionWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 307
      this.DOMSearchField().focus();
9e6bb466 Poul Sander 2021-08-08 15:42 308
    }
9e6bb466 Poul Sander 2021-08-08 15:42 309
    return false;
9e6bb466 Poul Sander 2021-08-08 15:42 310
  }
9e6bb466 Poul Sander 2021-08-08 15:42 311
9e6bb466 Poul Sander 2021-08-08 15:42 312
  // --------- Actions
9e6bb466 Poul Sander 2021-08-08 15:42 313
9e6bb466 Poul Sander 2021-08-08 15:42 314
  // Closes the results window.
9e6bb466 Poul Sander 2021-08-08 15:42 315
  this.CloseResultsWindow = function()
9e6bb466 Poul Sander 2021-08-08 15:42 316
  {
9e6bb466 Poul Sander 2021-08-08 15:42 317
    this.DOMPopupSearchResultsWindow().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 318
    this.DOMSearchClose().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 319
    this.Activate(false);
9e6bb466 Poul Sander 2021-08-08 15:42 320
  }
9e6bb466 Poul Sander 2021-08-08 15:42 321
9e6bb466 Poul Sander 2021-08-08 15:42 322
  this.CloseSelectionWindow = function()
9e6bb466 Poul Sander 2021-08-08 15:42 323
  {
9e6bb466 Poul Sander 2021-08-08 15:42 324
    this.DOMSearchSelectWindow().style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 325
  }
9e6bb466 Poul Sander 2021-08-08 15:42 326
9e6bb466 Poul Sander 2021-08-08 15:42 327
  // Performs a search.
9e6bb466 Poul Sander 2021-08-08 15:42 328
  this.Search = function()
9e6bb466 Poul Sander 2021-08-08 15:42 329
  {
9e6bb466 Poul Sander 2021-08-08 15:42 330
    this.keyTimeout = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 331
9e6bb466 Poul Sander 2021-08-08 15:42 332
    // strip leading whitespace
9e6bb466 Poul Sander 2021-08-08 15:42 333
    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
9e6bb466 Poul Sander 2021-08-08 15:42 334
9e6bb466 Poul Sander 2021-08-08 15:42 335
    var code = searchValue.toLowerCase().charCodeAt(0);
9e6bb466 Poul Sander 2021-08-08 15:42 336
    var idxChar = searchValue.substr(0, 1).toLowerCase();
9e6bb466 Poul Sander 2021-08-08 15:42 337
    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
9e6bb466 Poul Sander 2021-08-08 15:42 338
    {
9e6bb466 Poul Sander 2021-08-08 15:42 339
      idxChar = searchValue.substr(0, 2);
9e6bb466 Poul Sander 2021-08-08 15:42 340
    }
9e6bb466 Poul Sander 2021-08-08 15:42 341
9e6bb466 Poul Sander 2021-08-08 15:42 342
    var resultsPage;
9e6bb466 Poul Sander 2021-08-08 15:42 343
    var resultsPageWithSearch;
9e6bb466 Poul Sander 2021-08-08 15:42 344
    var hasResultsPage;
9e6bb466 Poul Sander 2021-08-08 15:42 345
9e6bb466 Poul Sander 2021-08-08 15:42 346
    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
9e6bb466 Poul Sander 2021-08-08 15:42 347
    if (idx!=-1)
9e6bb466 Poul Sander 2021-08-08 15:42 348
    {
9e6bb466 Poul Sander 2021-08-08 15:42 349
       var hexCode=idx.toString(16);
9e6bb466 Poul Sander 2021-08-08 15:42 350
       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
9e6bb466 Poul Sander 2021-08-08 15:42 351
       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
9e6bb466 Poul Sander 2021-08-08 15:42 352
       hasResultsPage = true;
9e6bb466 Poul Sander 2021-08-08 15:42 353
    }
9e6bb466 Poul Sander 2021-08-08 15:42 354
    else // nothing available for this search term
9e6bb466 Poul Sander 2021-08-08 15:42 355
    {
9e6bb466 Poul Sander 2021-08-08 15:42 356
       resultsPage = this.resultsPath + '/nomatches.html';
9e6bb466 Poul Sander 2021-08-08 15:42 357
       resultsPageWithSearch = resultsPage;
9e6bb466 Poul Sander 2021-08-08 15:42 358
       hasResultsPage = false;
9e6bb466 Poul Sander 2021-08-08 15:42 359
    }
9e6bb466 Poul Sander 2021-08-08 15:42 360
9e6bb466 Poul Sander 2021-08-08 15:42 361
    window.frames.MSearchResults.location = resultsPageWithSearch;
9e6bb466 Poul Sander 2021-08-08 15:42 362
    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 363
9e6bb466 Poul Sander 2021-08-08 15:42 364
    if (domPopupSearchResultsWindow.style.display!='block')
9e6bb466 Poul Sander 2021-08-08 15:42 365
    {
9e6bb466 Poul Sander 2021-08-08 15:42 366
       var domSearchBox = this.DOMSearchBox();
9e6bb466 Poul Sander 2021-08-08 15:42 367
       this.DOMSearchClose().style.display = 'inline';
9e6bb466 Poul Sander 2021-08-08 15:42 368
       if (this.insideFrame)
9e6bb466 Poul Sander 2021-08-08 15:42 369
       {
9e6bb466 Poul Sander 2021-08-08 15:42 370
         var domPopupSearchResults = this.DOMPopupSearchResults();
9e6bb466 Poul Sander 2021-08-08 15:42 371
         domPopupSearchResultsWindow.style.position = 'relative';
9e6bb466 Poul Sander 2021-08-08 15:42 372
         domPopupSearchResultsWindow.style.display  = 'block';
9e6bb466 Poul Sander 2021-08-08 15:42 373
         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
9e6bb466 Poul Sander 2021-08-08 15:42 374
         domPopupSearchResultsWindow.style.width    = width + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 375
         domPopupSearchResults.style.width          = width + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 376
       }
9e6bb466 Poul Sander 2021-08-08 15:42 377
       else
9e6bb466 Poul Sander 2021-08-08 15:42 378
       {
9e6bb466 Poul Sander 2021-08-08 15:42 379
         var domPopupSearchResults = this.DOMPopupSearchResults();
9e6bb466 Poul Sander 2021-08-08 15:42 380
         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
9e6bb466 Poul Sander 2021-08-08 15:42 381
         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
9e6bb466 Poul Sander 2021-08-08 15:42 382
         domPopupSearchResultsWindow.style.display = 'block';
9e6bb466 Poul Sander 2021-08-08 15:42 383
         left -= domPopupSearchResults.offsetWidth;
9e6bb466 Poul Sander 2021-08-08 15:42 384
         domPopupSearchResultsWindow.style.top     = top  + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 385
         domPopupSearchResultsWindow.style.left    = left + 'px';
9e6bb466 Poul Sander 2021-08-08 15:42 386
       }
9e6bb466 Poul Sander 2021-08-08 15:42 387
    }
9e6bb466 Poul Sander 2021-08-08 15:42 388
9e6bb466 Poul Sander 2021-08-08 15:42 389
    this.lastSearchValue = searchValue;
9e6bb466 Poul Sander 2021-08-08 15:42 390
    this.lastResultsPage = resultsPage;
9e6bb466 Poul Sander 2021-08-08 15:42 391
  }
9e6bb466 Poul Sander 2021-08-08 15:42 392
9e6bb466 Poul Sander 2021-08-08 15:42 393
  // -------- Activation Functions
9e6bb466 Poul Sander 2021-08-08 15:42 394
9e6bb466 Poul Sander 2021-08-08 15:42 395
  // Activates or deactivates the search panel, resetting things to
9e6bb466 Poul Sander 2021-08-08 15:42 396
  // their default values if necessary.
9e6bb466 Poul Sander 2021-08-08 15:42 397
  this.Activate = function(isActive)
9e6bb466 Poul Sander 2021-08-08 15:42 398
  {
9e6bb466 Poul Sander 2021-08-08 15:42 399
    if (isActive || // open it
9e6bb466 Poul Sander 2021-08-08 15:42 400
        this.DOMPopupSearchResultsWindow().style.display == 'block'
9e6bb466 Poul Sander 2021-08-08 15:42 401
       )
9e6bb466 Poul Sander 2021-08-08 15:42 402
    {
9e6bb466 Poul Sander 2021-08-08 15:42 403
      this.DOMSearchBox().className = 'MSearchBoxActive';
9e6bb466 Poul Sander 2021-08-08 15:42 404
9e6bb466 Poul Sander 2021-08-08 15:42 405
      var searchField = this.DOMSearchField();
9e6bb466 Poul Sander 2021-08-08 15:42 406
9e6bb466 Poul Sander 2021-08-08 15:42 407
      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
9e6bb466 Poul Sander 2021-08-08 15:42 408
      {
9e6bb466 Poul Sander 2021-08-08 15:42 409
        searchField.value = '';
9e6bb466 Poul Sander 2021-08-08 15:42 410
        this.searchActive = true;
9e6bb466 Poul Sander 2021-08-08 15:42 411
      }
9e6bb466 Poul Sander 2021-08-08 15:42 412
    }
9e6bb466 Poul Sander 2021-08-08 15:42 413
    else if (!isActive) // directly remove the panel
9e6bb466 Poul Sander 2021-08-08 15:42 414
    {
9e6bb466 Poul Sander 2021-08-08 15:42 415
      this.DOMSearchBox().className = 'MSearchBoxInactive';
9e6bb466 Poul Sander 2021-08-08 15:42 416
      this.DOMSearchField().value   = this.searchLabel;
9e6bb466 Poul Sander 2021-08-08 15:42 417
      this.searchActive             = false;
9e6bb466 Poul Sander 2021-08-08 15:42 418
      this.lastSearchValue          = ''
9e6bb466 Poul Sander 2021-08-08 15:42 419
      this.lastResultsPage          = '';
9e6bb466 Poul Sander 2021-08-08 15:42 420
    }
9e6bb466 Poul Sander 2021-08-08 15:42 421
  }
9e6bb466 Poul Sander 2021-08-08 15:42 422
}
9e6bb466 Poul Sander 2021-08-08 15:42 423
9e6bb466 Poul Sander 2021-08-08 15:42 424
// -----------------------------------------------------------------------
9e6bb466 Poul Sander 2021-08-08 15:42 425
9e6bb466 Poul Sander 2021-08-08 15:42 426
// The class that handles everything on the search results page.
9e6bb466 Poul Sander 2021-08-08 15:42 427
function SearchResults(name)
9e6bb466 Poul Sander 2021-08-08 15:42 428
{
9e6bb466 Poul Sander 2021-08-08 15:42 429
    // The number of matches from the last run of <Search()>.
9e6bb466 Poul Sander 2021-08-08 15:42 430
    this.lastMatchCount = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 431
    this.lastKey = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 432
    this.repeatOn = false;
9e6bb466 Poul Sander 2021-08-08 15:42 433
9e6bb466 Poul Sander 2021-08-08 15:42 434
    // Toggles the visibility of the passed element ID.
9e6bb466 Poul Sander 2021-08-08 15:42 435
    this.FindChildElement = function(id)
9e6bb466 Poul Sander 2021-08-08 15:42 436
    {
9e6bb466 Poul Sander 2021-08-08 15:42 437
      var parentElement = document.getElementById(id);
9e6bb466 Poul Sander 2021-08-08 15:42 438
      var element = parentElement.firstChild;
9e6bb466 Poul Sander 2021-08-08 15:42 439
9e6bb466 Poul Sander 2021-08-08 15:42 440
      while (element && element!=parentElement)
9e6bb466 Poul Sander 2021-08-08 15:42 441
      {
9e6bb466 Poul Sander 2021-08-08 15:42 442
        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
9e6bb466 Poul Sander 2021-08-08 15:42 443
        {
9e6bb466 Poul Sander 2021-08-08 15:42 444
          return element;
9e6bb466 Poul Sander 2021-08-08 15:42 445
        }
9e6bb466 Poul Sander 2021-08-08 15:42 446
9e6bb466 Poul Sander 2021-08-08 15:42 447
        if (element.nodeName == 'DIV' && element.hasChildNodes())
9e6bb466 Poul Sander 2021-08-08 15:42 448
        {
9e6bb466 Poul Sander 2021-08-08 15:42 449
           element = element.firstChild;
9e6bb466 Poul Sander 2021-08-08 15:42 450
        }
9e6bb466 Poul Sander 2021-08-08 15:42 451
        else if (element.nextSibling)
9e6bb466 Poul Sander 2021-08-08 15:42 452
        {
9e6bb466 Poul Sander 2021-08-08 15:42 453
           element = element.nextSibling;
9e6bb466 Poul Sander 2021-08-08 15:42 454
        }
9e6bb466 Poul Sander 2021-08-08 15:42 455
        else
9e6bb466 Poul Sander 2021-08-08 15:42 456
        {
9e6bb466 Poul Sander 2021-08-08 15:42 457
          do
9e6bb466 Poul Sander 2021-08-08 15:42 458
          {
9e6bb466 Poul Sander 2021-08-08 15:42 459
            element = element.parentNode;
9e6bb466 Poul Sander 2021-08-08 15:42 460
          }
9e6bb466 Poul Sander 2021-08-08 15:42 461
          while (element && element!=parentElement && !element.nextSibling);
9e6bb466 Poul Sander 2021-08-08 15:42 462
9e6bb466 Poul Sander 2021-08-08 15:42 463
          if (element && element!=parentElement)
9e6bb466 Poul Sander 2021-08-08 15:42 464
          {
9e6bb466 Poul Sander 2021-08-08 15:42 465
            element = element.nextSibling;
9e6bb466 Poul Sander 2021-08-08 15:42 466
          }
9e6bb466 Poul Sander 2021-08-08 15:42 467
        }
9e6bb466 Poul Sander 2021-08-08 15:42 468
      }
9e6bb466 Poul Sander 2021-08-08 15:42 469
    }
9e6bb466 Poul Sander 2021-08-08 15:42 470
9e6bb466 Poul Sander 2021-08-08 15:42 471
    this.Toggle = function(id)
9e6bb466 Poul Sander 2021-08-08 15:42 472
    {
9e6bb466 Poul Sander 2021-08-08 15:42 473
      var element = this.FindChildElement(id);
9e6bb466 Poul Sander 2021-08-08 15:42 474
      if (element)
9e6bb466 Poul Sander 2021-08-08 15:42 475
      {
9e6bb466 Poul Sander 2021-08-08 15:42 476
        if (element.style.display == 'block')
9e6bb466 Poul Sander 2021-08-08 15:42 477
        {
9e6bb466 Poul Sander 2021-08-08 15:42 478
          element.style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 479
        }
9e6bb466 Poul Sander 2021-08-08 15:42 480
        else
9e6bb466 Poul Sander 2021-08-08 15:42 481
        {
9e6bb466 Poul Sander 2021-08-08 15:42 482
          element.style.display = 'block';
9e6bb466 Poul Sander 2021-08-08 15:42 483
        }
9e6bb466 Poul Sander 2021-08-08 15:42 484
      }
9e6bb466 Poul Sander 2021-08-08 15:42 485
    }
9e6bb466 Poul Sander 2021-08-08 15:42 486
9e6bb466 Poul Sander 2021-08-08 15:42 487
    // Searches for the passed string.  If there is no parameter,
9e6bb466 Poul Sander 2021-08-08 15:42 488
    // it takes it from the URL query.
9e6bb466 Poul Sander 2021-08-08 15:42 489
    //
9e6bb466 Poul Sander 2021-08-08 15:42 490
    // Always returns true, since other documents may try to call it
9e6bb466 Poul Sander 2021-08-08 15:42 491
    // and that may or may not be possible.
9e6bb466 Poul Sander 2021-08-08 15:42 492
    this.Search = function(search)
9e6bb466 Poul Sander 2021-08-08 15:42 493
    {
9e6bb466 Poul Sander 2021-08-08 15:42 494
      if (!search) // get search word from URL
9e6bb466 Poul Sander 2021-08-08 15:42 495
      {
9e6bb466 Poul Sander 2021-08-08 15:42 496
        search = window.location.search;
9e6bb466 Poul Sander 2021-08-08 15:42 497
        search = search.substring(1);  // Remove the leading '?'
9e6bb466 Poul Sander 2021-08-08 15:42 498
        search = unescape(search);
9e6bb466 Poul Sander 2021-08-08 15:42 499
      }
9e6bb466 Poul Sander 2021-08-08 15:42 500
9e6bb466 Poul Sander 2021-08-08 15:42 501
      search = search.replace(/^ +/, ""); // strip leading spaces
9e6bb466 Poul Sander 2021-08-08 15:42 502
      search = search.replace(/ +$/, ""); // strip trailing spaces
9e6bb466 Poul Sander 2021-08-08 15:42 503
      search = search.toLowerCase();
9e6bb466 Poul Sander 2021-08-08 15:42 504
      search = convertToId(search);
9e6bb466 Poul Sander 2021-08-08 15:42 505
9e6bb466 Poul Sander 2021-08-08 15:42 506
      var resultRows = document.getElementsByTagName("div");
9e6bb466 Poul Sander 2021-08-08 15:42 507
      var matches = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 508
9e6bb466 Poul Sander 2021-08-08 15:42 509
      var i = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 510
      while (i < resultRows.length)
9e6bb466 Poul Sander 2021-08-08 15:42 511
      {
9e6bb466 Poul Sander 2021-08-08 15:42 512
        var row = resultRows.item(i);
9e6bb466 Poul Sander 2021-08-08 15:42 513
        if (row.className == "SRResult")
9e6bb466 Poul Sander 2021-08-08 15:42 514
        {
9e6bb466 Poul Sander 2021-08-08 15:42 515
          var rowMatchName = row.id.toLowerCase();
9e6bb466 Poul Sander 2021-08-08 15:42 516
          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
9e6bb466 Poul Sander 2021-08-08 15:42 517
9e6bb466 Poul Sander 2021-08-08 15:42 518
          if (search.length<=rowMatchName.length &&
9e6bb466 Poul Sander 2021-08-08 15:42 519
             rowMatchName.substr(0, search.length)==search)
9e6bb466 Poul Sander 2021-08-08 15:42 520
          {
9e6bb466 Poul Sander 2021-08-08 15:42 521
            row.style.display = 'block';
9e6bb466 Poul Sander 2021-08-08 15:42 522
            matches++;
9e6bb466 Poul Sander 2021-08-08 15:42 523
          }
9e6bb466 Poul Sander 2021-08-08 15:42 524
          else
9e6bb466 Poul Sander 2021-08-08 15:42 525
          {
9e6bb466 Poul Sander 2021-08-08 15:42 526
            row.style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 527
          }
9e6bb466 Poul Sander 2021-08-08 15:42 528
        }
9e6bb466 Poul Sander 2021-08-08 15:42 529
        i++;
9e6bb466 Poul Sander 2021-08-08 15:42 530
      }
9e6bb466 Poul Sander 2021-08-08 15:42 531
      document.getElementById("Searching").style.display='none';
9e6bb466 Poul Sander 2021-08-08 15:42 532
      if (matches == 0) // no results
9e6bb466 Poul Sander 2021-08-08 15:42 533
      {
9e6bb466 Poul Sander 2021-08-08 15:42 534
        document.getElementById("NoMatches").style.display='block';
9e6bb466 Poul Sander 2021-08-08 15:42 535
      }
9e6bb466 Poul Sander 2021-08-08 15:42 536
      else // at least one result
9e6bb466 Poul Sander 2021-08-08 15:42 537
      {
9e6bb466 Poul Sander 2021-08-08 15:42 538
        document.getElementById("NoMatches").style.display='none';
9e6bb466 Poul Sander 2021-08-08 15:42 539
      }
9e6bb466 Poul Sander 2021-08-08 15:42 540
      this.lastMatchCount = matches;
9e6bb466 Poul Sander 2021-08-08 15:42 541
      return true;
9e6bb466 Poul Sander 2021-08-08 15:42 542
    }
9e6bb466 Poul Sander 2021-08-08 15:42 543
9e6bb466 Poul Sander 2021-08-08 15:42 544
    // return the first item with index index or higher that is visible
9e6bb466 Poul Sander 2021-08-08 15:42 545
    this.NavNext = function(index)
9e6bb466 Poul Sander 2021-08-08 15:42 546
    {
9e6bb466 Poul Sander 2021-08-08 15:42 547
      var focusItem;
9e6bb466 Poul Sander 2021-08-08 15:42 548
      while (1)
9e6bb466 Poul Sander 2021-08-08 15:42 549
      {
9e6bb466 Poul Sander 2021-08-08 15:42 550
        var focusName = 'Item'+index;
9e6bb466 Poul Sander 2021-08-08 15:42 551
        focusItem = document.getElementById(focusName);
9e6bb466 Poul Sander 2021-08-08 15:42 552
        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
9e6bb466 Poul Sander 2021-08-08 15:42 553
        {
9e6bb466 Poul Sander 2021-08-08 15:42 554
          break;
9e6bb466 Poul Sander 2021-08-08 15:42 555
        }
9e6bb466 Poul Sander 2021-08-08 15:42 556
        else if (!focusItem) // last element
9e6bb466 Poul Sander 2021-08-08 15:42 557
        {
9e6bb466 Poul Sander 2021-08-08 15:42 558
          break;
9e6bb466 Poul Sander 2021-08-08 15:42 559
        }
9e6bb466 Poul Sander 2021-08-08 15:42 560
        focusItem=null;
9e6bb466 Poul Sander 2021-08-08 15:42 561
        index++;
9e6bb466 Poul Sander 2021-08-08 15:42 562
      }
9e6bb466 Poul Sander 2021-08-08 15:42 563
      return focusItem;
9e6bb466 Poul Sander 2021-08-08 15:42 564
    }
9e6bb466 Poul Sander 2021-08-08 15:42 565
9e6bb466 Poul Sander 2021-08-08 15:42 566
    this.NavPrev = function(index)
9e6bb466 Poul Sander 2021-08-08 15:42 567
    {
9e6bb466 Poul Sander 2021-08-08 15:42 568
      var focusItem;
9e6bb466 Poul Sander 2021-08-08 15:42 569
      while (1)
9e6bb466 Poul Sander 2021-08-08 15:42 570
      {
9e6bb466 Poul Sander 2021-08-08 15:42 571
        var focusName = 'Item'+index;
9e6bb466 Poul Sander 2021-08-08 15:42 572
        focusItem = document.getElementById(focusName);
9e6bb466 Poul Sander 2021-08-08 15:42 573
        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
9e6bb466 Poul Sander 2021-08-08 15:42 574
        {
9e6bb466 Poul Sander 2021-08-08 15:42 575
          break;
9e6bb466 Poul Sander 2021-08-08 15:42 576
        }
9e6bb466 Poul Sander 2021-08-08 15:42 577
        else if (!focusItem) // last element
9e6bb466 Poul Sander 2021-08-08 15:42 578
        {
9e6bb466 Poul Sander 2021-08-08 15:42 579
          break;
9e6bb466 Poul Sander 2021-08-08 15:42 580
        }
9e6bb466 Poul Sander 2021-08-08 15:42 581
        focusItem=null;
9e6bb466 Poul Sander 2021-08-08 15:42 582
        index--;
9e6bb466 Poul Sander 2021-08-08 15:42 583
      }
9e6bb466 Poul Sander 2021-08-08 15:42 584
      return focusItem;
9e6bb466 Poul Sander 2021-08-08 15:42 585
    }
9e6bb466 Poul Sander 2021-08-08 15:42 586
9e6bb466 Poul Sander 2021-08-08 15:42 587
    this.ProcessKeys = function(e)
9e6bb466 Poul Sander 2021-08-08 15:42 588
    {
9e6bb466 Poul Sander 2021-08-08 15:42 589
      if (e.type == "keydown")
9e6bb466 Poul Sander 2021-08-08 15:42 590
      {
9e6bb466 Poul Sander 2021-08-08 15:42 591
        this.repeatOn = false;
9e6bb466 Poul Sander 2021-08-08 15:42 592
        this.lastKey = e.keyCode;
9e6bb466 Poul Sander 2021-08-08 15:42 593
      }
9e6bb466 Poul Sander 2021-08-08 15:42 594
      else if (e.type == "keypress")
9e6bb466 Poul Sander 2021-08-08 15:42 595
      {
9e6bb466 Poul Sander 2021-08-08 15:42 596
        if (!this.repeatOn)
9e6bb466 Poul Sander 2021-08-08 15:42 597
        {
9e6bb466 Poul Sander 2021-08-08 15:42 598
          if (this.lastKey) this.repeatOn = true;
9e6bb466 Poul Sander 2021-08-08 15:42 599
          return false; // ignore first keypress after keydown
9e6bb466 Poul Sander 2021-08-08 15:42 600
        }
9e6bb466 Poul Sander 2021-08-08 15:42 601
      }
9e6bb466 Poul Sander 2021-08-08 15:42 602
      else if (e.type == "keyup")
9e6bb466 Poul Sander 2021-08-08 15:42 603
      {
9e6bb466 Poul Sander 2021-08-08 15:42 604
        this.lastKey = 0;
9e6bb466 Poul Sander 2021-08-08 15:42 605
        this.repeatOn = false;
9e6bb466 Poul Sander 2021-08-08 15:42 606
      }
9e6bb466 Poul Sander 2021-08-08 15:42 607
      return this.lastKey!=0;
9e6bb466 Poul Sander 2021-08-08 15:42 608
    }
9e6bb466 Poul Sander 2021-08-08 15:42 609
9e6bb466 Poul Sander 2021-08-08 15:42 610
    this.Nav = function(evt,itemIndex)
9e6bb466 Poul Sander 2021-08-08 15:42 611
    {
9e6bb466 Poul Sander 2021-08-08 15:42 612
      var e  = (evt) ? evt : window.event; // for IE
9e6bb466 Poul Sander 2021-08-08 15:42 613
      if (e.keyCode==13) return true;
9e6bb466 Poul Sander 2021-08-08 15:42 614
      if (!this.ProcessKeys(e)) return false;
9e6bb466 Poul Sander 2021-08-08 15:42 615
9e6bb466 Poul Sander 2021-08-08 15:42 616
      if (this.lastKey==38) // Up
9e6bb466 Poul Sander 2021-08-08 15:42 617
      {
9e6bb466 Poul Sander 2021-08-08 15:42 618
        var newIndex = itemIndex-1;
9e6bb466 Poul Sander 2021-08-08 15:42 619
        var focusItem = this.NavPrev(newIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 620
        if (focusItem)
9e6bb466 Poul Sander 2021-08-08 15:42 621
        {
9e6bb466 Poul Sander 2021-08-08 15:42 622
          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
9e6bb466 Poul Sander 2021-08-08 15:42 623
          if (child && child.style.display == 'block') // children visible
9e6bb466 Poul Sander 2021-08-08 15:42 624
          {
9e6bb466 Poul Sander 2021-08-08 15:42 625
            var n=0;
9e6bb466 Poul Sander 2021-08-08 15:42 626
            var tmpElem;
9e6bb466 Poul Sander 2021-08-08 15:42 627
            while (1) // search for last child
9e6bb466 Poul Sander 2021-08-08 15:42 628
            {
9e6bb466 Poul Sander 2021-08-08 15:42 629
              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
9e6bb466 Poul Sander 2021-08-08 15:42 630
              if (tmpElem)
9e6bb466 Poul Sander 2021-08-08 15:42 631
              {
9e6bb466 Poul Sander 2021-08-08 15:42 632
                focusItem = tmpElem;
9e6bb466 Poul Sander 2021-08-08 15:42 633
              }
9e6bb466 Poul Sander 2021-08-08 15:42 634
              else // found it!
9e6bb466 Poul Sander 2021-08-08 15:42 635
              {
9e6bb466 Poul Sander 2021-08-08 15:42 636
                break;
9e6bb466 Poul Sander 2021-08-08 15:42 637
              }
9e6bb466 Poul Sander 2021-08-08 15:42 638
              n++;
9e6bb466 Poul Sander 2021-08-08 15:42 639
            }
9e6bb466 Poul Sander 2021-08-08 15:42 640
          }
9e6bb466 Poul Sander 2021-08-08 15:42 641
        }
9e6bb466 Poul Sander 2021-08-08 15:42 642
        if (focusItem)
9e6bb466 Poul Sander 2021-08-08 15:42 643
        {
9e6bb466 Poul Sander 2021-08-08 15:42 644
          focusItem.focus();
9e6bb466 Poul Sander 2021-08-08 15:42 645
        }
9e6bb466 Poul Sander 2021-08-08 15:42 646
        else // return focus to search field
9e6bb466 Poul Sander 2021-08-08 15:42 647
        {
9e6bb466 Poul Sander 2021-08-08 15:42 648
           parent.document.getElementById("MSearchField").focus();
9e6bb466 Poul Sander 2021-08-08 15:42 649
        }
9e6bb466 Poul Sander 2021-08-08 15:42 650
      }
9e6bb466 Poul Sander 2021-08-08 15:42 651
      else if (this.lastKey==40) // Down
9e6bb466 Poul Sander 2021-08-08 15:42 652
      {
9e6bb466 Poul Sander 2021-08-08 15:42 653
        var newIndex = itemIndex+1;
9e6bb466 Poul Sander 2021-08-08 15:42 654
        var focusItem;
9e6bb466 Poul Sander 2021-08-08 15:42 655
        var item = document.getElementById('Item'+itemIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 656
        var elem = this.FindChildElement(item.parentNode.parentNode.id);
9e6bb466 Poul Sander 2021-08-08 15:42 657
        if (elem && elem.style.display == 'block') // children visible
9e6bb466 Poul Sander 2021-08-08 15:42 658
        {
9e6bb466 Poul Sander 2021-08-08 15:42 659
          focusItem = document.getElementById('Item'+itemIndex+'_c0');
9e6bb466 Poul Sander 2021-08-08 15:42 660
        }
9e6bb466 Poul Sander 2021-08-08 15:42 661
        if (!focusItem) focusItem = this.NavNext(newIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 662
        if (focusItem)  focusItem.focus();
9e6bb466 Poul Sander 2021-08-08 15:42 663
      }
9e6bb466 Poul Sander 2021-08-08 15:42 664
      else if (this.lastKey==39) // Right
9e6bb466 Poul Sander 2021-08-08 15:42 665
      {
9e6bb466 Poul Sander 2021-08-08 15:42 666
        var item = document.getElementById('Item'+itemIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 667
        var elem = this.FindChildElement(item.parentNode.parentNode.id);
9e6bb466 Poul Sander 2021-08-08 15:42 668
        if (elem) elem.style.display = 'block';
9e6bb466 Poul Sander 2021-08-08 15:42 669
      }
9e6bb466 Poul Sander 2021-08-08 15:42 670
      else if (this.lastKey==37) // Left
9e6bb466 Poul Sander 2021-08-08 15:42 671
      {
9e6bb466 Poul Sander 2021-08-08 15:42 672
        var item = document.getElementById('Item'+itemIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 673
        var elem = this.FindChildElement(item.parentNode.parentNode.id);
9e6bb466 Poul Sander 2021-08-08 15:42 674
        if (elem) elem.style.display = 'none';
9e6bb466 Poul Sander 2021-08-08 15:42 675
      }
9e6bb466 Poul Sander 2021-08-08 15:42 676
      else if (this.lastKey==27) // Escape
9e6bb466 Poul Sander 2021-08-08 15:42 677
      {
9e6bb466 Poul Sander 2021-08-08 15:42 678
        parent.searchBox.CloseResultsWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 679
        parent.document.getElementById("MSearchField").focus();
9e6bb466 Poul Sander 2021-08-08 15:42 680
      }
9e6bb466 Poul Sander 2021-08-08 15:42 681
      else if (this.lastKey==13) // Enter
9e6bb466 Poul Sander 2021-08-08 15:42 682
      {
9e6bb466 Poul Sander 2021-08-08 15:42 683
        return true;
9e6bb466 Poul Sander 2021-08-08 15:42 684
      }
9e6bb466 Poul Sander 2021-08-08 15:42 685
      return false;
9e6bb466 Poul Sander 2021-08-08 15:42 686
    }
9e6bb466 Poul Sander 2021-08-08 15:42 687
9e6bb466 Poul Sander 2021-08-08 15:42 688
    this.NavChild = function(evt,itemIndex,childIndex)
9e6bb466 Poul Sander 2021-08-08 15:42 689
    {
9e6bb466 Poul Sander 2021-08-08 15:42 690
      var e  = (evt) ? evt : window.event; // for IE
9e6bb466 Poul Sander 2021-08-08 15:42 691
      if (e.keyCode==13) return true;
9e6bb466 Poul Sander 2021-08-08 15:42 692
      if (!this.ProcessKeys(e)) return false;
9e6bb466 Poul Sander 2021-08-08 15:42 693
9e6bb466 Poul Sander 2021-08-08 15:42 694
      if (this.lastKey==38) // Up
9e6bb466 Poul Sander 2021-08-08 15:42 695
      {
9e6bb466 Poul Sander 2021-08-08 15:42 696
        if (childIndex>0)
9e6bb466 Poul Sander 2021-08-08 15:42 697
        {
9e6bb466 Poul Sander 2021-08-08 15:42 698
          var newIndex = childIndex-1;
9e6bb466 Poul Sander 2021-08-08 15:42 699
          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
9e6bb466 Poul Sander 2021-08-08 15:42 700
        }
9e6bb466 Poul Sander 2021-08-08 15:42 701
        else // already at first child, jump to parent
9e6bb466 Poul Sander 2021-08-08 15:42 702
        {
9e6bb466 Poul Sander 2021-08-08 15:42 703
          document.getElementById('Item'+itemIndex).focus();
9e6bb466 Poul Sander 2021-08-08 15:42 704
        }
9e6bb466 Poul Sander 2021-08-08 15:42 705
      }
9e6bb466 Poul Sander 2021-08-08 15:42 706
      else if (this.lastKey==40) // Down
9e6bb466 Poul Sander 2021-08-08 15:42 707
      {
9e6bb466 Poul Sander 2021-08-08 15:42 708
        var newIndex = childIndex+1;
9e6bb466 Poul Sander 2021-08-08 15:42 709
        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
9e6bb466 Poul Sander 2021-08-08 15:42 710
        if (!elem) // last child, jump to parent next parent
9e6bb466 Poul Sander 2021-08-08 15:42 711
        {
9e6bb466 Poul Sander 2021-08-08 15:42 712
          elem = this.NavNext(itemIndex+1);
9e6bb466 Poul Sander 2021-08-08 15:42 713
        }
9e6bb466 Poul Sander 2021-08-08 15:42 714
        if (elem)
9e6bb466 Poul Sander 2021-08-08 15:42 715
        {
9e6bb466 Poul Sander 2021-08-08 15:42 716
          elem.focus();
9e6bb466 Poul Sander 2021-08-08 15:42 717
        }
9e6bb466 Poul Sander 2021-08-08 15:42 718
      }
9e6bb466 Poul Sander 2021-08-08 15:42 719
      else if (this.lastKey==27) // Escape
9e6bb466 Poul Sander 2021-08-08 15:42 720
      {
9e6bb466 Poul Sander 2021-08-08 15:42 721
        parent.searchBox.CloseResultsWindow();
9e6bb466 Poul Sander 2021-08-08 15:42 722
        parent.document.getElementById("MSearchField").focus();
9e6bb466 Poul Sander 2021-08-08 15:42 723
      }
9e6bb466 Poul Sander 2021-08-08 15:42 724
      else if (this.lastKey==13) // Enter
9e6bb466 Poul Sander 2021-08-08 15:42 725
      {
9e6bb466 Poul Sander 2021-08-08 15:42 726
        return true;
9e6bb466 Poul Sander 2021-08-08 15:42 727
      }
9e6bb466 Poul Sander 2021-08-08 15:42 728
      return false;
9e6bb466 Poul Sander 2021-08-08 15:42 729
    }
9e6bb466 Poul Sander 2021-08-08 15:42 730
}
9e6bb466 Poul Sander 2021-08-08 15:42 731
9e6bb466 Poul Sander 2021-08-08 15:42 732
function setKeyActions(elem,action)
9e6bb466 Poul Sander 2021-08-08 15:42 733
{
9e6bb466 Poul Sander 2021-08-08 15:42 734
  elem.setAttribute('onkeydown',action);
9e6bb466 Poul Sander 2021-08-08 15:42 735
  elem.setAttribute('onkeypress',action);
9e6bb466 Poul Sander 2021-08-08 15:42 736
  elem.setAttribute('onkeyup',action);
9e6bb466 Poul Sander 2021-08-08 15:42 737
}
9e6bb466 Poul Sander 2021-08-08 15:42 738
9e6bb466 Poul Sander 2021-08-08 15:42 739
function setClassAttr(elem,attr)
9e6bb466 Poul Sander 2021-08-08 15:42 740
{
9e6bb466 Poul Sander 2021-08-08 15:42 741
  elem.setAttribute('class',attr);
9e6bb466 Poul Sander 2021-08-08 15:42 742
  elem.setAttribute('className',attr);
9e6bb466 Poul Sander 2021-08-08 15:42 743
}
9e6bb466 Poul Sander 2021-08-08 15:42 744
9e6bb466 Poul Sander 2021-08-08 15:42 745
function createResults()
9e6bb466 Poul Sander 2021-08-08 15:42 746
{
9e6bb466 Poul Sander 2021-08-08 15:42 747
  var results = document.getElementById("SRResults");
9e6bb466 Poul Sander 2021-08-08 15:42 748
  for (var e=0; e<searchData.length; e++)
9e6bb466 Poul Sander 2021-08-08 15:42 749
  {
9e6bb466 Poul Sander 2021-08-08 15:42 750
    var id = searchData[e][0];
9e6bb466 Poul Sander 2021-08-08 15:42 751
    var srResult = document.createElement('div');
9e6bb466 Poul Sander 2021-08-08 15:42 752
    srResult.setAttribute('id','SR_'+id);
9e6bb466 Poul Sander 2021-08-08 15:42 753
    setClassAttr(srResult,'SRResult');
9e6bb466 Poul Sander 2021-08-08 15:42 754
    var srEntry = document.createElement('div');
9e6bb466 Poul Sander 2021-08-08 15:42 755
    setClassAttr(srEntry,'SREntry');
9e6bb466 Poul Sander 2021-08-08 15:42 756
    var srLink = document.createElement('a');
9e6bb466 Poul Sander 2021-08-08 15:42 757
    srLink.setAttribute('id','Item'+e);
9e6bb466 Poul Sander 2021-08-08 15:42 758
    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
9e6bb466 Poul Sander 2021-08-08 15:42 759
    setClassAttr(srLink,'SRSymbol');
9e6bb466 Poul Sander 2021-08-08 15:42 760
    srLink.innerHTML = searchData[e][1][0];
9e6bb466 Poul Sander 2021-08-08 15:42 761
    srEntry.appendChild(srLink);
9e6bb466 Poul Sander 2021-08-08 15:42 762
    if (searchData[e][1].length==2) // single result
9e6bb466 Poul Sander 2021-08-08 15:42 763
    {
9e6bb466 Poul Sander 2021-08-08 15:42 764
      srLink.setAttribute('href',searchData[e][1][1][0]);
9e6bb466 Poul Sander 2021-08-08 15:42 765
      if (searchData[e][1][1][1])
9e6bb466 Poul Sander 2021-08-08 15:42 766
      {
9e6bb466 Poul Sander 2021-08-08 15:42 767
       srLink.setAttribute('target','_parent');
9e6bb466 Poul Sander 2021-08-08 15:42 768
      }
9e6bb466 Poul Sander 2021-08-08 15:42 769
      var srScope = document.createElement('span');
9e6bb466 Poul Sander 2021-08-08 15:42 770
      setClassAttr(srScope,'SRScope');
9e6bb466 Poul Sander 2021-08-08 15:42 771
      srScope.innerHTML = searchData[e][1][1][2];
9e6bb466 Poul Sander 2021-08-08 15:42 772
      srEntry.appendChild(srScope);
9e6bb466 Poul Sander 2021-08-08 15:42 773
    }
9e6bb466 Poul Sander 2021-08-08 15:42 774
    else // multiple results
9e6bb466 Poul Sander 2021-08-08 15:42 775
    {
9e6bb466 Poul Sander 2021-08-08 15:42 776
      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
9e6bb466 Poul Sander 2021-08-08 15:42 777
      var srChildren = document.createElement('div');
9e6bb466 Poul Sander 2021-08-08 15:42 778
      setClassAttr(srChildren,'SRChildren');
9e6bb466 Poul Sander 2021-08-08 15:42 779
      for (var c=0; c<searchData[e][1].length-1; c++)
9e6bb466 Poul Sander 2021-08-08 15:42 780
      {
9e6bb466 Poul Sander 2021-08-08 15:42 781
        var srChild = document.createElement('a');
9e6bb466 Poul Sander 2021-08-08 15:42 782
        srChild.setAttribute('id','Item'+e+'_c'+c);
9e6bb466 Poul Sander 2021-08-08 15:42 783
        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
9e6bb466 Poul Sander 2021-08-08 15:42 784
        setClassAttr(srChild,'SRScope');
9e6bb466 Poul Sander 2021-08-08 15:42 785
        srChild.setAttribute('href',searchData[e][1][c+1][0]);
9e6bb466 Poul Sander 2021-08-08 15:42 786
        if (searchData[e][1][c+1][1])
9e6bb466 Poul Sander 2021-08-08 15:42 787
        {
9e6bb466 Poul Sander 2021-08-08 15:42 788
         srChild.setAttribute('target','_parent');
9e6bb466 Poul Sander 2021-08-08 15:42 789
        }
9e6bb466 Poul Sander 2021-08-08 15:42 790
        srChild.innerHTML = searchData[e][1][c+1][2];
9e6bb466 Poul Sander 2021-08-08 15:42 791
        srChildren.appendChild(srChild);
9e6bb466 Poul Sander 2021-08-08 15:42 792
      }
9e6bb466 Poul Sander 2021-08-08 15:42 793
      srEntry.appendChild(srChildren);
9e6bb466 Poul Sander 2021-08-08 15:42 794
    }
9e6bb466 Poul Sander 2021-08-08 15:42 795
    srResult.appendChild(srEntry);
9e6bb466 Poul Sander 2021-08-08 15:42 796
    results.appendChild(srResult);
9e6bb466 Poul Sander 2021-08-08 15:42 797
  }
9e6bb466 Poul Sander 2021-08-08 15:42 798
}
9e6bb466 Poul Sander 2021-08-08 15:42 799
9e6bb466 Poul Sander 2021-08-08 15:42 800
function init_search()
9e6bb466 Poul Sander 2021-08-08 15:42 801
{
9e6bb466 Poul Sander 2021-08-08 15:42 802
  var results = document.getElementById("MSearchSelectWindow");
9e6bb466 Poul Sander 2021-08-08 15:42 803
  for (var key in indexSectionLabels)
9e6bb466 Poul Sander 2021-08-08 15:42 804
  {
9e6bb466 Poul Sander 2021-08-08 15:42 805
    var link = document.createElement('a');
9e6bb466 Poul Sander 2021-08-08 15:42 806
    link.setAttribute('class','SelectItem');
9e6bb466 Poul Sander 2021-08-08 15:42 807
    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
9e6bb466 Poul Sander 2021-08-08 15:42 808
    link.href='javascript:void(0)';
9e6bb466 Poul Sander 2021-08-08 15:42 809
    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
9e6bb466 Poul Sander 2021-08-08 15:42 810
    results.appendChild(link);
9e6bb466 Poul Sander 2021-08-08 15:42 811
  }
9e6bb466 Poul Sander 2021-08-08 15:42 812
  searchBox.OnSelectItem(0);
9e6bb466 Poul Sander 2021-08-08 15:42 813
}
9e6bb466 Poul Sander 2021-08-08 15:42 814
/* @license-end */
1970-01-01 00:00 815