MediaWiki:Mobile.js

/* Mobile Menu */ var timer = setInterval(function {    if ($('.menu ul:first').length) {         //console.log("mobile menu exists");         clearInterval(timer);         $.get('/customizations/mobilemenu.htm', function(data){ $('.menu ul:first').after(data); });

$(".menu").find(".level2").hide; // hide level2 until level1 is clicked $(".level1").click(function(event){               $(this).find(".level2").slideToggle(500);          }); // if level1 is clicked, dropdown level2 } }, 100); // check every 100ms

/* Tooltip */ $(".popup").click(function {    var $title = $(this).find(".title");    if (!$title.length) {        $(this).append(' ' + $(this).attr("title") + ' ');    } else {        $title.remove;    } });

// Creates action=raw links for JS or CSS gadgets // Useful for mw.loader.load, which doesn't accept page titles function rawPageLink( pageName ) { return mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' ) + '?title=' + mw.util.wikiUrlencode(pageName) + '&action=raw&ctype=text/javascript'; }

// Overwriting deprecated functions that don't have an exact followup but can be easily mapped: window.importScript = function ( page ) { if ( typeof page === 'string' && page.length ) { mw.loader.load( rawPageLink( page ) ); } };

/* Palette Hex Codes */ $(document).ready(function {   $('.palette2').click(function { var color = $(this).data('color'); var tempInput = document.createElement("input"); tempInput.style = "position: absolute; left: -1000px; top: -1000px"; tempInput.value = color; document.body.appendChild(tempInput); tempInput.select; document.execCommand("copy"); document.body.removeChild(tempInput); // Remove any existing notifications $('.color-notification').remove; // Create notification var notification = $(' Copied color code: ' + color + ' '); notification.css({           'position': 'absolute',            'background-color': 'var(--jjbe3)',            'color': 'white',            'padding': '10px',            'border-radius': '5px',            'z-index': '1000'        }); // Position notification near the clicked color box var position = $(this).position; position.top -= $(this).height; notification.css(position); $(this).parent.append(notification); // Fade out and remove notification after 3 seconds setTimeout(function {           notification.fadeOut('slow', function { notification.remove; });       }, 3000);    }); });

$(document).ready(function { // Get the anchor hash from the URL  var anchorHash = window.location.hash.substring(1);  // Find the matching collapsible element  var collapsibleElement = document.getElementById(anchorHash);

if (collapsibleElement) { // Remove the "mw-collapsed" class collapsibleElement.classList.remove("mw-collapsed"); // Change the class of the nested span to "mw-collapsible-toggle-expanded" var nestedSpan = collapsibleElement.querySelector(".mw-collapsible-toggle"); if (nestedSpan) { nestedSpan.classList.remove("mw-collapsible-toggle-collapsed"); nestedSpan.classList.add("mw-collapsible-toggle-expanded"); nestedSpan.querySelector("a.mw-collapsible-text").textContent = "Collapse"; nestedSpan.setAttribute("aria-expanded", "true"); }   // Display the collapsible content var collapsibleContent = collapsibleElement.querySelector(".note-bottom"); if (collapsibleContent) { collapsibleContent.style.display = "block"; } } });