From 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.

$(function($) {

	setTimeout(function() {

		$.when( mw.loader.using( 'mediawiki.util']), $.ready ).then(function() {

			var portletlink = mw.util.addPortletLink('p-tv', '#', 'Line colours');

			$(portletlink).click( function(e) {

				e.preventDefault();

				// Default parameters and determine if we need to go to the editing page

				var loc = window.location.href; var wpTextbox1 = document.getElementById('wpTextbox1'); var i;

				if (loc.indexOf('action=edit') < 0 && loc.indexOf('action=submit') < 0) {

					alert("Go to the edit page to use this script.");

				} else {

					// Gather colours from text of textarea

					var colours = [];

					var topcolours = [];

					var s = wpTextbox1.value.split("\n");

					for (i = 0; i < s.length; i++) {

						if (si].indexOf('LineColor') > 0 || si].indexOf('TopColor') > 0 || si].indexOf('line_color') > 0) {

							// LineColor regex

							var reg = /\|\s*(LineColor|TopColor|line_color)[\s\=\#]*([^\s]*)/g;

							var t = reg.exec(si]);

							if (!t) continue;

							// Add colour to saved colours if its not already added

							var fontColor = t2];

							if (colours.indexOf(fontColor) >= 0) continue;

							colourscolours.length = fontColor;

							if (si].indexOf('TopColor') > 0) topcolourstopcolours.length = fontColor;

						}

					}

					

					for (i = 0; i < colours.length; i++) {

						// Gather colour, and individually adjust to AAA compliancy

						var thiscolour = coloursi];

						var fground = (topcolours.indexOf(thiscolour) >= 0 ? '0645AD' : false);

						var newcolour = colourCompliance(thiscolour,fground);

						

						// Update if the original colour has been changed to be compliant

						if (thiscolour != newcolour) {

							// 3-digits codes (e.g. #FF3344 = #F34)

							var _3code;

							if (thiscolour0 == thiscolour1 && thiscolour2 == thiscolour3 && thiscolour4 == thiscolour5])

								_3code = thiscolour0+thiscolour2+thiscolour4+'|';

							else _3code = '';

							

							// Replace colours, check for minus error

							var reg2 = new RegExp('\\b'+_3code+thiscolour+'\\b','gi');

							if (newcolour.indexOf("-") < 0) wpTextbox1.value = wpTextbox1.value.replace(reg2,newcolour);

							else alert("Error fixing colour code "+thiscolour+" - please fix manually.");

						}

					}

					

					// Done

					document.getElementById('wpSummary').value += "Adjusted color contrasts via [[User:Alex 21/script-linecolour|script]] per [[WP:COLOR]] and [[Template talk:Infobox television season/Archive 3]].";

				}

			});

		});

	},300);

});