2 * JavaScript for Special:Search
6 var $checkboxes
, $headerLinks
, updateHeaderLinks
, searchWidget
;
8 // Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
9 if ( !( 'autofocus' in document
.createElement( 'input' ) ) ) {
10 $( 'input[autofocus]' ).eq( 0 ).focus();
13 // Attach handler for check all/none buttons
14 $checkboxes
= $( '#powersearch input[id^=mw-search-ns]' );
15 $( '#mw-search-toggleall' ).click( function () {
16 $checkboxes
.prop( 'checked', true );
18 $( '#mw-search-togglenone' ).click( function () {
19 $checkboxes
.prop( 'checked', false );
22 // Change the header search links to what user entered
23 $headerLinks
= $( '.search-types a' );
24 searchWidget
= OO
.ui
.infuse( $( '#searchText' ) );
25 updateHeaderLinks = function ( value
) {
26 $headerLinks
.each( function () {
27 var parts
= $( this ).attr( 'href' ).split( 'search=' ),
30 if ( parts
.length
> 1 && parts
[ 1 ].indexOf( '&' ) !== -1 ) {
31 lastpart
= parts
[ 1 ].slice( parts
[ 1 ].indexOf( '&' ) );
35 this.href
= parts
[ 0 ] + prefix
+ encodeURIComponent( value
) + lastpart
;
38 searchWidget
.on( 'change', updateHeaderLinks
);
39 updateHeaderLinks( searchWidget
.getValue() );
41 // When saving settings, use the proper request method (POST instead of GET).
42 $( '#mw-search-powersearch-remember' ).change( function () {
43 this.form
.method
= this.checked
? 'post' : 'get';
44 } ).trigger( 'change' );