// Navigate Tabs. Allows for lots of information to be displayed on a page in a more compact form. // Maintained by [[User:Darklama]] function Navigate_Tabs() { function clicked_tab( e ) { var $target = $( e.target ), id = e.target.hash; if ( !$target.is( 'a' ) || !id ) { return true; } $target = $(this).siblings( id ); if ( !$target.hasClass( 'contents' ) || !$target.parent().hasClass( 'navtabs' ) ) { return true; } e.preventDefault(); $target.parent().children( '.tabs' ).find( 'a' ).each( function() { if ( this.hash !== id ) { $(this).parent().addClass( 'inactive' ).removeClass( 'selected' ); } else { $(this).parent().addClass( 'selected' ).removeClass( 'inactive' ); } } ); $target.parent().children( '.contents' ).hide(); $target.show(); } mw.util.$content.find('.navtabs').each( function() { var $this = $(this), $p = $this.children( 'p' ), $tabs, $any; // remove any surrounding paragraph first $p.has( '.tabs' ).before( $p.children( '.tabs' ) ).remove(); // deal with clicks, and show default $tabs = $this.children( '.tabs' ).click( clicked_tab ); $any = $tabs.children( '.selected' ).find('a[href^="#"]').click(); if ( !$any.length ) { $tabs.children(':first-child').find('a[href^="#"]').click(); } } ); } $(document).ready(Navigate_Tabs);