<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://eve.wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://eve.wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-11-04T17:19:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=22&amp;oldid=prev</id>
		<title>Novacide at 03:47, 14 April 2026</title>
		<link rel="alternate" type="text/html" href="http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=22&amp;oldid=prev"/>
		<updated>2026-04-14T03:47:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;amp;diff=22&amp;amp;oldid=13&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Novacide</name></author>
	</entry>
	<entry>
		<id>http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=13&amp;oldid=prev</id>
		<title>Novacide at 03:31, 14 April 2026</title>
		<link rel="alternate" type="text/html" href="http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=13&amp;oldid=prev"/>
		<updated>2026-04-14T03:31:16Z</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 22:31, 13 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l226&quot;&gt;Line 226:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 226:&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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}() );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/* ============================================================&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   HOMEPAGE SEARCH BAR — Enter key handler&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   ============================================================ */&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;( function () {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  var input = document.getElementById( &#039;evewiki-search-input&#039; );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  if ( !input ) return;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  input.addEventListener( &#039;keydown&#039;, function ( e ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if ( e.key === &#039;Enter&#039; ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      var q = input.value.trim();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      if ( q ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        window.location = &#039;/wiki/index.php?title=Special:Search&amp;amp;search=&#039; +&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          encodeURIComponent( q ) + &#039;&amp;amp;fulltext=1&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  } );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  // Also wire the / hotkey to focus this input on homepage&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  document.addEventListener( &#039;keydown&#039;, function ( e ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var tag = document.activeElement ? document.activeElement.tagName : &#039;&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if ( e.key === &#039;/&#039; &amp;amp;&amp;amp; tag !== &#039;INPUT&#039; &amp;amp;&amp;amp; tag !== &#039;TEXTAREA&#039; ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      e.preventDefault();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      input.focus();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  } );&lt;/ins&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;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;/table&gt;</summary>
		<author><name>Novacide</name></author>
	</entry>
	<entry>
		<id>http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=3&amp;oldid=prev</id>
		<title>Novacide: Created page with &quot;/* Any JavaScript here will be loaded for all users on every page load. */ /**  * eve.wiki — MediaWiki:Common.js  * EVE-specific JS for Citizen skin  * No external dependencies — vanilla JS only  */  ( function () { 	&#039;use strict&#039;;  	/* ============================================================ 	   1. WAVE ACCORDION 	   Finds all .evewiki-wave elements and wires up click toggles. 	   To use in wikitext: wrap content in &lt;div class=&quot;evewiki-wave&quot;&gt; 	     &lt;div class=&quot;ev...&quot;</title>
		<link rel="alternate" type="text/html" href="http://eve.wiki/index.php?title=MediaWiki:Common.js&amp;diff=3&amp;oldid=prev"/>
		<updated>2026-04-13T23:19:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;span class=&quot;autocomment&quot;&gt;Any JavaScript here will be loaded for all users on every page load.: &lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;*  * eve.wiki — MediaWiki:Common.js  * EVE-specific JS for Citizen skin  * No external dependencies — vanilla JS only: &lt;/span&gt;  ( function () { 	&amp;#039;use strict&amp;#039;;  	/* ============================================================ 	   1. WAVE ACCORDION 	   Finds all .evewiki-wave elements and wires up click toggles. 	   To use in wikitext: wrap content in &amp;lt;div class=&amp;quot;evewiki-wave&amp;quot;&amp;gt; 	     &amp;lt;div class=&amp;quot;ev...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
/**&lt;br /&gt;
 * eve.wiki — MediaWiki:Common.js&lt;br /&gt;
 * EVE-specific JS for Citizen skin&lt;br /&gt;
 * No external dependencies — vanilla JS only&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
( function () {&lt;br /&gt;
	&amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   1. WAVE ACCORDION&lt;br /&gt;
	   Finds all .evewiki-wave elements and wires up click toggles.&lt;br /&gt;
	   To use in wikitext: wrap content in &amp;lt;div class=&amp;quot;evewiki-wave&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;div class=&amp;quot;evewiki-wave-header&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
	     &amp;lt;div class=&amp;quot;evewiki-wave-body&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
	   &amp;lt;/div&amp;gt;&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initWaveAccordions() {&lt;br /&gt;
		var waves = document.querySelectorAll( &amp;#039;.evewiki-wave&amp;#039; );&lt;br /&gt;
		waves.forEach( function ( wave ) {&lt;br /&gt;
			var header = wave.querySelector( &amp;#039;.evewiki-wave-header&amp;#039; );&lt;br /&gt;
			if ( !header ) return;&lt;br /&gt;
&lt;br /&gt;
			// Open first wave by default&lt;br /&gt;
			if ( wave === waves[ 0 ] ) {&lt;br /&gt;
				wave.classList.add( &amp;#039;is-open&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			header.addEventListener( &amp;#039;click&amp;#039;, function () {&lt;br /&gt;
				wave.classList.toggle( &amp;#039;is-open&amp;#039; );&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			// Keyboard support&lt;br /&gt;
			header.setAttribute( &amp;#039;tabindex&amp;#039;, &amp;#039;0&amp;#039; );&lt;br /&gt;
			header.setAttribute( &amp;#039;role&amp;#039;, &amp;#039;button&amp;#039; );&lt;br /&gt;
			header.addEventListener( &amp;#039;keydown&amp;#039;, function ( e ) {&lt;br /&gt;
				if ( e.key === &amp;#039;Enter&amp;#039; || e.key === &amp;#039; &amp;#039; ) {&lt;br /&gt;
					e.preventDefault();&lt;br /&gt;
					wave.classList.toggle( &amp;#039;is-open&amp;#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   2. SEARCH HOTKEY&lt;br /&gt;
	   Press / to focus search (standard wiki UX pattern)&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initSearchHotkey() {&lt;br /&gt;
		var searchInput = document.querySelector(&lt;br /&gt;
			&amp;#039;#searchInput, .citizen-search__input, input[name=&amp;quot;search&amp;quot;]&amp;#039;&lt;br /&gt;
		);&lt;br /&gt;
		if ( !searchInput ) return;&lt;br /&gt;
&lt;br /&gt;
		document.addEventListener( &amp;#039;keydown&amp;#039;, function ( e ) {&lt;br /&gt;
			var tag = document.activeElement ? document.activeElement.tagName : &amp;#039;&amp;#039;;&lt;br /&gt;
			if ( e.key === &amp;#039;/&amp;#039; &amp;amp;&amp;amp; tag !== &amp;#039;INPUT&amp;#039; &amp;amp;&amp;amp; tag !== &amp;#039;TEXTAREA&amp;#039; ) {&lt;br /&gt;
				e.preventDefault();&lt;br /&gt;
				searchInput.focus();&lt;br /&gt;
				searchInput.select();&lt;br /&gt;
			}&lt;br /&gt;
			if ( e.key === &amp;#039;Escape&amp;#039; &amp;amp;&amp;amp; document.activeElement === searchInput ) {&lt;br /&gt;
				searchInput.blur();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   3. ACTIVE NAV HIGHLIGHT&lt;br /&gt;
	   Adds .evewiki-nav-active to sidebar links matching current page path&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initActiveNav() {&lt;br /&gt;
		var path = window.location.pathname;&lt;br /&gt;
		var links = document.querySelectorAll(&lt;br /&gt;
			&amp;#039;.citizen-nav a, #citizen-sidebar a, .citizen-sidebar a&amp;#039;&lt;br /&gt;
		);&lt;br /&gt;
		links.forEach( function ( link ) {&lt;br /&gt;
			var href = link.getAttribute( &amp;#039;href&amp;#039; );&lt;br /&gt;
			if ( href &amp;amp;&amp;amp; href !== &amp;#039;/&amp;#039; &amp;amp;&amp;amp; path.indexOf( href ) === 0 ) {&lt;br /&gt;
				link.closest( &amp;#039;li&amp;#039; )?.classList.add( &amp;#039;citizen-nav__item--active&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   4. INFOBOX IMAGE LAZY EXPAND&lt;br /&gt;
	   Click on infobox portrait to open full-size in overlay&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initInfoboxPortrait() {&lt;br /&gt;
		var portraits = document.querySelectorAll( &amp;#039;.infobox img, .evewiki-portrait img&amp;#039; );&lt;br /&gt;
		portraits.forEach( function ( img ) {&lt;br /&gt;
			img.style.cursor = &amp;#039;zoom-in&amp;#039;;&lt;br /&gt;
			img.addEventListener( &amp;#039;click&amp;#039;, function () {&lt;br /&gt;
				var overlay = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
				overlay.style.cssText = [&lt;br /&gt;
					&amp;#039;position:fixed&amp;#039;, &amp;#039;inset:0&amp;#039;, &amp;#039;z-index:99999&amp;#039;,&lt;br /&gt;
					&amp;#039;background:rgba(0,0,0,.85)&amp;#039;,&lt;br /&gt;
					&amp;#039;display:flex&amp;#039;, &amp;#039;align-items:center&amp;#039;, &amp;#039;justify-content:center&amp;#039;,&lt;br /&gt;
					&amp;#039;cursor:zoom-out&amp;#039;&lt;br /&gt;
				].join(&amp;#039;;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				var full = document.createElement( &amp;#039;img&amp;#039; );&lt;br /&gt;
				full.src = img.src;&lt;br /&gt;
				full.style.cssText = &amp;#039;max-width:90vw;max-height:90vh;object-fit:contain;border:1px solid #233042;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
				overlay.appendChild( full );&lt;br /&gt;
				document.body.appendChild( overlay );&lt;br /&gt;
&lt;br /&gt;
				overlay.addEventListener( &amp;#039;click&amp;#039;, function () {&lt;br /&gt;
					document.body.removeChild( overlay );&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				document.addEventListener( &amp;#039;keydown&amp;#039;, function esc( e ) {&lt;br /&gt;
					if ( e.key === &amp;#039;Escape&amp;#039; ) {&lt;br /&gt;
						if ( document.body.contains( overlay ) ) {&lt;br /&gt;
							document.body.removeChild( overlay );&lt;br /&gt;
						}&lt;br /&gt;
						document.removeEventListener( &amp;#039;keydown&amp;#039;, esc );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   5. SORTABLE TABLE ENHANCEMENTS&lt;br /&gt;
	   Adds row hover highlight class for wikitables&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initTableEnhancements() {&lt;br /&gt;
		var tables = document.querySelectorAll( &amp;#039;.wikitable, .evewiki-table&amp;#039; );&lt;br /&gt;
		tables.forEach( function ( table ) {&lt;br /&gt;
			var rows = table.querySelectorAll( &amp;#039;tbody tr&amp;#039; );&lt;br /&gt;
			rows.forEach( function ( row ) {&lt;br /&gt;
				row.addEventListener( &amp;#039;mouseenter&amp;#039;, function () {&lt;br /&gt;
					row.style.background = &amp;#039;#1c2230&amp;#039;;&lt;br /&gt;
				} );&lt;br /&gt;
				row.addEventListener( &amp;#039;mouseleave&amp;#039;, function () {&lt;br /&gt;
					row.style.background = &amp;#039;&amp;#039;;&lt;br /&gt;
				} );&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   6. COPY-TO-CLIPBOARD FOR CODE BLOCKS&lt;br /&gt;
	   Adds a small copy button to &amp;lt;pre&amp;gt; blocks&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initCodeCopy() {&lt;br /&gt;
		var pres = document.querySelectorAll( &amp;#039;.mw-parser-output pre&amp;#039; );&lt;br /&gt;
		pres.forEach( function ( pre ) {&lt;br /&gt;
			pre.style.position = &amp;#039;relative&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			var btn = document.createElement( &amp;#039;button&amp;#039; );&lt;br /&gt;
			btn.textContent = &amp;#039;Copy&amp;#039;;&lt;br /&gt;
			btn.style.cssText = [&lt;br /&gt;
				&amp;#039;position:absolute&amp;#039;, &amp;#039;top:6px&amp;#039;, &amp;#039;right:6px&amp;#039;,&lt;br /&gt;
				&amp;#039;background:#131720&amp;#039;, &amp;#039;border:1px solid #233042&amp;#039;,&lt;br /&gt;
				&amp;#039;color:#93a4b5&amp;#039;, &amp;#039;font-family:Rajdhani,sans-serif&amp;#039;,&lt;br /&gt;
				&amp;#039;font-size:10px&amp;#039;, &amp;#039;font-weight:600&amp;#039;, &amp;#039;letter-spacing:1px&amp;#039;,&lt;br /&gt;
				&amp;#039;text-transform:uppercase&amp;#039;, &amp;#039;padding:3px 8px&amp;#039;,&lt;br /&gt;
				&amp;#039;cursor:pointer&amp;#039;, &amp;#039;transition:color .12s,border-color .12s&amp;#039;&lt;br /&gt;
			].join(&amp;#039;;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			btn.addEventListener( &amp;#039;mouseenter&amp;#039;, function () {&lt;br /&gt;
				btn.style.color = &amp;#039;#4fc3e8&amp;#039;;&lt;br /&gt;
				btn.style.borderColor = &amp;#039;#4fc3e8&amp;#039;;&lt;br /&gt;
			} );&lt;br /&gt;
			btn.addEventListener( &amp;#039;mouseleave&amp;#039;, function () {&lt;br /&gt;
				btn.style.color = &amp;#039;#93a4b5&amp;#039;;&lt;br /&gt;
				btn.style.borderColor = &amp;#039;#233042&amp;#039;;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			btn.addEventListener( &amp;#039;click&amp;#039;, function () {&lt;br /&gt;
				navigator.clipboard.writeText( pre.textContent.trim() ).then( function () {&lt;br /&gt;
					btn.textContent = &amp;#039;Copied!&amp;#039;;&lt;br /&gt;
					btn.style.color = &amp;#039;#3acc7a&amp;#039;;&lt;br /&gt;
					setTimeout( function () {&lt;br /&gt;
						btn.textContent = &amp;#039;Copy&amp;#039;;&lt;br /&gt;
						btn.style.color = &amp;#039;#93a4b5&amp;#039;;&lt;br /&gt;
					}, 2000 );&lt;br /&gt;
				} );&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			pre.appendChild( btn );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   7. HOMEPAGE-ONLY: CATEGORY CARD HOVER GLOW&lt;br /&gt;
	   Only runs on Main_Page&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function initHomepageEffects() {&lt;br /&gt;
		if ( mw.config.get( &amp;#039;wgPageName&amp;#039; ) !== &amp;#039;Main_Page&amp;#039; ) return;&lt;br /&gt;
&lt;br /&gt;
		var cards = document.querySelectorAll( &amp;#039;.evewiki-hp-card&amp;#039; );&lt;br /&gt;
		cards.forEach( function ( card ) {&lt;br /&gt;
			card.addEventListener( &amp;#039;mouseenter&amp;#039;, function () {&lt;br /&gt;
				card.style.borderTopColor = &amp;#039;#4fc3e8&amp;#039;;&lt;br /&gt;
				card.style.boxShadow = &amp;#039;0 0 20px rgba(79,195,232,.08)&amp;#039;;&lt;br /&gt;
			} );&lt;br /&gt;
			card.addEventListener( &amp;#039;mouseleave&amp;#039;, function () {&lt;br /&gt;
				card.style.borderTopColor = &amp;#039;&amp;#039;;&lt;br /&gt;
				card.style.boxShadow = &amp;#039;&amp;#039;;&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/* ============================================================&lt;br /&gt;
	   INIT — run after DOM ready&lt;br /&gt;
	   ============================================================ */&lt;br /&gt;
	function init() {&lt;br /&gt;
		initWaveAccordions();&lt;br /&gt;
		initSearchHotkey();&lt;br /&gt;
		initActiveNav();&lt;br /&gt;
		initInfoboxPortrait();&lt;br /&gt;
		initTableEnhancements();&lt;br /&gt;
		initCodeCopy();&lt;br /&gt;
		initHomepageEffects();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if ( document.readyState === &amp;#039;loading&amp;#039; ) {&lt;br /&gt;
		document.addEventListener( &amp;#039;DOMContentLoaded&amp;#039;, init );&lt;br /&gt;
	} else {&lt;br /&gt;
		init();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Novacide</name></author>
	</entry>
</feed>