User:Korath/Spoiler.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
function hide_spoilerbox(num) { document.getElementById("spoilercontents_" + num).style.display="none"; var lk = document.getElementById("spoilerlk_" + num); lk.replaceChild(document.createTextNode("show"), lk.firstChild); lk.setAttribute("href", "javascript:show_spoilerbox(" + num + ")"); } function show_spoilerbox(num) { document.getElementById("spoilercontents_" + num).style.display=""; var lk = document.getElementById("spoilerlk_" + num); lk.replaceChild(document.createTextNode("hide"), lk.firstChild); lk.setAttribute("href", "javascript:hide_spoilerbox(" + num + ")"); } function setup_spoilerbox(initial) { var divs = document.getElementsByTagName("div"); var box; var contents; var lk; var txt; if (divs && document.getElementById) for (var x = 0; x < divs.length; ++x) if (divs[x].className.indexOf("spoilerbox") != -1) { box = divs[x].getElementsByTagName("table")[0].getElementsByTagName("tr"); contents = box[1]; contents.id = "spoilercontents_" + x; box = box[0].getElementsByTagName("td")[0].getElementsByTagName("div")[0]; var lk = document.createElement('a'); if (initial) { lk.setAttribute("href", "javascript:hide_spoilerbox(" + x + ")"); lk.appendChild(document.createTextNode("hide")); } else { lk.setAttribute("href", "javascript:show_spoilerbox(" + x + ")"); lk.appendChild(document.createTextNode("show")); contents.style.display="none"; } lk.id = "spoilerlk_" + x; box.appendChild(document.createTextNode(" [")); box.appendChild(lk); box.appendChild(document.createTextNode("]")); } } function load_spoilerbox() { // use setup_spoilerbox(false) instead to hide spoiler boxes by default setup_spoilerbox(true); } if (window.addEventListener) window.addEventListener("load", load_spoilerbox, false); else if (window.attachEvent) window.attachEvent("onload", load_spoilerbox);