<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cohwiki.slitherine.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cohwiki.slitherine.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-04-06T04:56:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;diff=349&amp;oldid=prev</id>
		<title>Valery at 01:44, 31 May 2012</title>
		<link rel="alternate" type="text/html" href="https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;diff=349&amp;oldid=prev"/>
		<updated>2012-05-31T01:44:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;amp;diff=349&amp;amp;oldid=345&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Valery</name></author>
	</entry>
	<entry>
		<id>https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;diff=345&amp;oldid=prev</id>
		<title>Valery: Created page with &quot;/* Any JavaScript here will be loaded for all users on every page load. */  /** Collapsible tables *********************************************************  *  *  Description...&quot;</title>
		<link rel="alternate" type="text/html" href="https://cohwiki.slitherine.com/index.php?title=MediaWiki:Common.js&amp;diff=345&amp;oldid=prev"/>
		<updated>2012-05-28T22:45:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Any JavaScript here will be loaded for all users on every page load.: &lt;/span&gt;  /** Collapsible tables *********************************************************  *  *  Description...&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
/** Collapsible tables *********************************************************&lt;br /&gt;
 *&lt;br /&gt;
 *  Description: Allows tables to be collapsed, showing only the header. See&lt;br /&gt;
 *                         http://www.mediawiki.org/wiki/Manual:Collapsible_tables.&lt;br /&gt;
 *  Maintainers: [[en:User:R. Koot]]&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
var autoCollapse = 2;&lt;br /&gt;
var collapseCaption = 'hide';&lt;br /&gt;
var expandCaption = 'show';&lt;br /&gt;
 &lt;br /&gt;
function collapseTable( tableIndex ) {&lt;br /&gt;
        var Button = document.getElementById( 'collapseButton' + tableIndex );&lt;br /&gt;
        var Table = document.getElementById( 'collapsibleTable' + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
        if ( !Table || !Button ) {&lt;br /&gt;
                return false;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        var Rows = Table.rows;&lt;br /&gt;
 &lt;br /&gt;
        if ( Button.firstChild.data == collapseCaption ) {&lt;br /&gt;
                for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
                        Rows[i].style.display = 'none';&lt;br /&gt;
                }&lt;br /&gt;
                Button.firstChild.data = expandCaption;&lt;br /&gt;
        } else {&lt;br /&gt;
                for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
                        Rows[i].style.display = Rows[0].style.display;&lt;br /&gt;
                }&lt;br /&gt;
                Button.firstChild.data = collapseCaption;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function createCollapseButtons() {&lt;br /&gt;
        var tableIndex = 0;&lt;br /&gt;
        var NavigationBoxes = new Object();&lt;br /&gt;
        var Tables = document.getElementsByTagName( 'table' );&lt;br /&gt;
 &lt;br /&gt;
        for ( var i = 0; i &amp;lt; Tables.length; i++ ) {&lt;br /&gt;
                if ( hasClass( Tables[i], 'collapsible' ) ) {&lt;br /&gt;
 &lt;br /&gt;
                        /* only add button and increment count if there is a header row to work with */&lt;br /&gt;
                        var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];&lt;br /&gt;
                        if ( !HeaderRow ) {&lt;br /&gt;
                                continue;&lt;br /&gt;
                        }&lt;br /&gt;
                        var Header = HeaderRow.getElementsByTagName( 'th' )[0];&lt;br /&gt;
                        if ( !Header ) {&lt;br /&gt;
                                continue;&lt;br /&gt;
                        }&lt;br /&gt;
 &lt;br /&gt;
                        NavigationBoxes[tableIndex] = Tables[i];&lt;br /&gt;
                        Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
                        var Button = document.createElement( 'span' );&lt;br /&gt;
                        var ButtonLink = document.createElement( 'a' );&lt;br /&gt;
                        var ButtonText = document.createTextNode( collapseCaption );&lt;br /&gt;
 &lt;br /&gt;
                        Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]&lt;br /&gt;
 &lt;br /&gt;
                        ButtonLink.style.color = Header.style.color;&lt;br /&gt;
                        ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );&lt;br /&gt;
                        ButtonLink.setAttribute( 'href', &amp;quot;javascript:collapseTable(&amp;quot; + tableIndex + &amp;quot;);&amp;quot; );&lt;br /&gt;
                        ButtonLink.appendChild( ButtonText );&lt;br /&gt;
 &lt;br /&gt;
                        Button.appendChild( document.createTextNode( '[' ) );&lt;br /&gt;
                        Button.appendChild( ButtonLink );&lt;br /&gt;
                        Button.appendChild( document.createTextNode( ']' ) );&lt;br /&gt;
 &lt;br /&gt;
                        Header.insertBefore( Button, Header.childNodes[0] );&lt;br /&gt;
                        tableIndex++;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        for ( var i = 0;  i &amp;lt; tableIndex; i++ ) {&lt;br /&gt;
                if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex &amp;gt;= autoCollapse &amp;amp;&amp;amp; hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {&lt;br /&gt;
                        collapseTable( i );&lt;br /&gt;
                } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {&lt;br /&gt;
                        var element = NavigationBoxes[i];&lt;br /&gt;
                        while ( element = element.parentNode ) {&lt;br /&gt;
                                if ( hasClass( element, 'outercollapse' ) ) {&lt;br /&gt;
                                        collapseTable( i );&lt;br /&gt;
                                        break;&lt;br /&gt;
                                }&lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
addOnloadHook( createCollapseButtons );&lt;br /&gt;
 &lt;br /&gt;
/** Test if an element has a certain class **************************************&lt;br /&gt;
 *&lt;br /&gt;
 * Description: Uses regular expressions and caching for better performance.&lt;br /&gt;
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
var hasClass = ( function() {&lt;br /&gt;
        var reCache = {};&lt;br /&gt;
        return function( element, className ) {&lt;br /&gt;
                return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( &amp;quot;(?:\\s|^)&amp;quot; + className + &amp;quot;(?:\\s|$)&amp;quot; ) ) ).test( element.className );&lt;br /&gt;
        };&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Valery</name></author>
	</entry>
</feed>