MediaWiki:Skin/RTRC.js

aus Kamelopedia, der wüsten Enzyklopädie
Wechseln zu: Navigation, Suche

Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
$=jQuery;var krRTRC_appVersion="v0.8.2-beta";var krRTRC_appDate="November 7, 2010";var krRTRC_APIURL=wgServer+wgScriptPath+"/api.php";var krRTRC_LoaderSRC="http://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif";var krRTRC_BliconSRC="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Nuvola_apps_important.svg/18px-Nuvola_apps_important.svg.png";var krRTRC_HelpURL="http://meta.wikimedia.org/wiki/User:Krinkle/Tools/Real-Time_Recent_Changes?uselang="+wgUserLanguage;var krRTRC_Debug=0;if(typeof krRTRC_Disabled=='undefined'||krRTRC_Disabled!==true){var krRTRC_Disabled=false;}else{var krRTRC_Disabled=true;}
var krRTRC_MarkPatrolCacheMax=20;var krRTRC_Patrolright=false;var krRTRC_Patroltoken=false;var krRTRC_Delhistright=false;var krRTRC_RCDataURL=false;var krRTRC_optLimit="25";var krRTRC_optFiltAnon=false;var krRTRC_optFiltPatrol=false;var krRTRC_optUser="";var krRTRC_optTypeEdit=true;var krRTRC_optTypeNewpage=true;var krRTRC_optPage="";var krRTRC_optRctype="";var krRTRC_optFrom=false;var krRTRC_optUntill=false;var krRTRC_optRcshow="";var krRTRC_optRcprop="";var krRTRC_optRcstart="";var krRTRC_optNS="";var krRTRC_optOrder="desc";var krRTRC_optRcend="";var krRTRC_optRInt=3000;var krRTRC_optIRCBL=false;var krRTRC_RCTimeout=false;var krRTRC_RCEnabled=null;var krRTRC_IntMsgs={};var krRTRC_RCLegendHTML="";var krRTRC_MassPatrol=false;var krRTRC_AutoDiff=false;var krRTRC_AutoDiffTop=false;var krRTRC_DayHeadPrev=false;var krRTRC_SkipDiffs=[];var krRTRC_MarkPatrolCache=[];var krRTRC_Months=["January","February","March","April","May","June","July","August","September","October","November","December"];var krRTRC_SkipButon="";var krRTRC_FeedMemHTML="";var krRTRC_FeedMemUidArr=[];var krRTRC_TimeDiff=0;var krRTRC_WikiID="unknown";var krRTRC_Updating=false;if(typeof window.krMsgs!=='object'){$.getScript('http://toolserver.org/~krinkle/I18N/export.php?lang='+wgUserLanguage,function(){krRTRC_Months=krRTRC_Msg('months').split(',');});}
function krLog(s,o){if(krRTRC_Debug===1){console.log(s);if(o){console.log(o);}}
return true;}
if(typeof String.prototype.ucFirst==='undefined'){String.prototype.ucFirst=function(){return this.substr(0,1).toUpperCase()+this.substr(1,this.length);};}
if(typeof String.prototype.escapeRE==='undefined'){String.prototype.escapeRE=function(){return this.replace(/([\\{}()|.?*+^$\[\]])/g,"\\$1");};}
function krEncodeEntities(s){return $("<div/>").text(s).html();}
function krDencodeEntities(s){return $("<div/>").html(s).text();}
function krRTRC_Msg(key){if(krMsgs[key]){return krMsgs[key];}else{return key.ucFirst();}}
function krGetUrlParam(s,url){url=url?url:document.location.href;var re=new RegExp('[^#]*[&?]'+s.escapeRE()+'=([^&#]*)');var m=re.exec(url);if(m&&m.length>1){return decodeURIComponent(m[1]);}
return null;}
function krParseUrlParams(l){var url=l?l:document.location.href;var match=url.match(/\?[^#]*/);if(match===null)return null;var query=match[0];var ret={};var pattern=/[&?]([^&=]*)=?([^&]*)/g;match=pattern.exec(query);for(;match!==null;match=pattern.exec(query)){var key=decodeURIComponent(match[1]);var value=decodeURIComponent(match[2]);ret[key]=value;}
return ret;}
function krEmpty(v){var key;if(v===""||v===0||v==="0"||v===null||v===false||typeof v==='undefined'){return true;}
if(typeof v=='object'){for(key in v){return false;}
return true;}
return false;}
function krTrim(v){return v.replace(/^\s*((?:[\S\s]*\S)?)\s*$/,'$1');}
function krRTRC_leadZ(i){if(i<10){i="0"+i;}
return i;}
function krRTRC_WikiLink(s){var l=wgServer;l+=wgArticlePath.replace("$1",encodeURIComponent(s).replace(/\%3A/g,":").replace(/\%2F/g,"/").replace(/\%3F/g,"?"));return l;}
function krRTRC_APITimeConv(s){s=s.toString();s=s.replace("-","/").replace("-","/").replace("T"," ").replace("Z","");return new Date(s);}
function krRTRC_AdjustAPIClocktime(s){d=krRTRC_APITimeConv(s);msd=krRTRC_TimeDiff*60*1000;d.setTime(d.getTime()+msd);return krRTRC_leadZ(d.getHours())+':'+krRTRC_leadZ(d.getMinutes());}
function krRTRC_AdjustLongTime(s){s=s.toString();s=s.substr(0,4)+'/'+s.substr(4,2)+'/'+s.substr(6,2)+' '+s.substr(8,2)+':'+s.substr(10,2)+':'+s.substr(12,2);d=new Date(s);if(d=='Invalid Date'){krLog("krRTRC_AdjustLongTime: d-var: Invalid Date");return false;}
msd=krRTRC_TimeDiff*60*1000;d.setTime(d.getTime()-msd);return d.getFullYear()+''+krRTRC_leadZ(d.getMonth()+1)+''+krRTRC_leadZ(d.getDate())+''+krRTRC_leadZ(d.getHours())+''+krRTRC_leadZ(d.getMinutes())+''+krRTRC_leadZ(d.getSeconds());}
function krRTRC_isInt(i){return parseInt(i,10)===i;}
function krInArray(s,array){for(i=0;i<array.length;i++){if(array[i]==s){return true;}}
return false;}
function krRTRC_RCDayHead(time){var current=time.getDate();if(current==krRTRC_DayHeadPrev){return'';}else{krRTRC_DayHeadPrev=current;return'<div class="item"><div><strong>'+time.getDate()+' '+krRTRC_Months[time.getMonth()]+'</strong></div></div>';}}
function krRTRC_BuildItem(type,title,rcid,revid,old_revid,user,timestamp,comment,patrolled,anon,oldlen,newlen){diffsize=(+newlen)-(+oldlen);patrolled=patrolled===''?true:false;anon=anon===''?true:false;var typeSymbol=" ";var itemClass="";var diffLink=krRTRC_IntMsgs.diff;if(type=='edit'){if(krRTRC_Patrolright===true&&krRTRC_optFiltPatrol=='on'){typeSymbol='<span class="unpatrolled">!</span>';}else if(krRTRC_Patrolright===true&&patrolled===false){typeSymbol='<span class="unpatrolled">!</span>';}
itemClass='rcitem';}else if(type=='new'){itemClass='rcitem';typeSymbol='<span class="newpage">N</span>';}
comment=comment.replace(/<[^>]*>/g,"");if(comment.indexOf("[[COM:AES|←]]")===0){itemClass+=' aes';comment=comment.replace("[[COM:AES|←]]","← ");}
if(anon){usertypeClass=' anoncontrib';}else{usertypeClass=' usercontrib';}
var item=krRTRC_RCDayHead(krRTRC_APITimeConv(timestamp));item+='<div class="item '+itemClass+usertypeClass+'" diff="'+revid+'" rcid="'+rcid+'" user="'+user+'">';if(type=='edit'){diffLink=wgServer+wgScript+"?diff="+revid+"&oldif="+old_revid+"&rcid="+rcid;diffLink='<a class="rcitemlink diff" diff="'+revid+'" rcid="'+rcid+'" href="'+diffLink+'">'+krRTRC_IntMsgs.diff+'</a>';}else if(type=='new'){diffLink='<a class="rcitemlink newPage" rcid="'+rcid+'">new</a>';}
item+='<div first>('+diffLink+') '+typeSymbol+' ';item+=krRTRC_AdjustAPIClocktime(timestamp)+' <a class="page" href="'+krRTRC_WikiLink(title)+'?rcid='+rcid+'" target="_blank">'+title+'</a></div>';item+='<div user> <small>· <a href="'+krRTRC_WikiLink("User talk:"+user)+'" target="_blank">T</a> · <a href="'+krRTRC_WikiLink("Special:Contributions/"+user)+'" target="_blank">C</a> </small>· <a class="user" href="'+krRTRC_WikiLink("User:"+user)+'" target="_blank">'+user+'</a></div>';item+='<div other> <span class="comment">'+krEncodeEntities(comment)+'</span></div>';if(diffsize>0){el=diffsize>399?"strong":"span";item+='<div size><'+el+' class="mw-plusminus-pos">('+diffsize+')</'+el+'></div>';}else if(diffsize===0){item+='<div size><span class="mw-plusminus-null">(0)</span></div>';}else{el=diffsize<-399?"strong":"span";item+='<div size><'+el+' class="mw-plusminus-neg">('+diffsize+')</'+el+'></div>';}
item+='</div>';return item;}
function krRTRC_GetRCOptions(){krRTRC_optLimit=$("#rc-options-limit").val();krRTRC_optFiltAnon=$("#rc-options-filter-anons:checked").val();krRTRC_optRcshow=krRTRC_optFiltAnon=='on'?"|anon":"";krRTRC_optFiltPatrol=$("#rc-options-filter-unpatrolled:checked").val();if(krRTRC_optFiltPatrol=='on'){krRTRC_optRcshow+="|!patrolled";}
if(krRTRC_Patrolright===true){krRTRC_optRcprop="|patrolled";}
krRTRC_optUser=$("#rc-options-rcuser").val()===''?false:krTrim($("#rc-options-rcuser").val());if(!krEmpty(krRTRC_optUser)){krRTRC_optUser="&rcuser="+krRTRC_optUser;}else{krRTRC_optUser="";}
krRTRC_optTypeEdit=$("#rc-options-type-edit:checked").val()=='on'?true:false;krRTRC_optTypeNewpage=$("#rc-options-type-newpage:checked").val()=='on'?true:false;krRTRC_optRctype=[];if(krRTRC_optTypeEdit){krRTRC_optRctype.push('edit');}
if(krRTRC_optTypeNewpage){krRTRC_optRctype.push('new');}
krRTRC_optRctype=krRTRC_optRctype.join("|");if(krRTRC_optRctype===""){$("#rc-options-type-edit").click();$("#rc-options-type-newpage").click();krRTRC_optRctype='edit|new';}
krRTRC_optFrom=krEmpty(krTrim($("#rc-options-timeframe-rcfrom").val()))?false:krTrim($("#rc-options-timeframe-rcfrom").val());krRTRC_optUntill=krEmpty(krTrim($("#rc-options-timeframe-rcuntill").val()))?false:krTrim($("#rc-options-timeframe-rcuntill").val());if(krRTRC_optOrder=='older'){if(krRTRC_isInt(parseInt(krRTRC_optUntill,10))&&krRTRC_AdjustLongTime(krRTRC_optUntill)){krRTRC_optRcstart="&rcstart="+krRTRC_AdjustLongTime(krRTRC_optUntill);}else{krRTRC_optRcstart="";}
if(krRTRC_isInt(parseInt(krRTRC_optFrom,10))&&krRTRC_AdjustLongTime(krRTRC_optFrom)){krRTRC_optRcend="&rcend="+krRTRC_AdjustLongTime(krRTRC_optFrom);}else{krRTRC_optRcend="";}}else if(krRTRC_optOrder=='newer'){if(krRTRC_isInt(parseInt(krRTRC_optFrom,10))&&krRTRC_AdjustLongTime(krRTRC_optFrom)){krRTRC_optRcstart="&rcstart="+krRTRC_AdjustLongTime(krRTRC_optFrom);}else{krRTRC_optRcstart="";}
if(krRTRC_isInt(parseInt(krRTRC_optUntill,10))&&krRTRC_AdjustLongTime(krRTRC_optUntill)){krRTRC_optRcend="&rcend="+krRTRC_AdjustLongTime(krRTRC_optUntill);}else{krRTRC_optRcend="";}}
krRTRC_optNS=$("#rc-options-namespace").val();krRTRC_optRcdir=$("input[name='rc-options-rcdir']:checked").val();krRTRC_optOrder=krRTRC_optRcdir=='asc'?'newer':'older';krRTRC_optRInt=parseInt($("#rc-options-interval").val(),10)*1000;krRTRC_optIRCBL=$("#rc-options-ircbl:checked").val()=='on'?true:false;krRTRC_optAutoDiff=$("#rc-options-autodiff").val();krRTRC_AutoDiff=krRTRC_optAutoDiff=='On'?true:false;krRTRC_optAutoDiffTop=$("#rc-options-autodiff-top:checked").val();krRTRC_AutoDiffTop=krRTRC_optAutoDiffTop=='on'?true:false;krRTRC_RCDataURL=krRTRC_APIURL+"?action=query&format=xml&list=recentchanges"+krRTRC_optUser+""+krRTRC_optPage+"&rctype="+krRTRC_optRctype+"&rcshow=!bot"+krRTRC_optRcshow+"&rcprop=flags|timestamp|user|title|comment|sizes|ids"+krRTRC_optRcprop+"&rcnamespace="+krRTRC_optNS+"&rclimit="+krRTRC_optLimit+"&rcdir="+krRTRC_optOrder+krRTRC_optRcstart+krRTRC_optRcend;return krRTRC_RCDataURL;}
function krRTRC_RebindElements(){$("#krRTRC_RCOutput>.feed div.rcitem").each(function(){if(krInArray($(this).attr("rcid"),krRTRC_SkipDiffs)){$(this).addClass("skipped");}else if(krInArray($(this).attr("rcid"),krRTRC_MarkPatrolCache)){$(this).addClass("patrolled");}});$("#krRTRC_RCOutput>.feed div[rcid="+window.currentDiffRcid+"]").addClass("indiff");$("#krRTRC_DiffFrame>table.diff a[href^=http://]").attr("target","_blank");}
function krRTRC_PushFrontend(){$("#krRTRC_RCOutput").removeClass("placeholder");$("#krRTRC_RCOutput>.feed").html(krRTRC_FeedMemHTML);krRTRC_RebindElements();krRTRC_DayHeadPrev="";krRTRC_RCTimeout=setTimeout(krRTRC_Refresh,krRTRC_optRInt);$("#krRTRC_loader").hide();}
function krRTRC_ApplyIRCBL(){if(krRTRC_Updating===true){krRTRC_FeedMemUidArr=[];$(krRTRC_FeedMemHTML).find("div.item").each(function(index,el){krRTRC_FeedMemUidArr.push($(el).attr("user"));});krRTRC_FeedMemUidArr.shift();try{$.ajax({url:"http://toolserver.org/~krinkle/CVN/API/?raw=0&format=json&uid="+krRTRC_FeedMemUidArr.join("|")+"&jsoncallback=?",timeout:500,dataType:'json',success:function(data){if(data.users){$.each(data.users,function(i,val){if(val.usertype=='bl'){var tooltip="";if(val.reason){tooltip+=krRTRC_Msg('reason')+': '+val.reason+". ";}else{tooltip+=krRTRC_Msg('noreasonfound');}
if(val.adder){tooltip+=krRTRC_Msg('adder')+": "+val.adder;}else{tooltip+=krRTRC_Msg('adder')+": "+krRTRC_Msg('unknown');}
krRTRC_FeedMemHTML=$("<div>"+krRTRC_FeedMemHTML+"</div>").find("div.item[user="+i+"] .user").addClass("blacklisted").prepend('<img src="'+krRTRC_BliconSRC+'" alt="" title="'+tooltip+'" />').attr("title",tooltip).end().html();}});}
krRTRC_PushFrontend();$("#krRTRC_RCOutput>.feed").append('<small id="krRTRC_Dumpdate">CVN DB '+krRTRC_Msg('lastupdate')+': '+data.dumpdate+' (UTC)</small>');krRTRC_Updating=false;},error:function(data,txtstatus,error){krRTRC_PushFrontend();krRTRC_Updating=false;}});}catch(e){krRTRC_PushFrontend();krRTRC_Updating=false;}}}
function krRTRC_Refresh(){if(krRTRC_RCEnabled===true&krRTRC_Updating===false){$("#krRTRC_loader").show();krRTRC_Updating=true;$.ajax({type:"GET",url:krRTRC_RCDataURL,dataType:"xml",success:function(rawback){lastupdate=new Date();msd=krRTRC_TimeDiff*60*1000;lastupdate.setTime(lastupdate.getTime()+msd);krRTRC_FeedMemHTML='<div id="krRTRC_lastupdate">'+krRTRC_Msg('lastupdate')+': '+lastupdate.toUTCString()+' | <a href="'+krRTRC_GeneratePermalink()+'">'+krRTRC_Msg('permalinktext')+'</a></div>';if($(rawback).find('error').length>0){krLog("krRTRC_GetRCData()-> "+$(rawback).find('rc').length+" errors");$("#krRTRC_RCOutput").removeClass("placeholder");if($(rawback).find('error').attr("code")=="rcpermissiondenied"){krRTRC_FeedMemHTML+='<h3>Downloading recent changes failed</h3><p>Please untick the "Unpatrolled only"-checkbox or request the Patroller-right on <a href="'+wgServer+'">'+wgServer+'</a>';}else{krRTRC_FeedMemHTML+='<h3>Downloading recent changes failed</h3><p>Please check the settings above and try again. If you believe this is a bug, please <a href="http://meta.wikimedia.org/w/index.php?title=User_talk:Krinkle/Tools&action=edit&section=new&editintro=User_talk:Krinkle/Tools/Editnotice&preload=User_talk:Krinkle/Tools/Preload" target="_blank"><strong>let me know</strong></a>.';}
krRTRC_PushFrontend();krRTRC_Updating=false;}else if($(rawback).find('rc').length>0){var htmloutput='<div id="krRTRC_list">';$(rawback).find('rc').each(function(i){htmloutput+=krRTRC_BuildItem($(this).attr("type"),$(this).attr("title"),$(this).attr("rcid"),$(this).attr("revid"),$(this).attr("old_revid"),$(this).attr("user"),$(this).attr("timestamp"),$(this).attr("comment"),$(this).attr("patrolled"),$(this).attr("anon"),$(this).attr("oldlen"),$(this).attr("newlen"));});krRTRC_FeedMemHTML+=htmloutput+"</div>";if(krRTRC_optIRCBL===true){krRTRC_ApplyIRCBL();}else{krRTRC_PushFrontend();krRTRC_Updating=false;}}else{krRTRC_FeedMemHTML+='<strong><em>'+krRTRC_Msg('nomatches')+'</em></strong>';krRTRC_PushFrontend();krRTRC_Updating=false;}
$RCOptions_submit.removeAttr("disabled").css("opacity","1.0");}});}}
function krRTRC_hardRefresh(){krRTRC_RCEnabled=true;$("#krRTRC_toggleRefresh").val("Off").removeClass("button-on");var x=krRTRC_GetRCOptions();clearTimeout(krRTRC_RCTimeout);krRTRC_Refresh();}
function krRTRC_ProcesPermalink(l){var get=krGetUrlParam('rclimit',l);$("#rc-options-limit option[value="+get+"]").attr("selected","selected");get=krGetUrlParam('rcshow_anon',l);if(get=="on"){$("#rc-options-filter-anons").attr("checked","checked");}
get=krGetUrlParam('rcshow_patrol',l);if(get=="on"){$("#rc-options-filter-unpatrolled").attr("checked","checked");}
get=krGetUrlParam('rcuser',l);$("#rc-options-rcuser").val(get);get=krGetUrlParam('typeedit',l);if(get=="off"){$("#rc-options-type-edit").removeAttr("checked");}
get=krGetUrlParam('typenewpage',l);if(get=="off"){$("#rc-options-type-newpage").removeAttr("checked");}
get=krGetUrlParam('rcfrom',l);$("#rc-options-timeframe-rcfrom").val(get);get=krGetUrlParam('rcuntill',l);$("#rc-options-timeframe-rcuntill").val(get);get=krGetUrlParam('rcnamespace',l);$("#rc-options-namespace option[value="+get+"]").attr("selected","selected");get=krGetUrlParam('rcdir',l);if(get=="asc"){$("#krRTRC_RCOptions input[name=rc-options-rcdir][value=asc]").attr("checked","checked");$("#krRTRC_RCOptions input[name=rc-options-rcdir][value=desc]").removeAttr("checked");}
get=krGetUrlParam('ajaxint',l);if(get!==""&&get!==" "&&get!==null&&get!==false){$("#rc-options-interval").val(get);}
get=krGetUrlParam('ircbl',l);if(get=="on"){$("#rc-options-ircbl").attr("checked","checked");}
get=krGetUrlParam('autodiff');if(get=="on"){$("#rc-options-autodiff").val("On").addClass("button-on");}
get=krGetUrlParam('autodiff_top',l);if(get=="on"){$("#rc-options-autodiff-top").attr("checked","checked");}
get=krGetUrlParam('jumpstart',l);if(get=="on"){get=krRTRC_GetRCOptions();krRTRC_hardRefresh();window.location.hash='';window.location.hash='toggleHelp';}}
function krRTRC_GeneratePermalink(){var a='&rclimit='+krRTRC_optLimit;a+=krRTRC_optFiltAnon=='on'?'&rcshow_anon=on':'';a+=krRTRC_optFiltPatrol=='on'?'&rcshow_patrol=on':'';a+=krRTRC_optUser?krRTRC_optUser:'';a+=krRTRC_optTypeEdit?'':'&typeedit=off';a+=krRTRC_optTypeNewpage?'':'&typenewpage=off';a+=krRTRC_optPage?krRTRC_optPage:'';a+=krRTRC_optFrom===false?'':'&rcfrom='+krRTRC_optFrom;a+=krRTRC_optUntill===false?'':'&rcuntill='+krRTRC_optUntill;a+=krRTRC_optNS===""?'':'&rcnamespace='+krRTRC_optNS;a+='&rcdir=';a+=krRTRC_optRcdir=='asc'?'asc':'desc';a+=Math.round(krRTRC_optRInt/1000)!==3?'&ajaxint='+Math.round(krRTRC_optRInt/1000):'';a+=krRTRC_optIRCBL?'&ircbl=on':'';a+=krRTRC_AutoDiff?'&autodiff=on':'';a+=krRTRC_AutoDiffTop?'&autodiff_top=on':'';return wgServer+wgScript+"?title="+wgPageName+a+'&jumpstart=on';}
function krRTRC_NextDiff(){var $lis=$("#krRTRC_RCOutput>.feed div.rcitem:not(.indiff,.patrolled,.skipped)");if(krRTRC_AutoDiffTop===true){$lis.eq(0).find("a.rcitemlink").click();}else{$lis.eq($lis.length-1).find(" a.rcitemlink").click();}}
function krRTRC_TipIn($targetEl,uid,is_anon){krLog("krRTRC_TipIn()");var o=$targetEl.offset();if(is_anon){links=' · <a target="_blank" title="Whois '+uid+'?" href="http://toolserver.org/~chm/whois.php?ip='+uid+'">WHOIS</a>';}else{links='';}
links+=' · <a target="_blank" title="View cross-wiki contributions" href="http://toolserver.org/~luxo/contributions/contributions.php?user='+uid+'&blocks=true">CrossWiki</a>';if(krRTRC_Delhistright===true){links+=' · <a target="_blank" title="View deleted contributions" href="'+krRTRC_WikiLink('Special:DeletedContributions/'+uid)+'">DeletedContributions</a>';}
$krRTRC_Tiptext.html('<a id="krRTRC_Tip_FilterAdd" onclick="$(\'#rc-options-rcuser\').val(\''+uid+'\'); $RCOptions_submit.click();" uid="'+uid+'" title="Filter by '+uid+'">[+<small>filter</small>]</a>'+links);$krRTRC_Tip.css({"left":o.left+"px","top":(o.top-23)+"px","display":"block"}).fadeIn('fast');window.krRTRC_TipTime=setTimeout(krRTRC_TipOut,3000);}
function krRTRC_TipOut(){if(typeof krRTRC_TipTime!=='undefined'){clearTimeout(krRTRC_TipTime);}
$krRTRC_Tip.fadeOut();}
function krRTRC_RefreshWhois(){$.ajax({type:"GET",url:"http://secure.grizzdesign.nl/RTRC-whoisonline.php?wiki_user="+encodeURIComponent(wgUserName+"@"+krRTRC_WikiID)+"&rtrc_hideme=0&rtrc_url="+encodeURIComponent(window.location.href)+"&debug=0&jsoncallback=?",timeout:500,dataType:'json',success:function(data){krLog("Whosonline data",data);$("#krwhosonline").html(data);}});}
function krRTRC_ToggleMassPatrol(b){if(b===true){krRTRC_MassPatrol=true;$krRTRC_MassPatrol.val("On").addClass("button-on");$(".patrollink a").click();}else{krRTRC_MassPatrol=false;$krRTRC_MassPatrol.val("Off").removeClass("button-on");}}
function krRTRC_GetPatroltoken(){$.ajax({type:"GET",url:krRTRC_APIURL+"?action=query&format=xml&list=recentchanges&rctoken=patrol&rclimit=1&rctype=new",dataType:"xml",success:function(rawback){krRTRC_Patroltoken=$(rawback).find('rc').attr("patroltoken");if(krRTRC_Patroltoken){krRTRC_Patroltoken=krRTRC_Patroltoken.replace("+","%2B").replace("\\","%5C");}else{krRTRC_Patroltoken=false;}}});}
function krRTRC_init1(){krLog("Init Phase 1 started");while(krRTRC_initFuncs.length>0){(krRTRC_initFuncs.shift())();}
krLog("Init Phase 1 done");}
function krRTRC_init2(){krLog("Init Phase 2 started");while(krRTRC_initFuncs2.length>0){(krRTRC_initFuncs2.shift())();}
krLog("Init Phase 2 done");}
window.krRTRC_initFuncs=[];window.krRTRC_initFuncs[0]=function(){$.ajax({type:"GET",url:krRTRC_APIURL+"?action=query&meta=userinfo&uiprop=rights&format=xml",dataType:"xml",success:function(rawback){if($(rawback).find("r:contains('patrol')").length>0){$(rawback).find("r:contains('patrol')").each(function(){if($(this).text()=='patrol'&&krRTRC_Patrolright===false){krRTRC_Patrolright=true;}});}
if($(rawback).find("r:contains('deletedhistory')").length>0){$(rawback).find("r:contains('deletedhistory')").each(function(){if($(this).text()=='deletedhistory'&&krRTRC_Delhistright===false){krRTRC_Delhistright=true;}});}}});};window.krRTRC_initFuncs[1]=function(){krRTRC_GetPatroltoken();};window.krRTRC_initFuncs[2]=function(){$.ajax({type:"GET",url:krRTRC_APIURL+"?action=query&meta=siteinfo&format=xml",dataType:"xml",success:function(rawback){krRTRC_TimeDiff=$(rawback).find('general').attr("timeoffset");krRTRC_WikiID=$(rawback).find('general').attr("wikiid");document.title="RTRC: "+krRTRC_WikiID;}});};window.krRTRC_initFuncs[3]=function(){$.getJSON(krRTRC_APIURL+"?action=query&format=json&meta=allmessages&amlang="+wgUserLanguage+"&ammessages=show|hide|ascending abbrev|descending abbrev|markaspatrolleddiff|markedaspatrolled|markedaspatrollederror|next|diff|talkpagelinktext|contributions|recentchanges-label-legend|recentchanges-label-bot|recentchanges-label-minor|recentchanges-label-newpage|recentchanges-label-unpatrolled|recentchanges-legend-bot|recentchanges-legend-minor|recentchanges-legend-newpage|recentchanges-legend-unpatrolled|namespaces|namespacesall|blanknamespace&callback=?",function(data){krLog("GetIntMsgs->"+data);krLog(data);data=data.query.allmessages;for(i=0;i<data.length;i++){krRTRC_IntMsgs[data[i].name]=data[i]['*'];}
krRTRC_init2();});};window.krRTRC_initFuncs2=[];window.krRTRC_initFuncs2[0]=function(){$("#p-namespaces>ul>li").removeClass("new").find(">a>span").eq(0).html("Tool");$("#ca-talk").removeClass("new").find(">a").attr("href","http://meta.wikimedia.org/w/index.php?title=User_talk:Krinkle/Tools&action=edit&section=new&editintro=User_talk:Krinkle/Tools/Editnotice&preload=User_talk:Krinkle/Tools/Preload").attr("target","_blank").find(">span").html("Feedback");$("#footer").remove();$("#content").addClass("krRTRC_body");krRTRC_RCLegendHTML='<div id="krRTRC_RCLegend">'+krRTRC_IntMsgs["recentchanges-label-legend"].replace("$1.","")+' <abbr class="newpage" title="'+krRTRC_IntMsgs["recentchanges-label-newpage"]+'">N</abbr>'+krRTRC_IntMsgs["recentchanges-legend-newpage"].replace("$1","")+', <!--<abbr class="minor" title="'+krRTRC_IntMsgs["recentchanges-label-minor"]+'">m</abbr>'+krRTRC_IntMsgs["recentchanges-legend-minor"].replace("$1","")+', <abbr class="bot" title="'+krRTRC_IntMsgs["recentchanges-label-bot"]+'">b</abbr>'+krRTRC_IntMsgs["recentchanges-legend-bot"].replace("$1","")+', --><abbr class="unpatrolled" title="'+krRTRC_IntMsgs["recentchanges-label-unpatrolled"]+'">!</abbr>'+krRTRC_IntMsgs["recentchanges-legend-unpatrolled"].replace("$1","")+'<br />Colors: <div class="item patrolled inline-block"> '+krRTRC_IntMsgs.markedaspatrolled+' </div>, <div class="item indiff inline-block"> '+krRTRC_Msg('currentedit')+' </div>, <div class="item skipped inline-block"> '+krRTRC_Msg('skippededit')+' </div>, <div class="item aes inline-block"> Edit with an Automatic Edit Summary </div><br />'+krRTRC_Msg('abbreviations')+': T - '+krRTRC_IntMsgs.talkpagelinktext+', C - '+krRTRC_IntMsgs.contributions+'</div>';krRTRC_RCNamespaceDropdown='<select id="rc-options-namespace" name="rc-options-namespace">';krRTRC_RCNamespaceDropdown+='<option value>'+krRTRC_IntMsgs.namespacesall+'</option>';krRTRC_RCNamespaceDropdown+='<option value="0">'+krRTRC_IntMsgs.blanknamespace+'</option>';for(var ns in wgFormattedNamespaces){if(ns>0){krRTRC_RCNamespaceDropdown+='<option value="'+ns+'">'+wgFormattedNamespaces[ns]+'</option>';}}krRTRC_RCNamespaceDropdown+='</select>';$("#content").html('<div id="content-inner"><div id="krRTRC_PageWrap" class="plainlinks">'+'<div id="krRTRC_Topbar">Real-Time Recent Changes <small class="ns">('+krRTRC_appVersion+' as of '+krRTRC_appDate+')</small><small id="toggleHelp">[help]</small><a target="_blank" href="'+krRTRC_WikiLink("Special:Log/patrol")+'?user='+encodeURIComponent(wgUserName)+'" style="float:right;font-size:smaller;color:#ccc"> ['+krRTRC_Msg('mypatrollog')+'] </a></div>'+'<div id="krRTRC_RCForm"><fieldset id="krRTRC_RCOptions" class="nohelp"><form>'+'<div class="panel"><label for="rc-options-limit" class="head">'+krRTRC_Msg('limit')+'</label><select id="rc-options-limit" name="rc-options-limit"><option value="10">10</option><option selected="" value="25">25</option><option value="50">50</option><option value="75">75</option><option value="100">100</option></select></div>'+'<div class="sep"></div>'+'<div class="panel"><label class="head">'+krRTRC_Msg('filter')+'</label><div style="text-align:left"><input type="checkbox" value="on" id="rc-options-filter-anons" name="rc-options-filter-anons"><label for="rc-options-filter-anons"> '+krRTRC_Msg('anononly')+'</label><br /><input type="checkbox" value="on" id="rc-options-filter-unpatrolled" name="rc-options-filter-unpatrolled"><label for="rc-options-filter-unpatrolled"> '+krRTRC_Msg('unpatrolledonly')+'</label></div></div>'+'<div class="sep"></div>'+'<div class="panel"><label for="rc-options-rcuser" class="head">'+krRTRC_Msg('userfilter-opt')+' <span section="Userfilter" class="helpicon"></span></label><div style="text-align:center"><input type="text" value="" size="16" id="rc-options-rcuser" name="rc-options-rcuser" /><br /><input class="button" type="button" id="RCOptions_RcuserClr" value="'+krRTRC_Msg('clear')+'" /></div></div>'+'<div class="sep"></div>'+'<div class="panel"><label class="head">'+krRTRC_Msg('type')+'</label><div style="text-align:left"><input type="checkbox" value="on" id="rc-options-type-edit" name="rc-options-type-edit" checked="checked"><label for="rc-options-type-edit"> '+krRTRC_Msg('edits')+'</label><br /><input type="checkbox" checked="checked" value="on" id="rc-options-type-newpage" name="rc-options-type-newpage"><label for="rc-options-type-newpage"> '+krRTRC_Msg('newpages')+'</label></div></div>'+'<div class="sep"></div>'+'<div class="panel"><label class="head">'+krRTRC_Msg('timeframe-opt')+' <span section="Timeframe" class="helpicon"></span></label><div style="text-align:right"><label for="rc-options-timeframe-rcfrom">'+krRTRC_Msg('from')+': </label><input type="text" value="" size="14" id="rc-options-timeframe-rcfrom" name="rc-options-timeframe-rcfrom"><br /><label for="rc-options-timeframe-rcuntill">'+krRTRC_Msg('untill')+': </label><input type="text" value="" size="14" id="rc-options-timeframe-rcuntill" name="rc-options-timeframe-rcuntill"></div></div>'+'<div class="sep"></div>'+'<div class="panel"><label for="rc-options-namespace" class="head">'+krRTRC_IntMsgs.namespaces+'</label>'+krRTRC_RCNamespaceDropdown+'</div>'+'<div class="sep"></div>'+'<div class="panel"><label class="head">'+krRTRC_Msg('order')+' <br /><span section="Order" class="helpicon"></span></label><div style="text-align:left"><input type="radio" name="rc-options-rcdir" value="asc"> '+krRTRC_Msg('asc')+' <br /><input type="radio" name="rc-options-rcdir" value="desc" checked="checked"> '+krRTRC_Msg('desc')+' </div></div>'+'<div class="sep"></div>'+'<div class="panel"><label for="rc-options-interval" class="head">R <br /><span section="Reload_Interval" class="helpicon"></span></label><input type="text" value="3" size="1" id="rc-options-interval" name="rc-options-interval"></div>'+'<div class="sep"></div>'+'<div class="panel"><label class="head" for="rc-options-ircbl">IRCBL<br /><span section="IRC_Blacklist" class="helpicon"></span></label><input type="checkbox" value="on" size id="rc-options-ircbl" name="rc-options-ircbl" /></div>'+'<div class="sep"></div>'+'<div class="panel panel-last"><input class="button" type="button" id="RCOptions_submit" value="'+krRTRC_Msg('apply')+'" /></div>'+'<hr style="clear:both" />'+'<div class="panel2"><label for="krRTRC_MassPatrol" class="head">MassPatrol <span section="MassPatrol" class="helpicon"></span></label><input id="krRTRC_MassPatrol" class="button button-off" type="button" value="Off" /></div>'+'<div class="sep2"></div>'+'<div class="panel2"><label for="rc-options-autodiff" class="head">AutoDiff <span section="AutoDiff" class="helpicon"></span></label><input type="button" class="button button-off" value="Off" id="rc-options-autodiff" /> <input type="checkbox" value="on" id="rc-options-autodiff-top" /> <label for="rc-options-autodiff-top"> '+krRTRC_Msg('loadfromtop')+'</label></div>'+'<div class="sep2"></div>'+'<div class="panel2"><label for="krRTRC_toggleRefresh" class="head">Pause</label><input id="krRTRC_toggleRefresh" class="button button-off" type="button" value="Off" /></div>'+'</fieldset></form></div>'+'<a name="krRTRC_DiffTop" />'+'<div id="krRTRC_DiffFrame" style="display:none"></div>'+'<div id="krRTRC_RCOutput" class="placeholder">'+krRTRC_RCLegendHTML+'</div>'+'<div style="clear:both"></div>'+'<div id="krRTRC_Footer"><div class="inside">'+'<span style="float:left"><a href="http://meta.wikimedia.org/wiki/User:Krinkle/Tools/Real-Time_Recent_Changes" class="external text" rel="nofollow">'+krRTRC_Msg('documentation')+'</a></span>'+'Real-Time Recent Changes by <a href="http://commons.wikimedia.org/wiki/User:Krinkle" class="external text" rel="nofollow">Krinkle</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0" class="external text" rel="nofollow">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.'+'<span style="float:right"><a href="http://meta.wikimedia.org/wiki/User:Krinkle/Tools/Real-Time_Recent_Changes#Changelog" id="krwhosonline" class="external text" rel="nofollow">'+krRTRC_Msg('whatsnew')+'</a></span>'+'</div></div>');$("body").append("<div id='krRTRC_Tip'><span id='krRTRC_Tiptext'></span></div>");$("#content-inner").css("position","relative");$("#krRTRC_RCOutput").prepend('<div class="feed"></div><img src="'+krRTRC_LoaderSRC+'" id="krRTRC_loader" style="display:none" />');};window.krRTRC_initFuncs2[1]=function(){krRTRC_ProcesPermalink();};window.krRTRC_initFuncs2[2]=function(){$RCOptions_submit=$("#RCOptions_submit");$RCOptions_submit.click(function(){$RCOptions_submit.attr("disabled","disabled").css("opacity","0.5");a=krRTRC_GetRCOptions();krRTRC_hardRefresh();return false;});$("#diffClose").live("click",function(){$("#krRTRC_DiffFrame").fadeOut('fast');});window.currentDiff="unknown";window.currentDiffRcid="unknown";$("a.diff").live("click",function(){window.currentDiff=$(this).attr("diff");window.currentDiffRcid=$(this).attr("rcid");var title=$(this).parent().find(">a.page").text();var href=$(this).parent().find(">a.diff").attr('href');$("#krRTRC_DiffFrame").removeAttr('style').load(wgServer+wgScript+'?action=render&diff='+window.currentDiff+'&diffonly=1&uselang='+wgUserLanguage,function(){$(this).html($(this).html().replace("diffonly=","krinkle=").replace("diffonly=","krinkle="));if(krInArray(window.currentDiffRcid,krRTRC_SkipDiffs)){krRTRC_SkipButon='<span class="tab"><a id="diffUnskip">Unskip</a></span>';}else{krRTRC_SkipButon='<span class="tab"><a id="diffSkip">Skip</a></span>';}
$("#krRTRC_DiffFrame").fadeIn().prepend('<h3>'+title+'</h3><div id="krRTRC_DiffTools"><span class="tab"><a id="diffClose">X</a></span><span class="tab"><a href="'+href+'" target="_blank" id="diffNewWindow">Open in Wiki</a></span>'+
(krRTRC_Patroltoken?'<span class="tab"><a onclick="(function(){ if($(\'.patrollink a\').length){ $(\'.patrollink a\').click(); } else { $(\'#diffSkip\').click(); } })();">[mark]</a></span>':'')+'<span class="tab"><a id="diffNext">'+krRTRC_IntMsgs.next.ucFirst()+' »</a></span>'+krRTRC_SkipButon+'</div>');if(krRTRC_MassPatrol===true){$(".patrollink a").click();}
$("#krRTRC_RCOutput>.feed div.indiff").removeClass("indiff");krRTRC_RebindElements();});return false;});$("a.newPage").live("click",function(){window.currentDiffRcid=$(this).attr("rcid");var title=$(this).parent().find(">a.page").text();var href=$(this).parent().find(">a.page").attr('href');$("#krRTRC_DiffFrame").css("max-height","400px").load(href+'&action=render&uselang='+wgUserLanguage,function(){if(krInArray(window.currentDiffRcid,krRTRC_SkipDiffs)){krRTRC_SkipButon='<span class="tab"><a id="diffUnskip">Unskip</a></span>';}else{krRTRC_SkipButon='<span class="tab"><a id="diffSkip">Skip</a></span>';}
$("#krRTRC_DiffFrame").fadeIn().prepend('<h3>'+title+'</h3><div id="krRTRC_DiffTools"><span class="tab"><a id="diffClose">X</a></span><span class="tab"><a href="'+href+'" target="_blank" id="diffNewWindow">Open in Wiki</a></span><span class="tab"><a onclick="$(\'.patrollink a\').click()">[mark]</a></span><span class="tab"><a id="diffNext">'+krRTRC_IntMsgs.next.ucFirst()+' »</a></span>'+krRTRC_SkipButon+'</div>');if(krRTRC_MassPatrol===true){$(".patrollink a").click();}
$("#krRTRC_RCOutput>.feed div.indiff").removeClass("indiff");krRTRC_RebindElements();});return false;});$(".patrollink").live("click",function(){$(".patrollink>a").html(krRTRC_IntMsgs.markaspatrolleddiff+'...');$.ajax({type:"GET",url:krRTRC_APIURL+'?action=patrol&format=xml&list=recentchanges&rcid='+currentDiffRcid+'&token='+krRTRC_Patroltoken,dataType:"xml",success:function(rawback){if($(rawback).find('error').length>0){$(".patrollink").html('<span style="color:red">'+krRTRC_IntMsgs.markedaspatrollederror+'</span>');krLog("PatrolError: "+$(rawback).find('error').attr("code")+"; info: "+$(rawback).find('error').attr("info"));}else{$(".patrollink").html('<span style="color:green">'+krRTRC_IntMsgs.markedaspatrolled+'</span>');$("#krRTRC_RCOutput>.feed div[rcid="+window.currentDiffRcid+"]").addClass("patrolled");krRTRC_MarkPatrolCache.push(window.currentDiffRcid);while(krRTRC_MarkPatrolCache.length>krRTRC_MarkPatrolCacheMax){krLog('MarkPatrolCache -> Cache array is bigger then cachemax, shifting array('+krRTRC_MarkPatrolCache.length+' vs. '+krRTRC_MarkPatrolCacheMax+'). Current array:');krLog(krRTRC_MarkPatrolCache);krRTRC_MarkPatrolCache.shift();krLog('MarkPatrolCache -> Cache array is shifted. New array:');krLog(krRTRC_MarkPatrolCache);}
if(krRTRC_AutoDiff===true){krRTRC_NextDiff();}}},error:function(){$(".patrollink").html('<span style="color:red">'+krRTRC_IntMsgs.markedaspatrollederror+'</span>');}});return false;});$("#diffNext").live("click",function(){krRTRC_NextDiff();});$("#diffSkip").live("click",function(){$("#krRTRC_RCOutput>.feed div[rcid="+window.currentDiffRcid+"]").addClass("skipped");krRTRC_SkipDiffs.push(window.currentDiffRcid);krRTRC_NextDiff();});$("#diffUnskip").live("click",function(){$('#krRTRC_RCOutput>.feed div[rcid='+window.currentDiffRcid+']').removeClass("skipped");krRTRC_SkipDiffs.splice(krRTRC_SkipDiffs.indexOf(window.currentDiffRcid),1);});$("#toggleHelp").live("click",function(){$("#krRTRC_RCOptions").toggleClass('nohelp');});$("#krRTRC_RCForm .helpicon").attr("title",krRTRC_Msg('clickforinfo'));$("#krRTRC_RCForm .helpicon").live("click",function(){window.open(krRTRC_HelpURL+'#'+$(this).attr("section"),"_blank");return false;});$("#RCOptions_RcuserClr").live("click",function(){if(krRTRC_MassPatrol===true){var a=window.confirm(krRTRC_Msg('masspatrol_userfilterconfirm'));if(a){$("#rc-options-rcuser").val("");krRTRC_ToggleMassPatrol(false);}}else{$("#rc-options-rcuser").val("");}
$RCOptions_submit.click();});$krRTRC_Tip=$("#krRTRC_Tip");$krRTRC_Tiptext=$("#krRTRC_Tiptext");$("#krRTRC_Tip,#krRTRC_Tiptext").live("click",function(){krRTRC_TipOut();});$("#krRTRC_Tip,#krRTRC_Tiptext").live("mouseover",function(){clearTimeout(window.krRTRC_TipTime);});$("#krRTRC_Tip,#krRTRC_Tiptext").live("mouseleave",function(){window.krRTRC_TipTime=setTimeout(krRTRC_TipOut,1000);});$("#krRTRC_list *").live("mouseover",function(e){krLog(e);krLog(e.target);$hovEl=false;if($(e.target).is(".rcitem")){$hovEl=$(e.target);}else if($(e.target).parents(".rcitem").is(".rcitem")){$hovEl=$(e.target).parents(".rcitem");}
if($hovEl){krRTRC_TipIn($hovEl.find(".user"),$hovEl.find(".user").text(),$hovEl.hasClass("anoncontrib"));}else{krRTRC_TipOut();}});$(".mw-rollback-link a").live("click",function(){$(".patrollink a").click();});$krRTRC_MassPatrol=$("#krRTRC_MassPatrol");$krRTRC_MassPatrol.live("click",function(){if(krRTRC_MassPatrol===true){krRTRC_ToggleMassPatrol(false);}else if(krRTRC_AutoDiff===true){krRTRC_ToggleMassPatrol(true);}else{var a=window.confirm(krRTRC_Msg('masspatrol_autodiffneeded'));if(a){krRTRC_AutoDiff=true;$("#rc-options-autodiff").val("On").addClass("button-on");krRTRC_ToggleMassPatrol(true);}}});$("#rc-options-autodiff").live("click",function(){if(krRTRC_AutoDiff===true){if(krRTRC_MassPatrol===true){var a=window.confirm(krRTRC_Msg('autodiff_masspatrolneeds'));if(a){$("#rc-options-autodiff").val("Off").removeClass("button-on");krRTRC_AutoDiff=false;krRTRC_ToggleMassPatrol(false);}}else{$(this).val("Off").removeClass("button-on");krRTRC_AutoDiff=false;}}else{$(this).val("On").addClass("button-on");krRTRC_AutoDiff=true;}});$("#rc-options-autodiff-top").live("click",function(){if(krRTRC_AutoDiffTop===true){$(this).removeAttr("checked");krRTRC_AutoDiffTop=false;}else{$(this).attr("checked","checked");krRTRC_AutoDiffTop=true;}});$("#krRTRC_toggleRefresh").live("click",function(){krLog("#krRTRC_toggleRefresh clicked");if(krRTRC_RCEnabled===true){krRTRC_RCEnabled=false;$(this).val("On").addClass("button-on");clearTimeout(krRTRC_RCTimeout);}else if(krRTRC_RCEnabled===false){krRTRC_RCEnabled=true;$(this).val("Off").removeClass("button-on");krRTRC_hardRefresh();}else{$(this).val("On").addClass("button-on");clearTimeout(krRTRC_RCTimeout);}
return false;});};if(wgTitle=="Krinkle/RTRC"&&(wgAction=='view'||wgAction=='edit')&&!krRTRC_Disabled){importStylesheetURI('http://meta.wikimedia.org/w/index.php?title=User:Krinkle/RTRC.css&action=raw&ctype=text/css');importStylesheetURI('http://bits.wikimedia.org/skins-1.5/common/diff.css');$(function(){if($("html").hasClass("msie")){var s="Internet Explorer is not supported. Please use a Mozilla or WebKit-based browser such as Firefox, Chrome or Safari.";alert(s);$("<hr /><p style='color:red'>"+s+"</p>").insertBefore("#catlinks");return true;}else if($("html").hasClass("opera")){alert("Opera is currently not supported. Proceed at own risk or use a Mozilla or WebKit-based browser such as Firefox, Chrome or Safari.");}
krRTRC_init1();});}