User:PerfektesChaos/js/menuSwitcher/r.js

/// PerfektesChaos/js/menuSwitcher/r.js /// 2024-07-01 PerfektesChaos@de.wikipedia /// Fingerprint:#0#134E7B4D# /// @license:CC-by-sa/4.0 GPLv3 /// (function(mw,$){ /// Gadget for configurable Edittools "use strict"; var Version=1.96,Sign="menuSwitcher",Signature="ext.gadget."+Sign,Support="w:en:User:PerfektesChaos/js/"+Sign,CONFIG={maxItems:99},EDIT={},GUI={css:{"background-color":"#FFFFFF", "clear":"both", "color":"#000000", "font-style":"normal", "font-weight":"normal", "line-height":"1.2rem"}}, REMIND={}; function fire{ var rls; if(mw.loader.getState(Signature)!=="ready"){ rls={}; rls[Signature]="ready"; mw.loader.state(rls); CONFIG.first; mw.hook(Signature+".config").add(CONFIG.fired); mw.hook(Signature+".help").add(CONFIG.forward); $(document).ready(GUI.fire);}} CONFIG.facility=function(access,assign){ var cnf,config,def; switch(access){ case "help": def={"background-color":"#008000", "show":"?", "start":false, "suite":"$helpers", "support":"Help"}; break; case "hide": def={"background-color":"#FF0000", "show":"X", "start":"fade", "suite":"$hiders", "support":"Hide"}; break;} if(def){ switch(typeof assign){ case "boolean": cnf={mode:(assign?1:0)}; break; case "object": cnf=assign||{}; break; case "string": if(access==="help"){ cnf={mode:(assign?1:0),service:(assign?assign:false)}; }else{ cnf={};} break;} if(typeof CONFIG[access]!=="object"){ CONFIG[access]={service:false,start:def.start,suite:def.suite};} config=CONFIG[access]; if(typeof cnf["class"]==="string"&&cnf["class"]){ config["class"]=cnf["class"];} if(typeof cnf.css==="object"&&cnf.css){ config.css=cnf.css; }else{ config.css={"background-color":def["background-color"], "border-color":"#808080", "border-radius":"4px", "border-style":"solid", "border-width":"1px", "color":"#FFFFFF", "display":"inline-block", "font-size":"0.8rem", "font-weight":"bold", "margin":"0.5em", "padding":"2px"};} switch(access){ case "help": if(typeof cnf.service==="string"){ config.service=cnf.service; config.mode=1;} break; case "hide": if(typeof cnf.less==="boolean"){ config.less=cnf.less; }else if(typeof config.less!=="boolean"){ config.less=false;} if(config.less&&typeof REMIND.fetch("less")!=="boolean"){ if(CONFIG.live&&GUI.live){ GUI.fade; }else{ REMIND.feed("less",true);}} break;} if(typeof cnf.mode==="number"){ config.mode=cnf.mode; }else{ config.mode=1;} if(typeof cnf.show==="string"&&cnf.show){ config.show=cnf.show; }else{ config.show=def.show;} if(typeof cnf.support==="string"&&cnf.support){ config.support=cnf.support; }else{ config.support=def.support;} if(CONFIG.live&&GUI.live){ GUI.facility(access);}} }; CONFIG.feed=function(apply){ var last,suitable; if(typeof apply.create==="object"&&apply.create&&typeof apply.system==="string"){ suitable="feed_"+apply.system; if(typeof CONFIG[suitable]==="function"&&CONFIG.fit(apply)){ if(typeof apply.last==="boolean"){ last=apply.last;} CONFIG[suitable](apply.create,last);} }else if(typeof apply.top==="object"&&apply.top&&typeof apply.top.length==="number"){ CONFIG.feed_existing(apply.top);} }; CONFIG.feed_builtin=function(apply,after){ var e,i,s; if(typeof apply.length==="number"){ for(i=0;i<apply.length;i++){ e=apply[i]; if(typeof e==="object"&&e){ if(typeof e.selector==="string"&&e.selector){ s=e.selector; }else{ s=false;} CONFIG.feeder(s,"builtin",e,after);}} GUI.fresh(true);} }; CONFIG.feed_charinsert=function(apply){ if(CONFIG.learn&&typeof apply.selector==="string"){ CONFIG.exist=apply; GUI.flip;} }; CONFIG.feed_existing=function(apply){ var i,live,s; for(i=0;i<apply.length;i++){ s=apply[i]; if(typeof s==="string"&&s){ s=CONFIG.follower(s); if(typeof CONFIG.groups.panels[s]==="object"){ CONFIG.follow(s,CONFIG.groups.panels[s],false); live=true;}}} if(live){ GUI.fresh(true);} }; CONFIG.feed_stringArrayObject=function(apply,after){ var e,s; for(s in apply){ e=apply[s]; if(typeof e==="object"&&e&&typeof e.length==="number"){ CONFIG.feeder(s,"stringArray",e,after);}} GUI.fresh(true); }; CONFIG.feed_stringArrays=function(apply,after){ var e,i,s; if(typeof apply.length==="number"){ for(i=0;i<apply.length;i++){ e=apply[i]; if(typeof e==="object"&&e&&typeof e.length==="number"){ s=e[0]; e=e[1]; if(typeof s==="string"&&s&&typeof e==="object"&&e&&typeof e.length==="number"){ CONFIG.feeder(s,"stringArray",e,after);}}} GUI.fresh(true);} }; CONFIG.feeder=function(assign,arranged,apply,after){ var panel={contentmodel:true,system:arranged,$panel:false},s; if(arranged==="builtin"){ for(s in apply){ panel[s]=apply[s];} }else{ panel.def=apply;} if(CONFIG.fit(panel)){ panel.selector=assign; CONFIG.follow(assign,panel,after);} }; CONFIG.fired=function(apply){ var live; switch(typeof apply){ case "boolean": CONFIG.live=apply; GUI.fresh; break; case "object": if(apply){ if(typeof apply.live==="boolean"){ CONFIG.live=apply.live;} if(typeof apply.position==="object"&&apply.position&&typeof apply.position.length==="number"){ CONFIG.furnish(apply.position);} if(typeof apply.client==="object"&&apply.client){ EDIT.client=apply.client;} if(typeof apply.css==="object"&&apply.css){ GUI.furnish(apply.css);} if(typeof apply.hide==="object"&&apply.hide||typeof apply.hide==="boolean"){ CONFIG.facility("hide",apply.hide);} if(typeof apply.help==="object"&&apply.help||typeof apply.help==="string"||typeof apply.help==="boolean"){ CONFIG.facility("help",apply.help);} if(typeof apply.defs==="object"&&apply.defs){ CONFIG.feed(apply.defs);} if(typeof apply.top==="object"&&apply.top&&typeof apply.top.length==="number"){ CONFIG.feed_existing(apply.top);} if(typeof apply.select==="string"&&apply.select){ live=true; REMIND.feed("select",apply.select);} if(live||typeof apply.live==="boolean"){ GUI.fresh(live);}} break;} }; CONFIG.first=function{ var env=mw.config.get(["wgAction","wgNamespaceNumber"]); CONFIG.css=false; CONFIG.defs=false; CONFIG.exist=false; CONFIG.groups=false; CONFIG.pos=false; CONFIG.items=0; CONFIG.nsn=env.wgNamespaceNumber; CONFIG.last=false; CONFIG.learn=(env.wgAction!=="view"||CONFIG.nsn<0); CONFIG.live=true; GUI.live=false; GUI.$wrappers=false; }; CONFIG.fit=function(ask){ var i,r,source; switch(typeof ask.contentmodel){ case "boolean": case "string": r=ask.contentmodel; break; case "object": if(ask.contentmodel&&typeof ask.contentmode.length==="number"){ r=ask.contentmodel;} default: r=false;} if(typeof r!=="boolean"){ if(typeof CONFIG.nsn!=="number"){ CONFIG.nsn=mw.config.get("wgNamespaceNumber");} switch(CONFIG.nsn){ case-1: source="wikitext"; break; default: if(typeof CONFIG.source!=="string"){ CONFIG.source=mw.config.get("wgPageContentModel");} source=CONFIG.source;} if(typeof r==="object"){ for(i=r.length-1;i>=0;i--){ if(r[i]===source){ r=true; break; }else if(!i){ r=false;}} }else{ r=(r===source);}} return r; }; CONFIG.follow=function(assign,apply,after){ var s=CONFIG.follower(assign),panels=CONFIG.groups.panels,old,other; apply.sel=s; if(typeof panels[s]==="object"){ old=panels[s]; if(typeof after==="boolean"){ if(old.before){ other=panels[old.before]; other.behind=old.behind; if(!old.behind){ CONFIG.groups.stop=other.sel;}} if(old.behind){ other=panels[old.behind]; other.before=old.before; if(!old.before){ CONFIG.groups.start=other.sel;}} if(after){ if(CONFIG.groups.stop){ other=panels[CONFIG.groups.stop]; other.behind=s;} apply.before=CONFIG.groups.stop; apply.behind=null; CONFIG.groups.stop=s; }else{ if(CONFIG.groups.start){ other=panels[CONFIG.groups.start]; other.before=s;} apply.behind=CONFIG.groups.start; apply.before=null; CONFIG.groups.start=s;} }else{ apply.before=old.before; apply.behind=old.behind;} }else if(CONFIG.items<CONFIG.maxItems){ CONFIG.items++; apply.item=CONFIG.items; if(CONFIG.groups.start){ if(after){ old=panels[CONFIG.groups.stop]; old.behind=s; CONFIG.groups.stop=s; apply.before=old.sel; apply.behind=null; }else{ old=panels[CONFIG.groups.start]; old.before=s; CONFIG.groups.start=s; apply.before=null; apply.behind=old.sel;} }else{ CONFIG.groups.start=s; CONFIG.groups.stop=s; apply.before=null; apply.behind=null;}} panels[s]=apply; return apply.item; }; CONFIG.follower=function(assign){ var r; if(!CONFIG.groups){ CONFIG.groups={panels:{},start:null,stop:null};} if(typeof assign==="string"){ r=assign.replace(/(\S)\s*$/,"$1") .replace(/^\s*(\S)/,"$1");} if(!r){ r="UNKNOWN-"+(CONFIG.items+1);} return r; }; CONFIG.forward=function(auxilary){ CONFIG.facility("help",auxilary); }; CONFIG.furnish=function(apply){ var e,i,v; for(i=apply.length-1;i>=0;i--){ e=apply[i]; if(e){ v=false; switch(typeof e){ case "object": if(typeof e.selector==="string"&&e.selector){ v={$parents:false,sel:e.selector}; }else if(typeof e.jQuery==="object"&&e.jQuery&&typeof e.jQuery.jQuery==="string"){ v={$parents:e.jQuery};} if(v){ if(typeof e.lead==="boolean"){ v.lead=e.lead; }else{ v.lead=false;}} break; case "string": v={lead:false,sel:e}; break;} if(v){ CONFIG.pos=CONFIG.pos||[]; if(typeof e.last==="boolean"&&e.last){ CONFIG.pos.push(v); }else{ CONFIG.pos.pop(v);}}}} if(typeof CONFIG.pos==="object"){ GUI.furnish;} }; EDIT.fasten=function(around,arglist){ var r=around,got/*,k,luxury*/; if(r){ if(typeof this.reWSbeg!=="object"){ this.reWSbeg=new RegExp("^\\s+"); this.reWSend=new RegExp("\\S(\\s+)$");} got=this.reWSbeg.exec(r); if(got){ if(typeof arglist.pre==="string"){ arglist.pre=got[0]+arglist.pre; }else{ arglist.pre=got[0];} r=r.substr(got[0].length);} got=this.reWSend.exec(r); if(got){ if(typeof arglist.post==="string"){ arglist.post=arglist.post+got[1]; }else{ arglist.post=got[1];} r=r.substr(0,r.length-got[1].length);}} return r; }; EDIT.fiat=function($area,action,arglist){ if(typeof EDIT.client==="object"&&typeof EDIT.client.lfDoubled==="boolean"&&EDIT.client.lfDoubled){ this.fossile($area,action,arglist); }else{ $area.textSelection(action,arglist);} }; EDIT.fossile=function($area,action,arglist){ var textarea=$area.get(0),iBeg=textarea.selectionStart||0,iEnd=textarea.selectionEnd||iBeg,story=$area.val,r,sel,sub,suffix; if(typeof this.reCRLF!=="object"){ this.reCRLF=new RegExp("\r?\n","g");} if(action==="encapsulateSelection"){ story=story.replace(this.reCRLF,"\r\n"); sub=story.slice(0,iEnd).replace(this.reCRLF,"\n"); iBeg=story.slice(0,iBeg).replace(this.reCRLF,"\n").length; suffix=story.slice(iEnd); story=sub.slice(0,iBeg); if(!arglist.replace){ sel=sub.slice(iBeg); sel=this.fasten(sel,arglist);} if(typeof arglist.pre==="string"){ story=story+arglist.pre;} if(arglist.replace){ if(typeof arglist.peri==="string"){ story=story+arglist.peri;} }else{ story=story+sel;} if(typeof arglist.post==="string"){ story=story+arglist.post;} iEnd=story.replace(this.reCRLF,"\r\n").length; story=story+suffix; $area.val(story); textarea.selectionEnd=iEnd; textarea.selectionStart=iBeg; $area.focus; textarea.selectionEnd=iEnd; textarea.selectionStart=iEnd;} return r; }; GUI.facet=function($area,assign){ $area.addClass(Sign+"-panel "+Sign+"-panel-"+assign); }; GUI.facility=function(access){ var config=CONFIG[access],i,live,$btn,$collection; if(typeof config.$btn!=="object"&&config.mode>0){ config.$btn=$(""); config.$btn.addClass(Sign+"-"+access+"-button").attr({"href":"#"+Sign+"-0", "title":config.support}).css(config.css).css({"text-decoration":"none"}) .text(config.show); if(config["class"]==="string"){ config.$btn.addClass(config["class"]);} if(config.support==="string"){ config.$btn.attr({"title":config.support});} if(config.service){ config.$btn.attr({"href":config.service, "target":"_blank"});}} if(GUI.$wrappers&&GUI.$wrappers.length){ $collection=GUI[config.suite]; $collection.empty; live=(config.mode>0); if(live&&access==="hide"){ live=(REMIND.feed("less")!==true);} if(live){ $btn=config.$btn.clone; if(config.start){ $btn.click(GUI[config.start]);} $collection.eq(0).append($btn); for(i=1;i<$collection.length;i++){ $btn=config.$btn.clone; if(config.start){ $btn.click(GUI[config.start]);} $collection.eq(i).append($btn);}}} }; GUI.factory_builtin=function(assigned){ var $r=$(" "),def,e,i,label,link,low,s,space,src,$e,$img; if(typeof assigned["class"]==="string"){ $r.addClass(assigned["class"]);} if(typeof assigned.style==="string"){ $r.attr({"style":assigned.style});} if(typeof assigned.ltr==="boolean"){ $r.attr({"dir":(assigned.ltr?"ltr":"rtl")});} if(typeof assigned.lang==="string"){ $r.attr({"lang":assigned.lang});} if(typeof assigned.support==="string"){ $r.attr({"title":assigned.support});} if(typeof assigned.def==="object"&&assigned.def&&typeof assigned.def.length==="number"){ def=assigned.def; for(i=0;i<def.length;i++){ e=def[i]; s=false; if(typeof e==="object"&&e){ if(typeof e.fun==="function"){ e.id=i; link=true; }else{ if(typeof e.sample==="string"&&e.sample){ s=e.sample;} if(typeof e.start==="string"&&e.start){ s=e.start; if(typeof e.suffix==="string"&&e.suffix){ s=s+e.suffix;} }else if(typeof e.suffix==="string"&&e.suffix){ s=e.suffix;} link=(s?true:false);} if(typeof e.show==="string"&&e.show){ s=e.show; low=false; }else{ low=true;} if(typeof e.src==="string"&&e.src){ s=s||true;} switch(typeof e.contentmodel){ case "boolean": case "object": case "string": if(!CONFIG.fit(e)){ s=false;} break;}} if(s){ if(link){ if(!CONFIG.defs){ CONFIG.defs=[];} $e=$(""); $e.attr({"data-id":CONFIG.defs.length, "href":"#"}).click(GUI.fiat); CONFIG.defs.push(e); }else{ $e=$(" ");} if(typeof e.src==="string"){ if(e.src.charCodeAt(0)===47&&e.src.charCodeAt(0)!==47){ src=e.src; }else{ if(typeof CONFIG.reURL!=="object"){ CONFIG.reURL=new RegExp("^(?:https?:)?//[^/]*\\.(?:mediawiki|wik(?:i(?:books|data|media|news|pedia|quote|source|species|tech|versity|voyage)|tionary))\\.org/");} if(CONFIG.reURL.test(e.src)){ src=e.src; }else{ src=false;}} if(src){ $img=$(" "); $img.attr({"src":src}); $e.prepend($img); label=true;}} if(typeof s==="string"){ if(low){ $e.text(s); label=true; }else{ $e.html(s); label=$e.text;}} if(label){ switch(typeof e.style){ case "string": $e.attr({"style":e.style}); break; case "object": $e.css(e.style); break;} if(typeof e["class"]==="string"){ $e.addClass(e["class"]);} if(typeof e.support==="string"){ $e.attr({"title":e.support});} if(link){ $e.css({"text-decoration":"none", "white-space":"nowrap"});} if($r){ switch(typeof e.space){ case "string": space=e.space; break; case "number": String.fromCharCode(e.space); break; default: space=" ";} }else{ space=false;} $r=($r||$(" ")); if(GUI.ltr){ if(space&&link){ $r.append(space);} $r.append($e); }else{ if(space&&link){ $r.prepend(space);} $r.prepend($e);}}}}} return $r; }; GUI.factory_stringArray=function(assigned){ var elem,elt,i,j,lead,panel,unit,$r; if(typeof assigned.def==="object"&&assigned.def&&typeof assigned.def.length==="number"){ panel={def:[]}; for(i=0;i<assigned.def.length;i++){ if(i&&!lead){ lead=false; panel.def.push({show:"&#160;&#160;&#8226;&#160; ",style:{"font-weight":"bold"}});} unit=assigned.def[i]; if(typeof unit==="object"&&unit){ if(typeof unit.length==="number"){ for(j=0;j<unit.length;j++){ elem=unit[j]; switch(typeof elem){ case "string": panel.def.push({start:elem}); break; case "object": if(elem&&typeof elem.length==="number"){ elt={}; if(typeof elem[0]==="string"&&elem[0]){ elt.start=elem[0];} if(typeof elem[1]==="string"&&elem[1]){ elt.suffix=elem[1];} if(typeof elem[2]==="string"&&elem[2]){ elt.sample=elem[2];} if(typeof elem[3]==="string"&&elem[3]){ elt.support=elem[3];} if(typeof elem[4]==="string"&&elem[4]){ elt.show=elem[4];} panel.def.push(elt);} break;}} }else if(!i){ lead=true; if(typeof unit["class"]==="string"&&unit["class"]){ panel["class"]=unit["class"];} if(typeof unit["font-size"]==="string"&&unit["font-size"]){ panel.style="font-size:"+unit["font-size"];} if(typeof unit.lang==="string"&&unit.lang){ panel.lang=unit.lang;} if(typeof unit.ltr==="boolean"){ panel.ltr=unit.ltr;}}}} if(panel.def.length){ $r=GUI.factory_builtin(panel);}} return $r; }; GUI.faculty=function{ var e,i,s,$o; if(GUI.$poly){ GUI.$poly.empty; }else if(CONFIG.groups){ GUI.$poly=$(" "); GUI.$poly.css({"display":"inline", "float":(GUI.ltr?"left": "right"), "margin-bottom":"0.5em", "vertical-align":"middle"}); if(GUI.ltr){ GUI.$poly.css({"float":"left", "margin-right":"0.5em"}); }else{ GUI.$poly.css({"float":"right", "margin-left":"0.5em"});} GUI.$wrappers.eq(0).prepend(GUI.$poly); for(i=1;i<GUI.$wrappers.length;i++){ GUI.$wrappers.eq(i).prepend(GUI.$poly.clone);} GUI.$poly=GUI.$wrappers.children("select"); if(typeof CONFIG.help==="object"){ GUI.facility("help");} if(typeof CONFIG.hide==="object"){ GUI.facility("hide");} GUI.$poly.change(GUI.fold).click(GUI.fold);} if(CONFIG.groups){ s=CONFIG.groups.start; do{ e=CONFIG.groups.panels[s]; if(e&&(CONFIG.learn||typeof e.low!=="boolean"||e.low)){ $o=$(" "); $o.attr("data-item",e.item).text(e.sel); GUI.$poly.eq(0).append($o); for(i=1;i1){ $parent.hide; }else{ $parent.find("div").hide;} }else if(GUI.$wrappers&&GUI.$wrappers.length){ GUI.$wrappers.find("."+Sign+"-panel ").hide; if(GUI.$hiders){ GUI.$hiders.empty;}} REMIND.feed("less",true); }; GUI.fetch=function{ if(GUI.$texts){ GUI.$texts.off("blur",GUI.fetch); $(window.document).off("focus","textarea,input:text",GUI.focus);} GUI.$texts=$("textarea,input:text").not("*:disabled").not('*[type="hidden"]') .not("#wpAntispam"); if(GUI.$texts.length){ $(window.document).on("focus","textarea,input:text",GUI.focus); GUI.$texts.on("blur",GUI.fetch);} }; GUI.fiat=function(event){ var $item=$(event.target),item=parseInt($item.data("id"),10),def=CONFIG.defs[item],params,sel,suffix,veFrag,veSurface,veSModel,$elt; if(def){ if(typeof window.ve==="object"&&window.ve&&typeof window.ve.init==="object"&&window.ve.init&&typeof window.ve.init.target==="object"&&window.ve.init.target&&window.ve.init.target.active){ veSurface=window.ve.init.target.getSurface; veSModel=veSurface.getModel; veFrag=veSModel.getFragment; if(!veFrag.isNull){ if(typeof def.low==="boolean"&&def.low){ }else if(typeof def.fun==="function"){ sel=def.fun(def,event,false,veSModel); if(typeof sel!=="string"){ sel=false;} }else{ if(typeof def.start==="string"){ sel=def.start;} if(typeof def.suffix==="string"){ suffix=def.suffix;}} if(event.ctrlKey){ veFrag.remove;} if(typeof def.leave==="boolean"&&!def.leave&&typeof def.sample==="string"){ sel=def.sample; veFrag.remove; suffix=false;} if(sel){ veFrag.insertContent(sel);} if(suffix){ veFrag.collapseToEnd.insertContent(suffix);}} }else{ if(GUI.received){ $elt=$(GUI.received); }else{ $elt=GUI.$texts.eq(0);} if($elt.length){ if(typeof def.fun==="function"){ params=def.fun(def,event,$elt); switch(typeof params){ case "object": break; case "string": params={peri:params,replace:true}; break; default: params=false;} }else if(typeof def.leave==="boolean"&&!def.leave){ if(typeof def.sample==="string"){ params={peri:def.sample,replace:true};} }else{ params={replace:(event.ctrlKey?true:false)}; if(typeof def.start==="string"){ params.pre=def.start;} if(typeof def.suffix==="string"){ params.post=def.suffix;} if(typeof def.sample==="string"){ sel=$elt.textSelection("getSelection"); }else{ sel=!params.replace; def.sample="";} if(sel){ if(typeof sel!=="string"){ sel=$elt.textSelection("getSelection");} params.peri=EDIT.fasten(sel,params); params.replace=true; }else{ params.peri=def.sample;} if(typeof def.lonely==="boolean"){ params.ownline=true;}} if(params){ EDIT.fiat($elt,"encapsulateSelection",params);}}}} if(typeof event.preventDefault==="function"){ event.preventDefault;} if(typeof event.stopPropagation==="function"){ event.stopPropagation;} }; GUI.finished=function(about){ mw.hook(Signature+".ready").fire({doc:""+Support+"",state:about,type:Signature,vsn:Version,fire:CONFIG.fired}); }; GUI.fire=function{ if(CONFIG.live){ if(typeof GUI.live==="boolean"&&!GUI.live){ GUI.$texts=false; GUI.fetch; if(GUI.$texts.length){ GUI.live=true; GUI.ltr=($("html").attr("dir")!=="rtl"); GUI.received=false; GUI.select=false; GUI.$poly=false; GUI.$wrappers=false; GUI.flip; mw.loader.using(["user","user.options","mediawiki.user","jquery.textSelection"],GUI.fired);}} }else if(typeof GUI.live!=="boolean"||!GUI.live){ GUI.fired;} }; GUI.fired=function{ var say; if(typeof GUI.live!=="boolean"){ GUI.live=false;} if(CONFIG.live){ say="built"; }else{ say="biocked";} GUI.fresh(true); GUI.finished(say); }; GUI.flip=function{ var i,k,s,$e,$groups,$previous; if(GUI.live&&CONFIG.exist&&CONFIG.pos&&CONFIG.live){ $previous=$(CONFIG.exist.selector); if($previous.length===1){ $previous.hide; GUI.furnish; if(GUI.$wrappers){ if(typeof CONFIG.exist.segments==="string"&&CONFIG.exist.segments){ s=$previous.attr("title"); if(s){ GUI.$wrappers.attr("title",s);} $groups=$previous.find(CONFIG.exist.segments); for(i=0;i<$groups.length;i++){ $e=$groups.eq(i); $e.hide; k=CONFIG.follow($e.attr("title")||$e.attr("id"),{$panels:[$e]},true); GUI.facet($e,k); GUI.$wrappers.append($e);} $previous.empty;} }else{ $previous.show;}} GUI.fresh(true); CONFIG.exist=false;} }; GUI.focus=function(event){ GUI.received=event.target; }; GUI.fold=function(event){ var $poly=$(event.target),sel=$poly.prop("value"),$item=$poly.find(":selected"),index=$item.data("item"),sign="."+Sign+"-panel",signX=sign+"-"+index,$parent=$poly.parent,$panels=$parent.children(sign),$panel=$parent.find(signX),panel,shift; if(CONFIG.learn&&GUI.select&&typeof CONFIG.groups.panels[GUI.select]==="object"){ GUI.select=sel; REMIND.feed("select",sel);} $panels.not(signX).hide; if($panel.length){ $panel.show; $parent.find("."+Sign+"-hide").show; }else{ panel=CONFIG.groups.panels[sel]; if(typeof panel==="object"){ if(panel.$panel){ $panel=panel.$panel.clone.show; }else{ shift="factory_"+panel.system; if(typeof GUI[shift]==="function"){ $panel=GUI[shift](panel); if($panel){ GUI.facet($panel,index); panel.$panel=$panel;}}} if($panel){ $parent.append($panel);}}} if(typeof REMIND.fetch("less")==="boolean"){ REMIND.feed("less",false);} }; GUI.fresh=function(apply){ GUI.fire; GUI.furnish; if(GUI.$wrappers){ if(CONFIG.live){ if(apply){ GUI.faculty;} GUI.$wrappers.show; }else{ GUI.$wrappers.hide;}} }; GUI.furnish=function(appearance){ var e,i,j,k,m,seq,$wrap; if(GUI.live&&CONFIG.live&&CONFIG.pos&&!GUI.$wrappers){ for(i=0;i<CONFIG.pos.length;i++){ e=CONFIG.pos[i]; if(!e.$parents){ e.$parents=$(e.sel);} m=e.$parents.length; if(m){ GUI.$wrappers=$(" "); GUI.$wrappers.addClass(Sign).css(GUI.css); GUI.$helpers=$(" "); GUI.$helpers.addClass(Sign+"-help").attr({"id":Sign+"-0"}) .css({"float":(GUI.ltr?"right": "left")}); GUI.$hiders=$(" "); GUI.$hiders.addClass(Sign+"-hide").attr({"id":Sign+"-1"}) .css({"float":(GUI.ltr?"right": "left")}); seq=(e.lead?"before":"after"); e.$parents.eq(0)[seq](GUI.$wrappers); for(k=1;k1){ GUI.$wrappers=$("."+Sign); GUI.$helpers=$("."+Sign+"-help"); GUI.$hiders=$("."+Sign+"-hide");} mw.hook(Signature+".created").fire(GUI.$wrappers); break;}}} if(appearance){ CONFIG.css=appearance;} if(CONFIG.css&&GUI.$wrappers){ GUI.$wrappers.css(CONFIG.css);} }; REMIND.feed=function(sign,val){ var webSs; if(typeof REMIND.o!=="object"){ REMIND.fetch("");} REMIND.o[sign]=val; if(typeof window.sessionStorage==="object"){ webSs=window.sessionStorage; if(webSs&&typeof webSs.setItem==="function"){ try{ if(typeof REMIND.w!=="object"){ REMIND.w={};} REMIND.w[REMIND.fragment]=REMIND.o; webSs.setItem(REMIND.full,JSON.stringify(REMIND.w)); }catch(e){ }}} }; REMIND.fetch=function(sign){ var got,r,webSs; if(typeof REMIND.o!=="object"&&typeof window.sessionStorage==="object"){ webSs=window.sessionStorage; if(webSs&&typeof webSs.getItem==="function"){ try{ got=JSON.parse(webSs.getItem(REMIND.full)); if(typeof got==="object"&&got){ REMIND.w=got; if(typeof got[REMIND.fragment]==="object"){ REMIND.o=got[REMIND.sub];}} }catch(e){ }}} if(typeof REMIND.o!=="object"){ REMIND.o={};} if(typeof REMIND.o[sign]!=="undefined"){ r=REMIND.o[sign];} return r; }; REMIND.fragment=function{ if(typeof REMIND.sub!=="string"){ REMIND.sub=mw.config.get("wgRevisionId"); if(!REMIND.sub||REMIND.sub<=0){ REMIND.sub=mw.config.get("wgTitle");}} return REMIND.sub; }; REMIND.full=function{ if(typeof REMIND.sign!=="string"){ REMIND.sign=Sign+"."+mw.config.get("wgDBname");} return REMIND.sign; }; fire; }(mediaWiki,jQuery)); /// EOF menuSwitcher/r.js