User:John Broughton/monobook.js

// Checks edits to talk pages; warns if no signature:

importScript("User:John Broughton/sign.js");

// Creates multiple edit boxes, including separate ones for references and templates:

importScript("User:Magnus Manske/less edit clutter.js"); [Interesting experiment]

// User:Lupin/Anti-vandal tool

// importScript("User:Lupin/recent2.js"); (commented out, September 27, 2008)

// User:Lupin/popups.js

// importScript('User:Lupin/popups.js');

// Note, August 26, 2008: Now using Navigation Popups from the Gadgets tab of "My preferences"

importScript('User:Anomie/ajaxpreview.js'); // Linkback: User:Anomie/ajaxpreview.js // Adds replace option to editing window - from WikiProject User scripts/Scripts/Replace

function wpTextboxReplace {   var s = prompt("Search regexp:"); if(s){ var r = prompt("Replace /"+s+"/ with:"); if(!r && r != '') return; var txt = document.editform.wpTextbox1; txt.value = txt.value.replace(new RegExp(s, "mg"), r); } } addOnloadHook(function {    if (document.forms.editform) {        mw.util.addPortletLink('p-cactions', 'javascript:wpTextboxReplace', 'Replace', 'ca-replace', 'Regexp replace for the edit window', 'R', document.getElementById('ca-history'));   } });

//From User:Dschwen/highlightredirects.js; highlights (in green) redirects on a page, after (added) tab is clicked var highlightRedirects = { tab_redirects : null, status: null, xhr : null, todo : null, num : { total:0, done:0, redir:0 }, // // Try to create an XMLHTTP request object for each tile // with maximum browser compat. // code adapted from http://jibbering.com/2002/4/httprequest.html // createXMLHTTP : function { var i, xhr; /*@cc_on @*/ /*@if (@_jscript_version >= 5) // Internet Explorer (uses Conditional compilation) // traps security blocked creation of the objects. wmaDebug('Microsoft section'); try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xhr = false; }  }  @end @*/ // Firefox, Konqueror, Safari, Mozilla if (!xhr && typeof(XMLHttpRequest) != 'undefined') { try { xhr = new XMLHttpRequest; } catch (e) { xhr = false; } }  // ICE browser if (!xhr && window.createRequest) { try { xhr = new window.createRequest; } catch (e) { xhr = false; } }  return xhr; }, updateStatus : function { with( highlightRedirects ) {  status.nodeValue = ' (' + num.redir + '/' + num.done + '/' + num.total + ')'; } }, // cross-browser event attachment (John Resig) // http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html addEvent : function ( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) {  obj["e"+type+fn] = fn; obj[type+fn] = function { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } }, run : function { var links = document.getElementById('bodyContent').getElementsByTagName('a'); var len = links.length; var local = window.location.href + '#' if( highlightRedirects.todo != null ) return; highlightRedirects.todo = new Array; for( var key = 0; key < len; key++ ) {  if( links[key].href &&        links[key].pathname &&       links[key].pathname.substr(0,6) == '/wiki/' &&       !( links[key].href.substr(0,local.length) == local ) &&       !( links[key].pathname.substr(6,8) == 'Special:' ) ) {   highlightRedirects.todo[highlightRedirects.num.total] = {    link : links[key], xhr : highlightRedirects.createXMLHTTP, func : new Function(      'var me = highlightRedirects.todo['+highlightRedirects.num.total+'];' +        'if(me.xhr.readyState==4) {' +        'var ro=eval("("+me.xhr.responseText+")");' +        'var redir=false;' +        'for( var k in ro.query.pages ) {' +          'if( typeof(ro.query.pages[k].redirect) != "undefined" ) redir=true;' +        '}' +        'if(redir) {' +          'me.link.style.color="green";' +         'highlightRedirects.num.redir++;' +        '}' +         'else me.link.style.color="blue";' +        'highlightRedirects.num.done++; highlightRedirects.updateStatus;' +       '}'      ) }   links[key].style.color = 'gray'; with(highlightRedirects.todo[highlightRedirects.num.total]) {    xhr.open("GET",       "/w/api.php?action=query&prop=info&format=json&titles=" +      links[key].pathname.substr(6), true); xhr.onreadystatechange = func; xhr.send( null ); }   highlightRedirects.num.total++; } } }, install : function { with(highlightRedirects) {  tab_redirects = document.createElement('li'); tab_redirects.style.cursor = 'pointer'; tab_redirects.style.padding = '0pt 0.8em 0pt 0.8em'; tab_redirects.style.color = 'blue'; status = document.createTextNode(''); tab_redirects.appendChild( document.createTextNode('redirects') ); tab_redirects.appendChild( status ); if( document.getElementById('ca-history') ) document.getElementById('ca-history').parentNode.appendChild( tab_redirects ); addEvent( tab_redirects, 'click', run ); } } }; // // Hook up installation function // addOnloadHook(highlightRedirects.install);

// End