$(function(){
if(wgNamespaceNumber > 0 && wgNamespaceNumber % 2 != 0) { // if we're on a talk page
/* do you want the templates to be collapsed on page load? */
var autocollapse = true;
var els = new Array();
els['chick'] = "next($('contentSub'))";
els['modern'] = "next($('contentSub'))";
els['monobook'] = "next($('contentSub'))";
els['myskin'] = "next($('contentSub'))";
els['simple'] = "next($('contentSub'))";
els['standard'] = "next($('catlinks'))";
els['cologneblue'] = "next($('article').childNodes[1])";
els['nostalgia'] = "$('article').childNodes[0]";
var pageEl = eval(els[skin]);
while(pageEl.className.search(/catlinks|pagetitle|subtitle/i) != -1
|| pageEl.id.search(/jump-to-nav|contentSub/i) != -1) {
pageEl = next(pageEl);
}
if (isYellowBox(pageEl)) { // if there's a yellow box at the beginning
var tableIndex = 'YellowBoxes';
var collapseCaption = "hide";
var expandCaption = "show";
var table = document.createElement('table');
table.className = 'messagebox standard-talk collapsible collapsed';
table.style.background = 'transparent';
table.style.border = '1px solid #AAAAAA';
table.setAttribute( "id", "collapsibleTable" + tableIndex );
var headtr = table.insertRow(0);
var header = document.createElement("th");
header.appendChild( document.createTextNode( "Talk page templates" ) );
header.style.textAlign = "center";
var bodytr = table.insertRow(1);
var td = bodytr.insertCell(0);
headtr.appendChild(header);
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] );
pageEl.parentNode.insertBefore(table,pageEl); // insert our table
var templates = new Array();
while(isYellowBox(pageEl)) { // keep moving through the page until we run out of yellow boxes
templates.push(pageEl);
pageEl = next(pageEl);
}
for (i = 0; i < templates.length; i++) {
templates[i] = wrapInMessageBox(templates[i],td); // put the templates in our new table
}
if(autocollapse)
collapseTable('YellowBoxes'); // collapse the table
}
}
});
function isYellowBox(el) {
if(el.className.search(/messagebox|standard-talk/i) != -1)
return true;
else
return false;
}
function wrapInMessageBox(el,wrapper) {
var newEl = el.cloneNode(true);
wrapper.appendChild(newEl);
el.parentNode.removeChild(el);
return newEl;
}
function next(el) {
el = el.nextSibling;
while (el.nodeType != 1) { // fix for Firefox
el = el.nextSibling;
}
return el;
}
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}