User:Withersoul 235/global.js

// Notes to self /* For wiki-specific codes in Global JS page, use the following code: if (mw.config.get("wgServer") == "https:// .wikia.com") { // code };

Apparantly you can add multiple rail modules using AddRailModule like this:

window.ARMModules = ['Template:RailModule', 'Template:RailModule2'];

Do noot forgetti */

//=================================================================== // Make getElementsByTagName function if unsupported by the browser //=================================================================== function getElementsByTagName (name, root) { if (root === undefined) root = document; var e = root.getElementsByTagName('*'); var r = new Array; for (var i = 0; i < e.length; i++) {if (e[i].getAttribute('name') == name) r[r.length] = e[i];} return r;}

//===================================================== // Prevent videos from playing in unsupported browsers //=====================================================

function understands_video { return !!document.createElement("video").canPlayType; // boolean }

if (!understands_video) { // Must be older browser or IE. // Maybe do something like hide custom HTML5 controls. Or whatever… videoControls.style.display = 'none'; }

//================================================ // Allow to get a browser's display area //================================================

var viewportwidth; var viewportheight;

/* the more standard compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight */

if (typeof window.innerWidth != 'undefined') { viewportwidth = window.innerWidth, viewportheight = window.innerHeight;}

// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

else if (typeof document.documentElement != 'undefined'    && typeof document.documentElement.clientWidth !=     'undefined' && document.documentElement.clientWidth !== 0) { viewportwidth = document.documentElement.clientWidth, viewportheight = document.documentElement.clientHeight;}

// older versions of IE

else {viewportwidth = document.getElementsByTagName('body')[0].clientWidth, viewportheight = document.getElementsByTagName('body')[0].clientHeight;}

// Log result to console if user holds down Alt Gr and J on their keyboard

var t = event.key; if (t == "j" && t == "AltGraph" || t == "J" && t == "AltGraph") { console.log('Your viewport width is '+ viewportwidth + ' x '           + viewportheight +'.'); }

//=========================== // AJAX Auto-Refresh //===========================

window.ajaxPages = [ "Special:WikiActivity", "Special:RecentChanges", "Special:RecentChangesLinked", "Special:Log", "Special:Images", "Special:ListFiles", "Special:Contributions", "Special:NewPages", "Special:UncategorizedPages", "Special:DoubleRedirects", "Special:WhatLinksHere", "Special:Categories", "Special:Videos", "Special:Watchlist", "Special:LonelyPages", "Special:BrokenRedirects", "Special:DeadendPages", "Special:Disambiguation", "Special:Withoutimages", "Blog:Recent posts"]; window.ajaxRefresh = 30000; window.AjaxRCRefreshText = 'Auto-refresh'; window.AjaxRCRefreshHoverText = 'Automatically refresh the page over time'; window.ajaxIndicator = 'https://vignette.wikia.nocookie.net/dev/images/b/ba/Snake_throbber_dark-bg.gif/revision/latest?cb=20140519203615'; if($("#ListFiles-container").length > 0 ||  //If talk/Forum namespace or Message Wall   wgNamespaceNumber == 110 ||    wgNamespaceNumber == 111 ||   wgNamespaceNumber == 3 ||   wgNamespaceNumber == 1 ||   wgNamespaceNumber == 5 ||   wgNamespaceNumber == 7 ||   wgNamespaceNumber == 9 ||   wgNamespaceNumber == 11 ||   wgNamespaceNumber == 13 ||   wgNamespaceNumber == 15 ||   wgNamespaceNumber == 503 ||   wgNamespaceNumber == 829 ||   wgNamespaceNumber == 1200 ||   wgNamespaceNumber == 1201 ||   wgNamespaceNumber == 2000 ||   wgNamespaceNumber == 2001) {window.ajaxPages.push(wgPageName);}

// Change text of "Rename" button to "Change title" on all wikis

$('#ca-move').text("Change title");

/*********************************************************************
 * 1) Fix bugs in Internet Explorer, should I ever be forced to use it

$('head').append(''); if (window.showModalDialog && document.compatMode) { var oldWidth; var docEl = document.documentElement; function fixIEScroll { if (!oldWidth || docEl.clientWidth > oldWidth) {doFixIEScroll;} else {setTimeout(doFixIEScroll, 1);} oldWidth = docEl.clientWidth;} function doFixIEScroll {docEl.style.overflowX = (docEl.scrollWidth -        docEl.clientWidth < 4) ? 'hidden' : '';} try {document.attachEvent('onreadystatechange', fixIEScroll); attachEvent('onresize', fixIEScroll); }catch(e){}} /* Fix an overflow bug where the scrollbar would wrongly appear and function in pre elements and code blocks in Internet Explorer 6 and 7, breaking them */ //Documented at https://remysharp.com/2008/01/21/fixing-ie-overflow-problem

(function ($) { $.fn.fixOverflow = function {    if ($.browser.msie) {return this.each(function  { if (this.scrollWidth > this.offsetWidth) { $(this).css({             'padding-bottom': '20px',               'overflow-y': 'hidden'});}});} else {return this;}}; })(jQuery); $(    'pre',    'syntaxhighlight',    'source',    '.mw-geshi',    '.source-lua',    '.source-css',    '.source-javascript').fixOverflow;

window.onload = function { // only apply to IE   if (!/*@cc_on!@*/0) return;

// find every element to test var all = document.getElementsByTagName('*'), i = all.length;

// fast reverse loop while (i--) { // if the scrollWidth (the real width) is greater than // the visible width, then apply style changes if (all[i].scrollWidth > all[i].offsetWidth) { all[i].style['.paddingBottom'] = '20px'; all[i].style['.overflowY'] = 'hidden';}} };

//°°°°°°°°°°°°°°°°°°°°°°°° //Fixing PNG images bug

/*IE 6, 7 and 8*/ function msieversion { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0) {mw.util.addCSS ("img {\   background: transparent;\    -ms-filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +  //IE 8    "filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" + //IE 6 & 7          "zoom: 1;}")} }

/*IE 11*/

function msieversion { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {mw.util.addCSS ("img {\   background: transparent;\    -ms-filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +     "filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +         "zoom: 1;}")} } /*********************************************************************
 * 1) End Internet Explorer Bugfixes

//================ // Script Imports //================

importArticles({   type: 'script',    articles: [        'u:dev:MediaWiki:AjaxRC/code.js',        'u:dev:MediaWiki:AjaxUndo/code.js',        'u:dev:MediaWiki:AntiSoundcloud/code.js',        'u:dev:MediaWiki:CodeQuickLinks/code.js',        'u:dev:MediaWiki:ChromeToolbarColor.js',        'u:dev:MediaWiki:DedicatedTalkButton.js',        'u:dev:MediaWiki:EditBio/code.js',        'u:dev:FavoriteWikisPersistTab/code.js',        'u:dev:MediaWiki:GlobalEditcount/code.js',        'u:dev:LastEdited/code.js',        'u:dev:MediaWiki:JavascriptEditor.js',        'u:dev:MediaWiki:MastheadRightsBadge.js',        'u:dev:MediaWiki:NewImages.js',        "u:dev:PageCreator/code2.js",        'u:dev:PortableCSSPad/code.js',        'u:dev:MediaWiki:QuickLogs/code.js',        'u:dev:Quick_Management/code.js',        'u:dev:MediaWiki:RailWAM/code.js',        'u:dev:MediaWiki:RandomPageShortcut/code.js',        //'u:dev:MediaWiki:RecentChangesModule/code.js', // Doesn't work in current state, needs rewrite 'u:dev:MediaWiki:OldFilePages/code.js', 'u:dev:MediaWiki:ShowUserGroups.js', 'u:dev:MediaWiki:SpellCheckModule/code.js', 'u:dev:MediaWiki:UnhideUserMasthead/code.js', 'u:dev:MediaWiki:WorkingMoreUsersCount.js', 'u:dev:MediaWiki:WHAM/code.2.js' ] });

//============================================================ // Make Visual Editor links load the regular editor instead //============================================================

if ($.getUrlVar('veaction') == 'edit') {location.replace(document.URL.replace('veaction','action'));}

//============================================================================ // Don't save a page when enter is pressed in the summary box // Credit to Ciencia Al Poder. Taken from OneTwoThreeFall's Global JS. //============================================================================

if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { $('#wpSummary').keypress(function (event) {if (event.which === 13) {return false;}}); } /* Reveals a user's personal JS / CSS on their masthead (currently not in use) */

/* // Shows global codes on Community Central

if (mw.config.get('wgCityId') === '177') { (function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/global.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'global.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Global JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/global.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'global.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Global CSS' })           )        );    } }); } else { // Shows wiki-specific JS / CSS on all other wikis (function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/common.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'common.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/common.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'common.css' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'CSS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/wikia.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'wikia.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Wikia JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/wikia.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'wikia.css' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Wikia CSS' })           )        );    } }); }

// Personalized version of RestoreContribsButton.

/* Temporarily not in use. $(function {   $('.wds-community-header__wiki-buttons').remove; var config = mw.config.get([ 'wgPageName' ]);   $('.wds-community-header__top-container').append( '' + ' ' + ' '+ '<path d="M14.943 13h-3.61v3.61z"/></g> ' + ' Contribute <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron" id="wds-icons-dropdown-tiny"><path d="M6 9l4-5H2" fill-rule="evenodd"> ' + '<div class="wds-is-not-scrollable wds-dropdown__content">' + '<ul class="wds-list wds-is-linked">' + '<li><a href="/wiki/' + config.wgPageName + '?action=edit">Edit this page</a></li>' + '<li><a href="/wiki/Special:CreatePage">Add a Page</a></li>' + '<li><a href="/wiki/Special:WikiaVideoAdd">Add a Video</a></li>' + '<li><a href="/wiki/Special:Upload">Add an Image</a></li>' + '<li><a href="/wiki/Special:WikiActivity">Wiki Activity</a></li>' + '<li><a href="/wiki/Special:AdminDashboard" class="sysop-only">Admin Dashboard</a></li>' + '<li><a href="/wiki/MediaWiki:Common.css?action=edit" class="sysop-only">Edit wiki CSS</a></li>' + '<li><a href="/wiki/MediaWiki:Common.js?action=edit" class="sysop-only">Edit wiki JS</a></li>' + '<li><a href="/wiki/MediaWiki:Wikia.js?action=edit" class="sysop-only">Edit Oasis-only JS</a></li>' + '<li><a href="/wiki/MediaWiki:ImportJS?action=edit" class="sysop-only">Import JS addons</a></li>' + '<li><a href="/wiki/MediaWiki:Wiki-navigation?action=edit" class="sysop-only">Edit wiki navigation</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=purge">Reload page</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=watch">Add page to watchlist</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=unwatch">Remove page from watchlist</a></li>' + '</ul>  ');    if(wgUserGroups.indexOf('sysop') > -1 || wgUserGroups.indexOf('staff') > -1 || wgUserGroups.indexOf('helper') > -1) {        return 0;    } else {        $('a.sysop-only').remove;    } });



/*******************************************************************************
 * START GLOBAL CHAT ADDONS |||||||||||||||||||||||||||||||||

// Configurations

var chatags = { images: true, videos: true }; chatTimestamps24Hour = true;

// Contain imports in variable // Doesn't work. RIP

/*var addons = [ 'u:dev:MediaWiki:ChatOptions/code.js', 'u:dev:MediaWiki:ChatSendButton.js', 'u:dev:MediaWiki:IsTyping/code.js', 'u:dev:MediaWiki:ChatTags/code.js', 'u:dev:MediaWiki:HideChatRail/code.js', 'u:dev:MediaWiki:CapsFirst/code.js', 'u:dev:MediaWiki:ChatUserPageButton.js', 'u:dev:MediaWiki:MessageBlocker/code.js', 'u:dev:MediaWiki:ChatNotifications/code.js', 'u:dev:MediaWiki:ChatTimestamps/code.js', 'u:dev:MediaWiki:GiveChatMod/code.js', 'u:dev:MediaWiki:FasterBanModule/code.js', 'u:dev:MediaWiki:FixAdminKick/code.js', 'u:dev:MediaWiki:QuickModTools/loader.js', 'u:dev:MediaWiki:!mods/code.js', 'u:dev:MediaWiki:!kick/code.js', 'u:dev:MediaWiki:!ban/code.js', 'u:dev:MediaWiki:EmoticonsWindow/code.js', 'u:dev:MediaWiki:Tabinsert.js', 'u:dev:MediaWiki:MobileChat.js', ];*/

// Import addons

if (mw.config.get('wgCanonicalSpecialPageName') === "Chat") { // Small test for debugging console.log("Test"); // Import scripts importArticles({    type: 'script',     articles: /*addons*/ [    'u:dev:MediaWiki:ChatOptions/code.js',    'u:dev:MediaWiki:ChatSendButton.js',    'u:dev:MediaWiki:IsTyping/code.js',    'u:dev:MediaWiki:ChatTags/code.js',    'u:dev:MediaWiki:HideChatRail/code.js',    'u:dev:MediaWiki:CapsFirst/code.js',    'u:dev:MediaWiki:ChatUserPageButton.js',    'u:dev:MediaWiki:MessageBlocker/code.js',    'u:dev:MediaWiki:ExtendedPrivateMessaging/code.js',    'u:dev:MediaWiki:ChatNotifications/code.js',    'u:dev:MediaWiki:ChatTimestamps/code.js',    'u:dev:MediaWiki:GiveChatMod/code.js',    'u:dev:MediaWiki:FasterBanModule/code.js',    'u:dev:MediaWiki:FixAdminKick/code.js',    'u:dev:MediaWiki:QuickModTools/loader.js',    'u:dev:MediaWiki:!mods/code.js',    'u:dev:MediaWiki:!kick/code.js',    'u:dev:MediaWiki:!ban/code.js',    'u:dev:MediaWiki:EmoticonsWindow/code.js',    'u:dev:MediaWiki:Tabinsert.js', 'u:dev:MediaWiki:MobileChat.js' ]});}

/*******************************************************************************
 * END GLOBAL CHAT ADDONS ||||||||||||||||||||||||||||||||