<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://informatiestandaarden.test-nictiz.nl/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js</id>
	<title>MediaWiki:Gadget-contribsrange.js - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://informatiestandaarden.test-nictiz.nl/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js"/>
	<link rel="alternate" type="text/html" href="https://informatiestandaarden.test-nictiz.nl/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;action=history"/>
	<updated>2026-04-23T18:46:54Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://informatiestandaarden.test-nictiz.nl/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=3254&amp;oldid=prev</id>
		<title>Ahenket: Nieuwe pagina aangemaakt met &#039;/* Special:Contributions Wildcard/CIDR lookup, version [0.2.7] Originally from: http://en.wikipedia.org/wiki/User:Splarka/contribsrange.js  Notes: * Uses the API wh...&#039;</title>
		<link rel="alternate" type="text/html" href="https://informatiestandaarden.test-nictiz.nl/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=3254&amp;oldid=prev"/>
		<updated>2013-07-19T18:23:20Z</updated>

		<summary type="html">&lt;p&gt;Nieuwe pagina aangemaakt met &amp;#039;/* Special:Contributions Wildcard/CIDR lookup, version [0.2.7] Originally from: http://en.wikipedia.org/wiki/User:Splarka/contribsrange.js  Notes: * Uses the API wh...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Special:Contributions Wildcard/CIDR lookup, version [0.2.7]&lt;br /&gt;
Originally from: http://en.wikipedia.org/wiki/User:Splarka/contribsrange.js&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Uses the API which is faster than most CIDR contrib tools.&lt;br /&gt;
** Needs 1.14 r42198+ for advanced continue.&lt;br /&gt;
* Currently uses a GET json via &amp;lt;script src=&amp;quot;&amp;quot;&amp;gt; to avoid ajax problems.&lt;br /&gt;
* Only currently works if submitted (or called by URL parameter, eg Special:Contributions/User).&lt;br /&gt;
** Checks namespace and date options in form.&lt;br /&gt;
** Also utilizes &amp;amp;ucstart and &amp;amp;ucend date parameters if supplied manually (not supported in the UI atm).&lt;br /&gt;
*** These parameter soverride the form date options.&lt;br /&gt;
* Uses: Submit any IP CIDR range /16 or from /24 to /32. Submit any string (at least 3 characters) with a suffixed asterisk.&lt;br /&gt;
** eg: [123.123.123.0/24 ] or [123.123.123.* ] or [Willy* ].&lt;br /&gt;
* Now keeps searching until it finds crMax (or forever with crshowall=true URI parameter).&lt;br /&gt;
** Puts them in a nice collapsed div stack, like enhanced recent changes.&lt;br /&gt;
* /25 and /26 ranges now disabled, since they are inaccurate (50 parameter limit), please use /24 (ucuserprefix) or /27 (32 parameters)&lt;br /&gt;
&lt;br /&gt;
To do:&lt;br /&gt;
* use ajax (let sysops/bots = 5000)?&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
if( wgCanonicalSpecialPageName == &amp;#039;Contributions&amp;#039; &amp;amp;&amp;amp; wgEnableAPI ) {&lt;br /&gt;
    $j( document ).ready( prefixContribsInit );&lt;br /&gt;
	var crContURI = &amp;#039;&amp;#039;; // query URI for continuing later&lt;br /&gt;
	var crLimit = 500; // limit for each query&lt;br /&gt;
	var crMax = 10000; // bypass with &amp;amp;crshowall=true URI parameter&lt;br /&gt;
	var crImgHid = stylepath + &amp;#039;/common/images/Arr_r.png&amp;#039;;&lt;br /&gt;
	var crImgSho = stylepath + &amp;#039;/common/images/Arr_d.png&amp;#039;;&lt;br /&gt;
	appendCSS(&lt;br /&gt;
		&amp;#039;.cr-list {padding-left:5px;}\n.cr-toggle-hidden {padding-left:16px;background: transparent no-repeat center left url(&amp;quot;&amp;#039; + crImgHid + &amp;#039;&amp;quot;)}&amp;#039; +&lt;br /&gt;
		&amp;#039;\n.cr-toggle-shown {padding-left:16px;background: transparent no-repeat center left url(&amp;quot;&amp;#039; + crImgSho + &amp;#039;&amp;quot;)}\n.mw-mightexist {font-style:italic;}&amp;#039; +&lt;br /&gt;
		&amp;#039;\n#results-from-CIDR {border:1px solid black;padding:.5em}\n#prefixcontribs-tog {float:right;border:1px solid black;text-decoration:none;color:black;padding:0 5px;}&amp;#039;&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsInit() {&lt;br /&gt;
	var show = document.getElementById( &amp;#039;contentSub&amp;#039; ) || document.getElementById( &amp;#039;topbar&amp;#039; );&lt;br /&gt;
	if( show ) {&lt;br /&gt;
		show.appendChild( document.createTextNode( &amp;#039; \u2022 Javascript-enhanced contributions lookup 0.2 enabled. You may enter a CIDR range or append an asterisk to do a prefix search.&amp;#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
	var ucfrm = document.getElementsByTagName( &amp;#039;form&amp;#039; )[0];&lt;br /&gt;
	if( !ucfrm.target ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// general optionlets independent of type of search.&lt;br /&gt;
	var opt_ns = ( parseInt( ucfrm.namespace[ucfrm.namespace.selectedIndex].value ) &amp;gt; -1 ) ? &amp;#039;&amp;amp;ucnamespace=&amp;#039; + ucfrm.namespace[ucfrm.namespace.selectedIndex].value : &amp;#039;&amp;#039;;&lt;br /&gt;
	var opt_ts = &amp;#039;&amp;#039;;&lt;br /&gt;
	var m = &amp;#039;&amp;#039; + ucfrm.month.selectedIndex;&lt;br /&gt;
	var y = ucfrm.year.value;&lt;br /&gt;
	if( m.length == 1 ) {&lt;br /&gt;
		m = &amp;#039;0&amp;#039; + m;&lt;br /&gt;
	}&lt;br /&gt;
	if( y &amp;gt; 2000 &amp;amp;&amp;amp; y &amp;lt; 2100 ) {&lt;br /&gt;
		opt_ts = &amp;#039;&amp;amp;ucstart=&amp;#039; + y + &amp;#039;-&amp;#039; + m + &amp;#039;-01T00:00:00Z&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
	var opts_se = &amp;#039;&amp;#039;;&lt;br /&gt;
	if( queryString( &amp;#039;ucstart&amp;#039; ) ) {&lt;br /&gt;
		opts_se += &amp;#039;&amp;amp;ucstart=&amp;#039; + encodeURIComponent( queryString( &amp;#039;ucstart&amp;#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( queryString( &amp;#039;ucend&amp;#039; ) ) {&lt;br /&gt;
		opts_se += &amp;#039;&amp;amp;ucend=&amp;#039; + encodeURIComponent( queryString( &amp;#039;ucend&amp;#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( opts_se == &amp;#039;&amp;#039; ) {&lt;br /&gt;
		var options = opt_ns + opt_ts;&lt;br /&gt;
	} else {&lt;br /&gt;
		var options = opt_ns + opts_se + &amp;#039;&amp;amp;ucdir=newer&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var patternCIDR = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(2[7-9]|3[0-2]|24|16)/i;&lt;br /&gt;
	var patternWild = /^.{3,}\*$/i;&lt;br /&gt;
	var url = wgServer + wgScriptPath + &amp;#039;/api.php?action=query&amp;amp;format=json&amp;amp;callback=prefixContribs&amp;amp;list=usercontribs&amp;#039; + options + &amp;#039;&amp;amp;uclimit=&amp;#039; + parseInt( crLimit );&lt;br /&gt;
	if( ucfrm.target.value.search( patternCIDR ) == 0 ) {&lt;br /&gt;
		prefixContribsStartbox( ucfrm.parentNode );&lt;br /&gt;
		var cidr = ucfrm.target.value.match( patternCIDR )[0];&lt;br /&gt;
		var range = cidr.match( /[^\/]\d{1,2}$/i )[0];&lt;br /&gt;
		if( range == 24 || range == 16 ) {&lt;br /&gt;
			// prefixable CIDR, lets do-er&lt;br /&gt;
			if( range == 24 ) {&lt;br /&gt;
				cidr = cidr.match( /\d{1,3}\.\d{1,3}\.\d{1,3}\./ )[0];&lt;br /&gt;
			} else {&lt;br /&gt;
				cidr = cidr.match( /\d{1,3}\.\d{1,3}\./ )[0];&lt;br /&gt;
			}&lt;br /&gt;
			url += &amp;#039;&amp;amp;ucuserprefix=&amp;#039; + cidr;&lt;br /&gt;
		} else {&lt;br /&gt;
			// complex CIDR, let&amp;#039;s figure it out&lt;br /&gt;
			var oct3 = cidr.match( /\.\d{1,3}\//i )[0].replace( /(\.|\/)/g, &amp;#039;&amp;#039; );&lt;br /&gt;
			cidr = cidr.match( /\d{1,3}\.\d{1,3}\.\d{1,3}\./ )[0];&lt;br /&gt;
			var num = Math.pow( 2, 32 - range );&lt;br /&gt;
			var start = oct3 - oct3 % num;&lt;br /&gt;
			url += &amp;#039;&amp;amp;ucuser=&amp;#039;;&lt;br /&gt;
			for( var i = start; i &amp;lt;= start + num; i++ ) {&lt;br /&gt;
				url += &amp;#039;&amp;#039; + cidr + i;&lt;br /&gt;
				if( i != start + num ) {&lt;br /&gt;
					url += &amp;#039;|&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} else if( ucfrm.target.value.search( patternWild ) == 0 ) {&lt;br /&gt;
		// very simple wildcard, let&amp;#039;s do-er&lt;br /&gt;
		prefixContribsStartbox( ucfrm.parentNode );&lt;br /&gt;
		var prefix = ucfrm.target.value.replace( /\*$/, &amp;#039;&amp;#039; );&lt;br /&gt;
		prefix = prefix.substr( 0, 1 ).toUpperCase() + prefix.substr( 1 );&lt;br /&gt;
		url += &amp;#039;&amp;amp;ucuserprefix=&amp;#039; + prefix;&lt;br /&gt;
	}&lt;br /&gt;
	importScriptURI( url );&lt;br /&gt;
	crContURI = url;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsStartbox( parent ) {&lt;br /&gt;
	var res = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
	res.setAttribute( &amp;#039;id&amp;#039;, &amp;#039;results-from-CIDR&amp;#039; );&lt;br /&gt;
	addlinkchild( res, &amp;#039;javascript:prefixContribsToggleAll();&amp;#039;, &amp;#039;toggle all&amp;#039;, &amp;#039;prefixcontribs-tog&amp;#039; );&lt;br /&gt;
	var spin = document.createElement( &amp;#039;span&amp;#039; );&lt;br /&gt;
	spin.setAttribute( &amp;#039;id&amp;#039;, &amp;#039;prefixcontribs-prog&amp;#039; );&lt;br /&gt;
	spin.appendChild( document.createTextNode( &amp;#039;Searching.&amp;#039; ) );&lt;br /&gt;
	res.appendChild( spin );&lt;br /&gt;
	injectSpinner( spin, &amp;#039;prefixcontribs-spin&amp;#039; );&lt;br /&gt;
	parent.appendChild( res );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribs( obj ) {&lt;br /&gt;
	if( !obj[&amp;#039;query&amp;#039;] || !obj[&amp;#039;query&amp;#039;][&amp;#039;usercontribs&amp;#039;] ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	cidr = obj[&amp;#039;query&amp;#039;][&amp;#039;usercontribs&amp;#039;];&lt;br /&gt;
	var res = document.getElementById( &amp;#039;results-from-CIDR&amp;#039; );&lt;br /&gt;
	if( cidr.length == 0 ) {&lt;br /&gt;
		res.appendChild( document.createTextNode( &amp;#039; No changes were found for this wildcard/CIDR range.&amp;#039; ) );&lt;br /&gt;
		removeSpinner( &amp;#039;prefixcontribs-spin&amp;#039; );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	for( var i = 0; i &amp;lt; cidr.length; i++ ) {&lt;br /&gt;
		var id = &amp;#039;cr-&amp;#039; + escapeID( cidr[i].user );&lt;br /&gt;
		var etitle = encodeURIComponent( cidr[i].title.replace( / /g, &amp;#039;_&amp;#039; ) ).replace( &amp;#039;%2F&amp;#039;, &amp;#039;/&amp;#039; ).replace( &amp;#039;%3A&amp;#039;, &amp;#039;:&amp;#039; );&lt;br /&gt;
		var euser = encodeURIComponent( cidr[i].user.replace( / /g, &amp;#039;_&amp;#039; ) ).replace( &amp;#039;%2F&amp;#039;, &amp;#039;/&amp;#039; ).replace( &amp;#039;%3A&amp;#039;, &amp;#039;:&amp;#039; );&lt;br /&gt;
		// group each result set based on the user name, create new div for new names&lt;br /&gt;
		if( !document.getElementById( id ) ) {&lt;br /&gt;
			var hdiv = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
			hdiv.setAttribute( &amp;#039;id&amp;#039;, &amp;#039;d-&amp;#039; + id );&lt;br /&gt;
			addlinkchild( hdiv, &amp;#039;javascript:prefixContribsToggleDiv(&amp;quot;&amp;#039; + id + &amp;#039;&amp;quot;)&amp;#039;, cidr[i].user, &amp;#039;m-&amp;#039; + id, &amp;#039;cr-toggle-hidden&amp;#039; );&lt;br /&gt;
			res.appendChild( hdiv );&lt;br /&gt;
			res.appendChild( document.createTextNode( &amp;#039;\n&amp;#039; ) );&lt;br /&gt;
			var rul = document.createElement( &amp;#039;ul&amp;#039; );&lt;br /&gt;
			rul.setAttribute( &amp;#039;id&amp;#039;, id );&lt;br /&gt;
			rul.setAttribute( &amp;#039;class&amp;#039;, &amp;#039;cr-list&amp;#039; );&lt;br /&gt;
			rul.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
			res.appendChild( rul );&lt;br /&gt;
			res.appendChild( document.createTextNode( &amp;#039;\n&amp;#039; ) );&lt;br /&gt;
		}&lt;br /&gt;
		var ul = document.getElementById( id );&lt;br /&gt;
		ul.appendChild( document.createTextNode( &amp;#039;\n&amp;#039; ) );&lt;br /&gt;
		var li = document.createElement( &amp;#039;li&amp;#039; );&lt;br /&gt;
		li.appendChild( document.createTextNode( cidr[i].timestamp.replace( /T[\d:]*Z/, &amp;#039; &amp;#039; ) ) );&lt;br /&gt;
		addlinkchild( li, wgScript + &amp;#039;?title=Special:Contributions/&amp;#039; + euser, cidr[i].user );&lt;br /&gt;
		li.appendChild( document.createTextNode( &amp;#039; (&amp;#039; ) );&lt;br /&gt;
		addlinkchild( li, wgScript + &amp;#039;?title=User_talk:&amp;#039; + euser, &amp;#039;talk&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;mw-mightexist&amp;#039; );&lt;br /&gt;
		li.appendChild( document.createTextNode( &amp;#039;) edited (&amp;#039; ) );&lt;br /&gt;
		addlinkchild( li, wgScript + &amp;#039;?title=&amp;#039; + etitle + &amp;#039;&amp;amp;curid=&amp;#039; + cidr[i].pageid + &amp;#039;&amp;amp;diff=prev&amp;amp;oldid=&amp;#039; + cidr[i].revid, &amp;#039;diff&amp;#039; );&lt;br /&gt;
		li.appendChild( document.createTextNode( &amp;#039;) &amp;#039; ) );&lt;br /&gt;
		addlinkchild( li, wgScript + &amp;#039;?title=&amp;#039; + etitle + &amp;#039;&amp;amp;curid=&amp;#039; + cidr[i].pageid, cidr[i].title );&lt;br /&gt;
		if( cidr[i].comment ) {&lt;br /&gt;
			li.appendChild( document.createTextNode( &amp;#039; (&amp;#039; + cidr[i].comment + &amp;#039;)&amp;#039; ) );&lt;br /&gt;
		}&lt;br /&gt;
		ul.appendChild( li );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// continue?&lt;br /&gt;
	crMax = crMax - cidr.length;&lt;br /&gt;
	var prog = document.getElementById( &amp;#039;prefixcontribs-prog&amp;#039; );&lt;br /&gt;
	if(&lt;br /&gt;
		!obj[&amp;#039;query-continue&amp;#039;] ||&lt;br /&gt;
		!obj[&amp;#039;query-continue&amp;#039;][&amp;#039;usercontribs&amp;#039;] ||&lt;br /&gt;
		!obj[&amp;#039;query-continue&amp;#039;][&amp;#039;usercontribs&amp;#039;][&amp;#039;uccontinue&amp;#039;]&lt;br /&gt;
	)&lt;br /&gt;
	{&lt;br /&gt;
		removeSpinner( &amp;#039;prefixcontribs-spin&amp;#039; );&lt;br /&gt;
		prog.parentNode.removeChild( prog );&lt;br /&gt;
		prefixContribsNumerate();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var url = crContURI + &amp;#039;&amp;amp;uccontinue=&amp;#039;+ obj[&amp;#039;query-continue&amp;#039;][&amp;#039;usercontribs&amp;#039;][&amp;#039;uccontinue&amp;#039;];&lt;br /&gt;
	if( crMax &amp;lt;= 0 &amp;amp;&amp;amp; queryString( &amp;#039;crshowall&amp;#039; ) != &amp;#039;true&amp;#039; ) {&lt;br /&gt;
		prog.appendChild( document.createTextNode( &amp;#039; Whoa! Finding a lot. To see them all click &amp;#039; ) );&lt;br /&gt;
		var ga = document.createElement( &amp;#039;a&amp;#039; );&lt;br /&gt;
		var gaurl = document.location.href;&lt;br /&gt;
		if( gaurl.indexOf( &amp;#039;#&amp;#039; ) != -1 ) {&lt;br /&gt;
			gaurl = gaurl.substr( 0, gaurl.indexOf( &amp;#039;#&amp;#039; ) );&lt;br /&gt;
		}&lt;br /&gt;
		if( gaurl.indexOf( &amp;#039;?&amp;#039; ) == -1 ) {&lt;br /&gt;
			gaurl += &amp;#039;?&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		gaurl += &amp;#039;&amp;amp;crshowall=true&amp;#039;;&lt;br /&gt;
		ga.setAttribute( &amp;#039;href&amp;#039;, gaurl );&lt;br /&gt;
		ga.appendChild( document.createTextNode( &amp;#039;here&amp;#039; ) );&lt;br /&gt;
		prog.appendChild( ga );&lt;br /&gt;
		prog.appendChild( document.createTextNode( &amp;#039;. (Warning: May bog down browser!)&amp;#039; ) );&lt;br /&gt;
		removeSpinner( &amp;#039;prefixcontribs-spin&amp;#039; );&lt;br /&gt;
		prefixContribsNumerate();&lt;br /&gt;
	} else {&lt;br /&gt;
		prog.appendChild( document.createTextNode( &amp;#039;.&amp;#039; ) );&lt;br /&gt;
		importScriptURI( url );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsNumerate() {&lt;br /&gt;
	var lsts = getElementsByClassName( document, &amp;#039;ul&amp;#039;, &amp;#039;cr-list&amp;#039; );&lt;br /&gt;
	for( var i = 0; i &amp;lt; lsts.length; i++ ) {&lt;br /&gt;
		var dv = document.getElementById( &amp;#039;d-&amp;#039; + lsts[i].getAttribute( &amp;#039;id&amp;#039; ) );&lt;br /&gt;
		dv.appendChild( document.createTextNode( &amp;#039; &amp;#039; + lsts[i].getElementsByTagName( &amp;#039;li&amp;#039; ).length + &amp;#039; found&amp;#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( lsts.length == 1 ) {&lt;br /&gt;
		prefixContribsToggleDiv( lsts[0].id );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsToggleAll() {&lt;br /&gt;
	var lsts = getElementsByClassName( document, &amp;#039;ul&amp;#039;, &amp;#039;cr-list&amp;#039; );&lt;br /&gt;
	if( lsts.length == 0 ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var togglefrom = lsts[0].style.display;&lt;br /&gt;
	for( var i = 0; i &amp;lt; lsts.length;i++ ) {&lt;br /&gt;
		if( lsts[i].style.display == togglefrom ) {&lt;br /&gt;
			prefixContribsToggleDiv( lsts[i].id );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsToggleDiv( id ) {&lt;br /&gt;
	var i = document.getElementById( id );&lt;br /&gt;
	var m = document.getElementById( &amp;#039;m-&amp;#039; + id );&lt;br /&gt;
	if( !i || !m ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	if( i.style.display == &amp;#039;none&amp;#039; ) {&lt;br /&gt;
		i.style.display = &amp;#039;block&amp;#039;;&lt;br /&gt;
		m.className = &amp;#039;cr-toggle-shown&amp;#039;&lt;br /&gt;
	} else {&lt;br /&gt;
		i.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
		m.className = &amp;#039;cr-toggle-hidden&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addlinkchild( obj, href, text, id, classes ) {&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;
	obj.appendChild( a );&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function escapeID( txt ) {&lt;br /&gt;
	var id = txt;&lt;br /&gt;
	id = id.replace( / /g, &amp;#039;_&amp;#039; );&lt;br /&gt;
	id = encodeURIComponent( id );&lt;br /&gt;
	id = id.replace( /\%3A/g, &amp;#039;:&amp;#039; );&lt;br /&gt;
	id = id.replace( /\%/g, &amp;#039;.&amp;#039; );&lt;br /&gt;
	return id;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function queryString( p ) {&lt;br /&gt;
	var re = RegExp( &amp;#039;[&amp;amp;?#]&amp;#039; + p + &amp;#039;=([^&amp;amp;#]*)&amp;#039; );&lt;br /&gt;
	var matches;&lt;br /&gt;
	if ( matches = re.exec( document.location ) ) {&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURI( matches[1] );&lt;br /&gt;
		} catch ( e ) {&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return null;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Ahenket</name></author>
	</entry>
</feed>