MediaWiki:Common.js
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */ $( function() { var pops = function( elems ) { for (var i=0; i<elems.length; i++) { if ( !(' '+elems[i].className+' ').match( / pops / ) ) continue; var anchs = elems[i].getElementsByTagName('a'); for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank'; } }; var bc = document.getElementById('bodyContent'); var tags = ['span', 'div', 'table', 'td', 'th']; for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( tags[i] ) ); } ); function ModifySidebar(action, section, name, link) { try { switch (section) { case "languages": var target = "p-lang"; break; case "toolbox": var target = "p-tb"; break; case "navigation": var target = "p-navigation"; break; default: var target = "p-" + section; break; } if (action == "add") { var node = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var aNode = document.createElement('a'); var liNode = document.createElement('li'); aNode.appendChild(document.createTextNode(name)); aNode.setAttribute('href', link); liNode.appendChild(aNode); liNode.className='plainlinks'; node.appendChild(liNode); } if (action == "remove") { var list = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var listelements = list.getElementsByTagName('li'); for (var i = 0; i < listelements.length; i++) { if (listelements[i].getElementsByTagName('a')[0].innerHTML == name || listelements[i].getElementsByTagName('a')[0].href == link) { list.removeChild(listelements[i]); } } } } catch(e) { // lets just ignore what's happened return; } } $ ( function(){ $( 'table.collapsible' ).each(function(i, tab){ var head = $(tab).find( 'tr th' ).first(); if (!head.length) return; head.css('cursor', 'pointer'); var toggle = function(e){ head.closest('tr').parent().children(':not(:first)').toggle(); }; head.click(toggle); if ($(tab).hasClass('collapsed')){ toggle(); } }); } ); function CustomizeModificationsOfSidebar() { //adds [[Special:CategoryTree]] to toolbox ModifySidebar("add", "tutorials", "First Steps", "http://wiki.industrial-craft.net/index.php?title=Tutorial:First_Steps"); ModifySidebar("add", "tutorials", "Wiring", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Wiring"); ModifySidebar("add", "tutorials", "Nuclear Power", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Nuclear_Power"); //ModifySidebar("add", "tutorials", "Pirate's Guide to Industrial Craft", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Pirate's Guide to Industrial Craft"); ModifySidebar("add", "navigation", "Download", "http://wiki.industrial-craft.net/index.php?title=Download"); ModifySidebar("add", "navigation", "Version History", "http://wiki.industrial-craft.net/index.php?title=Updates"); ModifySidebar("add", "navigation", "Recipes & Resources", "http://wiki.industrial-craft.net/index.php?title=Recipes_and_Resources"); ModifySidebar("add", "navigation", "Forum", "http://forum.industrial-craft.net/"); ModifySidebar("add", "navigation", "Blog", "http://industrial-craft.net/"); ModifySidebar("add", "navigation", "April Fool 2012", "http://wiki.industrial-craft.net/index.php?title=April_Fools_Joke_2012"); //ModifySidebar("add", "navigation", "Mine4Dead", "http://wiki.industrial-craft.net/index.php?title=Mine4Dead:Main_Page"); //ModifySidebar("add", "navigation", "MedievalCraft", "http://wiki.industrial-craft.net/index.php?title=MedievalCraft-Mod:Main_Page"); ModifySidebar("add", "navigation", "AntiGriefer-Community", "http://wiki.industrial-craft.net/index.php?title=AntiGriefer-Community"); ModifySidebar("add", "navigation", "Banners", "http://wiki.industrial-craft.net/index.php?title=Banner"); ModifySidebar("add", "navigation", "Achievements", "http://wiki.industrial-craft.net/index.php?title=Achievements"); ModifySidebar("remove", "toolbox", "Permanent Link", "http://wiki.industrial-craft.net/index.php/Main_Page&oldid=829"); } $(CustomizeModificationsOfSidebar); $(document).ready(function() { $('.animated-grids').each(function() { $(this).children().first().addClass('active'); }); setInterval(function() { $('.animated-grids').each(function() { var $current = $(this).children('.active'); var $next = $current.nextAll(':not(.skip):first'); if (!$next.length) { $next = $(this).children(':not(.skip):first'); } $current.removeClass('active'); $next.addClass('active'); }); }, 2000); $('.animated-text').each(function() { $(this).children().first().addClass('active'); }); setInterval(function() { $('.animated-text').each(function() { var $current = $(this).children('.active'); var $next = $current.nextAll(':not(.skip):first'); if (!$next.length) { $next = $(this).children(':not(.skip):first'); } $current.removeClass('active'); $next.addClass('active'); }); }, 5000); }); /****************************************** * Tooltip Generator * *****************************************/ $(function() { var selector = '.tooltip, .a1'; $('#tooltip-display').remove(); var mc_tooltip = function() { // Check to see if we've already created the div if (!$('#tooltip-display').length) { $('body').append($('<div id="tooltip-display">') .hide()); } return $('#tooltip-display'); }; $("body").on('mouseenter', selector, function(e) { var $me = $(this); // Make sure this isn't a link to upload a new file if ($me.find('.new').length > 0) { // This isn't one we want to show a tooltip for return; } // Try to get the title var title = $me.data('tooltip'); // See if we can find a title elsewhere // Check this element or its child if (title === undefined) { title = $me.attr('title') || $me.children(':first').attr('title') || $me.find('img:first').attr('alt'); // Check if we found anything if (title) { // Save it for later $me.data('tooltip', title); } else { // Didn't find anything, no sense continuing return; } } // Remove any title elements to avoid the default tooltip $me.add('*', $me).filter('[title]').removeAttr('title'); //Old methods of turning \ into <br/> /*title = title.replace('Grid',"").replace('.png',"").replace("\\","<br/><span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">").trim() + "</span>"; title = title.replace("\\","<br/><span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">").trim() + "</span>";*/ var stitle = title.split("\\"); title = stitle[0]; if (stitle.length > 1) { title += "<br/>"; for (var i = 1; i < stitle.length; i++) { title += "<span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">" + stitle[i].trim() + "</span>"; } } // Add the text to the tooltip mc_tooltip().html(title.replace(/_/g, " ")); // Need to update the position to the cursor position $me.trigger('mousemove', e); }) .on('mousemove', selector, function (e) { // Check if the element exists already, create it if it doesn't if (!$('#tooltip-display').length) { $(this).trigger('mouseenter'); return; } // Get dimensions for bounds checking var top = e.pageY - 30, height = mc_tooltip().outerHeight(true), left = e.pageX + 15, width = mc_tooltip().outerWidth(true); // Get window dimensions var $w = $(window), win_width = $w.width(), win_height = $w.height(); // If going off the right of the screen, go to the left of the cursor if ( left + width > win_width ) { left -= width + 36; } // If now going off to the left of the screen, resort to going above the cursor if ( left < 0 ) { left = 0; top -= height - 22; // Go below the cursor if too high if ( top < 0 ) { top += height + 47; } // Don't go off the top of the screen } else if ( top < 0 ) { top = 0; }/* // Don't go off the bottom of the screen } else if ( top + height > win_height ) { top = win_height - height; }*/ // Apply the position mc_tooltip().css({ top: top, left: left }).show(); }) .on('mouseleave', selector, function (e) { mc_tooltip().hide(); }); }); /****************************************** * Infobox Collapser * *****************************************/ $( ".infoboxBlockImage img" ).each( function() { var width = parseInt( $( this ).attr( "width" ), 10); if ( width > 240 ) { $( this ).attr( "height", "" ); $( this ).attr( "width", "240" ); } }); $( ".infobox:not(.infoboxNoCollapse) td" ).each( function() { if (( $( this ).html().match( /{{{[^}]+}}}/ ) || $( this ).html() === "\n") && !$( this ).parent( "tr" ).hasClass( "infoboxSubsectionBreak")) { $( this ).parent( "tr" ).hide(); } }); // TODO: Make less dodgy $( ".infobox:not(.infoboxNoCollapse) tr.infoboxSectionHeader" ).each( function() //.infobox:not(.infoboxNoCollapse) .infoboxSubsectionBreak, { var flag = true, next = $( this ).next(); //console.log("\nNew Section\n"); var line = false; var draw_line = null; while ( next && next !== undefined && next.html() !== undefined && !next.hasClass( "infoboxSectionHeader") ) // && !next.hasClass( "infoboxSubsectionBreak" ) && { if (next.hasClass( "infoboxSubsectionBreak" )) { //console.log("Next Line Break:"); //console.log(next); line = false; draw_line = next; } if ( next.css( "display" ) != "none" && !next.hasClass( "infoboxSubsectionBreak" ) ) { //console.log("So this is making it shown"); //console.log(next); //console.log(next.html()); flag = false; line = true; } next = next.next(); } if ( flag ) { //console.log("Nothing made this section show"); $( this ).hide(); } if ( !line && draw_line !== null ) { try{draw_line.style.display = "none";}catch(TypeError){} //I think it has issues with the first object } }); if(wgPageName === "User:Chocohead/Sandpit") { importScript("User:Chocohead/Lift.js"); }