Difference between revisions of "MediaWiki:Common.js"

From Hobowars Wiki
Jump to: navigation, search
m (removed depreciated code. hide toc still needs fixed)
m (Cube! js test ; will revert)
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
 +
/** Collapsible tables *********************************************************
 +
*
 +
*  Description: Allows tables to be collapsed, showing only the header. See
 +
*                        http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
 +
*  Maintainers: [http://en.wikipedia.org/wiki/User:R.Koot R.Koot]
 +
*/
 +
 +
window.console && console.log('common.js is being loaded');
 +
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.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.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
 +
 +
                        ButtonLink.style.color = Header.style.color;
 +
                        ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
 +
                        ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
 +
                        ButtonLink.appendChild( ButtonText );
 +
 +
                        Button.appendChild( document.createTextNode( '\u00a0' ) );
 +
                        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 );
 +
                } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {
 +
                        var element = NavigationBoxes[i];
 +
                        while ( element = element.parentNode ) {
 +
                                if ( hasClass( element, 'outercollapse' ) ) {
 +
                                        collapseTable( i );
 +
                                        break;
 +
                                }
 +
                        }
 +
                }
 +
        }
 +
}
 +
 +
addOnloadHook( createCollapseButtons );
 +
 +
/** Test if an element has a certain class **************************************
 +
*
 +
* Description: Uses regular expressions and caching for better performance.
 +
* Maintainers: [http://en.wikipedia.org/wiki/User:Mike&nbsp;Dillon Mike&nbsp;Dillon], [http://en.wikipedia.org/wiki/User:R.Koot R.Koot], [http://en.wikipedia.org/wiki/User:SG 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 );
 +
        };
 +
})();
  
 +
/* JavaScript for alternating-color table rows in sortable tables. */
  
/* JavasSript for hiding the ToC by default. Source: http://ryanalberts.com/418/hiding-table-of-contents-on-mediawiki/
+
var ts_alternate_row_colors = true;
 +
 
 +
/* JavasSript for hiding the ToC by default. Source: http://ryanalberts.com/418/hiding-table-of-contents-on-mediawiki/ */
  
 
function hideToc() {
 
function hideToc() {
Line 12: Line 121:
 
}
 
}
  
$( hideToc );
+
addOnloadHook( hideToc );
*/
+
  
  
Line 19: Line 127:
 
/* Section for custom edit buttons */
 
/* Section for custom edit buttons */
  
 
+
/* Remove Default Buttons */
 +
function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
 +
  if ((imageId=="mw-editbutton-italic") || (imageId=="mw-editbutton-link") || (imageId=="mw-editbutton-extlink") || (imageId=="mw-editbutton-headline") || (imageId=="mw-editbutton-image") || (imageId=="mw-editbutton-bold") || (imageId=="mw-editbutton-media") || (imageId=="mw-editbutton-math") || (imageId=="mw-editbutton-nowiki") || (imageId=="mw-editbutton-sig") || (imageId=="mw-editbutton-hr")) return;
 +
  mwEditButtons[mwEditButtons.length] =
 +
    {"imageId": imageId,
 +
    "imageFile": imageFile,
 +
    "speedTip": speedTip,
 +
    "tagOpen": tagOpen,
 +
    "tagClose": tagClose,
 +
    "sampleText": sampleText};
 +
  }
  
 
/* Bold Text Button */
 
/* Bold Text Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-bold',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_bold.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_bold.png",
 
     "speedTip": "Bold text",
 
     "speedTip": "Bold text",
 
     "tagOpen": "'''",
 
     "tagOpen": "'''",
 
     "tagClose": "'''",
 
     "tagClose": "'''",
     "sampleText": "Bold text"});
+
     "sampleText": "Bold text"};
 +
  }
  
 
    
 
    
 
/* Italic Button */
 
/* Italic Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-italic',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_italic.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_italic.png",
 
     "speedTip": "Italic text",
 
     "speedTip": "Italic text",
 
     "tagOpen": "''",
 
     "tagOpen": "''",
 
     "tagClose": "''",
 
     "tagClose": "''",
     "sampleText": "Italic text"});
+
     "sampleText": "Italic text"};
 +
  }
 
    
 
    
 
/* StrikeThrough Text Button */
 
/* StrikeThrough Text Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-strike',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_strike.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_strike.png",
 
     "speedTip": "StrikeThrough text",
 
     "speedTip": "StrikeThrough text",
 
     "tagOpen": "<s>",
 
     "tagOpen": "<s>",
 
     "tagClose": "</s>",
 
     "tagClose": "</s>",
     "sampleText": ""});
+
     "sampleText": ""};
 +
  }
 
    
 
    
 
/* Text Color Button */
 
/* Text Color Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-color',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_TextColor.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_TextColor.png",
 
     "speedTip": "TextColor",
 
     "speedTip": "TextColor",
 
     "tagOpen": "<span style='color: #000000'>",
 
     "tagOpen": "<span style='color: #000000'>",
 
     "tagClose": "</span>",
 
     "tagClose": "</span>",
     "sampleText": ""});
+
     "sampleText": ""};
 +
  }
 
    
 
    
 
/* Headline 1 Button */
 
/* Headline 1 Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-h1',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header01.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header01.png",
 
     "speedTip": "Headline1 text",
 
     "speedTip": "Headline1 text",
 
     "tagOpen": "= ",
 
     "tagOpen": "= ",
 
     "tagClose": " =",
 
     "tagClose": " =",
     "sampleText": "Headline1 text"});
+
     "sampleText": "Headline1 text"};
 +
  }
 
    
 
    
 
/* Headline 2 Button */
 
/* Headline 2 Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-h2',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header02.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header02.png",
 
     "speedTip": "Headline2 text",
 
     "speedTip": "Headline2 text",
 
     "tagOpen": "== ",
 
     "tagOpen": "== ",
 
     "tagClose": " ==",
 
     "tagClose": " ==",
     "sampleText": "Headline2 text"});
+
     "sampleText": "Headline2 text"};
 +
  }
 
    
 
    
 
/* Headline 3 Button */
 
/* Headline 3 Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-h3',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header03.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header03.png",
 
     "speedTip": "Headline3 text",
 
     "speedTip": "Headline3 text",
 
     "tagOpen": "=== ",
 
     "tagOpen": "=== ",
 
     "tagClose": " ===",
 
     "tagClose": " ===",
     "sampleText": "Headline3 text"});
+
     "sampleText": "Headline3 text"};
 +
  }
 
    
 
    
 
/* Headline 4 Button */
 
/* Headline 4 Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-h4',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header04.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header04.png",
 
     "speedTip": "Headline4 text",
 
     "speedTip": "Headline4 text",
 
     "tagOpen": "==== ",
 
     "tagOpen": "==== ",
 
     "tagClose": " ====",
 
     "tagClose": " ====",
     "sampleText": "Headline4 text"});
+
     "sampleText": "Headline4 text"};
 +
  }
 
    
 
    
 
/* Internal Link Button */
 
/* Internal Link Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-wikilink',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_link.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_link.png",
 
     "speedTip": "Internal Link",
 
     "speedTip": "Internal Link",
 
     "tagOpen": "[[",
 
     "tagOpen": "[[",
 
     "tagClose": "]]",
 
     "tagClose": "]]",
     "sampleText": "Link title"});
+
     "sampleText": "Link title"};
 +
  }
 
    
 
    
 
/* External Link Button */
 
/* External Link Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-url',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_extlink.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_extlink.png",
 
     "speedTip": "External Link(remember http:// prefix)",
 
     "speedTip": "External Link(remember http:// prefix)",
 
     "tagOpen": "[",
 
     "tagOpen": "[",
 
     "tagClose": "]",
 
     "tagClose": "]",
     "sampleText": "http://www.example.com link title"});
+
     "sampleText": "http://www.example.com link title"};
 +
  }
 
    
 
    
 
/* Embeded File Button */
 
/* Embeded File Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-embed',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_image.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_image.png",
 
     "speedTip": "Embeded File",
 
     "speedTip": "Embeded File",
 
     "tagOpen": "[[File:",
 
     "tagOpen": "[[File:",
 
     "tagClose": "]]",
 
     "tagClose": "]]",
     "sampleText": "Example.jpg"});
+
     "sampleText": "Example.jpg"};
 +
  }
 
    
 
    
 
/* File Link Button */
 
/* File Link Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-media',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_media.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_media.png",
 
     "speedTip": "File Link",
 
     "speedTip": "File Link",
 
     "tagOpen": "[[Media:",
 
     "tagOpen": "[[Media:",
 
     "tagClose": "]]",
 
     "tagClose": "]]",
     "sampleText": "Example.ogg"});
+
     "sampleText": "Example.ogg"};
 +
  }
 
    
 
    
 
/* Math Button */
 
/* Math Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-math',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_math.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_math.png",
 
     "speedTip": "Mathematical formula (LaTeX)",
 
     "speedTip": "Mathematical formula (LaTeX)",
 
     "tagOpen": "<math>",
 
     "tagOpen": "<math>",
 
     "tagClose": "</math>",
 
     "tagClose": "</math>",
     "sampleText": "Insert formula here"});
+
     "sampleText": "Insert formula here"};
 +
  }
 
    
 
    
 
/* NoWiki Formatting Button */
 
/* NoWiki Formatting Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-nowiki',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_nowiki.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_nowiki.png",
 
     "speedTip": "Ignore wiki formatting",
 
     "speedTip": "Ignore wiki formatting",
 
     "tagOpen": "<nowiki>",
 
     "tagOpen": "<nowiki>",
 
     "tagClose": "</nowiki>",
 
     "tagClose": "</nowiki>",
     "sampleText": "Insert non-formatted text here"});
+
     "sampleText": "Insert non-formatted text here"};
 +
  }
 
    
 
    
 
/* Horizontal Line Button */
 
/* Horizontal Line Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-hr',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_hr.png",
 
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_hr.png",
 
     "speedTip": "Horizontal line (use sparingly)",
 
     "speedTip": "Horizontal line (use sparingly)",
 
     "tagOpen": "----",
 
     "tagOpen": "----",
 
     "tagClose": "",
 
     "tagClose": "",
     "sampleText": ""});
+
     "sampleText": ""};
 +
  }
 
    
 
    
 
/* Line Break Button */
 
/* Line Break Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-break',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_enter.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_enter.png",
 
     "speedTip": "LineBreak",
 
     "speedTip": "LineBreak",
 
     "tagOpen": "<br>",
 
     "tagOpen": "<br>",
 
     "tagClose": "",
 
     "tagClose": "",
     "sampleText": ""});
+
     "sampleText": ""};
 +
  }
 
    
 
    
 
/* Double Line Right Arrow Button */  
 
/* Double Line Right Arrow Button */  
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-doubleline',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_arrow.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_arrow.png",
 
     "speedTip": "DBLArrow",
 
     "speedTip": "DBLArrow",
 
     "tagOpen": "⇒",
 
     "tagOpen": "⇒",
 
     "tagClose": " ",
 
     "tagClose": " ",
     "sampleText": ""});
+
     "sampleText": ""};
 +
  }
  
 
  /* Redirect Button */
 
  /* Redirect Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-redirect',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_redirect.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_redirect.png",
 
     "speedTip": "Redirect article",
 
     "speedTip": "Redirect article",
 
     "tagOpen": "#Redirect[[",
 
     "tagOpen": "#Redirect[[",
 
     "tagClose": "]]",
 
     "tagClose": "]]",
     "sampleText": "Target page name"});
+
     "sampleText": "Target page name"};
 +
  }
  
 
/* Category Button */
 
/* Category Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-catagory',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_category.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_category.png",
 
     "speedTip": "Add a category",
 
     "speedTip": "Add a category",
 
     "tagOpen": "[[Category:",
 
     "tagOpen": "[[Category:",
 
     "tagClose": "]]",
 
     "tagClose": "]]",
     "sampleText": "Category Name"});
+
     "sampleText": "Category Name"};
 +
  }
  
 
/* Comment Button */
 
/* Comment Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-comment',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_comment.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_comment.png",
 
     "speedTip": "Add a comment (visible only for editors)",
 
     "speedTip": "Add a comment (visible only for editors)",
 
     "tagOpen": "<!-- ",
 
     "tagOpen": "<!-- ",
 
     "tagClose": " -->",
 
     "tagClose": " -->",
     "sampleText": "Insert comment here"});  
+
     "sampleText": "Insert comment here"};
 +
  }
 
    
 
    
 
   /* Food Item Template Button */
 
   /* Food Item Template Button */
mw.toolbar.addButton({
+
if (mwCustomEditButtons) {
imageId: 'mw-custombutton-food',
+
  mwCustomEditButtons[mwCustomEditButtons.length] = {
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_food.png",
 
     "imageFile": "http://www.hobowars.com/wiki/images/Button_food.png",
 
     "speedTip": "Food Item Template",
 
     "speedTip": "Food Item Template",
 
     "tagOpen": " {{",
 
     "tagOpen": " {{",
 
     "tagClose": "Category:Incomplete]]",
 
     "tagClose": "Category:Incomplete]]",
     "sampleText": "Info Table" + "\n|name= FOOD_NAME" + "\n|image= IMAGE_URL" + "\n|id= ITEM_ID" + "\n|cat= CATEGORY" + "\n|subcat= SUBCATEGORY" + "\n}}" + "\nA \'\'\'FOOD_NAME\'\'\' is a [[Food|food item]] that gives you \'\'\'0T\'\'\' and the \'\'\'\'\'[[Insert Effect]]\'\'\'\'\' [[Status Effects|status effect]] upon consumption." + "\n__NOTOC__" + "\n==List of Locations and Costs==" + "\n===HoboWars and HoboWars2===" + "\n====Hoburbia====" + "\n* [[LOCATION]] ⇒ SECONDARY_LOCATION" + "\n" + "\n==Cookbook==" + "\n*Created by combining [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Separates into [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Not an ingredient" + "\n" + "\n [["});
+
     "sampleText": "Info Table" + "\n|name= FOOD_NAME" + "\n|image= IMAGE_URL" + "\n|id= ITEM_ID" + "\n|cat= CATEGORY" + "\n|subcat= SUBCATEGORY" + "\n}}" + "\nA \'\'\'FOOD_NAME\'\'\' is a [[Food|food item]] that gives you \'\'\'0T\'\'\' and the \'\'\'\'\'[[Insert Effect]]\'\'\'\'\' [[Status Effects|status effect]] upon consumption." + "\n__NOTOC__" + "\n==List of Locations and Costs==" + "\n===HoboWars and HoboWars2===" + "\n====Hoburbia====" + "\n* [[LOCATION]] ⇒ SECONDARY_LOCATION" + "\n" + "\n==Cookbook==" + "\n*Created by combining [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Separates into [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Not an ingredient" + "\n" + "\n [["};
 +
  }

Revision as of 05:57, 19 July 2014

/* Any JavaScript here will be loaded for all users on every page load. */
/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *                         http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
 *  Maintainers: [http://en.wikipedia.org/wiki/User:R.Koot R.Koot]
 */
 
window.console && console.log('common.js is being loaded');
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.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.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
 
                        ButtonLink.style.color = Header.style.color;
                        ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
                        ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
                        ButtonLink.appendChild( ButtonText );
 
                        Button.appendChild( document.createTextNode( '\u00a0' ) );
                        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 );
                } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {
                        var element = NavigationBoxes[i];
                        while ( element = element.parentNode ) {
                                if ( hasClass( element, 'outercollapse' ) ) {
                                        collapseTable( i );
                                        break;
                                }
                        }
                }
        }
}
 
addOnloadHook( createCollapseButtons );
 
/** Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: [http://en.wikipedia.org/wiki/User:Mike&nbsp;Dillon Mike&nbsp;Dillon], [http://en.wikipedia.org/wiki/User:R.Koot R.Koot], [http://en.wikipedia.org/wiki/User:SG 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 );
        };
})();

/* JavaScript for alternating-color table rows in sortable tables. */

var ts_alternate_row_colors = true;

/* JavasSript for hiding the ToC by default. Source: http://ryanalberts.com/418/hiding-table-of-contents-on-mediawiki/ */

function hideToc() {
        var toc = document.getElementById('toc').getElementsByTagName('ul')[0];
        var toggleLink = document.getElementById('togglelink');
        changeText(toggleLink, tocShowText);
        toc.style.display = 'none';
        document.cookie = "hidetoc=1";
}

addOnloadHook( hideToc );



/* Section for custom edit buttons */

/* Remove Default Buttons */
 function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
  if ((imageId=="mw-editbutton-italic") || (imageId=="mw-editbutton-link") || (imageId=="mw-editbutton-extlink") || (imageId=="mw-editbutton-headline") || (imageId=="mw-editbutton-image") || (imageId=="mw-editbutton-bold") || (imageId=="mw-editbutton-media") || (imageId=="mw-editbutton-math") || (imageId=="mw-editbutton-nowiki") || (imageId=="mw-editbutton-sig") || (imageId=="mw-editbutton-hr")) return;
   mwEditButtons[mwEditButtons.length] =
     {"imageId": imageId,
     "imageFile": imageFile,
     "speedTip": speedTip,
     "tagOpen": tagOpen,
     "tagClose": tagClose,
     "sampleText": sampleText};
  }

/* Bold Text Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_bold.png",
     "speedTip": "Bold text",
     "tagOpen": "'''",
     "tagClose": "'''",
     "sampleText": "Bold text"};
  }

  
/* Italic Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_italic.png",
     "speedTip": "Italic text",
     "tagOpen": "''",
     "tagClose": "''",
     "sampleText": "Italic text"};
  }
  
/* StrikeThrough Text Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_strike.png",
     "speedTip": "StrikeThrough text",
     "tagOpen": "<s>",
     "tagClose": "</s>",
     "sampleText": ""};
  }
  
/* Text Color Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_TextColor.png",
     "speedTip": "TextColor",
     "tagOpen": "<span style='color: #000000'>",
     "tagClose": "</span>",
     "sampleText": ""};
  }
  
/* Headline 1 Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header01.png",
     "speedTip": "Headline1 text",
     "tagOpen": "= ",
     "tagClose": " =",
     "sampleText": "Headline1 text"};
  }
  
/* Headline 2 Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header02.png",
     "speedTip": "Headline2 text",
     "tagOpen": "== ",
     "tagClose": " ==",
     "sampleText": "Headline2 text"};
  }
  
/* Headline 3 Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header03.png",
     "speedTip": "Headline3 text",
     "tagOpen": "=== ",
     "tagClose": " ===",
     "sampleText": "Headline3 text"};
  }
  
/* Headline 4 Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_header04.png",
     "speedTip": "Headline4 text",
     "tagOpen": "==== ",
     "tagClose": " ====",
     "sampleText": "Headline4 text"};
  }
  
/* Internal Link Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_link.png",
     "speedTip": "Internal Link",
     "tagOpen": "[[",
     "tagClose": "]]",
     "sampleText": "Link title"};
  }
  
/* External Link Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_extlink.png",
     "speedTip": "External Link(remember http:// prefix)",
     "tagOpen": "[",
     "tagClose": "]",
     "sampleText": "http://www.example.com link title"};
  }
  
/* Embeded File Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_image.png",
     "speedTip": "Embeded File",
     "tagOpen": "[[File:",
     "tagClose": "]]",
     "sampleText": "Example.jpg"};
  }
  
/* File Link Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_media.png",
     "speedTip": "File Link",
     "tagOpen": "[[Media:",
     "tagClose": "]]",
     "sampleText": "Example.ogg"};
  }
  
/* Math Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_math.png",
     "speedTip": "Mathematical formula (LaTeX)",
     "tagOpen": "<math>",
     "tagClose": "</math>",
     "sampleText": "Insert formula here"};
  }
  
/* NoWiki Formatting Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_nowiki.png",
     "speedTip": "Ignore wiki formatting",
     "tagOpen": "<nowiki>",
     "tagClose": "</nowiki>",
     "sampleText": "Insert non-formatted text here"};
  }
  
/* Horizontal Line Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/skins/common/images/button_hr.png",
     "speedTip": "Horizontal line (use sparingly)",
     "tagOpen": "----",
     "tagClose": "",
     "sampleText": ""};
  }
  
/* Line Break Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_enter.png",
     "speedTip": "LineBreak",
     "tagOpen": "<br>",
     "tagClose": "",
     "sampleText": ""};
  }
  
/* Double Line Right Arrow Button */ 
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_arrow.png",
     "speedTip": "DBLArrow",
     "tagOpen": "⇒",
     "tagClose": " ",
     "sampleText": ""};
  }

 /* Redirect Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_redirect.png",
     "speedTip": "Redirect article",
     "tagOpen": "#Redirect[[",
     "tagClose": "]]",
     "sampleText": "Target page name"};
  }

/* Category Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_category.png",
     "speedTip": "Add a category",
     "tagOpen": "[[Category:",
     "tagClose": "]]",
     "sampleText": "Category Name"};
  }

/* Comment Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_comment.png",
     "speedTip": "Add a comment (visible only for editors)",
     "tagOpen": "<!-- ",
     "tagClose": " -->",
     "sampleText": "Insert comment here"};
  } 
  
  /* Food Item Template Button */
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.hobowars.com/wiki/images/Button_food.png",
     "speedTip": "Food Item Template",
     "tagOpen": " {{",
     "tagClose": "Category:Incomplete]]",
     "sampleText": "Info Table" + "\n|name= FOOD_NAME" + "\n|image= IMAGE_URL" + "\n|id= ITEM_ID" + "\n|cat= CATEGORY" + "\n|subcat= SUBCATEGORY" + "\n}}" + "\nA \'\'\'FOOD_NAME\'\'\' is a [[Food|food item]] that gives you \'\'\'0T\'\'\' and the \'\'\'\'\'[[Insert Effect]]\'\'\'\'\' [[Status Effects|status effect]] upon consumption." + "\n__NOTOC__" + "\n==List of Locations and Costs==" + "\n===HoboWars and HoboWars2===" + "\n====Hoburbia====" + "\n* [[LOCATION]] ⇒ SECONDARY_LOCATION" + "\n" + "\n==Cookbook==" + "\n*Created by combining [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Separates into [[INGREDIENT_ONE]] and [[INGREDIENT_TWO]]" + "\n*Not an ingredient" + "\n" + "\n [["};
  }