User:WhyBeNormal/monobook.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.
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
  document.write('<script type="text/javascript" src="' 
    + 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js' 
    + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); }
//Edit and "revert to" JS
//addOnloadHook(adddifflinks)
function adddifflinks()
{
var editlink = '<strong><span style="color:black;">[</span>edit this version<span style="color:black;">]</span></strong> ';
var rvname = ' <strong><span style="color:black;">[</span><span style="color:red;">restore this revision</span><span style="color:black;">]</span></strong><br>';
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
if (location.href.indexOf('diff=') != -1 && location.href.indexOf('&oldid=') != -1)
  {
  var doctd = document.getElementById('bodyContent').getElementsByTagName('td');
  var good_user = doctd[0].getElementsByTagName('a')[2].innerHTML;
  var link = doctd[0].getElementsByTagName('a')[0].href.replace('&amp;','&') + "&action=edit";
  var rvlink = doctd[0].getElementsByTagName('a')[0].href.replace('&amp;','&') + "&action=edit&fakeaction=autorevert&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user);
    document.getElementById('bodyContent').getElementsByTagName('td')[0].innerHTML = '<a href="' + rvlink + '">' + rvname + '</a>' + document.getElementById('bodyContent').getElementsByTagName('td')[0].innerHTML;
   }
}
//END
 
addOnloadHook(IEhistory_revert)
function IEhistory_revert()
{
if (location.href.indexOf('&action=history&limit=8&fakeaction=IEnormalrevert&user=') != -1)
  { 
  var found = 0;
  var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
  if (unescape(location.href.split('&byuser=')[1]) != user_name){alert('Invalid user match'); return;}
  var vandal = unescape(location.href.split('&fakeaction=IEnormalrevert&user=')[1].split('&byuser=')[0]);
  var l = document.getElementsByTagName('li');
  if (l[0].getElementsByTagName('a')[2].innerHTML != vandal)
  {alert('Could not rollback. Last contributor has changed.'); return;}
  for (i = 1; i < l.length; i++)
      {
     if (!l[i].getElementsByTagName('a')[3]){alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1); return;}
     if (l[i].getElementsByTagName('a')[3].innerHTML != vandal)
         {
     var good_user = l[i].getElementsByTagName('a')[3].innerHTML;
     var URL = l[i].getElementsByTagName('a')[2].href + "&action=edit&fakeaction=autorevert&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);
     location.href = URL;
     found = 1;
     break;
         }
      }
   if (found == 0)
  {alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1);}
   }
if (location.href.indexOf('&action=history&limit=8&fakeaction=IErollback&vandal=') != -1)
  { 
  var found = 0;
  var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
  if (unescape(location.href.split('&byuser=')[1]) != user_name){alert('Invalid user match'); return;}
  var vandal = unescape(location.href.split('&fakeaction=IErollback&vandal=')[1].split('&byuser=')[0]);
  var l = document.getElementsByTagName('li');
  if (l[0].getElementsByTagName('a')[2].innerHTML != vandal)
  {alert('Could not rollback vandal. Last contributor has changed.'); return;}
  for (i = 1; i < l.length; i++)
      {
     if (!l[i].getElementsByTagName('a')[3]){alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1); return;}
     if (l[i].getElementsByTagName('a')[3].innerHTML != vandal)
         {
     var good_user = l[i].getElementsByTagName('a')[3].innerHTML;
     var URL = l[i].getElementsByTagName('a')[2].href + "&action=edit&fakeaction=autorevertvandal&byuser=" + escape(user_name) + "&oldrvtouser=" + escape(good_user) + "&revertfromuser=" + escape(vandal);
     location.href = URL;
     found = 1;
     break;
         }
      }
   if (found == 0)
  {alert('Could not find a version of this page that is not by the user you attempted to rollback from.' + '\n' + 'Most likely, the user is the only author of the page.' + '\n' + 'This revert function only looks at the last 6 page edits, so you may want to look back further and use "restore".'); history.go(-1);}
   }
}
//END
 
function autosave()
{
user_name = escape(document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML);
if (location.href.indexOf("&fakeaction=autorevert&byuser=" + user_name) != -1 || location.href.indexOf("&fakeaction=autorevertvandal&byuser=" + user_name) != -1) 
    {
  if (location.href.indexOf('&revertfromuser') == -1 && location.href.indexOf('&fakeaction=autorevertvandal') == -1)
  {
  var message = "Are you sure you want to revert to this revision?"; 
  var return_value = confirm(message); 
  if (return_value != true){history.go(-1); return;}
  }
  var good_user = unescape(location.href.split("&oldrvtouser=")[1].split('&revertfromuser=')[0]);
  var ID = location.href.split("&oldid=")[1].split("&action=edit")[0];
  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 (location.href.indexOf('&fakeaction=autorevertvandal') != -1)
       { 
var artname = document.title.split('Editing ')[1].split(' - ')[0];
var vandal = unescape(location.href.split('&revertfromuser=')[1]);
document.editform.wpSummary.value += 'JS: Reverted [[WP:VAND|vandalism]] by [[Special:contributions/' + vandal + '|' + vandal + ']] to last version by ' + good_user + '.';
var form = document.getElementById('editform');
window.open('http://en.wikipedia.org/w/index.php?title=User talk:' + vandal + '&action=edit' + '&action=edit&vanarticle=' + artname,
              'targetname',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1024,height=768');
form.submit();
        }
else if (location.href.indexOf('&revertfromuser=') != -1)
       { 
var vandal = unescape(location.href.split('&revertfromuser=')[1]);
document.editform.wpSummary.value += 'JS: Reverted edits by [[Special:contributions/' + vandal + '|' + vandal + ']] to last version by ' + good_user + '.';
var form = document.getElementById('editform');
form.submit();
       }
else
       {
document.editform.wpSummary.value += 'JS: Revert to revision ' + ID + ' by [[User:' + good_user + '|' + good_user + ']].';
var form = document.getElementById('editform');
form.submit();
       }
    }
}
//END
 
//Revert options
addOnloadHook(NArevertfunctions)
function NArevertfunctions()
{
adddifflinks();
autosave();
}
// Script from [[User:Lupin/recent2.js]]
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//This code will change ISBN links to point to the url of your choice,
//instead of Special:Book_sources. 
//
//How to use it:
//
//First, you must copy this code to your user javascript page. This is 
//at User:<your username>/monobook.js . My username is Lunchboxhero so
//my javascript page is User:Lunchboxhero/monobook.js . You must be logged
//in to edit your javascript page.
//
//Once you have copied the code and saved the page, you need to refresh your
//browser's cache. For Mozilla/Safari/Konqueror: hold down Shift while clicking 
//Reload (or press Ctrl-Shift-R), IE: press Ctrl-F5, Opera: press F5.
//
//The code should now work, as long as you are logged in.
//
//You can change the destination url by simply modifying the quoted url that
//follows document.links[i].href=
//
//Good luck, and if you have any questions, leave me a comment on the discussion
//page of User:Lunchboxhero/monobook.js .
//
//(Every line that starts with "//" is a comment and can be discarded.)
 
function externISBN() {
  for (var i = 0; i < document.links.length; i++) 
    {       
         var ln = document.links[i].href.match(/isbn=(.*)/);
         if (ln) {
           document.links[i].href='http://www.amazon.com/exec/obidos/ASIN/'+RegExp.$1;
         }
    }
 
}
 
addOnloadHook(externISBN);
// This will add an [edit top] link at the top of all pages except preview pages
// by User:Pile0nades
 
setTimeout("editTopLink()", 0) // this is equivalent of onload
function editTopLink() {
  // if this is preview page or generated page, stop
  if(document.getElementById("wikiPreview") || window.location.href.indexOf("w/index.php?title=Special:") != -1) return;
 
  // get the page title
  var pageTitle = document.title.split(" - ")[0].replace(" ", "_"); 
 
  // create div and set innerHTML to link
  var divContainer = document.createElement("div");
  divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-top:3px;">[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]</div>';
 
  // insert divContainer into the DOM before the h1
  document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
 
}