MediaWiki:Mobile.js
Vai alla navigazione
Vai alla ricerca
Nota: Dopo aver salvato le preferenze, perché i cambi abbiano effetto, devi bypassare la cache del tuo browser. Mozilla / Firefox / Safari: tieni premuto Shift mentre clicchi Reload, o premi Ctrl-Shift-R (Cmd-Shift-R per Apple Mac); Google Chrome: premi Ctrl o Shift mentre clicchi F5; IE: premi Ctrl mentre clicchi Refresh, o premi Ctrl-F5; Konqueror:: clicca semplicemente il pulsante di Reload, o premi F5; se usi Opera devi cancellare completamente la chache nel menu Tools→Preferences.
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */ /* <pre> */ //============================================================ // Menu caratteri speciali // ---> non so perché, ma se si inserisce qualcosa prima non funziona più... //============================================================ /** * Aggiunge il menu a tendina per selezionare un sottoinsieme di caratteri speciali * Attenzione: l'ordine della lista deve corrispondere a quello di MediaWiki:Edittools ! */ function aggiungiMenuSubsetCaratteri() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"scegliSubsetCaratteri(selectedIndex)\">"; menu += "<option>Latino esteso</option>"; menu += "<option>Wiki</option>"; menu += "<option>Greco antico</option>"; menu += "<option>Greco moderno</option>"; menu += "<option>Cirillico</option>"; menu += "<option>Arabo</option>"; menu += "<option>Ebraico e yiddish</option>"; menu += "<option>Armeno</option>"; menu += "<option>Geroglifico</option>"; menu += "<option>Vietnamita</option>"; menu += "<option>IPA</option>"; menu += "<option>Matematica</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ scegliSubsetCaratteri(0); } } /* select subsection of special characters */ function scegliSubsetCaratteri(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } addLoadEvent(aggiungiMenuSubsetCaratteri); // END Menu caratteri speciali // 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](); } } }; // END Enable multiple onload functions function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } // Serve per far funzionare il Cassetto2 con IE6. if (window.attachEvent && !window.XMLHttpRequest) { window.attachEvent( "onload", function() { var x=document.getElementById("bodyContent").getElementsByTagName("div"); for (var i=0; i<x.length; i++) { if (x[i].className != "HopFrame") continue; var y=x[i].getElementsByTagName("div"); var j; for (j=0; j<y.length; j++) if (y[j].className == "HopContent") {x[i].hopContent = y[j]; break;} if (j<y.length) { x[i].onmouseover=function() { this.hopContent.style.display="block"; }; x[i].onmouseout=function() { this.hopContent.style.display="none"; }; } } } ); } // BEGIN Dynamic Navigation Bars /* 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); }; })(); // set up the words in your language var NavigationBarHide = '▲ nascondi'; var NavigationBarShow = '▼ espandi'; // 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( i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; // END Dynamic Navigation Bars /*** Codice per il Template:Galleria ***/ function updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink ) { $images.hide().eq( currImg ).show(); $countInfo.html( '(' + ( currImg + 1 ) + '/' + $images.length + ')' ); $prevLink.toggle( currImg !== 0 ); $nextLink.toggle( currImg !== $images.length - 1 ); } function initImageGroup() { $( 'div.ImageGroup > div.ImageGroupUnits' ).each( function ( i, imageGroupUnits ) { var $images, $prevLink, $nextLink, $countInfo, currImg = 0; $images = $( imageGroupUnits ).children( '.center' ); $countInfo = $( '<tt>' ).css( 'font-size', '110%' ); $prevLink = $( '<a>' ) .attr( 'href', '#' ).attr( 'title', 'Immagine precedente' ) .text( '◀' ).css( 'text-decoration', 'none' ) .click( function ( e ) { e.preventDefault(); updateImageGroup( currImg -= 1, $images, $countInfo, $prevLink, $nextLink ); } ); $nextLink = $( '<a>' ) .attr( 'href', '#' ).attr( 'title', 'Immagine successiva' ) .text( '▶' ).css( 'text-decoration', 'none' ) .click( function ( e ) { e.preventDefault(); updateImageGroup( currImg += 1, $images, $countInfo, $prevLink, $nextLink ); } ); updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink ); $( imageGroupUnits ).prepend( $prevLink, $countInfo, $nextLink ); } ); } $( initImageGroup ); /** Collapsible tables ********************************************************* * * Taken from http://en.wikipedia.org/wiki/MediaWiki:Common.js * Description: Allows tables to be collapsed, showing only the header. See * Wikipedia:NavFrame. * Maintainers: User:R. Koot */ var autoCollapse = 2; var collapseCaption = "▲ nascondi"; var expandCaption = "▼ espandi"; function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( "tr" ); 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" ) ) { 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 = "7em"; 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( "]" ) ); var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } } } $( createCollapseButtons ); //END Collapsible tables //HIDDENCAT (mostra le categorie nascoste). Scippato ai francesi function addClass(node, className) { if (hasClass(node, className)) { return false; } node.className += ' '+ className; return true; } function eregReplace(search, replace, subject) { return subject.replace(new RegExp(search,'g'), replace); } function removeClass(node, className) { if (!hasClass(node, className)) { return false; } node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); return true; } function isClass(element, classe) { return hasClass(element, classe); } function hiddencat() { var cl = document.getElementById('catlinks'); if(!cl) return; var hc = document.getElementById('mw-hidden-catlinks'); if(!hc) return; var nc = document.getElementById('mw-normal-catlinks'); if(!nc) { removeClass(cl, 'catlinks-allhidden'); addClass(cl, 'catlinks-allhidden-mostra'); var ahc = '<div id="mw-normal-catlinks"><a href="/wiki/Categoria:Categorie" title="Categoria:Categorie">Categorie</a> : <span dir="ltr"><a onclick="javascript:toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:#002BB8;" title="Questa voce contiene categorie nascoste">[<span style="font-style:italic;">altre</span>]</a></span></div>'; document.getElementById('catlinks').innerHTML = ahc + cl.innerHTML; } else if( isClass(hc, 'mw-hidden-cats-hidden') ) { var ahc = ' | <a onclick="javascript:toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:#002BB8;" title="Questa voce contiene categorie nascoste">[<span style="font-style:italic;">altre</span>]</a>'; document.getElementById('mw-normal-catlinks').innerHTML += ahc; } } function toggleHiddenCats() { var hc = document.getElementById('mw-hidden-catlinks'); if( isClass(hc, 'mw-hidden-cats-hidden') ) { removeClass(hc, 'mw-hidden-cats-hidden'); addClass(hc, 'mw-hidden-cat-user-shown'); document.getElementById('mw-hidden-cats-link').innerHTML = '[<span style="font-style:italic;">nascondi</span>]'; } else { removeClass(hc, 'mw-hidden-cat-user-shown'); addClass(hc, 'mw-hidden-cats-hidden'); document.getElementById('mw-hidden-cats-link').innerHTML = '[<span style="font-style:italic;">altre</span>]'; } } $(hiddencat); /* Layout pagina di modifica */ addLoadEvent ( function () { if (wgAction == "edit") { /* Allarga l'edittools a tutta pagina */ document.getElementById("Standard").style.width = "100%"; } }); /* Avvisa quando si tenta di creare una voce con titolo non valido ("Scrivi qui il titolo")*/ $( function () { if (wgTitle == "Scrivi qui il titolo" && wgAction == "edit") { dopoDi = document.getElementById("contentSub"); if (!dopoDi) return; var daInserire = document.createElement('div'); daInserire.innerHTML = "<b>Stai creando una pagina senza specificare un titolo valido per la voce. Per favore torna indietro e inserisci un titolo valido.</b>"; daInserire.className = "toccolours itwiki_template_avviso rad"; daInserire.style.marginBottom = "0.5em"; daInserire.style.background = "#FC9"; daInserire.style.borderColor = "red"; daInserire.style.textAlign = "center"; dopoDi.parentNode.insertBefore(daInserire, dopoDi.nextSibling); } }); //============================================================ // Funzione per gestire i cookies function SetCookie(cookieName,cookieValue,nDays) { var today = new Date(); var expire = new Date(); if (nDays==null || nDays==0) nDays=1; expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString(); } function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(";"); for (i=0;i<ARRcookies.length;i++) { x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); x=x.replace(/^\s+|\s+$/g,""); if (x==c_name) { return unescape(y); } } } //============================================================ // Funzione per la variazione della dimensione del font function resizeText(multiplier, boolPulsante) { var coockieNameMultiplier = "CathopediaMultiplier"; var Correction = 10; var bodyContent = document.getElementById("mw-content-text"); var cookieValueNewText; cookieValue = parseFloat(bodyContent.style.fontSize) * 100 / Correction; if (! cookieValue) cookieValue = parseFloat(getCookie(coockieNameMultiplier)); if (! cookieValue) cookieValue = 100; var cookieValueNew = Math.round(cookieValue * multiplier / 100 / 5) * 5; if (cookieValueNew < 50) cookieValueNew = 50; if (cookieValueNew > 200) cookieValueNew = 200; if (! multiplier || ( mw.config.get( "wgNamespaceNumber" ) && mw.config.get( "wgNamespaceNumber" ) !== 4 ) ) cookieValueNew = 100; bodyContent.style.fontSize = (cookieValueNew * Correction / 100) + "pt"; cookieValueNewText = cookieValueNew.toString(); if (boolPulsante) SetCookie(coockieNameMultiplier, cookieValueNewText, 1000); //if (cookieValue < 100) //cookieValue = "<span style='color: white'>0</span>" + cookieValue; textPerCentElement = document.getElementById("textpercent"); if (textPerCentElement) textPerCentElement.innerText = cookieValueNew + "%"; } window.onload(resizeText(100, false)); if (document.getElementById('selettoreriti')) { // funzioni per scambiare i riti romano e ambrosiano in pagina principale function AttivaRomano() { //~ document.getElementById('selettoreambrosiano').style.display = ''; //~ document.getElementById('selettoreromano').style.display = 'none'; document.getElementById('ambrosiano').style.display = 'none'; document.getElementById('romano').style.display = ''; document.getElementById('selettoreromano').className = 'BottoneSelettoreRitoSelezionato'; document.getElementById('selettoreambrosiano').className = 'BottoneSelettoreRitoNonSelezionato'; document.getElementById('selettoreambrosiano').title = 'Passa al Rito Ambrosiano'; document.getElementById('selettoreromano').title = ''; SetCookie('rito', '', 1000); document.getElementById('selettoreambrosiano').onclick = AttivaAmbrosiano; document.getElementById('selettoreromano').onclick = null; } function AttivaAmbrosiano() { //~ document.getElementById('selettoreambrosiano').style.display = 'none'; //~ document.getElementById('selettoreromano').style.display = ''; document.getElementById('ambrosiano').style.display = ''; document.getElementById('romano').style.display = 'none'; document.getElementById('selettoreromano').className = 'BottoneSelettoreRitoNonSelezionato'; document.getElementById('selettoreambrosiano').className = 'BottoneSelettoreRitoSelezionato'; document.getElementById('selettoreambrosiano').title = ''; document.getElementById('selettoreromano').title = 'Passa al Rito Romano'; SetCookie('rito', 'ambrosiano', 1000); document.getElementById('selettoreromano').onclick = AttivaRomano; document.getElementById('selettoreambrosiano').onclick = null; } if ( getCookie('rito') == 'ambrosiano') AttivaAmbrosiano(); else AttivaRomano(); } document.getElementById('textminus').onclick = function(){resizeText(90, true);} document.getElementById('textstandard').onclick = function(){resizeText(0, true);} document.getElementById('textplus').onclick = function(){resizeText(111, true);}