User:El Slameron/monobook.js

// Search box for Mediawiki // (c) 2006 User:Zocky, released under GPL //

var sr$t; var sr$f; var sr$s; var sr$r; var sr$w; var sr$i;

function srBack { if (sr$s.value=='') {sr$t.focus; return }

if (sr$f.srRegexp.checked) { var searchString = sr$s.value; } else { searchString=sr$s.value.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 }

if (sr$f.srRegexp.checked) { var searchString = sr$s.value; } else { searchString=sr$s.value.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.selectionStart=res.index; sr$t.selectionEnd=res.index+res[0].length; } 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 }

if (sr$f.srRegexp.checked) { var searchString = sr$s.value; var replaceString = sr$r.value;

} else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); replaceString=sr$r.value.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,'&dollar;') 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/,"\n").replace (/&backslash;/g,"\\").replace (/&dollar;/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;

if (sr$f.srRegexp.checked) { var searchString = sr$s.value; var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\"); } else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); replaceString=sr$r.value.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."; 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 '

var ep=document.getElementById('searchInput'); ep.accessKey='none';

sr$t=document.editform.wpTextbox1; sr$w=sr$t.style.width;

var sr=document.createElement('div'); sr.innerHTML=srBoxCode;

var im=document.createElement('span'); im.innerHTML='';

var ep=document.getElementById('toolbar'); if (ep) {     ep.appendChild(im) }   else {     var ep=document.getElementById('editform'); ep.parentNode.insertBefore(im,ep); }

sr$i=document.getElementById('SearchIcon'); sr$i.accessKey="F"; sr.firstChild.style.display='none';

var ep=document.getElementById('editform'); ep.parentNode.insertBefore(sr,ep);

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"; } }

document.write('');

addOnloadHook(srInit); //

// User:Zocky/PicturePopups.js document.write(' ');

// Add a "Kate" link to your monobook "personal menu" list at the very // top of the page. // //  Indicate where you would like "Kate" to appear: //   pt-userpage, pt-mytalk, pt-preferences, //   pt-watchlist, pt-mycontris, pt-logout // gsKateInsertBefore = 'pt-mycontris'; // leave blank to append after "logout" // function KateLink { var user = document.getElementById( 'pt-userpage' ).firstChild.firstChild.data;

var li = document.createElement( 'li' ); li.id = 'pt-kate';

var a = document.createElement( 'a' ); a.appendChild( document.createTextNode( 'my editcount' ) ); // eh, the css makes the text lowercase a.href = 'http://tools.wikimedia.de/~river/cgi-bin/count_edits?dbname=enwiki&user=El_Slameron';

li.appendChild( a );

if ( ! gsKateInsertBefore ) // append to end (right) of list { document.getElementById( 'pt-logout' ).parentNode.appendChild( li ); } else { var before = document.getElementById( gsKateInsertBefore ); before.appendChild( li, before ); } }  if ( window.addEventListener ) window.addEventListener( 'load', KateLink, false ); else if ( window.attachEvent     ) window.attachEvent   ( 'onload', KateLink );