@@ -39,6 +39,14 @@ if (!DOMTokenList.prototype.remove) {
3939 } ;
4040}
4141
42+ function getSearchInput ( ) {
43+ return document . getElementsByClassName ( "search-input" ) [ 0 ] ;
44+ }
45+
46+ function getSearchElement ( ) {
47+ return document . getElementById ( "search" ) ;
48+ }
49+
4250( function ( ) {
4351 "use strict" ;
4452
@@ -71,7 +79,7 @@ if (!DOMTokenList.prototype.remove) {
7179 "derive" ,
7280 "traitalias" ] ;
7381
74- var search_input = document . getElementsByClassName ( "search-input" ) [ 0 ] ;
82+ var search_input = getSearchInput ( ) ;
7583
7684 // On the search screen, so you remain on the last tab you opened.
7785 //
@@ -158,7 +166,7 @@ if (!DOMTokenList.prototype.remove) {
158166 // If we're in mobile mode, we should add the sidebar in any case.
159167 hideSidebar ( ) ;
160168 var elem ;
161- var search = document . getElementById ( "search" ) ;
169+ var search = getSearchElement ( ) ;
162170 var i , from , to , match = window . location . hash . match ( / ^ # ? ( \d + ) (?: - ( \d + ) ) ? $ / ) ;
163171 if ( match ) {
164172 from = parseInt ( match [ 1 ] , 10 ) ;
@@ -250,7 +258,12 @@ if (!DOMTokenList.prototype.remove) {
250258 return String . fromCharCode ( c ) ;
251259 }
252260
261+ function getHelpElement ( ) {
262+ return document . getElementById ( "help" ) ;
263+ }
264+
253265 function displayHelp ( display , ev , help ) {
266+ var help = help ? help : getHelpElement ( ) ;
254267 if ( display === true ) {
255268 if ( hasClass ( help , "hidden" ) ) {
256269 ev . preventDefault ( ) ;
@@ -264,9 +277,10 @@ if (!DOMTokenList.prototype.remove) {
264277 }
265278 }
266279
267- function handleEscape ( ev , help ) {
280+ function handleEscape ( ev ) {
281+ var help = getHelpElement ( ) ;
282+ var search = getSearchElement ( ) ;
268283 hideModal ( ) ;
269- var search = document . getElementById ( "search" ) ;
270284 if ( hasClass ( help , "hidden" ) === false ) {
271285 displayHelp ( false , ev , help ) ;
272286 } else if ( hasClass ( search , "hidden" ) === false ) {
@@ -284,22 +298,21 @@ if (!DOMTokenList.prototype.remove) {
284298 return ;
285299 }
286300
287- var help = document . getElementById ( "help" ) ;
288301 if ( document . activeElement . tagName === "INPUT" ) {
289302 switch ( getVirtualKey ( ev ) ) {
290303 case "Escape" :
291- handleEscape ( ev , help ) ;
304+ handleEscape ( ev ) ;
292305 break ;
293306 }
294307 } else {
295308 switch ( getVirtualKey ( ev ) ) {
296309 case "Escape" :
297- handleEscape ( ev , help ) ;
310+ handleEscape ( ev ) ;
298311 break ;
299312
300313 case "s" :
301314 case "S" :
302- displayHelp ( false , ev , help ) ;
315+ displayHelp ( false , ev ) ;
303316 hideModal ( ) ;
304317 ev . preventDefault ( ) ;
305318 focusSearchBar ( ) ;
@@ -314,7 +327,7 @@ if (!DOMTokenList.prototype.remove) {
314327 case "?" :
315328 if ( ev . shiftKey ) {
316329 hideModal ( ) ;
317- displayHelp ( true , ev , help ) ;
330+ displayHelp ( true , ev ) ;
318331 }
319332 break ;
320333 }
@@ -1281,9 +1294,7 @@ if (!DOMTokenList.prototype.remove) {
12811294 } else if ( e . which === 16 ) { // shift
12821295 // Does nothing, it's just to avoid losing "focus" on the highlighted element.
12831296 } else if ( e . which === 27 ) { // escape
1284- removeClass ( actives [ currentTab ] [ 0 ] , "highlighted" ) ;
1285- search_input . value = "" ;
1286- defocusSearchBar ( ) ;
1297+ handleEscape ( e ) ;
12871298 } else if ( actives [ currentTab ] . length > 0 ) {
12881299 removeClass ( actives [ currentTab ] [ 0 ] , "highlighted" ) ;
12891300 }
@@ -1434,7 +1445,7 @@ if (!DOMTokenList.prototype.remove) {
14341445 ret_others [ 0 ] + ret_in_args [ 0 ] + ret_returned [ 0 ] + "</div>" ;
14351446
14361447 addClass ( main , "hidden" ) ;
1437- var search = document . getElementById ( "search" ) ;
1448+ var search = getSearchElement ( ) ;
14381449 removeClass ( search , "hidden" ) ;
14391450 search . innerHTML = output ;
14401451 var tds = search . getElementsByTagName ( "td" ) ;
@@ -1644,7 +1655,7 @@ if (!DOMTokenList.prototype.remove) {
16441655 if ( hasClass ( main , "content" ) ) {
16451656 removeClass ( main , "hidden" ) ;
16461657 }
1647- var search_c = document . getElementById ( "search" ) ;
1658+ var search_c = getSearchElement ( ) ;
16481659 if ( hasClass ( search_c , "content" ) ) {
16491660 addClass ( search_c , "hidden" ) ;
16501661 }
@@ -1691,7 +1702,7 @@ if (!DOMTokenList.prototype.remove) {
16911702 if ( hasClass ( main , "content" ) ) {
16921703 removeClass ( main , "hidden" ) ;
16931704 }
1694- var search_c = document . getElementById ( "search" ) ;
1705+ var search_c = getSearchElement ( ) ;
16951706 if ( hasClass ( search_c , "content" ) ) {
16961707 addClass ( search_c , "hidden" ) ;
16971708 }
@@ -2460,7 +2471,7 @@ if (!DOMTokenList.prototype.remove) {
24602471 var params = getQueryStringParams ( ) ;
24612472 if ( params && params . search ) {
24622473 addClass ( main , "hidden" ) ;
2463- var search = document . getElementById ( "search" ) ;
2474+ var search = getSearchElement ( ) ;
24642475 removeClass ( search , "hidden" ) ;
24652476 search . innerHTML = "<h3 style=\"text-align: center;\">Loading search results...</h3>" ;
24662477 }
@@ -2545,10 +2556,10 @@ if (!DOMTokenList.prototype.remove) {
25452556
25462557// Sets the focus on the search bar at the top of the page
25472558function focusSearchBar ( ) {
2548- document . getElementsByClassName ( "search-input" ) [ 0 ] . focus ( ) ;
2559+ getSearchInput ( ) . focus ( ) ;
25492560}
25502561
25512562// Removes the focus from the search bar
25522563function defocusSearchBar ( ) {
2553- document . getElementsByClassName ( "search-input" ) [ 0 ] . blur ( ) ;
2564+ getSearchInput ( ) . blur ( ) ;
25542565}
0 commit comments