Zum Inhalt springen

Benutzer:Codeispoetry/helperFunctions.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 14. April 2008 um 00:50 Uhr durch Codeispoetry (Diskussion | Beiträge) (Blocking nach admin.js ausgelagert). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
 // helperFunctions.js:
 // enthält obligatorische Hilfsfunktionen für [[Benutzer:PDD/monobook.js]]
 
 // <nowiki>
 
 if (typeof(drawquickbar) == 'undefined')
       var drawquickbar = true;
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // URI-Parameter für fillActionPage(), benutzt in eintragen.js, hinweise.js
 // außerdem in addEditAndRevertLinks.js (nur subjp, minorp, speichernp)
 
 var subjp      = "subj";       // Subject
 var textp      = "txt";        // Für Text-Austausch
 var insp       = "ins";        // Vor dem Text einfügen
 var addp       = "add";        // an Text anhängen
 var minorp     = "minor";      // (k)leine Änderung
 var speichernp = "speichern";  // Auf "Speichern" klicken 
 var nocreatep  = "nocreate";   // beim Eintragen keine neue Seite generieren
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // URI-Parameter für setReload() und doReload()
 var reloadme   = "neuladen";   // merker für reload
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // absenden()
 // aufgerufen aus fillActionPage() und hinweis() in hinweise.js
 
 function absenden() {
	if (!debugme) {
		document.editform.wpSave.click();
	} else {
		alert ('Speichern');
	}
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // fillActionPage()  (früher aktion(), ganz früher loeschkandidat() )
 // von Littl, ergänzt von Revvar
 //
 // Entnimmt Parameter aus der URI, fügt sie in die Textfelder ein und klickt ggf. auf "Speichern"
 // (die aufgerufene Seite ist dabei immer im Editmodus)
 
 function fillActionPage() {
	// wenn Bausteineinfügung am Anfang:
	// nur einfügen, wenn Seite noch nicht gelöscht
	var pagedeleted = false;
	if (document.getElementById("newarticletext"))
		pagedeleted = true;
 
	// nur einfügen, wenn noch nicht eingetragen
	// der URI-Aktionsparameter ist immer entweder insp oder textp oder addp, daher else
	var doubleinsert = false;
	if (UrlParameters[textp] > "") 
		doubleinsert = findDoubleEntry(UrlParameters[textp], document.editform.wpTextbox1.value);
	else if (UrlParameters[insp] > "") 
		doubleinsert = findDoubleEntry(UrlParameters[insp], document.editform.wpTextbox1.value);
	else if (UrlParameters[addp] > "") 
		doubleinsert = findDoubleEntry(UrlParameters[addp], document.editform.wpTextbox1.value);
 
	// Textfeld ausfüllen
	if (UrlParameters[textp] > "") {
		if (doubleinsert)
			document.editform.wpTextbox1.value = UrlParameters[textp] + document.editform.wpTextbox1.value;
		else
			document.editform.wpTextbox1.value = UrlParameters[textp];
	} else if (UrlParameters[insp] > "") {
		document.editform.wpTextbox1.value = UrlParameters[insp] + document.editform.wpTextbox1.value;
	} else if (UrlParameters[addp] > "") {
		document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + UrlParameters[addp];
	}
 
	// weitere Felder ausfüllen
	if (UrlParameters[subjp] > "")
		document.editform.wpSummary.value = UrlParameters[subjp];
	if (UrlParameters[minorp] == "1")
		document.editform.wpMinoredit.checked=true;
 
	// wenn Textbaustein doppelt: Warnung
	if (doubleinsert)
		alert("Artikel enthält den gewählten Baustein bereits!");
	// wenn Seite schon gelöscht: Warnung
	else if (pagedeleted && (UrlParameters[nocreatep] == "1"))
		alert("Artikel wurde bereits gelöscht!");
	// wenn autosave eingeschaltet: Seite speichern
	else if (UrlParameters[speichernp] == "1")
		absenden();
 	}
 
   if (UrlParameters["diff"] > "") {
     function searchRollbackLink() {
       var tds = document.getElementsByTagName("td");
       for (var i=0; i<tds.length; i++) {
         var td = tds[i]; 
         if (td.className != "diff-ntitle") continue;
         var as = td.getElementsByTagName("a");
         for (var j=0; j<as.length; j++) {
           var a = as[j];
           if (!/.*action=rollback.*/(a.href)) continue;
           var newlink = document.createElement('a');
           a.setAttribute('accesskey', "s");
           newlink.setAttribute('href', a.href);
           var EditTextNode = document.createTextNode("normales Zurücksetzen");
           newlink.appendChild(EditTextNode);
           as[j].parentNode.insertBefore( newlink, as[j].nextSibling );
           as[j].parentNode.insertBefore( document.createTextNode(' | '), as[j].nextSibling );
           return a;
         }
       }
       return tds;
     }
 
     function RollAndSpam(rolluri) {
       var backrolled = rolluri.match(/\d+\.\d+\.\d+\.\d+/);
       if (backrolled) {
         location.href = rolluri;
         var uri = "http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:" + backrolled + "&action=edit&vandalizedpage=" + wgPageName + "&spam=1";
         window.setTimeout(function() { location.href = uri; }, 500);
       } else {
         location.href = rolluri;
         window.setTimeout(function() { window.close(); }, 500);
       }
     }
    if ((wgUserName == "DerHexer") || (wgUserName == "Tönjes") || (wgUserName == "Complex") || (wgUserName == "Peter200") || (wgUserName == 'Tafkas') || (wgUserName == 'Dundak')) {
     var revlink = searchRollbackLink();
     revlink.onclick = function() { RollAndSpam(revlink.href); return false; }
    }
   }
 
  if (wgUserName == "DerHexer" || wgUserName == "Complex" || wgUserName == "Björn Bornhöft" || wgUserName == "Krawi" || wgUserName == "Tönjes" || wgUserName == "YourEyesOnly" || wgUserName == "Tobi B." || wgUserName == "Tafkas" || wgUserName == "Luxo"  || wgUserName == "C-M" || wgUserName == "Kuhlo" || wgUserName == "Texec" || wgUserName == "Codeispoetry" || wgUserName == "Ireas" || wgUserName == "S1" || wgUserName == "Peter200" || wgUserName == "TheWolf" || wgUserName == 'Codeispoetry' || wgUserName == 'Guandalug' || wgUserName == 'Nikkis' || wgUserName == 'S.lukas' || wgUserName == 'ChrisHH' || wgUserName == 'ABF') {
 
   if ((UrlParameters["title"] == "Wikipedia:Vandalismusmeldung") && (UrlParameters["section"] > '') && (wgUserName == "DerHexer" || wgUserName == "YourEyesOnly" || wgUserName == "Tobi B." || wgUserName == "Tönjes" || wgUserName == "Complex" || wgUserName == "S1" || wgUserName == 'Codeispoetry' || wgUserName == 'Dundak' || wgUserName == 'Tafkas')) {
    if (document.editform.wpTextbox1.value.search(/==([^\d]*\d+\.\d+\.\d+\.\d+[^\d]*)==/) != -1) {
     if ((document.editform.wpTextbox1.value.search(/\(erl\.\)[\s]*==/) == -1) && (document.editform.wpTextbox1.value.search(/\(erledigt\)[\s]*==/) == -1)) {
       document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/==([^\d]*\d+\.\d+\.\d+\.\d+[^\d]*)==/, "==$1(erl.) ==");
       document.editform.wpSummary.value = document.editform.wpSummary.value + " erl";
 
                var req;
                if (req = newRequest()) {
                  var checkip = document.editform.wpTextbox1.value.match(/==[^\d]*(\d+\.\d+\.\d+\.\d+)[^\d]*==/);
                  var checkip2 = RegExp.$1;
                  var text = "/w/api.php?format=xml&action=query&list=logevents&letype=block&letitle=User:" + checkip2;
                  req.open("GET", text, false);
                  req.send("");
 
                  if ((req.responseXML.getElementsByTagName("block").length != 0) && (req.responseXML.getElementsByTagName("item").length != 0)) {
                    var lastblock = req.responseXML.getElementsByTagName("block")[0].getAttribute('duration');
                    var lastuser = req.responseXML.getElementsByTagName("item")[0].getAttribute('user');
                    if (lastuser == wgUserName) {
                      insertTagsWrapper(':', ' ' + usersignature, lastblock);
                    } else {
                      var newblockedtext = 'Gesperrt von ' + lastuser + ' mit der Dauer „' + lastblock + '“.';
                      insertTagsWrapper(':', ' ' + usersignature, newblockedtext);
                    }
                  } else {
                    insertTagsWrapper(':', ' ' + usersignature, blockedtext);
                  }
                }
     }
    }
   }
 
   if ( (UrlParameters["fakeaction"] == "rollback" && UrlParameters["vandal"] > '') || ((UrlParameters["subj"]) && (wgUserName == 'TheWolf')) ) {
     if ( (UrlParameters["subj"]) && (wgUserName == 'TheWolf')) {
       if (UrlParameters["subj"].search(/Revert/) != -1) {

                var req;
                if (req = newRequest()) {
                  var text = "/w/query.php?format=xml&what=revisions&titles=" + UrlParameters["title"] + "&rvlimit=1";
                  req.open("GET", text, false);
                  req.send("");
 
                  var lastuser = req.responseXML.getElementsByTagName("rv")[0].getAttribute('user');
                }
                if (lastuser.match(/\d+\.\d+\.\d+\.\d+/)) {
                  var uri = "http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:" + lastuser + "&vandalizedpage=" + UrlParameters["title"] + "&action=edit&spam=1";
                  window.open(uri);
                  window.focus();
                }
       }
     } else if (UrlParameters["vandal"].match(/\d+\.\d+\.\d+\.\d+/)) {
       var uri = "http://de.wikipedia.org/w/index.php?title=Benutzer_Diskussion:" + UrlParameters["vandal"] + "&vandalizedpage=" + UrlParameters["title"] + "&action=edit&spam=1";
       window.open(uri);
       //window.focus();
     }
   }
 
   if (UrlParameters["spam"] > "") {
       if (document.forms["editform"].wpTextbox1.value == "") {
         document.forms["editform"].wpWatchthis.click();
         if (wgUserName != "Björn Bornhöft") { document.editform.wpSummary.value = "Hinweis"; } else { document.editform.wpSummary.value = "Erste und letzte Warnung!"; }
         if (UrlParameters["spam"] == "1") {
           if (wgUserName == "Complex") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Complex/Greetings/TestMitArtikel|" + UrlParameters["vandalizedpage"] + "\}\} " + usersignature;
           } else if (wgUserName == "Tafkas") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Tafkas/V/Test|" + usersignature + "\}\}";
           } else if (wgUserName == "Kuhlo") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Kuhlo/V/VHinweis\}\}";
           } else if (wgUserName == "Nikkis" || wgUserName == 'S.lukas' || wgUserName == 'ChrisHH') {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Nikkis\/Verwarnung\}\}";
           } else if (wgUserName == "Ireas" || wgUserName == "TheWolf" || wgUserName == 'Guandalug') {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Complex/Greetings/TestMitStopschild\}\} " + usersignature;
           } else if (wgUserName == "Tönjes") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:PDD\/Greetings\/Danke\}\} \~\~\~\~";
           } else if (wgUserName == "Björn Bornhöft") {
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:Björn Bornhöft\/Vorlage:Erste und letzte Warnung\}\}";
           } else { 
             document.forms["editform"].wpTextbox1.value = "\{\{subst:Test\}\} " + usersignature;
           }
         } else {
           document.forms["editform"].wpTextbox1.value = "\{\{subst:Benutzer:LKD\/V\/ALoesch\}\} " + usersignature;
         }
         document.editform.wpSave.click();
         window.setTimeout(function() { window.close(); }, 1000);
       } else {
         if (UrlParameters["spam"] == "1") {
           if ((wgUserName == "DerHexer") || (wgUserName == "Tönjes") || (wgUserName == "Complex") || (wgUserName == "Peter200") || (wgUserName == 'Codeispoetry') || (wgUserName == 'Tafkas')) {
             var blockurl = "http://de.wikipedia.org/w/index.php?title=Spezial:Sperren/" + wgTitle + "&blockduration=2&blockreason=Vandalismus&speichern=1";
               window.setTimeout(function() { location.href = blockurl; }, 500);
           } else {
             if (document.editform.wpTextbox1.value.search(/Letzte Warnung/i) != -1 || wgUserName == "Kuhlo" || wgUserName == "Ireas" || wgUserName == "Björn Bornhöft" || wgUserName == "TheWolf" || wgUserName == 'Nikkis' || wgUserName == 'ABF' || wgUserName == 'ChrisHH') {
               var blockurl = "http://de.wikipedia.org/w/index.php?title=Wikipedia:Vandalismusmeldung&action=edit&section=new&reporteduser=" + 
wgTitle + "&vandalizedpage=" + UrlParameters["vandalizedpage"];
               window.setTimeout(function() { location.href = blockurl; }, 500);
             } else {
               document.editform.wpSummary.value = "Letzte Warnung";
               document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + ":Letzte Warnung! Höre auf zu vandalieren! " + usersignature;
               document.editform.wpSave.click();
               window.setTimeout(function() { window.close(); }, 1000);
             }
           }
         } else {
           var blockurl = "http://de.wikipedia.org/w/index.php?title=Spezial:Sperren/" + wgTitle + "&blockduration=1&blockreason=Erstellt unsinnige Artikel&speichern=1";
           window.setTimeout(function() { location.href = blockurl; }, 500);
         }
       }
   }
 
   if ((UrlParameters["title"] == "Wikipedia:Vandalismusmeldung") && (UrlParameters["reporteduser"] > '') && (UrlParameters["vandalizedpage"] > '')) {
     document.editform.wpTextbox1.value = "\{\{Benutzer\|" + UrlParameters["reporteduser"] + "\}\} Vandalismus in [[" + UrlParameters["vandalizedpage"] + "]] \~\~\~\~";
     document.editform.wpSummary.value = "[[Benutzer:" + UrlParameters["reporteduser"] + "]]";
   }

  }
 
 if ( ( (isEdit) && (!isSpecial) ) || ((UrlParameters["ins"] > "") && (wgUserName == 'TheWolf')) || (UrlParameters["addop"] > "") ||  ((location.href.substring(location.href.indexOf("/wiki/")).search(/\d+\.\d+\.\d+\.\d+/) != -1) && (location.href.substring(location.href.indexOf("/wiki/")).search(/protect/) == -1)) || (UrlParameters["diff"] > "") || ( (UrlParameters["title"] > "") && ( (UrlParameters["title"].search(/Spezial:Beiträge/) != -1) && (UrlParameters["namespace"] == "3") && (UrlParameters["deleteall"] == "1") ) ) || (UrlParameters["fakeaction"] == "rollback" && UrlParameters["vandal"] > '') ) addOnloadHook(fillActionPage);

 ////////////////////////////////////////////////////////////////////////////////////////

 // findDoubleEntry()
 // aufgerufen aus fillActionPage()
 
 function findDoubleEntry(baustein, artikeltext) {
   var doublette = false;
 
   // wenn keine Vorlage enthalten: Abbruch
   if (baustein == baustein.split("{{")[0]) return (doublette);
 
   var chkbaustein = baustein.split("{{")[1].split("}}")[0].split("|")[0];
   chkbaustein = "{{" + chkbaustein ;
 
   if (navigator.userAgent.indexOf("Opera") == -1) {
      // checking
            // Zeilen wie die nächste generieren Fehler mit Opera, daher diesen Bereich auskommentiert
            // Fehler: RegExp.prototype.compile: syntax error in pattern or string
            // mit Firefox2 und IE7 geht das problemlos, hmm
      if (artikeltext.search(chkbaustein) != -1)
          doublette = true;
      // Kleinschreibung & SLA & substs
      if (chkbaustein == "{{Löschen") {
          if (artikeltext.search("{{löschen") != -1)
              doublette = true;
          if (artikeltext.search("{{SLA") != -1)
              doublette = true;
      }
      if (chkbaustein == "{{subst:Löschantrag") {
          if (artikeltext.search("{{Löschantragstext") != -1)
              doublette = true;
      }
      if (chkbaustein == "{{subst:Qualitätssicherung") {
          if (artikeltext.search("{{QS-Antrag") != -1)
              doublette = true;
      }
   } // end of Opera hack
   return (doublette);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // initQuickbar()
 // positioniert den Quickbar
 
 function initQuickbar() {
   // Variables that could be defined in your monobook
   if (typeof(keeplogo) == 'undefined')
       keeplogo = false;
   if (typeof(releasequickbar) == 'undefined')
       releasequickbar = false;
 
   var quickbarpos = "fixed";
   // IE6- kann kein position:fixed und hat demzufolge Pech
   if ( navigator.userAgent.indexOf("MSIE") > -1 )
      quickbarpos = "absolute";
   // IE7 und als MSIE maskiertes Opera 8/9: können position:fixed
   if (( navigator.userAgent.indexOf("MSIE 7") > -1 ) || ( navigator.userAgent.indexOf("Opera") > -1 ))
      quickbarpos = "fixed";
 
   if (!keeplogo) {
      // logo ausblenden (revvar)
      document.getElementById("p-logo").style.visibility = "hidden";
      // padding in column-one (platz für quickbar)
      document.getElementById("column-one").style.paddingTop =
         (10+document.getElementById("p-quickbar").clientHeight)+"px";
   }
 
   if (!releasequickbar) {
      document.getElementById("p-quickbar").style.position = quickbarpos;
   }
 }
 if (drawquickbar) addOnloadHook(initQuickbar);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // doReload()
 // setzt nach Reload die Reload-Selection wieder
 
 function doReload() {
   if (UrlParameters[reloadme] == "1") {
      document.getElementById('reloadme').checked=true;
      setReload();
   }
 }
 if (!isEdit) addOnloadHook(doReload);
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // setReload()
 // aufgerufen, wenn im Quickbar die Reload-Selection gesetzt wird
 
 var timeoutaktiv;
 function setReload() {
   if (document.getElementById('reloadme').checked && (UrlParameters[reloadme] != "1")) {
       var uri = (document.URL.indexOf('?') >0) ? ('&' + reloadme + '=1') : ('?' + reloadme + '=1');
       timeoutaktiv = window.setTimeout(location.href=location.href+uri, timeout);
   }
   else if (document.getElementById('reloadme').checked	&& (UrlParameters[reloadme] == "1")) {
       timeoutaktiv=window.setTimeout("location.reload()", timeout);
   }
   else {
       window.clearTimeout(timeoutaktiv); // bizarr, timeoutaktiv ist hier gar nicht belegt?
   }
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // checkAllDeletedVersions()
 // alle Checkboxen auswählen, für Versionenwiederherstellung ([[Spezial:Wiederherstellen]])
 // Idee: Poupou
 // Autoren: BLueFiSH.as, Schwalbe (ursprünglich als "TaggAll()")
 // Neue Version ohne JS-Errors: PDD
 
 function revAllDeletedVersions() {
   var inputobject = document.getElementsByTagName("input");
   for (var i=3; i<inputobject.length; i++)
      inputobject[i].checked = !inputobject[i].checked;
 }
 
 /*
  * Stringlänge überprüfen für Zusammenfassungszeile
  */
 
 function EditCommentLength(str) {
   return (199-str.length);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // undate()
 // von [[Benutzer:D]]
 // entlinkt verlinkte Daten
 
 function undate() {
	document.editform.wpTextbox1.value = document.editform.wpTextbox1.replace(/\[\[\s*(\d+(er)?( v. Chr.)?)\s*\]\]/g, "$1")
		.replace(/\[\[\s*(\d+\. (Jahrhundert|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))\s*\]\]/g, "$1");
	document.editform.wpDiff.click();
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // insertAfter()
 // neuen Node nach einem referenceNode einfügen
 
 function insertAfter(parent, node, referenceNode) {
   parent.insertBefore(node, referenceNode.nextSibling);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////
 // trim()
 // Leerzeichen am Anfang und Ende entfernen
 
 function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
 }
 
 //
 // Funktion nowcomm()
 // Trägt NowCommons-Baustein ein
 // (aufgerufen aus der monobook.js)
 //
 
 function nowcomm() {
  var lemma = getLemma();
  if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
  var lemmaneu = prompt('Neuer Dateiname',lemma);
  if (lemmaneu != null )
      newtext('NowCommons','\{\{NowCommons|' + lemmaneu +'}}',3);
 }
 
 //
 // Helper-Funktion getLemma()
 // extrahiert Lemma, entfernt "Bild:" und "Kategorie:"
 // (aufgerufen von eintragen() aus der eintragen.js, nowcomm() )
 //
 
 function getLemma () { //Littl
   var lemma;
   if ((isContrib) && ( UrlParameters["target"] > "" ))
     lemma = UrlParameters["target"];
   else if ( UrlParameters["title"] > "" )
     lemma = UrlParameters["title"];
   else {
     lemma = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
     // fix linky links (?redirect=no)
     //lemma = lemma.split['\x3F'][0];
     if (lemma.indexOf("redirect=no")!=-1)
         lemma=lemma.substring(0,lemma.indexOf("redirect=no")-1);
   }
   // if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
   // if (lemma.substring(0, 10) == "Kategorie:") lemma=lemma.slice(10);
   if (isPHP) lemma=lemma.split('+').join('_');
   return lemma;
 }

 function nextItem (category, namespace) {
	var categorycont = document.location.toString().match(/categorycont=([^&]+)/);

	var scriptElem = document.createElement('script');
	var url = 'http://de.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:' + category + '&cmsort=timestamp&cmdir=asc&cmlimit=1&cmprop=title&format=json&callback=gotNextItem';
	if (categorycont) url += '&cmcontinue=' + categorycont [1];
	if (namespace) url += '&cmnamespace=' + namespace;
	scriptElem.setAttribute('src', url);
	scriptElem.setAttribute('type','text/javascript');
	document.getElementsByTagName('head')[0].appendChild(scriptElem);
 }

 function gotNextItem(obj) {
	if(!obj['query'] || !obj['query']['categorymembers'] || !obj['query']['categorymembers'][0]) return
	var url = 'http://de.wikipedia.org/w/index.php?title=' + encodeURIComponent(obj['query']['categorymembers'][0]['title']);
	if (obj['query-continue'] && obj['query-continue']['categorymembers'])
		url += '&categorycont=' + encodeURIComponent(obj['query-continue']['categorymembers']['cmcontinue']);
	location.href = url;
 }

 function newRequest() {
	try {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else {
			return new ActiveXObject("MSXML2.XMLHTTP");
		}
	} catch (e) {
		return false;
	}
 }
 // </nowiki>