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
 
(510 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;
noAF2009 = true;



function Main() {
function Main() {
quickopen();
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"||"submit") && document.getElementById("toolbar")) {
if ((wgAction == "edit" || wgAction == "submit") && document.getElementById("toolbar")) {
if (mwCustomEditButtons) {
if (mwCustomEditButtons) {
mwCustomEditButtons[0] = {
mwCustomEditButtons[0] = {
Riga 57: Riga 61:
else
else
mwEditButtons[9].tagOpen = '--~~' + '~~{{VF|}' + '}';
mwEditButtons[9].tagOpen = '--~~' + '~~{{VF|}' + '}';

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


function quickopen() {
function FastOpen() {
var Box = document.getElementById("searchBody");
var Box = document.getElementById("searchBody");
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 72: 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 80: Riga 88:
menu.options[menu.length] = new Option("Elimina", "delete");
menu.options[menu.length] = new Option("Elimina", "delete");
var p = document.createElement("input");
var p = document.createElement("input");
form.appendChild(p);
p.type = "submit";
p.type = "submit";
p.value = "vai";
p.value = "vai";
form.appendChild(p);
}
}



function openWShoutBox () {
var disable_gif_hack = false;
var win = window.open("http://nonciclopedia.wikia.com/index.php?title=Nonciclopedia:ShoutBox&useskin=monaco", '_blank','directories=no, location=no, menubar=no, toolbar=no, width=250, height=300', false);
function gif_hack () {
return false;
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;
}
}
}


addOnloadHook(function() {
function Quick_Editor() {
quickdiff_load();
var span = document.getElementById("openShoutBox");
var sect = $("[name=wpSection]");
if (!span) return false;
if (!/&?undo=\d+/.test(location.search) && ((sect.length && !sect.val()) || !sect.length)) quicksave_load();
var link = document.createElement('a');
if (["MediaWiki:Common.css", "MediaWiki:Monobook.css", "MediaWiki:Common.js", "MediaWiki:Monobook.js", "Utente:" + wgUserName + "/monobook.css", "Utente:" + wgUserName + "/monobook.js"].indexOf(wgPageName) == -1)
link.href = "javascript:openWShoutBox();";
quickpreview_load();
link.target = '_new';
$("#wpTextbox1").bind('mouseup keyup focus change', quickedit_switch);
link.innerHTML = "Apri la ShoutBox";
link.title = "Apri la ShoutBox";
var c = document.createElement('span');
span.innerHTML = '';
c.id = "quickeditor_charactercount";
span.appendChild(link);
$(c).text($("#wpTextbox1").val().length.toString() + " caratteri");
return;
$("#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;
}
}

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;
 }
}