Benutzer:Akkakk/autoInformation.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
// gerüst geklaut von [[Benutzer:TMg/autoFormatter.js]]
// <nowiki>

// wer die technischen möglichkeiten hat und weiß was er tut, darf diese seite auch bearbeiten.

/**
 * Blendet eine „Auto-Information“-Funktion über dem Bearbeitungsfenster ein, die
 * die Vorlage Information einfügt.
 * Eine ausführliche Beschreibung ist nicht auf der Diskussionsseite zu finden.
 */
function doAutoInformation(a)
{
	var e = document.forms["editform"].elements;
	var b = e["wpTextbox1"];
	var t = b.value;

var i_b = ""; //variablen für die felder der vorlage information
var i_q = "";
var i_u = "";
var i_d = "";
var i_g = "";
var i_v = "";
var i_a = "";
var i_d_f = ""; //fallback-datum

var eigene_quellen = "(selbst erstellt|selbst gezeichnet|selbst f?p?h?otograf?p?h?iert|[Ee]igenes [Bb]ild|eigene Zeichnung|von mir gezeichnet|aus englischer? Wiki|selbst aufgenommen|eigene Aufnahme)\.?";
var genehmigungen = "(Public Domain|GNU-FDL|gnu-fdl|gemeinfrei|GFDL|GNU FDL|gfdl|Copyright \\[\\[GNU FDL\\]\\]|\\[\\[GNU FDL\\]\\]|\\[\\[GFDL\\]\\])";
var lizenzen = "Bild-(GFDL|GFDL-Neu|frei|PD-alt|PD-alt-100|CC-by-sa/[0-9.]*/?[a-z]*|CC-by/[0-9.]*/?[a-z]*|By)";
var quelle_urheber = "Roland Nonnenmacher|Roland Wellenhöfer|Anton \\(rp\\)|D\\.Barthel|Ralf Roletschek|Denis Barthel|Stahlkocher|Walter J.Pilsak|Walter J. Pilsak, Waldsassen|keichwa|Hans Peter Schaefer|Juliana da Costa José";

///////////////// text vorbereiten /////////////////
t = t.replace(/ *\(für (die GNU[- ]FDL|Public Domain)\) */g, "");
t = t.replace(/== (description|batch|source|date|author|permission) ==\n\n?(.*)/g, "* $1: $2\n"); // für die batch-uploads
t = t.replace(/\* (description|batch): \n/, "");

t = t.replace(/\nub\. *(.*[^ ]) *\n/, "\nu.[[Benutzer:$1]]\n"); //magic ub.

t = t.replace(/\n(uq|qu)\. *(.*[^ ]) *\n/, "\nu.$2\nq.$2\n"); //magic uq, qu

//t = t.replace(/([12][90]..) selbst (erstellt|fotografiert)/, "d.$1\nq.$1 selbst $2\nu.[[Benutzer:]]\n"); //sonderbehandlung (Morty)

var re = new RegExp("\n"+genehmigungen+" ?[-–,;(] ?"+eigene_quellen+"\\)?\n"); //für einzeiler
t = t.replace(re, "\ng.$1\nq.$2\n");
re = new RegExp("\n[(, ]*"+eigene_quellen+"[-–,;] "+genehmigungen+"[)]*\n");
t = t.replace(re, "\nq.$1\ng.$2\n");
re = new RegExp("[-–,;\n] ?"+genehmigungen+"\n");
//t = t.replace(re, "\ng.$1\n");
re = new RegExp("[-–,;\n] ?"+eigene_quellen+"\n");
//t = t.replace(re, "\nq.$1\n");

t = t.replace(/\nDer Urheber ist: *\n/, "\nDer Urheber ist:"); //der urheber ist manchmal erst in der nächsten zeile

t = t.replace(/([^ ]) *(\{\{.*\}\})/g, "$1\n$2"); //vorlagen sollen alleine auf einer zeile stehen
re = new RegExp("\\{\\{"+lizenzen+"\\}\\} *([^ ][^ ]+)"); //falls urheber nach lizenz angegeben
t = t.replace(re, "{{Bild-$1}}\nder Urheber ist:$2");
t = t.replace(/(\{\{.*\}\}) *([^ ])/g, "$1\n$2");
t = t.replace(/== (Beschreibung|Beskrivelse|Description).* ==\n/, ""); //überschrift Beschreibung entfernen

t = t.replace(/^bqud\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nu:$3\nd:$4\n"); //magic bqud
t = t.replace(/^bqgu\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\ng:$3\nu:$4\n"); //magic bqgu
t = t.replace(/^bqu\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nu:$3\n"); //magic bqu
t = t.replace(/^bqd\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nd:$3\n"); //magic bqd
t = t.replace(/^bqg\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\ng:$3\n"); //magic bqg

/////////////// sonderbehandlungen ////////////////////
//t = t.replace(/Eigene Graphik/, "\nq.Eigene Graphik");
t = t.replace(/ *- *selbst fotografiert *\(Klaus Graf\) ([0-9.]*) *-? */, "\nq.selbst fotografiert\nu.Klaus Graf\nd.$1\n"); //sonderbehandlung für klaus graf
//t = t.replace(/\n(aufganommen|gezeichnet) von \[\[Benutzer:/, "\nq.$1 von [[Benutzer:");
//t = t.replace(/<br>/g, "\n");
//t = t.replace(/^PD AK/, "g:PD\nb:AK");
t = t.replace(/^Autor D.Barthel GNU FDL\n/, "u.Autor D.Barthel\ng.GNU FDL\n");
//t = t.replace(/,? ?([12][90]..) selbst fotografiert(, GFDL)?/, "\nd.$1\nq.selbstfotografiert\ng.$2\n");
//t = t.replace(/\* Fotograf: selbst/, "q:Fotograf: selbst\nu.[[Benutzer:Staro1]]");
t = t.replace(/Selbst fotografiert, (Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember) ([12][90]..)/, "q.Selbst fotografiert\nd.$1 $2"); // (Lienhard Schulz)
t = t.replace(/\nEigenes Photo; *(.*); *(Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember) *([12][90]..).?\nQuelle ERWEH\n/, "\nq.Eigenes Photo\nub.ERWEH\nb.$1\nd.$2 $3\n"); // (ERWEH)
/// svg-vorlage nach unten verschieben, für das beschreibungs-fallback ////
var re_svg = new RegExp("(\\{\\{(In SVG konvertieren|JetztSVG|SVG)\\|?[a-zA-Z]*\\}\\})\n*");
if(t.match(re_svg)){
  var svg = RegExp.$1;
  t = t.replace(re_svg, "");
  t = t.replace(/\{\{Bild-/, svg+"\n\n{{Bild-");
  if(! t.match(re_svg)){
    t = t+"\n"+svg;
  }
}

////// fallback-datum sichern ////
if(t.match(/\D(([0123]?\d\.[01]?\d\.(20|19)?\d\d)|([0123]?\d?\.? *(Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember|Frühling|Sommer|Herbst|Winter|Frühjahr��) 20\d\d))\D/)){
  i_d_f = RegExp.$1; //fallback-datum
}

/////////////// daten rausholen /////////////
var re_pre = "(\\n|^)[ *'|;#]*(";
var re_post = ")[ ']*[:.,=][ '\.]*(.*)\\n";

var re_b = new RegExp(re_pre+"Beschreibung|Bildbeschreibung|Motiv|[Dd]escription|Aufnahmeobjekt|Bildgenstand|Aufnahmegegenstand|b"+re_post);
if(t.match(re_b)){
  i_b += RegExp.$3; //beschreibung merken
  t = t.replace(re_b, "\n"); //und im text löschen
  if(i_b == "t") // für das magische t
    i_b = mw.config.get( 'wgTitle' ).replace(/(.*)\..*/, "$1");
}

var re_q = new RegExp(re_pre+"[Qq]uelle|Quelle/Copyright|[Ss]ource|Bildquelle|q"+re_post);
if(t.match(re_q)){
  i_q += RegExp.$3;
  t = t.replace(re_q, "\n");
  if(i_q == "s") // für das magische s
    i_q = "selbst erstellt";
}

var re_u = new RegExp(re_pre+"Urheberi?n?|Foto|Fotograf oder Zeichner|Fotografi?n?|Zeichner|Fotograf */ *Zeichner|[Aa]uth?or|Photographe?r?|Fotograf/Urheber|Zeichner/Autor|Bildautor|Erstellt von|Zeichnung|Ersteller|Bearbeiter|Urheber der Zeichnung|Urheber des F?P?h?otos|Autor der Zeichung|Urheber und Fotograf|Fotograph|Fotografiert von|Angefertigt von|u"+re_post);
if(t.match(re_u)){
  i_u += RegExp.$3;
  t = t.replace(re_u, "\n");
  //i_u = i_u.replace(/^ *\(für (die GNU FDL|Public Domain)\) *$/, "");
}

var re_u = new RegExp(re_pre+"[Dd]er Urheber ist"+re_post);
if(t.match(re_u)){ //für oft redundante angaben bei der lizenz
  if(i_u == "")
    i_u += RegExp.$3;
  else if(i_u != RegExp.$3 && RegExp.$3 != "")
    i_u = RegExp.$3+" / "+i_u; //wenn der urheber zweimal unterschiedlich angegeben ist
  t = t.replace(re_u, "\n");
  //i_u = i_u.replace(/^ *\(für (die GNU FDL|Public Domain)\) *$/, "");
}

var re_d = new RegExp(re_pre+"[Dd]atum|Datum der Aufnahme|Aufnahmedatum|[dD]ate|Aufnahmezeitpunkt|Aufnahmetag|aufgenommen am|Jahr|d"+re_post);
if(t.match(re_d)){
  i_d += RegExp.$3;
  t = t.replace(re_d, "\n");
}

var re_g = new RegExp(re_pre+"Genehmigung|Copyright Status|[cC]opyright|Erlaubnis|Lizenz|Lizenzstatus|[pP]ermission|Freigabe|Nutzungsrechte freigegeben|Lizenz des Bildes|g"+re_post);
if(t.match(re_g)){
  i_g += RegExp.$3;
  t = t.replace(re_g, "\n");
}

var re_v = new RegExp(re_pre+"[Aa]ndere Versione?n?|[oO]ther versions?|v"+re_post);
if(t.match(re_v)){
  i_v += RegExp.$3;
  t = t.replace(re_v, "\n");
}

var re_a = new RegExp(re_pre+"Anmerkunge?n?|Sonstiges|Hinweis|[Ss]iehe|[Ss]iehe auch|a"+re_post);
if(t.match(re_a)){
  i_a += RegExp.$3;
  t = t.replace(re_a, "\n");
}

var re_b = new RegExp(re_pre+"b2"+re_post); //magic b2.
if(t.match(re_b)){
  i_b += "\n\n"+RegExp.$3;
  t = t.replace(re_b, "\n");
}

var re_b = new RegExp(re_pre+"b3"+re_post); //magic b3.
if(t.match(re_b)){
  i_b += "\n\n"+RegExp.$3;
  t = t.replace(re_b, "\n");
}

var re_q = new RegExp(re_pre+"q2"+re_post); //magic q2.
if(t.match(re_q)){
  i_q += "\n\n"+RegExp.$3;
  t = t.replace(re_q, "\n");
}

var re_g = new RegExp(re_pre+"g2"+re_post); //magic g2.
if(t.match(re_g)){
  i_g += "\n\n"+RegExp.$3;
  t = t.replace(re_g, "\n");
}
/////////////////// fallbacks //////////////
var re_b_fb = new RegExp("^[ *]*([^={\n].*)\n");
if(i_b == "" && t.match(re_b_fb)){
  i_b += RegExp.$1; //fallback-beschreibung: die erste zeile.
  t = t.replace(re_b_fb, "");
}

if(i_b == ""){ //wenn auch das nicht hilft: dateiname
    i_b += mw.config.get( 'wgTitle' ).replace(/(.*)\..*/, "$1");
}

if(i_d == ""){
  i_d = i_d_f; //gespeichertes fallback-datum
}

if(i_u == "" && i_q.match(/\[\[[bB]enutzer:([^\]]*)\]\]/)){
  i_u = "[[Benutzer:"+RegExp.$1+"]]"; //wenn quelle benutzer enthält: urheber
}

if(i_u == "" && i_q.match(/\[\[:en:[uU]ser:([^\]]*)\]\]/)){
  i_u = "[[:en:User:"+RegExp.$1+"]]"; //wenn quelle en:user enthält: urheber
}

if(i_u == "" && i_q.match(/(von|by) (\S* ?\S*)$/) && ! RegExp.$2.match(/^http/) && ! RegExp.$2.match(/[0-9][0-9][0-9][0-9]/)){
  i_u = RegExp.$2; //quelle "von X": urheber X
}

//if(i_u == "" && i_q.match(/^[a-zA-z]* ?([sS]elbst|[eE]igene)/)){
//  i_u = "[[Benutzer:]]"; //wenn quelle selbst/eigene ist: urheber ist uploader
//}

re = new RegExp("([Bb]enutzer|[uU]ser|"+quelle_urheber+")");
if(i_q == "" && i_u.match(re)){
  i_q = i_u; //es gibt keine quelle aber urheber ist benutzer dann quelle = urheber
}

if(t.match(/\{\{(Bild-PD-alt(-100)?|Bild-LogoSH|Bild-PD-Schöpfungshöhe)\}\}/)){
  if(i_q == "")
    i_q = "unbekannt"; //quelle und urheber bei manchen pd-s egal, daher unbekannt
  if(i_u == "")
    i_u = "unbekannt";
}

/////// unnütze infos weg ////////
var re_keine = new RegExp("^(keine|-+|\\.+|\\?)$");
if(i_b.match(re_keine)){
  i_b = ""; //wenn die beschreibung nichts sinnvolles enthält: löschen
}
if(i_v.match(re_keine)){
  i_v = ""; //dito andere versionen
}
if(i_a.match(re_keine)){
  i_a = ""; //dito anmerkungen
}

//////////// vorlage einsetzen /////////////////
t = "{{Information\n|Beschreibung     = "+i_b+"\n|Quelle           = "+i_q+"\n|Urheber          = "+i_u+"\n|Datum            = "+i_d+"\n|Genehmigung      = "+i_g+"\n|Andere Versionen = "+i_v+"\n|Anmerkungen      = "+i_a+"\n}}\n\n"+t;
if(! e["wpSummary"].value.match(/\[\[Vorlage:Information\|Information\]\]/)){
  if(t.match(/\{\{Information\n\}\}/)){
    t = t.replace(/\{\{Information\n\}\}/, "");
    e["wpSummary"].value += "[[Vorlage:Information|Information]] geändert (via [[Benutzer:Akkakk/autoInformation.js]])"; //zusammenfassung einsetzen
  } else {
    e["wpSummary"].value += "+[[Vorlage:Information|Information]] (via [[Benutzer:Akkakk/autoInformation.js]])"; //zusammenfassung einsetzen
  }
}

//////////// quelltext aufräumen ///////////
t = t.replace(/==\n+/, "==\n"); //keine leerzeilen nach überschriften
t = t.replace(/\* batch: *\n/, ""); //leeres batch weg
//t = t.replace(/\(für (die GNU FDL|Public Domain)\)/, ""); //leere urheberangabe weg
t = t.replace(/<br ?\/?>\n\|/g, "\n|"); //br-tags in der vorlage weg
t = t.replace(/\nder Urheber ist:$/, "");

////// nachfolgend original-autoformat-auszüge von TMg //////
	/* Mehrfache Leerzeilen auf einzelne reduzieren */
	t = t.replace(/([ \t\r]*\n){3,}/g, "\n\n");
	/* Die verschiedensten Formen der Zeilenumbrüche durch korrekte ersetzen */
	t = t.replace(/<[\s\/]*br\s*(\s\w[^>]*?)?[\s\/]*>/gi, "<br$1 />");

	/* == Überschriften == immer mit Leerzeichen */
	t = t.replace(/^(=+) *([^ =].*=)$/gm, "$1 $2");
	t = t.replace(/^(=.*[^ =]) *(=+)$/gm, "$1 $2");
	/* Weblinks immer als Weblinks */
	t = t.replace(/^== *(External|Externer?)? *(Links?|Weblinks?|Webseiten?|Websites?) *==/gim,
		"== Weblinks ==");

	/* Einheitliche Schreibweisen für Schlüsselwörter incl. Leerzeichenausgleich */
	t = t.replace(/\[\[\s*(Category|Kategorie)\s*:\s*/gi, "[[Kategorie:");
	t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*((rechts|right)\s*\|+\s*)?(miniatur|thumb)\s*\|+\s*((rechts|right)\s*\|+\s*)?/gi, "$1|miniatur|");
	t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(rechts|right)\s*\|+\s*/gi, "$1|rechts|");
	t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(links|left)\s*\|+\s*/gi, "$1|links|");
	t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(hochkant|upright)\s*((=)\s*([0-9.]*))?\s*\|+\s*/gi, "$1|hochkant$4$5|");
	t = t.replace(/\{\{\s*(Template|Vorlage)\s*:\s*/gi, "{{");
	t = t.replace(/\{\{\s*Commons(cat\s*\|(\s*(Category|Kategorie)\s*:)?|\s*\|\s*(Category|Kategorie)\s*:)\s*/gi, "{{Commonscat|");
	t = t.replace(/\{\{\s*Commons\s*\|\s*/gi, "{{Commons|");
	t = t.replace(/\{\{\s*Wikisource\s*\|\s*/gi, "{{Wikisource|");
	t = t.replace(/\{\{\s*Wiktionary\s*\|\s*/gi, "{{Wiktionary|");
	t = t.replace(/\{\{\s*(DEFAULTSORT|SORTIERUNG)\s*:\s*/gi, "{{SORTIERUNG:");
	t = t.replace(/\s*#(REDIRECT|WEITERLEITUNG)\s*\[\[/gi, "#WEITERLEITUNG [[");
	t = t.replace(/\s*<\s*\/\s*ref>/gi, "</ref>");
	t = t.replace(/<references\s*\/\s*>/gi, "<references />");
	t = t.replace(/class\s*=\s*("(\s*[^\s"]+\s)*)?\s*\bprettytable\b/g, 'class=$1wikitable');

	/* Weblinks auf Wikipedia-Sprachversionen in Wikilinks umwandeln */
	var interWikiReplace = function($0, $1, $2, $3)
	{
		return "[[:" + $1 + ":" + $2.replace(/_/g, " ") + (typeof $3 === "string" ? "|" + $3 : "") + "]]";
	}
	t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][|]*?) *\|+ *([^\][\n]+?) *\]+/gi, interWikiReplace);
	t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][\s]*) +([^\][\n]+?) *\]+/gi, interWikiReplace);
	t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][\s]*) *\]+/gi, interWikiReplace);

t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][|]*?) *\|+ *([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][\s]*) +([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][\s]*) *\]+/gi, interWikiReplace);
	/* Wikilinks mit unnötigem Präfix w:de: oder :de: vereinfachen */
	t = t.replace(/\[\[ *w? *: *de *: *([^\][\n]*?) *\]\]/gi, "[[$1]]");
	/* Sonstige Weblinks mit senkrechtem Strich reparieren */
	t = t.replace(/\[ *(https?:\/\/[^\s|\]]*?) *\| *([^\][\n]*?) *\]/gi, "[$1 $2]");
	/* Doppelte eckige Klammern um Weblinks entfernen */
	t = t.replace(/\[+ *(https?:\/\/[^\][\n]*?) *\]+/gi, "[$1]");

	/* [[Link|Die]]s wird zu [[Link|Dies]] weil besser lesbar */
	t = t.replace(/(\[\[[^\|\]]+\|[^\|\]]+)\]\]([a-zäöüß]+)/gi, "$1$2]]");
	/* [[Link|Link]]s werden zu [[Link]]s weil kürzer und besser lesbar */
	t = t.replace(/\[\[([^\|\]]+)\|\1([^\][\n]*)\]\]/g, "[[$1]]$2");
	/* Jede Kategorie in einer eigenen Zeile */
	t = t.replace(/(\[\[Kategorie:[^\][\n]*\]\])(?!\n|$)/gi, "$1\n");
	t = t.replace(/([^\n])(\[\[Kategorie:[^\][\n]*\]\])/gi, "$1\n$2");
	t = t.replace(/(\[\[Kategorie:[^\][\n]*\]\]\n)(?!\[\[Kategorie:|\n|$)/gi, "$1\n");

	var changed = t != b.value.replace(/\r+\n/g, "\n");
	if (changed) b.value = t.replace(/\s+$/, "");
	if ((!a || !a.nodeType || a.nodeName === 'IMG') && $) /* Vector/Monobook */
	{
		var e = $(a && a.nodeType ? a : 'img[rel=autoFormatter]');
		e.css('backgroundColor', changed ? '#DEF740' : '');
		e.css('borderRadius', changed ? '3px' : '');
		e.css('opacity', changed ? '' : '0.4');
	}
	else if (a) a.style.color = changed ? 'green' : 'silver';
	return false;
}

if(mw.config.get( 'wgCanonicalNamespace' ) === "File"){
  if (typeof $ != 'undefined' && typeof $.fn.wikiEditor != 'undefined' && $.wikiEditor.isSupported($.wikiEditor.modules.toolbar)) /* Vector */
  {
  	$(function() {
  		$('#wpTextbox1').wikiEditor('addToToolbar', {
  			'section': 'main', /* oder advanced */
  			'group': 'format',
  			'tools': {
  				'autoFormatter': {
  					'label': 'Auto-Information',
  					'type': 'button',
  					'icon': '/media/wikipedia/commons/thumb/3/35/Information_icon.svg/22px-Information_icon.svg.png',
  					'action': {
  						'type': 'callback',
  						'execute': function() { return doAutoInformation(this); }
  					}
  				}
  			}
  		});
  	});
  }
  else
  {
  	mw.loader.using( [ 'mediawiki.toolbar' ], function() /* Old toolbar */
  	{
  		mw.toolbar.addButton( {
  			'imageId': 'mw-customeditbutton-autoInformation',
  			'imageFile': '/media/wikipedia/commons/thumb/3/35/Information_icon.svg/22px-Information_icon.svg.png',
  			'speedTip': 'Auto-Information',
  			'tagOpen': '', 'sampleText': '', 'tagClose': ''
  		} );
  	} );
  	$(function()
  	{
  		var f = document.getElementById('mw-customeditbutton-autoInformation');
  		if (f) { f.onclick = function() { return doAutoInformation(this); }; return; }

  		/* Notfalls als Link unter dem Bearbeitungsfenster */
  		f = document.getElementById('editform');
  		if (!f) return;
  		var a = document.createElement('A');
  		a.href = '#';
  		a.onclick = function() { return doAutoInformation(this); }
  		a.appendChild(document.createTextNode('Auto-Information'));
  		var s = f.getElementsByTagName('SPAN');
  		for (var i = s.length - 1; i >= 0; i--) if (s[i].className === 'editHelp') { s = s[i]; break; }
  		s.appendChild(document.createTextNode(' | '));
  		s.appendChild(a);
  	});
  }
}
  // </nowiki>