User:Bob/script/hideyellowboxes.js

$(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;

}