//Скрипт редактирования для Википедии. Переводит выделенный фрагмент текста в нижний регистр.
//Часть кода позаимствована из https://ru.wikipedia.org/wiki/MediaWiki:Wikificator.js
//Автор: X-romix
var XRomix_LowerCase_CantWork = 'Перевод в нижний регистр не может работать в вашем браузере.\n\nLowerCase script cannot work in your browser' // английский текст для тех, кто не видит русские буквы
var XRomix_LowerCase_FullText = 'Сначала выделите текст. Эта функция переводит выделенный текст в нижний регистр';
//Добавляет кнопку
function add_XRomix_LowerCase_Button(){
var toolbar = document.getElementById('gadget-toolbar')
var textbox = document.getElementById('wpTextbox1')
if (!textbox || !toolbar) return
var i = document.createElement('img')
i.src = 'https://upload.wikimedia.org/wikipedia/ru/b/b3/Button-LowerCase.PNG'
i.alt = i.title = 'Перевод текста в нижний регистр'
i.onclick = XRomix_LowerCase
i.style.cursor = 'pointer'
toolbar.appendChild(i)
}
//Этот код выполняется в начале.
if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit'){
mw.hook( 'legacy.toolbar.ready' ).add( add_XRomix_LowerCase_Button );
}
//Функция для оформления таблицы
function XRomix_LowerCase(){
var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1
var winScroll = document.documentElement.scrollTop //remember window scroll
wpTextbox1.focus()
if (typeof wpTextbox1.selectionStart != 'undefined'
&& (navigator.productSub > 20031000 || is_safari)) { //Mozilla/Opera/Safari3
var textScroll = wpTextbox1.scrollTop
var startPos = wpTextbox1.selectionStart
var endPos = wpTextbox1.selectionEnd
txt = wpTextbox1.value.substring(startPos, endPos)
if (txt == '') {alert(XRomix_LowerCase_FullText); ShowHelp(); return}
else{
processText()
wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos)
}
wpTextbox1.selectionStart = startPos
wpTextbox1.selectionEnd = startPos + txt.length
wpTextbox1.scrollTop = textScroll
}else if (document.selection && document.selection.createRange) { //IE
//alert("IE");
var range = document.selection.createRange()
txt = range.text
if (txt == '') {alert(XRomix_LowerCase_FullText); ShowHelp(); return}
else{
processText()
range.text = txt
//if (!window.opera) txt = txt.replace(/\r/g,'')
if (range.moveStart) range.moveStart('character', - txt.length)
range.select()
}
}else // Для браузеров, которые не умеют возвращать выделенный фрагмент, выдаем ошибку
{ alert(XRomix_LowerCase_CantWork); return }
document.documentElement.scrollTop = winScroll // scroll back, for IE/Opera
var wpSummary = document.getElementById('wpSummary')
if(wpSummary){
var temp=wpSummary.value;
temp=temp.replace(/\/\*.*?\*\// , ""); //комментарии
temp=temp.replace(/[\s]*/ , ""); //пробелы
if (temp==""){
//wpSummary.value=wpSummary.value+" - [[User talk:X-romix/lowercase.js|lowercase.js]]";
}
}
//Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста
function processText(){
txt=txt.toLocaleLowerCase(); //переводим строку в нижний регистр
}
}