You are viewing the MafiaScum.net Wiki. To play the game, visit the forum.

MediaWiki:Common.js

From MafiaWiki
Revision as of 18:50, 12 April 2015 by Wgeurts (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
function setupFix() {
  var headersNodesList = document.getElementsByTagName("h3");
  var i;
  for (i = 0; i < headersNodesList.length; i++) {
    if (headersNodesList[i].innerHTML == "A") {
      headersNodesList[i].innerHTML = "Variable";
    }
  }
}
window.onload = function() { setupFix() };

 /** Full Customiser **************************************************
  *
  *  Description: Will allow users to customize standard wiki CSS per page.
  *  Maintainers: [[User:Wgeurts]] wiki.mafiascum.net
  */ 

 document.addEventListener('DOMContentLoaded', function() {

    if(document.getElementById("wiki-custom")){
       function appendStyle(styles) {
           var css = document.createElement('style');
           css.type = 'text/css';

           if (css.styleSheet) css.styleSheet.cssText = styles;
           else css.appendChild(document.createTextNode(styles));

           document.getElementsByTagName("head")[0].appendChild(css);
       }

       if(document.getElementById("content-background")){ 
           var contentBackground = ' background: ' + document.getElementById('content-background').innerHTML + ';';
       }
       if(document.getElementById("content-border")){ 
           var contentBorder = ' border-color: ' + document.getElementById('content-border').innerHTML + ';';
       }
       if(document.getElementById("content-color")){ 
           var contentColor = ' color: ' + document.getElementById('content-color').innerHTML + ';';
       }
       if(document.getElementById("content-title")){ 
           var contentTitle = ' color: ' + document.getElementById('content-title').innerHTML + ';';
       }
       if(document.getElementById("content-title-bar")){ 
           var contentTBar = ' border-color: ' + document.getElementById('content-title-bar').innerHTML + '!important;';
       }
       if(document.getElementById("content-page-bar")){ 
           var contentPBar = ' background-color: ' + document.getElementById('content-page-bar').innerHTML + '!important;';
       }
       if(document.getElementById("content-redirects")){ 
           var contentSub = ' color: ' + document.getElementById('content-redirects').innerHTML + ';';
       }
       if(document.getElementById("custom-link")){ 
           var customLink = ' color: ' + document.getElementById('custom-link').innerHTML + ';';
       }
       if(document.getElementById("custom-link-visited")){ 
           var customLinkVisited = ' color: ' + document.getElementById('custom-link-visited').innerHTML + ';';
       }
       if(document.getElementById("custom-link-new")){ 
           var customLinkNew = ' color: ' + document.getElementById('custom-link-new').innerHTML + ';';
       }
       if(document.getElementById("catlinks-background")){ 
           var catlinksBackground = ' background: ' + document.getElementById('catlinks-background').innerHTML + ';';
       }
       if(document.getElementById("catlinks-border")){ 
           var catlinksBorder = ' border-color: ' + document.getElementById('catlinks-border').innerHTML + ';';
       }
       if(document.getElementById("tabs-selected-border")){ 
           var tabsSelectedBorder = ' border-color: ' + document.getElementById('tabs-selected-border').innerHTML + ';';
       }
       if(document.getElementById("tabs-border")){ 
           var tabsBorder = ' border-color: ' + document.getElementById('tabs-border').innerHTML + ';';
       }
       if(document.getElementById("tabs-selected-background")){ 
           var tabsSelectedBackground = ' background: ' + document.getElementById('tabs-selected-background').innerHTML + ';';
       }
       if(document.getElementById("tabs-background")){ 
           var tabsBackground = ' background: ' + document.getElementById('tabs-background').innerHTML + ';';
       }
       if(document.getElementById("body-background")){ 
           var bodyBackground = ' background: ' + document.getElementById('body-background').innerHTML + ';';
       }
       if(document.getElementById("footer-background")){ 
           var footerBackground = ' background: ' + document.getElementById('footer-background').innerHTML + '!important;';
       }
       if(document.getElementById("footer-border")){ 
           var footerBorder = ' border-color: ' + document.getElementById('footer-border').innerHTML + '!important;';
       }

       var styles = '#content {' + contentBackground + contentBorder + contentColor + ' }';
       styles += ' #firstHeading {' + contentTitle + contentTBar + ' }';
       styles += ' hr {' + contentPBar + ' }';
       styles += ' #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 {' + contentTBar + contentColor + '}';
       styles += ' #contentSub {' + contentSub + ' }';
       styles += ' a {' + customLink + ' }';
       styles += ' a:visited {' + customLinkVisited + ' }';
       styles += ' a.new {' + customLinkNew + ' }';
       styles += ' a.external {' + customLink + ' }';
       styles += ' #catlinks {' + catlinksBackground + catlinksBorder + ' }';
       styles += ' .mw-body a.external {' + customLink + ' }';
       styles += ' #p-cactions li.selected {' + tabsSelectedBorder + ' }';
       styles += ' #p-cactions li {' + tabsBorder + ' }';
       styles += ' #p-cactions li a {' + customLink + tabsBackground + ' }';
       styles += ' #p-cactions li.selected a {' + tabsSelectedBackground + ' }';
       styles += ' .portlet .pBody {' + contentBackground + contentBorder + contentColor + ' }';
       styles += ' #p-cactions div.pBody { background: transparent; border-color: transparent; }';
       styles += ' #p-personal li a {' + customLink + ' }';
       styles += ' body {' + bodyBackground + ' }';
       styles += ' #footer {' + footerBackground + footerBorder + contentColor + ' }';

       window.onload = function() { appendStyle(styles) };

    }
 }, false);


 /** Internet Explorer bug fix **************************************************
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[User:Tom-]] from en.wikipedia.org
  */
 
 if (window.showModalDialog && document.compatMode && 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);
 }

 /** Tooltips and access keys ***************************************************
  *
  *  Description: Adds tooltips and access keys to links part of the MediaWiki
  *               interface.
  *  Maintainers: [[User:Gwicke]] and [[User:Simetrical]] from en.wikipedia.org
  */
 
 ta = new Object();
 ta['pt-userpage']           = new Array('.','My user page'); 
 ta['pt-anonuserpage']       = new Array('.','The user page for the ip you\'re editing as'); 
 ta['pt-mytalk']             = new Array('n','My talk page'); 
 ta['pt-anontalk']           = new Array('n','Discussion about edits from this IP address'); 
 ta['pt-preferences']        = new Array('-','My preferences'); 
 ta['pt-watchlist']          = new Array('l','The list of pages you\'re monitoring for changes.'); 
 ta['pt-mycontris']          = new Array('y','List of my contributions'); 
 ta['pt-login']              = new Array('o','Logging in is not required, but brings many benefits.'); 
 ta['pt-logout']             = new Array('','Log out of your user account'); 
 ta['pt-anonlogin']          = new Array('o','Logging in is not required, but brings many benefits.'); 
 ta['ca-talk']               = new Array('t','Discussion about the content page'); 
 ta['ca-edit']               = new Array('e','You can edit this page. Please use the preview button before saving.'); 
 ta['ca-addsection']         = new Array('+','Start a new discussion'); 
 ta['ca-viewsource']         = new Array('e','This page is protected. You can view its source.'); 
 ta['ca-history']            = new Array('h','Past versions of this page'); 
 ta['ca-protect']            = new Array('=','Protect this page'); 
 ta['ca-unprotect']          = new Array('=','Unprotect this page');
 ta['ca-delete']             = new Array('d','Delete this page'); 
 ta['ca-undelete']           = new Array('d','Restore the edits done to this page before it was deleted'); 
 ta['ca-move']               = new Array('m','Move this page'); 
 ta['ca-nomove']             = new Array('','You don\'t have the permissions to move this page'); 
 ta['ca-watch']              = new Array('w','Add this page to your watchlist'); 
 ta['ca-unwatch']            = new Array('w','Remove this page from your watchlist'); 
 ta['search']                = new Array('f','Search MafiaWiki'); 
 ta['p-logo']                = new Array('','Main page'); 
 ta['n-mainpage']            = new Array('z','Visit the main page'); 
 ta['n-Main-page']           = new Array('z','Visit the main page'); 
 ta['n-portal']              = new Array('','About the forums, what you can do, where to find things');
 ta['n-currentevents']       = new Array('','Find background information on current status'); 
 ta['n-recentchanges']       = new Array('r','List of recent changes in MafiaWiki'); 
 ta['n-randompage']          = new Array('x','Load a random page'); 
 ta['n-help']                = new Array('','The place to find out about how to use MafiaWiki'); 
 ta['n-contact']             = new Array('','How to contact Wikipedia');
 ta['n-sitesupport']         = new Array('','Support us'); 
 ta['t-whatlinkshere']       = new Array('j','List of all wiki pages that link here'); 
 ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page'); 
 ta['feed-rss']              = new Array('','RSS feed for this page'); 
 ta['feed-atom']             = new Array('','Atom feed for this page'); 
 ta['t-contributions']       = new Array('','View the list of contributions of this user'); 
 ta['t-emailuser']           = new Array('','Send a mail to this user'); 
 ta['t-upload']              = new Array('u','Upload images or other media files'); 
 ta['t-specialpages']        = new Array('q','List of all special pages');
 ta['t-print']               = new Array('','Printable version of this page');
 ta['t-permalink']           = new Array('','Permanent link to this version of the page');
 ta['t-cite']                = new Array('','Cite this MafiaWiki article');
 ta['ca-nstab-main']         = new Array('c','View the content page'); 
 ta['ca-nstab-user']         = new Array('c','View the user page'); 
 ta['ca-nstab-media']        = new Array('c','View the media page'); 
 ta['ca-article']            = new Array('','This is a special page; you can\'t edit the page itself.'); 
 ta['ca-nstab-project']      = new Array('c','View the project page'); 
 ta['ca-nstab-image']        = new Array('c','View the image page'); 
 ta['ca-nstab-mediawiki']    = new Array('c','View the system message'); 
 ta['ca-nstab-template']     = new Array('c','View the template'); 
 ta['ca-nstab-help']         = new Array('c','View the help page'); 
 ta['ca-nstab-category']     = new Array('c','View the category page');

 /** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */
 
 var autoCollapse = 2;
 var collapseCaption = "hide";
 var expandCaption = "show";
 
 function collapseTable( tableIndex )
 {
     var Button = document.getElementById( "collapseButton" + tableIndex );
     var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
     if ( !Table || !Button ) {
         return false;
     }
 
     var Rows = Table.getElementsByTagName( "tr" ); 
 
     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" ) ) {
             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.setAttribute( "id", "collapseButton" + tableIndex );
             ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
             ButtonLink.appendChild( ButtonText );
 
             Button.appendChild( document.createTextNode( "[" ) );
             Button.appendChild( ButtonLink );
             Button.appendChild( document.createTextNode( "]" ) );
 
             var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
             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 );

 /** Main Page layout fixes *********************************************************
  *
  *  Description:        Various layout fixes for the main page, including an
  *                      additional link to the complete list of languages available
  *                      and the renaming of the 'Article' to to 'Main Page'.
  *  Maintainers:        [[User:AzaToth]], [[User:R. Koot]] from en.wikipedia.org
  */
 
 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!
     }
 }
 
 /** Extra toolbar options ****************************************************** <nowiki>
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[User:MarkS]]?, [[User:Voice of All]], [[User:R. Koot]]
  */
 
 //This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
 // This is based on the original code on Wikipedia:Tools/Editing tools
 // To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]]
 
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
     "speedTip": "Redirect",
     "tagOpen": "#REDIRECT [[",
     "tagClose": "]]",
     "sampleText": "Insert text"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
     "speedTip": "Strike",
     "tagOpen": "<s>",
     "tagClose": "</s>",
     "sampleText": "Strike-through text"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
     "speedTip": "Line break",
     "tagOpen": "<br />",
     "tagClose": "",
     "sampleText": ""};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png",
     "speedTip": "Superscript",
     "tagOpen": "<sup>",
     "tagClose": "</sup>",
     "sampleText": "Superscript text"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png",
     "speedTip": "Subscript",
     "tagOpen": "<sub>",
     "tagClose": "</sub>",
     "sampleText": "Subscript text"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
     "speedTip": "Small",
     "tagOpen": "<small>",
     "tagClose": "</small>",
     "sampleText": "Small Text"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
     "speedTip": "Insert hidden Comment",
     "tagOpen": "<!-- ",
     "tagClose": " -->",
     "sampleText": "Comment"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://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": "http://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": "http://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"};
 }
 
 /*</nowiki>*/

 /** "Technical restrictions" title fix *****************************************
  *
  *  Description:
  *  Maintainers: [[User:Interiot]], [[User:Mets501]] on en.wikipedia.org
  */
 
 // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
 //	(for instance [[iPod]]'s title is updated.  <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki>
 //
 // The function looks for a banner like this: <nowiki>
 // <div id="RealTitleBanner">    <!-- div that gets hidden -->
 //   <span id="RealTitle">title</span>
 // </div>
 // </nowiki>An element with id=DisableRealTitle disables the function.
 var disableRealTitle = 0;		// users can disable this by making this true from their monobook.js
 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(/^ +/, "").replace(/ +$/, "");		// trim left and right spaces
 				verifyTitle = verifyTitle.replace(/_/g, " ");		// underscores to spaces
 				verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
 				isPasteable = (verifyTitle == wgTitle);
 
 				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";
 			}
 		}
 	} catch (e) {
 		/* Something went wrong. */
 	}
     });
 }
 
 //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]] on en.wikipedia.org
 addOnloadHook(function () {
   if (document.location.search.indexOf("undo=") != -1
   && document.getElementsByName('wpAutoSummary')[0]) {
     document.getElementsByName('wpAutoSummary')[0].value='';
   }
 })