User:Sander Säde/quickpreview.js

importScript('User:TheFearow/qstring.js');

$(doAddQuickPreview);

function doAddQuickPreview() {

if ((mw.config.get('wgAction') != "edit") && (mw.config.get('wgAction') != "submit")) return;

var qbutton = document.getElementById("wpPreview").cloneNode(false);

qbutton.value = "Quick preview";

qbutton.type="button";

qbutton.tabindex="6";

qbutton.accessKey="g";

qbutton.id="dlQuickPreview";

qbutton.title="Preview your changes";

qbutton.addEventListener("click", doQuickPreview, false);

var referenceNode = document.getElementById("wpDiff");

referenceNode.parentNode.insertBefore(qbutton, referenceNode);

}

function doQuickPreview() {

var bt = document.getElementById("dlQuickPreview");

document.getElementById("contentSub").innerHTML = "Getting preview";

bt.value="Getting preview";

bt.disabled=true;

var form = document.editform;

var postData = {

'wpMinoredit': form.wpMinoredit.checked,

'wpWatchthis': form.wpWatchthis.checked,

'wpStarttime': form.wpStarttime.value,

'wpEdittime': form.wpEdittime.value,

'wpAutoSummary': form.wpAutoSummary.value,

'wpEditToken': form.wpEditToken.value,

'wpSummary': "Quick preview",

'wpTextbox1': document.editform.wpTextbox1.value

};

var addr = document.URL;

addr = addr.replace("&action=edit", "&action=submit");

addr += "&wpPreview=true&live=true";

var qwxmlhttp = sajax_init_object(null);

qwxmlhttp.overrideMimeType('text/xml');

qwxmlhttp.open( 'POST' , addr, true);

qwxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');

qwxmlhttp.onload = function() {

document.getElementById("wikiPreview").innerHTML = unescape(qwxmlhttp.responseText.replace(/>/g,">").replace(/</g,"<").replace(/&/g,"&").replace(/"/g,'"'));

bt.disabled=false;

bt.value = "Quick preview";

document.getElementById("contentSub").innerHTML = "";

}

qwxmlhttp.send(QueryString.create(postData));

}