User:Flatscan/showCCI.js

// works with Template:CCI item

const hideCaption = "hide"; const showCaption = "show";

const CCI_item_hide_class = "CCI_item_hide"; function showCCI_toggleCCIItem(itemIndex) {   var itm = document.getElementById("cciItem" + itemIndex); var button = document.getElementById("cciButton" + itemIndex);

if (!itm || !button) { return false; }

if (itm.style.display == "none") { itm.style.display = "inline"; button.firstChild.data = hideCaption; } else { itm.style.display = "none"; button.firstChild.data = showCaption; } }

function showCCI_createToggleButtons {   var itemIndex = 0; var spans = document.getElementsByTagName("span");

for (var i = 0; i < spans.length; i++) { if (!$(spans[i]).hasClass(CCI_item_hide_class)) { continue; }

var itm = spans[i]; itm.setAttribute("id", "cciItem" + itemIndex);

var button    = document.createElement("span"); var buttonLink = document.createElement("a"); caption = itm.style.display == "none" ? showCaption : hideCaption; var buttonText = document.createTextNode(caption);

buttonLink.setAttribute("id", "cciButton" + itemIndex); buttonLink.setAttribute("href", "javascript:showCCI_toggleCCIItem(" + itemIndex + ");"); buttonLink.appendChild(buttonText);

button.appendChild(document.createTextNode("[")); button.appendChild(buttonLink); button.appendChild(document.createTextNode("]"));

itm.parentNode.insertBefore(button, itm.nextSibling); itemIndex++; } }

$(showCCI_createToggleButtons);