<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-trailblazer.js</id>
	<title>MediaWiki:Gadget-trailblazer.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-trailblazer.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;action=history"/>
	<updated>2026-04-11T03:11:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=42223&amp;oldid=prev</id>
		<title>Alex at 11:06, 20 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=42223&amp;oldid=prev"/>
		<updated>2024-10-20T11:06:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;amp;diff=42223&amp;amp;oldid=39095&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=39095&amp;oldid=prev</id>
		<title>Alex at 16:15, 17 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=39095&amp;oldid=prev"/>
		<updated>2024-10-17T16:15:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:15, 17 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log(&#039;Starting Trailblazer Gadget&#039;);&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		mw.log(&#039;Starting Trailblazer Gadget&#039;);&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		portletLink = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.&lt;/del&gt;mw.util.addPortletLink(&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		portletLink = mw.util.addPortletLink(&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			&#039;p-personal&#039;,&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			&#039;p-personal&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			&#039;&#039;,&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			&#039;&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 187:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 187:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mw.loader.using([&#039;ext.gadget.rsw-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.&lt;/del&gt;util&#039;], function () {&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mw.loader.using([&#039;ext.gadget.rsw-util&#039;], function () {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	$(rswtbz.init);&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	$(rswtbz.init);&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	window.rswtbz = rswtbz;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	window.rswtbz = rswtbz;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=34681&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;/** * Displays locked/unlocked Trailblazer League regions * * @version 1.1 * @author Elessar2 *  */  /* * Classses used: * tbz-region/tbz-badge (to specify that it&#039;s an area element) * tbz-int-button (opens the interface instead of link) * attribute: data-tbz-area=&quot;[area id]&quot; where [area id] is the area id (see tbareas below) * * Sets: * tbz-locked * tbz-unlocked * tbz-int-button (to first link in tbz-region if #links &gt; 1) */  /*global jQuery, mediaWiki, mw, rswiki, rs,...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-trailblazer.js&amp;diff=34681&amp;oldid=prev"/>
		<updated>2024-10-16T23:10:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;* * Displays locked/unlocked Trailblazer League regions * * @version 1.1 * @author Elessar2 *: &lt;/span&gt;  &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;* Classses used: * tbz-region/tbz-badge (to specify that it&amp;#039;s an area element) * tbz-int-button (opens the interface instead of link) * attribute: data-tbz-area=&amp;quot;[area id]&amp;quot; where [area id] is the area id (see tbareas below) * * Sets: * tbz-locked * tbz-unlocked * tbz-int-button (to first link in tbz-region if #links &amp;gt; 1): &lt;/span&gt;  /*global jQuery, mediaWiki, mw, rswiki, rs,...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
* Displays locked/unlocked Trailblazer League regions&lt;br /&gt;
*&lt;br /&gt;
* @version 1.1&lt;br /&gt;
* @author Elessar2&lt;br /&gt;
* &lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
* Classses used:&lt;br /&gt;
* tbz-region/tbz-badge (to specify that it&amp;#039;s an area element)&lt;br /&gt;
* tbz-int-button (opens the interface instead of link)&lt;br /&gt;
* attribute: data-tbz-area=&amp;quot;[area id]&amp;quot; where [area id] is the area id (see tbareas below)&lt;br /&gt;
*&lt;br /&gt;
* Sets:&lt;br /&gt;
* tbz-locked&lt;br /&gt;
* tbz-unlocked&lt;br /&gt;
* tbz-int-button (to first link in tbz-region if #links &amp;gt; 1)&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/*global jQuery, mediaWiki, mw, rswiki, rs, ga */&lt;br /&gt;
&amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
;(function($, mw, rs){&lt;br /&gt;
var portletLink;&lt;br /&gt;
&lt;br /&gt;
var rswtbz = {&lt;br /&gt;
	// localStorage key&lt;br /&gt;
	localKey: &amp;#039;rsw-tbz-localstorage&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
	formConst: false,&lt;br /&gt;
	formMade: false,&lt;br /&gt;
&lt;br /&gt;
	// Settings&lt;br /&gt;
	settings: {&lt;br /&gt;
		dcache: &amp;#039;1970-01-01T01:00:00+00:00&amp;#039;,&lt;br /&gt;
		areas: [ &amp;#039;misthalin&amp;#039; ],&lt;br /&gt;
		cache: {&lt;br /&gt;
			curupdate: []&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Starts the events gadget&lt;br /&gt;
	 * @return {undefined}&lt;br /&gt;
	 */&lt;br /&gt;
	init: function () {&lt;br /&gt;
		mw.log(&amp;#039;Starting Trailblazer Gadget&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		portletLink = mw.mw.util.addPortletLink(&lt;br /&gt;
			&amp;#039;p-personal&amp;#039;,&lt;br /&gt;
			&amp;#039;&amp;#039;,&lt;br /&gt;
			&amp;#039;League&amp;#039;,&lt;br /&gt;
			&amp;#039;pt-events&amp;#039;,&lt;br /&gt;
			&amp;#039;Trailblazer Reloaded League preferences&amp;#039;,&lt;br /&gt;
			null,&lt;br /&gt;
			$(&amp;#039;#pt-userpage, #pt-anonuserpage&amp;#039;)&lt;br /&gt;
		);&lt;br /&gt;
&lt;br /&gt;
		$(portletLink).find(&amp;#039;a&amp;#039;).addClass(&amp;#039;oo-ui-icon-calendar&amp;#039;).click(rswtbz.openInt);&lt;br /&gt;
		rswtbz.initButtons();&lt;br /&gt;
&lt;br /&gt;
		// Load settings and events from localStorage page load to handle locked/unlocked&lt;br /&gt;
		rswtbz.loadSettings().then( function () {&lt;br /&gt;
			if (rswtbz.settings.areas &amp;amp;&amp;amp; rswtbz.settings.areas.length) {&lt;br /&gt;
				rswtbz.updateAreas();&lt;br /&gt;
			}&lt;br /&gt;
		}, function () {&lt;br /&gt;
			console.warn(&amp;#039;Error loading events settings!&amp;#039;);&lt;br /&gt;
		});&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Opens the interface (and initialises if not done yet)&lt;br /&gt;
	 * Is a click() event handler&lt;br /&gt;
	 * @param  {eventObject} jQuery event object&lt;br /&gt;
	 * @return {undefined}&lt;br /&gt;
	 */&lt;br /&gt;
	openInt: function (e) {&lt;br /&gt;
		e.preventDefault();&lt;br /&gt;
		var openPopup = function() {&lt;br /&gt;
			mw.log(&amp;#039;Open trailblazer popup&amp;#039;);&lt;br /&gt;
			rswtbz.loadSettings().then(rswtbz.updateAll(), rswtbz.updateAll());&lt;br /&gt;
&lt;br /&gt;
			// Google analytics tracker&lt;br /&gt;
			if (typeof ga === &amp;#039;function&amp;#039;) {&lt;br /&gt;
				ga(&amp;#039;gtag_UA_126479006_1.send&amp;#039;, &amp;#039;event&amp;#039;, &amp;#039;Gadget-trailblazer&amp;#039;, &amp;#039;Open&amp;#039;, &amp;#039;Normal&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Start constant update&lt;br /&gt;
			clearInterval(rswtbz.updatetimer);&lt;br /&gt;
			rswtbz.updatetimer = setInterval(rswtbz.update, 60000);&lt;br /&gt;
			&lt;br /&gt;
			window.OOUIWindowManager.openWindow( &amp;#039;trailblazerPopup&amp;#039; );&lt;br /&gt;
		};&lt;br /&gt;
		if (!rswtbz.formMade &amp;amp;&amp;amp; !rswtbz.formConst) {&lt;br /&gt;
			mw.log(&amp;#039;Loading trailblazer modal script&amp;#039;);&lt;br /&gt;
			rswtbz.formConst = true;&lt;br /&gt;
			mw.loader.using([&amp;#039;moment&amp;#039;, &amp;#039;mediawiki.api&amp;#039;, &amp;#039;oojs-ui-core&amp;#039;, &amp;#039;oojs-ui-windows&amp;#039;, &amp;#039;oojs-ui-widgets&amp;#039;, &amp;#039;ext.gadget.trailblazer-modal&amp;#039;]).then( function () {&lt;br /&gt;
				rswtbz.initInt().then(openPopup);&lt;br /&gt;
			}, function (err) {&lt;br /&gt;
				mw.warn(&amp;#039;Failed to load modal js&amp;#039;);&lt;br /&gt;
				mw.log(err);&lt;br /&gt;
				rswtbz.formConst = false;&lt;br /&gt;
				throw &amp;#039;Failed to load modal js&amp;#039;;&lt;br /&gt;
			});&lt;br /&gt;
		} else if (!rswtbz.formConst) {&lt;br /&gt;
			openPopup();&lt;br /&gt;
		} else {&lt;br /&gt;
			mw.log(&amp;#039;Waiting for initialisation to finish&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Adds links to open interface to trailblazer region buttons&lt;br /&gt;
	 * @return {undefined}&lt;br /&gt;
	 */&lt;br /&gt;
	initButtons: function () {&lt;br /&gt;
		$(&amp;#039;.tbz-int-button&amp;#039;).each(function() {&lt;br /&gt;
			$(this).click(rswtbz.openInt);&lt;br /&gt;
		});&lt;br /&gt;
		$(&amp;#039;.tbz-region,.tbz-badge&amp;#039;).each(function() {&lt;br /&gt;
			if (!$(this).hasClass(&amp;quot;tbz-no-global&amp;quot;)) {&lt;br /&gt;
				$(this).click(rswtbz.openInt).children(&amp;#039;a&amp;#039;).click(function (e) {&lt;br /&gt;
					e.stopPropagation();&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Loads settings from browser localStorage&lt;br /&gt;
	 * @return {Promise}&lt;br /&gt;
	 */&lt;br /&gt;
	loadSettings: function () {&lt;br /&gt;
		mw.log(&amp;#039;Loading settings&amp;#039;);&lt;br /&gt;
		return new Promise( function (resolve, reject) {&lt;br /&gt;
			if (!rs.hasLocalStorage()) {&lt;br /&gt;
				console.warn(&amp;#039;Browser does not support localStorage&amp;#039;);&lt;br /&gt;
				reject();&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var prefs = {};&lt;br /&gt;
			try {&lt;br /&gt;
				prefs = JSON.parse(localStorage.getItem(rswtbz.localKey));&lt;br /&gt;
			} catch (err) {&lt;br /&gt;
				prefs = {};&lt;br /&gt;
				console.warn(&amp;#039;Error loading settings (events)&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
			for (var p in prefs) {&lt;br /&gt;
				rswtbz.settings[p] = prefs[p];&lt;br /&gt;
			}&lt;br /&gt;
			resolve();&lt;br /&gt;
		} );&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Updates the areas unlocked&lt;br /&gt;
	 * @return {undefined}&lt;br /&gt;
	 */&lt;br /&gt;
	updateAreas: function () {&lt;br /&gt;
		mw.log(&amp;#039;Updating areas&amp;#039;);&lt;br /&gt;
		if (!Array.isArray(rswtbz.settings.areas)) {&lt;br /&gt;
			rswtbz.settings.areas = [&amp;#039;misthalin&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$(&amp;#039;.tbz-region,.tbz-badge&amp;#039;).each(function() {&lt;br /&gt;
			if (!$(this).hasClass(&amp;quot;tbz-no-global&amp;quot;)) {&lt;br /&gt;
				var obj = $(this),&lt;br /&gt;
					areaid = obj.attr(&amp;#039;data-tbz-area&amp;#039;);&lt;br /&gt;
				var areaList = areaid.split(&amp;#039;&amp;amp;&amp;#039;);&lt;br /&gt;
				var allRegionsUnlocked = areaList.every(&lt;br /&gt;
					function(area) {&lt;br /&gt;
						return rswtbz.settings.areas.indexOf(area) !== -1;&lt;br /&gt;
					}&lt;br /&gt;
				);&lt;br /&gt;
				if (allRegionsUnlocked) {&lt;br /&gt;
					obj.removeClass(&amp;#039;tbz-locked&amp;#039;);&lt;br /&gt;
					obj.addClass(&amp;#039;tbz-unlocked&amp;#039;);&lt;br /&gt;
				} else {&lt;br /&gt;
					obj.removeClass(&amp;#039;tbz-unlocked&amp;#039;);&lt;br /&gt;
					obj.addClass(&amp;#039;tbz-locked&amp;#039;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
mw.loader.using([&amp;#039;ext.gadget.rsw-mw.util&amp;#039;], function () {&lt;br /&gt;
	$(rswtbz.init);&lt;br /&gt;
	window.rswtbz = rswtbz;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
}(jQuery, mediaWiki, rswiki));&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>