MediaWiki:Common.js

3D Game Comparison - Game vs. game. No hype; just facts.™

(Difference between revisions)
Jump to: navigation, search
Revision as of 08:28, 8 September 2007 (edit)
Eep² (t|c)
more buttons
← Previous diff
Current revision (00:37, 12 March 2013) (edit) (undo)
Eep² (t|c)
Extra toolbar options - comment
 
(13 intermediate revisions not shown.)
Line 1: Line 1:
-/* Test if an element has a certain class **************************************+/*
 +==Test if an element has a certain class ==
* *
* Description: Uses regular expressions and caching for better performance. * Description: Uses regular expressions and caching for better performance.
Line 12: Line 13:
})(); })();
-/** Collapsible tables *********************************************************+/*
 +==Collapsible tables==
* *
* Description: Allows tables to be collapsed, showing only the header. See * Description: Allows tables to be collapsed, showing only the header. See
Line 94: Line 96:
addOnloadHook( createCollapseButtons ); addOnloadHook( createCollapseButtons );
-/** Dynamic Navigation Bars (experimental) *************************************+/*
 +==Dynamic Navigation Bars (experimental)==
* *
* Description: See [[w:Wikipedia:NavFrame]]. * Description: See [[w:Wikipedia:NavFrame]].
Line 202: Line 205:
addOnloadHook( createNavigationBarToggleButton ); addOnloadHook( createNavigationBarToggleButton );
-/** Extra toolbar options ****************************************************** <nowiki>+/*
 +==Extra toolbar options==
* *
* Description: UNDOCUMENTED * Description: UNDOCUMENTED
Line 214: Line 218:
if (mwCustomEditButtons) { if (mwCustomEditButtons) {
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/b/b4/Button_category03.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/3a/Button_headline3.png",
 + "speedTip": "level 3 headline (<h3>)",
 + "tagOpen": "\n===",
 + "tagClose": "===",
 + "sampleText": "text"};
 + 
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/6/6c/Button_see_also.png",
 + "speedTip": "see also",
 + "tagOpen": "==See also==\n* [[",
 + "tagClose": "]]",
 + "sampleText": "article"};
 + 
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png",
"speedTip": "category", "speedTip": "category",
"tagOpen": "[[cat:", "tagOpen": "[[cat:",
Line 223: Line 241:
"imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png", "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
"speedTip": "redirect", "speedTip": "redirect",
- "tagOpen": "#redirect [[",+ "tagOpen": "#redirect[[",
"tagClose": "]]", "tagClose": "]]",
- "sampleText": "article"};+ "sampleText": "{{PAGENAME}}"};
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/30/Tt_icon.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/30/Tt_icon.png",
"speedTip": "teletype (monospace) text", "speedTip": "teletype (monospace) text",
"tagOpen": "<tt>", "tagOpen": "<tt>",
Line 235: Line 253:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/3c/Button_pre.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/3c/Button_pre.png",
"speedTip": "preformatted text", "speedTip": "preformatted text",
"tagOpen": "<pre>", "tagOpen": "<pre>",
"tagClose": "</pre>", "tagClose": "</pre>",
"sampleText": "preformatted text"}; "sampleText": "preformatted text"};
- 
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
Line 257: Line 274:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/5f/Button_center.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_center.png",
"speedTip": "center text", "speedTip": "center text",
"tagOpen": '<div style="text-align: center;">', "tagOpen": '<div style="text-align: center;">',
Line 285: Line 302:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/5/56/Button_big.png",
 + "speedTip": "big text",
 + "tagOpen": "<big>",
 + "tagClose": "</big>",
 + "sampleText": "big text"};
 + 
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://upload.wikimedia.org/wikipedia/commons/f/fd/Button_blockquote.png",
"speedTip": "blockquote", "speedTip": "blockquote",
"tagOpen": "<blockquote>\n", "tagOpen": "<blockquote>\n",
Line 299: Line 323:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/1c/Button_advanced_image.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/1/1c/Button_advanced_image.png",
"speedTip": "image (advanced)", "speedTip": "image (advanced)",
"tagOpen": "[[Image:", "tagOpen": "[[Image:",
Line 320: Line 344:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/a/a4/TableStart.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/a/a4/TableStart.png",
"speedTip": "table start", "speedTip": "table start",
"tagOpen": '{|', "tagOpen": '{|',
Line 327: Line 351:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/4/4c/TableRow.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/4/4c/TableRow.png",
"speedTip": "table row", "speedTip": "table row",
"tagOpen": '|-', "tagOpen": '|-',
Line 334: Line 358:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/71/TableCell.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/71/TableCell.png",
"speedTip": "table cell", "speedTip": "table cell",
"tagOpen": '|', "tagOpen": '|',
Line 341: Line 365:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/0/06/TableEnd.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/0/06/TableEnd.png",
"speedTip": "table end", "speedTip": "table end",
"tagOpen": "", "tagOpen": "",
Line 348: Line 372:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/e/eb/Button_plantilla.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/e/eb/Button_plantilla.png",
"speedTip": "template", "speedTip": "template",
"tagOpen": "{{", "tagOpen": "{{",
Line 355: Line 379:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/35/Button_substitute.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/35/Button_substitute.png",
"speedTip": "substitute template", "speedTip": "substitute template",
"tagOpen": "{{subst:", "tagOpen": "{{subst:",
Line 362: Line 386:
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/ce/Button_no_include.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/c/ce/Button_no_include.png",
"speedTip": "noinclude", "speedTip": "noinclude",
"tagOpen": "<noinclude>", "tagOpen": "<noinclude>",
- "tagClose": "<\/noinclude>",+ "tagClose": "</noinclude>",
"sampleText": "text"}; "sampleText": "text"};
mwCustomEditButtons[mwCustomEditButtons.length] = { mwCustomEditButtons[mwCustomEditButtons.length] = {
- "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/79/Button_include.png",+ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/79/Button_include.png",
"speedTip": "includeonly", "speedTip": "includeonly",
"tagOpen": "<includeonly>", "tagOpen": "<includeonly>",
- "tagClose": "<\/includeonly>",+ "tagClose": "</includeonly>",
"sampleText": "text"}; "sampleText": "text"};
 +
 + mwCustomEditButtons[mwCustomEditButtons.length] = {
 + "imageFile": "http://images.wikia.com/central/images/7/74/Button_comment.png",
 + "speedTip": "Comment visible only for editors",
 + "tagOpen": "<!-- ",
 + "tagClose": " -->",
 + "sampleText": "Insert comment here"};
} }
-/*</nowiki>*/ 

Current revision

/*

Contents

Test if an element has a certain class

*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: w:User:Mike Dillon, w:User:R. Koot, w:User:SG
*/

var hasClass = (function () {

   var reCache = {};
   return function (element, className) {
       return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
   };

})();

/*

Collapsible tables

*
*  Description: Allows tables to be collapsed, showing only the header. See
*               w:Wikipedia:NavFrame.
*  Maintainers: w:User:R. Koot
*/

var autoCollapse = 2; var collapseCaption = "—"; var expandCaption = "+";

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];
           /* only add button and increment count if there is a header row to work with */
           if (Header) {
               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 );

/*

Dynamic Navigation Bars (experimental)

*
*  Description: See w:Wikipedia:NavFrame.
*  Maintainers: UNMAINTAINED
*/

// 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 );

/*

Extra toolbar options

*
*  Description: UNDOCUMENTED
*  Maintainers: w:User:MarkS?, w:User:Voice of All, w: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 w:Wikipedia:Tools/Editing tools // To disable this script, add mwCustomEditButtons = [];<code> to Special:Mypage/monobook.js

if (mwCustomEditButtons) {

 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_headline3.png",
"speedTip": "level 3 headline (

)", "tagOpen": "\n===", "tagClose": "===", "sampleText": "text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "Button_see_also.png", "speedTip": "see also", "tagOpen": "==See also==\n* [[", "tagClose": "]]", "sampleText": "article"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "Button_category03.png", "speedTip": "category", "tagOpen": "[[cat:", "tagClose": "]]", "sampleText": "category"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "Button_redirect.png", "speedTip": "redirect", "tagOpen": "#redirect[[", "tagClose": "]]", "sampleText": "Common.js"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "Tt_icon.png", "speedTip": "teletype (monospace) text", "tagOpen": "", "tagClose": "", "sampleText": "teletype text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "Button_pre.png", "speedTip": "preformatted text", "tagOpen": "
",
    "tagClose": "
",
   "sampleText": "preformatted text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_strike.png",
   "speedTip": "strikethrough text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "strikethrough text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_enter.png",
   "speedTip": "line break",
   "tagOpen": "
", "tagClose": "", "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_center.png",
   "speedTip": "center text",
"tagOpen": '
', "tagClose": "
",
   "sampleText": "centered text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_upper_letter.png",
   "speedTip": "superscript text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "superscript text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_lower_letter.png",
   "speedTip": "subscript text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "subscript text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_small.png",
   "speedTip": "small text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "small text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_big.png",
   "speedTip": "big text",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "big text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_blockquote.png",
   "speedTip": "blockquote",
"tagOpen": "
\n", "tagClose": "\n
",
   "sampleText": "block quote"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_hide_comment.png",
   "speedTip": "comment",
   "tagOpen": "",
   "sampleText": "comment"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_advanced_image.png",
   "speedTip": "image (advanced)",
   "tagOpen": "[[Image:",
   "tagClose": "|thumb|right|px|Caption]]",
   "sampleText": "image.ext"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_gallery.png",
   "speedTip": "gallery",
"tagOpen": "\n",
   "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_insert_table.png",
   "speedTip": "table",
   "tagOpen": '{| class=sortable\n|-\n',
   "tagClose": "\n|}",
   "sampleText": "!header 1 !!header 2 !!header 3\n|-\n| row 1, cell 1 || row 1, cell 2 || row 1, cell 3\n|-\n| row 2, cell 1 || row 2, cell 2 || row 2, cell 3"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableStart.png",
   "speedTip": "table start",
   "tagOpen": '{|',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableRow.png",
   "speedTip": "table row",
   "tagOpen": '|-',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableCell.png",
   "speedTip": "table cell",
   "tagOpen": '|',
   "tagClose": "",
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "TableEnd.png",
   "speedTip": "table end",
   "tagOpen": "",
   "tagClose": '|}',
   "sampleText": ""};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_plantilla.png",
   "speedTip": "template",
   "tagOpen": "{{",
   "tagClose": "}}",
   "sampleText": "template"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_substitute.png",
   "speedTip": "substitute template",
   "tagOpen": "{{subst:",
   "tagClose": "}}",
   "sampleText": "template"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_no_include.png",
   "speedTip": "noinclude",
   "tagOpen": "",
   "tagClose": "",
   "sampleText": "text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_include.png",
   "speedTip": "includeonly",
   "tagOpen": "",
   "sampleText": "text"};
 mwCustomEditButtons[mwCustomEditButtons.length] = {
   "imageFile": "Button_comment.png",
   "speedTip": "Comment visible only for editors",
   "tagOpen": "",
   "sampleText": "Insert comment here"};
}

Personal tools