//<nowiki>
// begin namespace: foListe
(function( _public, $, undefined ) {
//Voreinstellung: arabische Übersetzungen
var regexp=/\*\{\{ar\}\}([\S\s]*?)\n/g;
var ns;
var limit=0;
var tt='';
_public.init = function ()
{
ns = mw.config.get("wgNamespaceNumber");
if (ns == 14 || (ns == 4 && mw.config.get("wgArticleId") == 397047) ) {
var form;
if (ns==4) {
form=newNode(
'form',
{'class':'noprint'},
newNode('label','Wortart und Herkunft aus den Einträgen einblenden: '),
newNode('input',{'type':'button','value':'Los'})
);
}
if (ns==14) {
form=newNode(
'form',
{'class':'noprint'},
newNode('label','Regulärer Ausdruck für Seitenextrakte: ',
newNode('input',{'name':'regexppe','id':'idregexppe'})),
newNode('input',{'type':'button','value':'Los'})
);
var exp=mw.util.getParamValue("regexp");
if(exp && exp.length>0) {
regexp=new RegExp(exp,"g");
var pf=document.getElementById("idregexppe");
if(pf) {
pf.value = exp;
}
}
}
form.lastChild.onclick=function(){
var pf=document.getElementById("idregexppe");
if(pf && pf.value.length>0) {
regexp=new RegExp(pf.value,"g");
}
limit=0;
tt='';
if(ns==4){
$("#mw-content-text ul:not(#toc ul) a").each(function(index, element) {
var t=(element+"").substr((""+element).indexOf("/wiki/")+6);
if (t.indexOf("action=edit") >= 0) return;
if (t.indexOf(":") >= 0) return;
limit50(t,handleResponse4);
});
if (tt.length > 0){
$.get(buildApi(tt),handleResponse4);
}
$("#mw-content-text ul:not(#toc ul)").attr( "style", "columns: 1; -moz-columns: 1; -webkit-columns: 1" );
}
if(ns==14){
// Aus drei Spalten eine einzige machen
$("#mw-pages td h3").unwrap();
$("#mw-pages > a").each(function(index, element) {
var repl="®exp=" + pf.value;
if (pf.value.length == 0) {
repl="";
}
if (element.href.search(/[?&]regexp=/) >= 0){
element.href=element.href.replace(RegExp('[&?]regexp=[^&]*'), repl);
}else{
element.href=element.href.replace(/&/, repl + "&");
}
});
$("#mw-pages li a").each(function(index, element) {
var t=(element+"").substr((""+element).indexOf("/wiki/")+6);
if(t.indexOf("action=edit") >= 0) return;
limit50(t,handleResponse14);
});
if (tt.length > 0){
$.get(buildApi(tt),handleResponse14);
}
}
};
node=document.getElementById("mw-content-text");
node.parentNode.insertBefore(form,node);
if(exp && exp.length>0) {
var pf=document.getElementById("idregexppe");
if(pf) {
pf.value = exp;
form.lastChild.onclick();
}
}
$('#idregexppe').keypress(function (e) {
if (e.which == 13) {
form.lastChild.onclick();
return false;
}
});
}
}
function extract(t,e) {
var a=e.exec(t);
if (a && a.length > 1) {
return a[1];
}
return '';
}
function buildApi(t){
return mw.config.get("wgServer")+mw.config.get("wgScriptPath")+"/api.php?action=query&prop=revisions&format=json&rvprop=content&titles="+t;
}
function limit50(t,func){
if (limit==0) {
tt+=t;
} else {
tt+="|"+t;
}
limit++;
if (limit==50) {
$.get(buildApi(tt),func);
tt='';
limit=0;
}
}
function extractStr(txt,left,right,strip)
{
var i = left.length == 0 ? 0 : txt.indexOf(left);
if (i>=0) {
var j = right.length == 0 ? txt.length : txt.indexOf(right,i+left.length);
if (j>=0) {
if (typeof strip === "undefined") {
return txt.substring(i,j+right.length);
} else {
switch (strip) {
case 'L': return txt.substring(i+left.length,j+right.length);
case 'R': return txt.substring(i,j);
case 'B': return txt.substring(i+left.length,j);
}
}
}
}
return '';
}
function handleResponse4(data) {
if (data.query !== undefined && data.query.pages !== undefined) {
for (var w in data.query.pages) {
regexp=/\{\{Herkunft\}\}\s*\n([\S\s]*?)\n\{\{/g;
var title=data.query.pages[w].title;
var titlec=mw.util.wikiUrlencode(title);
var txt=data.query.pages[w].revisions[0]["*"];
// das anzuzeigende Extrakt aus der Seite ermitteln
var lines=txt.split(/\r?\n/);
var i;
var ex2='';
for (i=0;i<lines.length;i++) {
var ex1=extractStr(lines[i],"===","===",'B');
if (ex1.length>0 && ex1.indexOf("Übersetzung")<0) {
ex2 += "<p>"+ex1+"</p>";
}
if (lines[i].indexOf("{{Herkunft}}") >= 0) {
var tmpa = lines.slice(i,lines.length);
ex1 = extract(tmpa.join('\n'),regexp);
if (ex1.length == 0) break;
ex1 = ex1.replace(/\n/g, "<br />");
if (ex1.length>0) {ex2 += "<dl><dd>"+ex1+"</dd></dl>";}
}
}
if (ex2.length == 0) continue;
$("#mw-content-text ul:not(#toc ul) a").each(function(index, element) {
var t=(element+"").substr((""+element).indexOf("/wiki/")+6);
// Seitenextrakt dem entsprechenden Link zuordnen
if(titlec==t){
$( this ).after("<dl><dd>"+ex2+"</dd></dl>");
}
});
}
}
}
function handleResponse14(data) {
if (data.query !== undefined && data.query.pages !== undefined) {
for (var w in data.query.pages) {
var title=data.query.pages[w].title;
var titlec=mw.util.wikiUrlencode(title);
// das anzuzeigende Extrakt aus der Seite ermitteln
regexp.lastIndex = 0;
do {
var ex1 = extract(data.query.pages[w].revisions[0]["*"],regexp);
if (ex1.length == 0) break;
ex1 = ex1.replace(/\n/g, "<br />");
$("#mw-pages li a").each(function(index, element) {
var t = (element + "").substr((""+element).indexOf("/wiki/") + 6);
// Seitenextrakt dem entsprechenden Link zuordnen
if (titlec == t){
$( this ).parent().append("<dl><dd>" + ex1 + "</dd></dl>");
}
});
} while (ex1.length > 0);
}
}
}
// end namespace: foListe
}( window.foListe = window.foListe || {}, jQuery ));
jQuery(document).ready(foListe.init);
//</nowiki>