User:Gary/small lead languages.js

/*	SMALL LEAD LANGUAGES Description: Makes text in lead paragraph that provides translations to be smaller. TODO - Doesn't work with.

if (typeof(unsafeWindow) != 'undefined') {	var console = unsafeWindow.console; mw = unsafeWindow.mw; }

function smallLeadLanguages {	if (mw.config.get('wgCanonicalNamespace') != '' && mw.config.get('wgPageName') != 'User:Gary_King/Sandbox') return false; var openingBracket = false; var closingBracket = false; var bracketNode = $(' '); var beforeBracket, insideBrackets, afterBracket;

// Find first paragraph by finding the first one with text. var firstParagraph; $('#mw-content-text > p').each(function	{		var node = $(this);		if ($('#coordinates', node).length) return true;		if (node.text)		{			firstParagraph = node;			return false;		}	}); if (!firstParagraph) return false;

firstParagraph.contents.each(function	{		var node = $(this);		if (openingBracket) bracketNode.append(node);		if (node[0].nodeType != 3) return true;		// If current node's text is over 50 characters from beginning, then cancel this.		if (!openingBracket && firstParagraph.text.indexOf(node[0].nodeValue) > 50) return false;		// Found both opening and closing brackets in the same node.		if (!openingBracket && node[0].nodeValue.indexOf('(') != -1 && node[0].nodeValue.indexOf(')') != -1)		{			openingBracket = true;			closingBracket = true;			beforeBracket = node[0].nodeValue.substring(0, node[0].nodeValue.indexOf('(')); insideBrackets = node[0].nodeValue.substring(node[0].nodeValue.indexOf('('), node[0].nodeValue.indexOf(')') + 1); afterBracket = node[0].nodeValue.substring(node[0].nodeValue.indexOf(')') + 1);			node.before(beforeBracket);			bracketNode.append(insideBrackets);			node.after(afterBracket);			node.replaceWith(bracketNode);			return false;		}		// Found opening bracket		else if (!openingBracket && node[0].nodeValue.indexOf('(') != -1) {			openingBracket = true; beforeBracket = node[0].nodeValue.substring(0, node[0].nodeValue.indexOf('('));			afterBracket = node[0].nodeValue.substring(node[0].nodeValue.indexOf('(')); node.before(beforeBracket); node.before(bracketNode); bracketNode.append(afterBracket); node.remove; return true; }		// Found closing bracket else if (!closingBracket && node[0].nodeValue.indexOf(')') != -1)		{			closingBracket = true;			beforeBracket = node[0].nodeValue.substring(0, node[0].nodeValue.indexOf(')') + 1); afterBracket = node[0].nodeValue.substring(node[0].nodeValue.indexOf(')') + 1);			bracketNode.contents.last.remove;			bracketNode.append(beforeBracket);			bracketNode.after(afterBracket);			return false;		}	}); if (bracketNode.text.length > 50) {		bracketNode.css('font-size', '.85em'); bracketNode.attr('title', 'Text is smaller for better contrast.'); }	// Replace the temporary SPAN with its contents. else {		bracketNode.contents.each(function		{			$(this).parent.before($(this).clone);		}); bracketNode.remove; } }

$(smallLeadLanguages);