MediaWiki:Common.js: Difference between revisions

From Opasnet
Jump to navigation Jump to search
No edit summary
(argument params updated)
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/**
 
* Collapsible tables
/** Collapsible tables *********************************************************
*
  *
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
  * Description: Allows tables to be collapsed, showing only the header. See
* @maintainer [[User:R. Koot]] (on Wikipedia)
  *              [[Wikipedia:NavFrame]].
*/
  * Maintainer on Wikipedia: [[User:R. Koot]]
  */
   
   
var autoCollapse = 2;
var autoCollapse = 2;
var collapseCaption = "hide";
var collapseCaption = 'hide';
var expandCaption = "show";
var expandCaption = 'show';
   
   
function rndm() {
var random = Math.floor(Math.random() * 10000) + 1;
if (random < 10) return "000" + random;
else if (random < 100) return "00" + random;
else if (random < 1000) return "0" + random;
else return "" + random;
}
function hasClass( element, className ) {
function hasClass( element, className ) {
  var Classes = element.className.split( " " );
var Classes = element.className.split( " " );
  for ( var i = 0; i < Classes.length; i++ ) {
for ( var i = 0; i < Classes.length; i++ ) {
    if ( Classes[i] == className ) {
if ( Classes[i] == className ) {
      return ( true );
return true;
    }
}
  }
}
  return ( false );
return false;
}
}
   
   
function collapseTable( tableIndex )
function collapseTable( tableIndex ) {
{
var i;
    var Button = document.getElementById( "collapseButton" + tableIndex );
var Button = document.getElementById( 'collapseButton' + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
   
   
    if ( !Table || !Button ) {
if ( !Table || !Button ) {
        return false;
return false;
    }
}
   
   
    var Rows = Table.getElementsByTagName( "tr" );  
var Rows = Table.getElementsByTagName( 'tr' );
   
   
    if ( Button.firstChild.data == collapseCaption ) {
if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
Rows[i].style.display = 'none';
        }
}
        Button.firstChild.data = expandCaption;
Button.firstChild.data = expandCaption;
    } else {
} else {
        for ( var i = 1; i < Rows.length; i++ ) {
for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
Rows[i].style.display = Rows[0].style.display;
        }
}
        Button.firstChild.data = collapseCaption;
Button.firstChild.data = collapseCaption;
    }
}
}
}
   
   
function createCollapseButtons()
function createCollapseButtons() {
{
var i;
    var tableIndex = 0;
var tableIndex = 0;
    var NavigationBoxes = new Object();
var NavigationBoxes = {};
    var Tables = document.getElementsByTagName( "table" );
var Tables = document.getElementsByTagName( 'table' );
   
   
    for ( var i = 0; i < Tables.length; i++ ) {
for ( i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {
if ( hasClass( Tables[i], 'collapsible' ) ) {
            NavigationBoxes[ tableIndex ] = Tables[i];
NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
   
   
            var Button     = document.createElement( "span" );
var Button = document.createElement( 'span' );
            var ButtonLink = document.createElement( "a" );
var ButtonLink = document.createElement( 'a' );
            var ButtonText = document.createTextNode( collapseCaption );
var ButtonText = document.createTextNode( collapseCaption );
   
   
            Button.style.styleFloat = "right";
Button.style.styleFloat = 'right';
            Button.style.cssFloat = "right";
Button.style.cssFloat = 'right';
            Button.style.fontWeight = "normal";
Button.style.fontWeight = 'normal';
            Button.style.textAlign = "right";
Button.style.textAlign = 'right';
            Button.style.width = "6em";
Button.style.width = '6em';
   
   
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.setAttribute( 'href', 'javascript:collapseTable(' + tableIndex + ');' );
            ButtonLink.appendChild( ButtonText );
ButtonLink.appendChild( ButtonText );
   
   
            Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
Button.appendChild( document.createTextNode( ']' ) );
   
   
            var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
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 */
/* only add button and increment count if there is a header row to work with */
            if (Header) {
if (Header) {
                Header.insertBefore( Button, Header.childNodes[0] );
Header.insertBefore( Button, Header.childNodes[0] );
                tableIndex++;
tableIndex++;
            }
}
        }
}
    }
}
   
   
    for ( var i = 0; i < tableIndex; i++ ) {
for ( i = 0; i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {
            collapseTable( i );
collapseTable( i );
        }
}
    }
}
}
}
   
   
addOnloadHook( createCollapseButtons );
$( createCollapseButtons );
 
var customizeToolbar = function () {


function addLoadEvent(func)  
$('#wpTextbox1').wikiEditor('addToToolbar', {
{
section: 'advanced',
  if (window.addEventListener)  
group: 'format',
    window.addEventListener("load", func, false);
tools: {
  else if (window.attachEvent)
"strikethrough": {
    window.attachEvent("onload", func);
label: 'Strike',
}
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png',
action: {
type: 'encapsulate',
options: {
pre: "<s>",
post: "</s>"
}
}
}
}
});
 
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'advanced',
group: 'format',
tools: {
"hline": {
label: 'Horizontal line',  
type: 'button',  
icon: '//bits.wikimedia.org/skins-1.5/common/images/button_hr.png',
action: {
type: 'encapsulate',
options: {
pre: "----",  
ownline: true
}
}
}
}
});


// ============================================================
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
// BEGIN Dynamic Navigation Bars (experimantal)
section: 'advanced',  
group: 'format',  
// set up the words in your language
tools: {
var NavigationBarHide = '[ Hide ]';
"underline": {
var NavigationBarShow = '[ Show ]';
label: 'Add resolution link to a discussion',
type: 'button',
// set up max count of Navigation Bars on page,
icon: '//en.opasnet.org/en-opwiki/images/7/76/Reslink.png',
// if there are more, all will be hidden
action: {
// NavigationBarShowDefault = 0; // all bars will be hidden
type: 'encapsulate',
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
options: {
var NavigationBarShowDefault = 0;
pre: "{{reslink|",
peri: "Add id of the discussion",
post: "}}"
// 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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == '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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == '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
    for(
            var i=0;
            NavFrame = document.getElementsByTagName("div")[i];
            i++
        ) {
        // if found a navigation bar
        if (NavFrame.className == "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(NavigationBarShow); //This has been changed from NavigationBarHide
            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 (NavFrame.childNodes[j].className == "NavHead") {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1;
                i<=indexNavigationBar;
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
}
addLoadEvent(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
// ============================================================


$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
section: 'advanced',
group: 'format',
tools: {
"center": {
label: 'Add discussion',
type: 'button',
icon: '//en.opasnet.org/en-opwiki/images/8/82/Discussion.png',
action: {
type: 'encapsulate',
options: {
pre: "{{discussion|id=disc" + rndm() + "|type=fact|openingStatement=",
peri: "Add opening statement here and then other parameters",
post: "|closingStatement=|title=|Resolved=|Argumentation= }}"
}
}
}
}
});


/**
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
*
section: 'advanced',
* Generate an array using Mediawiki syntax
group: 'format',
*
tools: {
* @author: fr:user:dake
"attack": {
* Editor: juha villman
label: 'Attack',
* @version: 0.1
type: 'button',
*/
icon: '//en.opasnet.org/en-opwiki/images/0/00/Attack.png',
action: {
function generateTableau(nbCol, nbRow, border, styleHeader)
type: 'encapsulate',  
{
options: {
var code = "\n";
pre: "{{argument|relat1=attack|id=arg" + rndm() + "|type=truth|content=",
if (styleHeader==1) {
peri: "Enter your attacking argument here",
code += '{|'+'{'+'{prettytable}}\n';
post: "|sign=--~~"+"~~}}"
} else {
}
code += '{| border="' + border + '"\n';
}
code += '|+ Table topic\n';
}
}
for (var i=0; i<nbCol; i++) code += '! Column title ' + i + '\n';
for (var j=0; j<nbRow; j++) {
if ((j+1)%2==0) {
code += '|-----\n';
} else {
code += '|-----\n';
}
}
});
for (var i=0; i<nbCol; i++) code += '| element\n';
}
code += '|}';
insertTags('','', code);
}


/**
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
*
section: 'advanced',  
* Open a popup with parameters to generate an array.
group: 'format',  
* The number of rows/columns can be modified.
tools: {
*
"defend": {
* @author: fr:user:dake
label: 'Defend',
* editor: juha villman
type: 'button',  
* @version: 0.1
icon: '//en.opasnet.org/en-opwiki/images/0/0a/Defend.png',  
*/
action: {
type: 'encapsulate',
function popupTableau()
options: {
{
pre: "{{argument|relat1=defense|id=arg" + rndm() + "|type=truth|content=",
  var popup = window.open('','name','height=270,width=250');
peri: "Enter your defending argument here",
 
post: "|sign=--~~"+"~~}}"  
  javaCode =  '<script type="text\/javascript">function insertCode(){';
}
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
}
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
}
  javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); ';
}
  javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ';
});
  javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader); ';
  javaCode += '}<\/script>';
 
  popup.document.write('<html><head><title>Table generator</title>');
  popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
  popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
  popup.document.write(javaCode);
  popup.document.write('</head><body background="http://heande.pyrkilo.fi/heande/skins/monobook/headbg.jpg">');
  popup.document.write('<p><B><center>Table parameters</center> </B> </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('<table><tr><td>Number of rows : <td><input type="text" name="inputRow" value="3" size="4"><p>');
  popup.document.write('</tr><tr><td>Number of columns : <td><input type="text" name="inputCol" value="3" size="4"><p>');
  popup.document.write('</tr><tr><td>Size of border : <td><input type="text" name="inputBorder" value="1" size="4"><p>');
  popup.document.write('</tr><tr><td>Use PrettyTable-style : <td><input type="checkbox" name="inputHeader" checked="1" size="4"><p>');
  popup.document.write('</tr></table></form">');
  popup.document.write('<p><a href="javascript:insertCode()"> Insert table code!</a></p>');
  popup.document.write('<p><a href="javascript:self.close()"> Close</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}


//============================================================
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
// Additional button for edit-toolbar
section: 'advanced',
//============================================================
group: 'format',
tools: {
"comment": {
label: 'Comment',
type: 'button',
icon: '//en.opasnet.org/en-opwiki/images/d/db/Comment.png',
action: {
type: 'encapsulate',
options: {
pre: "{{argument|relat1=comment|id=arg" + rndm() + "|type=truth|content=",
peri: "Enter your comment here",
post: "|sign=--~~"+"~~}}"
}
}
}
}
});


//Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText)
{
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": imageFile,
  "speedTip": speedTip,
  "tagOpen": tagOpen,
  "tagClose": tagClose,
  "sampleText": sampleText};
}
}
addCustomButton('http://www.opasnet.org/pictures/discussion.png','Add new discussion',"{{discussion\n|Statements= ","\n|Resolution= Under discussion (to be changed when a conclusion is found)\n|Argumentation =\nAdd argumentation using attack-, defend- and comment buttons\n}"+"}",'Add topic of discussion');
addCustomButton('http://www.opasnet.org/pictures/attack.png','Attack',"{{attack|# |","|--~~"+"~~}"+"}",'Enter your attacking argumentation between these two bars');
addCustomButton('http://www.opasnet.org/pictures/defend.png','Defend',"{{defend|# |","|--~~"+"~~}"+"}",'Enter your defending argumentation between these two bars');
addCustomButton('http://www.opasnet.org/pictures/comment.png','Comment',"{{comment|# |","|--~~"+"~~}"+"}",'Enter your comment between these two bars');
addCustomButton('http://www.opasnet.org/pictures/variable.png','Variable',"{{variable|moderator=","}"+"}"+"\n '''Boxes with dashed borders''' contain brief guidance text for completing the entries for new variables.\n\n== Scope ==\n\n This includes a verbal definition of the spatial, temporal, and other limits\n (system boundaries) of the variable. The scope is defined according to the use\n purpose of the assessment(s) that the variable belongs to.\n\n== Definition ==\n\n=== Data ===\n\n Description of the data used for obtaining the value of the variable\n (e.g. measurement data; mathematical method and its parameters).\n Please include references (preferably using the ''<nowiki><ref></ref></nowiki>'' tags)\n and links to original data, as appropriate.\n\n=== Causality ===\n\n List of upstream variables.\n The variables can be listed used descriptive (free-format) names or unambiguous identifiers\n (e.g. [[Analytica]] IDs).\n\n=== Unit ===\n\n Unit in which the result is expressed.\n\n=== Formula ===\n\n Algebra or other explicit methods if possible\n (e.g. [[Analytica]] code between the <nowiki>''<anacode></anacode>''</nowiki> delimiters).\n\n== Result ==\n\n If possible, a numerical expression or distribution.\n\n==See also==\n\n Links to relevant information that does not belong to ''Definition''.\n\n==References==\n\n Will appear here automatically, if cited above using the ''<nowiki><ref></ref></nowiki>'' tags.\n Additional references can also be listed here.\n\n<references/>","Username or leave blank");
addCustomButton('http://www.opasnet.org/pictures/disclink.png','Link to discussion',"{{disclink|","}"+"}",'Title of discussion');
addCustomButton('http://www.opasnet.org/pictures/underline.png','Underline',"<u>","</u>",'underlined text');
addCustomButton('http://www.opasnet.org/pictures/centerbut.png','Center',"<center>","</center>",'centered text');
addCustomButton('http://www.opasnet.org/pictures/super.png','Superscript',"<sup>","</sup>",'superscript text');
addCustomButton('http://www.opasnet.org/pictures/sub.png','Subscript',"<sub>","</sub>",'subscript text');


//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
function marque_tab()
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
{
mw.loader.using( 'user.options' ).then( function () {
var toolbar = document.getElementById('toolbar');
// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
if (!toolbar) return false;
if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
$.when(
var textbox = document.getElementById('wpTextbox1');
mw.loader.using( 'ext.wikiEditor.toolbar' ), $.ready
if (!textbox) return false;
).then( customizeToolbar );
}
if (!document.selection && textbox.selectionStart == null)
} );
return false;
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
image.border = 0;
image.alt = 'Table';
image.title = 'Table';
image.style.cursor = "pointer";
image.onclick = function() {
  popupTableau();
  return false;
}
toolbar.appendChild(image);
}
}
addOnloadHook(marque_tab);

Latest revision as of 13:49, 1 February 2019

/**
 * Collapsible tables
 *
 * Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
 * @maintainer [[User:R. Koot]] (on Wikipedia)
 */
 
var autoCollapse = 2;
var collapseCaption = 'hide';
var expandCaption = 'show';
 
function rndm() {
	var random = Math.floor(Math.random() * 10000) + 1;
	if (random < 10) return "000" + random;
	else if (random < 100) return "00" + random;
	else if (random < 1000) return "0" + random;
	else return "" + random;
}

function hasClass( element, className ) {
	var Classes = element.className.split( " " );
	for ( var i = 0; i < Classes.length; i++ ) {
		if ( Classes[i] == className ) {
			return true;
		}
	}
	return false;
}
 
function collapseTable( tableIndex ) {
	var i;
	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 ( i = 1; i < Rows.length; i++ ) {
			Rows[i].style.display = 'none';
		}
		Button.firstChild.data = expandCaption;
	} else {
		for ( i = 1; i < Rows.length; i++ ) {
			Rows[i].style.display = Rows[0].style.display;
		}
		Button.firstChild.data = collapseCaption;
	}
}
 
function createCollapseButtons() {
	var i;
	var tableIndex = 0;
	var NavigationBoxes = {};
	var Tables = document.getElementsByTagName( 'table' );
 
	for ( 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 ( i = 0; i < tableIndex; i++ ) {
		if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {
			collapseTable( i );
		}
	}
}
 
$( createCollapseButtons );

var customizeToolbar = function () {

	$('#wpTextbox1').wikiEditor('addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"strikethrough": {
				label: 'Strike', 
				type: 'button', 
				icon: '//upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "<s>", 
						post: "</s>" 
					}
				}
			}
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"hline": {
				label: 'Horizontal line', 
				type: 'button', 
				icon: '//bits.wikimedia.org/skins-1.5/common/images/button_hr.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "----", 
						ownline: true 
					}
				}
			}
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"underline": {
				label: 'Add resolution link to a discussion', 
				type: 'button', 
				icon: '//en.opasnet.org/en-opwiki/images/7/76/Reslink.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "{{reslink|",
						peri: "Add id of the discussion",
						post: "}}" 
					}
				}
			} 
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"center": {
				label: 'Add discussion', 
				type: 'button', 
				icon: '//en.opasnet.org/en-opwiki/images/8/82/Discussion.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "{{discussion|id=disc" + rndm() + "|type=fact|openingStatement=",
						peri: "Add opening statement here and then other parameters",
						post: "|closingStatement=|title=|Resolved=|Argumentation= }}" 
					}
				}
			}
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"attack": {
				label: 'Attack', 
				type: 'button', 
				icon: '//en.opasnet.org/en-opwiki/images/0/00/Attack.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "{{argument|relat1=attack|id=arg" + rndm() + "|type=truth|content=",
						peri: "Enter your attacking argument here",
						post: "|sign=--~~"+"~~}}" 
					}
				}
			}
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"defend": {
				label: 'Defend', 
				type: 'button', 
				icon: '//en.opasnet.org/en-opwiki/images/0/0a/Defend.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "{{argument|relat1=defense|id=arg" + rndm() + "|type=truth|content=",
						peri: "Enter your defending argument here",
						post: "|sign=--~~"+"~~}}" 
					}
				}
			}
		}
	});

	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'advanced', 
		group: 'format', 
		tools: {
			"comment": {
				label: 'Comment', 
				type: 'button', 
				icon: '//en.opasnet.org/en-opwiki/images/d/db/Comment.png', 
				action: {
					type: 'encapsulate', 
					options: {
						pre: "{{argument|relat1=comment|id=arg" + rndm() + "|type=truth|content=",
						peri: "Enter your comment here",
						post: "|sign=--~~"+"~~}}" 
					}
				}
			}
		}
	});

}

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
	mw.loader.using( 'user.options' ).then( function () {
		// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
		if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'ext.wikiEditor.toolbar' ), $.ready
			).then( customizeToolbar );
		}
	} );
}