2 * MediaWiki legacy wikibits
7 ua
= navigator
.userAgent
.toLowerCase(),
8 isIE6
= ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua
) && parseFloat( RegExp
.$1 ) <= 6.0 ),
11 if ( mw
.config
.get( 'wgBreakFrames' ) ) {
12 // Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)
13 // it works only comparing to window.self or window.window (http://stackoverflow.com/q/4850978/319266)
14 if ( win
.top
!== win
.self
) {
15 // Un-trap us from framesets
16 win
.top
.location
= win
.location
;
21 * User-agent sniffing.
22 * To be removed in MediaWiki 1.23.
24 * @deprecated since 1.17 Use jquery.client instead
27 msg
= 'Use feature detection or module jquery.client instead.';
29 mw
.log
.deprecate( win
, 'clientPC', ua
, msg
);
31 // Ignored dummy values
32 mw
.log
.deprecate( win
, 'is_gecko', false, msg
);
33 mw
.log
.deprecate( win
, 'is_chrome_mac', false, msg
);
34 mw
.log
.deprecate( win
, 'is_chrome', false, msg
);
35 mw
.log
.deprecate( win
, 'webkit_version', false, msg
);
36 mw
.log
.deprecate( win
, 'is_safari_win', false, msg
);
37 mw
.log
.deprecate( win
, 'is_safari', false, msg
);
38 mw
.log
.deprecate( win
, 'webkit_match', false, msg
);
39 mw
.log
.deprecate( win
, 'is_ff2', false, msg
);
40 mw
.log
.deprecate( win
, 'ff2_bugs', false, msg
);
41 mw
.log
.deprecate( win
, 'is_ff2_win', false, msg
);
42 mw
.log
.deprecate( win
, 'is_ff2_x11', false, msg
);
43 mw
.log
.deprecate( win
, 'opera95_bugs', false, msg
);
44 mw
.log
.deprecate( win
, 'opera7_bugs', false, msg
);
45 mw
.log
.deprecate( win
, 'opera6_bugs', false, msg
);
46 mw
.log
.deprecate( win
, 'is_opera_95', false, msg
);
47 mw
.log
.deprecate( win
, 'is_opera_preseven', false, msg
);
48 mw
.log
.deprecate( win
, 'is_opera', false, msg
);
49 mw
.log
.deprecate( win
, 'ie6_bugs', false, msg
);
52 * DOM utilities for handling of events, text nodes and selecting elements
54 * To be removed in MediaWiki 1.23.
56 * @deprecated since 1.17 Use jQuery instead
58 msg
= 'Use jQuery instead.';
60 // Ignored dummy values
61 mw
.log
.deprecate( win
, 'doneOnloadHook', undefined, msg
);
62 mw
.log
.deprecate( win
, 'onloadFuncts', [], msg
);
63 mw
.log
.deprecate( win
, 'runOnloadHook', $.noop
, msg
);
64 mw
.log
.deprecate( win
, 'changeText', $.noop
, msg
);
65 mw
.log
.deprecate( win
, 'killEvt', $.noop
, msg
);
66 mw
.log
.deprecate( win
, 'addHandler', $.noop
, msg
);
67 mw
.log
.deprecate( win
, 'hookEvent', $.noop
, msg
);
68 mw
.log
.deprecate( win
, 'addClickHandler', $.noop
, msg
);
69 mw
.log
.deprecate( win
, 'removeHandler', $.noop
, msg
);
70 mw
.log
.deprecate( win
, 'getElementsByClassName', function () { return []; }, msg
);
71 mw
.log
.deprecate( win
, 'getInnerText', function () { return ''; }, msg
);
73 // Run a function after the window onload event is fired
74 mw
.log
.deprecate( win
, 'addOnloadHook', function ( hookFunct
) {
76 onloadFuncts
.push(hookFunct
);
78 // If func queue is gone the event has happened already,
79 // run immediately instead of queueing.
84 $( win
).on( 'load', function () {
88 if ( !onloadFuncts
) {
92 // Deference and clear onloadFuncts before running any
93 // hooks to make sure we don't miss any addOnloadHook
95 functs
= onloadFuncts
.slice();
96 onloadFuncts
= undefined;
98 // Execute the queued functions
99 for ( i
= 0; i
< functs
.length
; i
++ ) {
105 * Toggle checkboxes with shift selection
107 * To be removed in MediaWiki 1.23.
109 * @deprecated since 1.17 Use jquery.checkboxShiftClick instead
111 msg
= 'Use jquery.checkboxShiftClick instead.';
112 mw
.log
.deprecate( win
, 'checkboxes', [], msg
);
113 mw
.log
.deprecate( win
, 'lastCheckbox', null, msg
);
114 mw
.log
.deprecate( win
, 'setupCheckboxShiftClick', $.noop
, msg
);
115 mw
.log
.deprecate( win
, 'addCheckboxClickHandlers', $.noop
, msg
);
116 mw
.log
.deprecate( win
, 'checkboxClickHandler', $.noop
, msg
);
119 * Add a button to the default editor toolbar
121 * To be removed in MediaWiki 1.23.
123 * @deprecated since 1.17 Use mw.toolbar instead
125 mw
.log
.deprecate( win
, 'mwEditButtons', [], 'Use mw.toolbar instead.' );
126 mw
.log
.deprecate( win
, 'mwCustomEditButtons', [], 'Use mw.toolbar instead.' );
129 * Spinner creation, injection and removal
131 * To be removed in MediaWiki 1.23.
133 * @deprecated since 1.18 Use jquery.spinner instead
135 mw
.log
.deprecate( win
, 'injectSpinner', $.noop
, 'Use jquery.spinner instead.' );
136 mw
.log
.deprecate( win
, 'removeSpinner', $.noop
, 'Use jquery.spinner instead.' );
141 * To be removed in MediaWiki 1.23.
143 * @deprecated since 1.18 Use mw.html instead
145 mw
.log
.deprecate( win
, 'escapeQuotes', $.noop
, 'Use mw.html instead.' );
146 mw
.log
.deprecate( win
, 'escapeQuotesHTML', $.noop
, 'Use mw.html instead.' );
149 * Display a message to the user
151 * To be removed in MediaWiki 1.23.
153 * @deprecated since 1.17 Use mediawiki.notify instead
154 * @param {string|HTMLElement} message To be put inside the message box
156 mw
.log
.deprecate( win
, 'jsMsg', mw
.util
.jsMessage
, 'Use mediawiki.notify instead.' );
161 * To be removed in MediaWiki 1.23.
163 * @deprecated since 1.17 Use mediawiki.util instead
165 msg
= 'Use mediawiki.util instead.';
166 mw
.log
.deprecate( win
, 'tooltipAccessKeyPrefix', 'alt-', msg
);
167 mw
.log
.deprecate( win
, 'tooltipAccessKeyRegexp', /\[(alt-)?(.)\]$/, msg
);
168 mw
.log
.deprecate( win
, 'updateTooltipAccessKeys', mw
.util
.updateTooltipAccessKeys
, msg
);
169 mw
.log
.deprecate( win
, 'addPortletLink', mw
.util
.addPortletLink
, msg
);
170 mw
.log
.deprecate( win
, 'appendCSS', mw
.util
.addCSS
, msg
);
173 * Wikipage import methods
176 // included-scripts tracker
177 win
.loadedScripts
= {};
179 win
.importScript = function ( page
) {
180 var uri
= mw
.config
.get( 'wgScript' ) + '?title=' +
181 mw
.util
.wikiUrlencode( page
) +
182 '&action=raw&ctype=text/javascript';
183 return win
.importScriptURI( uri
);
186 win
.importScriptURI = function ( url
) {
187 if ( win
.loadedScripts
[url
] ) {
190 win
.loadedScripts
[url
] = true;
191 var s
= document
.createElement( 'script' );
192 s
.setAttribute( 'src', url
);
193 s
.setAttribute( 'type', 'text/javascript' );
194 document
.getElementsByTagName( 'head' )[0].appendChild( s
);
198 win
.importStylesheet = function ( page
) {
199 var uri
= mw
.config
.get( 'wgScript' ) + '?title=' +
200 mw
.util
.wikiUrlencode( page
) +
201 '&action=raw&ctype=text/css';
202 return win
.importStylesheetURI( uri
);
205 win
.importStylesheetURI = function ( url
, media
) {
206 var l
= document
.createElement( 'link' );
207 l
.rel
= 'stylesheet';
212 document
.getElementsByTagName('head')[0].appendChild( l
);
217 win
.importScriptURI( mw
.config
.get( 'stylepath' ) + '/common/IEFixes.js' );
220 }( mediaWiki
, jQuery
) );