<link href="../fonts/font.css" rel="stylesheet" type="text/css">

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-ajaxrecentchanges.js</id>
		<title>مدیاویکی:Gadget-ajaxrecentchanges.js - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-ajaxrecentchanges.js"/>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-ajaxrecentchanges.js&amp;action=history"/>
		<updated>2026-08-03T03:19:28Z</updated>
		<subtitle>تاریخچهٔ ویرایش‌های این صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-ajaxrecentchanges.js&amp;diff=24&amp;oldid=prev</id>
		<title>Admin: صفحه‌ای تازه حاوی «/* Ajax recent changes and patrolling framework, version [0.0.6a] Originally from: http://en.wikipedia.org/wiki/User:Splarka/ajaxrecentchan...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-ajaxrecentchanges.js&amp;diff=24&amp;oldid=prev"/>
				<updated>2016-02-27T10:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «/* Ajax recent changes and patrolling framework, version [0.0.6a] Originally from: http://en.wikipedia.org/wiki/User:Splarka/ajaxrecentchan...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&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 'logaction' (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;
		'title': 'Ajax recent changes',&lt;br /&gt;
		'desc': 'Paginated enhanced ajax recent changes and patrolling.',&lt;br /&gt;
		'mypatrol': 'My patrol log',&lt;br /&gt;
		'startstamp': 'Start timestamp (8601)',&lt;br /&gt;
		'limit': 'Limit',&lt;br /&gt;
		'showapb': 'Show ajax patrol buttons',&lt;br /&gt;
		'filterflag': 'Filter by flag',&lt;br /&gt;
		'minor': 'Minor',&lt;br /&gt;
		'bot': 'Bot',&lt;br /&gt;
		'anon': 'Anon',&lt;br /&gt;
		'redirect': 'Redirect',&lt;br /&gt;
		'patrolled': 'Patrolled',&lt;br /&gt;
		'all': 'All',&lt;br /&gt;
		'filtertype': 'Filter by type',&lt;br /&gt;
		'edit': 'Edits',&lt;br /&gt;
		'newpages': 'New pages',&lt;br /&gt;
		'log': 'Logs',&lt;br /&gt;
		'filterns': 'Filter by namespace',&lt;br /&gt;
		'fetch': 'Fetch',&lt;br /&gt;
		'noresults': 'Nothing found.',&lt;br /&gt;
		'diff': 'diff',&lt;br /&gt;
		'hist': 'hist',&lt;br /&gt;
		'patrolbtn': 'Patrol',&lt;br /&gt;
		'logsuffix': ' log',&lt;br /&gt;
		'patroldone': 'done',&lt;br /&gt;
		'nsmain': 'MAIN'&lt;br /&gt;
	};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	mw.util.addPortletLink( 'p-tb', '/wiki/Special:BlankPage?blankspecial=ajaxrc', arc_i18n.title, 't-ajax-rc', arc_i18n.desc );&lt;br /&gt;
	if (&lt;br /&gt;
		mw.config.get( 'wgCanonicalSpecialPageName' ) &amp;amp;&amp;amp;&lt;br /&gt;
		mw.config.get( 'wgCanonicalSpecialPageName' ).toLowerCase() == 'blankpage' &amp;amp;&amp;amp;&lt;br /&gt;
		mw.util.getParamValue( 'blankspecial' ) == 'ajaxrc'&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( 'p-tb', '/wiki/Special:Log/patrol?user=' + encodeURIComponent( mw.config.get( 'wgUserName' ) ), arc_i18n.mypatrol );&lt;br /&gt;
	// subvert this Special: page to our own needs.&lt;br /&gt;
	var bcon = document.getElementById( 'bodyContent' ) || document.getElementById( 'mw_contentholder' );&lt;br /&gt;
	mw.util.$content.children( '.firstHeading' )[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 != 'siteSub' &amp;amp;&amp;amp; bcur.id != 'contentSub' &amp;amp;&amp;amp; bcur.className != 'visualClear' ) {&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 = '';&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.util.addCSS(&lt;br /&gt;
		'#arc-form {border:1px solid black;padding:.5em;margin:2em;} #arc-out {border:1px solid black;padding:.5em;margin:.5em;}' +&lt;br /&gt;
		'#arc-fetch {padding:0 1em;margin:0 .5em;} .clear {clear:both;} .arc-box {border:1px solid #bbbbbb;padding:.2em;margin:.5em;}' +&lt;br /&gt;
		'.arc-cbox {display:block;float:left;width:11em;white-space:nowrap;overflow:hidden;font-size:80%;margin:0 .f2em;}' +&lt;br /&gt;
		'.arc-box-label {text-align:center;border-bottom:1px solid #bbbbbb;margin-bottom:.3em} .spacer {border:1px solid transparent;margin-right:.5em;}' +&lt;br /&gt;
		'.arc-patrol {border:2px outset #bbbbbb;background-color:#bbbbbb;color:black;padding:2px;margin:3px;text-decoration:none;}'&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	var form = '&amp;lt;form id=&amp;quot;arc-form&amp;quot; action=&amp;quot;javascript:void(0)&amp;quot;&amp;gt;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-start&amp;quot;&amp;gt;' + arc_i18n.startstamp + ':&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;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-limit&amp;quot;&amp;gt;' + arc_i18n.limit + ':&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;' +&lt;br /&gt;
		'&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;' + arc_i18n.showapb + '&amp;lt;/label&amp;gt;&amp;lt;br /&amp;gt;' +&lt;br /&gt;
		'&amp;lt;div class=&amp;quot;arc-box&amp;quot; id=&amp;quot;arc-f-boxen&amp;quot;&amp;gt;' + arc_i18n.filterflag + ': &amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-f-minor&amp;quot;&amp;gt;' + arc_i18n.minor + ':&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;' + arc_i18n.all + '&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;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-f-bot&amp;quot;&amp;gt;' + arc_i18n.bot + ':&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;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-f-anon&amp;quot;&amp;gt;' + arc_i18n.anon + ':&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;' + arc_i18n.all + '&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;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-f-redirect&amp;quot;&amp;gt;' + arc_i18n.redirect + ':&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;' + arc_i18n.all + '&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;' +&lt;br /&gt;
		'&amp;lt;label for=&amp;quot;arc-f-patrolled&amp;quot;&amp;gt;' + arc_i18n.patrolled + ':&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;' + arc_i18n.all + '&amp;quot; onclick=&amp;quot;ajaxRcFlagChange(this)&amp;quot; /&amp;gt;' +&lt;br /&gt;
		'&amp;lt;/div&amp;gt;' +&lt;br /&gt;
		'&amp;lt;div class=&amp;quot;arc-box&amp;quot; id=&amp;quot;arc-t-boxen&amp;quot;&amp;gt;' + arc_i18n.filtertype + ': &amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;' +&lt;br /&gt;
		'&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;' + arc_i18n.edit + '&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;' +&lt;br /&gt;
		'&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;' + arc_i18n.newpages + '&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;' +&lt;br /&gt;
		'&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;' + arc_i18n.log + '&amp;lt;/label&amp;gt;&amp;lt;span class=&amp;quot;spacer&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;' +&lt;br /&gt;
		'&amp;lt;/div&amp;gt;' +&lt;br /&gt;
		'&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;' + arc_i18n.filterns + '&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;' +&lt;br /&gt;
		'' +&lt;br /&gt;
		'&amp;lt;input type=&amp;quot;button&amp;quot; name=&amp;quot;fetch&amp;quot; value=&amp;quot;' + arc_i18n.fetch + '&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;' +&lt;br /&gt;
		'&amp;lt;/form&amp;gt;';&lt;br /&gt;
&lt;br /&gt;
	bcon.innerHTML += form + '&amp;lt;div id=&amp;quot;arc-out&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;';&lt;br /&gt;
	mw.loader.load( mw.config.get( 'wgScriptPath' ) + '/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=namespaces&amp;amp;format=json&amp;amp;callback=ajaxRcFormNamespacesCB' );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFetch( timestamp, direction ) {&lt;br /&gt;
	document.getElementById( 'arc-fetch' ).setAttribute( 'disabled', 'disabled' );&lt;br /&gt;
	var nav = document.getElementById( 'arc-fetchnav' );&lt;br /&gt;
	if ( nav ) {&lt;br /&gt;
		nav.style.visibility = 'hidden';&lt;br /&gt;
	}&lt;br /&gt;
	$( '#arc-fetch' ).after( $.createSpinner( 'arc-spin' ) );&lt;br /&gt;
&lt;br /&gt;
	// direction&lt;br /&gt;
	var rcdir = '';&lt;br /&gt;
	if ( direction ) {&lt;br /&gt;
		rcdir = '&amp;amp;rcdir=' + direction + '&amp;amp;requestid=' + direction;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// start&lt;br /&gt;
	var rcstart = timestamp || document.getElementById( 'arc-start' ).value;&lt;br /&gt;
	rcstart = rcstart.replace( /[^\d]*/g, '' );&lt;br /&gt;
	if ( rcstart !== '' &amp;amp;&amp;amp; /^\d{14}$/.test( rcstart ) ) {&lt;br /&gt;
		rcstart = '&amp;amp;rcstart=' + rcstart;&lt;br /&gt;
	} else {&lt;br /&gt;
		rcstart = '';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// limit&lt;br /&gt;
	var rclimit = parseInt( document.getElementById( 'arc-limit' ).value );&lt;br /&gt;
	if ( isNaN( rclimit ) ) {&lt;br /&gt;
		rclimit = 100;&lt;br /&gt;
	}&lt;br /&gt;
	rclimit = '&amp;amp;rclimit=' + rclimit;&lt;br /&gt;
&lt;br /&gt;
	// type&lt;br /&gt;
	var tb = document.getElementById( 'arc-t-boxen' ).getElementsByTagName( 'input' );&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;amp;rctype=' + rctype.join( '|' );&lt;br /&gt;
	} else {&lt;br /&gt;
		rctype = '';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// show (flags)&lt;br /&gt;
	var fb = document.getElementById( 'arc-f-boxen' ).getElementsByTagName( 'input' );&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;amp;rcshow=' + rcshow.join( '|' );&lt;br /&gt;
	} else {&lt;br /&gt;
		rcshow = '';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// namespace&lt;br /&gt;
	var nsb = document.getElementById( 'arc-ns-boxen' ).getElementsByTagName( 'input' );&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;amp;rcnamespace=' + rcnamespace.join( '|' );&lt;br /&gt;
	} else {&lt;br /&gt;
		rcnamespace = '';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// prop &amp;amp; token&lt;br /&gt;
	var rcprop = '&amp;amp;rcprop=user|comment|flags|timestamp|title|ids|sizes|redirect|patrolled|loginfo';&lt;br /&gt;
	var rctoken = '&amp;amp;rctoken=patrol';&lt;br /&gt;
&lt;br /&gt;
	$.ajax( {&lt;br /&gt;
		url: mw.util.wikiScript( 'api' ) + '?action=query&amp;amp;format=json&amp;amp;rawcontinue=&amp;amp;list=recentchanges' + 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;quot; + data.replace( /\'/g, &amp;quot;`&amp;quot; ) + &amp;quot;')&amp;quot; );&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFetchHandler( obj, txt ) {&lt;br /&gt;
	document.getElementById( 'arc-fetch' ).removeAttribute( 'disabled' );&lt;br /&gt;
	$.removeSpinner( 'arc-spin' );&lt;br /&gt;
	var out = document.getElementById( 'arc-out' );&lt;br /&gt;
	var ajaxpatrol = document.getElementById( 'arc-patrol-enable' ).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( 'API error: ' + obj.error.code + ' - ' + obj.error.info + '\n' ) );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	if ( !obj.query || !obj.query.recentchanges ) {&lt;br /&gt;
		out.appendChild( document.createTextNode( 'Unexpected response: ' + txt + '\n' ) );&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 == 'newer' ) {&lt;br /&gt;
		backwards = true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var nav = document.createElement( 'div' );&lt;br /&gt;
	nav.setAttribute( 'id', 'arc-fetchnav' );&lt;br /&gt;
	if (&lt;br /&gt;
		obj['query-continue'] &amp;amp;&amp;amp;&lt;br /&gt;
		obj['query-continue'].recentchanges &amp;amp;&amp;amp;&lt;br /&gt;
		obj['query-continue'].recentchanges.rcstart&lt;br /&gt;
	)&lt;br /&gt;
	{&lt;br /&gt;
		var rcstart = obj['query-continue'].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, 'javascript:ajaxRcFetch(&amp;quot;' + rcstartnewer + '&amp;quot;,&amp;quot;newer&amp;quot;)', 'Newer' );&lt;br /&gt;
		addText( nav, ' | ');&lt;br /&gt;
		addLinkChild( nav, 'javascript:ajaxRcFetch(&amp;quot;' + rcstartolder + '&amp;quot;,&amp;quot;older&amp;quot;)', 'Older' );&lt;br /&gt;
	} else if ( backwards ) {&lt;br /&gt;
		addLinkChild( nav, 'javascript:ajaxRcFetch()', 'Older' );&lt;br /&gt;
	}&lt;br /&gt;
	out.appendChild( nav );&lt;br /&gt;
&lt;br /&gt;
	var ul = document.createElement( 'ul' );&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( 'li' );&lt;br /&gt;
		var rcid = '';&lt;br /&gt;
		if ( r.type == 'edit' ) {&lt;br /&gt;
			if ( typeof r.patrolled == 'undefined' &amp;amp;&amp;amp; r.rcid &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				rcid = '&amp;amp;rcid=' + r.rcid;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, '(' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?oldid=' + r.old_revid + '&amp;amp;diff=' + r.revid + rcid, arc_i18n.diff );&lt;br /&gt;
			addText( li, ') (' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?curid=' + r.pageid + '&amp;amp;action=history', arc_i18n.hist );&lt;br /&gt;
			addText( li, ') . . ' );&lt;br /&gt;
			if ( typeof r.bot != 'undefined' ) {&lt;br /&gt;
				addText( li, 'b', 'span', 'bot' );&lt;br /&gt;
			}&lt;br /&gt;
			if ( typeof r.minor != 'undefined' ) {&lt;br /&gt;
				addText( li, 'm', 'span', 'minor' );&lt;br /&gt;
			}&lt;br /&gt;
			if ( rcid !== '' &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addText( li, '!', 'span', 'unpatrolled' );&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, ' ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?curid=' + r.pageid, r.title );&lt;br /&gt;
			var size = '' + ( parseInt( r.newlen ) - parseInt( r.oldlen ) );&lt;br /&gt;
			if ( size.substring( 0, 1 ) != '-' ) {&lt;br /&gt;
				size = '+' + size;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, '; ' + r.timestamp.replace( /[TZ]/ig, ' ' ) + ' . . (' + size + ') . . ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?title=Special:Contributions&amp;amp;target=' + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, ' (' + r.comment + ')', 'i' );&lt;br /&gt;
			}&lt;br /&gt;
			if ( ajaxpatrol === true &amp;amp;&amp;amp; rcid !== '' &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addLinkChild( li, 'javascript:ajaxRcDoPatrol(&amp;quot;' + r.rcid + '&amp;quot;,&amp;quot;' + encodeURIComponent( encodeURIComponent( r.patroltoken ) ) + '&amp;quot;)', arc_i18n.patrolbtn, 'arc-patrol-' + r.rcid, 'arc-patrol' );&lt;br /&gt;
			}&lt;br /&gt;
		} else if ( r.type == 'new' ) {&lt;br /&gt;
			if ( typeof r.patrolled == 'undefined' &amp;amp;&amp;amp; r.rcid ) {&lt;br /&gt;
				rcid = '&amp;amp;rcid=' + r.rcid;&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, '(' + arc_i18n.diff + ') (' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?curid=' + r.pageid + '&amp;amp;action=history', arc_i18n.hist );&lt;br /&gt;
			addText( li, ') . . ' );&lt;br /&gt;
			addText( li, 'N', 'span', 'newpage' );&lt;br /&gt;
			if ( rcid !== '' &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addText( li, '!', 'span', 'unpatrolled' );&lt;br /&gt;
			}&lt;br /&gt;
			addText( li, ' ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?curid=' + r.pageid + rcid, r.title );&lt;br /&gt;
			addText( li, '; ' + r.timestamp.replace( /[TZ]/ig, ' ' ) + ' . . (+' + r.newlen + ') . . ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?title=Special:Contributions&amp;amp;target=' + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, ' (' + r.comment + ')', 'i' );&lt;br /&gt;
			}&lt;br /&gt;
			if ( ajaxpatrol === true &amp;amp;&amp;amp; rcid !== '' &amp;amp;&amp;amp; r.patroltoken ) {&lt;br /&gt;
				addLinkChild( li, 'javascript:ajaxRcDoPatrol(&amp;quot;' + r.rcid + '&amp;quot;,&amp;quot;' + encodeURIComponent( encodeURIComponent( r.patroltoken ) ) + '&amp;quot;)', arc_i18n.patrolbtn, 'arc-patrol-' + r.rcid, 'arc-patrol' );&lt;br /&gt;
			}&lt;br /&gt;
		} else if ( r.type == 'log' ) {&lt;br /&gt;
			addText( li, '(' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?title=Special:Log&amp;amp;type=' + r.logtype, r.logtype + arc_i18n, arc_i18n.logsuffix );&lt;br /&gt;
			addText( li, '); ' + r.timestamp.replace( /[TZ]/ig, ' ' ) + ' . . ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?title=Special:Contributions&amp;amp;target=' + encodeURIComponent( r.user ), r.user );&lt;br /&gt;
			addText( li,' ' + r.logaction + ' ' );&lt;br /&gt;
			addLinkChild( li, mw.config.get( 'wgScript' ) + '?title=' + encodeURIComponent( r.title ), r.title );&lt;br /&gt;
			if ( r.comment ) {&lt;br /&gt;
				addText( li, ' (' + r.comment + ')', 'i' );&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: 'POST',&lt;br /&gt;
		url: mw.util.wikiScript( 'api' ),&lt;br /&gt;
		data: {&lt;br /&gt;
			action: 'patrol',&lt;br /&gt;
			format: 'json',&lt;br /&gt;
			requestid: rcid,&lt;br /&gt;
			token: token&lt;br /&gt;
		}&lt;br /&gt;
	} ).done( function( data ) {&lt;br /&gt;
		eval( 'ajaxRcDidPatrol(' + data + ')' );&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( 'API error in patrolling rcid=' + obj.requestid + ' : ' + obj.error.code + '\n' + obj.error.info );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var button = document.getElementById( 'arc-patrol-' + obj.requestid );&lt;br /&gt;
	if ( !button || !obj.patrol ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	button.setAttribute( 'href', 'javascript:alert(&amp;quot;(' + arc_i18n.patroldone + ')&amp;quot;);' );&lt;br /&gt;
	addText( button, ' (' + arc_i18n.patroldone + ')' );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ajaxRcFlagChange( obj ) {&lt;br /&gt;
	var type = obj.getAttribute( 'id' ).substring( 6 );&lt;br /&gt;
	var val = obj.value;&lt;br /&gt;
	if ( val == type ) {&lt;br /&gt;
		obj.value = '!' + type;&lt;br /&gt;
	} else if ( val == '!' + 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( 'arc-ns-boxen' );&lt;br /&gt;
	for ( var i in ns ) {&lt;br /&gt;
		if ( typeof i != 'string' || ns[i].id &amp;lt; 0 ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var title = ns[i]['*'];&lt;br /&gt;
		if ( ns[i].id === '' ) {&lt;br /&gt;
			title = arc_i18n.nsmain;&lt;br /&gt;
		}&lt;br /&gt;
		var canon = ns[i].canonical || '';&lt;br /&gt;
		addCheckboxChild( nsb, 'arc-ns-' + ns[i].id, i, false, 'arc-ns-' + ns[i].id, title, 'arc-cbox', ns[i].id + ' =&amp;gt; ' + canon );&lt;br /&gt;
		//nsb.appendChild( document.createElement( 'br' ) );&lt;br /&gt;
	}&lt;br /&gt;
	var div = nsb.appendChild( document.createElement( 'div' ) );&lt;br /&gt;
	div.setAttribute( 'class', 'clear' );&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( 'class', 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( 'a' );&lt;br /&gt;
	a.setAttribute( 'href', href );&lt;br /&gt;
	a.appendChild( document.createTextNode( text ) );&lt;br /&gt;
	if ( id ) {&lt;br /&gt;
		a.setAttribute( 'id', id );&lt;br /&gt;
	}&lt;br /&gt;
	if ( classes ) {&lt;br /&gt;
		a.setAttribute( 'class', classes );&lt;br /&gt;
	}&lt;br /&gt;
	if ( title ) {&lt;br /&gt;
		a.setAttribute( 'title', 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( 'span' );&lt;br /&gt;
	var c = document.createElement( 'input' );&lt;br /&gt;
	c.setAttribute( 'name', name );&lt;br /&gt;
	c.setAttribute( 'type', 'checkbox' );&lt;br /&gt;
	if ( value ) {&lt;br /&gt;
		c.setAttribute( 'value', value );&lt;br /&gt;
	}&lt;br /&gt;
	if ( checked ) {&lt;br /&gt;
		c.setAttribute( 'checked', 'checked' );&lt;br /&gt;
	}&lt;br /&gt;
	if ( title ) {&lt;br /&gt;
		c.setAttribute( 'title', title );&lt;br /&gt;
	}&lt;br /&gt;
	span.appendChild( c );&lt;br /&gt;
	if ( id ) {&lt;br /&gt;
		c.setAttribute( 'id', id );&lt;br /&gt;
		if ( label ) {&lt;br /&gt;
			var l = document.createElement( 'label' );&lt;br /&gt;
			l.setAttribute( 'for', id );&lt;br /&gt;
			l.appendChild( document.createTextNode( label ) );&lt;br /&gt;
			if ( title ) {&lt;br /&gt;
				l.setAttribute( 'title', 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( 'class', classes );&lt;br /&gt;
	}&lt;br /&gt;
	obj.appendChild( span );&lt;br /&gt;
	return span;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>