_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

User:Alex Smotrov/qpreview.js

The topic of User:Alex Smotrov/qpreview.js is one that has been discussed and analyzed numerous times throughout history. From ancient times to the modern era, User:Alex Smotrov/qpreview.js has been the subject of debate, research and reflection. Its influence extends to different areas of life, from politics to culture, the economy and society in general. Over time, User:Alex Smotrov/qpreview.js has acquired diverse meanings and has been interpreted in different ways, which has contributed to its importance and relevance in today's world. In this article, we will explore different aspects related to User:Alex Smotrov/qpreview.js and try to shed light on its impact and implication in our daily reality.
if (mw.config.get('wgAction') == 'edit' || mw.config.get('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;
		divPreview.style.display = 'block'
		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 += ' ';
	}	
	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;
}