User:Saperski/myskin.js
From Apache OpenOffice Wiki
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// Search box for Mediawiki
// Instrukcja obsługi [[Wikipedia:Narzędzia/Wyszukiwanie i zamiana]]
// Autor: [[:en:User:Zocky]]
// Licencja: GNU General Public License, http://opensource.org/licenses/gpl-license.php
// Wersja tłumaczona skryptu: http://en.wikipedia.org/w/index.php?title=User:Zocky/SearchBox.js&oldid=60000195
// Tłumaczenie i drobne poprawki: Maciej Jaros [[:pl:User:Nux]]
var sr$t; // sr$t=document.editform.wpTextbox1;
var sr$f; // sr$f=document.srForm;
var sr$s; // sr$s=document.srForm.srSearch;
var sr$r; // sr$r=document.srForm.srReplace;
var sr$w; // sr$w=sr$t.style.width;
var sr$i; // sr$i=document.getElementById('SearchIcon');
var sr$lang = {
// '_num_ ocurrences of _str_ replaced' : '$1 ocurrences of $2 replaced.'
'_num_ ocurrences of _str_ replaced' : 'Zmieniono $1 wystapien $2.'
};
/*
Translate also:
var srBoxCode = ...
*/
function srBack()
{
if (sr$s.value=='')
{
sr$t.focus();
return;
}
var searchString = sr$s.value;
if (!sr$f.srRegexp.checked)
searchString = searchString.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1')
;
searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";
if (sr$f.srCase.checked)
var re=new RegExp(searchString)
else
var re=new RegExp(searchString,"i")
;
var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));
if (!res)
var res = re.exec (sr$t.value)
;
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[1].length;
}
else
sr$t.selectionStart=sr$t.selectionEnd
;
srSync();
}
function srNext()
{
if (sr$s.value=='')
{
sr$t.focus();
return
}
var searchString = sr$s.value;
if (!sr$f.srRegexp.checked)
searchString=searchString.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1')
;
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g")
else
var re=new RegExp(searchString,"gi")
;
re.lastIndex=sr$t.selectionEnd;
var res = re.exec (sr$t.value)
if (!res)
{
re.lastIndex=0;
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionEnd=res.index+res[0].length;
sr$t.selectionStart=res.index;
}
else
sr$t.selectionStart=sr$t.selectionEnd
;
srSync();
}
function srReplace()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
if (sr$s.value=='' || sels==sele)
{
sr$t.focus();
return;
}
var searchString = sr$s.value;
var replaceString = sr$r.value;
if (!sr$f.srRegexp.checked)
{
searchString=searchString.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString=replaceString.replace(/([\$\\])/g,'\\$1');
}
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g")
else
var re=new RegExp(searchString,"gi")
;
re.lastIndex=sels;
var res = re.exec (sr$t.value);
var $$=0;
if (res && res.index==sels && res[0].length==sele-sels)
{
if (sr$f.srRegexp.checked)
{
replaceString=replaceString.replace(/\\\\/g,'&backslash;').replace(/\\\$/g,'$');
var replaceBits=(" "+replaceString).split(/(?=\$\d)/);
replaceString=replaceBits[0].substring(1);
for (var i=1; i<replaceBits.length; i++)
{
$$=replaceBits[i][1]-'0';
if ($$<res.length)
replaceString += res[$$] + replaceBits[i].substring(2)
else
replaceString += replaceBits[i]
;
}
replaceString=replaceString.replace(/\\n/g,"\n").replace(/&backslash;/g,"\\").replace(/$/g,"\$")
}
sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele);
}
sr$t.selectionStart=sels;
sr$t.selectionEnd=sr$t.value.length-selr;
srSync();
}
function srReplaceall()
{
if (!sr$s.value) {
sr$t.focus();
return
}
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var reps;
var searchString = sr$s.value;
var replaceString = sr$r.value;
if (sr$f.srRegexp.checked)
{
replaceString = replaceString.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\");
}
else
{
searchString = searchString.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
replaceString = replaceString.replace(/([\$\\])/g,'\\$1');
}
if (sele>sels)
reps=sr$t.value.substring(sels,sele)
else
reps=sr$t.value
;
if (sr$f.srCase.checked)
var re=new RegExp(searchString,"g")
else
var re=new RegExp(searchString,"gi")
;
var replaceCounter=0;
var replaceFunc=function()
{
replaceCounter++;
return replaceString;
};
reps=reps.replace(re,replaceFunc);
if (sele>sels)
sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele);
else
sr$t.value = reps
;
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
// ## window.status = replaceCounter+" ocurrences of " + searchString + " replaced.";
window.status = sr$lang['_num_ ocurrences of _str_ replaced'].replace(/\$1/, replaceCounter).replace(/\$2/, searchString);
srSync();
}
function srToggleCase()
{
var sels=sr$t.selectionStart;
var sele=sr$t.selectionEnd;
var selr=sr$t.value.length-sele;
var selt=sr$t.value.substring(sels,sele);
if (sele>sels)
{
if (selt==selt.toUpperCase())
selt=selt.toLowerCase()
else if (selt==selt.toLowerCase() && sele-sels>1)
selt=selt.substring(0,1).toUpperCase()+selt.substring(1).toLowerCase()
else
selt=selt.toUpperCase()
;
sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele);
sr$t.selectionStart=sels;
sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels;
}
srSync();
}
function srSync()
{
var i;
var allLines=0;
var lineNo=0;
var w=sr$t.cols-5;
var dummy=sr$t.value.split("\n");
for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)}
var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n");
for (i=0;i<dummy.length;i++){lineNo+=Math.ceil(dummy[i].length/w)}
// alert (w+" "+lineNo+"/"+allLines);
sr$t.scrollTop=sr$t.scrollHeight*(lineNo-10)/allLines;
sr$t.focus();
}
function srInit()
{
if(document.getElementById('wpTextbox1'))
{
var srBoxCode =
'<form name="srForm"><table id="srBox" cellpadding="0" cellspacing="2">'
+'<tr>'
+'<td valign="bottom">'
+'<span class="label">znajdź:</span><br />'
+'<input size="17" type="text" name="srSearch" accesskey="F" tabindex="8" onkeypress="event.which == 13 && srNext()"; value="" />'
+'</td>'
+'<td valign="bottom">'
+'<span class="label">zamień na:</span><br />'
+'<input size="17" type="text" name="srReplace" accesskey="G" tabindex="9" onkeypress="event.which == 13 && srNext()"; value="" />'
+'</td>'
+'<td valign="top">'
+'<label><input type="checkbox" name="srCase" onclick="sr$t.focus()" tabindex="10" />uwzględnij wielkość liter</label>'
+'<label><input type="checkbox" name="srRegexp" onclick="sr$t.focus()" tabindex="11" />użyj RegEx</label>'
+'<br />'
+'<a href="javascript:srBack()" onmouseover="sr$t.focus()" title="szukaj wstecz [alt-2]" accesskey="2"><</a> '
+'<a href="javascript:srNext()" onmouseover="sr$t.focus()" title="szukaj dalej [alt-3]" accesskey="3">szukaj ></a> '
+'<a href="javascript:srReplace();srBack()" onmouseover="sr$t.focus()" title="zamień znalezione i szukaj poprzedniego [alt-4]" accesskey="4"><</a> '
+'<a href="javascript:srReplace()" onmouseover="sr$t.focus()" title="zamień znalezione">zamień</a> '
+'<a href="javascript:srReplace();srNext()" onmouseover="sr$t.focus()" title="zamień znalezione i szukaj następnego [alt-5]" accesskey="5">></a> '
+'<a href="javascript:srReplaceall()" onmouseover="sr$t.focus()" title="zamień wszystkie wystąpienia, które zostaną znalezione [alt-7]" accesskey="7">zamień wszystkie</a> '
+'</td>'
+'</tr>'
+'</table></form>'
;
var el=document.getElementById('searchInput');
if (el) el.accessKey='none';
sr$t=document.editform.wpTextbox1;
sr$w=sr$t.style.width;
//
// inserting buttons
var btns=document.createElement('span');
btns.innerHTML=
'<a id="SearchIcon" href="javascript:srShowHide()">'
+'<img style="cursor: pointer;" title="Wyszukiwanie i zamiana" alt="Wyszukiwanie i zamiana" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_find.png" border="0" height="22" width="23">'
+'</a>'
+'<a href="javascript:srToggleCase()">'
+'<img style="cursor: pointer;" title="Zmiana wielkości liter" alt="Zmiana wielkości liter" src="http://upload.wikimedia.org/wikipedia/en/1/12/Button_case.png" border="0" height="22" width="23">'
+'</a>'
;
var el=document.getElementById('toolbar');
if (el)
{
el.appendChild(btns)
}
else
{
el=document.getElementById('editform');
el.parentNode.insertBefore(btns,el);
}
sr$i=document.getElementById('SearchIcon');
sr$i.accessKey="F";
//
// inserting box
var srbox=document.createElement('div');
srbox.innerHTML=srBoxCode;
srbox.firstChild.style.display='none';
el=document.getElementById('editform');
el.parentNode.insertBefore(srbox,el);
sr$f=document.srForm;
sr$s=document.srForm.srSearch;
sr$r=document.srForm.srReplace;
}
}
function srShowHide()
{
if (sr$f.style.display=='none')
{
sr$f.style.display='block';
sr$i.accessKey="none";
sr$t.style.width='auto';
sr$s.focus();
}
else
{
sr$f.style.display='none';
sr$t.style.width=sr$w;
sr$i.accessKey="F";
}
}
addOnloadHook(srInit);