<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ajaxrecentchanges.js</id>
	<title>MediaWiki:Gadget-ajaxrecentchanges.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ajaxrecentchanges.js"/>
	<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=MediaWiki:Gadget-ajaxrecentchanges.js&amp;action=history"/>
	<updated>2026-04-26T07:32:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://compusofia.com/w/index.php?title=MediaWiki:Gadget-ajaxrecentchanges.js&amp;diff=1886&amp;oldid=prev</id>
		<title>Majestix: 1 revision imported: Initial Setup</title>
		<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=MediaWiki:Gadget-ajaxrecentchanges.js&amp;diff=1886&amp;oldid=prev"/>
		<updated>2026-04-09T10:25:52Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: Initial Setup&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 12:25, 9 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikiNonStop:diff:1.41:old-1885:rev-1886 --&gt;
&lt;/table&gt;</summary>
		<author><name>Majestix</name></author>
	</entry>
	<entry>
		<id>https://compusofia.com/w/index.php?title=MediaWiki:Gadget-ajaxrecentchanges.js&amp;diff=1885&amp;oldid=prev</id>
		<title>en&gt;Jon (WMF): maintenance: per talk page</title>
		<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=MediaWiki:Gadget-ajaxrecentchanges.js&amp;diff=1885&amp;oldid=prev"/>
		<updated>2020-08-03T21:45:27Z</updated>

		<summary type="html">&lt;p&gt;maintenance: per talk page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Ajax recent changes and patrolling framework, version [0.0.6a]&lt;br /&gt;
Originally from: http://en.wikipedia.org/wiki/User:Splarka/ajaxrecentchanges.js&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
* Patrol flags/links will sometimes show up where patrolling is not enabled.&lt;br /&gt;
** This was a bug in the API that generated patrol tokens too often.&lt;br /&gt;
** Fixed in r49000&lt;br /&gt;
&lt;br /&gt;
Todo:&lt;br /&gt;
* Checkbox for batch patrolling&lt;br /&gt;
&lt;br /&gt;
Wontdo:&lt;br /&gt;
* Parse comments&lt;br /&gt;
* Add (talk|contribs|block) links, click their name, lazy&lt;br /&gt;
* Localize error messages or focus on the log message &amp;#039;logaction&amp;#039; (wrong tense, but it works fine).&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
if ( !window.arc_i18n ) {&lt;br /&gt;
	var arc_i18n = {&lt;br /&gt;
		&amp;#039;title&amp;#039;: &amp;#039;Ajax recent changes&amp;#039;,&lt;br /&gt;
		&amp;#039;desc&amp;#039;: &amp;#039;Paginated enhanced ajax recent changes and patrolling.&amp;#039;,&lt;br /&gt;
		&amp;#039;mypatrol&amp;#039;: &amp;#039;My patrol log&amp;#039;,&lt;br /&gt;
		&amp;#039;startstamp&amp;#039;: &amp;#039;Start timestamp (8601)&amp;#039;,&lt;br /&gt;
		&amp;#039;limit&amp;#039;: &amp;#039;Limit&amp;#039;,&lt;br /&gt;
		&amp;#039;showapb&amp;#039;: &amp;#039;Show ajax patrol buttons&amp;#039;,&lt;br /&gt;
		&amp;#039;filterflag&amp;#039;: &amp;#039;Filter by flag&amp;#039;,&lt;br /&gt;
		&amp;#039;minor&amp;#039;: &amp;#039;Minor&amp;#039;,&lt;br /&gt;
		&amp;#039;bot&amp;#039;: &amp;#039;Bot&amp;#039;,&lt;br /&gt;
		&amp;#039;anon&amp;#039;: &amp;#039;Anon&amp;#039;,&lt;br /&gt;
		&amp;#039;redirect&amp;#039;: &amp;#039;Redirect&amp;#039;,&lt;br /&gt;
		&amp;#039;patrolled&amp;#039;: &amp;#039;Patrolled&amp;#039;,&lt;br /&gt;
		&amp;#039;all&amp;#039;: &amp;#039;All&amp;#039;,&lt;br /&gt;
		&amp;#039;filtertype&amp;#039;: &amp;#039;Filter by type&amp;#039;,&lt;br /&gt;
		&amp;#039;edit&amp;#039;: &amp;#039;Edits&amp;#039;,&lt;br /&gt;
		&amp;#039;newpages&amp;#039;: &amp;#039;New pages&amp;#039;,&lt;br /&gt;
		&amp;#039;log&amp;#039;: &amp;#039;Logs&amp;#039;,&lt;br /&gt;
		&amp;#039;filterns&amp;#039;: &amp;#039;Filter by namespace&amp;#039;,&lt;br /&gt;
		&amp;#039;fetch&amp;#039;: &amp;#039;Fetch&amp;#039;,&lt;br /&gt;
		&amp;#039;noresults&amp;#039;: &amp;#039;Nothing found.&amp;#039;,&lt;br /&gt;
		&amp;#039;diff&amp;#039;: &amp;#039;diff&amp;#039;,&lt;br /&gt;
		&amp;#039;hist&amp;#039;: &amp;#039;hist&amp;#039;,&lt;br /&gt;
		&amp;#039;patrolbtn&amp;#039;: &amp;#039;Patrol&amp;#039;,&lt;br /&gt;
		&amp;#039;logsuffix&amp;#039;: &amp;#039; log&amp;#039;,&lt;br /&gt;
		&amp;#039;patroldone&amp;#039;: &amp;#039;done&amp;#039;,&lt;br /&gt;
		&amp;#039;nsmain&amp;#039;: &amp;#039;MAIN&amp;#039;&lt;br /&gt;
	};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	mw.util.addPortletLink( &amp;#039;p-tb&amp;#039;, &amp;#039;/wiki/Special:BlankPage?blankspecial=ajaxrc&amp;#039;, arc_i18n.title, &amp;#039;t-ajax-rc&amp;#039;, arc_i18n.desc );&lt;br /&gt;
	if (&lt;br /&gt;
		mw.config.get( &amp;#039;wgCanonicalSpecialPageName&amp;#039; ) &amp;amp;&amp;amp;&lt;br /&gt;
		mw.config.get( &amp;#039;wgCanonicalSpecialPageName&amp;#039; ).toLowerCase() == &amp;#039;blankpage&amp;#039; &amp;amp;&amp;amp;&lt;br /&gt;
		mw.util.getParamValue( &amp;#039;blankspecial&amp;#039; ) == &amp;#039;ajaxrc&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
	{&lt;br /&gt;
		document.title = arc_i18n.title;&lt;br /&gt;
		$( ajaxRcForm );&lt;br /&gt;
	}&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
function ajaxRcForm() {&lt;br /&gt;
	mw.util.addPortletLink( &amp;#039;p-tb&amp;#039;, &amp;#039;/wiki/Special:Log/patrol?user=&amp;#039; + encodeURIComponent( mw.config.get( &amp;#039;wgUserName&amp;#039; ) ), arc_i18n.mypatrol );&lt;br /&gt;
	// subvert this Special: page to our own needs.&lt;br /&gt;
	var bcon = document.getElementById( &amp;#039;bodyContent&amp;#039; ) || document.getElementById( &amp;#039;mw_contentholder&amp;#039; );&lt;br /&gt;
	mw.util.$content.children( &amp;#039;.firstHeading&amp;#039; )[0] = arc_i18n.title;&lt;br /&gt;
	for ( var i = 0; i &amp;lt; bcon.childNodes.length; i++ ) {&lt;br /&gt;
		var bcur = bcon.childNodes[i];&lt;br /&gt;
		if ( bcur.id != &amp;#039;siteSub&amp;#039; &amp;amp;&amp;amp; bcur.id != &amp;#039;contentSub&amp;#039; &amp;amp;&amp;amp; bcur.className != &amp;#039;visualClear&amp;#039; ) {&lt;br /&gt;
			while ( bcur.firstChild ) {&lt;br /&gt;
				bcur.removeChild( bcur.firstChild );&lt;br /&gt;
			}&lt;br /&gt;
			if ( bcur.nodeType == 3 ) {&lt;br /&gt;
				bcur.nodeValue = &amp;#039;&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.util.addCSS(&lt;br /&gt;
		&amp;#039;#arc-form {border:1px solid black;padding:.5em;margin:2em;} #arc-out {border:1px solid black;padding:.5em;margin:.5em;}&amp;#039; +&lt;br /&gt;
		&amp;#039;#arc-fetch {padding:0 1em;margin:0 .5em;} .clear {clear:both;} .arc-box {border:1px solid #bbbbbb;padding:.2em;margin:.5em;}&amp;#039; +&lt;br /&gt;
		&amp;#039;.arc-cbox {display:block;float:left;width:11em;white-space:nowrap;overflow:hidden;font-size:80%;margin:0 .f2em;}&amp;#039; +&lt;br /&gt;
		&amp;#039;.arc-box-label {text-align:center;border-bottom:1px solid #bbbbbb;margin-bottom:.3em} .spacer {border:1px solid transparent;margin-right:.5em;}&amp;#039; +&lt;br /&gt;
		&amp;#039;.arc-patrol {border:2px outset #bbbbbb;background-color:#bbbbbb;color:black;padding:2px;margin:3px;text-decoration:none;}&amp;#039;&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	var form = &amp;#039;&amp;lt;form id=&amp;quot;arc-form&amp;quot; action=&amp;quot;javascript:void(0)&amp;quot;&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-start&amp;quot;&amp;gt;&amp;#039; + arc_i18n.startstamp + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;arc-start&amp;quot; id=&amp;quot;arc-start&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;25&amp;quot; maxlength=&amp;quot;20&amp;quot;/&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-limit&amp;quot;&amp;gt;&amp;#039; + arc_i18n.limit + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;arc-limit&amp;quot; id=&amp;quot;arc-limit&amp;quot; value=&amp;quot;50&amp;quot; size=&amp;quot;5&amp;quot; maxlength=&amp;quot;3&amp;quot;/&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;arc-patrol-enable&amp;quot; id=&amp;quot;arc-patrol-enable&amp;quot; /&amp;gt;&amp;lt;label for=&amp;quot;arc-patrol-enable&amp;quot;&amp;gt;&amp;#039; + arc_i18n.showapb + &amp;#039;&amp;lt;/label&amp;gt;&amp;lt;br /&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;div class=&amp;quot;arc-box&amp;quot; id=&amp;quot;arc-f-boxen&amp;quot;&amp;gt;&amp;#039; + arc_i18n.filterflag + &amp;#039;: &amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-f-minor&amp;quot;&amp;gt;&amp;#039; + arc_i18n.minor + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;arc-f-minor&amp;quot; id=&amp;quot;arc-f-minor&amp;quot; value=&amp;quot;&amp;#039; + arc_i18n.all + &amp;#039;&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-f-bot&amp;quot;&amp;gt;&amp;#039; + arc_i18n.bot + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;arc-f-bot&amp;quot; id=&amp;quot;arc-f-bot&amp;quot; value=&amp;quot;!bot&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-f-anon&amp;quot;&amp;gt;&amp;#039; + arc_i18n.anon + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;arc-f-anon&amp;quot; id=&amp;quot;arc-f-anon&amp;quot; value=&amp;quot;&amp;#039; + arc_i18n.all + &amp;#039;&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-f-redirect&amp;quot;&amp;gt;&amp;#039; + arc_i18n.redirect + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;arc-f-redirect&amp;quot; id=&amp;quot;arc-f-redirect&amp;quot; value=&amp;quot;&amp;#039; + arc_i18n.all + &amp;#039;&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;label for=&amp;quot;arc-f-patrolled&amp;quot;&amp;gt;&amp;#039; + arc_i18n.patrolled + &amp;#039;:&amp;lt;/label&amp;gt; &amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;arc-f-patrolled&amp;quot; id=&amp;quot;arc-f-patrolled&amp;quot; value=&amp;quot;&amp;#039; + arc_i18n.all + &amp;#039;&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;/div&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;div class=&amp;quot;arc-box&amp;quot; id=&amp;quot;arc-t-boxen&amp;quot;&amp;gt;&amp;#039; + arc_i18n.filtertype + &amp;#039;: &amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;arc-t-edit&amp;quot; id=&amp;quot;arc-t-edit&amp;quot; checked=&amp;quot;checked&amp;quot; value=&amp;quot;edit&amp;quot; /&amp;gt;&amp;lt;label for=&amp;quot;arc-t-edit&amp;quot;&amp;gt;&amp;#039; + arc_i18n.edit + &amp;#039;&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;arc-t-new&amp;quot; id=&amp;quot;arc-t-new&amp;quot; checked=&amp;quot;checked&amp;quot; value=&amp;quot;new&amp;quot; /&amp;gt;&amp;lt;label for=&amp;quot;arc-t-new&amp;quot;&amp;gt;&amp;#039; + arc_i18n.newpages + &amp;#039;&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;arc-t-log&amp;quot; id=&amp;quot;arc-t-log&amp;quot; checked=&amp;quot;checked&amp;quot; value=&amp;quot;log&amp;quot; /&amp;gt;&amp;lt;label for=&amp;quot;arc-t-log&amp;quot;&amp;gt;&amp;#039; + arc_i18n.log + &amp;#039;&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;/div&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;div class=&amp;quot;arc-box&amp;quot; id=&amp;quot;arc-ns-boxen&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;arc-box-label&amp;quot;&amp;gt;&amp;#039; + arc_i18n.filterns + &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;fetch&amp;quot; value=&amp;quot;&amp;#039; + arc_i18n.fetch + &amp;#039;&amp;quot; id=&amp;quot;arc-fetch&amp;quot; onclick=&amp;quot;ajaxRcFetch()&amp;quot; /&amp;gt;&amp;lt;div class=&amp;quot;clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039; +&lt;br /&gt;
		&amp;#039;&amp;lt;/form&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	bcon.innerHTML += form + &amp;#039;&amp;lt;div id=&amp;quot;arc-out&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;;&lt;br /&gt;
	mw.loader.load( mw.config.get( &amp;#039;wgScriptPath&amp;#039; ) + &amp;#039;/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=namespaces&amp;amp;format=json&amp;amp;callback=ajaxRcFormNamespacesCB&amp;#039; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFetch( timestamp, direction ) {&lt;br /&gt;
	document.getElementById( &amp;#039;arc-fetch&amp;#039; ).setAttribute( &amp;#039;disabled&amp;#039;, &amp;#039;disabled&amp;#039; );&lt;br /&gt;
	var nav = document.getElementById( &amp;#039;arc-fetchnav&amp;#039; );&lt;br /&gt;
	if ( nav ) {&lt;br /&gt;
		nav.style.visibility = &amp;#039;hidden&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
	$( &amp;#039;#arc-fetch&amp;#039; ).after( $.createSpinner( &amp;#039;arc-spin&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
	// direction&lt;br /&gt;
	var rcdir = &amp;#039;&amp;#039;;&lt;br /&gt;
	if ( direction ) {&lt;br /&gt;
		rcdir = &amp;#039;&amp;amp;rcdir=&amp;#039; + direction + &amp;#039;&amp;amp;requestid=&amp;#039; + direction;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// start&lt;br /&gt;
	var rcstart = timestamp || document.getElementById( &amp;#039;arc-start&amp;#039; ).value;&lt;br /&gt;
	rcstart = rcstart.replace( /[^\d]*/g, &amp;#039;&amp;#039; );&lt;br /&gt;
	if ( rcstart !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; /^\d{14}$/.test( rcstart ) ) {&lt;br /&gt;
		rcstart = &amp;#039;&amp;amp;rcstart=&amp;#039; + rcstart;&lt;br /&gt;
	} else {&lt;br /&gt;
		rcstart = &amp;#039;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// limit&lt;br /&gt;
	var rclimit = parseInt( document.getElementById( &amp;#039;arc-limit&amp;#039; ).value );&lt;br /&gt;
	if ( isNaN( rclimit ) ) {&lt;br /&gt;
		rclimit = 100;&lt;br /&gt;
	}&lt;br /&gt;
	rclimit = &amp;#039;&amp;amp;rclimit=&amp;#039; + rclimit;&lt;br /&gt;
&lt;br /&gt;
	// type&lt;br /&gt;
	var tb = document.getElementById( &amp;#039;arc-t-boxen&amp;#039; ).getElementsByTagName( &amp;#039;input&amp;#039; );&lt;br /&gt;
	var rctype = [];&lt;br /&gt;
	for ( var i = 0; i &amp;lt; tb.length; i++ ) {&lt;br /&gt;
		if ( tb[i].checked ) {&lt;br /&gt;
			rctype.push( tb[i].value );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if ( rctype.length &amp;gt; 0 ) {&lt;br /&gt;
		rctype = &amp;#039;&amp;amp;rctype=&amp;#039; + rctype.join( &amp;#039;|&amp;#039; );&lt;br /&gt;
	} else {&lt;br /&gt;
		rctype = &amp;#039;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// show (flags)&lt;br /&gt;
	var fb = document.getElementById( &amp;#039;arc-f-boxen&amp;#039; ).getElementsByTagName( &amp;#039;input&amp;#039; );&lt;br /&gt;
	var rcshow = [];&lt;br /&gt;
	for ( i = 0; i &amp;lt; fb.length; i++ ) {&lt;br /&gt;
		if ( fb[i].value != arc_i18n.all ) {&lt;br /&gt;
			rcshow.push( fb[i].value );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if ( rcshow.length &amp;gt; 0 ) {&lt;br /&gt;
		rcshow = &amp;#039;&amp;amp;rcshow=&amp;#039; + rcshow.join( &amp;#039;|&amp;#039; );&lt;br /&gt;
	} else {&lt;br /&gt;
		rcshow = &amp;#039;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// namespace&lt;br /&gt;
	var nsb = document.getElementById( &amp;#039;arc-ns-boxen&amp;#039; ).getElementsByTagName( &amp;#039;input&amp;#039; );&lt;br /&gt;
	var rcnamespace = [];&lt;br /&gt;
	for ( i = 0; i &amp;lt; nsb.length; i++ ) {&lt;br /&gt;
		if ( nsb[i].checked ) {&lt;br /&gt;
			rcnamespace.push( nsb[i].value );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if ( rcnamespace.length &amp;gt; 0 ) {&lt;br /&gt;
		rcnamespace = &amp;#039;&amp;amp;rcnamespace=&amp;#039; + rcnamespace.join( &amp;#039;|&amp;#039; );&lt;br /&gt;
	} else {&lt;br /&gt;
		rcnamespace = &amp;#039;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// prop &amp;amp; token&lt;br /&gt;
	var rcprop = &amp;#039;&amp;amp;rcprop=user|comment|flags|timestamp|title|ids|sizes|redirect|patrolled|loginfo&amp;#039;;&lt;br /&gt;
	var rctoken = &amp;#039;&amp;amp;rctoken=patrol&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	$.ajax( {&lt;br /&gt;
		url: mw.util.wikiScript( &amp;#039;api&amp;#039; ) + &amp;#039;?action=query&amp;amp;format=json&amp;amp;rawcontinue=&amp;amp;list=recentchanges&amp;#039; + rcdir + rcstart + rclimit + rctype + rcshow + rcnamespace + rcprop + rctoken&lt;br /&gt;
	} ).done( function( data ) {&lt;br /&gt;
		eval( &amp;quot;ajaxRcFetchHandler(&amp;quot; + data + &amp;quot;,&amp;#039;&amp;quot; + data.replace( /\&amp;#039;/g, &amp;quot;`&amp;quot; ) + &amp;quot;&amp;#039;)&amp;quot; );&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFetchHandler( obj, txt ) {&lt;br /&gt;
	document.getElementById( &amp;#039;arc-fetch&amp;#039; ).removeAttribute( &amp;#039;disabled&amp;#039; );&lt;br /&gt;
	$.removeSpinner( &amp;#039;arc-spin&amp;#039; );&lt;br /&gt;
	var out = document.getElementById( &amp;#039;arc-out&amp;#039; );&lt;br /&gt;
	var ajaxpatrol = document.getElementById( &amp;#039;arc-patrol-enable&amp;#039; ).checked;&lt;br /&gt;
	while ( out.firstChild ) {&lt;br /&gt;
		out.removeChild( out.firstChild );&lt;br /&gt;
	}&lt;br /&gt;
	if ( obj.error ) {&lt;br /&gt;
		out.appendChild( document.createTextNode( &amp;#039;API error: &amp;#039; + obj.error.code + &amp;#039; - &amp;#039; + obj.error.info + &amp;#039;\n&amp;#039; ) );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	if ( !obj.query || !obj.query.recentchanges ) {&lt;br /&gt;
		out.appendChild( document.createTextNode( &amp;#039;Unexpected response: &amp;#039; + txt + &amp;#039;\n&amp;#039; ) );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var rc = obj.query.recentchanges;&lt;br /&gt;
	if ( rc.length === 0 ) {&lt;br /&gt;
		out.appendChild( document.createTextNode( arc_i18n.noresults ) );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var backwards = false;&lt;br /&gt;
	if ( obj.requestid &amp;amp;&amp;amp; obj.requestid == &amp;#039;newer&amp;#039; ) {&lt;br /&gt;
		backwards = true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var nav = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
	nav.setAttribute( &amp;#039;id&amp;#039;, &amp;#039;arc-fetchnav&amp;#039; );&lt;br /&gt;
	if (&lt;br /&gt;
		obj[&amp;#039;query-continue&amp;#039;] &amp;amp;&amp;amp;&lt;br /&gt;
		obj[&amp;#039;query-continue&amp;#039;].recentchanges &amp;amp;&amp;amp;&lt;br /&gt;
		obj[&amp;#039;query-continue&amp;#039;].recentchanges.rcstart&lt;br /&gt;
	)&lt;br /&gt;
	{&lt;br /&gt;
		var rcstart = obj[&amp;#039;query-continue&amp;#039;].recentchanges.rcstart;&lt;br /&gt;
		var rcstartnewer = rcstart;&lt;br /&gt;
		var rcstartolder = rcstart;&lt;br /&gt;
		if ( !backwards ) {&lt;br /&gt;
			rcstartnewer = rc[0].timestamp;&lt;br /&gt;
		} else {&lt;br /&gt;
			rcstartolder = rc[0].timestamp;&lt;br /&gt;
		}&lt;br /&gt;
		addLinkChild( nav, &amp;#039;javascript:ajaxRcFetch(&amp;quot;&amp;#039; + rcstartnewer + &amp;#039;&amp;quot;,&amp;quot;newer&amp;quot;)&amp;#039;, &amp;#039;Newer&amp;#039; );&lt;br /&gt;
		addText( nav, &amp;#039; | &amp;#039;);&lt;br /&gt;
		addLinkChild( nav, &amp;#039;javascript:ajaxRcFetch(&amp;quot;&amp;#039; + rcstartolder + &amp;#039;&amp;quot;,&amp;quot;older&amp;quot;)&amp;#039;, &amp;#039;Older&amp;#039; );&lt;br /&gt;
	} else if ( backwards ) {&lt;br /&gt;
		addLinkChild( nav, &amp;#039;javascript:ajaxRcFetch()&amp;#039;, &amp;#039;Older&amp;#039; );&lt;br /&gt;
	}&lt;br /&gt;
	out.appendChild( nav );&lt;br /&gt;
&lt;br /&gt;
	var ul = document.createElement( &amp;#039;ul&amp;#039; );&lt;br /&gt;
	for ( var i = 0; i &amp;lt; rc.length; i++ ) {&lt;br /&gt;
		var r = rc[i];&lt;br /&gt;
		var li = document.createElement( &amp;#039;li&amp;#039; );&lt;br /&gt;
		var rcid = &amp;#039;&amp;#039;;&lt;br /&gt;
		if ( r.type == &amp;#039;edit&amp;#039; ) {&lt;br /&gt;
			if ( typeof r.patrolled == &amp;#039;undefined&amp;#039; &amp;amp;&amp;amp; r.rcid &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				rcid = &amp;#039;&amp;amp;rcid=&amp;#039; + r.rcid;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, &amp;#039;(&amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?oldid=&amp;#039; + r.old_revid + &amp;#039;&amp;amp;diff=&amp;#039; + r.revid + rcid, arc_i18n.diff );&lt;br /&gt;
			addText( li, &amp;#039;) (&amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?curid=&amp;#039; + r.pageid + &amp;#039;&amp;amp;action=history&amp;#039;, arc_i18n.hist );&lt;br /&gt;
			addText( li, &amp;#039;) . . &amp;#039; );&lt;br /&gt;
			if ( typeof r.bot != &amp;#039;undefined&amp;#039; ) {&lt;br /&gt;
				addText( li, &amp;#039;b&amp;#039;, &amp;#039;span&amp;#039;, &amp;#039;bot&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			if ( typeof r.minor != &amp;#039;undefined&amp;#039; ) {&lt;br /&gt;
				addText( li, &amp;#039;m&amp;#039;, &amp;#039;span&amp;#039;, &amp;#039;minor&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			if ( rcid !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addText( li, &amp;#039;!&amp;#039;, &amp;#039;span&amp;#039;, &amp;#039;unpatrolled&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, &amp;#039; &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?curid=&amp;#039; + r.pageid, r.title );&lt;br /&gt;
			var size = &amp;#039;&amp;#039; + ( parseInt( r.newlen ) - parseInt( r.oldlen ) );&lt;br /&gt;
			if ( size.substring( 0, 1 ) != &amp;#039;-&amp;#039; ) {&lt;br /&gt;
				size = &amp;#039;+&amp;#039; + size;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, &amp;#039;; &amp;#039; + r.timestamp.replace( /[TZ]/ig, &amp;#039; &amp;#039; ) + &amp;#039; . . (&amp;#039; + size + &amp;#039;) . . &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?title=Special:Contributions&amp;amp;target=&amp;#039; + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, &amp;#039; (&amp;#039; + r.comment + &amp;#039;)&amp;#039;, &amp;#039;i&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			if ( ajaxpatrol === true &amp;amp;&amp;amp; rcid !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addLinkChild( li, &amp;#039;javascript:ajaxRcDoPatrol(&amp;quot;&amp;#039; + r.rcid + &amp;#039;&amp;quot;,&amp;quot;&amp;#039; + encodeURIComponent( encodeURIComponent( r.patroltoken ) ) + &amp;#039;&amp;quot;)&amp;#039;, arc_i18n.patrolbtn, &amp;#039;arc-patrol-&amp;#039; + r.rcid, &amp;#039;arc-patrol&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
		} else if ( r.type == &amp;#039;new&amp;#039; ) {&lt;br /&gt;
			if ( typeof r.patrolled == &amp;#039;undefined&amp;#039; &amp;amp;&amp;amp; r.rcid ) {&lt;br /&gt;
				rcid = &amp;#039;&amp;amp;rcid=&amp;#039; + r.rcid;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, &amp;#039;(&amp;#039; + arc_i18n.diff + &amp;#039;) (&amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?curid=&amp;#039; + r.pageid + &amp;#039;&amp;amp;action=history&amp;#039;, arc_i18n.hist );&lt;br /&gt;
			addText( li, &amp;#039;) . . &amp;#039; );&lt;br /&gt;
			addText( li, &amp;#039;N&amp;#039;, &amp;#039;span&amp;#039;, &amp;#039;newpage&amp;#039; );&lt;br /&gt;
			if ( rcid !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addText( li, &amp;#039;!&amp;#039;, &amp;#039;span&amp;#039;, &amp;#039;unpatrolled&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, &amp;#039; &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?curid=&amp;#039; + r.pageid + rcid, r.title );&lt;br /&gt;
			addText( li, &amp;#039;; &amp;#039; + r.timestamp.replace( /[TZ]/ig, &amp;#039; &amp;#039; ) + &amp;#039; . . (+&amp;#039; + r.newlen + &amp;#039;) . . &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?title=Special:Contributions&amp;amp;target=&amp;#039; + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, &amp;#039; (&amp;#039; + r.comment + &amp;#039;)&amp;#039;, &amp;#039;i&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
			if ( ajaxpatrol === true &amp;amp;&amp;amp; rcid !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addLinkChild( li, &amp;#039;javascript:ajaxRcDoPatrol(&amp;quot;&amp;#039; + r.rcid + &amp;#039;&amp;quot;,&amp;quot;&amp;#039; + encodeURIComponent( encodeURIComponent( r.patroltoken ) ) + &amp;#039;&amp;quot;)&amp;#039;, arc_i18n.patrolbtn, &amp;#039;arc-patrol-&amp;#039; + r.rcid, &amp;#039;arc-patrol&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
		} else if ( r.type == &amp;#039;log&amp;#039; ) {&lt;br /&gt;
			addText( li, &amp;#039;(&amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?title=Special:Log&amp;amp;type=&amp;#039; + r.logtype, r.logtype + arc_i18n, arc_i18n.logsuffix );&lt;br /&gt;
			addText( li, &amp;#039;); &amp;#039; + r.timestamp.replace( /[TZ]/ig, &amp;#039; &amp;#039; ) + &amp;#039; . . &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?title=Special:Contributions&amp;amp;target=&amp;#039; + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			addText( li,&amp;#039; &amp;#039; + r.logaction + &amp;#039; &amp;#039; );&lt;br /&gt;
			addLinkChild( li, mw.config.get( &amp;#039;wgScript&amp;#039; ) + &amp;#039;?title=&amp;#039; + encodeURIComponent( r.title ), r.title );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, &amp;#039; (&amp;#039; + r.comment + &amp;#039;)&amp;#039;, &amp;#039;i&amp;#039; );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if ( backwards &amp;amp;&amp;amp; ul.firstChild ) {&lt;br /&gt;
			ul.insertBefore( li, ul.firstChild );&lt;br /&gt;
		} else {&lt;br /&gt;
			ul.appendChild( li );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	out.appendChild( ul );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcDoPatrol( rcid, token ) {&lt;br /&gt;
	$.ajax( {&lt;br /&gt;
		method: &amp;#039;POST&amp;#039;,&lt;br /&gt;
		url: mw.util.wikiScript( &amp;#039;api&amp;#039; ),&lt;br /&gt;
		data: {&lt;br /&gt;
			action: &amp;#039;patrol&amp;#039;,&lt;br /&gt;
			format: &amp;#039;json&amp;#039;,&lt;br /&gt;
			requestid: rcid,&lt;br /&gt;
			token: token&lt;br /&gt;
		}&lt;br /&gt;
	} ).done( function( data ) {&lt;br /&gt;
		eval( &amp;#039;ajaxRcDidPatrol(&amp;#039; + data + &amp;#039;)&amp;#039; );&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcDidPatrol( obj ) {&lt;br /&gt;
	if ( !obj.requestid ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	if ( obj.error ) {&lt;br /&gt;
		alert( &amp;#039;API error in patrolling rcid=&amp;#039; + obj.requestid + &amp;#039; : &amp;#039; + obj.error.code + &amp;#039;\n&amp;#039; + obj.error.info );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var button = document.getElementById( &amp;#039;arc-patrol-&amp;#039; + obj.requestid );&lt;br /&gt;
	if ( !button || !obj.patrol ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	button.setAttribute( &amp;#039;href&amp;#039;, &amp;#039;javascript:alert(&amp;quot;(&amp;#039; + arc_i18n.patroldone + &amp;#039;)&amp;quot;);&amp;#039; );&lt;br /&gt;
	addText( button, &amp;#039; (&amp;#039; + arc_i18n.patroldone + &amp;#039;)&amp;#039; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFlagChange( obj ) {&lt;br /&gt;
	var type = obj.getAttribute( &amp;#039;id&amp;#039; ).substring( 6 );&lt;br /&gt;
	var val = obj.value;&lt;br /&gt;
	if ( val == type ) {&lt;br /&gt;
		obj.value = &amp;#039;!&amp;#039; + type;&lt;br /&gt;
	} else if ( val == &amp;#039;!&amp;#039; + type ) {&lt;br /&gt;
		obj.value = arc_i18n.all;&lt;br /&gt;
	} else {&lt;br /&gt;
		obj.value = type;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFormNamespacesCB( obj ) {&lt;br /&gt;
	if ( !obj.query || !obj.query.namespaces ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var ns = obj.query.namespaces;&lt;br /&gt;
	var nsb = document.getElementById( &amp;#039;arc-ns-boxen&amp;#039; );&lt;br /&gt;
	for ( var i in ns ) {&lt;br /&gt;
		if ( typeof i != &amp;#039;string&amp;#039; || ns[i].id &amp;lt; 0 ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var title = ns[i][&amp;#039;*&amp;#039;];&lt;br /&gt;
		if ( ns[i].id === &amp;#039;&amp;#039; ) {&lt;br /&gt;
			title = arc_i18n.nsmain;&lt;br /&gt;
		}&lt;br /&gt;
		var canon = ns[i].canonical || &amp;#039;&amp;#039;;&lt;br /&gt;
		addCheckboxChild( nsb, &amp;#039;arc-ns-&amp;#039; + ns[i].id, i, false, &amp;#039;arc-ns-&amp;#039; + ns[i].id, title, &amp;#039;arc-cbox&amp;#039;, ns[i].id + &amp;#039; =&amp;gt; &amp;#039; + canon );&lt;br /&gt;
		//nsb.appendChild( document.createElement( &amp;#039;br&amp;#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
	var div = nsb.appendChild( document.createElement( &amp;#039;div&amp;#039; ) );&lt;br /&gt;
	div.setAttribute( &amp;#039;class&amp;#039;, &amp;#039;clear&amp;#039; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addText( obj, txt, elem, classes ) {&lt;br /&gt;
	if ( elem ) {&lt;br /&gt;
		var e = document.createElement( elem );&lt;br /&gt;
		e.appendChild( document.createTextNode( txt ) );&lt;br /&gt;
		if ( classes ) {&lt;br /&gt;
			e.setAttribute( &amp;#039;class&amp;#039;, classes );&lt;br /&gt;
		}&lt;br /&gt;
		obj.appendChild( e );&lt;br /&gt;
		return e;&lt;br /&gt;
	} else {&lt;br /&gt;
		obj.appendChild( document.createTextNode( txt ) );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLinkChild( obj, href, text, id, classes, title ) {&lt;br /&gt;
	if ( !obj || !href || !text ) {&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	var a = document.createElement( &amp;#039;a&amp;#039; );&lt;br /&gt;
	a.setAttribute( &amp;#039;href&amp;#039;, href );&lt;br /&gt;
	a.appendChild( document.createTextNode( text ) );&lt;br /&gt;
	if ( id ) {&lt;br /&gt;
		a.setAttribute( &amp;#039;id&amp;#039;, id );&lt;br /&gt;
	}&lt;br /&gt;
	if ( classes ) {&lt;br /&gt;
		a.setAttribute( &amp;#039;class&amp;#039;, classes );&lt;br /&gt;
	}&lt;br /&gt;
	if ( title ) {&lt;br /&gt;
		a.setAttribute( &amp;#039;title&amp;#039;, title );&lt;br /&gt;
	}&lt;br /&gt;
	obj.appendChild( a );&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addCheckboxChild( obj, name, value, checked, id, label, classes, title ) {&lt;br /&gt;
	if ( !obj || !name ) {&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	var span = document.createElement( &amp;#039;span&amp;#039; );&lt;br /&gt;
	var c = document.createElement( &amp;#039;input&amp;#039; );&lt;br /&gt;
	c.setAttribute( &amp;#039;name&amp;#039;, name );&lt;br /&gt;
	c.setAttribute( &amp;#039;type&amp;#039;, &amp;#039;checkbox&amp;#039; );&lt;br /&gt;
	if ( value ) {&lt;br /&gt;
		c.setAttribute( &amp;#039;value&amp;#039;, value );&lt;br /&gt;
	}&lt;br /&gt;
	if ( checked ) {&lt;br /&gt;
		c.setAttribute( &amp;#039;checked&amp;#039;, &amp;#039;checked&amp;#039; );&lt;br /&gt;
	}&lt;br /&gt;
	if ( title ) {&lt;br /&gt;
		c.setAttribute( &amp;#039;title&amp;#039;, title );&lt;br /&gt;
	}&lt;br /&gt;
	span.appendChild( c );&lt;br /&gt;
	if ( id ) {&lt;br /&gt;
		c.setAttribute( &amp;#039;id&amp;#039;, id );&lt;br /&gt;
		if ( label ) {&lt;br /&gt;
			var l = document.createElement( &amp;#039;label&amp;#039; );&lt;br /&gt;
			l.setAttribute( &amp;#039;for&amp;#039;, id );&lt;br /&gt;
			l.appendChild( document.createTextNode( label ) );&lt;br /&gt;
			if ( title ) {&lt;br /&gt;
				l.setAttribute( &amp;#039;title&amp;#039;, title );&lt;br /&gt;
			}&lt;br /&gt;
			span.appendChild( l );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if ( classes ) {&lt;br /&gt;
		span.setAttribute( &amp;#039;class&amp;#039;, classes );&lt;br /&gt;
	}&lt;br /&gt;
	obj.appendChild( span );&lt;br /&gt;
	return span;&lt;br /&gt;
}&lt;br /&gt;
window.ajaxRcFormNamespacesCB = ajaxRcFormNamespacesCB;&lt;/div&gt;</summary>
		<author><name>en&gt;Jon (WMF)</name></author>
	</entry>
</feed>