Utente:Sanjilops/monobook.js: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Contenuto aggiunto Contenuto cancellato
mNessun oggetto della modifica
Nessun oggetto della modifica
 
(108 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
//disableHideEdit = true;
//disablehideEdit=1;
disableAlert = true;
disablealertLoad=1;
disableaprilfish = 1;
disableaprilfish = true;
disableRefTooltip = false;






function Main() {
function Main() {
FastOpen();
FastOpen();
editcurrentid();
if (document.getElementById('alert-load')) alert("alert onload presenti");
if (document.getElementById('alert-load')) alert("alert onload presenti");
if (document.getElementById('alert-unload')) alert("alert onunload presenti");
if (document.getElementById('alert-unload')) alert("alert onunload presenti");

if (wgPageName == "Utente:Sanjilops/sandbox") gif_hack();


/* Funzioni dell'editor */
/* Funzioni dell'editor */
if ((wgAction == "edit" || wgAction == "submit") && document.getElementById("toolbar")) {
if ((wgAction == "edit" || wgAction == "submit") && document.getElementById("toolbar")) {

hooks_user.push(sectionzero_editlink);

if (mwCustomEditButtons) {
if (mwCustomEditButtons) {
mwCustomEditButtons[0] = {
mwCustomEditButtons[0] = {
Riga 72: Riga 71:
if (!Box) return;
if (!Box) return;
var form = document.createElement("form");
var form = document.createElement("form");
Box.appendChild(form);
Box.appendChild(form);
form.style.position = "absolute";
form.style.top = "1px";
form.action = "/index.php";
form.action = "/index.php";
form.target = "_blank";
form.target = "_blank";
Riga 79: Riga 80:
c.type = "text";
c.type = "text";
c.setAttribute('name', "title");
c.setAttribute('name', "title");
c.size = "20";
c.size = "13";
var menu = document.createElement("select");
var menu = document.createElement("select");
form.appendChild(menu);
form.appendChild(menu);
Riga 92: Riga 93:
}
}



function sectionzero_editlink() {
var disable_gif_hack = false;
if (wgNamespaceNumber == -1) return;
function gif_hack () {
if (getElementsByClass(document.getElementById('bodyContent'), 'editsection', 'span').length == 0) return;
if (document.getElementById('no-sec0-edit')) return;
if (disable_gif_hack) return false;
// var title = document.getElementById('firstHeading');
var a_images = getElementsByClass(document.getElementById('bodyContent'), 'image', 'a');
if (!a_images.length) return;
var subtitle = document.getElementById('siteSub');
var img, tmp;
var link = document.createElement('a');
var thumbs = new Array();
link.rel = 'nofollow';
var names = new Array();
link.title = "Modifica la sezione introduttiva";
for (var i = 0; i < a_images.length; i++) {
link.href = wgServer + wgScriptPath + '/index.php?title=' + encodeURI(wgPageName) + '&action=edit&section=0&editintro=MediaWiki:Editintro';
img = a_images[i].getElementsByTagName('img')[0];
link.innerHTML = "modifica";
if (/\.gif$/i.test(img.src) && /\/images\/thumb\//.test(img.src) && /\bgif\b/i.test(img.alt)) {
var span = document.createElement('span');
thumbs.push(img);
span.className = "editsection";
tmp = img.src.split('/');
subtitle.insertBefore(span,subtitle.firstChild);
names.push("File:" + tmp[tmp.length - 1].replace(/\d+px-/, ''));
span.appendChild(link);
}
span.innerHTML = '[' + span.innerHTML + ']';
}
if (!thumbs.length) return;
var httpRequest = createRequest();
var id = setTimeout(function() { httpRequest.abort();}, 30000);
var param = "format=xml&action=query&prop=imageinfo&iiprop=url&titles=" + names.join('|');
httpRequest.onreadystatechange = function () { Receive(httpRequest, id); return; }
httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.setRequestHeader('Content-Length', param.length);
httpRequest.send(param);
return;
return;
function Receive(o, id) {
if (o.readyState != 4) return;
clearTimeout(id);
if (o.status != 200) return;
var xml = o.responseXML;
if (xml == null) return;
if (xml.normalize) xml.normalize();
var ii = xml.getElementsByTagName('ii');
var i = 0;
for (var I = 0; I < ii.length; I++) {
for (i in thumbs) {
if (ii[I].getAttribute('url').indexOf(names[i].replace("File:", '')) != -1) thumbs[i].src = ii[I].getAttribute('url');
}
}
return;
}
}
}
addOnloadHook(sectionzero_editlink);


function ref_tooltip () {
function Quick_Editor() {
quickdiff_load();
var refs = getElementsByClass(document.getElementById('bodyContent'), "reference", 'sup');
var sect = $("[name=wpSection]");
if (!refs) return;
if (!/&?undo=\d+/.test(location.search) && ((sect.length && !sect.val()) || !sect.length)) quicksave_load();
for (var i = 0; i < refs.length; i++) Do(refs[i]);
if (["MediaWiki:Common.css", "MediaWiki:Monobook.css", "MediaWiki:Common.js", "MediaWiki:Monobook.js", "Utente:" + wgUserName + "/monobook.css", "Utente:" + wgUserName + "/monobook.js"].indexOf(wgPageName) == -1)
quickpreview_load();
$("#wpTextbox1").bind('mouseup keyup focus change', quickedit_switch);
var c = document.createElement('span');
c.id = "quickeditor_charactercount";
$(c).text($("#wpTextbox1").val().length.toString() + " caratteri");
$("#toolbar").append(c);
return;
return;
}

function quickedit_switch() {
$("#quicksaveButton").attr('disabled', this.value == quicksave_checktext ? 'disabled' : '');
if (!(/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0)) {
$("#quickpreviewButton").val(this.selectionStart < this.selectionEnd ? "Anteprima selezione" : "Visualizza anteprima");
}
$("#quickeditor_charactercount").text(this.value.length.toString() + " caratteri");
function Do (ref) {
return;
var span = document.createElement('span');
}
var id = ref.id.substr('cite_ref-'.length);

span.className = "reference-tt";
var QS_waitforpreview = " Creazione anteprima della pagina in corso...";
span.id = "cite_tt-" + id;
var quicksave_checktext = '';
var li = document.getElementById('cite_note-' + id.replace(/_(\d+)-\d+$/, '-$1'));
function quicksave_load() {
if (!li) return;
var temp = li.innerHTML;
var b = document.createElement('input');
b.type = 'button';
temp = temp.split(/^.+a href=\"#cite_ref-.+\" title=\"\">.+<\/a>(<\/sup>)? /);
$("#wpSave").after(b);
span.innerHTML = (temp.length > 1)? temp[2] : temp;
b.value = "Salva";
if (ref.offsetLeft < document.getElementById('bodyContent').clientWidth/2) span.style.left = "0px";
b.id = "quicksaveButton";
else span.style.right = "0px";
$(b).click(quicksave);
temp = getText(span);
b.accessKey = '1';
temp = temp.length * 12;
b.title = "Salva e continua a modificare la pagina [alt-shift-1]";
span.style.width = (temp < 400)? temp + 'px' : "400px";
b.disabled = true;
ref.appendChild(span);
quicksave_checktext = $("#wpTextbox1").val();
// ref.setAttribute('onMouseOver', "javascript:this.childNodes[1].scrollIntoView(true);");
return;
}

function quicksave () {
var textbox = $("#wpTextbox1")[0];
var Source = textbox.value;
textbox.disabled = true;
$("#wpSummary, #wpSave, #quicksaveButton, #quickpreviewButton, #quickdiffButton").attr('disabled','disabled');
$('body').css('cursor','progress');
var temp = $("#quicksave_msgbox")[0];
if (!temp) {
temp = $(document.createElement('div')).insertBefore($("#editform")).attr('id', "quicksave_msgbox");
var msg_box = temp[0].appendChild(document.createElement('div'));
temp.append(document.createElement('span')).attr('id', "quicksave_msgbox_close").text('×').click( function () { $("#quicksave_msgbox").hide("slow"); });
}
else {
temp.style.display = 'block';
var msg_box = temp.firstChild;
}
msg_box.innerHTML = "Salvataggio in corso...";
// msg_box.scrollIntoView();

var param = "action=edit&format=xml&title=" + encodeURIComponent(wgPageName);
param += "&token=" + $("[name=wpEditToken]:first").val().replace(/\+\\/, '%2' + 'B%5' + 'C');
param += "&summary=" + encodeURIComponent($("#wpSummary").val());
temp = $("#wpCaptchaId")[0];
if (temp) {
param += "&captchaid=" + temp.value + "&captchaword=" + encodeURIComponent($("#wpCaptchaWord").val());
$("#editform #captcha_box").remove();
}
if ($("#wpMinoredit")[0].checked) param += "&minor=";
var Watched = $("#wpWatchthis")[0].checked;
if ($("#ca-watch")[0] && Watched) {
$("#ca-watch a").text(wgAjaxWatch["watchingMsg"].toLowerCase());
param += "&watchlist=watch";
}
if ($("#ca-unwatch")[0] && !Watched) {
$("#ca-unwatch a").text(wgAjaxWatch["unwatchingMsg"].toLowerCase());
param += "&watchlist=unwatch";
}
param += "&basetimestamp=" + $("[name=wpEdittime]:first").val();
param += "&starttimestamp=" + $("[name=wpStarttime]:first").val();
param += "&md5=" + MD5(textbox.value);
param += "&text=" + encodeURIComponent(Source);
var httpRequest = createRequest();
var id = setTimeout(function() { httpRequest.abort(); msg_box.style.color = 'red'; $(msg_box).text("Salvataggio fallito: il server non risponde."); Finish(false); }, 15000);
httpRequest.onreadystatechange = function () { Response(httpRequest, id); return;};
httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.setRequestHeader('Content-Length', param.length);
$("#wpSummary").attr('disabled','');
textbox.disabled = false;
httpRequest.send(param);
return; // fine quicksave
function Response (o, id) {
if (o.readyState != 4) return;
if (o.status != 200) {
if (o.status && (o.status < 200 || o.status > 299)) {
clearTimeout(id);
msg_box.style.color = 'red';
$(msg_box).text("Salvataggio fallito. Risposta del server: " + o.status);
Finish(false);
}
return;
}
clearTimeout(id);
if (o.responseXML == null) {
msg_box.style.color = 'rgb(100, 100, 100)';
$(msg_box).text("Errore nella risposta del server. Controlla nella cronologia se il salvataggio è avvenuto");
Finish(false);
return;
}
if (o.responseXML.normalize) o.responseXML.normalize();
var result = o.responseXML.getElementsByTagName('edit');
if (result && result[0] != undefined) {
if (result[0].getAttribute('result') == "Success") {
$(msg_box).text("Salvataggio completato." + QS_waitforpreview);
wgCurRevisionId = result[0].getAttribute('newrevid');
setTimeout(function () {quickpreview(true); return; }, 100); // su un nuovo thread per non fermare la funzione
if (wgUserName) {
if (Watched) {
temp = $("#ca-watch")[0];
if (temp) {
temp.id = "ca-unwatch";
temp = temp.firstChild;
temp.href = temp.href.replace(/=watch$/, "=unwatch");
$(temp).text(wgAjaxWatch["unwatchMsg"].toLowerCase());
temp.title = wgAjaxWatch["tooltip-ca-unwatchMsg"];
}
}
else {
temp = $("#ca-unwatch")[0];
if (temp) {
temp.id = "ca-watch";
temp = temp.firstChild;
temp.href = temp.href.replace(/=unwatch$/, "=watch");
$(temp).text(wgAjaxWatch["watchMsg"].toLowerCase());
temp.title = wgAjaxWatch["tooltip-ca-watchMsg"];
}
}
}
$(msg_box).append('<br ' + '/>');
var request_ts = createRequest();
var ts_id = setTimeout(function() { request_ts.abort(); $(msg_box).append("Impossibile procedere ad ulteriori salvataggi. Il server non risponde"); Finish(true, false); return; }, 15000);
request_ts.onreadystatechange = function () { Get_Timestamp(request_ts, ts_id); return; }
var param = "action=query&format=xml&" + "prop=revisions&meta=userinfo&uiprop=hasmsg&rvprop=timestamp%" + "7Cuser&rvlimit=1&rvdir=older&titles=" + encodeURIComponent(wgPageName);
request_ts.open('POST', wgServer + wgScriptPath + "/api.php", true);
request_ts.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request_ts.setRequestHeader('Content-Length', param.length);
request_ts.send(param);
return;
}
if (result[0].getAttribute('result') == "Failure") {
var captcha = result[0].getElementsByTagName('captcha')[0];
if (captcha == null) {
msg_box.style.color = 'red';
$(msg_box).text("Salvataggio fallito: errore ignoto");
Finish(false);
return;
}
msg_box.style.display = 'none';
msg_box.innerHTML = '';
var captcha_id = document.createElement('input');
captcha_id.type = 'hidden';
captcha_id.id = "wpCaptchaId";
captcha_id.value = captcha.getAttribute('id');
var captcha_word = document.createElement('input');
captcha_word.id = "wpCaptchaWord";
captcha_word.style.marginBottom = "10px";
var captcha_img = document.createElement('img');
captcha_img.src = wgServer + wgScriptPath + "/index.php?title=Special:Captcha/image&wpCaptchaId=" + captcha_id.value;
var captcha_msg = document.createElement('p');
captcha_msg.innerHTML = 'La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l\'inserimento automatico di spam, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine (<' + 'a href="/wiki/Speciale:Captcha/help" title="Speciale:Captcha/help">come funziona?</' + 'a>)';
var captcha_box = document.createElement('div');
captcha_box.id = "captcha_box";
$("#toolbar").before(captcha_box);
$(captcha_box).append(captcha_msg,[captcha_img,captcha_word,captcha_id]);
Finish(false);
return;
}
}
var error = o.responseXML.getElementsByTagName('error');
if (error == null) {
msg_box.style.color = 'rgb(100, 100, 100)';
$(msg_box).text("Errore nella risposta del server. Controlla nella cronologia se il salvataggio è avvenuto");
Finish(false);
return;
}
msg_box.style.color = 'red';
switch (error[0].getAttribute('code')) {
case 'editconflict':
$("#wpSave").attr('disabled','').delay(100).click();
return;

case 'noedit':
case 'noedit-anon':
case 'protectedtitle':
$(msg_box).text("Non sei autorizzato a modificare questa pagina.");
Finish(false);
return;
default:
$(msg_box).text("Salvataggio fallito: " + error[0].getAttribute('info'));
Finish(false);
return;
}
}

function Get_Timestamp (o, id) {
if (o.readyState != 4) return;
if (o.status != 200) {
if (o.status && (o.status < 200 || o.status > 299)) {
clearTimeout(id);
$(msg_box).append("Impossibile procedere ad ulteriori salvataggi. Risposta del server: " + o.status);
Finish(true, false);
}
return;
}
clearTimeout(id);
if (o.responseXML == null) {
$(msg_box).append("Impossibile procedere ad ulteriori salvataggi.");
Finish(true, false);
return;
}
if (o.responseXML.normalize) o.responseXML.normalize();
var rev = o.responseXML.getElementsByTagName('rev');
if (!rev || rev[0] == undefined) {
$(msg_box).append("Impossibile procedere ad ulteriori salvataggi.");
Finish(true, false, o);
return;
}
var t = rev[0].getAttribute('timestamp');
$("[name=wpEdittime]:first").val(t.replace(/\D/g, ''));
var d = new Date(t.replace(/(\d\d\d\d)-(\d\d)-(\d\d)T(.+)Z/, "$1/$2/$3 $4"));
d.setHours(d.getHours() - d.getTimezoneOffset()/60);
$(msg_box).append("Ultima modifica: " + rev[0].getAttribute('user') + ' ' + d.toLocaleString());
d = new Date();
$("[name=wpStarttime]:first").val(d.getUTCFullYear().toString() + addzero(d.getUTCMonth()) + addzero(d.getUTCDate()) + addzero(d.getUTCHours()) + addzero(d.getUTCMinutes())+ addzero(d.getUTCSeconds() + 1));

Finish(true, true, o);
return;
return;
}
}


function Finish(success, got_ts, o) {
if (success) {
quicksave_checktext = Source;
$("#wpSave, #quicksaveButton").attr('disabled', got_ts ? '': 'disabled'); // se il salvataggio è riuscito, senza timestamp non possiamo farne altri

/* nuovi messaggi in discussione? */
if (o == undefined) return;
var temp = o.responseXML.getElementsByTagName('userinfo');
if (!temp || temp[0] == undefined) return;
var $usermessage = $(".usermessage:not(#wikiPreview > *)");
if (!temp[0].hasAttribute('messages')) {
$usermessage.css('display', 'none');
return;
}
var name = (wgUserName)? wgUserName : temp[0].getAttribute('name');
if (!$usermessage.length) {
$usermessage = $(document.createElement('div')).addClass("usermessage").insertBefore($("#wikiPreview")).html('Hai <a title="Discussioni utente:' + name + '" href="/index.php?title=Discussioni_utente:' + encodeURI(name) + '&redirect=no">nuovi messaggi</a' + '> (<a title="Discussioni utente:' + name + '" href="/index.php?title=Discussioni_utente:' + encodeURI(name) + '&diff=cur">differenza con la revisione precedente</a' + '>).');
}
else $usermessage.css('display', 'block');
}
else {
$("#quickpreviewButton, #quickdiffButton").attr('disabled', '');
$('body').css('cursor','auto');
}
return;
}
} // <- quicksave()

var QP_hiddencatlist;
var QP_hiddencats_cat = "Categorie nascoste";
function quickpreview_load() {
var b = document.createElement('input');
b.type = 'button';
b.value = (/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0) ? "Anteprima stile" : "Visualizza anteprima";
b.id = "quickpreviewButton";
$(b).click(quickpreview);
b.accessKey = '2';
b.title = "Anteprima delle modifiche (consigliata prima di salvare) [alt-shift-2]";
$("#wpPreview").css({'margin':'0px', 'padding':'0px', 'font-size':'0', 'width':'0px', 'border':'0px none'});
$("#wpPreview").before(b);
$("#quickpreview-hotkeysuggest").css({'visibility' : 'visible'});
QP_hiddencatlist = getCookie("QPhc");
if (QP_hiddencatlist == null) {
var request_hc = createRequest();
request_hc.onreadystatechange = function () { quickpreview_set_hc_cookie(request_hc); return;};
request_hc.open('GET', wgServer + wgScriptPath + "/api.php?format=xml&action=query&list=categorymembers&cmtitle=Category:" + encodeURI(QP_hiddencats_cat) + "&cmlimit=500", true);
request_hc.send(null);
}
return;

function quickpreview_set_hc_cookie (o) {
if (o.readyState != 4 || o.status != 200 || o.responseXML == null) return;
if (o.responseXML.normalize) o.responseXML.normalize();
var cm = o.responseXML.getElementsByTagName('categorymembers')[0].getElementsByTagName('cm');
var tmp = new Array();
for (i in cm) tmp.push(cm[i].getAttribute('title'));
QP_hiddencatlist = tmp.join('|');
document.cookie = "QPhc=" + escape(QP_hiddencatlist);
return;
}
}
}
addOnloadHook(ref_tooltip);
hooks_user.push(ref_tooltip);


function quickpreview (after_save) {
if (after_save == undefined) after_save = false;
$("#quickpreviewButton, #quickdiffButton").attr('disabled','disabled');
$('body').css('cursor','progress');
var temp;


/* Pulizia dell'area di anteprima */
var $previewArea = $("#wikiPreview");
$previewArea.html('').css('display', 'block');
$("#editintro, .mw-newarticletext:first, .mw-newarticletextanon:first, #mw-anon-edit-warning, #mw-warning-with-logexcerpt, #mw-edit-longpagewarning, #contentSub2, #explainconflict").remove();
$("#wikiDiff").css('display','none');
$("#contentSub").html('');
/***** Nonciclopedia only *****/
$("#wpTalkPageText").remove();
/* Rimuove eventuali css importati precedentemente; */
$("#add-css-link").remove();
/**********/
$("#add-css-quickpreview").remove();


/* Imposta il titolo */
temp = wgPageName.replace(/_/g, ' ');
$("#firstHeading").html(temp);
$('title:first').html(temp + " {anteprima} - " + wgSiteName);


/* Anteprima css - non serve collegarsi al server */
if (/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0 && !after_save) {
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = $("#wpTextbox1").val();
style.id = "add-css-quickpreview";
$('head').append(style);
Finish(false);
return;
}


var param = "format=xml&action=parse&" + "prop=text%7" + "Ccategories%7" + "Ctemplates";
if (after_save) {
param += "&page=" + encodeURIComponent(wgPageName);
}
else {
var textbox = $("#wpTextbox1")[0];
textbox.disabled = true;
var start = textbox.selectionStart, end = textbox.selectionEnd;
if (start < end) temp = textbox.value.slice(start, end);
else {
temp = textbox.value + '\n';
if ($("[name=wpSection]:first").val() == 'new') temp = "== " + $("#wpSummary").val() + " ==\n" + temp;
}
textbox.disabled = false;
param += "&pst=&title=" + encodeURIComponent(wgPageName) + "&text=" + encodeURIComponent(temp);
}
var httpRequest = createRequest();
var id = setTimeout(function() { httpRequest.abort(); alert("Errore: il server non risponde"); Finish(false); }, 15000);
httpRequest.onreadystatechange = function () { Write(httpRequest, id); return;};
httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.setRequestHeader('Content-Length', param.length);
httpRequest.send(param);
return; /* fine quickpreview */


function Write(o, id) {
if (o.readyState != 4) return;
if (o.status != 200) {
if (o.status && (o.status < 200 || o.status > 299)) {
alert("Anteprima non riuscita. Risposta del server: " + o.status);
clearTimeout(id);
Finish(false);
}
return;
}
clearTimeout(id);
if (o.responseXML == null) {
alert("Anteprima non riuscita (errore del server?)");
Finish(false);
return;
}
if (o.responseXML.normalize) o.responseXML.normalize();
var R = o.responseXML.getElementsByTagName('text')[0].firstChild;
temp = R.data;
if (["MediaWiki:Common.css", "MediaWiki:Monobook.css", "MediaWiki:Common.js", "MediaWiki:Monobook.js", "Utente:" + wgUserName + "/monobook.css", "Utente:" + wgUserName + "/monobook.js"].indexOf(wgPageName) != -1) {
temp = "<pre class='mw-code mw-" + /(?!\.)\w+$/.exec(wgTitle) + "'>" + temp + "<" + "/pre>";
}
$previewArea.html(temp);


/* aggiungi elenco template */
var templatesUsed = $(".templatesUsed")[0];
if (!templatesUsed) {
templatesUsed = document.createElement('div');
templatesUsed.className = "templatesUsed";
$("#editform").append(templatesUsed);
}
var templatesList = templatesUsed.getElementsByTagName('ul')[0];
if (!templatesList) {
templatesList = templatesUsed.appendChild(document.createElement('ul'));
}
else templatesList.innerHTML = '';
R = o.responseXML.getElementsByTagName('templates')[0].getElementsByTagName('tl');
if (R.length > 0) {
var name;
temp = '';
for (i in R) {
name = R.item(i).firstChild.nodeValue;
if (R.item(i).getAttribute('exists') != undefined)
temp += "<li" + "><a title='" + name + "' href='/wiki/" + encodeURI(name) + "'>" + name + "</a> (<a href='/index.php?title=" + encodeURI(name) + "&action=edit&editintro=Mediawiki:Editintro'>modifica</a>)</li>";
else
temp += "<li" + "><a title='" + name + " (la pagina non esiste)' class='new' href='/index.php?title=" + encodeURI(name) + "&action=edit&redlink=1&editintro=Mediawiki:Editintro'>" + name + "</a></li>";
}
templatesList.innerHTML = temp;
temp = getElementsByClass(templatesUsed, "mw-templatesUsedExplanation", 'div')[0];
if (!temp) {
temp = templatesUsed.insertBefore(document.createElement('div'), templatesList);
temp.className = "mw-templatesUsedExplanation";
temp.innerHTML = "<p" + ">Template utilizzati in questa anteprima: </p>";
}
}


/* aggiungi categorie */
var catlinksBox = $(".printfooter ~ #catlinks")[0];
R = o.responseXML.getElementsByTagName('categories')[0].getElementsByTagName('cl');
if (R.length > 0) {
if (catlinksBox != null) {
catlinksBox.innerHTML = '';
catlinksBox.style.display = 'block';
}
else {
catlinksBox = document.createElement('div');
catlinksBox.id = "catlinks";
catlinksBox.className = "catlinks";
$(".visualClear:first").before(catlinksBox);
}
var normal_cats = new Array();
var normalcatlinks = new Array();
var hiddencatlinks = new Array();
for (i in R) {
name = R.item(i).firstChild.nodeValue;
if (RegExp(name.replace(/_/g, ' ')).test(QP_hiddencatlist)) hiddencatlinks.push('<span dir="ltr"><a href="/wiki/Categoria:' + encodeURI(name) + '" title="Categoria:' + name.replace(/_/g, ' ') + '">' + name.replace(/_/g, ' ') + '</a></span>');
else {
normal_cats.push('[[:Categoria:' + name + '|' + name.replace(/_/g, ' ') + ']]');
normalcatlinks.push('<span dir="ltr"><a href="/wiki/Categoria:' + encodeURI(name) + '" title="Categoria:' + name.replace(/_/g, ' ') + '">' + name.replace(/_/g, ' ') + '</a>*</span>');
}
}
if (hiddencatlinks.length > 0) {
var hiddencatlinksBox = catlinksBox.appendChild(document.createElement('div'));
hiddencatlinksBox.id = "mw-hidden-catlinks";
hiddencatlinksBox.className = "mw-hidden-cats-hidden";
$(catlinksBox).toggleClass("catlinks-allhidden", (normal_cats.length == 0));
temp = "Categori" + (hiddencatlinks.length > 1? "e nascoste: " : "a nascosta: ") + hiddencatlinks.join(" | ");
hiddencatlinksBox.innerHTML = temp;
}
if (normal_cats.length > 0) {
$(catlinksBox).removeClass("catlinks-allhidden"); // CDW
var $normalcatlinksBox = $(document.createElement('div')).prependTo(catlinksBox).attr('id', "mw-normal-catlinks").html("<a title='Speciale:Categorie' href='/wiki/Speciale:Categorie'" + ">Categori" + (normalcatlinks.length > 1 ? "e" : "a") + "</a>: " + normalcatlinks.join(" | "));
$normalcatlinksBox.append('<br ' + '/>').append($(document.createElement('span')).css({'font-size':'8pt', 'font-style':'italic', 'font-family':'monospace'}).text("* NB. Operazione non completata: l'aspetto delle categorie potrebbe essere diverso."));
temp = "format=xml&action=parse&" + "prop=text&text=" + encodeURIComponent("[[Speciale:Categorie|Categori" + (normalcatlinks.length > 1 ? "e" : "a") + "]]: " + normal_cats.join(' | '));
var request_cat = createRequest();
var cat_id = setTimeout(function() { request_cat.abort(); Finish(true); }, 30000);
request_cat.onreadystatechange = function () { Show_Categories(request_cat, cat_id, $normalcatlinksBox); return;};
request_cat.open('POST', wgServer + wgScriptPath + "/api.php", true);
request_cat.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request_cat.setRequestHeader('Content-Length', temp.length);
setTimeout(function () { request_cat.send(temp); return; }, 10);
}
}
else $(catlinksBox).html('').css('display','none');
Finish(true);
return;
} /* <- Write */


function Show_Categories (o, id, box) {
if (o.readyState != 4) return;
if (o.status != 200) {
if (o.status && (o.status < 200 || o.status > 299)) {
clearTimeout(id);
}
return;
}
clearTimeout(id);
if (o.responseXML == null) {
return;
}
if (o.responseXML.normalize) o.responseXML.normalize();
box.html(o.responseXML.getElementsByTagName('text')[0].firstChild.data);
return;
}


/* addOnloadHook(function () {
function Finish(success) {
$("#quickpreviewButton, #quickdiffButton").attr('disabled', '');
var b = document.getElementById("quicksaveButton");
$('body').css('cursor','auto');
if (!b) return;
if (after_save) {
b.removeEventListener('click', quicksave, false);
var temp = $("#quicksave_msgbox");
b.addEventListener('click', quicksaveX, false);
$(temp).text($(temp).text().replace(QS_waitforpreview, ''));
return;
}
});
if (success) {
if (!after_save) $("#p-logo")[0].scrollIntoView();


// mostra il toggle dell'indice
addOnloadHook(function () {
if (window.showTocToggle) { window.tocShowText = "mostra"; window.tocHideText = "nascondi"; showTocToggle();}
var b = document.getElementById("quickpreviewButton");
if (!b) return;
b.removeEventListener('click', quickpreview, false);
b.addEventListener('click', quickpreviewX, false);
return;
});


// carica onloadhooks
*/
hooks_common_render();
hooks_monobook_render();
for (i in hooks_custom) hooks_custom[i]();
}
return;
}


} // <- quickpreview();
function quicksaveX () {

var textbox = document.getElementById("wpTextbox1");
function quickdiff_load() {
textbox.disabled = true;
var $buttons = $(".editButtons");
document.getElementById("wpSave").disabled = true;
var b = document.createElement('input');
document.getElementById("quicksaveButton").disabled = true;
var temp = null;
b.type = 'button';
b.value = "Mostra cambiamenti";
temp = document.getElementById("quickpreviewButton");
b.id = "quickdiffButton";
if (temp) temp.disabled = true;
$(b).click(quickdiff);
var Source = encodeURIComponent(textbox.value);
b.accessKey = '3';
var msg_box = document.getElementById("quicksave_msgbox");
b.title = "Guarda le modifiche apportate al testo [alt-shift-3]";
if (msg_box == null) {
$("#wpDiff").css({'margin':'0px', 'padding':'0px', 'font-size':'0', 'width':'0px', 'border':'0px none'});
msg_box = document.createElement('div');
$("#wpDiff").before(b);
msg_box.id = "quicksave_msgbox";
$("#quickedit-hotkeysuggest").css({'left': (b.offsetLeft - 35).toString() + 'px', 'visibility' : 'visible'});
document.getElementById('content').insertBefore(msg_box, document.getElementById('firstHeading'));
return;
}

function quickdiff () {
$("#quickdiffButton, #quickpreviewButton").attr('disabled','disabled');
$('body').css('cursor','progress');
if ($("#diff-css").length == 0)
$(document.createElement('link')).attr({'href': "h" + "ttp://images.wikia.com/common/__cb34808/skins/common/diff.css?34808", 'rel':'stylesheet', 'id':"diff-css"}).appendTo($('head'));

var $diffArea = $("#wikiDiff");
if ($diffArea.length == 0) {
$diffArea = $(document.createElement('div')).attr('id', "wikiDiff").insertBefore("#editform");
var $diffTable = $(document.createElement('table')).addClass("diff").appendTo($diffArea);
$diffTable.html("<colgroup><col class='diff-marker'><col class='diff-content'><col class='diff-marker'><col class='diff-content'></colgroup><tr valign='top'><td class='diff-otitle' colspan='2'>Versione attuale</td><td class='diff-ntitle' colspan='2'>Il tuo testo</td></tr>");
}
}
else msg_box.innerHTML = '';
else {
$diffArea.css('display', 'block');
var httpRequest = createRequest();
var $diffTable = $diffArea.children("table.diff");
var id = setTimeout(function() { httpRequest.abort(); msg_box.innerHTML = "Salvataggio fallito: il server non risponde.".fontcolor('Red'); Finish(false); }, 30000);
$diffTable.find('tr:gt(0)').remove();
httpRequest.onreadystatechange = function () { Response(httpRequest, id); return;};
var url = wgServer + wgScriptPath + "/api.php";
var param = "action=edit&format=txt&title=" + encodeURIComponent(wgPageName);
param += "&token=" + document.getElementsByName("wpEditToken")[0].value.replace(/\+\\/, '%2' + "B%5" + 'C');
temp = document.getElementById("wpSummary");
if (temp) param += "&summary=" + encodeURIComponent(temp.value);
temp = document.getElementById("wpCaptchaId");
if (temp) param += "&captchaid=" + temp.value + "&captchaword=" + encodeURIComponent(document.getElementById("wpCaptchaWord").value);
temp = document.getElementById("wpMinoredit");
if (temp && temp.checked) param += "&minor=";
temp = document.getElementById("wpWatchthis");
if (temp) {
var Watched = temp.checked;
if (document.getElementById('ca-watch') && Watched) param += "&watch=";
if (document.getElementById('ca-unwatch') && !Watched) param += "&unwatch=";
}
}
param += "&basetimestamp=" + document.getElementsByName("wpEdittime")[0].value;
var param = "format=xml&action=query&" + "prop=revisions&revids=" + wgCurRevisionId;
param += "&starttimestamp=" + document.getElementsByName("wpStarttime")[0].value;
var section = $("[name=wpSection]").val();
param += "&text=" + Source;
param += "&md5=" + MD5(textbox.value);
if (section && section != "new") param += "&rvsection=" + section;
param += "&rvdifftotext=" + encodeURIComponent($("#wpTextbox1").val());
httpRequest.open('POST', url, true);
var httpRequest = createRequest();
var id = setTimeout(function() { httpRequest.abort(); alert("Errore: il server non risponde"); Finish(false); }, 15000);
httpRequest.onreadystatechange = function () { Write(httpRequest, id); return;};
httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.setRequestHeader('Content-Length', param.length);
httpRequest.setRequestHeader('Content-Length', param.length);
document.getElementsByTagName('body')[0].style.cursor = 'progress';
httpRequest.send(param);
httpRequest.send(param);
return;
return; /* fine quickdiff */
function Response (o, id) {
function Write(o, id) {
if (o.readyState != 4) return;
if (o.readyState != 4) return;
clearTimeout(id);
msg_box.scrollIntoView();
if (o.status != 200) {
if (o.status != 200) {
if (o.status && (o.status < 199 || o.status > 300)) {
if (o.status && (o.status < 200 || o.status > 299)) {
msg_box.innerHTML = "Salvataggio fallito. Risposta del server: ".fontcolor('Red') + o.status.fontcolor('Red');
$diffArea.html("Confronto versioni non riuscito. Risposta del server: " + o.status);
clearTimeout(id);
Finish(false);
Finish(false);
}
}
return;
return;
}
}
clearTimeout(id);
msg_box.innerHTML = o.responseText;
if (o.responseXML == null) {
$diffArea.html("Confronto versioni non riuscito (errore del server?)");
Finish(false);
return;
}
if (o.responseXML.normalize) o.responseXML.normalize();
$diffTable.append(o.responseXML.getElementsByTagName('diff')[0].firstChild.data);
Finish(true);
Finish(true);
return;
return;
}
}

function Finish(success) {
function Finish(success) {
$("#quickdiffButton, #quickpreviewButton").attr('disabled','');
document.getElementById("wpSave").disabled = false;
$('body').css('cursor','auto');
document.getElementById("quicksaveButton").disabled = false;
document.getElementsByTagName('body')[0].style.cursor = 'auto';
textbox.disabled = false;
return;
return;
}
}
}
} // <-quicksaveX()

Versione attuale delle 23:39, 26 set 2013

//disableHideEdit = true;
disableAlert = true;
disableaprilfish = true;
disableRefTooltip = false;


function Main() {
  FastOpen();
  editcurrentid();
  if (document.getElementById('alert-load')) alert("alert onload presenti");
  if (document.getElementById('alert-unload')) alert("alert onunload presenti");

  if (wgPageName == "Utente:Sanjilops/sandbox") gif_hack();

 /* Funzioni dell'editor */
 if ((wgAction == "edit" || wgAction == "submit") && document.getElementById("toolbar")) {
if (mwCustomEditButtons) {
   mwCustomEditButtons[0] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
     "speedTip": "A capo",
     "tagOpen": "<br />\n",
     "tagClose": "",
     "sampleText": ""};

   mwCustomEditButtons[1] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/commons/0/05/Button_Anf%C3%BChrung.png",
     "speedTip": "Citazione",
     "tagOpen": "{" + "{Cit|",
     "tagClose": "}" + "}",
     "sampleText": "..."};

   mwCustomEditButtons[2] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/commons/0/0c/Button_P_template.png",
     "speedTip": "Template",
     "tagOpen": "{{",
     "tagClose": "}" + "}",
     "sampleText": "Template"};

   mwCustomEditButtons[3] = {
     "imageFile": "http://images.wikia.com/nonciclopedia/images/f/f9/Button_box.png",
     "speedTip": "Box",
     "tagOpen": '{|width="100%" align="center" style="background: #FFFFFF; color: #000000; border: 1px solid #000000; text-align: left; margin-bottom: 0px; margin-top: 0px; padding-right: 4px; padding-left: 4px;"\n|',
     "tagClose": "\n|}\n",
     "sampleText": ""};
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images.wikia.com/nonciclopedia/images/0/0c/Button_Chuck.png",
     "speedTip": "tag generico",
     "tagOpen": "{{",
     "tagClose": "||firma=~~" + "~~{{VF|" + wgCurRevisionId + "}" + "}" + "}" + "}\n\n",
     "sampleText": ""};
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images2.wikia.nocookie.net/nonciclopedia/images/a/a5/Button_Samara.png",
     "speedTip": "scadenza",
     "tagOpen": "{" + "{scadenza|{" + "{subst:7g}" + "}|note=",
     "tagClose": "|firma=~~" + "~~{{VF|" + wgCurRevisionId + "}" + "}" + "}" + "}\n\n",
     "sampleText": ""};
}

  if(wgCurRevisionId)
    mwEditButtons[9].tagOpen = '--~~' + '~~{{VF|' + wgCurRevisionId + '}' + '}';
   else
    mwEditButtons[9].tagOpen = '--~~' + '~~{{VF|}' + '}';

if (getElementsByClass(document, "editpage-copywarn-tools", 'table')) collapseTable(1);
  }
}
addOnloadHook(Main);

function FastOpen() {
 var Box = document.getElementById("searchBody");
 if (!Box) return;
 var form = document.createElement("form");
 Box.appendChild(form);
 form.style.position = "absolute";
 form.style.top = "1px";
 form.action = "/index.php";
 form.target = "_blank";
 var c = document.createElement("input");
 form.appendChild(c);
 c.type = "text";
 c.setAttribute('name', "title");
 c.size = "13";
 var menu = document.createElement("select");
 form.appendChild(menu);
 menu.setAttribute('name', "action");
 menu.options[menu.length] = new Option("Modifica", "edit", true);
 menu.options[menu.length] = new Option("Cronol", "history");
 menu.options[menu.length] = new Option("Elimina", "delete");
 var p = document.createElement("input");
 p.type = "submit";
 p.value = "vai"; 
 form.appendChild(p);
}


var disable_gif_hack = false;
function gif_hack () {
 if (disable_gif_hack) return false;
 var a_images = getElementsByClass(document.getElementById('bodyContent'), 'image', 'a');
 if (!a_images.length) return;
 var img, tmp;
 var thumbs = new Array();
 var names = new Array();
 for (var i = 0; i < a_images.length; i++) {
	img = a_images[i].getElementsByTagName('img')[0];
	if (/\.gif$/i.test(img.src) && /\/images\/thumb\//.test(img.src) && /\bgif\b/i.test(img.alt)) {
		thumbs.push(img);
		tmp = img.src.split('/');
		names.push("File:" + tmp[tmp.length - 1].replace(/\d+px-/, ''));
	 }
  }
 if (!thumbs.length) return;
 var httpRequest = createRequest();
 var id = setTimeout(function() { httpRequest.abort();}, 30000);
 var param = "format=xml&action=query&prop=imageinfo&iiprop=url&titles=" + names.join('|');
 httpRequest.onreadystatechange = function () { Receive(httpRequest, id); return; }
 httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
 httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 httpRequest.setRequestHeader('Content-Length', param.length);
 httpRequest.send(param);
 return;
 
 function Receive(o, id) {
	if (o.readyState != 4) return;
	clearTimeout(id);
	if (o.status != 200) return;
	var xml = o.responseXML;
	if (xml == null) return;
	if (xml.normalize) xml.normalize();
	var ii = xml.getElementsByTagName('ii');
	var i = 0;
	for (var I = 0; I < ii.length; I++) {
		for (i in thumbs) {
			if (ii[I].getAttribute('url').indexOf(names[i].replace("File:", '')) != -1) thumbs[i].src = ii[I].getAttribute('url');
		 }
	 }
	return;
  }
}

function Quick_Editor() {
 quickdiff_load();
 var sect = $("[name=wpSection]");
 if (!/&?undo=\d+/.test(location.search) && ((sect.length && !sect.val()) || !sect.length)) quicksave_load();
 if (["MediaWiki:Common.css", "MediaWiki:Monobook.css", "MediaWiki:Common.js", "MediaWiki:Monobook.js", "Utente:" + wgUserName + "/monobook.css", "Utente:" + wgUserName + "/monobook.js"].indexOf(wgPageName) == -1)
  quickpreview_load();
 $("#wpTextbox1").bind('mouseup keyup focus change', quickedit_switch);
 
 var c = document.createElement('span');
 c.id = "quickeditor_charactercount";
 $(c).text($("#wpTextbox1").val().length.toString() + " caratteri");
 $("#toolbar").append(c);
 return;
}

function quickedit_switch() {
 $("#quicksaveButton").attr('disabled', this.value == quicksave_checktext ? 'disabled' : '');
 if (!(/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0)) {
	$("#quickpreviewButton").val(this.selectionStart < this.selectionEnd ? "Anteprima selezione" : "Visualizza anteprima");
  }
 
 $("#quickeditor_charactercount").text(this.value.length.toString() + " caratteri");
 return;
}

var QS_waitforpreview = " Creazione anteprima della pagina in corso...";
var quicksave_checktext = '';
function quicksave_load() {
 var b = document.createElement('input');
 b.type = 'button';
 $("#wpSave").after(b);
 b.value = "Salva";
 b.id = "quicksaveButton";
 $(b).click(quicksave);
 b.accessKey = '1';
 b.title = "Salva e continua a modificare la pagina [alt-shift-1]";
 b.disabled = true;
 quicksave_checktext = $("#wpTextbox1").val();
 return;
}

function quicksave () {
	var textbox = $("#wpTextbox1")[0];
	var Source = textbox.value;
	textbox.disabled = true;
	$("#wpSummary, #wpSave, #quicksaveButton, #quickpreviewButton, #quickdiffButton").attr('disabled','disabled');	
	$('body').css('cursor','progress');
	
	var temp = $("#quicksave_msgbox")[0];
	if (!temp) {
		temp = $(document.createElement('div')).insertBefore($("#editform")).attr('id', "quicksave_msgbox");
		var msg_box = temp[0].appendChild(document.createElement('div'));
		temp.append(document.createElement('span')).attr('id', "quicksave_msgbox_close").text('×').click( function () { $("#quicksave_msgbox").hide("slow"); });
	 }
	 else {
		temp.style.display = 'block';
		var msg_box = temp.firstChild;
	 }
	msg_box.innerHTML = "Salvataggio in corso...";
	// msg_box.scrollIntoView();

	var param = "action=edit&format=xml&title=" + encodeURIComponent(wgPageName);
	param += "&token=" + $("[name=wpEditToken]:first").val().replace(/\+\\/, '%2' + 'B%5' + 'C');
	param += "&summary=" + encodeURIComponent($("#wpSummary").val());
	temp = $("#wpCaptchaId")[0];
	if (temp) {
		param += "&captchaid=" + temp.value + "&captchaword=" + encodeURIComponent($("#wpCaptchaWord").val());
		$("#editform #captcha_box").remove();
	 }
	if ($("#wpMinoredit")[0].checked) param += "&minor=";
	var Watched = $("#wpWatchthis")[0].checked;
	if ($("#ca-watch")[0] && Watched) {
		$("#ca-watch a").text(wgAjaxWatch["watchingMsg"].toLowerCase());
		param += "&watchlist=watch";
	 }
	if ($("#ca-unwatch")[0] && !Watched) {
		$("#ca-unwatch a").text(wgAjaxWatch["unwatchingMsg"].toLowerCase());
		param += "&watchlist=unwatch";
	 }
	param += "&basetimestamp=" + $("[name=wpEdittime]:first").val();
	param += "&starttimestamp=" + $("[name=wpStarttime]:first").val();
	param += "&md5=" + MD5(textbox.value);
	param += "&text=" + encodeURIComponent(Source);
	var httpRequest = createRequest();
	var id = setTimeout(function() { httpRequest.abort(); msg_box.style.color = 'red'; $(msg_box).text("Salvataggio fallito: il server non risponde."); Finish(false); }, 15000);
	httpRequest.onreadystatechange = function () { Response(httpRequest, id); return;};
	httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpRequest.setRequestHeader('Content-Length', param.length);
	$("#wpSummary").attr('disabled','');
	textbox.disabled = false;
	httpRequest.send(param);
	return; // fine quicksave
	
 function Response (o, id) {
	if (o.readyState != 4) return;
	if (o.status != 200) {
		if (o.status && (o.status < 200 || o.status > 299)) {
			clearTimeout(id);
			msg_box.style.color = 'red';
			$(msg_box).text("Salvataggio fallito. Risposta del server: " + o.status);
			Finish(false);
		 }
		return;
	 }
	clearTimeout(id);
	if (o.responseXML == null)  {
		msg_box.style.color = 'rgb(100, 100, 100)';
		$(msg_box).text("Errore nella risposta del server. Controlla nella cronologia se il salvataggio è avvenuto");
		Finish(false);
		return;
	 }
	if (o.responseXML.normalize) o.responseXML.normalize();
	var result = o.responseXML.getElementsByTagName('edit');
	if (result && result[0] != undefined) {
		if (result[0].getAttribute('result') == "Success") {
			$(msg_box).text("Salvataggio completato." + QS_waitforpreview);
			wgCurRevisionId = result[0].getAttribute('newrevid');
			setTimeout(function () {quickpreview(true); return; }, 100); // su un nuovo thread per non fermare la funzione
			if (wgUserName) {
				if (Watched) {
					temp = $("#ca-watch")[0];
					if (temp) {
						temp.id = "ca-unwatch";
						temp = temp.firstChild;
						temp.href = temp.href.replace(/=watch$/, "=unwatch");
						$(temp).text(wgAjaxWatch["unwatchMsg"].toLowerCase());
						temp.title = wgAjaxWatch["tooltip-ca-unwatchMsg"];
					 }
				 }
				 else {
					temp = $("#ca-unwatch")[0];
					if (temp) {
						temp.id = "ca-watch";
						temp = temp.firstChild;
						temp.href = temp.href.replace(/=unwatch$/, "=watch");
						$(temp).text(wgAjaxWatch["watchMsg"].toLowerCase());
						temp.title = wgAjaxWatch["tooltip-ca-watchMsg"];
					 }
				 }
			 }
			$(msg_box).append('<br ' + '/>');
			var request_ts = createRequest();
			var ts_id = setTimeout(function() { request_ts.abort(); $(msg_box).append("Impossibile procedere ad ulteriori salvataggi. Il server non risponde"); Finish(true, false); return; }, 15000);
			request_ts.onreadystatechange = function () { Get_Timestamp(request_ts, ts_id); return; }
			var param = "action=query&format=xml&" + "prop=revisions&meta=userinfo&uiprop=hasmsg&rvprop=timestamp%" + "7Cuser&rvlimit=1&rvdir=older&titles=" + encodeURIComponent(wgPageName);
			request_ts.open('POST', wgServer + wgScriptPath + "/api.php", true);
			request_ts.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request_ts.setRequestHeader('Content-Length', param.length);
			request_ts.send(param);
			return;
	 	 }
		if (result[0].getAttribute('result') == "Failure") {
			var captcha = result[0].getElementsByTagName('captcha')[0];
			if (captcha == null) {
				msg_box.style.color = 'red';
				$(msg_box).text("Salvataggio fallito: errore ignoto");
				Finish(false);
				return;
			 }
			msg_box.style.display = 'none';
			msg_box.innerHTML = '';
			var captcha_id = document.createElement('input');
			captcha_id.type = 'hidden';
			captcha_id.id = "wpCaptchaId";
			captcha_id.value = captcha.getAttribute('id');
			var captcha_word = document.createElement('input');
			captcha_word.id = "wpCaptchaWord";
			captcha_word.style.marginBottom = "10px";
			var captcha_img = document.createElement('img');
			captcha_img.src = wgServer + wgScriptPath + "/index.php?title=Special:Captcha/image&wpCaptchaId=" + captcha_id.value;
			var captcha_msg = document.createElement('p');
			captcha_msg.innerHTML = 'La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l\'inserimento automatico di spam, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine (<' + 'a href="/wiki/Speciale:Captcha/help" title="Speciale:Captcha/help">come funziona?</' + 'a>)';
			var captcha_box = document.createElement('div');
			captcha_box.id = "captcha_box";
			$("#toolbar").before(captcha_box);
			$(captcha_box).append(captcha_msg,[captcha_img,captcha_word,captcha_id]);
			Finish(false);
			return;
		 }
	 }
	var error = o.responseXML.getElementsByTagName('error');
	if (error == null)  {
		msg_box.style.color = 'rgb(100, 100, 100)';
		$(msg_box).text("Errore nella risposta del server. Controlla nella cronologia se il salvataggio è avvenuto");
		Finish(false);
		return;
	 }
	msg_box.style.color = 'red';
	switch (error[0].getAttribute('code')) {
		case 'editconflict':
		 $("#wpSave").attr('disabled','').delay(100).click();
		 return;

		case 'noedit':
		case 'noedit-anon':
		case 'protectedtitle':
		 $(msg_box).text("Non sei autorizzato a modificare questa pagina.");
		 Finish(false);
		 return;
		
		default:
		 $(msg_box).text("Salvataggio fallito: " + error[0].getAttribute('info'));
		 Finish(false);
		 return;
	 }
 }

 function Get_Timestamp (o, id) {
	if (o.readyState != 4) return;
	if (o.status != 200) {
		if (o.status && (o.status < 200 || o.status > 299)) {
			clearTimeout(id);
			$(msg_box).append("Impossibile procedere ad ulteriori salvataggi. Risposta del server: " + o.status);
			Finish(true, false);
		 }
		return;
	 }
	clearTimeout(id);
	if (o.responseXML == null) {
		$(msg_box).append("Impossibile procedere ad ulteriori salvataggi.");
		Finish(true, false);
		return;
	 }
	if (o.responseXML.normalize) o.responseXML.normalize();
	var rev = o.responseXML.getElementsByTagName('rev');
	if (!rev || rev[0] == undefined) {
		$(msg_box).append("Impossibile procedere ad ulteriori salvataggi.");
		Finish(true, false, o);
		return;
	 }
	var t = rev[0].getAttribute('timestamp');
	$("[name=wpEdittime]:first").val(t.replace(/\D/g, ''));
	var d = new Date(t.replace(/(\d\d\d\d)-(\d\d)-(\d\d)T(.+)Z/, "$1/$2/$3 $4"));
	d.setHours(d.getHours() - d.getTimezoneOffset()/60);
	$(msg_box).append("Ultima modifica: " + rev[0].getAttribute('user') + ' ' + d.toLocaleString());
	d = new Date();
	$("[name=wpStarttime]:first").val(d.getUTCFullYear().toString() + addzero(d.getUTCMonth()) + addzero(d.getUTCDate()) + addzero(d.getUTCHours()) + addzero(d.getUTCMinutes())+ addzero(d.getUTCSeconds() + 1));

	Finish(true, true, o);
	return;
 }


 function Finish(success, got_ts, o) {
	if (success) {
		quicksave_checktext = Source;
		$("#wpSave, #quicksaveButton").attr('disabled', got_ts ? '': 'disabled'); // se il salvataggio è riuscito, senza timestamp non possiamo farne altri

 /* nuovi messaggi in discussione? */
		if (o == undefined) return;
		var temp = o.responseXML.getElementsByTagName('userinfo');
		if (!temp || temp[0] == undefined) return;
		var $usermessage = $(".usermessage:not(#wikiPreview > *)");
		if (!temp[0].hasAttribute('messages')) {
			$usermessage.css('display', 'none');
			return;
		 }
		var name = (wgUserName)? wgUserName : temp[0].getAttribute('name');
		if (!$usermessage.length) {
			$usermessage = $(document.createElement('div')).addClass("usermessage").insertBefore($("#wikiPreview")).html('Hai <a title="Discussioni utente:' + name + '" href="/index.php?title=Discussioni_utente:' + encodeURI(name) + '&redirect=no">nuovi messaggi</a' + '> (<a title="Discussioni utente:' + name + '" href="/index.php?title=Discussioni_utente:' + encodeURI(name) + '&diff=cur">differenza con la revisione precedente</a' + '>).');
		 }
		 else $usermessage.css('display', 'block');
	 }
	 
	 else {
		$("#quickpreviewButton, #quickdiffButton").attr('disabled', '');
		$('body').css('cursor','auto');
	 }
	return;
 }
} // <- quicksave()

var QP_hiddencatlist;
var QP_hiddencats_cat = "Categorie nascoste";
function quickpreview_load() {
	var b = document.createElement('input');
	b.type = 'button';
	b.value = (/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0) ? "Anteprima stile" : "Visualizza anteprima";
	b.id = "quickpreviewButton";
	$(b).click(quickpreview);
	b.accessKey = '2';
	b.title = "Anteprima delle modifiche (consigliata prima di salvare) [alt-shift-2]";
	$("#wpPreview").css({'margin':'0px', 'padding':'0px', 'font-size':'0', 'width':'0px', 'border':'0px none'});
	$("#wpPreview").before(b);
	$("#quickpreview-hotkeysuggest").css({'visibility' : 'visible'});
	QP_hiddencatlist = getCookie("QPhc");
	if (QP_hiddencatlist == null) {
		var request_hc = createRequest();
		request_hc.onreadystatechange = function () { quickpreview_set_hc_cookie(request_hc); return;};
		request_hc.open('GET', wgServer + wgScriptPath + "/api.php?format=xml&action=query&list=categorymembers&cmtitle=Category:" + encodeURI(QP_hiddencats_cat) + "&cmlimit=500", true);
		request_hc.send(null);
	 }
	return;

 function quickpreview_set_hc_cookie (o) {
	 if (o.readyState != 4 || o.status != 200 || o.responseXML == null) return;
	 if (o.responseXML.normalize) o.responseXML.normalize();
	 var cm = o.responseXML.getElementsByTagName('categorymembers')[0].getElementsByTagName('cm');
	 var tmp = new Array();
	 for (i in cm) tmp.push(cm[i].getAttribute('title'));
	 QP_hiddencatlist = tmp.join('|');
	 document.cookie = "QPhc=" + escape(QP_hiddencatlist);
	 return;
  }
}

function quickpreview (after_save) {
	if (after_save == undefined) after_save = false;
	$("#quickpreviewButton, #quickdiffButton").attr('disabled','disabled');
	$('body').css('cursor','progress');
	var temp;

/* Pulizia dell'area di anteprima */
	var $previewArea = $("#wikiPreview");
	$previewArea.html('').css('display', 'block');
	
	$("#editintro, .mw-newarticletext:first, .mw-newarticletextanon:first, #mw-anon-edit-warning, #mw-warning-with-logexcerpt, #mw-edit-longpagewarning, #contentSub2, #explainconflict").remove();
	$("#wikiDiff").css('display','none');
	$("#contentSub").html('');
/***** Nonciclopedia only *****/
		$("#wpTalkPageText").remove();
		
/* Rimuove eventuali css importati precedentemente; */
		$("#add-css-link").remove();
/**********/
	$("#add-css-quickpreview").remove();

/* Imposta il titolo */
	temp = wgPageName.replace(/_/g, ' ');
	$("#firstHeading").html(temp);
	$('title:first').html(temp + " {anteprima} - " + wgSiteName);

/* Anteprima css - non serve collegarsi al server */	
	if (/\.css$/.test(wgTitle) && wgNamespaceNumber % 2 == 0 && !after_save) {
		var style = document.createElement('style');
		style.type = 'text/css';
		style.innerHTML = $("#wpTextbox1").val();
		style.id = "add-css-quickpreview";
		$('head').append(style);
		Finish(false);
		return;
	 }
	

	var param = "format=xml&action=parse&" + "prop=text%7" + "Ccategories%7" + "Ctemplates";
	if (after_save) {
		param += "&page=" + encodeURIComponent(wgPageName);
	 }
	 else {
		var textbox = $("#wpTextbox1")[0];
		textbox.disabled = true;
		var start = textbox.selectionStart, end = textbox.selectionEnd;
		if (start < end) temp = textbox.value.slice(start, end);
		 else {
			temp = textbox.value + '\n';
			if ($("[name=wpSection]:first").val() == 'new') temp = "== " + $("#wpSummary").val() + " ==\n" + temp;
		 }
		textbox.disabled = false;
		param += "&pst=&title=" + encodeURIComponent(wgPageName) + "&text=" + encodeURIComponent(temp);
	 }
	var httpRequest = createRequest();
	var id = setTimeout(function() { httpRequest.abort(); alert("Errore: il server non risponde"); Finish(false); }, 15000);
	httpRequest.onreadystatechange = function () { Write(httpRequest, id); return;};
	httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpRequest.setRequestHeader('Content-Length', param.length);
	httpRequest.send(param);
	return; /* fine quickpreview */

 function Write(o, id) {
	if (o.readyState != 4) return;
	if (o.status != 200) {
		if (o.status && (o.status < 200 || o.status > 299)) {
			alert("Anteprima non riuscita. Risposta del server: " + o.status);
			clearTimeout(id);
			Finish(false);
		 }
		return;
	 }
	clearTimeout(id);
	if (o.responseXML == null)  {
		alert("Anteprima non riuscita (errore del server?)");
		Finish(false);
		return;
	 }
	if (o.responseXML.normalize) o.responseXML.normalize();
	var R = o.responseXML.getElementsByTagName('text')[0].firstChild;
	temp = R.data;
	if (["MediaWiki:Common.css", "MediaWiki:Monobook.css", "MediaWiki:Common.js", "MediaWiki:Monobook.js", "Utente:" + wgUserName + "/monobook.css", "Utente:" + wgUserName + "/monobook.js"].indexOf(wgPageName) != -1) {
		temp = "<pre class='mw-code mw-" + /(?!\.)\w+$/.exec(wgTitle) + "'>" + temp + "<" + "/pre>";
	 }
	$previewArea.html(temp);

/* aggiungi elenco template */
	var templatesUsed = $(".templatesUsed")[0];
	if (!templatesUsed) {
		templatesUsed = document.createElement('div');
		templatesUsed.className = "templatesUsed";
		$("#editform").append(templatesUsed);
	 }
	var templatesList = templatesUsed.getElementsByTagName('ul')[0];
	if (!templatesList) {
		templatesList = templatesUsed.appendChild(document.createElement('ul'));
	 }
	 else templatesList.innerHTML = '';
	R = o.responseXML.getElementsByTagName('templates')[0].getElementsByTagName('tl');
	if (R.length > 0) {
		var name;
		temp = '';
		for (i in R) {
			name = R.item(i).firstChild.nodeValue;
			if (R.item(i).getAttribute('exists') != undefined)
				temp += "<li" + "><a title='" + name + "' href='/wiki/" + encodeURI(name) + "'>" + name + "</a> (<a href='/index.php?title=" + encodeURI(name) + "&action=edit&editintro=Mediawiki:Editintro'>modifica</a>)</li>";
			 else
				temp += "<li" + "><a title='" + name + " (la pagina non esiste)' class='new' href='/index.php?title=" + encodeURI(name) + "&action=edit&redlink=1&editintro=Mediawiki:Editintro'>" + name + "</a></li>";
		 }
		templatesList.innerHTML = temp;
		temp = getElementsByClass(templatesUsed, "mw-templatesUsedExplanation", 'div')[0];
		if (!temp) {
			temp = templatesUsed.insertBefore(document.createElement('div'), templatesList);
			temp.className = "mw-templatesUsedExplanation";
			temp.innerHTML = "<p" + ">Template utilizzati in questa anteprima: </p>";
		 }
	 }

/* aggiungi categorie */
	var catlinksBox = $(".printfooter ~ #catlinks")[0];
	R = o.responseXML.getElementsByTagName('categories')[0].getElementsByTagName('cl');
	if (R.length > 0) {
		if (catlinksBox != null) {
			catlinksBox.innerHTML = '';
			catlinksBox.style.display = 'block';
		 }
		 else {
			catlinksBox = document.createElement('div');
			catlinksBox.id = "catlinks";
			catlinksBox.className = "catlinks";
			$(".visualClear:first").before(catlinksBox);
		 }
		var normal_cats = new Array();
		var normalcatlinks = new Array();
		var hiddencatlinks = new Array();
		for (i in R) {
			name = R.item(i).firstChild.nodeValue;
			if (RegExp(name.replace(/_/g, ' ')).test(QP_hiddencatlist)) hiddencatlinks.push('<span dir="ltr"><a href="/wiki/Categoria:' + encodeURI(name) + '" title="Categoria:' + name.replace(/_/g, ' ') + '">' + name.replace(/_/g, ' ') + '</a></span>');
			 else {
				normal_cats.push('[[:Categoria:' + name + '|' + name.replace(/_/g, ' ') + ']]');
				normalcatlinks.push('<span dir="ltr"><a href="/wiki/Categoria:' + encodeURI(name) + '" title="Categoria:' + name.replace(/_/g, ' ') + '">' + name.replace(/_/g, ' ') + '</a>*</span>');
			 }
		 }
		if (hiddencatlinks.length > 0) {
			var hiddencatlinksBox = catlinksBox.appendChild(document.createElement('div'));
			hiddencatlinksBox.id = "mw-hidden-catlinks";
			hiddencatlinksBox.className = "mw-hidden-cats-hidden";
			$(catlinksBox).toggleClass("catlinks-allhidden", (normal_cats.length == 0));
			temp =  "Categori" + (hiddencatlinks.length > 1? "e nascoste: " : "a nascosta: ") + hiddencatlinks.join(" | ");
			hiddencatlinksBox.innerHTML = temp;
		 }
		if (normal_cats.length > 0) {
			$(catlinksBox).removeClass("catlinks-allhidden"); // CDW
			var $normalcatlinksBox = $(document.createElement('div')).prependTo(catlinksBox).attr('id', "mw-normal-catlinks").html("<a title='Speciale:Categorie' href='/wiki/Speciale:Categorie'" + ">Categori" + (normalcatlinks.length > 1 ? "e" : "a") + "</a>: " + normalcatlinks.join(" | "));
			$normalcatlinksBox.append('<br ' + '/>').append($(document.createElement('span')).css({'font-size':'8pt', 'font-style':'italic', 'font-family':'monospace'}).text("* NB. Operazione non completata: l'aspetto delle categorie potrebbe essere diverso."));
			temp = "format=xml&action=parse&" + "prop=text&text=" + encodeURIComponent("[[Speciale:Categorie|Categori" + (normalcatlinks.length > 1 ? "e" : "a") + "]]: " + normal_cats.join(' | '));
			var request_cat = createRequest();
			var cat_id = setTimeout(function() { request_cat.abort(); Finish(true); }, 30000);
			request_cat.onreadystatechange = function () { Show_Categories(request_cat, cat_id, $normalcatlinksBox); return;};
			request_cat.open('POST', wgServer + wgScriptPath + "/api.php", true);
			request_cat.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request_cat.setRequestHeader('Content-Length', temp.length);
			setTimeout(function () { request_cat.send(temp); return; }, 10);
		 }
	 }
	 else $(catlinksBox).html('').css('display','none');
	
	Finish(true);
	return;
 } /* <- Write */

 function Show_Categories (o, id, box) {
	if (o.readyState != 4) return;
	if (o.status != 200) {
		if (o.status && (o.status < 200 || o.status > 299)) {
			clearTimeout(id);
		 }
		return;
	 }
	clearTimeout(id);
	if (o.responseXML == null)  {
		return;
	 }
	if (o.responseXML.normalize) o.responseXML.normalize();
	box.html(o.responseXML.getElementsByTagName('text')[0].firstChild.data);
	return;
}

 function Finish(success) {
	$("#quickpreviewButton, #quickdiffButton").attr('disabled', '');
	$('body').css('cursor','auto');
	if (after_save) {		
		var temp = $("#quicksave_msgbox");
		$(temp).text($(temp).text().replace(QS_waitforpreview, ''));
	 }
	if (success) {
		if (!after_save) $("#p-logo")[0].scrollIntoView();

// mostra il toggle dell'indice
		if (window.showTocToggle) { window.tocShowText = "mostra"; window.tocHideText = "nascondi"; showTocToggle();}

// carica onloadhooks
		hooks_common_render();
		hooks_monobook_render();
		for (i in hooks_custom) hooks_custom[i]();
	 }
	return;
 }

} // <- quickpreview();

function quickdiff_load() {
	var $buttons = $(".editButtons");
	var b = document.createElement('input');
	b.type = 'button';
	b.value = "Mostra cambiamenti";
	b.id = "quickdiffButton";
	$(b).click(quickdiff);
	b.accessKey = '3';
	b.title = "Guarda le modifiche apportate al testo [alt-shift-3]";
	$("#wpDiff").css({'margin':'0px', 'padding':'0px', 'font-size':'0', 'width':'0px', 'border':'0px none'});
	$("#wpDiff").before(b);
	$("#quickedit-hotkeysuggest").css({'left': (b.offsetLeft - 35).toString() + 'px', 'visibility' : 'visible'});
	return;
}

function quickdiff () {
	$("#quickdiffButton, #quickpreviewButton").attr('disabled','disabled');	
	$('body').css('cursor','progress');
	if ($("#diff-css").length == 0)
		$(document.createElement('link')).attr({'href': "h" + "ttp://images.wikia.com/common/__cb34808/skins/common/diff.css?34808", 'rel':'stylesheet', 'id':"diff-css"}).appendTo($('head'));

	var $diffArea = $("#wikiDiff");
	if ($diffArea.length == 0) {
		$diffArea = $(document.createElement('div')).attr('id', "wikiDiff").insertBefore("#editform");
		var $diffTable = $(document.createElement('table')).addClass("diff").appendTo($diffArea);
		$diffTable.html("<colgroup><col class='diff-marker'><col class='diff-content'><col class='diff-marker'><col class='diff-content'></colgroup><tr valign='top'><td class='diff-otitle' colspan='2'>Versione attuale</td><td class='diff-ntitle' colspan='2'>Il tuo testo</td></tr>");
	 }
	 else {
		$diffArea.css('display', 'block');
		var $diffTable = $diffArea.children("table.diff");
		$diffTable.find('tr:gt(0)').remove();
	 }
	
	var param = "format=xml&action=query&" + "prop=revisions&revids=" + wgCurRevisionId;
	var section = $("[name=wpSection]").val();
	if (section && section != "new") param += "&rvsection=" + section;
	param += "&rvdifftotext=" + encodeURIComponent($("#wpTextbox1").val());
	var httpRequest = createRequest();
	var id = setTimeout(function() { httpRequest.abort(); alert("Errore: il server non risponde"); Finish(false); }, 15000);
	httpRequest.onreadystatechange = function () { Write(httpRequest, id); return;};
	httpRequest.open('POST', wgServer + wgScriptPath + "/api.php", true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpRequest.setRequestHeader('Content-Length', param.length);
	httpRequest.send(param);
	return; /* fine quickdiff */
	
 function Write(o, id) {
	if (o.readyState != 4) return;
	if (o.status != 200) {
		if (o.status && (o.status < 200 || o.status > 299)) {
			$diffArea.html("Confronto versioni non riuscito. Risposta del server: " + o.status);
			clearTimeout(id);
			Finish(false);
		 }
		return;
	 }
	clearTimeout(id);
	if (o.responseXML == null)  {
		$diffArea.html("Confronto versioni non riuscito (errore del server?)");
		Finish(false);
		return;
	 }
	if (o.responseXML.normalize) o.responseXML.normalize();
	$diffTable.append(o.responseXML.getElementsByTagName('diff')[0].firstChild.data);
	Finish(true);
	return;
 }
 
 function Finish(success) {
	$("#quickdiffButton, #quickpreviewButton").attr('disabled','');	
	$('body').css('cursor','auto');
	return;
 }
}