MediaWiki:Common.js: Difference between revisions

no edit summary
No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
Line 28: Line 28:
         if (typeof(toggles) == "string")
         if (typeof(toggles) == "string")
         {
         {
             toggles = allClasses[toggles];
             if (toggles.charAt(0) == '-')
            {
                // treat as an element ID, not as class
                toggles = document.getElementById(toggles.substring(1));
                if (toggles)
                    toggles = new Array(toggles);
            }
            else
                toggles = allClasses[toggles];
         }
         }
         if (!toggles || !toggles.length)
         if (!toggles || !toggles.length)
Line 74: Line 82:
{
{
     var togglerElems = [];
     var togglerElems = [];
    var toggleGroup = [];


     // initialize/clear any old information
     // initialize/clear any old information
Line 81: Line 90:
     // make list of all document classes
     // make list of all document classes
     var elems = document.getElementsByTagName("*");
     var elems = document.getElementsByTagName("*");
    var numelems = elems.length;
     for (var i = 0; i < elems.length; i++)
     for (var i = 0; i < elems.length; i++)
     {
     {
Line 93: Line 103:
         {
         {
             var elemClass = elemClasses[j];
             var elemClass = elemClasses[j];
            if (! allClasses[elemClass])
// all the special classes begin with _toggle
                allClasses[elemClass] = [];
            allClasses[elemClass].push(elem);
 
            // all the special classes begin with _toggle
             if (elemClass.substring(0, 7) != "_toggle")
             if (elemClass.substring(0, 7) != "_toggle")
                 continue;
                 continue;


             if (elemClass.substring(0, 12) == "_toggle_init")
             if (elemClass == "_togglegroup")
                toggleGroup = [];
            else if (elemClass == "_toggle")
                toggleGroup.push(elem);
            else if (elemClass.substring(0, 12) == "_toggle_init")
             {
             {
                 // set initial value for display (ignore the original CSS set value)
                 // set initial value for display (ignore the original CSS set value)
Line 123: Line 140:
                 var toBeToggled;
                 var toBeToggled;
                 var hyphen = elemClass.indexOf('-');
                 var hyphen = elemClass.indexOf('-');
                  
                 if (hyphen != -1)
if (hyphen != -1)
                     toBeToggled = elemClass.substring(hyphen+1);
                     toBeToggled = elemClass.substring(hyphen+1);
                else
                {
                    toBeToggled = toggleGroup;
                    hyphen = elemClass.length;
                }


                 var op = elemClass.substring(8, hyphen);
                 var op = elemClass.substring(8, hyphen);
var collection = document.getElementsByClassName(toBeToggled)
for (var a=[], i=collection.length; i;) a[--i] = collection[i];
if (! allClasses[toBeToggled])
allClasses[toBeToggled] = a;
                 togglers[togglerID].push(new Array(op, toBeToggled));
                 togglers[togglerID].push(new Array(op, toBeToggled));
             }
             }