<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js</id>
	<title>MediaWiki:Gadget-contribsrange.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;action=history"/>
	<updated>2026-06-26T15:50:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=1426853&amp;oldid=prev</id>
		<title>imported&gt;Hgzh: hotfix: geändertes Contributions-Form und Änderungen bei contentSub, dependency jquery.spinner</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=1426853&amp;oldid=prev"/>
		<updated>2023-06-15T20:28:04Z</updated>

		<summary type="html">&lt;p&gt;hotfix: geändertes Contributions-Form und Änderungen bei contentSub, dependency jquery.spinner&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//  _________________________________________________________________________________________&lt;br /&gt;
// |                                                                                         |&lt;br /&gt;
// |                    === WARNING: GLOBAL GADGET FILE ===                                  |&lt;br /&gt;
// |                  Changes to this page affect many users.                                |&lt;br /&gt;
// | Please discuss changes on the talk page or on [[Wikipedia_talk:Gadget]] before editing. |&lt;br /&gt;
// |_________________________________________________________________________________________|&lt;br /&gt;
//&lt;br /&gt;
// Imported from version 312947638 as of September 10, 2009 from [[User:Splarka/contribsrange.js]]&lt;br /&gt;
// See notes below&lt;br /&gt;
&lt;br /&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( mw.config.get( &amp;#039;wgCanonicalSpecialPageName&amp;#039; ) == &amp;#039;Contributions&amp;#039; ) {&lt;br /&gt;
  $(mw.loader.using([&amp;#039;mediawiki.util&amp;#039;, &amp;#039;jquery.spinner&amp;#039;], 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 = &amp;#039;//upload.wikimedia.org/wikipedia/commons/a/ad/Arr_r.png&amp;#039;;&lt;br /&gt;
  var crImgSho = &amp;#039;//upload.wikimedia.org/wikipedia/commons/f/f0/Arr_d.png&amp;#039;;&lt;br /&gt;
  mw.util.addCSS(&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;
function prefixContribsInit() {&lt;br /&gt;
  mw.util.addSubtitle(&amp;#039; \u2022 Du kannst ein Sternchen (wie 123.45.67.*) als Platzhalter verwenden.&amp;#039;);&lt;br /&gt;
  var ucparent = $( &amp;#039;.mw-body-content form&amp;#039; ).first().parent();&lt;br /&gt;
  var uctarget = $( &amp;#039;#mw-target-user-or-ip input&amp;#039; ).attr( &amp;#039;value&amp;#039; );&lt;br /&gt;
  if(!uctarget) return;&lt;br /&gt;
&lt;br /&gt;
  //general optionlets independent of type of search.&lt;br /&gt;
  var ucns = $( &amp;#039;#namespace select&amp;#039; ).val();&lt;br /&gt;
  var opt_ns = (parseInt(ucns) &amp;gt; -1) ? &amp;#039;&amp;amp;ucnamespace=&amp;#039; + ucns : &amp;#039;&amp;#039;;&lt;br /&gt;
  var opts_ts = &amp;#039;&amp;#039;;&lt;br /&gt;
  var dateStart = $( &amp;#039;#mw-date-start input[name=&amp;quot;start&amp;quot;]&amp;#039; ).val();&lt;br /&gt;
  var dateEnd = $( &amp;#039;#mw-date-end input[name=&amp;quot;end&amp;quot;]&amp;#039; ).val();&lt;br /&gt;
  if( dateStart ) {&lt;br /&gt;
    opts_ts += &amp;#039;&amp;amp;ucstart=&amp;#039; + dateStart + &amp;#039;T23:59:59Z&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  if( dateEnd ) {&lt;br /&gt;
    opts_ts += &amp;#039;&amp;amp;ucend=&amp;#039; + dateEnd + &amp;#039;T23:59:59Z&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;)) opts_se += &amp;#039;&amp;amp;ucstart=&amp;#039; + encodeURIComponent(queryString(&amp;#039;ucstart&amp;#039;));&lt;br /&gt;
  if(queryString(&amp;#039;ucend&amp;#039;)) opts_se += &amp;#039;&amp;amp;ucend=&amp;#039; + encodeURIComponent(queryString(&amp;#039;ucend&amp;#039;));&lt;br /&gt;
  if(opts_se == &amp;#039;&amp;#039;) {&lt;br /&gt;
    var options = opt_ns + opts_ts + &amp;#039;&amp;amp;ucdir=newer&amp;#039;;&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 = mw.config.get( &amp;#039;wgServer&amp;#039; ) + mw.config.get( &amp;#039;wgScriptPath&amp;#039; ) + &amp;#039;/api.php?action=query&amp;amp;format=json&amp;amp;rawcontinue=&amp;amp;callback=prefixContribs&amp;amp;list=usercontribs&amp;amp;ucprop=ids|title|timestamp|comment|size|sizediff&amp;#039; + options + &amp;#039;&amp;amp;uclimit=&amp;#039; + parseInt(crLimit);&lt;br /&gt;
  if(false &amp;amp;&amp;amp; uctarget.search(patternCIDR) == 0) {&lt;br /&gt;
    prefixContribsStartbox(ucparent);&lt;br /&gt;
    var cidr = uctarget.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, lets 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) url += &amp;#039;|&amp;#039;;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  } else if(uctarget.search(patternWild) == 0) {&lt;br /&gt;
    //very simple wildcard, lets do-er&lt;br /&gt;
    prefixContribsStartbox(ucparent);&lt;br /&gt;
    var prefix = uctarget.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;
  } else {&lt;br /&gt;
    //no user or no userprefix, nothing to do&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  mw.loader.load(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:window.prefixContribsToggleAll();&amp;#039;,&amp;#039;alle auf/zu&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;Suche …&amp;#039;));&lt;br /&gt;
  res.appendChild(spin);&lt;br /&gt;
  $(spin).injectSpinner(&amp;#039;prefixcontribs-spin&amp;#039;);&lt;br /&gt;
  parent.append(res);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.prefixContribs = function(obj) {&lt;br /&gt;
  if(!obj[&amp;#039;query&amp;#039;] || !obj[&amp;#039;query&amp;#039;][&amp;#039;usercontribs&amp;#039;]) return;&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; Für diesen Netzbereich wurden keine Änderungen gefunden.&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:window.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;
    var script = mw.config.get( &amp;#039;wgScript&amp;#039; );&lt;br /&gt;
     li.appendChild(document.createTextNode(cidr[i].timestamp.replace(/[TZ]/g,&amp;#039; &amp;#039;)));&lt;br /&gt;
     addlinkchild(li, script + &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, script + &amp;#039;?title=User_talk:&amp;#039; + euser, &amp;#039;Diskussion&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;mw-mightexist&amp;#039;);&lt;br /&gt;
     li.appendChild(document.createTextNode(&amp;#039;) bearbeitete (&amp;#039;));&lt;br /&gt;
     addlinkchild(li, script + &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, script + &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) li.appendChild(document.createTextNode(&amp;#039; (&amp;#039; + cidr[i].comment + &amp;#039;)&amp;#039;));&lt;br /&gt;
     if(cidr[i].sizediff) li.appendChild(document.createTextNode(&amp;#039; [&amp;#039; + cidr[i].sizediff.toString().replace(/^(\d)/i,&amp;#039;+$1&amp;#039;) + &amp;#039;]&amp;#039;));&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(!obj[&amp;#039;query-continue&amp;#039;] || !obj[&amp;#039;query-continue&amp;#039;][&amp;#039;usercontribs&amp;#039;] || !obj[&amp;#039;query-continue&amp;#039;][&amp;#039;usercontribs&amp;#039;][&amp;#039;uccontinue&amp;#039;]) {&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; Es wurden viele Ergebnisse gefunden. Um sie alle zu sehen klicke &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) gaurl = gaurl.substr(0,gaurl.indexOf(&amp;#039;#&amp;#039;));&lt;br /&gt;
     if(gaurl.indexOf(&amp;#039;?&amp;#039;) == -1) gaurl += &amp;#039;?&amp;#039;;&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;hier&amp;#039;));&lt;br /&gt;
    prog.appendChild(ga);&lt;br /&gt;
    prog.appendChild(document.createTextNode(&amp;#039;. Achtung: Könnte den Browser lahmlegen!&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;
    mw.loader.load(url);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsNumerate() {&lt;br /&gt;
  var lsts = $(&amp;#039;ul.cr-list&amp;#039;);&lt;br /&gt;
  lsts.each( function() {&lt;br /&gt;
    var dv = document.getElementById(&amp;#039;d-&amp;#039; + this.getAttribute(&amp;#039;id&amp;#039;));&lt;br /&gt;
    dv.appendChild(document.createTextNode(&amp;#039; &amp;#039; + this.getElementsByTagName(&amp;#039;li&amp;#039;).length + &amp;#039; gefunden&amp;#039;));&lt;br /&gt;
  });&lt;br /&gt;
  if(lsts.length == 1) window.prefixContribsToggleDiv(lsts.eq(0).attr(&amp;#039;id&amp;#039;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.prefixContribsToggleAll = function() {&lt;br /&gt;
  var lsts = $(&amp;#039;ul.cr-list&amp;#039;);&lt;br /&gt;
  if(lsts.length == 0) return;&lt;br /&gt;
  var togglefrom = lsts.first().css(&amp;#039;display&amp;#039;);&lt;br /&gt;
  lsts.each( function() {&lt;br /&gt;
    if(this.style.display == togglefrom) window.prefixContribsToggleDiv(this.id);&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.prefixContribsToggleDiv = function(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) return;&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) return false;&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) a.setAttribute(&amp;#039;id&amp;#039;,id);&lt;br /&gt;
  if(classes) a.setAttribute(&amp;#039;class&amp;#039;,classes);&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>imported&gt;Hgzh</name></author>
	</entry>
</feed>