<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?action=history&amp;feed=atom</id>
	<title>User:DarkMatterMan4500/userinfo.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?action=history"/>
	<updated>2026-05-25T12:44:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?diff=5366&amp;oldid=prev</id>
		<title>DarkMatterMan4500 at 11:52, 25 May 2026</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?diff=5366&amp;oldid=prev"/>
		<updated>2026-05-25T11:52:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:52, 25 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// based on http://en.wikipedia.org/wiki/User:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fran Rogers&lt;/del&gt;/dimorphism.js&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// based on http://en.wikipedia.org/wiki/User:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fran_Rogers&lt;/ins&gt;/dimorphism.js&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and on http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// and on http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DarkMatterMan4500</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?diff=5045&amp;oldid=prev</id>
		<title>DarkMatterMan4500: Created page with &quot;// based on http://en.wikipedia.org/wiki/User:Fran Rogers/dimorphism.js // and on http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js  function UserinfoJsFormatQty(qty, singular, plural) {     return String(qty).replace(/\d{1,3}(?=(\d{3})+(?!\d))/g, &quot;$&amp;,&quot;) + &quot;\u00a0&quot; + (qty == 1 ? singular : plural); }  function UserinfoJsFormatDateRel(old) { // The code below requires the computer&#039;s clock to be set correctly.             var age = new Date().getTime() - old.getT...&quot;</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/User:DarkMatterMan4500/userinfo.js?diff=5045&amp;oldid=prev"/>
		<updated>2026-05-18T16:07:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// based on http://en.wikipedia.org/wiki/User:Fran Rogers/dimorphism.js // and on http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js  function UserinfoJsFormatQty(qty, singular, plural) {     return String(qty).replace(/\d{1,3}(?=(\d{3})+(?!\d))/g, &amp;quot;$&amp;amp;,&amp;quot;) + &amp;quot;\u00a0&amp;quot; + (qty == 1 ? singular : plural); }  function UserinfoJsFormatDateRel(old) { // The code below requires the computer&amp;#039;s clock to be set correctly.             var age = new Date().getTime() - old.getT...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// based on http://en.wikipedia.org/wiki/User:Fran Rogers/dimorphism.js&lt;br /&gt;
// and on http://en.wikipedia.org/wiki/User:Splarka/sysopdectector.js&lt;br /&gt;
&lt;br /&gt;
function UserinfoJsFormatQty(qty, singular, plural) {&lt;br /&gt;
    return String(qty).replace(/\d{1,3}(?=(\d{3})+(?!\d))/g, &amp;quot;$&amp;amp;,&amp;quot;) + &amp;quot;\u00a0&amp;quot; + (qty == 1 ? singular : plural);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function UserinfoJsFormatDateRel(old) {&lt;br /&gt;
// The code below requires the computer&amp;#039;s clock to be set correctly.&lt;br /&gt;
            var age = new Date().getTime() - old.getTime();&lt;br /&gt;
            var ageNumber, ageRemainder, ageWords;&lt;br /&gt;
            if(age &amp;lt; 60000) {&lt;br /&gt;
                // less than one minute old&lt;br /&gt;
                ageNumber = Math.floor(age / 1000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;second&amp;quot;, &amp;quot;seconds&amp;quot;);&lt;br /&gt;
            } else if(age &amp;lt; 3600000) {&lt;br /&gt;
                // less than one hour old&lt;br /&gt;
                ageNumber = Math.floor(age / 60000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;minute&amp;quot;, &amp;quot;minutes&amp;quot;);&lt;br /&gt;
            } else if(age &amp;lt; 86400000) {&lt;br /&gt;
                // less than one day old&lt;br /&gt;
                ageNumber = Math.floor(age / 3600000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;hour&amp;quot;, &amp;quot;hours&amp;quot;);&lt;br /&gt;
                ageRemainder = Math.floor((age - ageNumber * 3600000) / 60000);&lt;br /&gt;
            } else if(age &amp;lt; 604800000) {&lt;br /&gt;
                // less than one week old&lt;br /&gt;
                ageNumber = Math.floor(age / 86400000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;day&amp;quot;, &amp;quot;days&amp;quot;);&lt;br /&gt;
            } else if(age &amp;lt; 2592000000) {&lt;br /&gt;
                // less than one month old&lt;br /&gt;
                ageNumber = Math.floor(age / 604800000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;week&amp;quot;, &amp;quot;weeks&amp;quot;);&lt;br /&gt;
            } else if(age &amp;lt; 31536000000) {&lt;br /&gt;
                // less than one year old&lt;br /&gt;
                ageNumber = Math.floor(age / 2592000000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;month&amp;quot;, &amp;quot;months&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                // one year or older&lt;br /&gt;
                ageNumber = Math.floor(age / 31536000000);&lt;br /&gt;
                ageWords = UserinfoJsFormatQty(ageNumber, &amp;quot;year&amp;quot;, &amp;quot;years&amp;quot;);&lt;br /&gt;
                ageRemainder =&lt;br /&gt;
                    Math.floor((age - ageNumber * 31536000000) / 2592000000);&lt;br /&gt;
                if(ageRemainder) {&lt;br /&gt;
                    ageWords += &amp;quot; &amp;quot; +&lt;br /&gt;
                        UserinfoJsFormatQty(ageRemainder, &amp;quot;month&amp;quot;, &amp;quot;months&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
           }&lt;br /&gt;
           return ageWords;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// If on a user or user talk page, and not a subpage...&lt;br /&gt;
if((mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) == 2 || mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) == 3) &amp;amp;&amp;amp; !(/\//.test(mw.config.get(&amp;quot;wgTitle&amp;quot;)))) {   &lt;br /&gt;
    // add a hook to...&lt;br /&gt;
    mw.loader.using( [&amp;#039;mediawiki.util&amp;#039;], function() { $(function(){&lt;br /&gt;
        // Request the user&amp;#039;s information from the API.&lt;br /&gt;
        // Note that this is allowed to be up to 5 minutes old.&lt;br /&gt;
        var et = encodeURIComponent(mw.config.get(&amp;quot;wgTitle&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        $.getJSON(mw.config.get(&amp;quot;wgScriptPath&amp;quot;) + &amp;quot;/api.php?format=json&amp;amp;action=query&amp;amp;list=users|usercontribs&amp;amp;usprop=blockinfo|editcount|gender|registration|groups&amp;amp;uclimit=1&amp;amp;ucprop=timestamp&amp;amp;ususers=&amp;quot; + et + &amp;quot;&amp;amp;ucuser=&amp;quot; + et + &amp;quot;&amp;amp;meta=allmessages&amp;amp;amprefix=grouppage-&amp;amp;amincludelocal=1&amp;quot;)&lt;br /&gt;
        .done(function(query) {&lt;br /&gt;
            // When response arrives extract the information we need.&lt;br /&gt;
            if(!query.query) { return; } // Suggested by Gary King to avoid JS errors --PS 2010-08-25&lt;br /&gt;
            query = query.query;&lt;br /&gt;
            var user, invalid, missing, groups, groupPages={}, editcount, registration, blocked, gender, lastEdited;&lt;br /&gt;
            try {&lt;br /&gt;
                user = query.users[0];&lt;br /&gt;
                invalid = typeof user.invalid != &amp;quot;undefined&amp;quot;;&lt;br /&gt;
                missing = typeof user.missing != &amp;quot;undefined&amp;quot;;&lt;br /&gt;
                groups = (typeof user.groups == &amp;quot;object&amp;quot;) ? user.groups : [];&lt;br /&gt;
                editcount = (typeof user.editcount == &amp;quot;number&amp;quot;) ? user.editcount : null;&lt;br /&gt;
                registration = (typeof user.registration == &amp;quot;string&amp;quot;) ?&lt;br /&gt;
                    new Date(user.registration) : null;&lt;br /&gt;
                blocked = typeof user.blockedby != &amp;quot;undefined&amp;quot;;&lt;br /&gt;
                gender = (typeof user.gender == &amp;quot;string&amp;quot;) ? user.gender : null;&lt;br /&gt;
                lastEdited = (typeof query.usercontribs[0] == &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
                    (typeof query.usercontribs[0].timestamp == &amp;quot;string&amp;quot;) ?&lt;br /&gt;
                    new Date(query.usercontribs[0].timestamp) : null;&lt;br /&gt;
                for (var am=0; am&amp;lt;query.allmessages.length; am++) {&lt;br /&gt;
                	groupPages[query.allmessages[am][&amp;quot;name&amp;quot;].replace(&amp;quot;grouppage-&amp;quot;,&amp;quot;&amp;quot;)] = query.allmessages[am][&amp;quot;*&amp;quot;].replace(&amp;quot;{{ns:project}}:&amp;quot;,&amp;quot;Project:&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            } catch(e) {&lt;br /&gt;
                return; // Not much to do if the server is returning an error (e.g. if the username is malformed).&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Format the information for on-screen display&lt;br /&gt;
            &lt;br /&gt;
            var statusText = &amp;quot;&amp;quot;;&lt;br /&gt;
            var ipUser = false;&lt;br /&gt;
            var ipv4User = false;&lt;br /&gt;
            var ipv6User = false;&lt;br /&gt;
&lt;br /&gt;
            // User status&lt;br /&gt;
            if(blocked) {&lt;br /&gt;
                statusText += &amp;quot;&amp;lt;a href=\&amp;quot;&amp;quot; + mw.config.get(&amp;quot;wgScriptPath&amp;quot;) +&lt;br /&gt;
                    &amp;quot;/index.php?title=Special:Log&amp;amp;amp;page=&amp;quot; + &lt;br /&gt;
                    encodeURIComponent(mw.config.get(&amp;quot;wgFormattedNamespaces&amp;quot;)[2] + &amp;quot;:&amp;quot; + user.name) +&lt;br /&gt;
                    &amp;quot;&amp;amp;amp;type=block\&amp;quot;&amp;gt;blocked&amp;lt;/a&amp;gt; &amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            if (missing) {&lt;br /&gt;
                statusText += &amp;quot;username not registered&amp;quot;;&lt;br /&gt;
            } else if (invalid) {&lt;br /&gt;
                ipv4User = mw.util.isIPv4Address(user.name);&lt;br /&gt;
                ipv6User = mw.util.isIPv6Address(user.name);&lt;br /&gt;
                ipUser = ipv4User || ipv6User;&lt;br /&gt;
                if (ipv4User) {&lt;br /&gt;
                    statusText += &amp;quot;anonymous IPv4 user&amp;quot;;&lt;br /&gt;
                } else if (ipv6User) {&lt;br /&gt;
                    statusText += &amp;quot;anonymous IPv6 user&amp;quot;;&lt;br /&gt;
                } else {&lt;br /&gt;
                    statusText += &amp;quot;invalid username&amp;quot;;&lt;br /&gt;
                }&lt;br /&gt;
            } else {&lt;br /&gt;
                // User is registered and may be in a privileged group. Below we have a list of user groups.&lt;br /&gt;
                // Only need the ones different from the software&amp;#039;s name (or ones to exclude), though.&lt;br /&gt;
                var friendlyGroupNames = {&lt;br /&gt;
                    // Exclude implicit user group information provided by MW 1.17 --PS 2010-02-17&lt;br /&gt;
                    &amp;#039;*&amp;#039;: false,&lt;br /&gt;
                    &amp;#039;user&amp;#039;: false,&lt;br /&gt;
                    &amp;#039;autoconfirmed&amp;#039;: false,&lt;br /&gt;
                    sysop: &amp;quot;administrator&amp;quot;,&lt;br /&gt;
                    accountcreator: &amp;quot;account creator&amp;quot;,&lt;br /&gt;
                    &amp;#039;import&amp;#039;: &amp;quot;importer&amp;quot;,&lt;br /&gt;
                    transwiki: &amp;quot;transwiki importer&amp;quot;,&lt;br /&gt;
                    &amp;#039;ipblock-exempt&amp;#039;: &amp;quot;IP block exemption&amp;quot;,&lt;br /&gt;
                    confirmed: &amp;quot;confirmed user&amp;quot;,&lt;br /&gt;
                    abusefilter: &amp;quot;edit filter manager&amp;quot;,&lt;br /&gt;
                    &amp;#039;abusefilter-helper&amp;#039;: &amp;quot;edit filter helper&amp;quot;,&lt;br /&gt;
                    autoreviewer: &amp;quot;autopatrolled user&amp;quot;,&lt;br /&gt;
                    filemover: &amp;quot;file mover&amp;quot;,&lt;br /&gt;
                    &amp;#039;massmessage-sender&amp;#039;: &amp;quot;mass message sender&amp;quot;,&lt;br /&gt;
                    templateeditor: &amp;quot;template editor&amp;quot;,&lt;br /&gt;
                    extendedconfirmed: &amp;quot;extended confirmed user&amp;quot;,&lt;br /&gt;
                    extendedmover: &amp;quot;page mover&amp;quot;,&lt;br /&gt;
                    reviewer: &amp;quot;pending changes reviewer&amp;quot;,&lt;br /&gt;
                    suppress: &amp;quot;oversighter&amp;quot;,&lt;br /&gt;
                    patroller: &amp;quot;new page reviewer&amp;quot;,&lt;br /&gt;
                    copyviobot: &amp;quot;copyright violation bot&amp;quot;,&lt;br /&gt;
                    eventcoordinator: &amp;quot;event coordinator&amp;quot;,&lt;br /&gt;
                    &amp;#039;interface-admin&amp;#039;: &amp;quot;interface administrator&amp;quot;,&lt;br /&gt;
                    temp: &amp;quot;temporary user&amp;quot;,&lt;br /&gt;
					electionclerk: &amp;quot;election clerk&amp;quot;,&lt;br /&gt;
                };&lt;br /&gt;
                &lt;br /&gt;
                var friendlyGroups = [];&lt;br /&gt;
                for(var i = 0; i &amp;lt; groups.length; ++i) {&lt;br /&gt;
					var s = groups[i];&lt;br /&gt;
                    var t = friendlyGroupNames.hasOwnProperty(s) ? friendlyGroupNames[s] : s;&lt;br /&gt;
                    if (t) {&lt;br /&gt;
                    	if (groupPages.hasOwnProperty(s)) {&lt;br /&gt;
                    		friendlyGroups.push(&amp;quot;&amp;lt;a href=\&amp;quot;/wiki/&amp;quot; + encodeURIComponent( groupPages[s] ) + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + t + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;);&lt;br /&gt;
                    	} else {&lt;br /&gt;
                    		friendlyGroups.push(t);&lt;br /&gt;
                    	}&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                switch(friendlyGroups.length) {&lt;br /&gt;
                    case 0:&lt;br /&gt;
                        // User not in a privileged group&lt;br /&gt;
                        // Changed to &amp;quot;registered user&amp;quot; by request of [[User:Svanslyck]]&lt;br /&gt;
                        // --PS 2010-05-16&lt;br /&gt;
                        &lt;br /&gt;
                        // statusText += &amp;quot;user&amp;quot;;&lt;br /&gt;
                        if(blocked) {&lt;br /&gt;
                            statusText += &amp;quot;user&amp;quot;;&lt;br /&gt;
                        } else {&lt;br /&gt;
                            statusText += &amp;quot;registered user&amp;quot;;&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case 1:&lt;br /&gt;
                        statusText += friendlyGroups[0];&lt;br /&gt;
                        break;&lt;br /&gt;
                    case 2:&lt;br /&gt;
                        statusText += friendlyGroups[0] + &amp;quot; and &amp;quot; + friendlyGroups[1];&lt;br /&gt;
                        break;&lt;br /&gt;
                    default:&lt;br /&gt;
                        statusText += friendlyGroups.slice(0, -1).join(&amp;quot;, &amp;quot;) +&lt;br /&gt;
                            &amp;quot;, and &amp;quot; + friendlyGroups[friendlyGroups.length - 1];&lt;br /&gt;
                        break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
                &lt;br /&gt;
            // Registration date&lt;br /&gt;
            if(registration) {&lt;br /&gt;
            	var firstLoggedUser = new Date(&amp;quot;22:16, 7 September 2005&amp;quot;); // When the [[Special:Log/newusers]] was first activated&lt;br /&gt;
            	if(registration &amp;gt;= firstLoggedUser) {&lt;br /&gt;
            		statusText += &amp;quot;, &amp;lt;a href=&amp;#039;&amp;quot; + mw.config.get(&amp;quot;wgScriptPath&amp;quot;) +&lt;br /&gt;
                    &amp;quot;/index.php?title=Special:Log&amp;amp;amp;type=newusers&amp;amp;amp;dir=prev&amp;amp;amp;limit=1&amp;amp;amp;user=&amp;quot; +&lt;br /&gt;
                    et + &amp;quot;&amp;#039;&amp;gt;&amp;quot; + UserinfoJsFormatDateRel(registration) + &amp;quot;&amp;lt;/a&amp;gt; old&amp;quot;;&lt;br /&gt;
            	} else {&lt;br /&gt;
            		statusText += &amp;quot;, &amp;lt;a href=&amp;#039;&amp;quot; + mw.config.get(&amp;quot;wgScriptPath&amp;quot;) +&lt;br /&gt;
                    &amp;quot;/index.php?title=Special:ListUsers&amp;amp;amp;limit=1&amp;amp;amp;username=&amp;quot; +&lt;br /&gt;
                    et + &amp;quot;&amp;#039;&amp;gt;&amp;quot; + UserinfoJsFormatDateRel(registration) + &amp;quot;&amp;lt;/a&amp;gt; old&amp;quot;;&lt;br /&gt;
            	}&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            // Edit count&lt;br /&gt;
            if(editcount !== null) {&lt;br /&gt;
                statusText += &amp;quot;, with &amp;quot; +&lt;br /&gt;
                    &amp;quot;&amp;lt;a href=\&amp;quot;//tools.wmflabs.org/xtools-ec/?user=&amp;quot; +&lt;br /&gt;
                    encodeURIComponent(user.name) +&lt;br /&gt;
                    &amp;quot;&amp;amp;amp;project=en.wikipedia.org&amp;amp;amp;uselang=en\&amp;quot;&amp;gt;&amp;quot; +&lt;br /&gt;
                    UserinfoJsFormatQty(editcount, &amp;quot;edit&amp;quot;, &amp;quot;edits&amp;quot;) + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            // Prefix status text with correct article&lt;br /&gt;
            if(&amp;quot;AEIOaeio&amp;quot;.indexOf(statusText.charAt(statusText.indexOf(&amp;#039;&amp;gt;&amp;#039;)+1)) &amp;gt;= 0) {&lt;br /&gt;
                statusText = &amp;quot;An &amp;quot; + statusText;&lt;br /&gt;
            } else {&lt;br /&gt;
                statusText = &amp;quot;A &amp;quot; + statusText;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Add full stop to status text&lt;br /&gt;
            statusText += &amp;quot;.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // Last edited --PS 2010-06-27&lt;br /&gt;
            // Added link to contributions page --PS 2010-07-03&lt;br /&gt;
            if(lastEdited) {&lt;br /&gt;
                statusText += &amp;quot; Last edited &amp;lt;a href=\&amp;quot;&amp;quot; + mw.config.get(&amp;quot;wgArticlePath&amp;quot;).replace(&amp;quot;$1&amp;quot;, &amp;quot;Special:Contributions/&amp;quot; + encodeURIComponent(user.name)) + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + UserinfoJsFormatDateRel(lastEdited) + &amp;quot; ago&amp;lt;/a&amp;gt;.&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Show the correct gender symbol&lt;br /&gt;
            var fh = document.getElementById(&amp;quot;firstHeading&amp;quot;) ||&lt;br /&gt;
                document.getElementById(&amp;quot;section-0&amp;quot;);&lt;br /&gt;
            if(!fh) return; // e.g. Minerva user talk pages&lt;br /&gt;
            // Add classes for blocked, registered, and anonymous users&lt;br /&gt;
            var newClasses = [];&lt;br /&gt;
            if(blocked) {&lt;br /&gt;
                newClasses.push(&amp;quot;ps-blocked&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            if(ipUser) {&lt;br /&gt;
                newClasses.push(&amp;quot;ps-anonymous&amp;quot;);&lt;br /&gt;
            } else if(invalid) {&lt;br /&gt;
                newClasses.push(&amp;quot;ps-invalid&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                newClasses.push(&amp;quot;ps-registered&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            fh.className += (fh.className.length ? &amp;quot; &amp;quot; : &amp;quot;&amp;quot;) + groups.map(function(s) {&lt;br /&gt;
                return &amp;quot;ps-group-&amp;quot; + s;&lt;br /&gt;
            }).concat(newClasses).join(&amp;quot; &amp;quot;);&lt;br /&gt;
            var genderSpan = document.createElement(&amp;quot;span&amp;quot;);&lt;br /&gt;
            genderSpan.id = &amp;quot;ps-gender-&amp;quot; + (gender || &amp;quot;unknown&amp;quot;);&lt;br /&gt;
            genderSpan.style.paddingLeft = &amp;quot;0.25em&amp;quot;;&lt;br /&gt;
            genderSpan.style.fontFamily = &amp;#039;&amp;quot;Lucida Grande&amp;quot;, &amp;quot;Lucida Sans Unicode&amp;quot;, &amp;quot;sans-serif&amp;quot;&amp;#039;;&lt;br /&gt;
            genderSpan.style.fontSize = &amp;quot;75%&amp;quot;;&lt;br /&gt;
            var genderSymbol;&lt;br /&gt;
            switch(gender) {&lt;br /&gt;
                case &amp;quot;male&amp;quot;: genderSymbol = &amp;quot;\u2642&amp;quot;; break;&lt;br /&gt;
                case &amp;quot;female&amp;quot;: genderSymbol = &amp;quot;\u2640&amp;quot;; break;&lt;br /&gt;
                default: genderSymbol = &amp;quot;&amp;quot;; break;&lt;br /&gt;
            }&lt;br /&gt;
            genderSpan.appendChild(document.createTextNode(genderSymbol));&lt;br /&gt;
            fh.appendChild(genderSpan);&lt;br /&gt;
&lt;br /&gt;
            // Now show the other information. Non-standard? Yes, but it gets the job done.&lt;br /&gt;
            // Add a period after the tagline when doing so. --PS 2010-07-03&lt;br /&gt;
&lt;br /&gt;
            var ss = document.getElementById(&amp;quot;siteSub&amp;quot;);&lt;br /&gt;
            if(!ss) {&lt;br /&gt;
                ss = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
                ss.id = &amp;quot;siteSub&amp;quot;;&lt;br /&gt;
                ss.innerHTML = &amp;quot;From Wikipedia, the free encyclopedia&amp;quot;;&lt;br /&gt;
                var bc = document.getElementById(&amp;quot;bodyContent&amp;quot;);&lt;br /&gt;
                bc.insertBefore(ss, bc.firstChild);&lt;br /&gt;
            }&lt;br /&gt;
            ss.innerHTML = &amp;#039;&amp;lt;span id=&amp;quot;ps-userinfo&amp;quot;&amp;gt;&amp;#039; + statusText + &amp;#039;&amp;lt;/span&amp;gt; &amp;#039; + ss.innerHTML + &amp;#039;.&amp;#039;;&lt;br /&gt;
            ss.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
            });&lt;br /&gt;
    }); });&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DarkMatterMan4500</name></author>
	</entry>
</feed>