From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/// User:PerfektesChaos/js/lintHint/r.js

/// 2024-07-04 PerfektesChaos@de.wikipedia

/// Fingerprint:#0#11AC22BC#

/// License:CC-by-sa/4.0

///<nowiki>

(function(mw,$){

"use strict";

var Version=5.8,Signature="lintHint",HINT={cmodels:{"wikitext":true,

"proofread-index":true,

"proofread-page":true},doc:"en:User:PerfektesChaos/js/"+Signature,drop:false,errors:"bogus-image-options","deletable-table-tag","fostered","html5-misnesting","ignored-table-attr","inline-media-caption","large-tables","misc-tidy-replacement-issues","misnested-tag","missing-end-tag","missing-start-tag","mixed-content","multi-colon-escape","multiline-html-table-in-list","multiple-unclosed-formatting-tags","night-mode-unaware-background-color","obsolete-tag","pwrap-bug-workaround","self-closed-tag","stripped-tag","tidy-font-bug","tidy-whitespace-bug","unclosed-quotes-in-heading","wikilink-in-extlink"],idRev:0,indicators:".mw-indicators",last:true,later:false,launch:false,launched:false,layer:null,lazy:false,live:false,ltr:true,quiet:"large-tables","night-mode-unaware-background-color"

],selMain:"[role='main']",silent:false,source:false,spaces:false,using:"mediawiki.api","mediawiki.storage","mediawiki.util","user.options"],$body:false,$content:false,$main:false,$textarea:false,$widget:false},API={Api:false,errors:false,scream:false,server:"api/rest_v1/",scanner:"transform/wikitext/to/lint",swift:"page/lint"},BOX={bgc:"FFFF00",bgcErr:"FFE4E1",bgcOk:"ADFF2F",bgcRun:"C0C0C0",boc:"808080",fgc:"000000",fgcRun:"A0A0A0",swift:false,$box:false,$collapsed:false,$failure:false,$null:false,$other:false,$pagename:false,$swift:false,$tbody:false,$table:false,$top:false},CODMIRROR={cm:false},EDIT={layer:false,listen:false,live:false,selTextbox:"div[role='textbox']",selVEsrc:".ve-init-mw-desktopArticleTarget-uneditableContent",source:false,sourceVE:"&veaction=editsource",$source:false},GUIDER={last:false,live:false,reTrim:false,suitable:String.fromCharCode(0x2714),using:"jquery.textSelection","mediawiki.ui.button","mediawiki.ui.input"],$pagename:false},INFO={},LINTER={live:false},PREGO={app:false,live:false,maxage:604813,pars:[["last","boolean"],["later","boolean"],["launch","boolean"],["lazy","boolean"],["silent","string"],["spaces","string"]],signature:"preferencesGadgetOptions",site:"w:en",store:"User:PerfektesChaos/js/",sub:"/r.js"},REPOS={},TMPLXPAND={live:false},UPDATE={},WIKED={};

HINT.texts={

"desc":{"en":"Show LintErrors analysis live.",

"de":"Zeige LintErrors-Analyse live.",

"it":"Mostra analisi degli errori di Lint in diretta."},

"domain":{"en":"en.wikipedia.org",

"de":"de.wikipedia.org"},

"howTo":{"en":"Fill balanced wikitext into first input area and press adjacent submit button, or enter page name into second input field (might be followed by revision ID).",

"de":"Füge ausgeglichenen Wikitext in das obere Eingabefeld ein, oder einen Seitennamen in das untere (ggf. gefolgt von einer Versionsnummer), und betätige die jeweilige Schaltfläche.",

"it":"Inserisci il wikitesto nella prima area di input e premi il tasto di invio adiacente, oppure scrivi il titolo della pagina nel secondo campo (potrebbe essere seguito dall’ID della revisione)."},

"mark":{"en":"select problem in source text",

"de":"Problem im Quelltext selektieren",

"it":"Seleziona un problema nel testo sorgente"},

"noPage":{"en":"Wikitext page not found",

"de":"Wikitext-Seite nicht gefunden",

"it":"Pagina di wikitesto non trovata"},

"other":{"en":"Future problems detected.",

"de":"Zukünftige Probleme detektiert.",

"it":"Futuri problemi individuati."},

"^suffix":{"en":"&#8211; linter error analysis support",

"de":"&#8211; Unterstützung der Analyse von Linter-Fehlern",

"it":"&#8211; Supporto per l’analisi degli errori di Lint"},

"^^last":{"en":"Analyze previous revisions, too.",

"de":"Analysiere auch frühere Seitenversionen.",

"it":"Analizza anche le revisioni precedenti."},

"^^launch":{"en":"Run analysis automatically in namespaces on visit rather than manually triggered by button.",

"de":"Löse die Analyse automatisch beim Seitenbesuch in den Namensräumen aus, statt sie manuell über den angebotenen Knopf zu starten.",

"it":"Esegui automaticamente l’analisi nei namespace all’accesso,  piuttosto che avviandola manualmente  tramite bottone."},

"^^lazy":{"en":"Suppress small label if no error detected.",

"de":"Unterdrücke das kleine grüne Feld, falls bei einer Seitendarstellung kein Problem gefunden wurde.",

"it":"Nascondi l’etichetta in assenza di errori rilevati."},

"^^spaces":{"en":"Space separated list of namespace numbers, for automatized analysis or - for none or * for all",

"de":"Namensraum-Nummern für automatische Analyse, durch Leerzeichen getrennt, oder - für keine oder * für alle",

"it":"Lista di namespace, in formato numerico separati da spazi, dove effettuare l’analisi. Usare - per la lista vuota e * per indicarli tutti."},

"^^silent":{"en":"Suppress these error types (space separated list), or - for all shown or * for auto default",

"de":"Unterdrücke diese Fehlertypen (Leerzeichen-getrennte Liste), oder - für alle zeigen oder * für Vorgabe"}

};

function face(){

if(!HINT.$body){

HINT.$body=$("body");

HINT.ltr=($("html").attr("dir")!=="rtl");}}

function fair(action){

if(mw.config.get("skin")!=="minerva"){

if(action){

mw.loader.using(["jquery.tablesorter"],action);

}else{

HINT.using.push("jquery.tablesorter");}}}

function features(apply){

var i,live,s;

if(typeof apply==="object"&&apply){

if(typeof apply.rooms==="object"&&apply.rooms&&typeof apply.rooms.length==="number"){

live=false;

if(HINT.nsn>=0){

for(i=0;i<apply.rooms.length;i++){

if(apply.roomsi===HINT.nsn){

live=true;

break;}}}

}else if(typeof apply.rooms==="string"&&apply.rooms==="*"){

live=(HINT.nsn>=0);

}else{

live=false;}

if(typeof apply.later==="boolean"){

HINT.later=apply.later;}

if(typeof apply.launch==="boolean"){

HINT.launch=apply.launch;}

if(typeof apply.lazy==="boolean"){

HINT.lazy=apply.lazy;

if(HINT.lazy){

BOX.flat();}}

if(live&&!HINT.last){

live=false;

if(typeof apply.oldid==="boolean"&&apply.oldid){

live=true;}}

if(live&&!HINT.live){

HINT.live=true;

if(HINT.launch&&!HINT.launched){

mw.loader.using(HINT.using,API.full);

}else{

mw.loader.using(HINT.using,BOX.feed);}

}else if(HINT.live&&!live){

BOX.flat();}

if(typeof apply.quiet==="object"&&apply.quiet&&typeof apply.quiet.length==="number"){

HINT.drop=[];

for(i=0;i<apply.quiet.length;i++){

s=apply.quieti];

if(typeof s==="string"){

s=s.trim();

if(s){

HINT.drop.push(s);}}}

if(HINT.drop.length>0){

HINT.silent=HINT.drop.join(" ");

}else{

HINT.silent="-";}}}}

function first(){

var i,later,listen,live,re,rls,s;

HINT.signature="ext.gadget."+Signature;

if(mw.loader.getState(HINT.signature)!=="ready"){

rls={};

rlsHINT.signature="ready";

mw.loader.state(rls);

HINT.selector=Signature.toLowerCase();

switch(mw.config.get("wgAction")){

case "view":

HINT.nsn=mw.config.get("wgNamespaceNumber");

switch(HINT.nsn){

case-1:

s=mw.config.get("wgCanonicalSpecialPageName");

switch(s){

case "Blankpage":

s=mw.config.get("wgTitle");

i=s.indexOf("/");

if(i>1){

switch(s.substr(i+1)){

case Signature:

GUIDER.first();

listen=true;

break;

case PREGO.signature:

PREGO.live=true;

PREGO.fire();

break;}}

break;

case "ExpandTemplates":

PREGO.fire();

EDIT.live=true;

EDIT.selector="textarea#output";

fair(TMPLXPAND.first);

break;

case "Info":

$(INFO.first);

break;

case "LintErrors":

LINTER.live=true;

PREGO.fire();

fair(LINTER.first);

break;}

break;

case 102:

case 104:

case 106:

case 108:

case 110:

case 112:

s=mw.config.get("wgPageContentModel");

if(typeof HINT.cmodelss==="boolean"){

HINT.source=s;}

default:

HINT.idRev=mw.config.get("wgRevisionId");

s=window.location.search;

if(HINT.idRev<=0){

live=false;

}else if(s){

re="\\b(diff|history|printable)=";

re=new RegExp(re);

live=!re.test(s);

if(live){

if(s.indexOf("&oldid=")>0){

if(mw.config.get("wgCurRevisionId")!==HINT.idRev){

HINT.last=false;

HINT.live=false;}

}else if(s.indexOf("&lintid=")>0){

HINT.launch=true;}

if(s.indexOf(EDIT.sourceVE)>0){

later=true;

EDIT.layer=true;

EDIT.live=true;

EDIT.selector=EDIT.selTextbox;}}

}else{

live=true;}}

break;

case "edit":

case "submit":

EDIT.live=true;

HINT.nsn=mw.config.get("wgNamespaceNumber");

HINT.using.push("jquery.textSelection");

live=true;

if(HINT.nsn>=100){

s=mw.config.get("wgPageContentModel");

if(s==="proofread-page"){

HINT.source=s;}}

break;

case "info":

$(INFO.first);

break;}

if(live){

if(!HINT.source){

HINT.source=mw.config.get("wgPageContentModel");

live=(HINT.source==="wikitext");}

listen=live;}

if(listen){

mw.hook(Signature+".config").add(features);}

if(live){

if(later){

mw.loader.using(HINT.using,EDIT.fading);

}else{

fair();

PREGO.fire();}}

HINT.pub={doc:"[["+HINT.doc+"]]",type:Signature,vsn:Version};

mw.hook(Signature+".ready").fire(HINT.pub);}}

API.fault=function(jqXHR,textStatus,errorThrown){

if(textStatus){

switch(typeof textStatus){

case "object":

if(typeof textStatus.textStatus==="string"){

API.scream=textStatus.textStatus;

}else{

API.scream="";}

if(typeof textStatus.exception==="string"&&textStatus.exception){

API.scream=API.scream+" ("+textStatus.exception+")";}

break;

case "string":

API.scream=textStatus;

break;}}

if(errorThrown){

if(API.scream){

API.scream=API.scream+"  -- Error: ";}

API.scream=API.scream+errorThrown;}

if(!API.scream){

API.scream="???";}

if(typeof window.console==="object"&&typeof window.console.log==="function"){

window.console.log(Signature+" * "+API.scream);

if(typeof textStatus==="object"&&textStatus&&typeof window.console.dir==="function"){

window.console.dir(textStatus);}}

API.errors=false;

mw.hook("wikipage.content").add(BOX.fault);

};

API.fine=function(arrived){

var e,i,s;

API.scream=false;

API.errors=false;

if(typeof arrived==="object"&&arrived&&typeof arrived.length==="number"&&arrived.length){

if(HINT.quiet){

for(i=0;i<arrived.length;i++){

e=arrivedi];

if($.inArray(e.type,HINT.quiet)<0){

API.errors=API.errors||[];

API.errors.push(e);}}

}else{

API.errors=arrived;}}

s=(API.errors?"fill":"flat");

mw.hook("wikipage.content").add(BOXs]);

};

API.fire=function(ask){

var local=(typeof ask==="string");

if(typeof API.query!=="object"){

API.query={

dataType:"json"

};

if(local){

API.first();

API.query.type="POST";

API.query.url=API.site+API.server+API.scanner;}}

if(local){

API.query.data={wikitext:ask};}

$.ajax(API.query).done(API.fine).fail(API.fault);

};

API.first=function(){

if(!API.Api){

API.Api=new mw.Api();}

if(typeof API.site!=="string"){

API.site=window.location.protocol+"//"+window.location.hostname+"/";}

};

API.full=function(access,actual){

var idRev=actual,subject=access /*,f*/;

HINT.launched=true;

if(typeof subject==="string"){

subject=subject.trim();

}else{

if(!API.single){

API.single=mw.config.get("wgPageName");}

subject=API.single;

if(!HINT.idRev){

HINT.idRev=mw.config.get("wgRevisionId");}

idRev=HINT.idRev;}

if(typeof API.page!=="object"){

API.first();

API.page={/*beforeSend:f,*/

dataType:"json"

};

API.solver=API.site+API.server+API.swift+"/";}

if(subject.indexOf(" ")>0){

if(typeof API.reSpace!=="object"){

API.reSpace=new RegExp(" +","g");}

subject=subject.replace(API.reSpace,"_");}

API.page.url=API.solver+encodeURIComponent(subject);

if(idRev){

API.page.url=API.page.url+"/"+idRev;}

$.ajax(API.page).done(API.fine).fail(API.fault);

};

BOX.facet=function($activate){

if($activate){

$activate.css({"display":"block",

"float":(HINT.ltr?"right":"left")});

BOX.$box.append($activate);}

};

BOX.factory=function($area){

var $a,$e;

if(HINT.live){

BOX.first($area);

if(BOX.$box){

if(BOX.$failure){

BOX.$failure.hide();}

BOX.$box.show();

}else{

face();

BOX.$box=$("<div>");

$e=$("<div>");

if(HINT.nsn<0){

$a=$("<span>");

}else{

$a=$("<a>");

$a.attr({href:"/wiki/Special:Blankpage/"+Signature,target:Signature});}

$a.css({"font-weight":"bold",

"font-size":"larger"}).text(Signature+"@PerfektesChaos");

$e.append($a).css({"float":(HINT.ltr?"left":"right")});

BOX.$box.append($e).addClass(HINT.selector+"-box").attr({id:HINT.selector,role:"alert"}).css({"background-color":"#"+BOX.bgc,

"border-color":"#"+BOX.boc,

"border-style":"solid",

"border-width":"1px",

"color":"#"+BOX.fgc,

"margin-bottom":"1em",

"padding":"0.5em",

"pointer-events":"all"});

$e=$("<button>");

$e.click(BOX.flip).css({"color":"#FF0000",

"cursor":"pointer",

"display":"block",

"float":(HINT.ltr?"right":"left"),

"font-weight":"bolder",

"pointer-events":"all"}).css("margin-"+(HINT.ltr?"right":"left"),

"6px").text("X");

BOX.$box.append($e);

BOX.focus(BOX.$box);

if(!GUIDER.live){

mw.hook(PREGO.signature+".$button").fire(BOX.facet,Signature);}}

}else{

BOX.flat();}

BOX.firing(Version,false);

};

BOX.fault=function($area){

BOX.flat();

BOX.factory($area);

if(API.scream&&BOX.$box){

if(BOX.$table){

BOX.$table.hide();}

if(!BOX.$failure){

BOX.$failure=$("<div>");

BOX.$failure.css({"clear":"both",

"color":"#FF0000",

"font-weight":"bold"});

BOX.$box.append(BOX.$failure);}

BOX.$failure.text(API.scream).show();}

GUIDER.fine(false);

};

BOX.feed=function(){

UPDATE.fetch();

if(HINT.launch&&!HINT.launched&&!EDIT.live){

API.full();

}else{

API.errors=true;

mw.hook("wikipage.content").add(BOX.flip);}

};

BOX.fill=function($area){

var i,req,$th,$thead,$tr;

BOX.factory($area);

if(BOX.$collapsed&&!HINT.$widget){

BOX.$collapsed.hide();}

if(BOX.$box){

if(BOX.$table){

if(HINT.$textarea){

if(GUIDER.last){

BOX.$swift.hide();

}else{

BOX.$swift.show();}}

BOX.$tbody.empty();

BOX.filler();

}else{

BOX.$table=$("<table>");

$thead=$("<thead>");

if(HINT.nsn<0){

BOX.$pagename=$("<caption>");

BOX.$pagename.css({"font-weight":"normal",

"white-space":"nowrap"});

BOX.$table.append(BOX.$pagename);}

$tr=$("<tr>");

$th=$("<th>");

$th.text("lint");

$tr.append($th);

$th=$("<th>");

$th.text("+");

$tr.append($th);

if(HINT.$textarea){

BOX.$swift=$("<th>");

BOX.$swift.data("sort-type","number").text("⇓");

mw.hook(PREGO.signature+".ready").add(BOX.flag);

if(GUIDER.last){

BOX.$swift.hide();}

$tr.append(BOX.$swift);}

$thead.append($tr);

BOX.$tbody=$("<tbody>");

BOX.$table.addClass("wikitable "+HINT.selector+"-table").attr({id:HINT.selector+"-table"})

.append($thead,BOX.$tbody).css({"clear":"both",

"overflow":"scroll"});

if(HINT.errors.length>1||HINT.nsn<0){

BOX.$table.addClass("sortable");}

BOX.$box.append(BOX.$table);

req=[];

for(i=0;i<HINT.errors.length;i++){

req.push("linter-category-"+HINT.errorsi]);}

if(!API.Api){

API.Api=new mw.Api();}

API.Api.loadMessagesIfMissing(req).done(BOX.filler).fail(API.fault);}

GUIDER.fine(false);}

};

BOX.filler=function(){

var n=0,e,i,k,loc,par,s,$e,$e2,$e3,$td,$tr;

for(i=0;i<API.errors.length;i++){

e=API.errorsi];

s="linter-category-"+e.type;

if(mw.messages.exists(s)){

s=mw.message(s).text();

}else{

UPDATE.feed(e.type);

if(HINT.later){

s=e.type;

}else{

s=false;}}

if(s){

$tr=$("<tr>");

$tr.addClass(HINT.selector+"-"+e.type);

$td=$("<td>");

$e=$("<a>");

$e.attr({href:"/wiki/Special:LintErrors/"+e.type,target:Signature+"SP",title:"Special:LintErrors/"+e.type})

.text(s);

$td.append($e).css({"background-color":"#"+BOX.bgcErr});

$tr.append($td);

$td=$("<td>");

$td.css({"background-color":"#FFFFFF"});

if(typeof e.params==="object"){

par=e.params;

if(typeof par.name==="string"){

$td.text(par.name);

}else if(typeof par.subtype==="string"){

$td.text(par.subtype);

}else if(typeof par.root==="string"&&typeof par.child==="string"){

$e=$("<code>");

$e.text(par.root);

$e2=$("<span>");

$e2.css({"padding-left":"1em",

"padding-right":"1em"}).html("&gt;");

$e3=$("<code>");

$e3.text(par.child);

$td.append($e,$e2,$e3).css({"white-space":"nowrap"});

}else if(typeof par.items==="object"&&typeof par.items.length==="number"){

for(k=0;k<par.items.length;k++){

s=par.itemsk];

if(s.length>50){

$e=$("<span>");

}else{

$e=$("<code>");

$e.css({"margin-right":"6px",

"white-space":"nowrap"});}

$e.text(s);

$td.append($e);}}}

$tr.append($td);

if(HINT.$textarea&&!GUIDER.last&&typeof e.dsr==="object"&&e.dsr&&typeof e.dsr0==="number"&&typeof e.dsr1==="number"){

$td=$("<td>");

$td.click(BOX.find).css({"background-color":"#FFFFFF"}).data("range",e.dsr)

.data("sort-value",i).attr({"data-beg":""+e.dsr0],

"data-end":""+e.dsr1],

"data-type":e.type}).text(" ↓ ");

if(typeof BOX.swift==="string"){

$td.attr({title:BOX.swift});}

$tr.append($td);

loc=true;}

BOX.$tbody.append($tr);

n++;}}

if(n){

if(BOX.$other){

BOX.$other.hide();}

if(n>1&&typeof BOX.$table.tablesorter==="function"){

BOX.$table.tablesorter();}

BOX.$table.show();

if(loc){

mw.hook(Signature+".table-range").fire(BOX.$table);}

}else{

BOX.$table.hide();

if(BOX.$other){

BOX.$other.show();

}else{

if(PREGO.app){

BOX.future();

}else{

mw.hook(PREGO.signature+".ready").add(BOX.future);}}}

};

BOX.find=function(event){

var $item=$(event.target),range=$item.data("range");

HINT.$textarea.focus().textSelection("setSelection",{start:range0],end:range1]});

};

BOX.fine=function(){

if(BOX.$collapsed&&!API.errors){

BOX.firing("+");

BOX.$collapsed.addClass(HINT.selector+"-fine").css({"background-color":"#"+BOX.bgcOk});}

};

BOX.firing=function(about,active,attach){

var signal;

if(BOX.$collapsed){

if(active){

BOX.$collapsed.click(BOX.full).css({"color":"#"+BOX.fgc});

signal="pointer";

}else{

BOX.$collapsed.css({"background-color":"#"+BOX.bgcRun,

"color":"#"+BOX.fgcRun

}).off("click",BOX.full);

signal="default";}

BOX.$collapsed.attr({"aria-disabled":!active,

"title":about}).css({"cursor":attach||signal})

.removeClass([HINT.selector+"-fine",HINT.selector+"-progress"]).show();}

};

BOX.first=function($area){

var $main,$top;

if($area){

HINT.$content=$area;}

if(!HINT.$main){

$top=$(HINT.selMain);

switch($top.length){

case 0:

if($area){

HINT.$main=HINT.$content;}

break;

case 1:

$main=$top;

break;

default:

$main=$top.eq(0);}

if($main){

HINT.$main=$main.children().eq(0);

if(EDIT.layer&&!$main.find(EDIT.selVEsrc).length){

EDIT.layer=false;

EDIT.live=false;}}}

};

BOX.flag=function(application){

if(application){

PREGO.app=application;}

BOX.swift=PREGO.app.translation(HINT.texts.mark);

BOX.$swift.attr({title:BOX.swift});

};

BOX.flat=function($area,alive){

BOX.first($area);

if(BOX.$box){

BOX.$box.hide();}

if(API.errors){

BOX.firing("?");

}else{

BOX.fine();}

if(EDIT.live){

if(!alive){

BOX.flip();}

}else if(!API.errors&&!API.scream&&HINT.live&&GUIDER.live){

GUIDER.fine(true);}

};

BOX.flip=function($area){

BOX.first($area);

face();

BOX.flat($area,true);

if(!GUIDER.live){

if(BOX.$collapsed){

BOX.$collapsed.show();

}else{

BOX.$collapsed=$("<div>");

BOX.$collapsed.addClass(HINT.selector+"-collapsed").attr({id:HINT.selector+"-collapsed",role:"button"}).css({/*"clear":(HINT.ltr?"right":

"left"),*/

"padding-left":"2px",

"padding-right":"2px",

"padding-top":"2px",

"pointer-events":"all"}).text(Signature);

BOX.focus(BOX.$collapsed,true,true);}

BOX.firing(Version,true);

BOX.$collapsed.css({"background-color":"#"+BOX.bgc});}

if(TMPLXPAND.live&&!EDIT.$source){

EDIT.fetch();}

if(EDIT.live&&!API.errors&&!TMPLXPAND.live){

EDIT.fine();}

if(GUIDER.$pagename){

GUIDER.$pagename.hide();}

};

BOX.focus=function($apply,another,around){

var learn,light,s,$e;

$apply.addClass("noprint");

if(another){

if(HINT.$widget===false){

HINT.$widget=$(HINT.indicators);

switch(HINT.$widget.length){

case 0:

HINT.$widget=null;

break;

case 1:

break;

default:

HINT.$widget=HINT.$widget.eq(0);}

learn=true;}

if(HINT.$widget){

$apply.css({"display":"inline-block",

"line-height":"1.2em",

"margin-left":"3px",

"margin-right":"3px",

"padding":"1px"});

HINT.$widget.append($apply);

light=true;

}else{

$apply.css({"float":(HINT.ltr?"right":"left")});}}

if(!light){

if(!BOX.$top){

BOX.$top=$("<div>");

BOX.$top.addClass("noprint "+HINT.selector+"-top").attr({id:HINT.selector+"-top"})

.css({"clear":"both",

"width":"100%"});

$e=$("<div>");

$e.css({"clear":"both"});

HINT.$main.before(BOX.$top,$e);

learn=true;}

if(around){

s="#E0E0E0 #E0E0E0 #707070 #707070";

}else{

s="transparent";}

$apply.css({"border-color":s,

"border-style":"solid",

"border-width":"2px",

"margin-bottom":"3px"});

BOX.$top.prepend($apply);}

if(learn&&window.document.location.hash){

window.document.location=window.document.location.href;}

};

BOX.full=function(){

var idRev;

if(HINT.live){

if(BOX.$box){

if(EDIT.live){

API.errors=false;

}else if(HINT.$widget){

BOX.firing("?");}

if(API.errors){

BOX.$box.show();

}else{

BOX.$box.hide();}}

BOX.firing("...",false,"progress");

BOX.$collapsed.addClass(HINT.selector+"-progress");

if(!GUIDER.live){

if(!API.single){

API.single=mw.config.get("wgPageName");}

if(HINT.idRev&&HINT.idRev>0){

idRev=HINT.idRev;}}

if(EDIT.live){

EDIT.fire();

}else{

HINT.launch=true;

API.full(API.single,idRev);

BOX.firing("?",false,"progress");}

}else if(HINT.$widget){

BOX.firing("?",false,"progress");}

};

BOX.future=function(application){

var $e;

if(application){

PREGO.app=application;}

if(PREGO.app){

$e=$("<span>");

$e.css({"border-color":"#"+BOX.boc,

"border-style":"solid",

"border-width":"1px",

"padding":"0.4em"}).html(PREGO.app.translation(HINT.texts.other));

BOX.$other=$("<div>");

BOX.$other.addClass(HINT.selector+"-future").attr({id:HINT.selector+"-future"})

.css({"clear":"both",

"padding-bottom":"1em",

"padding-top":"1em"}).append($e);

BOX.$box.append(BOX.$other);}

};

CODMIRROR.fetch=function(){

var r;

if(CODMIRROR.first()){

r=CODMIRROR.cm.doc.getValue();}

return r;

};

CODMIRROR.first=function(){

var r,uo;

if(!CODMIRROR.cm&&typeof window.CodeMirror==="function"&&typeof window.CodeMirror.doc==="object"){

CODMIRROR.cm=window.CodeMirror;}

if(CODMIRROR.cm){

uo=mw.user.options.get("usecodemirror");

if(typeof uo==="number"&&uo>0){

r=CODMIRROR.cm;}}

return r;

};

EDIT.fading=function(){

var dom;

BOX.first();

if(EDIT.layer){

dom=mw.util.addPortletLink("p-tb","#",Signature,HINT.selector+"-portlet",Version);

HINT.$widget=$(dom);

if(dom.nodeName.toLowerCase()!=="li"){

HINT.$widget=HINT.$widget.parent();}

HINT.$widget.empty();}

fair();

PREGO.fire();

};

EDIT.fetch=function(){

var r,$div;

if(!EDIT.$source){

if(EDIT.layer){

EDIT.selector=EDIT.selTextbox;

}else if(!EDIT.selector){

switch(HINT.source){

case "wikitext":

case "proofread-page":

EDIT.selector="#wpTextbox1";

break;}}

if(EDIT.selector){

if(EDIT.layer){

$div=HINT.$main;

}else{

$div=HINT.$content;}

EDIT.$source=$div.find(EDIT.selector);

if(EDIT.$source.length){

if(EDIT.$source.find(":hidden").length){

EDIT.live=false;}

}else{

EDIT.live=false;}

}else{

EDIT.live=false;}}

if(EDIT.live&&EDIT.$source&&EDIT.$source.length){

if(EDIT.layer){

r=EDIT.$source.text();

}else{

HINT.$textarea=EDIT.$source;

r=EDIT.$source.val();}}

return r;

};

EDIT.fine=function(){

if(EDIT.$source){

EDIT.listen=true;

EDIT.$source.focusin(EDIT.focus);}

BOX.fine();

};

EDIT.fire=function(){

var source;

if(!TMPLXPAND.live){

source=CODMIRROR.fetch();

if(!source){

WIKED.fetch();}}

if(!source){

source=EDIT.fetch();}

if(source){

EDIT.listen=false;

API.fire(source);}

};

EDIT.focus=function(){

if(EDIT.listen){

BOX.firing(Version,true);

BOX.$collapsed.css({"background-color":"#"+BOX.bgc});

EDIT.listen=false;}

};

LINTER.fire=function(){

LINTER.live=true;

mw.hook("wikipage.content").add(LINTER.form);

};

LINTER.first=function(){

if(mw.config.get("wgTitle").indexOf("/")>0&&!LINTER.live){

fair(LINTER.fire);}

};

LINTER.form=function($area){

var $table=$area.find(".mw-datatable, .TablePager");

if($table.length){

if(typeof $table.tablesorter==="function"){

$table.tablesorter();}}

};

GUIDER.facet=function($activate){

if($activate){

$activate.css({"float":(HINT.ltr?"right":"left"),

"margin-top":"1em"});

GUIDER.$desc.before($activate);}

};

GUIDER.figure=function(){

var s=GUIDER.$rev.val().trim();

if(!GUIDER.reNaN){

GUIDER.reNaN=new RegExp("[^0-9]","g");}

s=s.replace(GUIDER.reNaN,"");

GUIDER.$rev.val(s);

};

GUIDER.filled=function(){

var s=GUIDER.$input.val().trim();

GUIDER.$rev.attr({disabled:(s?false:true)});

};

GUIDER.find=function(){

var s=GUIDER.$input.val().trim();

GUIDER.$input.val(s);

GUIDER.fired();

GUIDER.last=true;

if(s){

API.single=s;

API.full(s,GUIDER.$rev.val());}

GUIDER.$startPage.css({"cursor":"progress"});

};

GUIDER.fine=function(action){

var lapsus,$e;

if(GUIDER.live){

lapsus=(action!==true);

if((!API.single||lapsus)&&GUIDER.$pagename){

GUIDER.$pagename.hide();}

if(lapsus){

GUIDER.$okay.hide();

GUIDER.$textarea.css({"background-color":"transparent"}).off("focusin",GUIDER.fine);

GUIDER.$input.off("focusin",GUIDER.fine);

}else{

if(API.single){

$e=GUIDER.$pagename.children();

if(!$e.length){

$e=$("<a>");

$e.attr({target:"_blank"});

GUIDER.$pagename.append($e);}

$e.attr({href:mw.util.getUrl(API.single)}).text(API.single);

GUIDER.$pagename.show();

}else{

GUIDER.$okay.show();

GUIDER.$textarea.css({"background-color":

"#"+BOX.bgcOk}).focusin(GUIDER.fine);

GUIDER.$input.focusin(GUIDER.fine);}}

GUIDER.$startText.css({"cursor":"pointer"});

GUIDER.$startPage.css({"cursor":"pointer"});}

};

GUIDER.finish=function(application){

var $e=$("<div>");

PREGO.app=application;

GUIDER.$desc.html(PREGO.app.translation(HINT.texts.desc));

$e.css({"clear":"both",

"margin-top":"8em"}).html(PREGO.app.translation(HINT.texts.howTo));

HINT.$content.append($e);

$e=$("<a>");

$e.attr({href:"https://"+PREGO.app.translation(HINT.texts.domain)+"/wiki/User:PerfektesChaos/js/"+Signature,target:Signature}).text(GUIDER.$doc.text());

GUIDER.$doc.text("").append($e);

};

GUIDER.fire=function(){

var s=GUIDER.$textarea.val();

GUIDER.fired();

GUIDER.last=false;

if(!GUIDER.reTrim.test(s)){

API.single=false;

API.fire(s);

HINT.launched=true;}

GUIDER.$startText.css({"cursor":"progress"});

};

GUIDER.fired=function(){

GUIDER.flat();

if(!GUIDER.reTrim){

GUIDER.reTrim=new RegExp("^\\s*$");}

};

GUIDER.first=function(){

var i;

PREGO.fire();

for(i=0;i<GUIDER.using.length;i++){

HINT.using.push(GUIDER.usingi]);}

fair();

mw.loader.load(HINT.using);

HINT.live=true;

GUIDER.live=true;

mw.hook("wikipage.content").add(GUIDER.furnish);

};

GUIDER.flat=function(){

if(BOX.$box){

BOX.$box.hide();}

GUIDER.fine(false);

};

GUIDER.foreign=function(){

var req="general-form-reset","go"],i;

if(!API.Api){

API.Api=new mw.Api();}

UPDATE.fetch();

for(i=0;i<HINT.errors.length;i++){

req.push("linter-category-"+HINT.errorsi]);}

API.Api.loadMessagesIfMissing(req).done(GUIDER.form).fail(API.fault);

};

GUIDER.form=function(){

var submit=mw.message("go").text(),$div=$("<div>"),$x=$("<span>"),$b;

$x.css({"color":"#FF0000",

"font-weight":"bolder"}).text("X");

GUIDER.$startText=$("<span>");

GUIDER.$startText.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.fire).css({"color":"#FFFFFF"})

.text(submit);

GUIDER.$formText.append(GUIDER.$startText);

GUIDER.$okay=$("<span>");

GUIDER.$okay.css({"background-color":"#"+BOX.bgcOk,

"margin-left":"1em",

"margin-right":"1em",

"padding":"0.2em 0.5em"}).hide().text(GUIDER.suitable);

GUIDER.$formText.append(GUIDER.$okay);

$b=$("<input>");

$b.addClass("mw-ui-button").append($x).attr({type:"reset"})

.click(GUIDER.flat).css({"display":"block",

"float":(HINT.ltr?"right":"left")});

GUIDER.$formText.append($b);

$div.css({"clear":"both"});

GUIDER.$formPage.append($div);

$b=$("<input>");

$b.addClass("mw-ui-button").append($x.clone()).attr({type:"reset"})

.click(GUIDER.flat).click(GUIDER.filled).css({"float":(HINT.ltr?"right":"left")});

GUIDER.$formPage.append($b);

GUIDER.$startPage=$("<span>");

GUIDER.$startPage.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.find).css({"color":"#FFFFFF"})

.text(submit);

GUIDER.$formPage.append(GUIDER.$startPage);

mw.hook(PREGO.signature+".ready").add(GUIDER.finish);

};

GUIDER.furnish=function($area){

var $v=$("head"),$e=$v.find("title");

$e.remove();

$e=$("<title>");

$e.text(Signature);

$v.prepend($e);

HINT.$content=$area;

HINT.$content.empty();

face();

$v=HINT.$body.find("#firstHeading,#section_0");

if(!$v.length){

$v=$("h1");}

$v.eq(0).text(Signature);

$v=$("<div>");

$v.css({"clear":"both"});

GUIDER.$doc=$("<span>");

GUIDER.$doc.text(Signature+"@PerfektesChaos");

$e=$("<span>");

$e.css({"font-size":"smaller"}).css("margin-"+(HINT.ltr?"left":"right"),"2em").text(Version);

$v.append(GUIDER.$doc,$e);

GUIDER.$desc=$("<div>");

GUIDER.$desc.css({"font-size":"111%"}).text(" ");

$v.append($v,GUIDER.$desc);

HINT.$content.append($v);

GUIDER.$formText=$("<form>");

GUIDER.$textarea=$("<textarea>");

GUIDER.$textarea.addClass("mw-ui-input").attr({name:"wikitext"})

.css({"background-color":"transparent",

"margin-top":"2em",

"max-width":"100%",

"width":"100%"});

GUIDER.$formText.append(GUIDER.$textarea);

GUIDER.$formPage=$("<form>");

GUIDER.$formPage.css({"clear":"both",

"margin-top":"3em"});

GUIDER.$input=$("<input>");

GUIDER.$input.addClass("mw-ui-input").attr({maxlength:255,name:"pagename",size:50,type:"text"}).css({"float":(HINT.ltr?"left":"right"),

"width":"auto",

"max-width":"auto"}).keyup(GUIDER.filled).mouseup(GUIDER.filled);

GUIDER.$formPage.append(GUIDER.$input);

GUIDER.$rev=$("<input>");

GUIDER.$rev.addClass("mw-ui-input").attr({disabled:true,inputmode:"numeric",maxlength:12,name:"revision",placeholder:"oldid",size:8,type:"text"}).css({"display":"inline-block",

"margin-left":"1.5em",

"margin-right":"1.5em",

"width":"auto",

"max-width":"auto"}).keyup(GUIDER.figure).mouseup(GUIDER.figure);

GUIDER.$formPage.append(GUIDER.$rev);

HINT.$content.append(GUIDER.$formText,GUIDER.$formPage);

GUIDER.$pagename=$("<div>");

GUIDER.$pagename.addClass([HINT.selector+"-pagename",HINT.selector+"-fine"]).attr({id:HINT.selector+"-pagename"})

.css({"background-color":"#"+BOX.bgcOk,

"float":(HINT.ltr?"left":"right"),

"margin-bottom":"1em",

"padding":"4px",

"pointer-events":"all"}).hide();

HINT.$content.before(GUIDER.$pagename);

HINT.$textarea=GUIDER.$textarea;

mw.loader.using(HINT.using,GUIDER.foreign);

mw.hook(PREGO.signature+".$button").fire(GUIDER.facet,Signature);

};

INFO.fiat=function(){

var s=mw.config.get("wgRelevantPageName"),$a=$("<a>");

$a.attr({href:mw.util.getUrl("Special:LintErrors",{pagename:s})}).text(INFO.$h.text());

INFO.$h.empty().append($a);

};

INFO.first=function(){

INFO.$h=$("#mw-pageinfo-linter");

if(INFO.$h.length&&!INFO.$h.find("a").length){

mw.loader.using(["mediawiki.util"],INFO.fiat);}

};

PREGO.features=function(applied){

var i,n,s,v,vals;

if(typeof applied==="object"&&applied){

n=PREGO.pars.length;

for(i=0;i<n;i++){

v=PREGO.parsi];

s=v0];

if(typeof applieds===v1]){

HINTs=applieds];}}

if(typeof applied.layer==="boolean"){

delete applied.layer;

mw.hook(PREGO.signature+".forward").fire(Signature,applied);}}

if(HINT.spaces){

HINT.spaces=HINT.spaces.trim();}

if(PREGO.live){

if(!HINT.drop){

HINT.silent="*";}

PREGO.form();

}else if(LINTER.live){

LINTER.live=false;

LINTER.first();

}else{

if(HINT.spaces){

if(HINT.spaces==="*"){

HINT.live=true;

}else if(HINT.spaces!=="-"){

vals=HINT.spaces.split(" ");

s=HINT.nsn+"";

for(i=0;i<vals.length;i++){

if(s===valsi]){

HINT.live=true;

break;}}}

}else if(HINT.nsn===0){

HINT.live=true;}

if(HINT.live&&HINT.nsn>=0){

switch(HINT.silent){

case false:

case "*":

break;

case "-":

HINT.quiet=false;

break;

default:

HINT.quiet=HINT.silent.split(" ");}

mw.loader.using(HINT.using,BOX.feed);}}

};

PREGO.feed=function(){

var sign="ext.gadget."+PREGO.signature,rls;

if(!mw.loader.getState(sign)){

rls={};

rlssign="loading";

mw.loader.state(rls);

REPOS.fire(PREGO.site,PREGO.store+PREGO.signature+PREGO.sub,false,{action:"raw",ctype:"text/javascript",bcache:1,maxage:PREGO.maxage});}

};

PREGO.fiat1=function(){

var s=PREGO.$spaces.val(),i,k,got,rooms;

if(s.indexOf("-")>=0){

s="-";

}else if(s.indexOf("*")>=0){

s="*";

}else{

got=s.trim().split(" ");

s="";

if(got.length>0){

if(typeof PREGO.rooms!=="object"){

PREGO.follow=function(a,b){

return(a<b?-1:1);

};

PREGO.reNum=new RegExp("^[0-9]+$");

PREGO.rooms=mw.config.get("wgFormattedNamespaces");}

rooms=[];

for(i=0;i<got.length;i++){

if(PREGO.reNum.test(goti])){

k=parseInt(goti],10);

if((k===0||PREGO.roomsk])&&$.inArray(k,rooms)<0){

rooms.push(k);}}}

if(rooms.length>0){

rooms.sort(PREGO.follow);

s=rooms.join(" ");}}}

PREGO.$spaces.val(s);

};

PREGO.fiat2=function(){

var s=PREGO.$silent.val(),got,i,quiet,single;

if(s.indexOf("*")>=0){

s="*";

}else{

got=s.trim().split(" ");

if(got.length>0){

quiet=[];

if(typeof PREGO.reID!=="object"){

PREGO.reID=new RegExp("^[a-z][a-z-]*[a-z]$");}

for(i=0;i<got.length;i++){

single=goti];

if(PREGO.reID.test(single)&&$.inArray(single,quiet)<0){

quiet.push(single);

}else if(single==="-"){

quiet=[];

break;}}

if(quiet.length>0){

s=quiet.join(" ");

}else{

s="-";}

}else{

s="*";}}

PREGO.$silent.val(s);

};

PREGO.field1=function($applying){

PREGO.$spaces=$applying;

PREGO.$spaces.change(PREGO.fiat1);

};

PREGO.field2=function($applying){

PREGO.$silent=$applying;

PREGO.$silent.change(PREGO.fiat2);

};

PREGO.fire=function(){

PREGO.feed();

mw.hook(PREGO.signature+".fetch").fire(Signature,PREGO.features);

};

PREGO.form=function(){

var support=".wikipedia.org/wiki/"+HINT.doc.substr(3),docs={"en":"//en"+support,

"de":"//de"+support},

dialog,opts;

opts=[{signature:"spaces",type:"text",show:HINT.texts"^^spaces"],val:(HINT.spaces?HINT.spaces:""),field:PREGO.field1},{signature:"launch",type:"checkbox",show:HINT.texts"^^launch"],val:HINT.launch},{signature:"last",type:"checkbox",show:HINT.texts"^^last"],val:HINT.last},{signature:"lazy",type:"checkbox",show:HINT.texts"^^lazy"],val:HINT.lazy},{signature:"silent",type:"text",show:HINT.texts"^^silent"],val:(HINT.silent?HINT.silent:"*"),field:PREGO.field2}];

dialog={script:Signature,support:docs,suffix:HINT.texts"^suffix"],opts:opts};

mw.hook(PREGO.signature+".form").fire(dialog);

};

REPOS.fire=function(at,access,append,alter){

var source,syntax;

if(typeof REPOS.requests!=="object"){

REPOS.requests={};}

if(typeof REPOS.requestsaccess!=="boolean"){

REPOS.requestsaccess=true;

if(append){

source=access+append;

}else{

source=access;}

if(at){

source=REPOS.foundation(at,source,alter);

if(typeof alter==="object"&&alter&&typeof alter.ctype==="string"){

syntax=alter.ctype;}

}else{

syntax=alter;}

mw.loader.load(source,syntax);}

};

REPOS.foundation=function(at,access,alter){

var s=access,r=encodeURI(s);

if(typeof alter==="object"&&alter){

r="/?title="+r;

if(access.substr(-3)===".js"){

alter.ctype="text/javascript";

}else if(access.substr(-4)===".css"){

alter.ctype="text/css";}

alter.action="raw";

for(s in alter){

r=r+"&"+s+"="+encodeURI(alters]);}

}else{

r="/wiki/"+r;}

if(typeof at==="string"&&at){

switch(at){

case "meta":

r="meta.wikimedia.org"+r;

break;

case "mw":

r="www.mediawiki.org"+r;

break;

case "w:en":

r="en.wikipedia.org"+r;

break;

default:

r=window.location.host+r;}

r="https://"+r;}

return r;

};

TMPLXPAND.first=function(){

TMPLXPAND.live=true;

HINT.live=true;

EDIT.live=true;

EDIT.selector="#output";

mw.loader.using(HINT.using,TMPLXPAND.further);

};

TMPLXPAND.further=function(){

mw.hook("wikipage.content").add(BOX.flip);

};

UPDATE.feed=function(apply){

if(typeof UPDATE.o!=="object"){

UPDATE.o={};}

if(typeof UPDATE.o.unknown!=="object"){

UPDATE.o.unknown=[];}

if($.inArray(apply,HINT.errors)<0){

HINT.errors.push(apply);

UPDATE.o.unknown.push(apply);}

UPDATE.flush();

};

UPDATE.fetch=function(){

var storage=mw.storage.get(Signature),i,k,parsed,s,unknown;

if(typeof storage==="string"){

try{

parsed=JSON.parse(storage);

if(typeof parsed==="object"&&parsed){

if(typeof parsed.translations==="object"&&parsed.translations){

UPDATE.o={translations:parsed.translations};}

if(typeof parsed.unknown==="object"&&parsed.unknown&&typeof parsed.unknown.length==="number"&&parsed.unknown.length){

unknown=[];

for(i=0;i<parsed.unknown.length;i++){

s=parsed.unknowni];

if(typeof s==="string"){

s=s.trim();

if(s){

k=$.inArray(s,HINT.errors);

if(k<0){

HINT.errors.push(s);

unknown.push(s);}}}}

if(unknown.length){

if(typeof UPDATE.o==="object"){

UPDATE.o.unknown=unknown;

}else{

UPDATE.o={unknown:unknown};}}

if(unknown.length!==parsed.unknown.length){

UPDATE.flush();}}}

}catch(e){

}

if(typeof UPDATE.o!=="object"){

UPDATE.flush();}}

};

UPDATE.flush=function(){

var storage;

if(typeof UPDATE.o==="object"){

storage=JSON.stringify(UPDATE.o);}

if(storage){

mw.storage.set(Signature,storage);

}else{

mw.storage.remove(Signature);}

};

WIKED.fetch=function(){

if(!WIKED.wikEd&&(typeof window.wikEd==="function"||(typeof window.wikEd==="object"&&window.wikEd))&&typeof window.wikEd.disabled==="boolean"&&typeof window.wikEd.highlightSyntax==="boolean"&&typeof window.wikEd.turnedOn==="boolean"&&typeof window.wikEd.useWikEd==="boolean"){

WIKED.wikEd=window.wikEd;}

if(WIKED.wikEd&&!WIKED.wikEd.disabled&&WIKED.wikEd.useWikEd&&WIKED.wikEd.turnedOn&&WIKED.wikEd.highlightSyntax){

WIKED.wikEd.UpdateTextarea();}

};

first();

}(window.mediaWiki,window.jQuery));

/// EOF</nowiki>lintHint/r.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/// User:PerfektesChaos/js/lintHint/r.js

/// 2024-07-04 PerfektesChaos@de.wikipedia

/// Fingerprint:#0#11AC22BC#

/// License:CC-by-sa/4.0

///<nowiki>

(function(mw,$){

"use strict";

var Version=5.8,Signature="lintHint",HINT={cmodels:{"wikitext":true,

"proofread-index":true,

"proofread-page":true},doc:"en:User:PerfektesChaos/js/"+Signature,drop:false,errors:"bogus-image-options","deletable-table-tag","fostered","html5-misnesting","ignored-table-attr","inline-media-caption","large-tables","misc-tidy-replacement-issues","misnested-tag","missing-end-tag","missing-start-tag","mixed-content","multi-colon-escape","multiline-html-table-in-list","multiple-unclosed-formatting-tags","night-mode-unaware-background-color","obsolete-tag","pwrap-bug-workaround","self-closed-tag","stripped-tag","tidy-font-bug","tidy-whitespace-bug","unclosed-quotes-in-heading","wikilink-in-extlink"],idRev:0,indicators:".mw-indicators",last:true,later:false,launch:false,launched:false,layer:null,lazy:false,live:false,ltr:true,quiet:"large-tables","night-mode-unaware-background-color"

],selMain:"[role='main']",silent:false,source:false,spaces:false,using:"mediawiki.api","mediawiki.storage","mediawiki.util","user.options"],$body:false,$content:false,$main:false,$textarea:false,$widget:false},API={Api:false,errors:false,scream:false,server:"api/rest_v1/",scanner:"transform/wikitext/to/lint",swift:"page/lint"},BOX={bgc:"FFFF00",bgcErr:"FFE4E1",bgcOk:"ADFF2F",bgcRun:"C0C0C0",boc:"808080",fgc:"000000",fgcRun:"A0A0A0",swift:false,$box:false,$collapsed:false,$failure:false,$null:false,$other:false,$pagename:false,$swift:false,$tbody:false,$table:false,$top:false},CODMIRROR={cm:false},EDIT={layer:false,listen:false,live:false,selTextbox:"div[role='textbox']",selVEsrc:".ve-init-mw-desktopArticleTarget-uneditableContent",source:false,sourceVE:"&veaction=editsource",$source:false},GUIDER={last:false,live:false,reTrim:false,suitable:String.fromCharCode(0x2714),using:"jquery.textSelection","mediawiki.ui.button","mediawiki.ui.input"],$pagename:false},INFO={},LINTER={live:false},PREGO={app:false,live:false,maxage:604813,pars:[["last","boolean"],["later","boolean"],["launch","boolean"],["lazy","boolean"],["silent","string"],["spaces","string"]],signature:"preferencesGadgetOptions",site:"w:en",store:"User:PerfektesChaos/js/",sub:"/r.js"},REPOS={},TMPLXPAND={live:false},UPDATE={},WIKED={};

HINT.texts={

"desc":{"en":"Show LintErrors analysis live.",

"de":"Zeige LintErrors-Analyse live.",

"it":"Mostra analisi degli errori di Lint in diretta."},

"domain":{"en":"en.wikipedia.org",

"de":"de.wikipedia.org"},

"howTo":{"en":"Fill balanced wikitext into first input area and press adjacent submit button, or enter page name into second input field (might be followed by revision ID).",

"de":"Füge ausgeglichenen Wikitext in das obere Eingabefeld ein, oder einen Seitennamen in das untere (ggf. gefolgt von einer Versionsnummer), und betätige die jeweilige Schaltfläche.",

"it":"Inserisci il wikitesto nella prima area di input e premi il tasto di invio adiacente, oppure scrivi il titolo della pagina nel secondo campo (potrebbe essere seguito dall’ID della revisione)."},

"mark":{"en":"select problem in source text",

"de":"Problem im Quelltext selektieren",

"it":"Seleziona un problema nel testo sorgente"},

"noPage":{"en":"Wikitext page not found",

"de":"Wikitext-Seite nicht gefunden",

"it":"Pagina di wikitesto non trovata"},

"other":{"en":"Future problems detected.",

"de":"Zukünftige Probleme detektiert.",

"it":"Futuri problemi individuati."},

"^suffix":{"en":"&#8211; linter error analysis support",

"de":"&#8211; Unterstützung der Analyse von Linter-Fehlern",

"it":"&#8211; Supporto per l’analisi degli errori di Lint"},

"^^last":{"en":"Analyze previous revisions, too.",

"de":"Analysiere auch frühere Seitenversionen.",

"it":"Analizza anche le revisioni precedenti."},

"^^launch":{"en":"Run analysis automatically in namespaces on visit rather than manually triggered by button.",

"de":"Löse die Analyse automatisch beim Seitenbesuch in den Namensräumen aus, statt sie manuell über den angebotenen Knopf zu starten.",

"it":"Esegui automaticamente l’analisi nei namespace all’accesso,  piuttosto che avviandola manualmente  tramite bottone."},

"^^lazy":{"en":"Suppress small label if no error detected.",

"de":"Unterdrücke das kleine grüne Feld, falls bei einer Seitendarstellung kein Problem gefunden wurde.",

"it":"Nascondi l’etichetta in assenza di errori rilevati."},

"^^spaces":{"en":"Space separated list of namespace numbers, for automatized analysis or - for none or * for all",

"de":"Namensraum-Nummern für automatische Analyse, durch Leerzeichen getrennt, oder - für keine oder * für alle",

"it":"Lista di namespace, in formato numerico separati da spazi, dove effettuare l’analisi. Usare - per la lista vuota e * per indicarli tutti."},

"^^silent":{"en":"Suppress these error types (space separated list), or - for all shown or * for auto default",

"de":"Unterdrücke diese Fehlertypen (Leerzeichen-getrennte Liste), oder - für alle zeigen oder * für Vorgabe"}

};

function face(){

if(!HINT.$body){

HINT.$body=$("body");

HINT.ltr=($("html").attr("dir")!=="rtl");}}

function fair(action){

if(mw.config.get("skin")!=="minerva"){

if(action){

mw.loader.using(["jquery.tablesorter"],action);

}else{

HINT.using.push("jquery.tablesorter");}}}

function features(apply){

var i,live,s;

if(typeof apply==="object"&&apply){

if(typeof apply.rooms==="object"&&apply.rooms&&typeof apply.rooms.length==="number"){

live=false;

if(HINT.nsn>=0){

for(i=0;i<apply.rooms.length;i++){

if(apply.roomsi===HINT.nsn){

live=true;

break;}}}

}else if(typeof apply.rooms==="string"&&apply.rooms==="*"){

live=(HINT.nsn>=0);

}else{

live=false;}

if(typeof apply.later==="boolean"){

HINT.later=apply.later;}

if(typeof apply.launch==="boolean"){

HINT.launch=apply.launch;}

if(typeof apply.lazy==="boolean"){

HINT.lazy=apply.lazy;

if(HINT.lazy){

BOX.flat();}}

if(live&&!HINT.last){

live=false;

if(typeof apply.oldid==="boolean"&&apply.oldid){

live=true;}}

if(live&&!HINT.live){

HINT.live=true;

if(HINT.launch&&!HINT.launched){

mw.loader.using(HINT.using,API.full);

}else{

mw.loader.using(HINT.using,BOX.feed);}

}else if(HINT.live&&!live){

BOX.flat();}

if(typeof apply.quiet==="object"&&apply.quiet&&typeof apply.quiet.length==="number"){

HINT.drop=[];

for(i=0;i<apply.quiet.length;i++){

s=apply.quieti];

if(typeof s==="string"){

s=s.trim();

if(s){

HINT.drop.push(s);}}}

if(HINT.drop.length>0){

HINT.silent=HINT.drop.join(" ");

}else{

HINT.silent="-";}}}}

function first(){

var i,later,listen,live,re,rls,s;

HINT.signature="ext.gadget."+Signature;

if(mw.loader.getState(HINT.signature)!=="ready"){

rls={};

rlsHINT.signature="ready";

mw.loader.state(rls);

HINT.selector=Signature.toLowerCase();

switch(mw.config.get("wgAction")){

case "view":

HINT.nsn=mw.config.get("wgNamespaceNumber");

switch(HINT.nsn){

case-1:

s=mw.config.get("wgCanonicalSpecialPageName");

switch(s){

case "Blankpage":

s=mw.config.get("wgTitle");

i=s.indexOf("/");

if(i>1){

switch(s.substr(i+1)){

case Signature:

GUIDER.first();

listen=true;

break;

case PREGO.signature:

PREGO.live=true;

PREGO.fire();

break;}}

break;

case "ExpandTemplates":

PREGO.fire();

EDIT.live=true;

EDIT.selector="textarea#output";

fair(TMPLXPAND.first);

break;

case "Info":

$(INFO.first);

break;

case "LintErrors":

LINTER.live=true;

PREGO.fire();

fair(LINTER.first);

break;}

break;

case 102:

case 104:

case 106:

case 108:

case 110:

case 112:

s=mw.config.get("wgPageContentModel");

if(typeof HINT.cmodelss==="boolean"){

HINT.source=s;}

default:

HINT.idRev=mw.config.get("wgRevisionId");

s=window.location.search;

if(HINT.idRev<=0){

live=false;

}else if(s){

re="\\b(diff|history|printable)=";

re=new RegExp(re);

live=!re.test(s);

if(live){

if(s.indexOf("&oldid=")>0){

if(mw.config.get("wgCurRevisionId")!==HINT.idRev){

HINT.last=false;

HINT.live=false;}

}else if(s.indexOf("&lintid=")>0){

HINT.launch=true;}

if(s.indexOf(EDIT.sourceVE)>0){

later=true;

EDIT.layer=true;

EDIT.live=true;

EDIT.selector=EDIT.selTextbox;}}

}else{

live=true;}}

break;

case "edit":

case "submit":

EDIT.live=true;

HINT.nsn=mw.config.get("wgNamespaceNumber");

HINT.using.push("jquery.textSelection");

live=true;

if(HINT.nsn>=100){

s=mw.config.get("wgPageContentModel");

if(s==="proofread-page"){

HINT.source=s;}}

break;

case "info":

$(INFO.first);

break;}

if(live){

if(!HINT.source){

HINT.source=mw.config.get("wgPageContentModel");

live=(HINT.source==="wikitext");}

listen=live;}

if(listen){

mw.hook(Signature+".config").add(features);}

if(live){

if(later){

mw.loader.using(HINT.using,EDIT.fading);

}else{

fair();

PREGO.fire();}}

HINT.pub={doc:"[["+HINT.doc+"]]",type:Signature,vsn:Version};

mw.hook(Signature+".ready").fire(HINT.pub);}}

API.fault=function(jqXHR,textStatus,errorThrown){

if(textStatus){

switch(typeof textStatus){

case "object":

if(typeof textStatus.textStatus==="string"){

API.scream=textStatus.textStatus;

}else{

API.scream="";}

if(typeof textStatus.exception==="string"&&textStatus.exception){

API.scream=API.scream+" ("+textStatus.exception+")";}

break;

case "string":

API.scream=textStatus;

break;}}

if(errorThrown){

if(API.scream){

API.scream=API.scream+"  -- Error: ";}

API.scream=API.scream+errorThrown;}

if(!API.scream){

API.scream="???";}

if(typeof window.console==="object"&&typeof window.console.log==="function"){

window.console.log(Signature+" * "+API.scream);

if(typeof textStatus==="object"&&textStatus&&typeof window.console.dir==="function"){

window.console.dir(textStatus);}}

API.errors=false;

mw.hook("wikipage.content").add(BOX.fault);

};

API.fine=function(arrived){

var e,i,s;

API.scream=false;

API.errors=false;

if(typeof arrived==="object"&&arrived&&typeof arrived.length==="number"&&arrived.length){

if(HINT.quiet){

for(i=0;i<arrived.length;i++){

e=arrivedi];

if($.inArray(e.type,HINT.quiet)<0){

API.errors=API.errors||[];

API.errors.push(e);}}

}else{

API.errors=arrived;}}

s=(API.errors?"fill":"flat");

mw.hook("wikipage.content").add(BOXs]);

};

API.fire=function(ask){

var local=(typeof ask==="string");

if(typeof API.query!=="object"){

API.query={

dataType:"json"

};

if(local){

API.first();

API.query.type="POST";

API.query.url=API.site+API.server+API.scanner;}}

if(local){

API.query.data={wikitext:ask};}

$.ajax(API.query).done(API.fine).fail(API.fault);

};

API.first=function(){

if(!API.Api){

API.Api=new mw.Api();}

if(typeof API.site!=="string"){

API.site=window.location.protocol+"//"+window.location.hostname+"/";}

};

API.full=function(access,actual){

var idRev=actual,subject=access /*,f*/;

HINT.launched=true;

if(typeof subject==="string"){

subject=subject.trim();

}else{

if(!API.single){

API.single=mw.config.get("wgPageName");}

subject=API.single;

if(!HINT.idRev){

HINT.idRev=mw.config.get("wgRevisionId");}

idRev=HINT.idRev;}

if(typeof API.page!=="object"){

API.first();

API.page={/*beforeSend:f,*/

dataType:"json"

};

API.solver=API.site+API.server+API.swift+"/";}

if(subject.indexOf(" ")>0){

if(typeof API.reSpace!=="object"){

API.reSpace=new RegExp(" +","g");}

subject=subject.replace(API.reSpace,"_");}

API.page.url=API.solver+encodeURIComponent(subject);

if(idRev){

API.page.url=API.page.url+"/"+idRev;}

$.ajax(API.page).done(API.fine).fail(API.fault);

};

BOX.facet=function($activate){

if($activate){

$activate.css({"display":"block",

"float":(HINT.ltr?"right":"left")});

BOX.$box.append($activate);}

};

BOX.factory=function($area){

var $a,$e;

if(HINT.live){

BOX.first($area);

if(BOX.$box){

if(BOX.$failure){

BOX.$failure.hide();}

BOX.$box.show();

}else{

face();

BOX.$box=$("<div>");

$e=$("<div>");

if(HINT.nsn<0){

$a=$("<span>");

}else{

$a=$("<a>");

$a.attr({href:"/wiki/Special:Blankpage/"+Signature,target:Signature});}

$a.css({"font-weight":"bold",

"font-size":"larger"}).text(Signature+"@PerfektesChaos");

$e.append($a).css({"float":(HINT.ltr?"left":"right")});

BOX.$box.append($e).addClass(HINT.selector+"-box").attr({id:HINT.selector,role:"alert"}).css({"background-color":"#"+BOX.bgc,

"border-color":"#"+BOX.boc,

"border-style":"solid",

"border-width":"1px",

"color":"#"+BOX.fgc,

"margin-bottom":"1em",

"padding":"0.5em",

"pointer-events":"all"});

$e=$("<button>");

$e.click(BOX.flip).css({"color":"#FF0000",

"cursor":"pointer",

"display":"block",

"float":(HINT.ltr?"right":"left"),

"font-weight":"bolder",

"pointer-events":"all"}).css("margin-"+(HINT.ltr?"right":"left"),

"6px").text("X");

BOX.$box.append($e);

BOX.focus(BOX.$box);

if(!GUIDER.live){

mw.hook(PREGO.signature+".$button").fire(BOX.facet,Signature);}}

}else{

BOX.flat();}

BOX.firing(Version,false);

};

BOX.fault=function($area){

BOX.flat();

BOX.factory($area);

if(API.scream&&BOX.$box){

if(BOX.$table){

BOX.$table.hide();}

if(!BOX.$failure){

BOX.$failure=$("<div>");

BOX.$failure.css({"clear":"both",

"color":"#FF0000",

"font-weight":"bold"});

BOX.$box.append(BOX.$failure);}

BOX.$failure.text(API.scream).show();}

GUIDER.fine(false);

};

BOX.feed=function(){

UPDATE.fetch();

if(HINT.launch&&!HINT.launched&&!EDIT.live){

API.full();

}else{

API.errors=true;

mw.hook("wikipage.content").add(BOX.flip);}

};

BOX.fill=function($area){

var i,req,$th,$thead,$tr;

BOX.factory($area);

if(BOX.$collapsed&&!HINT.$widget){

BOX.$collapsed.hide();}

if(BOX.$box){

if(BOX.$table){

if(HINT.$textarea){

if(GUIDER.last){

BOX.$swift.hide();

}else{

BOX.$swift.show();}}

BOX.$tbody.empty();

BOX.filler();

}else{

BOX.$table=$("<table>");

$thead=$("<thead>");

if(HINT.nsn<0){

BOX.$pagename=$("<caption>");

BOX.$pagename.css({"font-weight":"normal",

"white-space":"nowrap"});

BOX.$table.append(BOX.$pagename);}

$tr=$("<tr>");

$th=$("<th>");

$th.text("lint");

$tr.append($th);

$th=$("<th>");

$th.text("+");

$tr.append($th);

if(HINT.$textarea){

BOX.$swift=$("<th>");

BOX.$swift.data("sort-type","number").text("⇓");

mw.hook(PREGO.signature+".ready").add(BOX.flag);

if(GUIDER.last){

BOX.$swift.hide();}

$tr.append(BOX.$swift);}

$thead.append($tr);

BOX.$tbody=$("<tbody>");

BOX.$table.addClass("wikitable "+HINT.selector+"-table").attr({id:HINT.selector+"-table"})

.append($thead,BOX.$tbody).css({"clear":"both",

"overflow":"scroll"});

if(HINT.errors.length>1||HINT.nsn<0){

BOX.$table.addClass("sortable");}

BOX.$box.append(BOX.$table);

req=[];

for(i=0;i<HINT.errors.length;i++){

req.push("linter-category-"+HINT.errorsi]);}

if(!API.Api){

API.Api=new mw.Api();}

API.Api.loadMessagesIfMissing(req).done(BOX.filler).fail(API.fault);}

GUIDER.fine(false);}

};

BOX.filler=function(){

var n=0,e,i,k,loc,par,s,$e,$e2,$e3,$td,$tr;

for(i=0;i<API.errors.length;i++){

e=API.errorsi];

s="linter-category-"+e.type;

if(mw.messages.exists(s)){

s=mw.message(s).text();

}else{

UPDATE.feed(e.type);

if(HINT.later){

s=e.type;

}else{

s=false;}}

if(s){

$tr=$("<tr>");

$tr.addClass(HINT.selector+"-"+e.type);

$td=$("<td>");

$e=$("<a>");

$e.attr({href:"/wiki/Special:LintErrors/"+e.type,target:Signature+"SP",title:"Special:LintErrors/"+e.type})

.text(s);

$td.append($e).css({"background-color":"#"+BOX.bgcErr});

$tr.append($td);

$td=$("<td>");

$td.css({"background-color":"#FFFFFF"});

if(typeof e.params==="object"){

par=e.params;

if(typeof par.name==="string"){

$td.text(par.name);

}else if(typeof par.subtype==="string"){

$td.text(par.subtype);

}else if(typeof par.root==="string"&&typeof par.child==="string"){

$e=$("<code>");

$e.text(par.root);

$e2=$("<span>");

$e2.css({"padding-left":"1em",

"padding-right":"1em"}).html("&gt;");

$e3=$("<code>");

$e3.text(par.child);

$td.append($e,$e2,$e3).css({"white-space":"nowrap"});

}else if(typeof par.items==="object"&&typeof par.items.length==="number"){

for(k=0;k<par.items.length;k++){

s=par.itemsk];

if(s.length>50){

$e=$("<span>");

}else{

$e=$("<code>");

$e.css({"margin-right":"6px",

"white-space":"nowrap"});}

$e.text(s);

$td.append($e);}}}

$tr.append($td);

if(HINT.$textarea&&!GUIDER.last&&typeof e.dsr==="object"&&e.dsr&&typeof e.dsr0==="number"&&typeof e.dsr1==="number"){

$td=$("<td>");

$td.click(BOX.find).css({"background-color":"#FFFFFF"}).data("range",e.dsr)

.data("sort-value",i).attr({"data-beg":""+e.dsr0],

"data-end":""+e.dsr1],

"data-type":e.type}).text(" ↓ ");

if(typeof BOX.swift==="string"){

$td.attr({title:BOX.swift});}

$tr.append($td);

loc=true;}

BOX.$tbody.append($tr);

n++;}}

if(n){

if(BOX.$other){

BOX.$other.hide();}

if(n>1&&typeof BOX.$table.tablesorter==="function"){

BOX.$table.tablesorter();}

BOX.$table.show();

if(loc){

mw.hook(Signature+".table-range").fire(BOX.$table);}

}else{

BOX.$table.hide();

if(BOX.$other){

BOX.$other.show();

}else{

if(PREGO.app){

BOX.future();

}else{

mw.hook(PREGO.signature+".ready").add(BOX.future);}}}

};

BOX.find=function(event){

var $item=$(event.target),range=$item.data("range");

HINT.$textarea.focus().textSelection("setSelection",{start:range0],end:range1]});

};

BOX.fine=function(){

if(BOX.$collapsed&&!API.errors){

BOX.firing("+");

BOX.$collapsed.addClass(HINT.selector+"-fine").css({"background-color":"#"+BOX.bgcOk});}

};

BOX.firing=function(about,active,attach){

var signal;

if(BOX.$collapsed){

if(active){

BOX.$collapsed.click(BOX.full).css({"color":"#"+BOX.fgc});

signal="pointer";

}else{

BOX.$collapsed.css({"background-color":"#"+BOX.bgcRun,

"color":"#"+BOX.fgcRun

}).off("click",BOX.full);

signal="default";}

BOX.$collapsed.attr({"aria-disabled":!active,

"title":about}).css({"cursor":attach||signal})

.removeClass([HINT.selector+"-fine",HINT.selector+"-progress"]).show();}

};

BOX.first=function($area){

var $main,$top;

if($area){

HINT.$content=$area;}

if(!HINT.$main){

$top=$(HINT.selMain);

switch($top.length){

case 0:

if($area){

HINT.$main=HINT.$content;}

break;

case 1:

$main=$top;

break;

default:

$main=$top.eq(0);}

if($main){

HINT.$main=$main.children().eq(0);

if(EDIT.layer&&!$main.find(EDIT.selVEsrc).length){

EDIT.layer=false;

EDIT.live=false;}}}

};

BOX.flag=function(application){

if(application){

PREGO.app=application;}

BOX.swift=PREGO.app.translation(HINT.texts.mark);

BOX.$swift.attr({title:BOX.swift});

};

BOX.flat=function($area,alive){

BOX.first($area);

if(BOX.$box){

BOX.$box.hide();}

if(API.errors){

BOX.firing("?");

}else{

BOX.fine();}

if(EDIT.live){

if(!alive){

BOX.flip();}

}else if(!API.errors&&!API.scream&&HINT.live&&GUIDER.live){

GUIDER.fine(true);}

};

BOX.flip=function($area){

BOX.first($area);

face();

BOX.flat($area,true);

if(!GUIDER.live){

if(BOX.$collapsed){

BOX.$collapsed.show();

}else{

BOX.$collapsed=$("<div>");

BOX.$collapsed.addClass(HINT.selector+"-collapsed").attr({id:HINT.selector+"-collapsed",role:"button"}).css({/*"clear":(HINT.ltr?"right":

"left"),*/

"padding-left":"2px",

"padding-right":"2px",

"padding-top":"2px",

"pointer-events":"all"}).text(Signature);

BOX.focus(BOX.$collapsed,true,true);}

BOX.firing(Version,true);

BOX.$collapsed.css({"background-color":"#"+BOX.bgc});}

if(TMPLXPAND.live&&!EDIT.$source){

EDIT.fetch();}

if(EDIT.live&&!API.errors&&!TMPLXPAND.live){

EDIT.fine();}

if(GUIDER.$pagename){

GUIDER.$pagename.hide();}

};

BOX.focus=function($apply,another,around){

var learn,light,s,$e;

$apply.addClass("noprint");

if(another){

if(HINT.$widget===false){

HINT.$widget=$(HINT.indicators);

switch(HINT.$widget.length){

case 0:

HINT.$widget=null;

break;

case 1:

break;

default:

HINT.$widget=HINT.$widget.eq(0);}

learn=true;}

if(HINT.$widget){

$apply.css({"display":"inline-block",

"line-height":"1.2em",

"margin-left":"3px",

"margin-right":"3px",

"padding":"1px"});

HINT.$widget.append($apply);

light=true;

}else{

$apply.css({"float":(HINT.ltr?"right":"left")});}}

if(!light){

if(!BOX.$top){

BOX.$top=$("<div>");

BOX.$top.addClass("noprint "+HINT.selector+"-top").attr({id:HINT.selector+"-top"})

.css({"clear":"both",

"width":"100%"});

$e=$("<div>");

$e.css({"clear":"both"});

HINT.$main.before(BOX.$top,$e);

learn=true;}

if(around){

s="#E0E0E0 #E0E0E0 #707070 #707070";

}else{

s="transparent";}

$apply.css({"border-color":s,

"border-style":"solid",

"border-width":"2px",

"margin-bottom":"3px"});

BOX.$top.prepend($apply);}

if(learn&&window.document.location.hash){

window.document.location=window.document.location.href;}

};

BOX.full=function(){

var idRev;

if(HINT.live){

if(BOX.$box){

if(EDIT.live){

API.errors=false;

}else if(HINT.$widget){

BOX.firing("?");}

if(API.errors){

BOX.$box.show();

}else{

BOX.$box.hide();}}

BOX.firing("...",false,"progress");

BOX.$collapsed.addClass(HINT.selector+"-progress");

if(!GUIDER.live){

if(!API.single){

API.single=mw.config.get("wgPageName");}

if(HINT.idRev&&HINT.idRev>0){

idRev=HINT.idRev;}}

if(EDIT.live){

EDIT.fire();

}else{

HINT.launch=true;

API.full(API.single,idRev);

BOX.firing("?",false,"progress");}

}else if(HINT.$widget){

BOX.firing("?",false,"progress");}

};

BOX.future=function(application){

var $e;

if(application){

PREGO.app=application;}

if(PREGO.app){

$e=$("<span>");

$e.css({"border-color":"#"+BOX.boc,

"border-style":"solid",

"border-width":"1px",

"padding":"0.4em"}).html(PREGO.app.translation(HINT.texts.other));

BOX.$other=$("<div>");

BOX.$other.addClass(HINT.selector+"-future").attr({id:HINT.selector+"-future"})

.css({"clear":"both",

"padding-bottom":"1em",

"padding-top":"1em"}).append($e);

BOX.$box.append(BOX.$other);}

};

CODMIRROR.fetch=function(){

var r;

if(CODMIRROR.first()){

r=CODMIRROR.cm.doc.getValue();}

return r;

};

CODMIRROR.first=function(){

var r,uo;

if(!CODMIRROR.cm&&typeof window.CodeMirror==="function"&&typeof window.CodeMirror.doc==="object"){

CODMIRROR.cm=window.CodeMirror;}

if(CODMIRROR.cm){

uo=mw.user.options.get("usecodemirror");

if(typeof uo==="number"&&uo>0){

r=CODMIRROR.cm;}}

return r;

};

EDIT.fading=function(){

var dom;

BOX.first();

if(EDIT.layer){

dom=mw.util.addPortletLink("p-tb","#",Signature,HINT.selector+"-portlet",Version);

HINT.$widget=$(dom);

if(dom.nodeName.toLowerCase()!=="li"){

HINT.$widget=HINT.$widget.parent();}

HINT.$widget.empty();}

fair();

PREGO.fire();

};

EDIT.fetch=function(){

var r,$div;

if(!EDIT.$source){

if(EDIT.layer){

EDIT.selector=EDIT.selTextbox;

}else if(!EDIT.selector){

switch(HINT.source){

case "wikitext":

case "proofread-page":

EDIT.selector="#wpTextbox1";

break;}}

if(EDIT.selector){

if(EDIT.layer){

$div=HINT.$main;

}else{

$div=HINT.$content;}

EDIT.$source=$div.find(EDIT.selector);

if(EDIT.$source.length){

if(EDIT.$source.find(":hidden").length){

EDIT.live=false;}

}else{

EDIT.live=false;}

}else{

EDIT.live=false;}}

if(EDIT.live&&EDIT.$source&&EDIT.$source.length){

if(EDIT.layer){

r=EDIT.$source.text();

}else{

HINT.$textarea=EDIT.$source;

r=EDIT.$source.val();}}

return r;

};

EDIT.fine=function(){

if(EDIT.$source){

EDIT.listen=true;

EDIT.$source.focusin(EDIT.focus);}

BOX.fine();

};

EDIT.fire=function(){

var source;

if(!TMPLXPAND.live){

source=CODMIRROR.fetch();

if(!source){

WIKED.fetch();}}

if(!source){

source=EDIT.fetch();}

if(source){

EDIT.listen=false;

API.fire(source);}

};

EDIT.focus=function(){

if(EDIT.listen){

BOX.firing(Version,true);

BOX.$collapsed.css({"background-color":"#"+BOX.bgc});

EDIT.listen=false;}

};

LINTER.fire=function(){

LINTER.live=true;

mw.hook("wikipage.content").add(LINTER.form);

};

LINTER.first=function(){

if(mw.config.get("wgTitle").indexOf("/")>0&&!LINTER.live){

fair(LINTER.fire);}

};

LINTER.form=function($area){

var $table=$area.find(".mw-datatable, .TablePager");

if($table.length){

if(typeof $table.tablesorter==="function"){

$table.tablesorter();}}

};

GUIDER.facet=function($activate){

if($activate){

$activate.css({"float":(HINT.ltr?"right":"left"),

"margin-top":"1em"});

GUIDER.$desc.before($activate);}

};

GUIDER.figure=function(){

var s=GUIDER.$rev.val().trim();

if(!GUIDER.reNaN){

GUIDER.reNaN=new RegExp("[^0-9]","g");}

s=s.replace(GUIDER.reNaN,"");

GUIDER.$rev.val(s);

};

GUIDER.filled=function(){

var s=GUIDER.$input.val().trim();

GUIDER.$rev.attr({disabled:(s?false:true)});

};

GUIDER.find=function(){

var s=GUIDER.$input.val().trim();

GUIDER.$input.val(s);

GUIDER.fired();

GUIDER.last=true;

if(s){

API.single=s;

API.full(s,GUIDER.$rev.val());}

GUIDER.$startPage.css({"cursor":"progress"});

};

GUIDER.fine=function(action){

var lapsus,$e;

if(GUIDER.live){

lapsus=(action!==true);

if((!API.single||lapsus)&&GUIDER.$pagename){

GUIDER.$pagename.hide();}

if(lapsus){

GUIDER.$okay.hide();

GUIDER.$textarea.css({"background-color":"transparent"}).off("focusin",GUIDER.fine);

GUIDER.$input.off("focusin",GUIDER.fine);

}else{

if(API.single){

$e=GUIDER.$pagename.children();

if(!$e.length){

$e=$("<a>");

$e.attr({target:"_blank"});

GUIDER.$pagename.append($e);}

$e.attr({href:mw.util.getUrl(API.single)}).text(API.single);

GUIDER.$pagename.show();

}else{

GUIDER.$okay.show();

GUIDER.$textarea.css({"background-color":

"#"+BOX.bgcOk}).focusin(GUIDER.fine);

GUIDER.$input.focusin(GUIDER.fine);}}

GUIDER.$startText.css({"cursor":"pointer"});

GUIDER.$startPage.css({"cursor":"pointer"});}

};

GUIDER.finish=function(application){

var $e=$("<div>");

PREGO.app=application;

GUIDER.$desc.html(PREGO.app.translation(HINT.texts.desc));

$e.css({"clear":"both",

"margin-top":"8em"}).html(PREGO.app.translation(HINT.texts.howTo));

HINT.$content.append($e);

$e=$("<a>");

$e.attr({href:"https://"+PREGO.app.translation(HINT.texts.domain)+"/wiki/User:PerfektesChaos/js/"+Signature,target:Signature}).text(GUIDER.$doc.text());

GUIDER.$doc.text("").append($e);

};

GUIDER.fire=function(){

var s=GUIDER.$textarea.val();

GUIDER.fired();

GUIDER.last=false;

if(!GUIDER.reTrim.test(s)){

API.single=false;

API.fire(s);

HINT.launched=true;}

GUIDER.$startText.css({"cursor":"progress"});

};

GUIDER.fired=function(){

GUIDER.flat();

if(!GUIDER.reTrim){

GUIDER.reTrim=new RegExp("^\\s*$");}

};

GUIDER.first=function(){

var i;

PREGO.fire();

for(i=0;i<GUIDER.using.length;i++){

HINT.using.push(GUIDER.usingi]);}

fair();

mw.loader.load(HINT.using);

HINT.live=true;

GUIDER.live=true;

mw.hook("wikipage.content").add(GUIDER.furnish);

};

GUIDER.flat=function(){

if(BOX.$box){

BOX.$box.hide();}

GUIDER.fine(false);

};

GUIDER.foreign=function(){

var req="general-form-reset","go"],i;

if(!API.Api){

API.Api=new mw.Api();}

UPDATE.fetch();

for(i=0;i<HINT.errors.length;i++){

req.push("linter-category-"+HINT.errorsi]);}

API.Api.loadMessagesIfMissing(req).done(GUIDER.form).fail(API.fault);

};

GUIDER.form=function(){

var submit=mw.message("go").text(),$div=$("<div>"),$x=$("<span>"),$b;

$x.css({"color":"#FF0000",

"font-weight":"bolder"}).text("X");

GUIDER.$startText=$("<span>");

GUIDER.$startText.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.fire).css({"color":"#FFFFFF"})

.text(submit);

GUIDER.$formText.append(GUIDER.$startText);

GUIDER.$okay=$("<span>");

GUIDER.$okay.css({"background-color":"#"+BOX.bgcOk,

"margin-left":"1em",

"margin-right":"1em",

"padding":"0.2em 0.5em"}).hide().text(GUIDER.suitable);

GUIDER.$formText.append(GUIDER.$okay);

$b=$("<input>");

$b.addClass("mw-ui-button").append($x).attr({type:"reset"})

.click(GUIDER.flat).css({"display":"block",

"float":(HINT.ltr?"right":"left")});

GUIDER.$formText.append($b);

$div.css({"clear":"both"});

GUIDER.$formPage.append($div);

$b=$("<input>");

$b.addClass("mw-ui-button").append($x.clone()).attr({type:"reset"})

.click(GUIDER.flat).click(GUIDER.filled).css({"float":(HINT.ltr?"right":"left")});

GUIDER.$formPage.append($b);

GUIDER.$startPage=$("<span>");

GUIDER.$startPage.addClass("mw-ui-button mw-ui-progressive").click(GUIDER.find).css({"color":"#FFFFFF"})

.text(submit);

GUIDER.$formPage.append(GUIDER.$startPage);

mw.hook(PREGO.signature+".ready").add(GUIDER.finish);

};

GUIDER.furnish=function($area){

var $v=$("head"),$e=$v.find("title");

$e.remove();

$e=$("<title>");

$e.text(Signature);

$v.prepend($e);

HINT.$content=$area;

HINT.$content.empty();

face();

$v=HINT.$body.find("#firstHeading,#section_0");

if(!$v.length){

$v=$("h1");}

$v.eq(0).text(Signature);

$v=$("<div>");

$v.css({"clear":"both"});

GUIDER.$doc=$("<span>");

GUIDER.$doc.text(Signature+"@PerfektesChaos");

$e=$("<span>");

$e.css({"font-size":"smaller"}).css("margin-"+(HINT.ltr?"left":"right"),"2em").text(Version);

$v.append(GUIDER.$doc,$e);

GUIDER.$desc=$("<div>");

GUIDER.$desc.css({"font-size":"111%"}).text(" ");

$v.append($v,GUIDER.$desc);

HINT.$content.append($v);

GUIDER.$formText=$("<form>");

GUIDER.$textarea=$("<textarea>");

GUIDER.$textarea.addClass("mw-ui-input").attr({name:"wikitext"})

.css({"background-color":"transparent",

"margin-top":"2em",

"max-width":"100%",

"width":"100%"});

GUIDER.$formText.append(GUIDER.$textarea);

GUIDER.$formPage=$("<form>");

GUIDER.$formPage.css({"clear":"both",

"margin-top":"3em"});

GUIDER.$input=$("<input>");

GUIDER.$input.addClass("mw-ui-input").attr({maxlength:255,name:"pagename",size:50,type:"text"}).css({"float":(HINT.ltr?"left":"right"),

"width":"auto",

"max-width":"auto"}).keyup(GUIDER.filled).mouseup(GUIDER.filled);

GUIDER.$formPage.append(GUIDER.$input);

GUIDER.$rev=$("<input>");

GUIDER.$rev.addClass("mw-ui-input").attr({disabled:true,inputmode:"numeric",maxlength:12,name:"revision",placeholder:"oldid",size:8,type:"text"}).css({"display":"inline-block",

"margin-left":"1.5em",

"margin-right":"1.5em",

"width":"auto",

"max-width":"auto"}).keyup(GUIDER.figure).mouseup(GUIDER.figure);

GUIDER.$formPage.append(GUIDER.$rev);

HINT.$content.append(GUIDER.$formText,GUIDER.$formPage);

GUIDER.$pagename=$("<div>");

GUIDER.$pagename.addClass([HINT.selector+"-pagename",HINT.selector+"-fine"]).attr({id:HINT.selector+"-pagename"})

.css({"background-color":"#"+BOX.bgcOk,

"float":(HINT.ltr?"left":"right"),

"margin-bottom":"1em",

"padding":"4px",

"pointer-events":"all"}).hide();

HINT.$content.before(GUIDER.$pagename);

HINT.$textarea=GUIDER.$textarea;

mw.loader.using(HINT.using,GUIDER.foreign);

mw.hook(PREGO.signature+".$button").fire(GUIDER.facet,Signature);

};

INFO.fiat=function(){

var s=mw.config.get("wgRelevantPageName"),$a=$("<a>");

$a.attr({href:mw.util.getUrl("Special:LintErrors",{pagename:s})}).text(INFO.$h.text());

INFO.$h.empty().append($a);

};

INFO.first=function(){

INFO.$h=$("#mw-pageinfo-linter");

if(INFO.$h.length&&!INFO.$h.find("a").length){

mw.loader.using(["mediawiki.util"],INFO.fiat);}

};

PREGO.features=function(applied){

var i,n,s,v,vals;

if(typeof applied==="object"&&applied){

n=PREGO.pars.length;

for(i=0;i<n;i++){

v=PREGO.parsi];

s=v0];

if(typeof applieds===v1]){

HINTs=applieds];}}

if(typeof applied.layer==="boolean"){

delete applied.layer;

mw.hook(PREGO.signature+".forward").fire(Signature,applied);}}

if(HINT.spaces){

HINT.spaces=HINT.spaces.trim();}

if(PREGO.live){

if(!HINT.drop){

HINT.silent="*";}

PREGO.form();

}else if(LINTER.live){

LINTER.live=false;

LINTER.first();

}else{

if(HINT.spaces){

if(HINT.spaces==="*"){

HINT.live=true;

}else if(HINT.spaces!=="-"){

vals=HINT.spaces.split(" ");

s=HINT.nsn+"";

for(i=0;i<vals.length;i++){

if(s===valsi]){

HINT.live=true;

break;}}}

}else if(HINT.nsn===0){

HINT.live=true;}

if(HINT.live&&HINT.nsn>=0){

switch(HINT.silent){

case false:

case "*":

break;

case "-":

HINT.quiet=false;

break;

default:

HINT.quiet=HINT.silent.split(" ");}

mw.loader.using(HINT.using,BOX.feed);}}

};

PREGO.feed=function(){

var sign="ext.gadget."+PREGO.signature,rls;

if(!mw.loader.getState(sign)){

rls={};

rlssign="loading";

mw.loader.state(rls);

REPOS.fire(PREGO.site,PREGO.store+PREGO.signature+PREGO.sub,false,{action:"raw",ctype:"text/javascript",bcache:1,maxage:PREGO.maxage});}

};

PREGO.fiat1=function(){

var s=PREGO.$spaces.val(),i,k,got,rooms;

if(s.indexOf("-")>=0){

s="-";

}else if(s.indexOf("*")>=0){

s="*";

}else{

got=s.trim().split(" ");

s="";

if(got.length>0){

if(typeof PREGO.rooms!=="object"){

PREGO.follow=function(a,b){

return(a<b?-1:1);

};

PREGO.reNum=new RegExp("^[0-9]+$");

PREGO.rooms=mw.config.get("wgFormattedNamespaces");}

rooms=[];

for(i=0;i<got.length;i++){

if(PREGO.reNum.test(goti])){

k=parseInt(goti],10);

if((k===0||PREGO.roomsk])&&$.inArray(k,rooms)<0){

rooms.push(k);}}}

if(rooms.length>0){

rooms.sort(PREGO.follow);

s=rooms.join(" ");}}}

PREGO.$spaces.val(s);

};

PREGO.fiat2=function(){

var s=PREGO.$silent.val(),got,i,quiet,single;

if(s.indexOf("*")>=0){

s="*";

}else{

got=s.trim().split(" ");

if(got.length>0){

quiet=[];

if(typeof PREGO.reID!=="object"){

PREGO.reID=new RegExp("^[a-z][a-z-]*[a-z]$");}

for(i=0;i<got.length;i++){

single=goti];

if(PREGO.reID.test(single)&&$.inArray(single,quiet)<0){

quiet.push(single);

}else if(single==="-"){

quiet=[];

break;}}

if(quiet.length>0){

s=quiet.join(" ");

}else{

s="-";}

}else{

s="*";}}

PREGO.$silent.val(s);

};

PREGO.field1=function($applying){

PREGO.$spaces=$applying;

PREGO.$spaces.change(PREGO.fiat1);

};

PREGO.field2=function($applying){

PREGO.$silent=$applying;

PREGO.$silent.change(PREGO.fiat2);

};

PREGO.fire=function(){

PREGO.feed();

mw.hook(PREGO.signature+".fetch").fire(Signature,PREGO.features);

};

PREGO.form=function(){

var support=".wikipedia.org/wiki/"+HINT.doc.substr(3),docs={"en":"//en"+support,

"de":"//de"+support},

dialog,opts;

opts=[{signature:"spaces",type:"text",show:HINT.texts"^^spaces"],val:(HINT.spaces?HINT.spaces:""),field:PREGO.field1},{signature:"launch",type:"checkbox",show:HINT.texts"^^launch"],val:HINT.launch},{signature:"last",type:"checkbox",show:HINT.texts"^^last"],val:HINT.last},{signature:"lazy",type:"checkbox",show:HINT.texts"^^lazy"],val:HINT.lazy},{signature:"silent",type:"text",show:HINT.texts"^^silent"],val:(HINT.silent?HINT.silent:"*"),field:PREGO.field2}];

dialog={script:Signature,support:docs,suffix:HINT.texts"^suffix"],opts:opts};

mw.hook(PREGO.signature+".form").fire(dialog);

};

REPOS.fire=function(at,access,append,alter){

var source,syntax;

if(typeof REPOS.requests!=="object"){

REPOS.requests={};}

if(typeof REPOS.requestsaccess!=="boolean"){

REPOS.requestsaccess=true;

if(append){

source=access+append;

}else{

source=access;}

if(at){

source=REPOS.foundation(at,source,alter);

if(typeof alter==="object"&&alter&&typeof alter.ctype==="string"){

syntax=alter.ctype;}

}else{

syntax=alter;}

mw.loader.load(source,syntax);}

};

REPOS.foundation=function(at,access,alter){

var s=access,r=encodeURI(s);

if(typeof alter==="object"&&alter){

r="/?title="+r;

if(access.substr(-3)===".js"){

alter.ctype="text/javascript";

}else if(access.substr(-4)===".css"){

alter.ctype="text/css";}

alter.action="raw";

for(s in alter){

r=r+"&"+s+"="+encodeURI(alters]);}

}else{

r="/wiki/"+r;}

if(typeof at==="string"&&at){

switch(at){

case "meta":

r="meta.wikimedia.org"+r;

break;

case "mw":

r="www.mediawiki.org"+r;

break;

case "w:en":

r="en.wikipedia.org"+r;

break;

default:

r=window.location.host+r;}

r="https://"+r;}

return r;

};

TMPLXPAND.first=function(){

TMPLXPAND.live=true;

HINT.live=true;

EDIT.live=true;

EDIT.selector="#output";

mw.loader.using(HINT.using,TMPLXPAND.further);

};

TMPLXPAND.further=function(){

mw.hook("wikipage.content").add(BOX.flip);

};

UPDATE.feed=function(apply){

if(typeof UPDATE.o!=="object"){

UPDATE.o={};}

if(typeof UPDATE.o.unknown!=="object"){

UPDATE.o.unknown=[];}

if($.inArray(apply,HINT.errors)<0){

HINT.errors.push(apply);

UPDATE.o.unknown.push(apply);}

UPDATE.flush();

};

UPDATE.fetch=function(){

var storage=mw.storage.get(Signature),i,k,parsed,s,unknown;

if(typeof storage==="string"){

try{

parsed=JSON.parse(storage);

if(typeof parsed==="object"&&parsed){

if(typeof parsed.translations==="object"&&parsed.translations){

UPDATE.o={translations:parsed.translations};}

if(typeof parsed.unknown==="object"&&parsed.unknown&&typeof parsed.unknown.length==="number"&&parsed.unknown.length){

unknown=[];

for(i=0;i<parsed.unknown.length;i++){

s=parsed.unknowni];

if(typeof s==="string"){

s=s.trim();

if(s){

k=$.inArray(s,HINT.errors);

if(k<0){

HINT.errors.push(s);

unknown.push(s);}}}}

if(unknown.length){

if(typeof UPDATE.o==="object"){

UPDATE.o.unknown=unknown;

}else{

UPDATE.o={unknown:unknown};}}

if(unknown.length!==parsed.unknown.length){

UPDATE.flush();}}}

}catch(e){

}

if(typeof UPDATE.o!=="object"){

UPDATE.flush();}}

};

UPDATE.flush=function(){

var storage;

if(typeof UPDATE.o==="object"){

storage=JSON.stringify(UPDATE.o);}

if(storage){

mw.storage.set(Signature,storage);

}else{

mw.storage.remove(Signature);}

};

WIKED.fetch=function(){

if(!WIKED.wikEd&&(typeof window.wikEd==="function"||(typeof window.wikEd==="object"&&window.wikEd))&&typeof window.wikEd.disabled==="boolean"&&typeof window.wikEd.highlightSyntax==="boolean"&&typeof window.wikEd.turnedOn==="boolean"&&typeof window.wikEd.useWikEd==="boolean"){

WIKED.wikEd=window.wikEd;}

if(WIKED.wikEd&&!WIKED.wikEd.disabled&&WIKED.wikEd.useWikEd&&WIKED.wikEd.turnedOn&&WIKED.wikEd.highlightSyntax){

WIKED.wikEd.UpdateTextarea();}

};

first();

}(window.mediaWiki,window.jQuery));

/// EOF</nowiki>lintHint/r.js

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook