MediaWiki:Common.js

Da il PaccoPacchia.
Jump to navigation Jump to search

Nota: dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tenere premuto il tasto delle maiuscole Shift e fare clic su Ricarica, oppure premere Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premere Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer: tenere premuto il tasto Ctrl e fare clic su Aggiorna, oppure premere Ctrl-F5
  • Opera: Vai nel Menu → Impostazioni (Opera → Preferenze su un Mac) e poi in Privacy & sicurezza → Pulisci dati del browser → Immagini e file nella cache.
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */

if ( typeof console !== undefined ) {
	console.log( 'Common.js 9' );
}

/* 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);
    };
})();
 
function getElementsByClass(searchClass, tagName) {
	// Fonte: http://www.anyexample.com/webdev/javascript/javascript_getelementsbyclass_function.xml
	if (tagName == null)
		tagName = '*';
	var el = new Array();
	var tags = document.getElementsByTagName(tagName);
	for(i = 0, j = 0; i < tags.length; i++)
		if (hasClass(tags[i], searchClass)) 
			el[j++] = tags[i];
	return el;
}
 
/** Username replace function *******************************
  * Inserts user name into <span class="insertusername"></span>
  */
 
if (!(typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace || wgUserName == null)) {
   var n = getElementsByClass("insertusername", "span");
   if (n.length > 0)
      for (var i = 0; i < n.length; i++)
         n[i].innerHTML = wgUserName;
}
 
 /** "Technical restrictions" title fix *****************************************
  *
  *  Descrizione: Codice per [[Template:Titolo errato]]
  *  Copiato inizialmente da [[:en:MediaWiki:Common.js]]
  */
 // The function looks for a banner like this: <nowiki>
 // <div id="RealTitleBanner">    <!-- div that gets hidden -->
 //   <span id="RealTitle">title</span>
 // </div>
 // </nowiki>An element with id=DisableRealTitle disables the function.
var disableRealTitle = 0;    // users can disable this by making this true from their user script
function correctTitle() {
  try {
    var realTitleBanner = document.getElementById("RealTitleBanner");
    if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
      var realTitle = document.getElementById("RealTitle");
      if (realTitle) {
        var realTitleHTML = realTitle.innerHTML;
        var realTitleText = $(realTitle).text();
 
        var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big|a)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
 
        var h1 = document.getElementsByTagName("h1")[0];
        if (h1) {
          h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
 
          realTitleBanner.style.display = "none";
        }
        document.title = realTitleText + " - il PaccoPacchia";
      }
    }
  } catch (e) {
    /* Something went wrong. */
  }
}
 
$(correctTitle);
 
// BEGIN Dynamic Navigation Bars
 
// set up the words in your language
var NavigationBarHide = '▲ nascondi';
var NavigationBarShow = '▼ mostra';
 
// 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
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 (hasClass(NavChild, 'NavPic'))
               NavChild.style.display = 'none';
           if (hasClass(NavChild, 'NavContent'))
               NavChild.style.display = 'none';
           if (hasClass(NavChild, '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 (hasClass(NavChild, 'NavPic'))
               NavChild.style.display = 'block';
           if (hasClass(NavChild, 'NavContent'))
               NavChild.style.display = 'block';
           if (hasClass(NavChild, 'NavToggle'))
               NavChild.firstChild.data = NavigationBarHide;
       }
   }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
   var indexNavigationBar = 0;
   // iterate over all < div >-elements
   for(
           var i=0; 
           NavFrame = document.getElementsByTagName("div")[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);
           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);
       }
   }
 
}
 
$(createNavigationBarToggleButton);
 
// END Dynamic Navigation Bars
 
/* Pulsanti della pagina principale */
function bottoni_over(id) {
	pulsantiPaginaPrincipale = getElementsByClass("pulsantePaginaPrincipale", "td");
	var colori = new Array();
	colori[0] = "#90d749";
	colori[1] = "#ababca";
        colori[2] = "#00957c";
        colori[3] = "#1f206a";
        colori[4] = "#90d749";
        colori[5] = "#ababca";
        colori[6] = "#00957c";
	if (pulsantiPaginaPrincipale.length != 0) {
		pulsantiPaginaPrincipale[id].style.color = "black";
		pulsantiPaginaPrincipale[id].style.borderStyle = "solid";
		pulsantiPaginaPrincipale[id].style.backgroundColor = colori[id];
		document.getElementById("imgNera" + id).style.display = "inline";
		document.getElementById("imgBianca" + id).style.display = "none";
	}
}

function bottoni_out(id) {
	pulsantiPaginaPrincipale = getElementsByClass("pulsantePaginaPrincipale", "td");
	var colori = new Array();
	colori[0] = "#90d749";
	colori[1] = "#ababca";
        colori[2] = "#00957c";
        colori[3] = "#1f206a";
        colori[4] = "#90d749";
        colori[5] = "#ababca";
        colori[6] = "#00957c";
	if (pulsantiPaginaPrincipale.length != 0) {
		pulsantiPaginaPrincipale[id].style.color = "white";
		pulsantiPaginaPrincipale[id].style.borderStyle = "solid";
		pulsantiPaginaPrincipale[id].style.backgroundColor = colori[id];
		document.getElementById("imgNera" + id).style.display = "none";
		document.getElementById("imgBianca" + id).style.display = "inline";
	}
}
 
var pulsantiPaginaPrincipale = getElementsByClass("pulsantePaginaPrincipale", "td");
if (pulsantiPaginaPrincipale.length != 0) {
	for (var i = 0; i < pulsantiPaginaPrincipale.length; i++) {
		pulsantiPaginaPrincipale[i].setAttribute("onmouseover", "javascript:bottoni_over(" + i + ");");
		pulsantiPaginaPrincipale[i].setAttribute("onmouseout", "javascript:bottoni_out(" + i + ");");
	}
}