Benutzer:D47h0r/Common.js: Unterschied zwischen den Versionen

aus Memory Alpha, der freien deutschen Star-Trek-Datenbank
Spring zu: Navigation, suche
imported>D47h0r
K (neu angelegt)
 
imported>D47h0r
K
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
+
/* <source lang="javascript"> */
  
/* Any JavaScript here will be loaded for all users on every page load. */
 
  
// <syntax type="javascript">
+
//================================================================================
 +
//*** Dynamic Navigation Bars for Monaco, Oasis (New Wikia), Adjura, Final Fantasy, Vector, MonoBook and default skins of MediaWiki
 +
//*** Script written by Tim Weyer (SVG) <svg@tim-weyer.org> and others
  
    /**
+
var navbarsDone;
        Toggles the display of elements on a page
 
        Author/contact: Austin Che http://openwetware.org/wiki/User:Austin_J._Che
 
        See http://openwetware.org/wiki/OpenWetWare:Toggle for examples and documentation
 
    */
 
  
// indexed array of toggler ids to array of associated toggle operations
+
// set up the words in your language
// each operation is a two element array, the first being the type, the second a class name or array of elements
+
var NavigationBarHide = 'Einklappen';
// operation types are strings like "_reset" or "" for the default toggle operation
+
var NavigationBarShow = 'Ausklappen';
var togglers = new Array();      
+
var allClasses = new Object(); // associative map of class names to page elements
+
// set up max count of Navigation Bars on page,
 
+
// if there are more, all will be hidden
function toggler(id)
+
// NavigationBarShowDefault = 0; // all bars will be hidden
 +
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 +
if (typeof NavigationBarShowDefault == 'undefined' ) {
 +
     var NavigationBarShowDefault = 0;
 +
}
 +
 +
// shows and hides content and picture (if available) of navigation bars
 +
// Parameters:
 +
//     indexNavigationBar: the index of navigation bar to be toggled
 +
function toggleNavigationBar(indexNavigationBar)
 
{
 
{
    var toBeToggled = togglers[id];
+
    if (!toBeToggled)
+
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
        return;
+
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
+
    // if some element is in list more than once, it will be toggled multiple times
+
  if (!NavFrame || !NavToggle) {
    for (var i = 0; i < toBeToggled.length; i++)
+
      return false;
    {
+
  }
        // get array of elements to operate on
+
        var toggles = toBeToggled[i][1];
+
  // if shown now
        if (typeof(toggles) == "string")
+
  if (NavToggle.firstChild.data == NavigationBarHide) {
        {
+
      for (
            if (toggles.charAt(0) == '-')
+
              var NavChild = NavFrame.firstChild;
            {
+
              NavChild != null;
                // treat as an element ID, not as class
+
              NavChild = NavChild.nextSibling
                toggles = document.getElementById(toggles.substring(1));
+
          ) {
                if (toggles)
+
          if (NavChild.className == 'NavPic') {
                    toggles = new Array(toggles);
+
              NavChild.style.display = 'none';
            }
+
          }
            else
+
          if (NavChild.className == 'NavContent') {
                toggles = allClasses[toggles];
+
              NavChild.style.display = 'none';
        }
+
          }
        if (!toggles || !toggles.length)
+
          if (NavChild.className == 'NavToggle') {
            continue;
+
              NavChild.firstChild.data = NavigationBarShow;
 
+
          }
        var op = toBeToggled[i][0]; // what the operation will be
+
      }
 
+
        switch (op)
+
  // if hidden now
        {
+
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
            case "_reset":
+
      for (
                for (var j in toggles)
+
              var NavChild = NavFrame.firstChild;
                    toggles[j].style.display = toggles[j]._toggle_original_display;
+
              NavChild != null;
                break;
+
              NavChild = NavChild.nextSibling
            case "_show":
+
          ) {
                for (var j in toggles)
+
          if (NavChild.className == 'NavPic') {
                    toggles[j].style.display = '';
+
              NavChild.style.display = 'block';
                break;
+
          }
            case "_hide":
+
          if (NavChild.className == 'NavContent') {
                for (var j in toggles)
+
              NavChild.style.display = 'block';
                    toggles[j].style.display = 'none';
+
          }
                break;
+
          if (NavChild.className == 'NavToggle') {
            case "":
+
              NavChild.firstChild.data = NavigationBarHide;
            default:
+
          }
                // Toggle
+
      }
                for (var j in toggles)
+
  }
                    toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
+
                break;
 
        }
 
    }
 
 
}
 
}
 
+
function createTogglerLink(toggler, id)
+
// adds show/hide-button to navigation bars
 +
function createNavigationBarToggleButton()
 
{
 
{
    var toggle = document.createElement("a");
+
  if (navbarsDone) return;
    toggle.className = 'toggler-link';
+
  var indexNavigationBar = 0;
    toggle.setAttribute('id', 'toggler' + id);
+
  // iterate over all < div >-elements
    toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
+
  var divs = document.getElementsByTagName("div");
    var child = toggler.firstChild;
+
  for (var i=0;  i<divs.length; i++) {
    toggler.removeChild(child);
+
      var NavFrame = divs[i];
    toggle.appendChild(child);
+
      // if found a navigation bar
    toggler.insertBefore(toggle, toggler.firstChild);
+
      if (NavFrame.className == "NavFrame" || NavFrame.className == "NavFrame shown" || NavFrame.className == "NavFrame hidden") {
 +
 +
          indexNavigationBar++;
 +
          var NavToggle = document.createElement("a");
 +
          NavToggle.className = 'NavToggle';
 +
          NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
          NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 +
 +
          var NavToggleText = document.createTextNode(NavigationBarHide);
 +
          NavToggle.appendChild(NavToggleText);
 +
 +
          // add NavToggle-Button as first div-element
 +
          // in < div class="NavFrame" >
 +
          NavFrame.insertBefore(
 +
              NavToggle,
 +
              NavFrame.firstChild
 +
          );
 +
          NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
if (NavFrame.className == "NavFrame hidden") toggleNavigationBar(indexNavigationBar);
 +
      }
 +
  }
 +
  // if more Navigation Bars found than Default: hide all
 +
  if (NavigationBarShowDefault < indexNavigationBar) {
 +
      for(
 +
              var i=1;  
 +
              i<=indexNavigationBar;
 +
              i++
 +
      ) {
 +
          var NavFrame = document.getElementById("NavFrame" + i);
 +
          if (NavFrame.className == "NavFrame") toggleNavigationBar(i);
 +
      }
 +
  }
 +
  navbarsDone = true;
 
}
 
}
  
function toggleInit()
+
addOnloadHook(createNavigationBarToggleButton);
{
 
    var togglerElems = new Array();
 
    var toggleGroup = new Array();
 
 
 
    // initialize/clear any old information
 
    togglers = new Array();   
 
    allClasses = new Object();
 
       
 
    // 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);
+
// **************************************************
 +
//  - end -  Dynamic Navigation Bars
 +
// **************************************************
 +
//
  
// </syntax>
+
/* </source> */

Aktuelle Version vom 16. November 2011, 21:44 Uhr

/* <source lang="javascript"> */


//================================================================================
//*** Dynamic Navigation Bars for Monaco, Oasis (New Wikia), Adjura, Final Fantasy, Vector, MonoBook and default skins of MediaWiki
//*** Script written by Tim Weyer (SVG) <svg@tim-weyer.org> and others

var navbarsDone;

// set up the words in your language
var NavigationBarHide = 'Einklappen';
var NavigationBarShow = 'Ausklappen';
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
if (typeof NavigationBarShowDefault == 'undefined' ) {
    var NavigationBarShowDefault = 0;
}
 
// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
 
   var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
   var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
   if (!NavFrame || !NavToggle) {
       return false;
   }
 
   // if shown now
   if (NavToggle.firstChild.data == NavigationBarHide) {
       for (
               var NavChild = NavFrame.firstChild;
               NavChild != null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'none';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'none';
           }
           if (NavChild.className == 'NavToggle') {
               NavChild.firstChild.data = NavigationBarShow;
           }
       }
 
   // if hidden now
   } else if (NavToggle.firstChild.data == NavigationBarShow) {
       for (
               var NavChild = NavFrame.firstChild;
               NavChild != null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'block';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'block';
           }
           if (NavChild.className == 'NavToggle') {
               NavChild.firstChild.data = NavigationBarHide;
           }
       }
   }
 
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
   if (navbarsDone) return;
   var indexNavigationBar = 0;
   // iterate over all < div >-elements
   var divs = document.getElementsByTagName("div");
   for (var i=0;  i<divs.length; i++) {
       var NavFrame = divs[i];
       // if found a navigation bar
       if (NavFrame.className == "NavFrame" || NavFrame.className == "NavFrame shown" || NavFrame.className == "NavFrame hidden") {
 
           indexNavigationBar++;
           var NavToggle = document.createElement("a");
           NavToggle.className = 'NavToggle';
           NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
           NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
           var NavToggleText = document.createTextNode(NavigationBarHide);
           NavToggle.appendChild(NavToggleText);
 
           // add NavToggle-Button as first div-element 
           // in < div class="NavFrame" >
           NavFrame.insertBefore(
               NavToggle,
               NavFrame.firstChild
           );
           NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
if (NavFrame.className == "NavFrame hidden") toggleNavigationBar(indexNavigationBar);
       }
   }
   // if more Navigation Bars found than Default: hide all
   if (NavigationBarShowDefault < indexNavigationBar) {
       for(
               var i=1; 
               i<=indexNavigationBar; 
               i++
       ) {
           var NavFrame = document.getElementById("NavFrame" + i);
           if (NavFrame.className == "NavFrame") toggleNavigationBar(i);
       }
   }
  navbarsDone = true;
}

addOnloadHook(createNavigationBarToggleButton);

// **************************************************
//  - end -  Dynamic Navigation Bars
// **************************************************
//

/* </source> */