MediaWiki:Common.js: Difference between revisions
From Pikmin Fanon
(same code) |
No edit summary |
||
Line 98: | Line 98: | ||
addOnloadHook( createCollapseButtons ); | addOnloadHook( createCollapseButtons ); | ||
/* Tabber */ | |||
addOnloadHook(mainpageTabs) | |||
function mainpageTabs() { | |||
if(!document.getElementById('tabbyHead') || !document.getElementById('tabbyBoxes')) return | |||
var box = document.getElementById('tabbyBoxes') | |||
tabbyBoxen = getElementsByClassName(document, 'div', 'tabbyBox'); //global | |||
tabbyLinks = document.getElementById('tabbyHead').getElementsByTagName('a') | |||
showbox(0); | |||
if(tabbyLinks.length < tabbyBoxen.length) { | |||
var len = tabbyLinks.length; | |||
} else { | |||
var len = tabbyBoxen.length; | |||
} | |||
for(var i=0;i<len;i++) { | |||
tabbyLinks[i].href = 'javascript:showbox("' + i + '");' | |||
tabbyLinks[i].title = 'click to display' | |||
} | |||
} | |||
function showbox(num) { | |||
for(var i=0;i<tabbyBoxen.length;i++) { | |||
if(i==num) { | |||
tabbyBoxen[i].style.display = 'block'; | |||
} else { | |||
tabbyBoxen[i].style.display = 'none'; | |||
} | |||
} | |||
for(var i=0;i<tabbyLinks.length;i++) { | |||
if(i==num) { | |||
tabbyLinks[i].className = 'selected'; | |||
} else { | |||
tabbyLinks[i].className = ''; | |||
} | |||
} | |||
} |
Revision as of 23:55, 13 September 2010
/* Any JavaScript here will be loaded for all users on every page load. */
/* Rename Main Page tab */
if (wgPageName == 'Main_Page' || wgPageName == 'Talk:Main_Page')
addOnloadHook(function () {
var nstab = document.getElementById('ca-nstab-main')
if (nstab && wgUserLanguage=='en') {
while (nstab.firstChild) nstab = nstab.firstChild
nstab.nodeValue = 'Main Page'
}
}
)
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
/* only add button and increment count if there is a header row to work with */
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
if (!HeaderRow) continue;
var Header = HeaderRow.getElementsByTagName( "th" )[0];
if (!Header) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
collapseTable( i );
}
}
}
addOnloadHook( createCollapseButtons );
/* Tabber */
addOnloadHook(mainpageTabs)
function mainpageTabs() {
if(!document.getElementById('tabbyHead') || !document.getElementById('tabbyBoxes')) return
var box = document.getElementById('tabbyBoxes')
tabbyBoxen = getElementsByClassName(document, 'div', 'tabbyBox'); //global
tabbyLinks = document.getElementById('tabbyHead').getElementsByTagName('a')
showbox(0);
if(tabbyLinks.length < tabbyBoxen.length) {
var len = tabbyLinks.length;
} else {
var len = tabbyBoxen.length;
}
for(var i=0;i<len;i++) {
tabbyLinks[i].href = 'javascript:showbox("' + i + '");'
tabbyLinks[i].title = 'click to display'
}
}
function showbox(num) {
for(var i=0;i<tabbyBoxen.length;i++) {
if(i==num) {
tabbyBoxen[i].style.display = 'block';
} else {
tabbyBoxen[i].style.display = 'none';
}
}
for(var i=0;i<tabbyLinks.length;i++) {
if(i==num) {
tabbyLinks[i].className = 'selected';
} else {
tabbyLinks[i].className = '';
}
}
}