MediaWiki:Common.js

From Dragon Quest Wiki
Revision as of 18:18, 16 October 2013 by FlyingRagnar (talk | contribs)
Jump to navigation Jump to search

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. */

/***********************************************************
 *  Name: createJQueryTabs
 *  Description: Runs at page load, inserts jQuery tabs into a page wherever a <div> with class "tabs" is found.
 *  Maintainers: [[User:FlyingRagnar]]
 *  Additional Notes: This function effectively replaces the Tabber extension which was 
 *  previously used to insert tabs into a page.  The template [[Template:VersionTabs]] is
 *  the primary method to use when inserting jQuery tabs into a page.  It is tightly 
 *  coupled to this function.
 */
mw.loader.load( 'jquery.ui.tabs' );
function createJQueryTabs()
{
    var tabGroup = 0;
    var Tabs = document.getElementsByTagName( "div" );
 
    for ( var i = 0; i < Tabs.length; i++ ) {
        if ( hasClass( Tabs[i], "tabs" ) ) {
 
            Tabs[i].setAttribute("id", "tabs" + tabGroup);

            var children = Tabs[i].childNodes;
            var h = 0;
            for( var j = 0; j < children.length; j++ ) {
               if ( children[j].nodeName == "UL" ) {
                  var Tlinks = children[j].getElementsByTagName( "a" );
                  for( var k = h; k < Tlinks.length; k++ ) {
                     Tlinks[k].setAttribute("href", "#tabs" + tabGroup + "-" + (k+1)); 
                  }
               } else if ( children[j].nodeName == "DIV" ) {
                  children[j].setAttribute("id", "tabs" + tabGroup + "-" + (h+1));
                  h++; 
               }
            }
            // apply the jQuery code to take effect
            jQuery( "#tabs" + tabGroup ).tabs({ /*event: "mouseover"*/ });
            tabGroup++;
        }
    }
} 

mw.loader.load( 'jquery.ui.accordion' );
function accordionVideos()
{
   jQuery( "#accordion" ).accordion({ collapsible: true, active: false });
} 

jQuery( document ).ready( function( $ ) {
        mw.loader.using( 'jquery.ui.tabs', function() {createJQueryTabs();} );
        mw.loader.using( 'jquery.ui.accordion', function() {accordionVideos();} );
        createSpoilerCollapseButtons();

} );