Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.

  • Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
  • Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer / Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5
  • Opera: націсьніце Ctrl-F5.
/*
; Крыніца: http://pl.wikipedia.org/wiki/MediaWiki:Wikibugs.js
; Задума, тэксты: [[pl:User:Dodek]], [[pl:User:Adziura]]
; Праграмаваньне: [[pl:User:Nux]], [[pl:User:Saper]], [[pl:User:Beau]]
; Дапрацоўка напільнікам: [[User:Zedlik]], [[User:Wizardist]]
*/

var wb$description = "Калі ласка, апішыце памылку як мага дакладней. Калі ёсьць магчымасьць, падайце, калі ласка, таксама крыніцу інфармацыі.";
var wb$badPages = new Array(
	"Вікіпэдыя:Паведамленьні пра памылкі",
	"Галоўная старонка"
);


$(function()
{
	var el = document.getElementById('n-bug_in_article');

	if (el)
	{
		el.getElementsByTagName('a')[0].onclick= wb$popWikibug;
	}
	el = document.getElementById('n-bad-image');
	if (el)
	{
		el.getElementsByTagName('a')[0].onclick= wb$popBadimagebug;
	}
});


function wb$popBadimagebug()
{
	wb$popBugBoth("Вікіпэдыя:Паведамленьні пра памылкі", '\
<div style="float:right; width:200px; padding:4px 10px 18px; margin:2px 0px 0px 10px; font-size:95%; border:2px solid #900"><p>Гэтая форма <b>не прызначаная</b> для разьмяшчэньня просьбаў пра пашырэньне альбо стварэньне артыкулаў. З гэтымі мэтамі зьвяртайцеся, калі ласка, на старонку запытаў:</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9D%D0%B0_%D1%81%D1%82%D0%B2%D0%B0%D1%80%D1%8D%D0%BD%D1%8C%D0%BD%D0%B5">Запыты на стварэньне</a></li></ul><p>Вікіпэдыя не дае парадаў. Калі вам патрэбная парада, калі ласка, <b>не зьмяшчайце яе тут</b>.</p>\
<p>Калі вы хочаце зьвярнуцца да супольнасьці Вікіпэдыі, зрабіць гэта можна на наступнай старонцы:</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%A4%D0%BE%D1%80%D1%83%D0%BC">Форум</a></li></ul></div>\
<p style="margin-top:0px;">Тут вы можаце паведаміць пра выявы, якія не адпавядаюць пазначанай ліцэнзіі, маюць свае лепшыя адпаведнікі ў Commons альбо ня маюць неабходнага апісаньня. Таксама тут варта паведамляць пра несвабодныя выявы, якія не выкарыстоўваюцца ў артыкулах або ня маюць абгрунтаваньня добрасумленнага выкарыстаньня для кожнага артыкула, дзе яны ўжытыя.</p><p><b>Але калі вы здольныя самастойна выправіць памылку, калі ласка, не паведамляйце пра яе тут.</b></p>\
<p><b>Заўважце:</b> Калі вы ўжо паведамлялі пра памылку, а цяпер яе больш няма, то верагодна яна была выпраўленая.</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96">Глядзіце сьпіс актуальных паведамленьняў пра памылкі</a> або</li><li><a href="/w/index.php?title=%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96&amp;action=history">гісторыю зьменаў гэтай старонкі</a>.</li></ul>\
');
	return false;
}

function wb$popWikibug()
{
	wb$popBugBoth("Вікіпэдыя:Паведамленьні пра памылкі", '\
<div style="float:right; width:200px; padding:4px 10px 18px; margin:2px 0px 0px 10px; font-size:95%; border:2px solid #900"><p>Гэтая форма <b>не прызначаная</b> для разьмяшчэньня просьбаў пра пашырэньне альбо стварэньне артыкулаў. З гэтымі мэтамі зьвяртайцеся, калі ласка, на старонку запытаў:</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9D%D0%B0_%D1%81%D1%82%D0%B2%D0%B0%D1%80%D1%8D%D0%BD%D1%8C%D0%BD%D0%B5">Запыты на стварэньне</a></li></ul><p>Вікіпэдыя не дае парадаў. Калі вам патрэбная парада, калі ласка, <b>не зьмяшчайце яе тут</b>.</p>\
<p>Калі вы хочаце зьвярнуцца да супольнасьці Вікіпэдыі, зрабіць гэта можна на наступнай старонцы:</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%A4%D0%BE%D1%80%D1%83%D0%BC">Форум</a></li></ul></div>\
<p style="margin-top:0px;">Тут вы можаце паведаміць пра памылкі, знойдзеныя ў артыкулах Вікіпэдыі, але не забывайцеся, што Вікіпэдыя пабудаваная на <a href="/wiki/%D0%92%D1%96%D0%BA%D1%96">вікі-рухавіку</a>, а таму можна і нават варта <a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%92%D1%8B%D0%BF%D1%80%D0%B0%D1%9E%D0%BB%D1%8F%D0%B9%D1%86%D0%B5_%D1%81%D1%8C%D0%BC%D1%8F%D0%BB%D0%B5%D0%B9!">выпраўляць знойдзеныя памылкі самастойна</a>. Безумоўна, мы разумеем, што некаторыя чытачы Вікіпэдыі з розных прычынаў могуць не хацець рэдагаваць артыкулы.</p><p><b>Але калі вы здольныя самастойна выправіць памылку, калі ласка, не паведамляйце пра яе тут.</b></p>\
<p><b>Заўважце:</b> Калі вы ўжо паведамлялі пра памылку, а цяпер яе больш няма, то верагодна яна была выпраўленая.</p><ul><li><a href="/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96">Глядзіце сьпіс актуальных паведамленьняў пра памылкі</a> або</li><li><a href="/w/index.php?title=%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96&amp;action=history">гісторыю зьменаў гэтай старонкі</a>.</li></ul>\
');
	return false;
}

function wb$getEditToken(page){
    var objhttp=(window.XMLHttpRequest) ? new XMLHttpRequest(): new ActiveXObject('Microsoft.XMLHTTP');
    if(!objhttp){return};
    objhttp.onreadystatechange=function() {
       if (objhttp.readyState == 4) {
         if (objhttp.status == 200) {
            var r_sti = /value="(\d+)" name=["']wpStarttime["']/;
            var r_eti = /value="(\d+)" name=["']wpEdittime["']/;
            var r_etk = /value="(.*?)" name=["']wpEditToken["']/;
            var r_asm = /name="wpAutoSummary" type="hidden" value="(.*?)"/;
            sti = r_sti.exec(objhttp.responseText);
            eri = r_eti.exec(objhttp.responseText);
            etk = r_etk.exec(objhttp.responseText);
            asm = r_asm.exec(objhttp.responseText);
            document.getElementById('Starttime').value=sti[1];
            document.getElementById('Edittime').value=eri[1];
            document.getElementById('EditToken').value=etk[1];
            document.getElementById('AutoSummary').value=asm[1];
         } else 
             alert(objhttp.status);
       }
    };
    objhttp.open("GET", mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + encodeURIComponent(page) + "&action=edit");
    objhttp.send("");
}

function wb$isValidPageName(name)
{
	if (name == "")
		return false;
	if (name.substr(0, 10) == "Спэцыяльныя:")
		return false;
	name = name.replace(/_/g, " ");
	for (var i = 0; i < wb$badPages.length; i++)
		if (name == wb$badPages[i])
			return false;

	return true;
}

function wb$checkForm(form)
{
	var page = form.wpSummary.value;
	var content = form.wpTextbox1.value;

	if (page == mw.config.get('wgPageName') && wb$isValidPageName(mw.config.get('wgPageName'))) {
		page = page.replace(/^Файл:/, "");
		page = page.replace(/^Выява:/, "");
		page = page.replace(/_/g, " ");
		page = "[[:" + mw.config.get('wgPageName') + "|" + page + "]]";

		if (mw.config.get('wgNamespaceNumber') == 6)
			content = "[[" + mw.config.get('wgPageName') + "|thumb|left|100px|]]\n* " + content + "\r\n{{clear}}";
	}
	else {
		page = page.replace(/_/g, " ");
		page = page.replace(/[\[\]\|]/g, "");
		page = page.replace(/^\s+/g, "");
		page = page.replace(/\s+$/g, "");

		if (! wb$isValidPageName(page) ) {
			alert("Калі ласка, пазначце назву старонкі.");
			if ( wb$isValidPageName(mw.config.get('wgPageName')) ) {
				form.wpSummary.value = mw.config.get('wgPageName');
			} else {
				form.wpSummary.value = "";
				form.wpSummary.focus();
			}
			return false;
		}

		page = '[[:' + page + ']]';
	}
	if (content == "" || content == wb$description || content.length < 20 || !content.match(' '))
	{
		alert("Калі ласка, апішыце знойдзеную памылку падрабязьней — уведзенае апісаньне вельмі кароткае.");
		form.wpTextbox1.focus();
		return false;
	}

	if (mw.config.get('wgUserName') != null) 
		content += '\r\n\r\nАўтар паведамленьня: ~' +'~'+'~'+'~';
	else
		content += '\r\n\r\nАўтар паведамленьня: '+form.author.value+' ~' +'~'+'~'+'~';
	
	form.submit.disabled = 'disabled';
	
	form.wpTextbox1.value = content;
	form.wpSummary.value = page;

	return true;
}

function wb$goToEditPage()
{

        var edit_el = document.getElementById('ca-edit');
        // var edit_href = "http://be-x-old.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96";
        var edit_href = window.wgArticlePath.replace(/\$1/, '%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%9F%D0%B0%D0%B2%D0%B5%D0%B4%D0%B0%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C%D0%BD%D1%96_%D0%BF%D1%80%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8B%D0%BB%D0%BA%D1%96');

	if (edit_el)
 	{
 	     edit_href = edit_el.getElementsByTagName('a')[0].href;
 	}
        window.location = edit_href;
}

function wb$popBugBoth(action_page, infoHTML)
{
	var glob = document.body;
	//
	// przysłaniacz
	var nel = document.createElement('div');
	nel.id='specpop-globhidden'
	nel.style.cssText = 'background:white;filter:alpha(opacity=75);opacity:0.75;position:absolute;left:0px;top:0px;z-index:2000';
	nel.style.width = document.documentElement.scrollWidth+'px';
	nel.style.height= document.documentElement.scrollHeight+'px';
	glob.appendChild(nel);
	//
	// przesunięcie okna
	window.scroll(0, 150);
 
	//
	// informacja
 
        var edit_el = document.getElementById('ca-edit');
	if (edit_el)
 	{
            var can_edit = true;
 	}
        else var can_edit = false;

	nel = document.createElement('div');
	nel.id='specpop-info'
	nel.style.cssText = 'font-size:13px;background:white;padding:14px 20px;border:1px solid black;position:absolute;width:600px;min-height:300px;top:200px;z-index:2002;';
	if (nel.style.maxHeight==undefined)	nel.style.height='300px'; // IE blah...
	var tmp = Math.floor(glob.clientWidth/2)-300;
	if (tmp<5) tmp	= 5;
	nel.style.left	= tmp + 'px';
	nel.innerHTML	= infoHTML;
	if(mw.user.isAnon()) // папярэджваць толькі ананімных удзельнікаў
	{
		nel.innerHTML += '<p><b>Увага:</b> ваш IP-адрас будзе захаваны ў гісторыі паведамленьняў.</p>';
	}

	nel.innerHTML += '<br clear="both"><p style="text-align:center;margin-top:15px">\
                '+(can_edit ? '<input type="button" value="Выправіць самастойна" onclick="wb$goToEditPage()" />' : '')+ '\
		<input type="button" value="Перайсьці да формы" onclick="wb$elementsRemove(\'specpop-info\');"/>&nbsp;&nbsp;&nbsp;\
		<input type="button" value="Скасаваць" onclick="wb$elementsRemove(\'specpop-info\',\'specpop-form\',\'specpop-globhidden\',\'specpop-pos\')"/>\
	</p>';
	glob.appendChild(nel);

	var action_url = window.wgServer + window.wgScript + "?title=" +encodeURIComponent(action_page)  + "&action=submit";
 
	//
	// formularz

	nel = document.createElement('div');
	nel.id='specpop-form'
	nel.style.cssText = 'background:white;padding:6px 10px 9px 10px;border:1px solid black;position:absolute;width:330px;min-height:300px;top:200px;z-index:2001';
	if (nel.style.maxHeight==undefined)	nel.style.height='300px'; // IE blah...
	nel.style.left	= (Math.floor(glob.clientWidth/2)-165)+'px';
	//nel.style.top	= (this.offsetTop-100)+'px';
	nel.innerHTML	='<form id="fm1" action="'+action_url+'" method="post" enctype="multipart/form-data" onsubmit="return wb$checkForm(this);">\
		<span style="font-size: 10px;">Назва старонкі:</span><br /><input type="text" name="wpSummary" id="wpSummary" style="width:320px;" /><br />\
                <input type="hidden" name="wpSection" value="new" />\
                <input type="hidden" name="wpSave" value="Zapisz" />\
                <input type="hidden" id="Starttime" name="wpStarttime" value="" />\
                <input type="hidden" id="Edittime" name="wpEdittime" value="" />\
                <input type="hidden" id="EditToken" name="wpEditToken" value="" />\
                <input type="hidden" id="AutoSummary" name="wpAutoSummary" value="" />\
                <input type="hidden" name="wpScrolltop" value="0" />\
		<div style="font-size: 10px; margin-top: 3px;">Тэкст паведамленьня:</div><br /><textarea id="TextBox" name="wpTextbox1" style="width:320px;height:200px; margin-bottom: 5px;" onclick="if (this.value == wb$description) {this.value = \'\';}">' + wb$description + '</textarea><br />\
		<div style="font-size: 10px; margin-top: 8px; float: left;">Подпіс:</div><input type="text" name="author" id="wikibug-input-author" style="margin-bottom: 7px; margin-left: 2px; width:180px;" /><br />\
                <input type="submit" id="submit" value="Адправіць" style="margin-right: 4px;" />\
		<input type="button" value="Скасаваць" onclick="wb$elementsRemove(\'specpop-form\',\'specpop-globhidden\',\'specpop-pos\')" />\
	</form>';
	glob.appendChild(nel);
	if (wb$isValidPageName(mw.config.get('wgPageName')))
		document.getElementById('wpSummary').value = mw.config.get('wgPageName');

	if (mw.config.get('wgUserName') != null) {
		var author = document.getElementById("wikibug-input-author");
		author.value = '~'+'~'+'~'+'~';
		author.disabled = 'disabled';
	}
        wb$getEditToken(action_page);
}

function wb$elementsRemove()
{
	var el;
	for (var i=arguments.length-1; i>=0; i--)
	{
		el = document.getElementById(arguments[i]);
		if (el) el.parentNode.removeChild(el);
	}
}