|
|
| Zeile 1: |
Zeile 1: |
| /**
| | onloadFuncts[onloadFuncts.length] = function() { |
| Toggles the display of elements on a page
| | if ($('.references li').size() < 4) |
| Author/contact: Austin Che http://openwetware.org/wiki/User:Austin
| | $('.references').parent().css({ 'column-count': '1', '-moz-column-count': '1', '-webkit-column-count': '1' }); |
| */
| |
| | |
| // indexed array of toggler ids to array of associated toggle operations
| |
| // each operation is a two element array, the first being the type, the second a class name or array of elements
| |
| // operation types are strings like "_reset" or "" for the default toggle operation
| |
| var togglers = new Array();
| |
| var allClasses = new Object(); // associative map of class names to page elements
| |
| | |
| function toggler(id) | |
| { | |
| var toBeToggled = togglers[id];
| |
| if (!toBeToggled)
| |
| return;
| |
| | |
| // if some element is in list more than once, it will be toggled multiple times
| |
| for (var i = 0; i < toBeToggled.length; i++)
| |
| {
| |
| // get array of elements to operate on
| |
| var toggles = toBeToggled[i][1];
| |
| if (typeof(toggles) == "string")
| |
| {
| |
| 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)
| |
| continue;
| |
| | |
| var op = toBeToggled[i][0]; // what the operation will be
| |
| | |
| switch (op)
| |
| {
| |
| case "_reset":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = toggles[j]._toggle_original_display;
| |
| break;
| |
| case "_show":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = '';
| |
| break;
| |
| case "_hide":
| |
| for (var j in toggles)
| |
| toggles[j].style.display = 'none';
| |
| break;
| |
| case "":
| |
| default:
| |
| // Toggle
| |
| for (var j in toggles)
| |
| toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
| |
| break;
| |
| }
| |
| }
| |
| } | | } |
|
| |
| function createTogglerLink(toggler, id)
| |
| {
| |
| var toggle = document.createElement("a");
| |
| toggle.className = 'toggler-link';
| |
| toggle.setAttribute('id', 'toggler' + id);
| |
| toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
| |
| var child = toggler.firstChild;
| |
| toggler.removeChild(child);
| |
| toggle.appendChild(child);
| |
| toggler.insertBefore(toggle, toggler.firstChild);
| |
| }
| |
|
| |
| function toggleInit()
| |
| {
| |
| var togglerElems = new Array();
| |
| var toggleGroup = new Array();
| |
|
| |
| // make list of all document classes
| |
| var elems = document.getElementsByTagName("*");
| |
| var numelems = elems.length;
| |
| for (var i = 0; i < elems.length; i++)
| |
| {
| |
| var elem = elems[i];
| |
| if (!elem.className)
| |
| continue;
| |
|
| |
| elem._toggle_original_display = elem.style.display;
| |
| var togglerID = -1;
| |
| var elemClasses = elem.className.split(' '); // get list of classes
| |
| for (var j = 0; j < elemClasses.length; j++)
| |
| {
| |
| var elemClass = elemClasses[j];
| |
| if (! allClasses[elemClass])
| |
| allClasses[elemClass] = new Array();
| |
| allClasses[elemClass].push(elem);
| |
|
| |
| // all the special classes begin with _toggle
| |
| if (elemClass.substring(0, 7) != "_toggle")
| |
| continue;
| |
|
| |
| if (elemClass == "_togglegroup")
| |
| toggleGroup = new Array();
| |
| 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)
| |
| // understands _toggle_initshow and _toggle_inithide
| |
| var disp = elemClass.substring(12);
| |
| if (disp == "show")
| |
| elem.style.display = '';
| |
| else if (disp == "hide")
| |
| elem.style.display = 'none';
| |
| elem._toggle_original_display = disp;
| |
| }
| |
| else if (elemClass.substring(0, 8) == "_toggler")
| |
| {
| |
| if (togglerID == -1)
| |
| {
| |
| togglerID = togglers.length;
| |
| togglers[togglerID] = new Array();
| |
| togglerElems[togglerID] = elem;
| |
| }
| |
|
| |
| // all classes are of form _toggler_op-CLASS
| |
| // figure out what class we're toggling
| |
| // if none is specified, then we use the current toggle group
| |
| var toBeToggled;
| |
| var hyphen = elemClass.indexOf('-');
| |
| if (hyphen != -1)
| |
| toBeToggled = elemClass.substring(hyphen+1);
| |
| else
| |
| {
| |
| toBeToggled = toggleGroup;
| |
| hyphen = elemClass.length;
| |
| }
| |
|
| |
| var op = elemClass.substring(8, hyphen);
| |
| togglers[togglerID].push(new Array(op, toBeToggled));
| |
| }
| |
| }
| |
| }
| |
|
| |
| // add javascript links to all toggler elements
| |
| for (var i = 0; i < togglerElems.length; i++)
| |
| createTogglerLink(togglerElems[i], i);
| |
| }
| |
|
| |
| addOnloadHook(toggleInit);
| |
|
| |
| function unToggle()
| |
| {
| |
| var path=window.location.href;
| |
| var parts=path.split("#");
| |
| if(parts.length > 1)
| |
| {
| |
| path=parts[parts.length-1];
| |
| parts=path.split(".23");
| |
|
| |
| var untogglerGroup = new Array();
| |
| var untogglerClass = new Array();
| |
|
| |
| // make list of all document classes
| |
| var elems = document.getElementsByTagName("*");
| |
| var numelems = elems.length;
| |
| for (var c=0; c < parts.length; c++)
| |
| {
| |
| for (var i = 0; i < elems.length; i++)
| |
| {
| |
| var elem = elems[i];
| |
| if (!elem.className)
| |
| continue;
| |
|
| |
| var elemClasses = elem.className.split(' '); // get list of classes
| |
|
| |
| for (var j = 0; j < elemClasses.length; j++)
| |
| {
| |
| var elemClass=elemClasses[j];
| |
| if (elemClass != parts[c])
| |
| continue;
| |
| else
| |
| {
| |
| untogglerGroup.push(elem);
| |
| untogglerClass.push(elemClass);
| |
| }
| |
| }
| |
| }
| |
| }
| |
|
| |
| // add javascript links to all toggler elements
| |
| for (var i = 0; i < untogglerGroup.length; i++)
| |
| {
| |
| untogglerGroup[i].style.display = '';
| |
| }
| |
| }
| |
| }
| |
|
| |
|
| |
| //neue Spoiler:
| |
| spoilerOK = false;
| |
| function toggleNext(a) {
| |
| if (spoilerOK) return true; //Nichts tun, wenn alle angezeigt werden
| |
| var e = a.nextElementSibling;
| |
| if (!e) e = a.parentNode.parentNode.nextElementSibling;
| |
| if (!e) return false;
| |
| if (e.className == "spoiler")
| |
| e.className = "";
| |
| else
| |
| e.className = "spoiler";
| |
| return true;
| |
| }
| |
| function toggleAll() {
| |
| spoilerOK = spoilerOK ? false : true;
| |
| document.getElementById("SpoilerCSS").disabled = spoilerOK;
| |
| return true;
| |
| }
| |
| document.write('<link id="SpoilerCSS" href="'+wgScript+'?title=Benutzer:CF/SpoilerCSS.css&action=raw&ctype=text/css" type="text/css" rel="stylesheet">');
| |
| document.write('<style type="text/css">.spoilerLupe + div.spoiler { display: block; } .spoilerLupe + span.spoiler { display: inline; }</style>');
| |