User:AuburnPilot/replacetxt.js

From Wikipedia, the free encyclopedia

If a message on your talk page led you here, please be wary of who left it. Code that you insert on this page could contain malicious content capable of compromising your account. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. If this is a .js page, the code will be executed when previewing the page.
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
//Manual replace
function replacetxt()
{
withw = '';
what = prompt("What text do you want to replace?" + "\n" + "You can even use regex commands." + "\n" + "Put '//' before and after the phrase to use regex.");
if (what == ''){alert("Invalid command."); return;}
else if (what == null){alert("Action cancelled."); return;}
what_GUI = what;
if (what.replace('//','').replace('//','') == what.split('//')[1])
  {
  what = what.split('//')[1]
  replacetxtdone(what.split('//')[0],1,what);
  }
else
  {
  what = what.replace(/\\/g,"\\\\");
  what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)");
  what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}");
  what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]");
  what = what.replace(/\|/g,"\\|");
  what = what.replace(/\./g,"\\.");
  what = what.replace(/\$/g,"\\$");
  what = what.replace(/\+/g,"\\+");
  what = what.replace(/\^/g,"\\^");
  what = what.replace(/\?/g,"\\?");
  what = what.replace(/\*/g,"\\*");
  what = what.replace(/\//g,"\\/");
  replacetxtdone(what,0,what_GUI);
  }
}
//END
 
//Manual replace
function replacetxtdone(s,regexon,what_GUI)
{
var original = document.editform.wpTextbox1.value;
if(s) 
{ 
  if (regexon==1)
  {var r = prompt('Replace "' + what_GUI + '" with what? (Regex)');}
  else
  {var r = prompt('Replace "' + what_GUI + '" with what?');}
if(!r && r != '') {alert('Action cancelled.'); return;} 
if (r == ''){alert("All such appearances of text will be removed.");}
var txt = document.editform.wpTextbox1;
var rep = RegExp(s,"g");
txt.value = txt.value.replace(rep, r); 
  form = document.getElementById('bodyContent');
  l = form.getElementsByTagName('input');
  for (i = 0; i < l.length; i++)
    {
    if (l[i].name == 'wpMinoredit')
      {l[i].value = '1'; l[i].checked=true;}
    }
if (document.editform.wpTextbox1.value == original){alert('The word or phrase was not found on this page.'); return;}
document.editform.wpSummary.value += 'JS: Replacing "' + what_GUI + '" with "' + r + '". ';
 }
}
//END
 
//---------------------------------------------------------------
//add tab
addOnloadHook(replacetab)
function replacetab()
{
if (document.title.indexOf("Editing ") != -1)
    {
    addToolboxLink("javascript:replacetxt()","Text replacer","txt-repl");
    }
}
//END
 
////////////REDIRECTS////////////
addOnloadHook(redir_other_add)
function redir_other_add()
{
if (document.title.search(/Editing |Edit conflict/) != 0)
{addToolboxLink('javascript:redire_other()','Redirect to here','redir-hr','`');}
if (location.href.indexOf('&action=edit&jsaction=Redirect&target=') != -1)
  {
  var page = unescape(location.href.split('&target=')[1]);
  var redirect = '#REDIRECT [[' + page + ']]';
  var message = 'Note: Page already exists. Override?';
  if (document.editform.wpTextbox1.value != '')
  {
  var override = confirm(message);
  if (!override){return;}
  }
  document.editform.wpTextbox1.value = redirect;
  document.editform.wpSummary.value = 'Redirect to [[' + page + ']]';
  var form = document.getElementById('bodyContent');
  l = form.getElementsByTagName('input');
  for (var i = 0; i < l.length; i++)
      {
     if (l[i].name == 'wpMinoredit')
     {l[i].value = '1'; l[i].checked=true; break;}
      }
  }
}
 
function redire_other()
{
var page = document.title.replace('Editing ','').replace('Edit Conflict','').replace('Edit conflict','').split(' - ')[0];
var txt = new String; 
var foundIn = ''; 
if (window.getSelection) 
{ 
txt = window.getSelection(); 
foundIn = 'window.getSelection()'; 
} 
else if (document.getSelection) 
{ 
txt = document.getSelection(); 
foundIn = 'document.getSelection()'; 
} 
else if (document.selection) 
{ 
txt = document.selection.createRange().text;
 foundIn = 'document.selection.createRange()'; 
} 
else 
{var txt = prompt('No selected text found. Enter the page name:');}
if (!txt || txt == '')
{var txt = prompt('No selected text found. Enter the page name:');}
if (!txt || txt == ''){return;}
URL = 'http://en.wikipedia.org/w/index.php?title=' + txt + '&action=edit&jsaction=Redirect&target=' + page;
URL = URL.replace(' &action','&action');
location.href = URL;
}