User:Fjmustak/monobook.js

// define custom buttons (id, class, popup title, image src, width, height, alt text, onClick and parameters) var wikEdButton = {}; wikEdButton[100] = ['wikEdBig', 'wikEdButton', 'Make the selection a html BIG element', 'http://upload.wikimedia.org/wikipedia/commons/6/67/WikEd_logo.png', '16', '16', 'BIG', 'javascript:WikEdEditButton(this, this.id, null, BigHandler);' ]; wikEdButton[101] = ['wikEdArButton', 'wikEdButton', 'This is a test button', 'http://upload.wikimedia.org/wikipedia/commons/0/07/WikEd_disabled.png', '16', '16', 'Test', 'javascript:WikEdEditButton(this, this.id, null, ArBigHandler);' ];

// define custom button bars (id outer, class outer, id inner, class inner, height, grip title, button numbers) var wikEdButtonBar = {}; wikEdButtonBar['custom1'] = ['wikEdButtonBarCustom1', 'wikEdButtonBarCustom1',  'wikEdButtonsCustom1',  'wikEdButtonsCustom1',  44, 'My custom buttons', [100, 'br', 101] ]; //wikEdButtonBar['custom2'] = ['wikEdButtonBarCustom2', 'wikEdButtonBarCustom2',  //'wikEdButtonsCustom2',  'wikEdButtonsCustom2',  44, 'My custom buttons', [100, 'br', 101] ];

// define the function which is called upon clicking the custom button // this example code adds or removes big tags around the selected text

function ArBigHandler(obj) {

// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine) //  focus... is the text under the cursor; ...Word and ...Line extend the target to the start/end of the word or line WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; } else { obj.changed = obj.cursor; }

// make the changes to the plain target text

// remove the previously added formatting if ( /\{\{lang\-ar\|&lt;big&gt;(.*?)&lt;\/big&gt;\}\}/i.test(obj.changed.plain) ) { obj.changed.plain = obj.changed.plain.replace(/\{\{lang\-ar\|&lt;big&gt;(.*?)&lt;\/big&gt;\}\}/gi, '$1'); }

// add the text formatting else { obj.changed.plain = '\{\{lang\-ar\|&lt;big&gt;' + obj.changed.plain + '&lt;/big&gt;\}\}'; obj.changed.plain = obj.changed.plain.replace(/(\{\{lang\-ar\|&lt;big&gt;)( *)(.*?)( *)(&lt;\/big&gt;\}\})/, '$2$1$3$5$4'); }

// keep the changed text selected, needed to remove the formatting with a second custom button click obj.changed.keepSel = true;

return;

}

function BigHandler(obj) {

// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine) //  focus... is the text under the cursor; ...Word and ...Line extend the target to the start/end of the word or line WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; } else { obj.changed = obj.cursor; }

// make the changes to the plain target text

// remove the previously added formatting if ( /&lt;big&gt;(.*?)&lt;\/big&gt;/i.test(obj.changed.plain) ) { obj.changed.plain = obj.changed.plain.replace(/&lt;big&gt;(.*?)&lt;\/big&gt;/gi, '$1'); }

// add the text formatting else { obj.changed.plain = '&lt;big&gt;' + obj.changed.plain + '&lt;/big&gt;'; obj.changed.plain = obj.changed.plain.replace(/(&lt;big&gt;)( *)(.*?)( *)(&lt;\/big&gt;)/, '$2$1$3$5$4'); }

// keep the changed text selected, needed to remove the formatting with a second custom button click obj.changed.keepSel = true;

return;

}

importScript('User:AzaToth/twinkle.js'); importScript('User:TheDJ/Gadget-HotCat.js');

// install User:Cacycle/wikEd in-browser text editor document.write(' ');