User:SBJohnny/monobook.js

function formatBookHeading { // Grab all the h1 elements within the document var h1Elements = document.getElementsByTagName('h1'); // We need to check every h1 element in the document: for (i = 0; i < h1Elements.length; i++) {  // But we only want to modify the h1 elements that have the // class of "firstHeading". if (h1Elements[i].className == "firstHeading") {    // Then use the / to split the heading into it's parts var headings = h1Elements[i].innerHTML.split('/'); //    // If there is only one heading (ie, the Book Title), then // leave it as the h1 element and do nothing. Otherwise // we want to set the Chapter:Subchapter as the h1 heading, // and put the book title as a paragraph _before_ the h1    // heading? (Just check this, I think that's what you're after?    //     if (headings.length > 1)     {       // First, create the paragraph that will contain the       // book title, and give it a class so we can style it from CSS.       var bookTitle = document.createElement('p');       bookTitle.setAttribute("class","booktitle");       // Then for the IE bug:       bookTitle.setAttribute("className","booktitle");       // And add the Booktitle text from the original heading       bookTitle.innerHTML=headings[0];       // Next, set the h1 heading to the Chapter title:       h1Elements[i].innerHTML = headings[1];       // Check if there's a third sub heading:       if (headings.length == 3)       {         var subchapter = document.createElement('span');         subchapter.innerHTML = ":" + headings[2];         // and add the subchapter to the h1 heading:         h1Elements[i].appendChild(subchapter); }      // Finally, add the book title before the h1 heading: h1Elements[i].parentNode.insertBefore(bookTitle, h1Elements[i]); // Finally, add the chapter element after the heading. //h1Elements[i].parentNode.insertBefore(chapter, h1Elements[i].nextSibling); }

} // end if class=firstHeading } //end for loop }

if (window.addEventListener) window.addEventListener("load",formatBookHeading,false); else if (window.attachEvent) window.attachEvent("onload",formatBookHeading);