Difference between revisions of "User:Cheese/monobook.js"

From Pandora Wiki
Jump to: navigation, search
(New page: Any JavaScript here will be loaded for all users on every page load.: /* Test if an element has a certain class ************************************** * Note: this is straight out ...)
 
(ok, I get it now. This page must be specific to the monobook theme, which we're not using.)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
 
  
 
/* Test if an element has a certain class **************************************
 
* Note: this is straight out of Wikipedia's Common.js (http://en.wikipedia.org/wiki/MediaWiki:Common.js)
 
*/
 
 
var hasClass = (function () {
 
    var reCache = {};
 
    return function (element, className) {
 
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 
    };
 
})();
 
 
 
/** Hideable notes  *********************************************************
 
* This is based off of code from Wikipedia's Common.js (http://en.wikipedia.org/wiki/MediaWiki:Common.js)
 
*/
 
 
function showNotes( spanIndex )
 
{
 
    var Button = document.getElementById( "showNoteLink" + spanIndex );
 
    var Span = document.getElementById( "showNotes" + spanIndex );
 
 
    if (!Span || !Button)
 
    {
 
        return false;
 
    }
 
 
    if (Button.firstChild.data == "[show]")
 
    {
 
        Span.style.display = "inline";
 
        Button.firstChild.data = " [hide]";
 
    }
 
    else
 
    {
 
        Span.style.display = "none";
 
        Button.firstChild.data = "[show]";
 
    }
 
}
 
 
function createShowNotesLinks()
 
{
 
    var spanIndex = 0;
 
    var Spans = document.getElementsByTagName( "span" );
 
    var CurrentSpan = new Object();
 
 
    for ( var i = 0; i < Spans.length; i++ )
 
    {
 
        if ( hasClass( Spans[i], "hiddenNotes" ) )
 
        {
 
            CurrentSpan = Spans[i];
 
            CurrentSpan.setAttribute( "id", "showNotes" + spanIndex );
 
 
            var Button    = document.createElement( "span" );
 
            var ButtonLink = document.createElement( "a" );
 
            var ButtonText = document.createTextNode( "[show]" );
 
 
            ButtonLink.setAttribute( "id", "showNoteLink" + spanIndex );
 
            ButtonLink.setAttribute( "href", "#" );
 
            addHandler( ButtonLink,  "click", new Function( "evt", "showNotes(" + spanIndex + " ); return killEvt( evt );") );
 
            ButtonLink.appendChild( ButtonText );
 
 
            Button.appendChild(document.createTextNode( " " ));
 
            Button.appendChild(ButtonLink);
 
 
            CurrentSpan.parentNode.insertBefore( Button, CurrentSpan.nextSibling );
 
            CurrentSpan.style.display="none";
 
 
            spanIndex++;
 
        }
 
    }
 
}
 
 
addonloadHook( createShowNotesLinks );
 

Revision as of 18:19, 18 July 2010