MediaWiki:Common.js

Aus Kitakien

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(nowa funkcija linkFA())
K (Korrektur)
 
(Der Versionsvergleich bezieht 15 dazwischenliegende Versionen mit ein.)
Zeile 16: Zeile 16:
   plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href);
   plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href);
})
})
 +
 +
//po ruskej wikipediji
 +
//according to russian wikipedia
 +
 +
//import module
 +
importedScripts = {}
 +
function importScript2(page, lang) {
 +
page = '?title=' + encodeURIComponent(page.replace(' ','_'))
 +
if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page
 +
else page = wgScript + page
 +
if (importedScripts[page]) return
 +
importedScripts[page] = true
 +
var s = document.createElement('script')
 +
s.type = 'text/javascript'
 +
s.src = page + '&action=raw&ctype=text/javascript'
 +
document.getElementsByTagName('head')[0].appendChild(s)
 +
}
 +
// end import module
 +
 +
// ============================================================
 +
// BEGIN hasclass
 +
//hasClass, from en.wp and ru.wp
 +
var hasClass = (function (){
 +
var reCache = {}
 +
return function (element, className){
 +
  return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className)
 +
  }
 +
})()
 +
 +
 +
function addLoadEvent(f) {addOnloadHook(f)} //for backwards compatibility
 +
// END hasclass
 +
// ============================================================
// ============================================================
// ============================================================
Zeile 23: Zeile 56:
var linkFA_enabled  = true;
var linkFA_enabled  = true;
   
   
-
/** description that is displayed when cursor hovers above FA interwiki links */
+
/** description that is displayed when cursor hovers above FA and GA interwiki links */
var linkFA_description = "Dieser Artikel wurde als exzellent bewertet.";
var linkFA_description = "Dieser Artikel wurde als exzellent bewertet.";
-
+
var linkGA_description = "Dieser Artikel wurde als lesenswert bewertet.";
/**  
/**  
* star logo for featured articles in other languages,
* star logo for featured articles in other languages,
Zeile 51: Zeile 84:
             var li = lis[i];
             var li = lis[i];
             // only links with a corresponding Link_FA template are interesting
             // only links with a corresponding Link_FA template are interesting
-
             if (!document.getElementById(li.className + "-fa"))   continue;
+
             if (document.getElementById(li.className + "-fa")) {
             // additional class so the template can be hidden with CSS
             // additional class so the template can be hidden with CSS
             li.className += " FA";
             li.className += " FA";
             // change title
             // change title
             li.title = linkFA_description;
             li.title = linkFA_description;
 +
            }else if (document.getElementById(li.className + "-ga")) {
 +
            // additional class so the template can be hidden with CSS
 +
            li.className += " GA";
 +
            // change title
 +
            li.title = linkGA_description;
 +
            }
         }
         }
     }
     }
Zeile 120: Zeile 159:
   }
   }
}
}
-
 
-
// END Enable multiple onload functions
 
-
// ============================================================
 
-
// ============================================================
+
 
-
// BEGIN Externhinweis
+
// Z němskeje wikipedije
-
// NEEDS Enable multiple onload functions
+
//================================================================================
-
+
//*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]])
-
/*
+
// Local Maintainer: [[Commons:User:Dschwen]]
-
function externHinweis() {
+
 
-
     if (
+
function includePage(name) {
-
      (document.getElementById("pt-login")) &&  // ob der Benutzer NICHT angemeldet ist
+
     document.write('<script type="text/javascript" src="' + wgScript + '?title='
-
      (document.getElementById("ca-edit")) &&   // ob die seite nicht geschützt ist
+
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');    // smaxage=3600
-
      (!document.getElementById("ca-nstab-user")) &&  // ob die seite keine benutzerseite ist
+
}
-
      (document.referrer != "") &&            // ob der referrer nicht leer ist
+
 
-
      (document.referrer.search(/wikipedia\.org/) == -1) // ob der Referrer NICHT wikipedia.org enthält
+
 
-
      )
+
//================================================================================
-
    {
+
//*** import Onlyifuploading-functions
-
        var externHinweis = document.createElement("div");
+
// SEE ALSO [[MediaWiki:Onlyifuploading.js]]
-
        externHinweis.setAttribute('id','externHinweis');
+
 
-
            // Hier kann der Text verändert werden.
+
if (wgCanonicalSpecialPageName == "Upload") {
-
            // Bitte keine einfachen Anführungsstriche im Text verwenden!
+
    includePage("MediaWiki:Onlyifuploading.js");
-
            // Wikisyntax funktioniert nicht!
+
     includePage("MediaWiki:Onlyifediting.js");
-
        externHinweis.innerHTML = 'Witaj! Móžeš zmylki porjedźić abo nastawk rozšěrić.;
+
-
      document.getElementById("content").appendChild(externHinweis);
+
-
     }
+
}
}
   
   
-
aOnloadFunctions[aOnloadFunctions.length] = externHinweis;
+
 
-
*/
+
-
+
// END Externhinweis
// END Externhinweis
// ============================================================
// ============================================================
Zeile 157: Zeile 188:
// BEGIN Dynamic Navigation Bars
// BEGIN Dynamic Navigation Bars
// NEEDS Enable multiple onload functions  
// NEEDS Enable multiple onload functions  
-
+
// nowa wersija po ruskej wikipediji
-
// set up the words in your language
+
//Collapsible Tables and Divs, [[:ru:ВП:СБ]]
-
var NavigationBarHide = 'Schować';
+
 
-
var NavigationBarShow = 'Pokazać';
+
var autoCollapse = 0
-
+
var collapseCaption = 'Verstecken'
-
// set up max count of Navigation Bars on page,
+
var expandCaption = 'Anzeigen'
-
// if there are more, all will be hidden
+
 
-
// NavigationBarShowDefault = 0; // all bars will be hidden
+
function collapsibleTables(){
-
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
+
var Table, HRow, THs, Header, btn, a, tblIdx = 0, colTables = []
-
if (typeof NavigationBarShowDefault == 'undefined' ) {
+
var allTables = document.getElementsByTagName('table')
-
    var NavigationBarShowDefault = 1;
+
for (var i=0; Table = allTables[i]; i++){
 +
  if (!hasClass(Table, 'collapsible')) continue
 +
  if (!(HRow = Table.rows[0])) continue
 +
  THs = HRow.getElementsByTagName('th')
 +
  if (THs.length == 0) continue
 +
  Header = THs[THs.length-1] //last TH, not 1st like in en.wp
 +
  Table.id = 'collapsibleTable' + tblIdx
 +
  btn = document.createElement('span')
 +
  btn.style.styleFloat = btn.style.cssFloat = 'right'
 +
  btn.style.fontWeight = 'normal'
 +
  a = document.createElement('a')
 +
  a.id = 'collapseButton' + tblIdx
 +
  a.href = 'javascript:collapseTable(' + tblIdx + ');'
 +
  a.appendChild(document.createTextNode(collapseCaption))
 +
  btn.appendChild(document.createTextNode('['))
 +
  btn.appendChild(a)
 +
  btn.appendChild(document.createTextNode(']'))
 +
  Header.insertBefore(btn, Header.childNodes[0])
 +
  colTables[tblIdx++] = Table
}
}
-
+
for (var i=0; i < tblIdx; i++)
-
// shows and hides content and picture (if available) of navigation bars
+
  if ((tblIdx > autoCollapse && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed'))
-
// Parameters:
+
    collapseTable(i)
-
//    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 collapseTable (idx){
-
function createNavigationBarToggleButton()
+
var Table = document.getElementById('collapsibleTable' + idx)
-
{
+
var btn = document.getElementById('collapseButton' + idx)
-
    var indexNavigationBar = 0;
+
if (!Table || !btn) return false
-
    // iterate over all < div >-elements
+
var Rows = Table.rows
-
    for(
+
var isShown = (btn.firstChild.data == collapseCaption)
-
            var i=0;
+
btn.firstChild.data = isShown ?  expandCaption : collapseCaption
-
            NavFrame = document.getElementsByTagName("div")[i];
+
var disp = isShown ? 'none' : Rows[0].style.display
-
            i++
+
for (var i=1; i < Rows.length; i++)  
-
        ) {
+
    Rows[i].style.display = disp
-
        // if found a navigation bar
+
-
        if (NavFrame.className == "NavFrame") {
+
-
+
-
            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 more Navigation Bars found than Default: hide all
+
-
    if (NavigationBarShowDefault < indexNavigationBar) {
+
-
        for(
+
-
                var i=1;  
+
-
                i<=indexNavigationBar;  
+
-
                i++
+
-
        ) {
+
-
            toggleNavigationBar(i);
+
-
        }
+
-
    }
+
-
+
}
}
 +
 +
var NavigationBarHide = '[' + collapseCaption + ']'
 +
var NavigationBarShow = '[' + expandCaption + ']'
 +
var NavigationBarShowDefault = autoCollapse
   
   
-
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
+
function collapsibleDivs(){
-
   
+
var navIdx = 0, colNavs = [], i, NavFrame
 +
var divs = document.getElementById('content').getElementsByTagName('div')
 +
for (i=0; NavFrame = divs[i]; i++) {
 +
  if (!hasClass(NavFrame, 'NavFrame')) continue
 +
  NavFrame.id = 'NavFrame' + navIdx
 +
  var a = document.createElement('a')
 +
  a.className = 'NavToggle'
 +
  a.id = 'NavToggle' + navIdx
 +
  a.href = 'javascript:collapseDiv(' + navIdx + ');'
 +
  a.appendChild(document.createTextNode(NavigationBarHide))
 +
  // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
 +
  for (var j=0; j < NavFrame.childNodes.length; j++)
 +
    if (hasClass(NavFrame.childNodes[j], 'NavHead'))
 +
      NavFrame.childNodes[j].appendChild(a)
 +
  colNavs[navIdx++] = NavFrame
 +
}
 +
for (i=0; i < navIdx; i++)
 +
  if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed'))
 +
    collapseDiv(i)
 +
}
 +
 
 +
function collapseDiv(idx) {
 +
var div = document.getElementById('NavFrame' + idx)
 +
var btn = document.getElementById('NavToggle' + idx)
 +
if (!div || !btn) return false
 +
var isShown = (btn.firstChild.data == NavigationBarHide)
 +
btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide
 +
var disp = isShown ? 'none' : 'block'
 +
for (var child = div.firstChild; child != null;  child = child.nextSibling)
 +
  if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent'))
 +
      child.style.display = disp
 +
}
 +
 
 +
addOnloadHook(collapsibleDivs);
 +
addOnloadHook(collapsibleTables);
 +
 
// END Dynamic Navigation Bars
// END Dynamic Navigation Bars
// ============================================================
// ============================================================
Zeile 331: Zeile 341:
// ============================================================
// ============================================================
-
/* </source> */
+
// corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...)
 +
document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>');
 +
 
 +
/** Skript für Vorlage:Galerie */
 +
addOnloadHook(function() {
 +
  if (document.URL.match(/printable/g)) return;
 +
 +
  function toggleImageFunction(group,  remindex, shwindex) {
 +
    return function() {
 +
      document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none";
 +
      document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block";
 +
      return false;
 +
    };
 +
  }
 +
 +
  var divs = document.getElementsByTagName("div");
 +
  var i = 0, j = 0;
 +
  var units, search;
 +
  var currentimage;
 +
  var UnitNode;
 +
  for (i = 0; i < divs.length; i++) {
 +
    if (divs[i].className !== "ImageGroup") { continue; }
 +
    UnitNode = undefined;
 +
    search = divs[i].getElementsByTagName("div");
 +
    for (j = 0; j < search.length; j++) {
 +
      if (search[j].className !== "ImageGroupUnits") { continue; }
 +
      UnitNode=search[j];
 +
      break;
 +
    }
 +
    if (UnitNode === undefined) { continue; }
 +
    units = [];
 +
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
 +
      var temp = UnitNode.childNodes[j];
 +
      if (temp.className === "center") { units.push(temp); }
 +
    }
 +
    var rightlink = undefined;
 +
    var commentText = undefined;
 +
    for (j = 0; j < units.length; j++) {
 +
      currentimage = units[j];
 +
      currentimage.id = "ImageGroupsGr" + i + "Im" + j;
 +
      var leftlink = document.createElement("a");
 +
      if (commentText !== undefined) {
 +
        leftlink.setAttribute("title", commentText);
 +
      }
 +
      var comment;
 +
      if (typeof(currentimage.getAttribute("title")) !== "string") {
 +
        commentText = (j+1) + "/" + units.length;
 +
        comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
 +
      }
 +
      else {
 +
        commentText = currentimage.getAttribute("title");
 +
        comment = document.createElement("span").appendChild(document.createTextNode(commentText));
 +
        currentimage.removeAttribute("title");
 +
      }
 +
      if(rightlink !== undefined) {
 +
        rightlink.setAttribute("title", commentText);
 +
      }
 +
      var imghead = document.createElement("div");
 +
      rightlink = document.createElement("a");
 +
      if (j != 0) {
 +
        leftlink.href = "#";
 +
        leftlink.onclick = toggleImageFunction(i, j, j-1);
 +
        leftlink.appendChild(document.createTextNode("◀"));
 +
      }
 +
      if (j != units.length - 1) {
 +
        rightlink.onclick = toggleImageFunction(i, j, j+1);
 +
        rightlink.appendChild(document.createTextNode("▶"));
 +
      }
 +
      imghead.style["fontSize"] = "110%";
 +
      imghead.style["fontweight"] = "bold";
 +
      imghead.appendChild(leftlink);
 +
      imghead.appendChild(document.createTextNode("\xA0"));
 +
      imghead.appendChild(comment);
 +
      imghead.appendChild(document.createTextNode("\xA0"));
 +
      imghead.appendChild(rightlink);
 +
      if (units.length > 1) {
 +
        currentimage.insertBefore(imghead,currentimage.childNodes[0]);
 +
      }
 +
      if (j != 0) {
 +
        currentimage.style["display"] = "none";
 +
      }
 +
    }
 +
  }
 +
});
 +
 
 +
// </source>

Aktuelle Version vom 19:02, 17. Okt. 2010

/* <source lang="javascript">
Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. 
 
Execute function on page load *********************************************
  *
  *  Description: Wrapper around addOnloadHook() for backwards compatibility.
  *               Will be removed in the near future.
  */
/* z ruskeje wikipedije */
/* Чтоб была возможность изменить поведение кнопки "+" (добавление новой темы) для страниц обсуждения */ 
addOnloadHook(function(){
  var plus = document.getElementById('ca-addsection');
  if (!plus) return;
  var custom = document.getElementById('add-custom-section');
  if (!custom) return;
  plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href);
})
 
//po ruskej wikipediji
//according to russian wikipedia
 
//import module
importedScripts = {} 
function importScript2(page, lang) {
page = '?title=' + encodeURIComponent(page.replace(' ','_'))
if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page
else page = wgScript + page
if (importedScripts[page]) return
importedScripts[page] = true
var s = document.createElement('script')
s.type = 'text/javascript'
s.src = page + '&action=raw&ctype=text/javascript'
document.getElementsByTagName('head')[0].appendChild(s)
}
// end import module
 
// ============================================================
// BEGIN hasclass
//hasClass, from en.wp and ru.wp
var hasClass = (function (){
var reCache = {}
return function (element, className){
   return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className)
  }
})()
 
 
function addLoadEvent(f) {addOnloadHook(f)} //for backwards compatibility
// END hasclass
// ============================================================
 
// ============================================================
// BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles
 
/** set to false in Special:Mypage/monobook.js to switch off this "feature" */
var linkFA_enabled  = true;
 
/** description that is displayed when cursor hovers above FA and GA interwiki links */
var linkFA_description = "Dieser Artikel wurde als exzellent bewertet.";
var linkGA_description = "Dieser Artikel wurde als lesenswert bewertet.";
/** 
* star logo for featured articles in other languages,
* see Template:Link_FA and MediaWiki:Common.css
*/
function linkFA() {
     // early exit when disabled
     if (!linkFA_enabled) return;
 
     // skins need to be treated differently
     if (skin == "monobook" || skin == "simple") {
         newer();
     } 
     else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") {
         older();
     } 
 
     /** skin == "monobook" || skin == "simple" */
     function newer() {
         // links are to replaced in p-lang only
         var pLang = document.getElementById("p-lang");
         if (!pLang) return;
         var lis = pLang.getElementsByTagName("li");
         for (var i = 0; i < lis.length; i++) {
             var li = lis[i];
             // only links with a corresponding Link_FA template are interesting
             if (document.getElementById(li.className + "-fa")) {
             // additional class so the template can be hidden with CSS
             li.className += " FA";
             // change title
             li.title = linkFA_description;
             }else if (document.getElementById(li.className + "-ga")) {
             // additional class so the template can be hidden with CSS
             li.className += " GA";
             // change title
             li.title = linkGA_description;
             }
         }
     }
 
     /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */
     function older() {
         // these root elements can contain FA-links
         var rootIds = new Array("topbar", "footer");
         for (var i=0; i<rootIds.length; i++) {
             var rootId  = rootIds[i];
             var root    = document.getElementById(rootId);
             if (!root)  continue;
 
             // if the root exists, try to decorate all the links within
             var links   = root.getElementsByTagName("a");
             for (var j=0; j<links.length; j++) {
                 var link    = links[j];
                 decorate(link);
             }
         }
     }
 
     /** id necessary, modify a link to show the FA-star (older) */
     function decorate(link) {
         // exit if not a FA-link
         var lang    = link.title.split(":")[0]; // not precise enough
         var fa      = document.getElementById("interwiki-" + lang + "-fa");
         if (!fa)    return;
         // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special"
         // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article
 
         // build an image-node for the FA-star
         var img = document.createElement("img");
         img.setAttribute("src",     "http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png");
         img.setAttribute("alt",     linkFA_description);
         img.setAttribute("style",   "margin-right: 0.2em;");
 
         // decorate the link with the image
         link.appendChild(img);
         link.appendChild(link.removeChild(link.firstChild));
         link.setAttribute("title", linkFA_description);
     }
}
// aOnloadFunctions[aOnloadFunctions.length] = linkFA;
addOnloadHook(linkFA);
 
// END Configuration for "star" logo in front of interwiki links to Featured Articles
 
// ============================================================
// BEGIN Enable multiple onload functions
 
// setup onload functions this way:
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
 
if (!window.aOnloadFunctions) {
   var aOnloadFunctions = new Array();
}
 
window.onload = function() {
   if (window.aOnloadFunctions) {
     for (var _i=0; _i<aOnloadFunctions.length; _i++) {
       aOnloadFunctions[_i]();
     }
   }
}
 
 
// Z němskeje wikipedije
//================================================================================
//*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]])
// Local Maintainer: [[Commons:User:Dschwen]]
 
function includePage(name) {
    document.write('<script type="text/javascript" src="' + wgScript + '?title='
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');    // smaxage=3600
}
 
 
//================================================================================
//*** import Onlyifuploading-functions
// SEE ALSO [[MediaWiki:Onlyifuploading.js]]
 
if (wgCanonicalSpecialPageName == "Upload") {
    includePage("MediaWiki:Onlyifuploading.js");
    includePage("MediaWiki:Onlyifediting.js");
}
 
 
// END Externhinweis
// ============================================================
 
// ============================================================
// BEGIN Dynamic Navigation Bars
// NEEDS Enable multiple onload functions 
// nowa wersija po ruskej wikipediji
//Collapsible Tables and Divs, [[:ru:ВП:СБ]]
 
var autoCollapse = 0
var collapseCaption = 'Verstecken'
var expandCaption = 'Anzeigen'
 
function collapsibleTables(){
var Table, HRow, THs, Header, btn, a, tblIdx = 0, colTables = []
var allTables = document.getElementsByTagName('table')
for (var i=0; Table = allTables[i]; i++){
   if (!hasClass(Table, 'collapsible')) continue
   if (!(HRow = Table.rows[0])) continue
   THs = HRow.getElementsByTagName('th') 
   if (THs.length == 0) continue
   Header = THs[THs.length-1] //last TH, not 1st like in en.wp
   Table.id = 'collapsibleTable' + tblIdx
   btn = document.createElement('span')
   btn.style.styleFloat = btn.style.cssFloat = 'right'
   btn.style.fontWeight = 'normal'
   a = document.createElement('a')
   a.id = 'collapseButton' + tblIdx
   a.href = 'javascript:collapseTable(' + tblIdx + ');' 
   a.appendChild(document.createTextNode(collapseCaption))
   btn.appendChild(document.createTextNode('['))
   btn.appendChild(a)
   btn.appendChild(document.createTextNode(']'))
   Header.insertBefore(btn, Header.childNodes[0])
   colTables[tblIdx++] = Table
}
for (var i=0; i < tblIdx; i++)
   if ((tblIdx > autoCollapse && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed'))
     collapseTable(i)
}
 
function collapseTable (idx){
var Table = document.getElementById('collapsibleTable' + idx)
var btn = document.getElementById('collapseButton' + idx)
if (!Table || !btn) return false
var Rows = Table.rows
var isShown = (btn.firstChild.data == collapseCaption)
btn.firstChild.data = isShown ?  expandCaption : collapseCaption
var disp = isShown ? 'none' : Rows[0].style.display
for (var i=1; i < Rows.length; i++) 
    Rows[i].style.display = disp
}
 
var NavigationBarHide = '[' + collapseCaption + ']'
var NavigationBarShow = '[' + expandCaption + ']'
var NavigationBarShowDefault = autoCollapse
 
function collapsibleDivs(){
var navIdx = 0, colNavs = [], i, NavFrame
var divs = document.getElementById('content').getElementsByTagName('div')
for (i=0; NavFrame = divs[i]; i++) {
   if (!hasClass(NavFrame, 'NavFrame')) continue
   NavFrame.id = 'NavFrame' + navIdx
   var a = document.createElement('a')
   a.className = 'NavToggle'
   a.id = 'NavToggle' + navIdx
   a.href = 'javascript:collapseDiv(' + navIdx + ');'
   a.appendChild(document.createTextNode(NavigationBarHide))
   // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
   for (var j=0; j < NavFrame.childNodes.length; j++)
     if (hasClass(NavFrame.childNodes[j], 'NavHead'))
       NavFrame.childNodes[j].appendChild(a)
   colNavs[navIdx++] = NavFrame
}
for (i=0; i < navIdx; i++)
  if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed'))
     collapseDiv(i)
}
 
function collapseDiv(idx) {
var div = document.getElementById('NavFrame' + idx)
var btn = document.getElementById('NavToggle' + idx)
if (!div || !btn) return false
var isShown = (btn.firstChild.data == NavigationBarHide)
btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide 
var disp = isShown ? 'none' : 'block'
for (var child = div.firstChild;  child != null;  child = child.nextSibling)
   if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent')) 
      child.style.display = disp
}
 
addOnloadHook(collapsibleDivs);
addOnloadHook(collapsibleTables);
 
// END Dynamic Navigation Bars
// ============================================================
 
// ============================================================
// BEGIN Moving of the editsection links
 
/*
* moveEditsection
* Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand
* direkt rechts neben die jeweiligen Überschriften.
* This script moves the [edit]-buttons from the right border of the window
* directly right next to the corresponding headings.
*
* Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene
* monobook.js (zu finden unter [[Special:Mypage/monobook.js|Benutzer:Name/monobook.js]]) kopieren:
* var oldEditsectionLinks = true;
*
* dbenzhuser (de:Benutzer:Dbenzhuser)
*/
function moveEditsection() {
     if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) {
         var spans = document.getElementsByTagName("span");
         for(var i = 0; i < spans.length; i++) {
             if(spans[i].className == "editsection") {
                 spans[i].style.fontSize = "x-small";
                 spans[i].style.fontWeight = "normal";
                 spans[i].style.cssFloat = "none";
                 spans[i].style.marginLeft = "0px";
                 spans[i].parentNode.appendChild(document.createTextNode(" "));
                 spans[i].parentNode.appendChild(spans[i]);
             }
         }
     }
}
// onload
addOnloadHook(moveEditsection);
 
// END Moving of the editsection links
// ============================================================
 
// ============================================================
// BEGIN import Onlyifediting-functions
// SEE ALSO [[MediaWiki:Onlyifediting.js]]
 
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) {
  document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
 
// END import Onlyifediting-functions
// ============================================================
 
// ============================================================
// BEGIN pageview counter
// SEE ALSO [[MediaWiki:Pagecounter.js]]
//     Please talk to User:LeonWeber before changing anything or 
//     if there are any issues with this.
 
// disable the counter
var disable_counter = 0; 
 
document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Pagecounter.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>');
 
// END pageview counter 
// ============================================================
 
// corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...)
document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>');
 
/** Skript für Vorlage:Galerie */
addOnloadHook(function() {
  if (document.URL.match(/printable/g)) return;
 
  function toggleImageFunction(group,  remindex, shwindex) {
    return function() {
      document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none";
      document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block";
      return false;
    };
  }
 
  var divs = document.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length; i++) {
    if (divs[i].className !== "ImageGroup") { continue; }
    UnitNode = undefined;
    search = divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length; j++) {
      if (search[j].className !== "ImageGroupUnits") { continue; }
      UnitNode=search[j];
      break;
    }
    if (UnitNode === undefined) { continue; }
    units = [];
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className === "center") { units.push(temp); }
    }
    var rightlink = undefined;
    var commentText = undefined;
    for (j = 0; j < units.length; j++) {
      currentimage = units[j];
      currentimage.id = "ImageGroupsGr" + i + "Im" + j;
      var leftlink = document.createElement("a");
      if (commentText !== undefined) {
        leftlink.setAttribute("title", commentText);
      }
      var comment;
      if (typeof(currentimage.getAttribute("title")) !== "string") {
        commentText = (j+1) + "/" + units.length;
        comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
      }
      else {
        commentText = currentimage.getAttribute("title");
        comment = document.createElement("span").appendChild(document.createTextNode(commentText));
        currentimage.removeAttribute("title");
      }
      if(rightlink !== undefined) {
        rightlink.setAttribute("title", commentText);
      }
      var imghead = document.createElement("div");
      rightlink = document.createElement("a");
      if (j != 0) {
        leftlink.href = "#";
        leftlink.onclick = toggleImageFunction(i, j, j-1);
        leftlink.appendChild(document.createTextNode("◀"));
      }
      if (j != units.length - 1) {
        rightlink.onclick = toggleImageFunction(i, j, j+1);
        rightlink.appendChild(document.createTextNode("▶"));
      }
      imghead.style["fontSize"] = "110%";
      imghead.style["fontweight"] = "bold";
      imghead.appendChild(leftlink);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(comment);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(rightlink);
      if (units.length > 1) {
        currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      }
      if (j != 0) {
        currentimage.style["display"] = "none";
      }
    }
  }
});
 
// </source>
Persönliche Werkzeuge