MediaWiki:NavigationBar.js: Unterschied zwischen den Versionen

Aus VolynWiki
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: „// Show/Hide for navigation bars // Author: Roland Unger, 2008-10-04 // license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later // ...“)
 
(kein Unterschied)

Aktuelle Version vom 14. September 2009, 17:53 Uhr

// Show/Hide for navigation bars
// Author: Roland Unger, 2008-10-04
// license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
 
// Costumization
var showNavMsg = "Ausklappen", showNavTitleMsg = "Navigationsleiste ausklappen",
    hideNavMsg = "Einklappen", hideNavTitleMsg = "Navigationsleiste einklappen",
    NavigationBarShowDefault = 1;
 
// addEvent function is already defined in the TocTree extension
 
/* function addEvent(obj, eventType, afunction, isCapture) {
 // W3C DOM
 if (obj.addEventListener) {
  obj.addEventListener(eventType, afunction, isCapture);
  return true;
 }
 // Internet Explorer
 else if (obj.attachEvent) {
  return obj.attachEvent("on"+eventType, afunction);
 }
 else return false;
} */
 
function processNavBarEvent(event) {
 var toggleLink = null;
 // Interbet Explorer
 if (event.srcElement) toggleLink = event.srcElement;
 // W3C DOM
 if (event.currentTarget) toggleLink = event.currentTarget;
 
 if (toggleLink != null) {
  if (event.type == "mouseover") toggleLink.style.textDecoration="underline";
  if (event.type == "mouseout") toggleLink.style.textDecoration="none";
  if (event.type == "click")
   expandParentNode(toggleLink, toggleLink.innerHTML == showNavMsg);
 }
}
 
function expandParentNode(aLink, expandIt) {
 var i, divs = aLink.parentNode.getElementsByTagName("div");
 
 if (expandIt) {
  aLink.innerHTML = hideNavMsg;
  aLink.title = hideNavTitleMsg;
  for (i=0; i<divs.length; i++)  
   if ((divs[i].className == "navImage") || (divs[i].className == "navContent"))
    divs[i].style.display = "block";
 }
 else {
  aLink.innerHTML = showNavMsg;
  aLink.title = showNavTitleMsg;
  for (i=0; i<divs.length; i++)  
   if ((divs[i].className == "navImage") || (divs[i].className == "navContent"))
    divs[i].style.display = "none";
 }
}
 
function initNav() {
 var divs, i, toggleIndex = 0;
 
 if (document.getElementsByTagName) {
  divs = document.getElementsByTagName("div");
  for (i=0;  i<divs.length; i++) {
   if (divs[i].className == "navToggle") {
    divs[i].style.display = "block";
    addEvent(divs[i], "mouseout", processNavBarEvent, false);
    addEvent(divs[i], "mouseover", processNavBarEvent, false);
    addEvent(divs[i], "click", processNavBarEvent, false);
    toggleIndex++;
   }
  }
  // if more than NavigationBarShowDefault bars then hide them all
  for (i=0;  i<divs.length; i++)
   if (divs[i].className == "navToggle")
    expandParentNode(divs[i], toggleIndex <= NavigationBarShowDefault);
 }
}
 
addOnloadHook(initNav);