//
// Ez a lap a
// http://en.wikipedia.org/w/index.php?title=User:Dschwen/highlightredirects.js
// 2007.november 23-adikán készült másolata.
//
// A monobook.js-be iktatva megjelenít a lapokon felül egy új fület.
// A fülre kattintva - némi várakozás - után az éppen szemlélt lapon
// bezöldülnek a REDIR-re mutató belső hivatkozások.
//
// Így iktassad be a Special:Mypage/monobook.js lapodra:
//
// mw.loader.load('http://hu.wikipedia.org/w/index.php?title=Wikip%C3%A9dia:Okos_scriptek/z%C3%B6ldredir.js'
// + '&action=raw&ctype=text/javascript&dontcountme=s');
//
// Ne felejtsd el kiüríteni utána a cache-t ! (CTRL+R)
//
// FIGYELEM! Ősrégi cucc, nagy valószínűséggel nem működik, egyébként is van
// már CSS-verzió, ami bekapcsolható a segédeszközöknél.
//
var highlightRedirects = {
tab_redirects : null,
status: null,
xhr : null,
todo : null,
num : { total:0, done:0, redir:0 },
//
// Try to create an XMLHTTP request object for each tile
// with maximum browser compat.
// code adapted from http://jibbering.com/2002/4/httprequest.html
//
createXMLHTTP : function()
{
var i, xhr;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// Internet Explorer (uses Conditional compilation)
// traps security blocked creation of the objects.
wmaDebug('Microsoft section');
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xhr = false;
}
}
@end @*/
// Firefox, Konqueror, Safari, Mozilla
if (!xhr && typeof(XMLHttpRequest) != 'undefined') {
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = false;
}
}
// ICE browser
if (!xhr && window.createRequest) {
try {
xhr = new window.createRequest();
} catch (e) {
xhr = false;
}
}
return xhr;
},
updateStatus : function()
{
with( highlightRedirects )
{
status.nodeValue = ' (' + num.redir + '/' + num.done + '/' + num.total + ')';
}
},
// cross-browser event attachment (John Resig)
// http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
addEvent : function ( obj, type, fn )
{
if (obj.addEventListener)
obj.addEventListener( type, fn, false );
else if (obj.attachEvent)
{
obj = fn;
obj = function() { obj( window.event ); }
obj.attachEvent( "on"+type, obj );
}
},
run : function()
{
var links = document.getElementById('bodyContent').getElementsByTagName('a');
var len = links.length;
var local = window.location.href + '#'
if( highlightRedirects.todo != null ) return;
highlightRedirects.todo = new Array();
for( var key = 0; key < len; key++ )
{
if( links.href &&
links.pathname &&
links.pathname.substr(0,6) == 'https://wikines.com/hu/' &&
!( links.href.substr(0,local.length) == local ) &&
!( links.pathname.substr(6,8) == 'Special:' ) )
{
highlightRedirects.todo =
{
link : links,
xhr : highlightRedirects.createXMLHTTP(),
func : new Function(
'var me = highlightRedirects.todo;' +
'if(me.xhr.readyState==4) {' +
'var ro=eval("("+me.xhr.responseText+")");' +
'var redir=false;' +
'for( var k in ro.query.pages ) {' +
'if( typeof(ro.query.pages.redirect) != "undefined" ) redir=true;' +
'}' +
'if(redir) {' +
'me.link.style.color="green";' +
'highlightRedirects.num.redir++;' +
'}' +
'else me.link.style.color="blue";' +
'highlightRedirects.num.done++; highlightRedirects.updateStatus();' +
'}'
)
}
links.style.color = 'gray';
with(highlightRedirects.todo)
{
xhr.open("GET",
"/w/api.php?action=query&prop=info&format=json&titles=" +
links.pathname.substr(6), true);
xhr.onreadystatechange = func;
xhr.send( null );
}
highlightRedirects.num.total++;
}
}
},
install : function()
{
with(highlightRedirects)
{
tab_redirects = document.createElement('li');
tab_redirects.style.cursor = 'pointer';
tab_redirects.style.padding = '0pt 0.8em 0pt 0.8em';
tab_redirects.style.color = '#002BB8';
status = document.createTextNode('');
tab_redirects.appendChild( document.createTextNode('átirányítások') );
tab_redirects.appendChild( status );
if( document.getElementById('ca-history') )
document.getElementById('ca-history').parentNode.appendChild( tab_redirects );
addEvent( tab_redirects, 'click', run );
}
}
};
//
// Hook up installation function
//
$(highlightRedirects.install);
//