MediaWiki:Common.js

/* */

// Load upload form JS importScript('MediaWiki:Upload.js');

// onload stuff var firstRun = true;

function loadFunc { if( firstRun ) { firstRun = false; } else { return; }

window.pageName = wgPageName;

// DEPRECATED if( document.getElementById('infoboxinternal') != null && document.getElementById('infoboxend') != null ) { document.getElementById('infoboxend').innerHTML = '[Hide]'; }

// Upload form - need to run before adding hide buttons setupUploadForm;

addHideButtons;

if( document.getElementById('mp3-navlink') !== null ) { document.getElementById('mp3-navlink').onclick = onArticleNavClick; document.getElementById('mp3-navlink').getElementsByTagName('a')[0].href = 'javascript:void(0)'; }

if( window.storagePresent ) initVisibility;

rewriteSearchFormLink; fillEditSummaries; fillPreloads;

substUsername; substUsernameTOC; rewriteTitle; showEras('title-eraicons'); showEras('title-shortcut'); rewriteHover; addAlternatingRowColors; // replaceSearchIcon; this is now called from MediaWiki:Monobook.js	fixSearch;

var body = document.getElementsByTagName('body')[0]; var bodyClass = body.className;

if( !bodyClass || (bodyClass.indexOf('page-') === -1) ) { var page = window.pageName.replace(/\W/g, '_'); body.className += ' page-' + page; }

if( typeof(onPageLoad) != "undefined" ) { onPageLoad; } }

function infoboxToggle { var page = window.pageName.replace(/\W/g, '_'); var nowShown;

if(document.getElementById('infoboxtoggle').innerHTML == '[Hide]') { document.getElementById('infoboxinternal').style.display = 'none'; document.getElementById('infoboxtoggle').innerHTML = '[Show]'; nowShown = false; } else { document.getElementById('infoboxinternal').style.display = 'block'; document.getElementById('infoboxtoggle').innerHTML = '[Hide]'; nowShown = true; }

if(window.storagePresent) { var storage = globalStorage[window.location.hostname]; storage.setItem('infoboxshow-' + page, nowShown); } }

function showEras(className) { if( skin == 'oasis' ) { return; }

if( typeof( SKIP_ERAS ) != 'undefined' && SKIP_ERAS ) return;

var titleDiv = document.getElementById( className );

if( titleDiv == null || titleDiv == undefined ) return;

var cloneNode = titleDiv.cloneNode(true); var firstHeading = getFirstHeading; firstHeading.insertBefore(cloneNode, firstHeading.childNodes[0]); cloneNode.style.display = "block"; } // END JavaScript title rewrite

function initVisibility { var storage = globalStorage[window.location.hostname];

var page = window.pageName.replace(/\W/g,'_'); var show = storage.getItem('infoboxshow-' + page);

if( show == 'false' ) { infoboxToggle; }

var hidables = getElementsByClass('hidable');

for(var i = 0; i < hidables.length; i++) { show = storage.getItem('hidableshow-' + i + '_' + page);

if( show == 'false' ) { var content = getElementsByClass('hidable-content', hidables[i]); var button = getElementsByClass('hidable-button', hidables[i]);

if( content != null && content.length > 0 &&				button != null && button.length > 0 && content[0].style.display != 'none' ) {				button[0].onclick('bypass'); }		} else if( show == 'true' ) { var content = getElementsByClass('hidable-content', hidables[i]); var button = getElementsByClass('hidable-button', hidables[i]);

if( content != null && content.length > 0 &&				button != null && button.length > 0 && content[0].style.display == 'none' ) {				button[0].onclick('bypass'); }		}	} }

function onArticleNavClick { var div = document.getElementById('mp3-nav');

if( div.style.display == 'block' ) div.style.display = 'none'; else div.style.display = 'block'; }

function addAlternatingRowColors { var infoboxes = getElementsByClass('infobox', document.getElementById('content'));

if( infoboxes.length == 0 ) return;

for( var k = 0; k < infoboxes.length; k++ ) { var infobox = infoboxes[k];

var rows = infobox.getElementsByTagName('tr'); var changeColor = false;

for( var i = 0; i < rows.length; i++ ) { if(rows[i].className.indexOf('infoboxstopalt') != -1) break;

var ths = rows[i].getElementsByTagName('th');

if( ths.length > 0 ) { continue; }

if(changeColor) rows[i].style.backgroundColor = '#f9f9f9'; changeColor = !changeColor; }	} }

function addHideButtons { var hidables = getElementsByClass('hidable');

for( var i = 0; i < hidables.length; i++ ) { var box = hidables[i]; var button = getElementsByClass('hidable-button', box, 'span');

if( button != null && button.length > 0 ) { button = button[0];

button.onclick = toggleHidable; button.appendChild( document.createTextNode('[Hide]') );

if( new ClassTester('start-hidden').isMatch(box) ) button.onclick('bypass'); }	} }

function toggleHidable(bypassStorage) { var parent = getParentByClass('hidable', this); var content = getElementsByClass('hidable-content', parent); var nowShown;

if( content != null && content.length > 0 ) { content = content[0];

if( content.style.display == 'none' ) { content.style.display = content.oldDisplayStyle; this.firstChild.nodeValue = '[Hide]'; nowShown = true; } else { content.oldDisplayStyle = content.style.display; content.style.display = 'none'; this.firstChild.nodeValue = '[Show]'; nowShown = false; }

if( window.storagePresent && ( typeof( bypassStorage ) == 'undefined' || bypassStorage != 'bypass' ) ) { var page = window.pageName.replace(/\W/g, '_'); var items = getElementsByClass('hidable'); var item = -1;

for( var i = 0; i < items.length; i++ ) { if( items[i] == parent ) { item = i;					break; }			}

if( item == -1 ) { return; }

var storage = globalStorage[window.location.hostname]; storage.setItem('hidableshow-' + item + '_' + page, nowShown); }	} }

function substUsernameTOC { var toc = document.getElementById('toc'); var userpage = document.getElementById('pt-userpage');

if( !userpage || !toc ) return;

var username = userpage.firstChild.firstChild.nodeValue; var elements = getElementsByClass('toctext', toc, 'span');

for( var i = 0; i < elements.length; i++ ) elements[i].firstChild.nodeValue = elements[i].firstChild.nodeValue.replace(' ', username); }

// Reskin parser script from Uncyclopedia:MediaWiki:Uncyclopedia.js skinjs = { "Logout": "Logout.js" }

var re = RegExp("(.*) - Wookieepedia, the Star Wars Wiki"); var matches = re.exec(document.title);

var skinNamejs;

if (matches) { if (skinjs[matches[1]] != undefined) { skinNamejs = (skinjs[matches[1]].length > 0) ? skinjs[matches[1]] : matches[1] + '.js'; document.write(' '); } }

function fixSearch { var button = document.getElementById('searchSubmit');

if( button ) button.name = 'go'; }

addOnloadHook( loadFunc );

//Link FA

var FA_enabled = true;

function addfaicon { // if disabled if (!FA_enabled) return; var pLang = document.getElementById("p-lang"); if (!pLang) return; var lis = pLang.getElementsByTagName("li"); for (var i = 0; i < lis.length; i++) { var li = lis[i]; // only links with a corresponding Link_FA template are interesting if (!document.getElementById(li.className + "-fa"))  continue; // additional class so the template can be hidden with CSS li.className += " FA"; // change title (mouse over) li.title = "This article is rated as featured article."; } } addOnloadHook(addfaicon);

/* Magic edit intro. Copied from Wikipedia's MediaWiki:Common.js * modified for use in both Monaco and Monobook skins by Sikon * Section edit links added by Green tentacle * New Wikia skin support by Grunny */ function addEditIntro(name) { // Top link if( skin == 'oasis' ) { $('a[data-id="edit"]').attr('href',$('a[data-id="edit"]').attr('href') + '&editintro=' + name); $('span.editsection > a').each( function {			$(this).attr('href',$(this).attr('href') + '&editintro=' + name);		} ); } else { var el = document.getElementById('ca-edit');

if( typeof(el.href) == 'undefined' ) { el = el.getElementsByTagName('a')[0]; }

if (el) el.href += '&editintro=' + name;

// Section links var spans = document.getElementsByTagName('span'); for ( var i = 0; i < spans.length; i++ ) { el = null;

if (spans[i].className == 'editsection') { el = spans[i].getElementsByTagName('a')[0]; if (el) el.href += '&editintro=' + name; } else if (spans[i].className == 'editsection-upper') { el = spans[i].getElementsByTagName('a')[0]; if (el) el.href += '&editintro=' + name; }		}	} }

$( function {	if ( wgNamespaceNumber === 0 ) {		var cats = document.getElementById( 'mw-normal-catlinks' );		if ( !cats ) {			return;		}		cats = cats.getElementsByTagName( 'a' );		for ( var i = 0; i < cats.length; i++ ) {			if ( cats[i].title === 'Category:Wookieepedia featured articles' ) {				addEditIntro( 'Template:Featured_editintro' );				break;			} else if ( cats[i].title === 'Category:Wookieepedia good articles' ) {				addEditIntro( 'Template:Good_editintro' );				break;			} else if ( cats[i].title === 'Category:Articles undergoing major edits' || cats[i].title === 'Category:Works in progress' ) {				addEditIntro( 'Template:Inuse_editintro‎' );				break;			} else if ( wgPageName === 'Template:DYK editintro' ) {				addEditIntro( 'Template:Good_editintro' );				break;			}		}	} else if ( wgPageName === 'Template:DidYouKnow' ) {		addEditIntro( 'Template:DYK_editintro' );	} } );

// Main Page JS transform. Originally from Wikipedia:MediaWiki:Monobook.js/Wikipedia:MediaWiki:Common.js and may be further modified for local use. 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 ); } /** Archive edit tab disabling ************************************* * Disables the edit tab on old forum topic pages to stop noobs bumping old topics. * Page can still be edited by going via the edit tab on the history etc, or by * typing the edit address manually. * By Spang * Monaco support by User:Uberfuzzy * Oasis support by User:Uberfuzzy * Removal of section edit buttons and new section tab on talk pages added by Grunny * User:/User talk: support and styling in new skin by Grunny */ function disableOldForumEdit { if( typeof( enableOldForumEdit ) != 'undefined' && enableOldForumEdit ) { return; }	if( !document.getElementById('old-forum-warning') ) { return; }

if( skin == 'oasis' ) { if( wgNamespaceNumber == 2 || wgNamespaceNumber == 3 ) { $("#WikiaUserPagesHeader .wikia-menu-button li a:first").html('Archived').removeAttr('href').attr('style', 'color: darkgray;'); $('span.editsection').remove; return; } else { $("#WikiaPageHeader .wikia-menu-button li a:first").html('Archived').removeAttr('href').attr('style', 'color: darkgray;'); $('span.editsection').remove; return; }	}

if( !document.getElementById('ca-edit') ) { return; }

if( skin == 'monaco' ) { editLink = document.getElementById('ca-edit'); } else if( skin == 'monobook' ) { editLink = document.getElementById('ca-edit').firstChild; } else { return; }

editLink.removeAttribute('href', 0); editLink.removeAttribute('title', 0); editLink.style.color = 'gray'; editLink.innerHTML = 'Archived';

$('span.editsection-upper').remove; $('span.editsection').remove;

appendCSS( '#control_addsection, #ca-addsection { display: none !important; }' ); } addOnloadHook( disableOldForumEdit );

//Removes the "Featured on:" line on File pages -- By Grunny addOnloadHook( function {	if ( wgNamespaceNumber == 6 && $('#file').length != 0 ) {		$('#file').html($('#file').html.replace(/Featured on\:(.*?)\/, ''));	} } );

//