Momentálně se pracuje na harmonizaci obsahu českých stránek

Čeština - druhé vydání 2005

MediaWiki:Common.js: Porovnání verzí

Z Demopædia
Přejít na: navigace, hledání
(Skrýt překlady)
(Collapsible tables from en.wikipedia)
Řádka 13: Řádka 13:
 
/*************************************************************/
 
/*************************************************************/
  
 +
* Test if an element has a certain class **************************************
 +
*
 +
* Description: Uses regular expressions and caching for better performance.
 +
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 +
*/
  
 +
var hasClass = (function () {
 +
    var reCache = {};
 +
    return function (element, className) {
 +
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 +
    };
 +
})();
 +
 +
 +
 +
 +
/** Collapsible tables *********************************************************
 +
* From http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=219789618
 +
*  Description: Allows tables to be collapsed, showing only the header. See
 +
*              [[Wikipedia:NavFrame]].
 +
*  Maintainers: [[User:R. Koot]]
 +
*/
 +
 +
var autoCollapse = 2;
 +
var collapseCaption = "Skrýt překlady";
 +
var expandCaption = "Zobrazit překlady";
 +
 +
function collapseTable( tableIndex )
 +
{
 +
    var Button = document.getElementById( "collapseButton" + tableIndex );
 +
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 +
 +
    if ( !Table || !Button ) {
 +
        return false;
 +
    }
 +
 +
    var Rows = Table.rows;
 +
 +
    if ( Button.firstChild.data == collapseCaption ) {
 +
        for ( var i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = "none";
 +
        }
 +
        Button.firstChild.data = expandCaption;
 +
    } else {
 +
        for ( var i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = Rows[0].style.display;
 +
        }
 +
        Button.firstChild.data = collapseCaption;
 +
    }
 +
}
 +
 +
function createCollapseButtons()
 +
{
 +
    var tableIndex = 0;
 +
    var NavigationBoxes = new Object();
 +
    var Tables = document.getElementsByTagName( "table" );
 +
 +
    for ( var i = 0; i < Tables.length; i++ ) {
 +
        if ( hasClass( Tables[i], "collapsible" ) ) {
 +
 +
            /* only add button and increment count if there is a header row to work with */
 +
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
 +
            if (!HeaderRow) continue;
 +
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
 +
            if (!Header) continue;
 +
 +
            NavigationBoxes[ tableIndex ] = Tables[i];
 +
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 +
 +
            var Button    = document.createElement( "span" );
 +
            var ButtonLink = document.createElement( "a" );
 +
            var ButtonText = document.createTextNode( collapseCaption );
 +
 +
            Button.style.styleFloat = "right";
 +
            Button.style.cssFloat = "right";
 +
            Button.style.fontWeight = "normal";
 +
            Button.style.textAlign = "right";
 +
            Button.style.width = "6em";
 +
 +
            ButtonLink.style.color = Header.style.color;
 +
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
 +
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
 +
            ButtonLink.appendChild( ButtonText );
 +
 +
            Button.appendChild( document.createTextNode( "[" ) );
 +
            Button.appendChild( ButtonLink );
 +
            Button.appendChild( document.createTextNode( "]" ) );
 +
 +
            Header.insertBefore( Button, Header.childNodes[0] );
 +
            tableIndex++;
 +
        }
 +
    }
 +
 +
    for ( var i = 0;  i < tableIndex; i++ ) {
 +
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
 +
            collapseTable( i );
 +
        }
 +
    }
 +
}
 
   
 
   
//*** Dynamic Navigation Bars
+
addOnloadHook( createCollapseButtons );
 +
 
 +
 
 +
/** Dynamic Navigation Bars (experimental) *************************************
 +
*
 +
*  Description: See [[Wikipedia:NavFrame]].
 +
*  Maintainers: UNMAINTAINED
 +
*/
  
 
// set up the words in your language
 
// set up the words in your language
var NavigationBarHide = 'Skrýt překlady';
+
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = 'Zobrazit překlady';
+
var NavigationBarShow = '[' + expandCaption + ']';
 
 
// 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
 
// shows and hides content and picture (if available) of navigation bars
Řádka 34: Řádka 131:
 
function toggleNavigationBar(indexNavigationBar)
 
function toggleNavigationBar(indexNavigationBar)
 
{
 
{
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
+
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
+
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
  
  if (!NavFrame || !NavToggle) {
+
    if (!NavFrame || !NavToggle) {
      return false;
+
        return false;
  }
+
    }
  
  // if shown now
+
    // if shown now
  if (NavToggle.firstChild.data == NavigationBarHide) {
+
    if (NavToggle.firstChild.data == NavigationBarHide) {
      for (
+
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
              var NavChild = NavFrame.firstChild;
+
            if ( hasClass( NavChild, 'NavPic' ) ) {
              NavChild != null;
+
                NavChild.style.display = 'none';
              NavChild = NavChild.nextSibling
+
            }
          ) {
+
            if ( hasClass( NavChild, 'NavContent') ) {
          if (NavChild.className == 'NavPic') {
+
                NavChild.style.display = 'none';
              NavChild.style.display = 'none';
+
            }
          }
+
        }
          if (NavChild.className == 'NavContent') {
+
    NavToggle.firstChild.data = NavigationBarShow;
              NavChild.style.display = 'none';
 
          }
 
          if (NavChild.className == 'NavToggle') {
 
              NavChild.firstChild.data = NavigationBarShow;
 
          }
 
      }
 
  
  // if hidden now
+
    // if hidden now
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
+
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
      for (
+
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
              var NavChild = NavFrame.firstChild;
+
            if (hasClass(NavChild, 'NavPic')) {
              NavChild != null;
+
                NavChild.style.display = 'block';
              NavChild = NavChild.nextSibling
+
            }
          ) {
+
            if (hasClass(NavChild, 'NavContent')) {
          if (NavChild.className == 'NavPic') {
+
                NavChild.style.display = 'block';
              NavChild.style.display = 'block';
+
            }
          }
+
        }
          if (NavChild.className == 'NavContent') {
+
        NavToggle.firstChild.data = NavigationBarHide;
              NavChild.style.display = 'block';
+
    }
          }
 
          if (NavChild.className == 'NavToggle') {
 
              NavChild.firstChild.data = NavigationBarHide;
 
          }
 
      }
 
  }
 
 
}
 
}
  
Řádka 82: Řádka 167:
 
function createNavigationBarToggleButton()
 
function createNavigationBarToggleButton()
 
{
 
{
  var indexNavigationBar = 0;
+
    var indexNavigationBar = 0;
  // iterate over all < div >-elements
+
    // iterate over all < div >-elements  
  var divs = document.getElementsByTagName("div");
+
    var divs = document.getElementsByTagName("div");
  for (var i=0; i<divs.length; i++) {
+
    for (var i = 0; NavFrame = divs[i]; i++) {
      var NavFrame = divs[i];
+
        // if found a navigation bar
      // if found a navigation bar
+
        if (hasClass(NavFrame, "NavFrame")) {
      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);
+
            indexNavigationBar++;
          NavToggle.appendChild(NavToggleText);
+
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
  
          // add NavToggle-Button as first div-element
+
            var NavToggleText = document.createTextNode(NavigationBarHide);
          // in < div class="NavFrame" >
+
            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
          NavFrame.insertBefore(
+
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
              NavToggle,
+
                    if (NavChild.style.display == 'none') {
              NavFrame.firstChild
+
                        NavToggleText = document.createTextNode(NavigationBarShow);
          );
+
                        break;
          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);
 
      }
 
  }
 
  
 +
            NavToggle.appendChild(NavToggleText);
 +
            // 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(NavToggle);
 +
                }
 +
            }
 +
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
        }
 +
    }
 
}
 
}
  
addOnloadHook(createNavigationBarToggleButton);
+
addOnloadHook( createNavigationBarToggleButton );
//</nowiki>
 

Verze z 19. 6. 2008, 07:22

/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky.  */
/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.

ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
visiteurs), même plusieurs heures après la modification !

NE PAS RETIRER CECI SINON : remplacement des signature, substitution des modèles, ... : <nowiki>

/*************************************************************/
/* Fonctions javascript : pallient les limites de javascript */
/* Surveiller : http://www.ecmascript.org/                   */
/*************************************************************/

* Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 */

var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
})();




/** Collapsible tables *********************************************************
 * From http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=219789618
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 *  Maintainers: [[User:R. Koot]]
 */
 
var autoCollapse = 2;
var collapseCaption = "Skrýt překlady";
var expandCaption = "Zobrazit překlady";
 
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
 
    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}
 
function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );
 
    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;
 
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
 
            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }
 
    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        }
    }
}
 
addOnloadHook( createCollapseButtons );


/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */

// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';

// 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 ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;

    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, 'NavContent')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "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);
            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if (NavChild.style.display == 'none') {
                        NavToggleText = document.createTextNode(NavigationBarShow);
                        break;
                    }
                }
            }

            NavToggle.appendChild(NavToggleText);
            // 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(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}

addOnloadHook( createNavigationBarToggleButton );