User:Stündle/Gadget-BiDiEditing.js

Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
/**
 * 
 * DESCRIPTION MISSING
 * 
 */

( function ( $, mw ) { // Making my own namespace!?

"use strict";
	
/**
 * bidiSwitchSetup
 */
function bidiSwitchSetup() {
	var editform = document.getElementById( "editform" );
	if ( editform === null ) {
		return;
	}

	bidiAddButton( editform, "Default", function( style ) {
		style.direction = "inherit";
		style.unicodeBidi = "inherit";
	});
	bidiAddButton( editform, "dir=ltr", function( style ) {
		style.direction = "ltr";
	});
	bidiAddButton( editform, "dir=rtl", function( style ) {
		style.direction = "rtl";
	});
	bidiAddButton( editform, "bidi=normal", function( style ) {
		style.unicodeBidi = "normal";
	});
	bidiAddButton( editform, "bidi=override", function( style ) {
		style.unicodeBidi = "bidi-override";
	});
}
	
/**
 * bidiAddButton
 */
 
function bidiAddButton( before, label, action ) {
	var button = document.createElement( "input" );
	button.type = "button";
	button.value = label;
	button.onclick = function( event ) {
		var box = document.getElementById( "wpTextbox1" );
		if (box === null) {
			alert( "Broken! Edit box missing." );
		} else {
			//var style = document.getOverrideStyle(box, null);
			var style = box.style;
			action( style );
		}
	};
	before.parentNode.insertBefore( button, before );
}
	
/**
 * M..A..I..N
 */

$( bidiSwitchSetup );

}( jQuery, mediaWiki ));