User:Wikiguru/monobook.js

// This user script allows quick preview with the help of Ajax

if (wgAction == 'edit' || wgAction == 'submit') addOnloadHook(addQPreviewButton); function addQPreviewButton{ if (!window.qPreviewName) qPreviewName = 'QPreview'; var accesskey = window.qPreviewKey || ''; if (window.qPreviewAtBottom) addSystemButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey); else addToolbarButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey); } function qPreview{ var divPreview = document.getElementById('wikiPreview'); if (!divPreview) return; var btnQPreview = document.getElementById('btnQPreview'); var btnWidth = Math.max(btnQPreview.scrollWidth, btnQPreview.offsetWidth); if (btnQPreview) btnQPreview.value = window.qPreviewWait || 'Wait...'; btnQPreview.style.width = btnWidth + 'px'; a = sajax_init_object; a.open('POST', document.editform.action+'&live', true); var Boundary = 'p1415'; a.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+Boundary); var PostData = '--' + Boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + document.getElementById('wpTextbox1').value + '\n--'+Boundary; if (a.overrideMimeType) a.overrideMimeType('text/html'); a.send(PostData); a.onreadystatechange = function{ if (a.readyState != 4) return; var html = a.responseText; html = html.replace(/&gt;/g,'>').replace(/&lt;/g,'<').replace(/&quot;/g,'"').replace(/&amp;/g,'&').replace(/&apos;/g,"'");		divPreview.innerHTML = html;		if (btnQPreview) btnQPreview.value = qPreviewName;	}; } function addSystemButton(name, onclick, id, tooltip, accesskey){ 	var wpPreview = document.getElementById('wpPreview');	if (!wpPreview) return;	var btn = document.createElement('input');	btn.type = 'button'; 	if (name) btn.value = name; 	if (onclick) btn.onclick = onclick;	if (id) btn.id = id;	if (tooltip) btn.title = tooltip; 	if (accesskey) { 		btn.accessKey = accesskey; 		btn.title += ' [' + tooltipAccessKeyPrefix + btn.accessKey + ']';	}		wpPreview.parentNode.insertBefore(btn, wpPreview);	return btn; } function addToolbarButton(name, onclick, id, tooltip, accesskey){	var toolbar = document.getElementById('toolbar');	if (!toolbar) return;	var btn = document.createElement('input'); btn.type = 'button'; btn.style.background = '#adbede'; btn.style.height = '22px'; btn.style.verticalAlign = 'middle'; if (name) btn.value = name; if (onclick) btn.onclick = onclick; if (id) btn.id = id; if (tooltip) btn.title = tooltip; if (accesskey) btn.accessKey = accesskey; toolbar.appendChild(btn); return btn; }