Difference between revisions of "MediaWiki:Common.js"

walay mubong sugid sa pag-usab
(remove broken comment breaking VE and likely some other JS. See also Hisgot_sa_Gumagamit:Jordz#Ceb_Admin_help_needed)
/**
/* Any JavaScript here will be loaded for all users on every page load. */
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
* loaded for all users on every wiki page. If possible create a gadget that is
* enabled by default instead of adding it here (since gadgets are fully
* optimized ResourceLoader modules with possibility to add dependencies etc.)
*
* Since Common.js isn't a gadget, there is no place to declare its
* dependencies, so we have to lazy load them with mw.loader.using on demand and
* then execute the rest in the callback. In most cases these dependencies will
* be loaded (or loading) already and the callback will not be delayed. In case a
* dependency hasn't arrived yet it'll make sure those are loaded before this.
*/
 
/* global mw, $, importStylesheet, importScript */
/** Collapsible tables *********************************************************
/* jshint strict:false, browser:true */
 
mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.notify', 'jquery.client'] ).done( function () {
/* Begin of mw.loader.using callback */
 
/**
* Main Page layout fixes
*
* Description: AllowsAdds tablesan additional link to bethe collapsed,complete showinglist onlyof thelanguages headeravailable. See
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {
$( function () {
var autoCollapse = 2;
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
var collapseCaption = "tagoa";
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );
var expandCaption = "ipakita";
} );
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
 
/**
function createCollapseButtons()
* Redirect User:Name/skin.js and skin.css to the current skin's pages
{
* (unless the 'skin' page really exists)
var tableIndex = 0;
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
var NavigationBoxes = new Object();
* @rev: 2
var Tables = document.getElementsByTagName( "table" );
*/
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
for ( var i = 0; i < Tables.length; i++ ) {
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
if ( hasClass( Tables[i], "collapsible" ) ) {
/* Make sure there was a part before and after the slash
/* only add button and incrementthat countthe if therelatter is a header row to'skin.js' workor with'skin.css' */
if ( titleParts.length == 2 ) {
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );
if (!HeaderRow) continue;
if ( titleParts.slice( -1 ) == 'skin.js' ) {
var Header = HeaderRow.getElementsByTagName( "th" )[0];
window.location.href = mw.util.getUrl( userSkinPage + '.js' );
if (!Header) continue;
} else if ( titleParts.slice( -1 ) == 'skin.css' ) {
window.location.href = mw.util.getUrl( userSkinPage + '.css' );
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
collapseTable( i );
}
}
}
addOnloadHook( createCollapseButtons );
/** Import module *************************************************************
*
* Description: Includes a raw wiki page as javascript or CSS,
* used for including user made modules.
* Maintainers: [[User:AzaToth]]
*/
importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice
function importScript( page ) {
if( importedScripts[page] ) {
return;
}
importedScripts[page] = true;
var url = wgScriptPath
+ '/index.php?title='
+ encodeURIComponent( page.replace( / /g, '_' ) )
+ '&action=raw&ctype=text/javascript';
var scriptElem = document.createElement( 'script' );
scriptElem.setAttribute( 'src' , url );
scriptElem.setAttribute( 'type' , 'text/javascript' );
document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
}
function importStylesheet( page ) {
var sheet = '@import "'
+ wgScriptPath
+ '/index.php?title='
+ encodeURIComponent( page.replace( / /g, '_' ) )
+ '&action=raw&ctype=text/css";'
var styleElem = document.createElement( 'style' );
styleElem.setAttribute( 'type' , 'text/css' );
styleElem.appendChild( document.createTextNode( sheet ) );
document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
}
 
/**
/* Test if an element has a certain class **************************************
* Map addPortletLink to mw.util
*
* @deprecated: Use mw.util.addPortletLink instead.
* Description: Uses regular expressions and caching for better performance.
*/
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
 
/**
/** Internet Explorer bug fix **************************************************
* Extract a URL parameter from the current URL
*
* @deprecated: Use mw.util.getParamValue with proper escaping
* Description: Fixes IE horizontal scrollbar bug
*/
* Maintainers: [[User:Tom-]]?
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );
*/
if (navigator.appName == "Microsoft Internet Explorer" && document.compatMode == "CSS1Compat")
{
var oldWidth;
var docEl = document.documentElement;
function fixIEScroll()
{
if (!oldWidth || docEl.clientWidth > oldWidth)
doFixIEScroll();
else
setTimeout(doFixIEScroll, 1);
oldWidth = docEl.clientWidth;
}
function doFixIEScroll() {
docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
}
document.attachEvent("onreadystatechange", fixIEScroll);
attachEvent("onresize", fixIEScroll);
}
 
/**
/** Interwiki links to featured articles ***************************************
* Test if an element has a certain class
*
* @deprecated: Use $(element).hasClass() instead.
* Description: Highlights interwiki links to featured articles (or
*/
* equivalents) by changing the bullet before the interwiki link
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
* into a star.
return $( element ).hasClass( className );
* Maintainers: [[User:R. Koot]]
}, 'Use jQuery.hasClass() instead' );
*/
function LinkFA()
{
if ( document.getElementById( "p-lang" ) ) {
var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
for ( var i = 0; i < InterwikiLinks.length; i++ ) {
if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
InterwikiLinks[i].className += " FA"
InterwikiLinks[i].title = "This is a featured article in another language.";
}
}
}
}
addOnloadHook( LinkFA );
 
/**
/** Collapsible tables *********************************************************
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
*
* @rev 6
* Description: Allows tables to be collapsed, showing only the header. See
*/
* [[Wikipedia:NavFrame]].
var extraCSS = mw.util.getParamValue( 'withCSS' ),
* Maintainers: [[User:R. Koot]]
extraJS = mw.util.getParamValue( 'withJS' );
*/
var autoCollapse = 2;
var collapseCaption = "itago";
var expandCaption = "ipakita";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
/* only add button and increment count if there is a header row to work with */
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
if (!HeaderRow) continue;
var Header = HeaderRow.getElementsByTagName( "th" )[0];
if (!Header) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
collapseTable( i );
}
}
}
addOnloadHook( createCollapseButtons );
 
if ( extraCSS ) {
/** Dynamic Navigation Bars (experimental) *************************************
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
*
importStylesheet( extraCSS );
* Description: See [[Wikipedia:NavFrame]].
} else {
* Maintainers: UNMAINTAINED
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
*/
}
}
// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if ( hasClass( NavChild, 'NavPic' ) ) {
NavChild.style.display = 'none';
}
if ( hasClass( NavChild, 'NavContent') ) {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (hasClass(NavChild, 'NavPic')) {
NavChild.style.display = 'block';
}
if (hasClass(NavChild, 'NavContent')) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
var divs = document.getElementsByTagName("div");
for(
var i=0;
NavFrame = divs[i];
i++
) {
// if found a navigation bar
if (hasClass(NavFrame, "NavFrame")) {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
if (NavChild.style.display == 'none') {
NavToggleText = document.createTextNode(NavigationBarShow);
break;
}
}
}
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(
var j=0;
j < NavFrame.childNodes.length;
j++
) {
if (hasClass(NavFrame.childNodes[j], "NavHead")) {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
}
addOnloadHook( createNavigationBarToggleButton );
 
if ( extraJS ) {
/** Main Page layout fixes *********************************************************
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
*
importScript( extraJS );
* Description: Various layout fixes for the main page, including an
} else {
* additional link to the complete list of languages available
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
* and the renaming of the 'Article' to to 'Main Page'.
}
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
}
*/
function mainPageRenameNamespaceTab() {
try {
var Node = document.getElementById( 'ca-nstab-main' ).firstChild;
if ( Node.textContent ) { // Per DOM Level 3
Node.textContent = 'Main Page';
} else if ( Node.innerText ) { // IE doesn't handle .textContent
Node.innerText = 'Main Page';
} else { // Fallback
Node.replaceChild( Node.firstChild, document.createTextNode( 'Main Page' ) );
}
} catch(e) {
// bailing out!
}
}
if ( wgTitle == 'Main Page' && ( wgNamespaceNumber == 0 || wgNamespaceNumber == 1 ) ) {
addOnloadHook( mainPageRenameNamespaceTab );
}
if ( wgTitle == 'Main Page' && wgNamespaceNumber == 0 ) {
addOnloadHook( mainPageAppendCompleteListLink );
}
function mainPageAppendCompleteListLink() {
addPortletLink('p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias')
}
 
/**
/** Extra toolbar options ******************************************************
* Import more specific scripts if necessary
*
*/
* Description: UNDOCUMENTED
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' || mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) {
* Maintainers: [[User:MarkS]]?, [[User:Voice of All]], [[User:R. Koot]]
/* scripts specific to editing pages */
*/
importScript( 'MediaWiki:Common.js/edit.js' );
} else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
//This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
/* watchlist scripts */
// This is based on the original code on Wikipedia:Tools/Editing tools
importScript( 'MediaWiki:Common.js/watchlist.js' );
// To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]]
}
if (mwCustomEditButtons) {
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
"speedTip": "Redirect",
"tagOpen": "#REDIRECT [[",
"tagClose": "]]",
"sampleText": "Insert text"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
"speedTip": "Strike",
"tagOpen": "<s>",
"tagClose": "</s>",
"sampleText": "Strike-through text"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
"speedTip": "Line break",
"tagOpen": "<br />",
"tagClose": "",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png",
"speedTip": "Superscript",
"tagOpen": "<sup>",
"tagClose": "</sup>",
"sampleText": "Superscript text"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png",
"speedTip": "Subscript",
"tagOpen": "<sub>",
"tagClose": "</sub>",
"sampleText": "Subscript text"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
"speedTip": "Small",
"tagOpen": "<small>",
"tagClose": "</small>",
"sampleText": "Small Text"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
"speedTip": "Insert hidden Comment",
"tagOpen": "<!-- ",
"tagClose": " -->",
"sampleText": "Comment"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/1/12/Button_gallery.png",
"speedTip": "Insert a picture gallery",
"tagOpen": "\n<gallery>\n",
"tagClose": "\n</gallery>",
"sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
"speedTip": "Insert block of quoted text",
"tagOpen": "<blockquote>\n",
"tagClose": "\n</blockquote>",
"sampleText": "Block quote"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "//upload.wikimedia.org/wikipedia/en/6/60/Button_insert_table.png",
"speedTip": "Insert a table",
"tagOpen": '{| class="wikitable"\n|-\n',
"tagClose": "\n|}",
"sampleText": "! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"};
 
/**
mwCustomEditButtons[mwCustomEditButtons.length] = {
* Helper script for .hlist class in Common.css
"imageFile": "//upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png",
* Add pseudo-selector class to last-child list items in IE8
"speedTip": "Insert a reference",
* @source mediawiki.org/wiki/Snippets/Horizontal_lists
"tagOpen": "<ref>",
* @revision 6 (2014-08-23)
"tagClose": "</ref>",
* @author [[User:Edokter]]
"sampleText": "Insert footnote text here"};
*/
( function ( mw, $ ) {
var profile = $.client.profile();
if ( profile.name === 'msie' && profile.versionNumber === 8 ) {
mw.hook( 'wikipage.content' ).add( function ( $content ) {
$content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
.addClass( 'hlist-last-child' );
} );
}
}( mediaWiki, jQuery ) );
 
/**
}
* Fix for Windows XP Unicode font rendering
/*</nowiki>*/
if ( navigator.appVersion.search(/windows nt 5/i) !== -1 ) {
mw.util.addCSS( '.IPA { font-family: "Lucida Sans Unicode", "Arial Unicode MS"; } ' +
'.Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; } ' );
}
 
/**
/** pageview counter ***********************************************************
* Add (faux) userpage link and (real) talkpage and contributions links for anon users in personal toolbar.
*
* TODO(?): Load system messages using mw.msg(), but requires API call first.
* Description: Please talk to de:User:LeonWeber before changing anything or
*/
* if there are any issues with that.
function addAnonToolbarLinks() {
* Maintainers: [[:de:User:LeonWeber]]?
var ptUserPage = mw.util.addPortletLink( 'p-personal', '#', '', 'pt-userpage', null, null, '#pt-login' );
*/
ptUserPage.innerHTML = '<span style="color: gray;">Not logged in</span>';
mw.util.addPortletLink( 'p-personal', '/wiki/Special:MyTalk', 'Talk', 'pt-mytalk', 'Your talk page', 'n', '#pt-login' );
// this should be adjusted to a good value.
mw.util.addPortletLink( 'p-personal', '/wiki/Special:MyContributions', 'Contributions', 'pt-mycontris', 'A list of your contributions', 'y', '#pt-login' );
// BE CAREFUL, you will break zedler if it's too low!
}
// And then DaB. will kill Leon :-(
if ( mw.user.isAnon() ) {
var disable_counter = 0;
$( addAnonToolbarLinks );
var counter_factor = 6000;
}
function pgcounter_setup()
{
if(disable_counter == 0)
{
var url = window.location.href;
if(Math.floor(Math.random()*counter_factor)==42) // the probability thing
{
if(wgIsArticle==true || wgArticleId==0) // do not count history pages etc.
{
var pgcountNs = wgCanonicalNamespace;
if(wgCanonicalNamespace=="")
{
pgcountNs = "0";
}
var cnt_url = "http://pgcount.wikimedia.de/index.png?ns=" + pgcountNs + "&title=" + encodeURI(wgTitle) + "&factor=" + counter_factor +"&wiki=enwiki";
var img = new Image();
img.src = cnt_url;
}
}
}
}
// Do not use aOnloadFunctions[aOnloadFunctions.length] = pgcounter_setup;, some browsers don't like that.
pgcounter_setup();
 
/**
/** "Technical restrictions" title fix *****************************************
* WikiMiniAtlas
*
* Description: WikiMiniAtlas is a popup click and drag world map.
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
* Maintainers: User:Interiot, User:Mets501, User:Freakofnurture
* The script itself is located on meta because it is used by many projects.
* See [[Meta:WikiMiniAtlas]] for more information.
* Maintainers: [[User:Dschwen]]
*/
( function () {
//
var require_wikiminiatlas = false;
// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
var coord_filter = /geohack/;
// (for instance iPod's title is updated. But [[C#]] is not an equivalent
$( function () {
// wikilink, so [[C Sharp]] doesn't have its main title changed)
$( 'a.external.text' ).each( function( key, link ) {
// Likewise for users who have selected the U.K. date format ("1 March") the
if ( link.href && coord_filter.exec( link.href ) ) {
// titles of day-of-the-year articles will appear in that style. Users with any
require_wikiminiatlas = true;
// other date setting are not affected.
// break from loop
//
return false;
// The function looks for a banner like this:
// &lt;div id="RealTitleBanner"&gt; ... &lt;span id="RealTitle"&gt;title&lt;/span&gt; ... &lt;/div&gt;
// An element with id=DisableRealTitle disables the function.
//
var disableRealTitle = 0; // users can set disableRealTitle = 1 locally to disable.
if (wgIsArticle) { // don't display the RealTitle when editing, since it is apparently inconsistent (doesn't show when editing sections, doesn't show when not previewing)
addOnloadHook(function() {
try {
var realTitleBanner = document.getElementById("RealTitleBanner");
if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle ) {
var realTitle = document.getElementById("RealTitle");
if (realTitle) {
var realTitleHTML = realTitle.innerHTML;
realTitleText = pickUpText(realTitle);
 
var isPasteable = 0;
//var containsHTML = /</.test(realTitleHTML); // contains ANY HTML
var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
// calculate whether the title is pasteable
var verifyTitle = realTitleText.replace(/^ +/, ""); // trim left spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
if (wgNamespaceNumber != 0) {
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
} else {
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
}
}
// verify whether wgTitle matches
verifyTitle = verifyTitle.replace(/[\s_]+/g, " "); // underscores and multiple spaces to single spaces
verifyTitle = verifyTitle.replace(/^\s+/, "").replace(/\s+$/, ""); // trim left and right spaces
verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length); // uppercase first character
if ( (verifyTitle == wgTitle) || (verifyTitle == wgTitle.replace(/^(.+)?(January|February|March|April|May|June|July|August|September|October|November|December)\s+([12]?[0-9]|3[0123])([^\d].*)?$/g, "$1$3 $2$4") )) isPasteable = 1;
var h1 = document.getElementsByTagName("h1")[0];
if (h1 && isPasteable) {
h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
if (!containsTooMuchHTML)
realTitleBanner.style.display = "none";
}
document.title = realTitleText + " - Wikipedia, the free encyclopedia";
}
} );
if ( $( 'div.kmldata' ).length ) {
require_wikiminiatlas = true;
}
} catch if (e require_wikiminiatlas ) {
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
/* Something went wrong. */
}
} );
} )();
}
// similar to innerHTML, but only returns the text portions of the insides, excludes HTML
function pickUpText(aParentElement) {
var str = "";
function pickUpTextInternal(aElement) {
var child = aElement.firstChild;
while (child) {
if (child.nodeType == 1) // ELEMENT_NODE
pickUpTextInternal(child);
else if (child.nodeType == 3) // TEXT_NODE
str += child.nodeValue;
child = child.nextSibling;
}
}
pickUpTextInternal(aParentElement);
return str;
}
//fix edit summary prompt for undo
//this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the
//edit summary unchanged
//this was added by [[User:Deskana]], code by [[User:Tra]]
addOnloadHook(function () {
if (document.location.search.indexOf("undo=") != -1
&& document.getElementsByName('wpAutoSummary')[0]) {
document.getElementsByName('wpAutoSummary')[0].value='1';
}
})
 
/** Add dismiss button to watchlist-message *************************************
*
* Description: Hide the watchlist message for one week.
* Maintainers: [[User:Ruud Koot|Ruud Koot]]
*/
function addDismissButton() {
var watchlistMessage = document.getElementById("watchlist-message");
if ( watchlistMessage == null ) return;
var watchlistCookieID = watchlistMessage.className.replace(/cookie\-ID\_/ig,'');
if ( document.cookie.indexOf( "hidewatchlistmessage-" + watchlistCookieID + "=yes" ) != -1 ) {
watchlistMessage.style.display = "none";
}
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( "dismiss" );
ButtonLink.setAttribute( "id", "dismissButton" );
ButtonLink.setAttribute( "href", "javascript:dismissWatchlistMessage();" );
ButtonLink.setAttribute( "title", "Hide this message for one week" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
watchlistMessage.appendChild( Button );
}
function dismissWatchlistMessage() {
var e = new Date();
e.setTime( e.getTime() + (7*24*60*60*1000) );
var watchlistMessage = document.getElementById("watchlist-message");
var watchlistCookieID = watchlistMessage.className.replace(/cookie\-ID\_/ig,'');
document.cookie = "hidewatchlistmessage-" + watchlistCookieID + "=yes; expires=" + e.toGMTString() + "; path=/";
watchlistMessage.style.display = "none";
}
addOnloadHook( addDismissButton );
 
/** Main Page deletion image *******************************************************
*
* Description: If the Main Page does not exist (i.e., it's been deleted) then insert an image
* instead of showing the "page does not exist" text.
* Created by: [[User:Mark]], with invaluable help from [[User:Pathoschild]]
*/
function MainPageDeletedImage() {
try {
//If the article does not exist and it is the Main Page, proceed
if ( document.getElementById( "noarticletext" ) && wgTitle == 'Main Page' ) {
// Insert a protected commons image at the end of the document explaining it.
var contentbox = document.getElementById('content');
var newimg = document.createElement('img');
newimg.setAttribute('src','//upload.wikimedia.org/wikipedia/commons/9/99/WikipediaTechnical.png');
contentbox.appendChild(newimg);
// Hide the article-does-not-exist text
var NoArticleMessage = document.getElementById('noarticletext');
NoArticleMessage.style.display="none";
// Hide the edit button
var EditThisPageButton = document.getElementById('ca-edit');
EditThisPageButton.style.display="none";
}
} catch(e) {
// In case it does not work, do nothing
return;
}
}
addOnloadHook( MainPageDeletedImage );
 
/**
* Collapsible tables
* Modifie Special:Search pour pouvoir utiliser différents moteurs de recherche,
*
* disponibles dans une boîte déroulante.
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
* Auteurs : Jakob Voss, Guillaume, importé depuis la Wiki allemande
*
* <pre><nowiki>
* @version 2.0.3 (2014-03-14)
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
* @author [[User:R. Koot]]
* @author [[User:Krinkle]]
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
* is supported in MediaWiki core.
*/
 
var autoCollapse = 2;
var collapseCaption = 'hide';
var expandCaption = 'show';
var tableIndex = 0;
 
function externalSearchEnginescollapseTable( tableIndex ) {
var Button = document.getElementById( 'collapseButton' + tableIndex );
if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 
if ( !Table || !Button ) {
return false;
}
 
var Rows = Table.rows;
var mainNode = document.getElementById("powersearch");
var i;
if (!mainNode) mainNode = document.getElementById("search");
if (!mainNode) return;
 
if ( Button.firstChild.data === collapseCaption ) {
var beforeNode = document.getElementById("mw-search-top-table");
for ( i = 1; i < Rows.length; i++ ) {
if (!beforeNode) return;
Rows[i].style.display = 'none';
beforeNode = beforeNode.nextSibling;
}
if (!beforeNode) return;
Button.firstChild.data = expandCaption;
var firstEngine = "mediawiki";
var choices = document.createElement("div");
choices.setAttribute("id","searchengineChoices");
choices.style.textAlign = "center";
var lsearchbox = document.getElementById("searchText");
var initValue = lsearchbox.value;
var space = "";
 
for (var id in searchEngines) {
var engine = searchEngines[id];
if(engine.ShortName)
{
if (space) choices.appendChild(space);
space = document.createTextNode(" ");
var attr = {
type: "radio",
name: "searchengineselect",
value: id,
onFocus: "changeSearchEngine(this.value)",
id: "searchengineRadio-"+id
};
var html = "<input";
for (var a in attr) html += " " + a + "='" + attr[a] + "'";
html += " />";
var span = document.createElement("span");
span.innerHTML = html;
choices.appendChild( span );
var label
if (engine.Template.indexOf('http') == 0) {
label = document.createElement("a");
label.href = engine.Template.replace("{searchTerms}", initValue).replace("{language}", "fr");
} else {
for ( i = 1; i < Rows.length; i++ ) {
label = document.createElement("label");
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
label.appendChild( document.createTextNode( engine.ShortName ) );
choices.appendChild( label );
}
}
mainNode.insertBefore(choices, beforeNode);
var input = document.createElement("input");
input.id = "searchengineextraparam";
input.type = "hidden";
mainNode.insertBefore(input, beforeNode);
 
function createClickHandler( tableIndex ) {
changeSearchEngine(firstEngine, initValue);
return function ( e ) {
e.preventDefault();
collapseTable( tableIndex );
};
}
 
function changeSearchEnginecreateCollapseButtons(selectedId, searchTerms$content ) {
var NavigationBoxes = {};
var $Tables = $content.find( 'table' );
var i;
 
$Tables.each( function( i, table ) {
var currentId = document.getElementById("searchengineChoices").currentChoice;
if ( $(table).hasClass( 'collapsible' ) ) {
if (selectedId == currentId) return;
document.getElementById("searchengineChoices").currentChoice = selectedId;
var radio = document.getElementById('searchengineRadio-' + selectedId);
radio.checked = "checked";
var engine = searchEngines[selectedId];
var p = engine.Template.indexOf('?');
var params = engine.Template.substr(p+1);
var form;
if (document.forms["search"]) {
form = document.forms["search"];
} else {
form = document.getElementById("powersearch");
}
form.setAttribute("action", engine.Template.substr(0,p));
var l = ("" + params).split("&");
for (var idx = 0;idx < l.length;idx++) {
var p = l[idx].split("=");
var pValue = p[1];
if (pValue == "{language}") {
} else if (pValue == "{searchTerms}") {
var input;
input = document.getElementById("searchText");
input.name = p[0];
} else {
var input = document.getElementById("searchengineextraparam");
input.name = p[0];
input.value = pValue;
}
}
}
 
/* only add button and increment count if there is a header row to work with */
if (wgCanonicalSpecialPageName == "Search") {
var HeaderRow = table.getElementsByTagName( 'tr' )[0];
var searchEngines = {
if ( !HeaderRow ) {
mediawiki: {
return;
ShortName: "Recherche interne",
}
Template: "/w/index.php?search={searchTerms}"
var Header = table.getElementsByTagName( 'th' )[0];
},
if ( !Header ) {
wikiwix: {
return;
ShortName: "Wikiwix",
}
Template: "http://ceb.wikiwix.com/index.php?action={searchTerms}&lang={language}"
},
google: {
ShortName: "Google",
Template: "http://www.google.fr/search?as_sitesearch=ceb.wikipedia.org&hl={language}&q={searchTerms}"
},
wlive: {
ShortName: "Windows Live",
Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://ceb.wikipedia.org"
},
yahoo: {
ShortName: "Yahoo!",
Template: "http://search.yahoo.com/search?p={searchTerms}&vs=ceb.wikipedia.org"
},
exalead: {
ShortName: "Exalead",
Template: "http://www.exalead.com/wikipedia/results?q={searchTerms}&language=ceb"
},
globalwpsearch: {
ShortName: "Global WP",
Template: "http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=120&search={searchTerms}"
}
};
addOnloadHook(externalSearchEngines);
}
 
NavigationBoxes[ tableIndex ] = table;
table.setAttribute( 'id', 'collapsibleTable' + tableIndex );
 
var Button = document.createElement( 'span' );
var ButtonLink = document.createElement( 'a' );
var ButtonText = document.createTextNode( collapseCaption );
// Styles are declared in [[MediaWiki:Common.css]]
Button.className = 'collapseButton';
 
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
ButtonLink.setAttribute( 'href', '#' );
$( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
ButtonLink.appendChild( ButtonText );
 
Button.appendChild( document.createTextNode( '[' ) );
/** Geo-targeted watchlist notice *******************************************************
Button.appendChild( ButtonLink );
*
Button.appendChild( document.createTextNode( ']' ) );
* Description: Allows for geographic targeting of watchlist notices. See [[Wikipedia:Geonotice]] for more information.
* Created by: [[User:Gmaxwell]]
*/
if (wgPageName == "Special:Watchlist")
addOnloadHook((function (){document.write('<script type="text/javascript" src="http://tools.wikimedia.de/~gmaxwell/cgi-bin/geonotice.py"><\/script>')}));
 
Header.insertBefore( Button, Header.firstChild );
/** Sysop Javascript *******************************************************
tableIndex++;
*
}
* Description: Allows for sysop-specific Javascript at [[MediaWiki:Sysop.js]].
} );
* Created by: [[User:^demon]]
 
*/
for ( i = 0; i < tableIndex; i++ ) {
function sysopFunctions() {
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
if ( wgUserGroups && !window.disableSysopJS ) {
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
for ( var g = 0; g < wgUserGroups.length; ++g ) {
if ( wgUserGroups[g] == "sysop" ) {
collapseTable( i );
importScript( "MediaWiki:Sysop.js" );
}
break;
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
}
var element = NavigationBoxes[i];
}
while ((element = element.parentNode)) {
}
if ( $( element ).hasClass( 'outercollapse' ) ) {
collapseTable ( i );
break;
}
}
}
}
}
 
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
addOnloadHook( sysopFunctions );
 
/**
/** WikiMiniAtlas *******************************************************
* Dynamic Navigation Bars (experimental)
*
*
* Description: WikiMiniAtlas is a popup click and drag world map.
* Description: See [[Wikipedia:NavFrame]].
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
* Maintainers: UNMAINTAINED
* The script itself is located on meta because it is used by many projects.
*/
* See [[Meta:WikiMiniAtlas]] for more information.
* Created by: [[User:Dschwen]]
*/
 
/* set up the words in your language */
function importWikiMiniAtlas() {
var NavigationBarHide = '[' + collapseCaption + ']';
var page = 'm:MediaWiki:Wikiminiatlas.js';
var NavigationBarShow = '[' + expandCaption + ']';
if( importedScripts[page] ) {
var indexNavigationBar = 0;
return;
}
importedScripts[page] = true;
var url = '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js'
+ '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400';
var scriptElem = document.createElement( 'script' );
scriptElem.setAttribute( 'src' , url );
scriptElem.setAttribute( 'type' , 'text/javascript' );
document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
}
importWikiMiniAtlas();
 
/**
/* document.write('<script type="text/javascript" src="'
* Shows and hides content and picture (if available) of navigation bars
+ '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js'
* Parameters:
+ '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400"></script>'); */
* indexNavigationBar: the index of navigation bar to be toggled
**/
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
var NavChild;
 
if ( !NavFrame || !NavToggle ) {
/** IE 6 Z-index bug workaround for anonnotice **************************
return false;
*
}
* Description: This implements a work around for the Z-index bug found in Internet Explorer.
* It correctly places the anon notice on the page, even under IE6.
* See this Google search for more information about the bug:
* http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=q74&q=z-index+ie6+bug&btnG=Search
* Created by: [[User:Gmaxwell]]
*/
addOnloadHook((function (){
if (wgUserName == null) {
var messageEdu=new Array();
messageEdu[0]='<a href="//en.wikipedia.org/wiki/Wikipedia:Researching_with_Wikipedia" title="Wikipedia:Researching with Wikipedia">Alamin&nbsp;pa&nbsp;ang&nbsp;tungkol&nbsp;sa&nbsp;paggamit&nbsp;sa&nbsp;Wikipedia&nbsp;para&nbsp;sa&nbsp;pagsasaliksik&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[1]='<a href="//en.wikipedia.org/wiki/Wikipedia:10_things_you_did_not_know_about_Wikipedia" title="Wikipedia:10 things you did not know about Wikipedia">Sampung&nbsp;bagay&nbsp;na&nbsp;hindi&nbsp;mo&nbsp;alam&nbsp;tungkol&nbsp;sa&nbsp;Wikipedia&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[2]='<a href="//en.wikipedia.org/wiki/Wikipedia:10_things_you_did_not_know_about_images_on_Wikipedia" title="Wikipedia:10 things you did not know about images on Wikipedia">Sampung&nbsp;bagay&nbsp;na&nbsp;hindi&nbsp;mo&nbsp;alam&nbsp;tungkol&nbsp;sa&nbsp;mga&nbsp;larawan&nbsp;sa&nbsp;Wikipedia&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[3]='<a href="//en.wikipedia.org/wiki/Wikipedia:Citing_Wikipedia" title="Wikipedia:Citing Wikipedia">Pag-aralan&nbsp;ang&nbsp;pagsipi&nbsp;ng&nbsp;Wikipedia&nbsp;Wikipedia&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[4]='May&nbsp;mga&nbsp;tanong&nbsp;ka?&nbsp;<a href="//en.wikipedia.org/wiki/Wikipedia:Questions" title="Wikipedia:Questions">Alamin&nbsp;kung&nbsp;paano&nbsp;magtanong&nbsp;sa&nbsp;Wikipedia&nbsp;at&nbsp;makuha&nbsp;ang&nbsp;sagot&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[5]='<a href="//en.wikipedia.org/wiki/Wikipedia:Basic_navigation" title="Wikipedia:Basic navigation">Alamin&nbsp;pa&nbsp;ang&nbsp;paghahanap&nbsp;sa&nbsp;Wikipedia&nbsp;at&nbsp;mahanap&nbsp;ng&nbsp;impormasyon&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
messageEdu[6]='<a href="//en.wikipedia.org/wiki/Wikipedia:Contributing_to_Wikipedia" title="Wikipedia:Contributing to Wikipedia">Interasado&nbsp;sa&nbsp;pag-ambag&nbsp;sa&nbsp;Wikipedia?&nbsp;(mula&nbsp;sa&nbsp;Wikipediang&nbsp;Ingles)</a>';
var whichMessageEdu = Math.floor(Math.random()*(messageEdu.length));
 
/* if shown now */
if ( NavToggle.firstChild.data === NavigationBarHide ) {
/** document.getElementById("contentSub").innerHTML +='<div style="position:absolute; z-index:100; right:100px; top:0px;" class="metadata" id="anontip"><div style="text-align:right; font-size:87%">•&nbsp;<i>' + messageEdu[whichMessageEdu] + '</i>&nbsp;•</div></div>';
for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
*/
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
}
NavChild.style.display = 'none';
}));
}
}
NavToggle.firstChild.data = NavigationBarShow;
 
/* if hidden now */
/**
} else if ( NavToggle.firstChild.data === NavigationBarShow ) {
* Correctly handle PNG transparency in Internet Explorer 6.
for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
* http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
*
NavChild.style.display = 'block';
* Adapted for Wikipedia by Remember_the_dot and Edokter.
* }
* http://homepage.ntlworld.com/bobosola/pnginfo.htm states "This page contains more information for
* the curious or those who wish to amend the script for special needs", which I take as permission to
* modify or adapt this script freely. I release my changes into the public domain.
*/
function PngFix()
{
try
{
if (!document.body.filters)
{
window.PngFixDisabled = true
}
NavToggle.firstChild.data = NavigationBarHide;
}
 
catch (e)
event.preventDefault();
{
};
window.PngFixDisabled = true
 
}
/* adds show/hide-button to navigation bars */
if (!window.PngFixDisabled)
function createNavigationBarToggleButton( $content ) {
{
var NavChild;
var documentImages = document.images
/* iterate over all < div >-elements */
var documentCreateElement = document.createElement
var $divs = $content.find( 'div' );
var funcEncodeURI = encodeURI
$divs.each( function ( i, NavFrame ) {
for/* (varif ifound =a 0;navigation ibar < documentImages.length;)*/
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
{
 
var img = documentImages[i]
var imgSrc = img.srcindexNavigationBar++;
var NavToggle = document.createElement( 'a' );
NavToggle.className = 'NavToggle';
if (imgSrc.substr(imgSrc.length - 3).toLowerCase() == "png" && !img.onclick)
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
{
NavToggle.setAttribute( 'href', '#' if (img.useMap);
$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
{
 
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + encodeURI(imgSrc) + "')"
var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
img.src = "//upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif"
i++/**
* Check if any children are already hidden. This loop is here for backwards compatibility:
* the old way of making NavFrames start out collapsed was to manually add style="display:none"
* to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make
* the content visible without JavaScript support), the new recommended way is to add the class
* "collapsed" to the NavFrame itself, just like with collapsible tables.
*/
for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
if ( NavChild.style.display === 'none' ) {
isCollapsed = true;
}
}
else}
if ( isCollapsed ) {
for ( NavChild = varNavFrame.firstChild; outerSpanNavChild != documentCreateElement("span"null; NavChild = NavChild.nextSibling ) {
varif innerSpan( =$( documentCreateElementNavChild ).hasClass("span" 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
var outerSpanStyle = outerSpan NavChild.style.display = 'none';
var innerSpanStyle = innerSpan.style}
var imgCurrentStyle = img.currentStyle
outerSpan.id = img.id
outerSpan.className = img.className
outerSpanStyle.backgroundImage = imgCurrentStyle.backgroundImage
outerSpanStyle.borderWidth = imgCurrentStyle.borderWidth
outerSpanStyle.borderStyle = imgCurrentStyle.borderStyle
outerSpanStyle.borderColor = imgCurrentStyle.borderColor
outerSpanStyle.display = "inline-block"
outerSpanStyle.fontSize = "0"
outerSpanStyle.verticalAlign = "middle"
if (img.parentElement.href) outerSpanStyle.cursor = "hand"
innerSpanStyle.width = "1px"
innerSpanStyle.height = "1px"
innerSpanStyle.display = "inline-block"
innerSpanStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + funcEncodeURI(imgSrc) + "')"
outerSpan.appendChild(innerSpan)
img.parentNode.replaceChild(outerSpan, img)
}
}
var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
else
{NavToggle.appendChild( NavToggleText );
 
i++
/* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
NavToggle.style.color = NavFrame.childNodes[j].style.color;
NavFrame.childNodes[j].appendChild( NavToggle );
}
}
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
}
} );
}
if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substr(22, 1) == "6")
{
window.attachEvent("onload", PngFix)
}
 
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
 
/**
* Uploadwizard_newusers
* Remove need for CSS hacks regarding MSIE and IPA.
* Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]
*/
*
* Maintainers: [[User:Krimpet]]
*/
function uploadwizard_newusers() {
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === 'Upload' && mw.config.get( 'wgAction' ) === 'view' ) {
var oldDiv = document.getElementById( 'autoconfirmedusers' ),
newDiv = document.getElementById( 'newusers' );
if ( oldDiv && newDiv ) {
var userGroups = mw.config.get( 'wgUserGroups' );
if ( userGroups ) {
for ( var i = 0; i < userGroups.length; i++ ) {
if ( userGroups[i] === 'autoconfirmed' ) {
oldDiv.style.display = 'block';
newDiv.style.display = 'none';
return;
}
}
}
oldDiv.style.display = 'none';
newDiv.style.display = 'block';
return;
}
}
}
 
$(uploadwizard_newusers);
if(navigator.userAgent.indexOf("MSIE") != -1 && document.createStyleSheet) {
 
document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');
/**
* Magic editintros ****************************************************
*
* Description: Adds editintros on disambiguation pages and BLP pages.
* Maintainers: [[User:RockMFR]]
*/
function addEditIntro( name ) {
$( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
} );
}
 
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
//Fix "Upload file" link when using the secure proxy
$( function () {
//This is a workaround that can be removed when bug 10843 is fixed
if ( document.getElementById( 'disambigbox' ) ) {
addOnloadHook(function()
addEditIntro( 'Template:Disambig_editintro' );
{
}
if (document.getElementById("t-upload"))
{} );
 
document.getElementById("t-upload").getElementsByTagName("a")[0].href = wgArticlePath.replace("$1", "Wikipedia:Upload")
$( function () {
}
var cats = mw.config.get('wgCategories');
})
if ( !cats ) {
return;
}
if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {
addEditIntro( 'Template:BLP_editintro' );
}
} );
}
 
/* End of mw.loader.using callback */
/* Disable code in table sorting routine to set classes on even/odd rows [[User:Random832]] */
} );
ts_alternate_row_colors = false;
/* DO NOT ADD CODE BELOW THIS LINE */
73

edits