MediaWiki:Common.js
Da Wiki.
Versione del 18 mag 2011 alle 14:49 di Luciano Salvati (Discussione | contributi)
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 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 mentre si fa clic su Refresh, oppure premere Ctrl-F5
- Opera: svuotare completamente la cache dal menu Strumenti → Preferenze
//<pre>
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */
//============================================================
// Menu caratteri speciali --- da it.wikipedia.org ---
//============================================================
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
/**
* 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 addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Wiki</option>";
menu += "<option>Latino esteso</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 */
chooseCharSubset(0);
}
}
/* select subsection of special characters */
function chooseCharSubset(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(addCharSubsetMenu);
// END Menu caratteri speciali
//----------------------------------------------------------
//----------------------------------------------------------
//@TDB 28/11/2007 BUG#16 - Start
String.prototype.toCapitalCase = function() {
var bInWord = false;
var output = "";
var re = /[\s\*\#\'\"\{\}\[\]\(\)\|\_\-\,\.;:=]/;
var c;
for (i = 0; i < this.length; i++) {
c = this.charAt(i).toLowerCase(); //??
if( !re.test(c) ) //test word-limit char
{
if( !bInWord )
{
c = c.toUpperCase();
bInWord = true;
}
}
else
{
bInWord = false;
}
output = output + c;
}
return output;
}
//mixed -> uppercase -> lowercase -> capitalcase
function SwitchCase(s, s1)
{
var aPattern = new Array(/[A-Z]/, /[a-z]/);
var aFlag = new Array;
for ( var i = 0; i < 2; i++ ) {
aFlag[i] = s.search(aPattern[i]);
}
if( aFlag[0]!=-1 && aFlag[1]!=-1 ) {//mixed
s = s.toUpperCase();
} else if( aFlag[0]!=-1 ) { // uppercase
s = s.toLowerCase();
} else if( aFlag[1]!=-1 ) {// lowercase
s = s.toCapitalCase();
}
return {
"selText": s,
"sBefore": s1
};
}
//@TDB 28/11/2007 BUG#16 - End
//----------------------------------------------------------
//@TDB 28/11/2007 BUG#8
function HandleList(selText, s1, cList, bIns)
{
var re = /[\r\f\n]/;
selText = HandleList_SelText(selText, cList, bIns);
//s1 null means that it's not possible to get text before selection
if(s1!=null)
{
//case: ins + void string
if(bIns && s1.length == 0)
{
selText = cList + selText;
}
//check to avoid not visible selected line
//@TDB 06/12/2007 new case: selText void
else if( !(re.test(selText.charAt(0)) && !re.test(selText.charAt(1)))
&& !(selText.length == 0 && s1.length!=0 && re.test(s1.charAt(s1.length - 1)) ) )
{
s1 = HandleList_CurrLine(s1, cList, bIns);
}
//case: del + void string or boundary condition
if( !bIns && (s1.length == 0 || re.test(s1.charAt(s1.length - 1))) && selText.charAt(0) == cList)
{
selText = selText.substring(1);
}
}
return {
"selText": selText,
"sBefore": s1
};
// support functions
function HandleList_SelText(s, cList, bIns)
{
var bInLine = true;
var output = "";
for (i = 0; i < s.length; i++) {
c = s.charAt(i);
if(re.test(c)) //newline char found
{
bInLine = false;
output = output + c;
}
else
{
if(!bInLine)
{
if(bIns)
output = output + cList + c;
else if(c != cList)
output = output + c;
bInLine = true;
}
else
output = output + c;
}
}
return output;
}
function HandleList_CurrLine(s, cList, bIns)
{
var output = "";
var iStartLine = 0;
for (i = s.length - 1; i >= 0; i--) {
c = s.charAt(i);
if(re.test(c)) //newline char found
{
iStartLine = i + 1;
break;
}
}
if(bIns)
{
output = s.substring(0, iStartLine) + cList + s.substring(iStartLine);
}
else if(s.charAt(iStartLine) == cList)
{
output = s.substring(0, iStartLine) + s.substring(iStartLine + 1);
}
else
{
output = s;
}
return output;
}
}
function InsList(selText, s1)
{
return HandleList(selText, s1, "*", true);
}
function DelList(selText, s1)
{
return HandleList(selText, s1, "*", false);
}
// extra toolbar list
if (mwCustomEditButtons) {
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/skins/common/images/button_case.png",
"speedTip": "Maiuscole/Minuscole",
"tagOpen": "",
"tagClose": "",
"sampleText": "fn=SwitchCase; holdSel=true;"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/skins/common/images/button_li_r.png",
"speedTip": "Inserisci Lista",
"tagOpen": "",
"tagClose": "",
"sampleText": "fn=InsList; holdSel=true;"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/skins/common/images/button_li_l.png",
"speedTip": "Cancella Lista",
"tagOpen": "",
"tagClose": "",
"sampleText": "fn=DelList; holdSel=true;"};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/skins/common/images/button_table.png",
"speedTip": "Inserisci Tabella",
"tagOpen": '{| border=1 cellpadding=5 cellspacing=0 style="border-collapse: collapse;"\n|-\n',
"tagClose": "! titolo1\n! titolo2 \n! titolo3\n|-\n| r1_cella1 || r1_cella2 || r1_cella3\n|-\n| r2_cella1 \n| r2_cella2 \n| r2_cella3\n|}",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/skins/common/images/button_train.png",
"speedTip": "Inserisci Template Come Arrivare",
"tagOpen": '{{ComeArrivare\n',
"tagClose": "|auto=\n info auto\n|treno=\n info treno\n|aereo=\n info aereo\n|mare=\n info mare\n}}",
"sampleText": ""};
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "/w/images/Button_lapide.png",
"speedTip": "Inserisci Template Trascrizione Lapidi",
"tagOpen": '{{Lapide\n',
"tagClose": "|img=\n'|testo=\n'|desc=\n'}}",
"sampleText": ""};
};
// -------------------------------------------------------
// @TDB 05/12/2007 BUG#43
function bookmark(title,url){
//handle firefox, opera and explorer
if (window.sidebar)
window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
}
else if(document.all)
window.external.AddFavorite(url, title);
}
//</pre>






