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.

new function()

{

	var settings, libsToLoad = 1, multiR, regexR, self = this;



	if(wgCanonicalNamespace == "Talk" ||

		wgCanonicalNamespace.slice(-5) == "_talk") return;



	try{  settings = Gerbrant..autoReplace;  }catch(nosettings){}

	if(!settings) settings = {};



	this.show = function()

	{

		regexR.replace(multiR.getRE(), function(a)

		{

			return a != multiR.handler.apply(multiR, arguments);

		}, multiR.handler);

	};

	this.caption = "AutoReplace";



	this.diag = function()

	{

		if(libsToLoad >= 0) alert("Couldn't load all libraries.");

		else alert("All libraries are loaded.");

	};



	function libFinished()

	{

		if(--libsToLoad < 0) self.show();

		if(multiR && regexR) module("Gerbrant.edit.autoReplace", self);

	}



	loadModule("Gerbrant.edit.multiReplace", function(mr)

	{

		var lib, i;

		multiR = new mr;

		libFinished();



		function loadDefs(defs)

		{

			var i, def;

			for(i in defs)

			{

				def = defsi];

				multiR.add(def.re, def.hf);

			}

		}



		function loadReplLib(libName)

		{

			libsToLoad++;

			loadModule(libName, function(defs)

			{

				loadDefs(defs);

				libFinished();

			});

		}



		if(!settings.noDefault) loadReplLib("Gerbrant.edit.autoReplace.default");



		lib = settings.lib;

		if(lib) for(i in lib) loadReplLib(libi]);



		lib = settings.defs;

		if(lib) loadDefs(lib);

	});



	loadModule("Gerbrant.edit.regexReplace", function(rr)

	{

		regexR = rr;

		libFinished();

	});

}