<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.midsouthmakers.org/index.php?action=history&amp;feed=atom&amp;title=User%3ADan9186%2FTools%2Feditcount.js</id>
	<title>User:Dan9186/Tools/editcount.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.midsouthmakers.org/index.php?action=history&amp;feed=atom&amp;title=User%3ADan9186%2FTools%2Feditcount.js"/>
	<link rel="alternate" type="text/html" href="http://wiki.midsouthmakers.org/index.php?title=User:Dan9186/Tools/editcount.js&amp;action=history"/>
	<updated>2026-05-14T08:59:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.midsouthmakers.org/index.php?title=User:Dan9186/Tools/editcount.js&amp;diff=3602&amp;oldid=prev</id>
		<title>Dan9186: Created page with &quot;//Please leave this link: User:ais523/editcount.js //&lt;pre&gt;&lt;nowiki&gt;  //JavaScript edit counter. By User:ais523. //To install this, you can copy it into your monobook.js or...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.midsouthmakers.org/index.php?title=User:Dan9186/Tools/editcount.js&amp;diff=3602&amp;oldid=prev"/>
		<updated>2010-08-21T19:24:43Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;//Please leave this link: &lt;a href=&quot;/index.php?title=User:Ais523/editcount.js&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Ais523/editcount.js (page does not exist)&quot;&gt;User:ais523/editcount.js&lt;/a&gt; //&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;  //JavaScript edit counter. By &lt;a href=&quot;/index.php?title=User:Ais523&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Ais523 (page does not exist)&quot;&gt;User:ais523&lt;/a&gt;. //To install this, you can copy it into your monobook.js or...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//Please leave this link: [[User:ais523/editcount.js]]&lt;br /&gt;
//&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//JavaScript edit counter. By [[User:ais523]].&lt;br /&gt;
//To install this, you can copy it into your monobook.js or use a script-inclusion&lt;br /&gt;
//method (see WikiProject User Scripts). It produces a &amp;#039;count&amp;#039; tab on contribs pages&lt;br /&gt;
//that can be used to count a user&amp;#039;s edits. It won&amp;#039;t count more than 5000 edits in any&lt;br /&gt;
//namespace, to prevent excessive server load.&lt;br /&gt;
&lt;br /&gt;
function ecAddTab(url, name, id, title, key){&lt;br /&gt;
    return addPortletLink( &amp;#039;p-cactions&amp;#039;, url, name, id, title, key );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var aecwpajax;&lt;br /&gt;
// From [[WP:US]] mainpage (wpajax renamed to aecwpajax), some comments removed&lt;br /&gt;
aecwpajax={&lt;br /&gt;
        download:function(bundle) {&lt;br /&gt;
                var x = window.XMLHttpRequest ? new XMLHttpRequest()&lt;br /&gt;
                : window.ActiveXObject ? new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
                : false;&lt;br /&gt;
                &lt;br /&gt;
                if (x) {&lt;br /&gt;
                        x.onreadystatechange=function() {&lt;br /&gt;
                                x.readyState==4 &amp;amp;&amp;amp; aecwpajax.downloadComplete(x,bundle);&lt;br /&gt;
                        };&lt;br /&gt;
                        x.open(&amp;quot;GET&amp;quot;,bundle.url,true);&lt;br /&gt;
                        x.send(null); &lt;br /&gt;
                }&lt;br /&gt;
                return x;&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        downloadComplete:function(x,bundle) {&lt;br /&gt;
                x.status==200 &amp;amp;&amp;amp; ( bundle.onSuccess &amp;amp;&amp;amp; bundle.onSuccess(x,bundle) || true )&lt;br /&gt;
                || ( bundle.onFailure &amp;amp;&amp;amp; bundle.onFailure(x,bundle) || alert(x.statusText));&lt;br /&gt;
        }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function ecQuickCountComplete(xmlreq,data)&lt;br /&gt;
{&lt;br /&gt;
  alert(&amp;quot;Edit count: &amp;quot;+xmlreq.responseText.split(&amp;#039;editcount=&amp;quot;&amp;#039;)[1].split(&amp;#039;&amp;quot;&amp;#039;)[0]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook(function() {&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;Special&amp;quot;)!=-1&amp;amp;&amp;amp;location.href.indexOf(&amp;quot;Contributions&amp;quot;)!=-1)&lt;br /&gt;
    ecAddTab(&amp;quot;javascript:ais523quickcount()&amp;quot;,&amp;quot;quick count&amp;quot;,&amp;quot;ca-ais523qc&amp;quot;,&amp;quot;Quick Count&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
function ais523quickcount()&lt;br /&gt;
{&lt;br /&gt;
  var trg;&lt;br /&gt;
  trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  aecwpajax.download({url:&amp;#039;http://en.wikipedia.org/w/api.php?action=query&amp;amp;list=users&amp;amp;ususers=&amp;#039;&lt;br /&gt;
    +encodeURIComponent(trg)+&amp;#039;&amp;amp;usprop=editcount&amp;amp;format=xml&amp;#039;, onSuccess:ecQuickCountComplete});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
addOnloadHook(function() {&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;Special&amp;quot;)!=-1&amp;amp;&amp;amp;location.href.indexOf(&amp;quot;Contributions&amp;quot;)!=-1)&lt;br /&gt;
    ecAddTab(&amp;quot;javascript:ais523contrib()&amp;quot;,&amp;quot;count&amp;quot;,&amp;quot;ca-ais523count&amp;quot;,&amp;quot;Count&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
//This function was orignally taken from [[User:Lupin/autoedit.js]]. I&amp;#039;ve renamed it&lt;br /&gt;
//because I know many users use popups, and I don&amp;#039;t want to cause a naming conflict.&lt;br /&gt;
//Edited to decode + to space as well, and to use a decoding function that handles&lt;br /&gt;
//a broader range of characters.&lt;br /&gt;
function ecGetParamValue(paramName) {&lt;br /&gt;
  var cmdRe=RegExp(&amp;#039;[&amp;amp;?]&amp;#039;+paramName+&amp;#039;=([^&amp;amp;]*)&amp;#039;);&lt;br /&gt;
  var h=document.location;&lt;br /&gt;
  var m;&lt;br /&gt;
  if (m=cmdRe.exec(h)) {&lt;br /&gt;
    try { &lt;br /&gt;
      while(m[1].indexOf(&amp;#039;+&amp;#039;)!=-1)&lt;br /&gt;
      {&lt;br /&gt;
        m[1]=m[1].substr(0,m[1].indexOf(&amp;#039;+&amp;#039;))+&amp;quot; &amp;quot;+m[1].substr(m[1].indexOf(&amp;#039;+&amp;#039;)+1);&lt;br /&gt;
      }&lt;br /&gt;
      return decodeURIComponent(m[1]);&lt;br /&gt;
    } catch (someError) {}&lt;br /&gt;
  }&lt;br /&gt;
  return null;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function ais523contrib()&lt;br /&gt;
{&lt;br /&gt;
  var u;&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;?&amp;quot;)!=-1) u=ecGetParamValue(&amp;quot;target&amp;quot;);&lt;br /&gt;
  else u=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  location.href=&amp;quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;amp;limit=5000&amp;amp;target=&amp;quot;+u+&amp;quot;&amp;amp;ais523count=1&amp;amp;namespace=0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Analyses an edit summary and returns a two-letter code indicating what the edit seems&lt;br /&gt;
//to be doing. The edit summary is passed with parens round it, written in HTML. This&lt;br /&gt;
//doesn&amp;#039;t yet work for section edits, which will have to be parsed out in the main&lt;br /&gt;
//function.&lt;br /&gt;
function ecAnalyseSummary(edsum)&lt;br /&gt;
{&lt;br /&gt;
  edsum=edsum.toLowerCase();&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;→&amp;quot;)!=-1) return &amp;#039;se&amp;#039;; //section edit, can&amp;#039;t say any more than that&lt;br /&gt;
  if(edsum==&amp;quot;)&amp;quot;) return &amp;#039;se&amp;#039;; //section edit, no summary&lt;br /&gt;
  if(edsum.indexOf(&amp;quot; &amp;quot;)==0) edsum=&amp;quot;(&amp;quot;+edsum.substr(1); //came from section&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rvv&amp;quot;)==0) return &amp;#039;rv&amp;#039;; //vandalism revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rv vand&amp;quot;)==0) return &amp;#039;rv&amp;#039;; //vandalism revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(revv&amp;quot;)==0) return &amp;#039;rv&amp;#039;; //vandalism revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rev vand&amp;quot;)==0) return &amp;#039;rv&amp;#039;; //vandalism revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(revert vand&amp;quot;)==0) return &amp;#039;rv&amp;#039;; //vandalism revert&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rv &amp;quot;)==0&amp;amp;&amp;amp;edsum.indexOf(&amp;quot;vandal&amp;quot;)!=-1) return &amp;#039;rv&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rev &amp;quot;)==0&amp;amp;&amp;amp;edsum.indexOf(&amp;quot;vandal&amp;quot;)!=-1) return &amp;#039;rv&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rv &amp;quot;)==0) return &amp;#039;ro&amp;#039;; //other manual revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rev &amp;quot;)==0) return &amp;#039;ro&amp;#039;; //other manual revert&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(reverted &amp;quot;)==0) return &amp;#039;ra&amp;#039;; //automatic revert&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(revert to &amp;quot;)==0) return &amp;#039;ra&amp;#039;; //automatic revert, probably&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(revert edit(s) &amp;quot;)==0) return &amp;#039;ra&amp;#039;; //per [[User:Qxz]]&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(revert&amp;quot;)==0) return &amp;#039;ro&amp;#039;; //guess manual for time being;&lt;br /&gt;
                                               //I need more examples of this sort of rv&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rm &amp;quot;)==0) return &amp;#039;rm&amp;#039;; //removal&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rem &amp;quot;)==0) return &amp;#039;rm&amp;#039;; //removal&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(remove &amp;quot;)==0) return &amp;#039;rm&amp;#039;; //removal&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(rmv &amp;quot;)==0) return &amp;#039;rm&amp;#039;; //removal&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(redir&amp;quot;)==0) return &amp;#039;rd&amp;#039;; //redirect, including redir auto-summary&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(#redir&amp;quot;)==0) return &amp;#039;rd&amp;#039;; //redirect, including redir auto-summary&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(&amp;lt;a href=&amp;quot;/w&amp;#039;)==0) return &amp;#039;li&amp;#039;; //edit summary was a link&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;(&amp;lt;a href=&amp;#039;/w&amp;quot;)==0) return &amp;#039;li&amp;#039;; //edit summary was a link&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(&amp;lt;a href=/w&amp;#039;)==0) return &amp;#039;li&amp;#039;; //edit summary was a link&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{{welcome&amp;#039;)!=-1) return &amp;#039;we&amp;#039;; //welcome&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;welcome}}&amp;#039;)!=-1) return &amp;#039;we&amp;#039;; //welcome&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(welcome&amp;#039;)!=-1) return &amp;#039;we&amp;#039;; //welcome&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;welcome)&amp;#039;)!=-1) return &amp;#039;we&amp;#039;; //welcome&lt;br /&gt;
&lt;br /&gt;
  //User warnings are sorted by level. Other warnings and edit summaries are used;&lt;br /&gt;
  //this is just a small beginning for now.&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test0&amp;#039;)!=-1) return &amp;#039;w0&amp;#039;; //warning 1&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test1&amp;#039;)!=-1) return &amp;#039;w1&amp;#039;; //warning 1&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test2&amp;#039;)!=-1) return &amp;#039;w2&amp;#039;; //warning 2&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test3&amp;#039;)!=-1) return &amp;#039;w3&amp;#039;; //warning 3&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test4&amp;#039;)!=-1) return &amp;#039;w4&amp;#039;; //warning 4&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test5&amp;#039;)!=-1) return &amp;#039;w5&amp;#039;; //warning 5&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;test6&amp;#039;)!=-1) return &amp;#039;w6&amp;#039;; //warning 6&lt;br /&gt;
&lt;br /&gt;
  //Automated warnings&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(warning user using&amp;#039;)==0) return &amp;#039;wa&amp;#039;; //automated warning&lt;br /&gt;
&lt;br /&gt;
  //Prodding&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{prod&amp;#039;)!=-1) return &amp;#039;pr&amp;#039;; //prod&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(prod&amp;#039;)!=-1) return &amp;#039;pr&amp;#039;; //prod&lt;br /&gt;
&lt;br /&gt;
  //Some XfD-tagging summaries. So far I&amp;#039;ve only included the deletion-debates&lt;br /&gt;
  //I&amp;#039;m familiar with.&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{afd}}&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{afd1&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(afd)&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{tfd}}&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(tfd)&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{md}}&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{md1&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(mfd)&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{&amp;#039;+&amp;#039;{rfd}}&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(rfd)&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;for deletion&amp;#039;)!=-1) return &amp;#039;xf&amp;#039;; //XfD tagging&lt;br /&gt;
&lt;br /&gt;
  //Speedy deletions&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;db-&amp;#039;)!=-1) return &amp;#039;sp&amp;#039;; //Speedy&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;db|&amp;#039;)!=-1) return &amp;#039;sp&amp;#039;; //Speedy&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;speedy&amp;#039;)!=-1) return &amp;#039;sp&amp;#039;; //Speedy (probably)&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;{{delete}}&amp;#039;)!=-1) return &amp;#039;sp&amp;#039;; //override group de below&lt;br /&gt;
&lt;br /&gt;
  //Other deletion-related (removal of text, delete votes, etc.&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(del&amp;#039;)!=-1) return &amp;#039;de&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;delete&amp;#039;)!=-1) return &amp;#039;de&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(d)&amp;#039;)!=-1) return &amp;#039;de&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(d &amp;#039;)!=-1) return &amp;#039;de&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(-&amp;#039;)==0) return &amp;#039;de&amp;#039;; // as in -link&lt;br /&gt;
&lt;br /&gt;
  //Marked as additions&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(add &amp;#039;)!=-1) return &amp;#039;ad&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039; add &amp;#039;)!=-1) return &amp;#039;ad&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(add)&amp;#039;)!=-1) return &amp;#039;ad&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039; add)&amp;#039;)!=-1) return &amp;#039;ad&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(+&amp;#039;)==0) return &amp;#039;ad&amp;#039;; // as in +1&lt;br /&gt;
&lt;br /&gt;
  //Probable XfD votes to keep&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(k)&amp;#039;)!=-1) return &amp;#039;ke&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(keep&amp;#039;)!=-1) return &amp;#039;ke&amp;#039;;&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;&amp;#039;keep&amp;#039;&amp;quot;)!=-1) return &amp;#039;ke&amp;#039;; //for when the user just copies their&lt;br /&gt;
                                               //vote to the summary; also produced by&lt;br /&gt;
                                               //WikiVoter&lt;br /&gt;
&lt;br /&gt;
  //Votes somewhere to support&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(support&amp;#039;)!=-1) return &amp;#039;su&amp;#039;;&lt;br /&gt;
  //to oppose&lt;br /&gt;
  if(edsum.indexOf(&amp;#039;(oppose&amp;#039;)!=-1) return &amp;#039;op&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  if(edsum.indexOf(&amp;quot;{&amp;quot;+&amp;quot;{&amp;quot;)!=-1) return &amp;#039;ta&amp;#039;; //unknown, marked as a tag&lt;br /&gt;
&lt;br /&gt;
  if(edsum.length&amp;lt;=6) return &amp;#039;ab&amp;#039;; //unknown abbreviation &amp;lt;=4 chars + parens&lt;br /&gt;
&lt;br /&gt;
  return &amp;#039;uk&amp;#039;; //unknown&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//The main function; this actually counts the edits. The section at the end displays&lt;br /&gt;
//the results.&lt;br /&gt;
addOnloadHook(function() {&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;ais523count&amp;quot;)!=-1&amp;amp;&amp;amp;location.href.indexOf(&amp;quot;ais523countres&amp;quot;)==-1)&lt;br /&gt;
  {&lt;br /&gt;
    //Counting edits. Relies on the fact that &amp;lt;LI&amp;gt; with no arguments only appears&lt;br /&gt;
    //at the start of a contrib line.&lt;br /&gt;
    var contribs=0;&lt;br /&gt;
    var nosum=0,oldnosum;&lt;br /&gt;
    var sumloc;&lt;br /&gt;
    var sortcount=new Array();&lt;br /&gt;
    var bodyh=document.body.innerHTML;&lt;br /&gt;
    while(bodyh.indexOf(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)!=-1)&lt;br /&gt;
    {&lt;br /&gt;
      contribs++;&lt;br /&gt;
      oldnosum=nosum;&lt;br /&gt;
      bodyh=bodyh.substr(bodyh.indexOf(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)+4);&lt;br /&gt;
      sumloc=9999999;&lt;br /&gt;
      if(bodyh.indexOf(&amp;#039;&amp;lt;span class=&amp;quot;comment&amp;quot;&amp;gt;&amp;#039;)!=-1)&lt;br /&gt;
        sumloc=bodyh.indexOf(&amp;#039;&amp;lt;span class=&amp;quot;comment&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
      if(bodyh.indexOf(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)&amp;lt;sumloc)&lt;br /&gt;
        nosum++;&lt;br /&gt;
      if(bodyh.indexOf(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)==-1&amp;amp;&amp;amp;sumloc!=9999999) nosum--; //last edit on page&lt;br /&gt;
      if(nosum==oldnosum)&lt;br /&gt;
      { //Parse edit summary&lt;br /&gt;
        var edsum=bodyh.indexOf(&amp;#039;&amp;gt;&amp;#039;,sumloc);&lt;br /&gt;
        bodyh=bodyh.substr(edsum+1);&lt;br /&gt;
        sumloc=bodyh.indexOf(&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
        edsum=bodyh.substr(0,sumloc);&lt;br /&gt;
        edsum=ecAnalyseSummary(edsum);&lt;br /&gt;
        if(edsum==&amp;#039;se&amp;#039;)&lt;br /&gt;
        {&lt;br /&gt;
          //jump to next &amp;lt;/span&amp;gt;&lt;br /&gt;
          bodyh=bodyh.substr(sumloc+7);&lt;br /&gt;
          sumloc=bodyh.indexOf(&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
          edsum=bodyh.substr(0,sumloc);&lt;br /&gt;
          edsum=ecAnalyseSummary(edsum);          &lt;br /&gt;
        }&lt;br /&gt;
        if(sortcount[edsum]==undefined) sortcount[edsum]=0;&lt;br /&gt;
        sortcount[edsum]++;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    bodyh=document.body.innerHTML;&lt;br /&gt;
    //This is the way IE counts it.&lt;br /&gt;
    while(bodyh.indexOf(&amp;quot;&amp;lt;LI&amp;gt;&amp;quot;)!=-1)&lt;br /&gt;
    {&lt;br /&gt;
      contribs++;&lt;br /&gt;
      oldnosum=nosum;&lt;br /&gt;
      bodyh=bodyh.substr(bodyh.indexOf(&amp;quot;&amp;lt;LI&amp;gt;&amp;quot;)+4);&lt;br /&gt;
      sumloc=9999999;&lt;br /&gt;
      if(bodyh.indexOf(&amp;#039;&amp;lt;SPAN CLASS=&amp;quot;comment&amp;quot;&amp;gt;&amp;#039;)!=-1) //a plausible format&lt;br /&gt;
        sumloc=bodyh.indexOf(&amp;#039;&amp;lt;SPAN CLASS=&amp;quot;comment&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
      if(bodyh.indexOf(&amp;#039;&amp;lt;SPAN class=comment&amp;gt;&amp;#039;)!=-1) //The IE method&lt;br /&gt;
        sumloc=bodyh.indexOf(&amp;#039;&amp;lt;SPAN class=comment&amp;gt;&amp;#039;);&lt;br /&gt;
      if(bodyh.indexOf(&amp;quot;&amp;lt;LI&amp;gt;&amp;quot;)&amp;lt;sumloc)&lt;br /&gt;
        nosum++;&lt;br /&gt;
      if(bodyh.indexOf(&amp;quot;&amp;lt;LI&amp;gt;&amp;quot;)==-1&amp;amp;&amp;amp;sumloc!=9999999) nosum--; //last edit on page&lt;br /&gt;
      if(nosum==oldnosum)&lt;br /&gt;
      { //Parse edit summary&lt;br /&gt;
        var edsum=bodyh.indexOf(&amp;#039;&amp;gt;&amp;#039;,sumloc);&lt;br /&gt;
        bodyh=bodyh.substr(edsum+1);&lt;br /&gt;
        sumloc=bodyh.indexOf(&amp;quot;&amp;lt;/SPAN&amp;gt;&amp;quot;);&lt;br /&gt;
        edsum=bodyh.substr(0,sumloc);&lt;br /&gt;
        edsum=ecAnalyseSummary(edsum);&lt;br /&gt;
        if(edsum==&amp;#039;se&amp;#039;)&lt;br /&gt;
        {&lt;br /&gt;
          //jump to next &amp;lt;/SPAN&amp;gt;&lt;br /&gt;
          bodyh=bodyh.substr(sumloc+7);&lt;br /&gt;
          sumloc=bodyh.indexOf(&amp;quot;&amp;lt;/SPAN&amp;gt;&amp;quot;);&lt;br /&gt;
          edsum=bodyh.substr(0,sumloc);&lt;br /&gt;
          edsum=ecAnalyseSummary(edsum);          &lt;br /&gt;
        }&lt;br /&gt;
        if(sortcount[edsum]==undefined) sortcount[edsum]=0;&lt;br /&gt;
        sortcount[edsum]++;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    var namespace=ecGetParamValue(&amp;quot;namespace&amp;quot;);&lt;br /&gt;
    var scres=&amp;quot;&amp;quot;;&lt;br /&gt;
    var scit;&lt;br /&gt;
    for (scit in sortcount)&lt;br /&gt;
    {&lt;br /&gt;
      scres+=&amp;quot;&amp;amp;cns&amp;quot;+namespace+scit+&amp;quot;=&amp;quot;+sortcount[scit];&lt;br /&gt;
    }&lt;br /&gt;
    if(namespace!=&amp;quot;101&amp;quot;) //Portal talk&lt;br /&gt;
      location.href=location.href.substr(0,location.href.lastIndexOf(&amp;quot;namespace=&amp;quot;))+&lt;br /&gt;
        &amp;quot;countns&amp;quot;+namespace+&amp;quot;=&amp;quot;+contribs+scres+&amp;quot;&amp;amp;countnosum&amp;quot;+namespace+&amp;quot;=&amp;quot;+nosum+&amp;quot;&amp;amp;namespace=&amp;quot;+(namespace==&amp;quot;15&amp;quot;?&amp;quot;100&amp;quot;:1+new Number(namespace));&lt;br /&gt;
    else&lt;br /&gt;
    { &lt;br /&gt;
      var lh=location.href;&lt;br /&gt;
      location.href=&amp;quot;http://en.wikipedia.org/wiki/User:ais523/results?ais523countres=&amp;quot;+lh+&amp;quot;&amp;amp;countns101=&amp;quot;+contribs+&amp;quot;&amp;amp;countnosum101=&amp;quot;+nosum+scres;&lt;br /&gt;
      //You can use a page other than [[User:ais523/results]] as long as it&amp;#039;s in the&lt;br /&gt;
      //correct format.&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if(location.href.indexOf(&amp;quot;ais523countres=&amp;quot;)!=-1)&lt;br /&gt;
  { //This relies on the template page [[User:ais523/results]] being in the&lt;br /&gt;
    //correct format.&lt;br /&gt;
    document.getElementById(&amp;quot;ais523echead&amp;quot;).style.display=&amp;quot;none&amp;quot;;&lt;br /&gt;
    var h=document.getElementById(&amp;quot;ais523ecbody&amp;quot;).innerHTML;&lt;br /&gt;
    while(h.indexOf(&amp;quot;((&amp;quot;)!=-1)&lt;br /&gt;
    {&lt;br /&gt;
      var i=h.indexOf(&amp;quot;((&amp;quot;);&lt;br /&gt;
      var f=h.substr(0,i);&lt;br /&gt;
      var g=h.substr(i+2,h.indexOf(&amp;quot;))&amp;quot;)-i-2);&lt;br /&gt;
      if(g.indexOf(&amp;#039;#d&amp;#039;)==0)&lt;br /&gt;
      { //delete unwanted lines to remove clutter&lt;br /&gt;
        var j=h.indexOf(&amp;quot;((/#d))&amp;quot;);&lt;br /&gt;
        var v=false;&lt;br /&gt;
        j=h.substr(i+6,j-i-2);&lt;br /&gt;
        while(j.indexOf(&amp;quot;((&amp;quot;)!=-1)&lt;br /&gt;
        {&lt;br /&gt;
          var ii=j.indexOf(&amp;quot;((&amp;quot;);&lt;br /&gt;
          var gg=j.substr(ii+2,j.indexOf(&amp;quot;))&amp;quot;)-ii-2);&lt;br /&gt;
          j=j.substr(ii+2);&lt;br /&gt;
          gg=ecGetParamValue(gg);&lt;br /&gt;
          if(gg!=null&amp;amp;&amp;amp;gg!=0&amp;amp;&amp;amp;gg!=&amp;#039;0&amp;#039;) v=true;&lt;br /&gt;
        }&lt;br /&gt;
        if(v) g=&amp;quot;&amp;quot;;&lt;br /&gt;
        else {h=h.substr(h.indexOf(&amp;quot;((/#d&amp;quot;)); g=&amp;quot;&amp;quot;;}&lt;br /&gt;
      }&lt;br /&gt;
      else if(g.indexOf(&amp;quot;/#d&amp;quot;)==0)&lt;br /&gt;
        g=&amp;quot;&amp;quot;;&lt;br /&gt;
      else if(g.indexOf(&amp;quot;total&amp;quot;)==0)&lt;br /&gt;
      {&lt;br /&gt;
        g=new Number(ecGetParamValue(&amp;#039;countns0&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns1&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns2&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns3&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns4&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns5&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns6&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns7&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns8&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns9&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns10&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns11&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns12&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns13&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns14&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns15&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns100&amp;#039;));&lt;br /&gt;
        g+=new Number(ecGetParamValue(&amp;#039;countns101&amp;#039;));&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
        g=ecGetParamValue(g);&lt;br /&gt;
      if(g==null) g=&amp;#039;0&amp;#039;;&lt;br /&gt;
      f+=g+h.substr(h.indexOf(&amp;quot;))&amp;quot;)+2);&lt;br /&gt;
      h=f;&lt;br /&gt;
    }&lt;br /&gt;
    document.getElementById(&amp;quot;ais523ecbody&amp;quot;).innerHTML=h;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
//JavaScript diff finder. By [[User:ais523]]&lt;br /&gt;
addOnloadHook(function() {&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;Special&amp;quot;)!=-1&amp;amp;&amp;amp;location.href.indexOf(&amp;quot;Contributions&amp;quot;)!=-1)&lt;br /&gt;
  {&lt;br /&gt;
    ecAddTab(&amp;quot;javascript:ais523l1000()&amp;quot;,&amp;quot;last 1000&amp;quot;,&amp;quot;ca-ais523sort&amp;quot;,&amp;quot;Random diffs from recent edits&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
    var inner = document.getElementById(&amp;#039;ca-ais523sort&amp;#039;);&lt;br /&gt;
    if( skin == &amp;quot;vector&amp;quot;) inner = inner.firstChild;&lt;br /&gt;
    inner.innerHTML= &amp;quot;last &amp;lt;A HREF=&amp;#039;javascript:ais523l1000()&amp;#039;&amp;gt;1000&amp;lt;/A&amp;gt; &amp;quot;+&lt;br /&gt;
      &amp;quot;&amp;lt;A HREF=&amp;#039;javascript:ais523l2000()&amp;#039;&amp;gt;2000&amp;lt;/A&amp;gt;&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;&amp;amp;ais523sort=last&amp;quot;)!=-1)&lt;br /&gt;
    window.setTimeout(&amp;quot;ais523sort();&amp;quot;,500); //work around IE bug&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
function ais523l1000()&lt;br /&gt;
{&lt;br /&gt;
  var trg;&lt;br /&gt;
  trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  location.href=&amp;quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;quot;+&lt;br /&gt;
    &amp;quot;&amp;amp;limit=1000&amp;amp;target=&amp;quot;+trg+&amp;quot;&amp;amp;ais523sort=last1000&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ais523l2000()&lt;br /&gt;
{&lt;br /&gt;
  var trg;&lt;br /&gt;
  trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  location.href=&amp;quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;quot;+&lt;br /&gt;
    &amp;quot;&amp;amp;limit=2000&amp;amp;target=&amp;quot;+trg+&amp;quot;&amp;amp;ais523sort=last2000&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ais523sort()&lt;br /&gt;
{&lt;br /&gt;
  var s=document.body.innerHTML;&lt;br /&gt;
  var re=/href=&amp;quot;(\/w\/index\.php\?title=([^&amp;quot;/]*)((\/[^&amp;quot;]*)?)&amp;amp;amp;diff=prev&amp;amp;amp;oldid=[0-9]*)&amp;quot;/i;&lt;br /&gt;
  var a=new Array();&lt;br /&gt;
  var b=new Array();&lt;br /&gt;
  var c=new Array();&lt;br /&gt;
  var nc=new Array();&lt;br /&gt;
  var d=new Array();&lt;br /&gt;
  while(s.search(re)!=-1)&lt;br /&gt;
  {&lt;br /&gt;
    var m=s.match(re);&lt;br /&gt;
    var m2=&amp;quot;&amp;quot;;&lt;br /&gt;
    var q;&lt;br /&gt;
    if(m[3]!=&amp;#039;&amp;#039;) m2=&amp;quot; subpages&amp;quot;;&lt;br /&gt;
    m[4]=decodeURIComponent(m[2])+m2;&lt;br /&gt;
    m[5]=m2;&lt;br /&gt;
    if(c[m[4]]==undefined) c[m[4]]=0;&lt;br /&gt;
    if(c[m[4]]&amp;lt;10) q=c[m[4]];&lt;br /&gt;
    else if(Math.random()&amp;lt;10/(c[m[4]]+1)) q=Math.floor(Math.random()*10);&lt;br /&gt;
    else q=-1;&lt;br /&gt;
    c[m[4]]++;&lt;br /&gt;
    if(d[m[4]]==undefined) d[m[4]]=new Array();&lt;br /&gt;
    if(q&amp;gt;-1) d[m[4]][q]=m;&lt;br /&gt;
    s=s.substr(s.search(re)+2);&lt;br /&gt;
  }&lt;br /&gt;
  var i;&lt;br /&gt;
  var j;&lt;br /&gt;
  for(i in c)&lt;br /&gt;
  {&lt;br /&gt;
    if(c[i]&amp;lt;5)&lt;br /&gt;
    {&lt;br /&gt;
      for(j in d[i])&lt;br /&gt;
      {&lt;br /&gt;
        var ns=&amp;quot;(main)&amp;quot;;&lt;br /&gt;
        var q;&lt;br /&gt;
        if(d[i][j][4].indexOf(&amp;quot;:&amp;quot;)!=-1) ns=d[i][j][4].substr(0,d[i][j][4].indexOf(&amp;quot;:&amp;quot;));&lt;br /&gt;
        m=d[i][j];&lt;br /&gt;
        m[2]=&amp;quot;Others in namespace &amp;quot;+ns;&lt;br /&gt;
        m[3]=&amp;quot;&amp;quot;;&lt;br /&gt;
        m[4]=m[2];&lt;br /&gt;
        m[5]=&amp;quot;&amp;quot;;&lt;br /&gt;
        if(nc[m[4]]==undefined) nc[m[4]]=0;&lt;br /&gt;
        if(nc[m[4]]&amp;lt;10) q=nc[m[4]];&lt;br /&gt;
        else if(Math.random()&amp;lt;10/(nc[m[4]]+1)) q=Math.floor(Math.random()*10);&lt;br /&gt;
        else q=-1;&lt;br /&gt;
        nc[m[4]]++;&lt;br /&gt;
        if(d[m[4]]==undefined) d[m[4]]=new Array();&lt;br /&gt;
        if(q&amp;gt;-1) d[m[4]][q]=m;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  for(i in d)&lt;br /&gt;
  {&lt;br /&gt;
    if(nc[i]!=undefined||c[i]&amp;gt;=5)&lt;br /&gt;
    for(j in d[i])&lt;br /&gt;
    {&lt;br /&gt;
      var m=d[i][j];&lt;br /&gt;
      m[2]=decodeURIComponent(m[2]);&lt;br /&gt;
      if(a[m[4]]==undefined) a[m[4]]=&amp;quot;*[[:&amp;quot;+m[2].split(&amp;quot;_&amp;quot;).join(&amp;quot; &amp;quot;)+&amp;quot;]]&amp;quot;+m[5]+&amp;quot;:&amp;quot;;&lt;br /&gt;
      if(b[m[4]]==undefined) b[m[4]]=&amp;quot;&amp;lt;LI&amp;gt;&amp;lt;A HREF=&amp;#039;http://en.wikipedia.org/wiki/&amp;quot;+&lt;br /&gt;
        m[2]+&amp;quot;&amp;#039;&amp;gt;&amp;quot;+m[2].split(&amp;quot;_&amp;quot;).join(&amp;quot; &amp;quot;)+&amp;quot;&amp;lt;/A&amp;gt;&amp;quot;+m[5]+&amp;quot;:&amp;quot;;&lt;br /&gt;
      a[m[4]]+=&amp;quot; [http://en.wikipedia.org&amp;quot;+m[1]+&amp;quot;]&amp;quot;;&lt;br /&gt;
      b[m[4]]+=&amp;quot; &amp;lt;A HREF=&amp;#039;http://en.wikipedia.org&amp;quot;+m[1]+&amp;quot;&amp;#039;&amp;gt;[&amp;quot;+(new Number(j)+1)+&amp;quot;]&amp;lt;/A&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  var e=0;&lt;br /&gt;
  for(i in c)&lt;br /&gt;
  {&lt;br /&gt;
    if(c[i]&amp;gt;=5)&lt;br /&gt;
    {&lt;br /&gt;
      a[i]+=(c[i]&amp;gt;10?&amp;quot;...&amp;quot;:&amp;quot;&amp;quot;)+&amp;quot; (&amp;quot;+c[i]+&amp;quot; edit(s))\n&amp;quot;;&lt;br /&gt;
      b[i]+=(c[i]&amp;gt;10?&amp;quot;...&amp;quot;:&amp;quot;&amp;quot;)+&amp;quot; (&amp;quot;+c[i]+&amp;quot; edit(s))\n&amp;quot;;&lt;br /&gt;
      if(c[i]&amp;gt;e) e=c[i]+1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  for(i in nc)&lt;br /&gt;
  {&lt;br /&gt;
    if(nc[i]&amp;gt;=5)&lt;br /&gt;
    {&lt;br /&gt;
      a[i]+=(nc[i]&amp;gt;10?&amp;quot;...&amp;quot;:&amp;quot;&amp;quot;)+&amp;quot; (&amp;quot;+nc[i]+&amp;quot; edit(s))\n&amp;quot;;&lt;br /&gt;
      b[i]+=(nc[i]&amp;gt;10?&amp;quot;...&amp;quot;:&amp;quot;&amp;quot;)+&amp;quot; (&amp;quot;+nc[i]+&amp;quot; edit(s))\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  var trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  var h=&amp;quot;&amp;lt;H1&amp;gt;Contribution breakdown for &amp;lt;A HREF=&amp;#039;http://en.wikipedia.org/wiki/User:&amp;quot;+trg;&lt;br /&gt;
  h+=&amp;quot;&amp;#039;&amp;gt;User:&amp;quot;+trg+&amp;quot;&amp;lt;/A&amp;gt;&amp;lt;/H1&amp;gt;\n&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;H2&amp;gt;HTML output&amp;lt;/H2&amp;gt;&amp;lt;UL&amp;gt;&amp;quot;;&lt;br /&gt;
  var j=e;&lt;br /&gt;
  while(--j&amp;gt;=5)&lt;br /&gt;
  {&lt;br /&gt;
    for(i in c)&lt;br /&gt;
    {&lt;br /&gt;
      if(c[i]==j) h+=b[i];&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  for(i in nc) if(nc[i]&amp;gt;=5) h+=b[i];&lt;br /&gt;
  j=e;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/UL&amp;gt;\n&amp;lt;H2&amp;gt;Wikimarkup output&amp;lt;/H2&amp;gt;&amp;lt;pr&amp;quot;+&amp;quot;e&amp;gt;&amp;quot;;&lt;br /&gt;
  while(--j&amp;gt;=5)&lt;br /&gt;
  {&lt;br /&gt;
    for(i in c)&lt;br /&gt;
    {&lt;br /&gt;
      if(c[i]==j) h+=a[i];&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  for(i in nc) if(nc[i]&amp;gt;=5) h+=a[i];&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/p&amp;quot;+&amp;quot;re&amp;gt;&amp;quot;;&lt;br /&gt;
  document.body.innerHTML=h;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Log counter.&lt;br /&gt;
function ais523log()&lt;br /&gt;
{&lt;br /&gt;
  location.href=&amp;quot;http://en.wikipedia.org/w/index.php?title=Special:Log&amp;amp;type=&amp;amp;user=&amp;quot;+&lt;br /&gt;
    document.getElementById(&amp;#039;user&amp;#039;).value+&amp;quot;&amp;amp;page=&amp;amp;limit=5000&amp;amp;offset=0&amp;amp;ais523log=count&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook(function() {&lt;br /&gt;
  if(location.href.indexOf(&amp;quot;ais523log&amp;quot;)!=-1&amp;amp;&amp;amp;location.href.indexOf(&amp;quot;ais523logres&amp;quot;)==-1)&lt;br /&gt;
  {&lt;br /&gt;
    var h=document.body.innerHTML;&lt;br /&gt;
    var i;&lt;br /&gt;
    var j=new Array();&lt;br /&gt;
    h=h.toLowerCase().split(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;);&lt;br /&gt;
    i=h.length;&lt;br /&gt;
    while(--i)&lt;br /&gt;
    {&lt;br /&gt;
      if(h[i].indexOf(&amp;quot;block&amp;lt;/a&amp;gt;)&amp;quot;)!=-1)&lt;br /&gt;
        h[i]=h[i].split(&amp;quot;block&amp;lt;/a&amp;gt;)&amp;quot;)[1];&lt;br /&gt;
      else&lt;br /&gt;
        h[i]=h[i].split(&amp;quot;contribs&amp;lt;/a&amp;gt;)&amp;quot;)[1];&lt;br /&gt;
      h[i]=h[i].split(&amp;quot;&amp;lt;&amp;quot;)[0].split(&amp;#039;&amp;quot;&amp;#039;).join(&amp;quot;&amp;quot;).split(&amp;quot; &amp;quot;).join(&amp;quot;&amp;quot;);&lt;br /&gt;
      if(h[i]==&amp;quot;&amp;quot;&amp;amp;&amp;amp;i+1==h.length) h[i]=&amp;quot;newuseraccount&amp;quot;;&lt;br /&gt;
      else if(h[i]==&amp;quot;&amp;quot;) h[i]=&amp;quot;renamed&amp;quot;; //renames and original account creation are both &amp;quot;&amp;quot;&lt;br /&gt;
      if(j[h[i]]==null||j[h[i]]==undefined) j[h[i]]=0;&lt;br /&gt;
      j[h[i]]++;&lt;br /&gt;
    }&lt;br /&gt;
    h=&amp;quot;&amp;quot;;&lt;br /&gt;
    for(i in j)&lt;br /&gt;
      h+=&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;+i+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;+j[i]+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
    location.href=&amp;quot;http://en.wikipedia.org/wiki/User:ais523/logresults?ais523logres=&amp;quot;+&lt;br /&gt;
      encodeURIComponent(h);&lt;br /&gt;
  }&lt;br /&gt;
  else if(location.href.indexOf(&amp;quot;ais523logres&amp;quot;)!=-1)&lt;br /&gt;
    document.getElementById(&amp;quot;ais523ecbody&amp;quot;).innerHTML=&lt;br /&gt;
      &amp;quot;&amp;lt;table&amp;gt;&amp;quot;+decodeURIComponent(ecGetParamValue(&amp;#039;ais523logres&amp;#039;))+&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;&lt;br /&gt;
  else if(wgPageName==&amp;quot;Special:Log&amp;quot;)&lt;br /&gt;
    ecAddTab(&amp;quot;javascript:ais523log()&amp;quot;,&amp;quot;count&amp;quot;,&amp;quot;ca-ais523log&amp;quot;,&amp;quot;Count&amp;quot;,&amp;quot;&amp;quot;);    &lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Contribution day/time counter&lt;br /&gt;
addOnloadHook(function(){&lt;br /&gt;
  if(wgPageName==&amp;quot;Special:Contributions&amp;quot;)&lt;br /&gt;
    ecAddTab(&amp;quot;javascript:ais523dtc()&amp;quot;,&amp;quot;day/time&amp;quot;,&amp;quot;ca-ais523dtc&amp;quot;,&amp;quot;Summarizes what times on what days this editor edits&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
var ais523dtc_counts=null;&lt;br /&gt;
var ais523dtc_max=0;&lt;br /&gt;
var ais523dtc_rschn=false;&lt;br /&gt;
var ais523dtc_prog=0;&lt;br /&gt;
var ais523drc_sg=false;&lt;br /&gt;
&lt;br /&gt;
var ais523dtc_nybbles=new Array(&amp;#039;0&amp;#039;,&amp;#039;1&amp;#039;,&amp;#039;2&amp;#039;,&amp;#039;3&amp;#039;,&amp;#039;4&amp;#039;,&amp;#039;5&amp;#039;,&amp;#039;6&amp;#039;,&amp;#039;7&amp;#039;,&amp;#039;8&amp;#039;,&amp;#039;9&amp;#039;,&amp;#039;A&amp;#039;,&amp;#039;B&amp;#039;,&amp;#039;C&amp;#039;,&amp;#039;D&amp;#039;,&amp;#039;E&amp;#039;,&amp;#039;F&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
function ais523dtc_v(n)&lt;br /&gt;
{&lt;br /&gt;
  if(ais523dtc_max&amp;lt;n)&lt;br /&gt;
  {&lt;br /&gt;
    ais523dtc_max=n;&lt;br /&gt;
    ais523dtc_rschn=true;&lt;br /&gt;
  }&lt;br /&gt;
  var f=n/ais523dtc_max;&lt;br /&gt;
  var r=0, g=0;&lt;br /&gt;
  if(f&amp;lt;1/3) g=Math.floor(f*3*255);&lt;br /&gt;
  else if(f&amp;lt;2/3) {g=255; r=Math.floor((f*3-1)*255);}&lt;br /&gt;
  else {r=255; g=Math.floor((3-f*3)*255);}&lt;br /&gt;
  return ais523dtc_nybbles[Math.floor(r/16)]+ais523dtc_nybbles[r%16]+&lt;br /&gt;
         ais523dtc_nybbles[Math.floor(g/16)]+ais523dtc_nybbles[g%16]+&amp;quot;00&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ais523dtcStep(xmlreq,data)&lt;br /&gt;
{&lt;br /&gt;
  var trg;&lt;br /&gt;
  trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  var a=xmlreq.responseText.split(&amp;#039;timestamp=&amp;quot;&amp;#039;)&lt;br /&gt;
  var i=a.length;&lt;br /&gt;
  ais523dtc_prog+=i-1;&lt;br /&gt;
  while(--i)&lt;br /&gt;
  {&lt;br /&gt;
    var q=a[i].split(&amp;#039;&amp;quot;&amp;#039;)[0];&lt;br /&gt;
    var d=new Date();&lt;br /&gt;
    d.setUTCFullYear(+q.substr(0,4));&lt;br /&gt;
    d.setUTCMonth((+q.substr(5,2))-1);&lt;br /&gt;
    d.setUTCDate(+q.substr(8,2));&lt;br /&gt;
    var wday=d.getUTCDay();&lt;br /&gt;
    var hper=4*+q.substr(11,2)+Math.floor((+q.substr(14,2))/15);&lt;br /&gt;
    document.getElementById(&amp;#039;a5w&amp;#039;+wday+&amp;#039;q&amp;#039;+hper).style.backgroundColor=&lt;br /&gt;
      &amp;quot;#&amp;quot;+ais523dtc_v(++ais523dtc_counts[wday*96+hper]);&lt;br /&gt;
  }&lt;br /&gt;
  if(ais523dtc_rschn)&lt;br /&gt;
  {&lt;br /&gt;
    ais523dtc_rschn=false;&lt;br /&gt;
    var wday=7;&lt;br /&gt;
    while(wday--)&lt;br /&gt;
    {&lt;br /&gt;
      var hper=96;&lt;br /&gt;
      while(hper--)&lt;br /&gt;
        document.getElementById(&amp;#039;a5w&amp;#039;+wday+&amp;#039;q&amp;#039;+hper).style.backgroundColor=&lt;br /&gt;
          &amp;quot;#&amp;quot;+ais523dtc_v(ais523dtc_counts[wday*96+hper]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  document.getElementById(&amp;#039;a5dtcp&amp;#039;).innerHTML=ais523dtc_prog;&lt;br /&gt;
  document.getElementById(&amp;#039;a5dtck1&amp;#039;).innerHTML=Math.floor(ais523dtc_max/3);&lt;br /&gt;
  document.getElementById(&amp;#039;a5dtck2&amp;#039;).innerHTML=Math.floor(2*ais523dtc_max/3);&lt;br /&gt;
  document.getElementById(&amp;#039;a5dtck3&amp;#039;).innerHTML=ais523dtc_max;&lt;br /&gt;
  if(xmlreq.responseText.indexOf(&amp;quot;query-continue&amp;quot;)==-1) // finished&lt;br /&gt;
  {&lt;br /&gt;
    ais523dtc_sg=true;&lt;br /&gt;
    document.getElementById(&amp;#039;a5dtco&amp;#039;).innerHTML=&amp;#039;(finished)&amp;#039;;&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  aecwpajax.download({url:&amp;#039;http://en.wikipedia.org/w/api.php?action=query&amp;amp;list=usercontribs&amp;amp;&amp;#039;+&lt;br /&gt;
    &amp;#039;ucuser=&amp;#039;+encodeURIComponent(trg)+&amp;#039;&amp;amp;ucprop=timestamp&amp;amp;format=xml&amp;amp;uclimit=100&amp;amp;ucstart=&amp;#039;+&lt;br /&gt;
    xmlreq.responseText.split(&amp;#039;ucstart=&amp;quot;&amp;#039;)[1].split(&amp;#039;&amp;quot;&amp;#039;)[0],onSuccess:ais523dtcStep});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ais523dtcook(xmlreq,data)&lt;br /&gt;
{&lt;br /&gt;
  if(!ais523dtc_sg) return;&lt;br /&gt;
  document.getElementById(&amp;#039;a5dtco&amp;#039;).innerHTML=&amp;quot;(out of an overestimated &amp;quot;+&lt;br /&gt;
    xmlreq.responseText.split(&amp;#039;editcount=&amp;quot;&amp;#039;)[1].split(&amp;#039;&amp;quot;&amp;#039;)[0]+&amp;quot;)&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ais523dtc()&lt;br /&gt;
{&lt;br /&gt;
  var trg;&lt;br /&gt;
  trg=ecGetParamValue(&amp;#039;target&amp;#039;);&lt;br /&gt;
  if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&amp;quot;/&amp;quot;)+1);&lt;br /&gt;
  var h=&amp;quot;&amp;lt;table class=&amp;#039;wikitable&amp;#039;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;amp;nbsp;&amp;lt;/th&amp;gt;&amp;quot;;&lt;br /&gt;
  var i=0;&lt;br /&gt;
  while(i&amp;lt;24) h+=&amp;quot;&amp;lt;th colspan=4&amp;gt;&amp;quot;+i++ +&amp;quot;&amp;lt;/th&amp;gt;&amp;quot;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Sun&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w0q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Mon&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w1q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Tue&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w2q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Wed&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w3q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Thu&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w4q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Fri&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w5q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Sat&amp;lt;/th&amp;gt;&amp;quot;; i=0; while(i&amp;lt;96) h+=&amp;quot;&amp;lt;td id=&amp;#039;a5w6q&amp;quot;+i++ +&amp;quot;&amp;#039;&amp;gt;&amp;amp;thinsp;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;div&amp;gt;Processed &amp;lt;span id=&amp;#039;a5dtcp&amp;#039;&amp;gt;0&amp;lt;/span&amp;gt; edits so far &amp;lt;span id=&amp;#039;a5dtco&amp;#039;&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;. Key: &amp;lt;span style=&amp;#039;background-color:#000000&amp;#039;&amp;gt;0 edits, &amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;span style=&amp;#039;background-color:#00FF00&amp;#039;&amp;gt;&amp;lt;span id=&amp;#039;a5dtck1&amp;#039;&amp;gt;0&amp;lt;/span&amp;gt; edits, &amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;span style=&amp;#039;background-color:#FFFF00&amp;#039;&amp;gt;&amp;lt;span id=&amp;#039;a5dtck2&amp;#039;&amp;gt;0&amp;lt;/span&amp;gt; edits, &amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  h+=&amp;quot;&amp;lt;span style=&amp;#039;background-color:#FF0000&amp;#039;&amp;gt;&amp;lt;span id=&amp;#039;a5dtck3&amp;#039;&amp;gt;0&amp;lt;/span&amp;gt; edits.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
  document.getElementById(&amp;#039;contentSub&amp;#039;).innerHTML=h;&lt;br /&gt;
  if(ais523dtc_counts==null) ais523dtc_counts=new Array();&lt;br /&gt;
  ais523dtc_max=null;&lt;br /&gt;
  ais523dtc_prog=0;&lt;br /&gt;
  ais523dtc_sg=true;&lt;br /&gt;
  i=7*96; while(i--) ais523dtc_counts[i]=0;&lt;br /&gt;
  aecwpajax.download({url:&amp;#039;http://en.wikipedia.org/w/api.php?action=query&amp;amp;list=usercontribs&amp;amp;&amp;#039;+&lt;br /&gt;
    &amp;#039;ucuser=&amp;#039;+encodeURIComponent(trg)+&amp;#039;&amp;amp;ucprop=timestamp&amp;amp;format=xml&amp;amp;uclimit=100&amp;#039;,&lt;br /&gt;
    onSuccess:ais523dtcStep});&lt;br /&gt;
  aecwpajax.download({url:&amp;#039;http://en.wikipedia.org/w/api.php?action=query&amp;amp;list=users&amp;amp;ususers=&amp;#039;&lt;br /&gt;
    +encodeURIComponent(trg)+&amp;#039;&amp;amp;usprop=editcount&amp;amp;format=xml&amp;#039;, onSuccess:ais523dtcook});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
//[[Category:Wikipedia scripts]]&lt;/div&gt;</summary>
		<author><name>Dan9186</name></author>
	</entry>
</feed>