შენიშვნა: შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. Google Chrome, Firefox, Microsoft Edge და Safari: დააჭირეთ   ⇧ Shift  ღილაკს და შემდეგ - ღილაკს Reload.

/*
; წყარო: http://pl.wikipedia.org/wiki/MediaWiki:Wikibugs.js
; ადაპტაცია რუსულისთვის: [[User:Александр Сигачёв]], [[User:Putnik]], [[User:LEMeZza]]
;
; იდეა პოლონურად: [[:pl:User:Dodek]], [[:pl:User:Adziura]]
; რეალიზაცია: [[:pl:User:Nux]], [[:pl:User:Saper]], [[:pl:User:Beau]], [[User:Putnik]]
*/
 
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
})
 
function wb$popWikibug()
{
var link_wiki = window.wgArticlePath.replace(/\$1/, 'ვიკი')
var link_tocreate = window.wgArticlePath.replace(/\$1/, 'ვიკიპედია:შესაქმნელი_სტატიები')
var link_bebold = window.wgArticlePath.replace(/\$1/, 'ვიკიპედია:იყავით_გაბედული')
var link_buglist = window.wgArticlePath.replace(/\$1/, 'ვიკიპედია:შეტყობინებები_შეცდომების_შესახებ')
 
wb$popBugBoth("ვიკიპედია:შეტყობინებები შეცდომების შესახებ", '\
<div style="float:right;width:200px;padding:4px 10px;margin:2px 0px 0px 10px;font-size:90%;border:2px solid #900"><p>გთხოვთ, <strong>არ\u00A0შეგვატყობინოთ</strong> იმ\u00A0შეცდომების შესახებ, რომლებიც აღმოჩენილია \u00A0გარე პროგრამულ უზრუნველყოფაში და სხვა \u00A0საიტევზე, რომლებიც\u00A0არ არიან კავშირში\u00A0ვიკიპედიასთან (თქვენი ოპერაციული სისტემის შეხდომები, ისეთი საიტების როგორიცაა <strong>«В\u00A0Контакте»</strong> ან <strong>«Одноклассники.ru»</strong>. ამგვარი შეცდომები იქნება იგნორირებული.).</p>\
<p>თუ თქვენ ვერ\u00A0იპოვეთ რაიმე ინფორმაცია \u00A0ვიკიპედიაში\u00A0— ეს არ არის\u00A0შეცდომა, მოთხოვნები\u00A0ახალ სტატიებზე შეგიძლიათ დატოვოთ \u00A0გვერდ «<a href="' + link_tocreate + '">მოთხოვნები\u00A0შექმნაზე</a>».</p></div>\
<p style="margin-top:0px">თუ თქვენ აღმოაჩინეთ შეცდომა\u00A0ვიკიპედიაში, გთხოვთ თავად შეასწოროთ იგი, რადგანაც საიტზე\u00A0გამოყენებული ტექნოლოგია <a href="' + link_wiki + '">ვიკი</a> გაძლევთ ამის საშუალებას. არ\u00A0გეშინოდეთ, რადგანაც \u00A0ვიკიპედიის ერთ-ერთი წესი გვაუწყებს: «<a href="' + link_bebold + '">იყავით გაბედული</a>»! თუ\u00A0რაიმე მიზეზების გამო თქვენ არ\u00A0შეგიძლიათ გაასწოროთ შეცდომა თავად, შეგვატყობინეთ\u00A0მის\u00A0შესახებ ამ ფორმის მეშვეობით.</p><p><strong>თუ შეცდომა უკვე გასწორებულია,\u00A0— არ\u00A0შეგვატყობინოთ\u00A0მის შესახებ.</strong></p><p>არ\u00A0დატოვოთ საკონტაქტო ინფორმაცია (ტელეფონის ნომერი და/ან ელექტრონული ფოსტა), პასუხი\u00A0შეტყობინებაზე დარჩება მხოლოდ \u00A0შეტყობინების\u00A0გვერდზე და არსად სხვაგან.</p>\
<ul><li><a href="' + link_buglist + '">შეცდომების მოქმედი ნუსხა.</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
 
page = page.replace(/^http:\/\/ka\.wikipedia\.org\/wiki\/(.+)$/, "$1")
page = page.replace(/_/g, " ")
 
if (page == mw.config.get('wgPageName').replace(/_/g, " ") && wb$isValidPageName(mw.config.get('wgPageName'))) {
if (mw.config.get('wgNamespaceNumber') == 6) {
page = "[[:ფაილი:"+mw.config.get('wgTitle')+"|"+mw.config.get('wgTitle')+"]]"
content = "[[ფაილი:"+mw.config.get('wgTitle')+"|thumb|left|100px]]\n* "+content+"\r\n{{clear}}"
}
else {
page = page.replace(/^(კატეგორია:|ფაილი:|\/)/, ":$1")
page = "[["+page+"]]"
}
}
else {
page = page.replace(/\[\[([^\[\]\|]+)\|[^\[\]\|]+\]\]/g, "$1")
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
}
if (page.indexOf(':') > 0)
page = '[[:'+page+']]'
else
page = '[['+page+']]'
}
if (content=="" || content==wb$description || content.length<20 || !content.match(' ')) {
alert("შეცდომის აღწერა ძალზედ მოკლეა. გთხოვთ, გაავრცეთ იგი. .")
form.wpTextbox1.focus()
return false
}
 
form.submit.disabled = 'disabled'
 
if (mw.config.get('wgUserName') != null) 
content += '\r\n\r\nშეტყობინების ავტორი: ~~'+'~~'
else
content += '\r\n\r\nშეტყობინების ავტორი: '+form.author.value+' ~~'+'~~'
 
form.wpTextbox1.value = content
form.wpSummary.value = page
 
return true
}
 
function wb$goToEditPage()
{
var edit_el = document.getElementById('ca-edit')
var edit_href = window.wgArticlePath.replace(/\$1/, 'ვიკიპედია:შეტყობინებები_შეცდომების_შესახებ')
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
 
// ჩაბნელება
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)
 
// გადაადგილება
window.scroll(0, 150)
 
// ინფორმაცია
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:21px 30px;border:1px solid black;position:absolute;width:500px;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 (window.wgUserName == null)
nel.innerHTML = nel.innerHTML + '<p><strong>ყურადღება.</strong> თქვენი IP-მისამართი ჩაიწერება გვერდის ცვლილებათა ჟურნალში.</p>'
nel.innerHTML	= nel.innerHTML + '<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"
 
// форма
nel = document.createElement('div')
nel.id = 'specpop-form'
nel.style.cssText = 'background:white;padding:5px 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)">\
Название страницы:<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="შენახვა" />\
<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" />\
Текст сообщения:<br /><textarea id="TextBox" name="wpTextbox1" style="width:320px;height:200px" onclick="if (this.value == wb$description) {this.value = \'\'}">' + wb$description + '</textarea><br />\
Подпись:<input type="text" name="author" id="wikibug-input-author" /><br />\
<input type="submit" id="submit" value="გაგზავნა" /> &nbsp; \
<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').replace(/_/g, " ")
 
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)
}
}