User:PerfektesChaos/js/paneMarker/r.js

/// mw:User:PerfektesChaos/js/paneMarker/r.js /// 2013-01-22 PerfektesChaos@de.wikipedia /// Fingerprint:#0#98302B1C# /// @license GPL [//www.mediawiki.org/w/COPYING](+GFDL,LGPL,CC-BY-SA) /// (function(mw,$){ "use strict"; var PaneMk,vsn=1.8; if(typeof mw.libs.paneMarker!=="object"||!mw.libs.paneMarker){ mw.libs.paneMarker={opt:{}};} PaneMk=mw.libs.paneMarker; PaneMk.doc="mw:User:PerfektesChaos/js/paneMarker"; PaneMk.type="paneMarker"; PaneMk.vsn=vsn; PaneMk.heads="|commonswiki|dewiki|"; PaneMk.facilitate=function{ var s=mw.config.get("wgRelevantPageName"); if(!s){ s=mw.config.get("wgPageName");} document.title=s.replace(/_/g," ")+ " * "+mw.config.get("wgSiteName"); }; PaneMk.favicon=function(apply){ var $apple,$head=$(document).find("head"),$favicon,apple=false,i,light=apply,n=0,offer=false,png=false,s; if($head.length){ if(apply){ png=["wmf","f7"]; if(this.site==="commonswiki"){ apple=["commons","70"]; png=["commons","e7"]; }else if(this.site==="metawiki"){ png=["meta","96"]; }else if(this.site==="testwiki"){ apple=["wikipedia","f1"]; png=["testwiki","b6"]; }else if(this.site==="mediawikiwiki"){ apple=["mediawiki","b6"]; png=["mediawiki","fa"]; }else if(this.site.slice(-4)==="wiki"){ apple=["wikipedia","f1"]; png=["wikipedia","fb"]; }else if(this.site.slice(-9)==="wikibooks"){ png=["wikibooks","7e"]; }else if(this.site.slice(-8)==="wikinews"){ apple=["wikinews","a9"]; png=["wikinews","cc"]; }else if(this.site.slice(-9)==="wikiquote"){ png=["wikiquote","cb"]; }else if(this.site.slice(-10)==="wikisource"){ png=["wikisource","f4"]; }else if(this.site.slice(-11)==="wikiversity"){ png=["wikiversity","95"]; }else if(this.site.slice(-10)==="wiktionary"){ apple=["wiktionary","f8"]; png=["wikipedia","fb"]; }else{ apple=["wmf","a9"];} }else{ light=this.config.favicon;} if(apply){ $apple=$head.find("link").filter(function{ return(this.rel==="apple-touch-icon"); }); if($apple.length===1){ s=false; switch(typeof this.config.appleIcon){ case "string": s=this.config.appleIcon; break; case "boolean": if(!this.config.appleIcon){ break;} default: if(apple){ s=this.file("Apple-touch-icon-red-",apple[0],apple[1]);}} if(s){ $apple.detach; $apple.attr("href",s); $head.append($apple);}}} if(light){ $favicon=$head.find("link").filter(function{ return(this.rel==="shortcut icon"); }); n=$favicon.length;} if(n){ if(apply){ s=false; switch(typeof this.config.faviconPNG){ case "string": s=this.config.faviconPNG; break; case "boolean": if(!this.config.faviconPNG){ break;} default: s=this.file("Favicon-red-",png[0],png[1]);} offer=s,"image/png"; s=this.config.faviconICO; if(s){ if(typeof s==="string"){ offer.push([s,"image/x-icon"]);}} }else{ s=this.config.favicon; if(s){ if(typeof s==="string"){ offer=s,null; s=s.slice(-4).toLowerCase; switch(s){ case ".ico": offer[0][1]="image/x-icon"; break; case ".gif": case ".png": offer[0][1]="image/"+s.substr(1); break;}}}} if(offer){ for(i=0;i1){ $favicon=$favicon.eq(0);} for(i=0;i<offer.length;i++){ $favicon.attr("href",offer[i][0]); $favicon.attr("type",offer[i][1]); $head.append($favicon); if(i+1<offer.length){ $favicon=$favicon.clone;}}}}} }; PaneMk.file=function(album,assign,access){ var r="//upload.wikimedia.org/wikipedia/commons/"+access.substr(0,1)+"/"+access+"/"+album+assign+".png"; return r; }; PaneMk.flag=function(action){ var c=true,learn=true; if(this.config.leave){ this.facilitate; }else if(this.heads.indexOf(this.site)<0){ c=this.config["char"+action]; learn=false;} if(typeof this.config.chars==="boolean"){ if(c===true){ c=this.config.chars;}} if(c){ if(learn){ c=this.config["char"+action]; if(c===undefined){ c=true; }else{ learn=false;}} if(learn){ switch(action){ case "Diff": c=(this.config.lowChar?"±":916); break; case "History": c=(this.config.lowChar?"^":8595); break; case "Links": c=(this.config.lowChar?">":8594); break; case "Vitally": if(c&&!this.lazy){ c=false; break;} c="*"; break; default: c=false;}} if(c){ if(!this.config.leave){ if(action==="Links"){ this.facilitate;}} if(typeof c==="number"){ if(c>0){ c=String.fromCharCode(c);}} if(typeof c==="string"){ if(this.config.rightleft){ document.title=document.title+" "+c; }else{ c=c+" "; if(document.title.indexOf(c)!==0){ document.title=c+document.title;}}}}} }; PaneMk.flip=function{ var e,i,o,s,t; if(this.nsN>0){ o=mw.config.get("wgNamespaceIds"); for(e in o){ if(e.length<4){ if(o[e]===this.nsN){ o=mw.config.get("wgFormattedNamespaces"); s=o[this.nsN]; o=mw.config.get("wgPageName"); o=o.replace(/_/g," "); if(o.indexOf(s+":")===0){ t=document.title; i=t.indexOf(o); if(i>=0){ document.title=(i?t.substr(0,i):"")+e.toUpperCase+t.substr(i+s.length);}} break;}}}} }; PaneMk.fresh=function{ var browser,lenient=true; this.lazy=false; if(typeof this.opt==="object"&&this.opt){ this.config=this.opt; if(typeof this.opt.lazy==="boolean"){ this.lazy=this.opt.lazy;} }else{ this.config={};} this.site=mw.config.get("wgDBname"); this.nsN=mw.config.get("wgNamespaceNumber"); if(!this.lazy){ if(jQuery.client){ browser=jQuery.client.profile; if(browser.name==="msie"){ this.lazy=(browser.versionNumber<10);}}} switch(mw.config.get("wgAction")){ case "edit": case "submit": if(!this.lazy){ this.favicon(true); lenient=false;} this.flag("Vitally"); break; case "history": this.flag("History"); break; case "view": if(mw.util.getParamValue("diff")!==null){ this.flag("Diff"); }else if(this.nsN===-1){ switch(mw.config.get("wgCanonicalSpecialPageName")){ case "Upload": if(!this.lazy){ this.favicon(true); lenient=false;} this.flag("Vitally"); break; case "Whatlinkshere": this.flag("Links"); break;} }else{ this.flag("*");} break;} this.flip; if(lenient){ if(typeof this.config.favicon==="string"){ this.favicon(false);}} }; PaneMk.furnish=function{ PaneMk.fresh; }; if(window&&!PaneMk.loaded){ PaneMk.loaded=true; mw.loader.using(["user","mediawiki.util","jquery.client"],PaneMk.furnish);} mw.loader.state("ext.gadget.paneMarker","ready"); }(mediaWiki,jQuery)); /// EOF paneMarker/r.js