User:Ioeth/friendlytabs.js

Source: Wikipedia, the free encyclopedia.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
	FriendlyConfig = {};
}

/**
 FriendlyConfig.idsToRename ( array )
 An array of hashes that defines the ids of the tabs to be renamed and what they should be renamed to.
 */
if( typeof( FriendlyConfig.idsToRename ) == 'undefined' ) {
	FriendlyConfig.idsToRename = [
		{ id: 'ca-nstab-main', name: 'Main', mainPageOnly: true },
		{ id: 'ca-main', name: 'Main', mainPageOnly: true },
		{ id: 'ca-nstab-help', name: 'Help' },
		{ id: 'ca-history', name: 'History' },
		{ id: 'ca-nstab-special', name: 'Special' },
		{ id: 'ca-special', name: 'Special' },
		{ id: 'ca-nstab-project', name: 'Project' },
		{ id: 'ca-project', name: 'Project' },
		{ id: 'ca-nstab-user', name: 'User' },
		{ id: 'ca-user', name: 'User' },
		{ id: 'ca-edit', name: 'Edit' },
		{ id: 'ca-viewsource', name: 'Source' },
		{ id: 'ca-talk', name: 'Talk' },
		{ id: 'ca-undelete', name: 'Undelete' },
		{ id: 'ca-addsection', name: '+' }
	];
}

function friendlyFindTabCaption(tab) {
	while (tab.nodeType != 3) { //Until we find a text node
		tab = tab.firstChild;
	}
	return tab.parentNode;
}

function friendlytabs() {
	for(i = 0; i < FriendlyConfig.idsToRename.length; i++) {
		if(document.getElementById(FriendlyConfig.idsToRename[i].id)) {
			if(typeof( FriendlyConfig.idsToRename[i].mainPageOnly ) == 'boolean' && FriendlyConfig.idsToRename[i].mainPageOnly  ) {
				if( mw.config.get('wgPageName') == 'Main_Page' ) {
					friendlyFindTabCaption( document.getElementById( FriendlyConfig.idsToRename[i].id ) ).innerHTML = FriendlyConfig.idsToRename[i].name;
				}
			} else {
				friendlyFindTabCaption( document.getElementById( FriendlyConfig.idsToRename[i].id ) ).innerHTML = FriendlyConfig.idsToRename[i].name;
			}
		}
	}
}
 
$(friendlytabs);