Gebruiker:Rodejong/Zeusmode/whatlinkshere.js
Opmerking: nadat u de wijzigingen hebt gepubliceerd is het wellicht nodig uw browsercache te legen.
- Firefox / Safari: houd Shift ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
- Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
- Internet Explorer / Edge: houd Ctrl ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5
- Opera: druk op Ctrl-F5.
//-------------------------------------------------
// Ajax What Links Here 0.32
// by [[User:Zanaq]] (c) 2010 GPL
//
// No new pages open if the user wants to navigate
// The Tree of What Links There
// -------------------------------------------------------<nowiki>
disambiguationTemplates='dp|disamb|disambiguation';
redirectKeywords='#REDIRECT|#DOORVERWIJZING';
txtDisambiguation = 'doorverwijspagina';
txtRedirect = 'redirect';
txtFix = 'Fix links naar';
txtFixDoubleRedirect = 'Repareer [[Help:Dubbele redirects|dubbele redirect]] met [[G:ZM|Zeusmodus]].';
txtFixDisambiguation = 'Repareer [[WP:LND|link naar doorverwijspagina]] met [[G:ZM|Zeusmodus]].';
txtLoading = 'Ladende....';
txtFix = 'fix';
txtShowLink = 'toon';
txtCancel='Annuleer';
txtClose='Sluit';
txtPreview='Voorschouwing';
txtChangeLinktext = 'Verander linktekst';
clickedLi=-1;
trackLi=0;
trackUl=0;
fixinglink=0;
function savedDiff(li)
{
//alert(li);
if (xmlhttp.readyState != 4) return;
//alert(xmlhttp.responseText);
//alert('sj');
document.getElementById('hiddeneditform' + clickedLi).innerHTML = xmlhttp.responseText;
//if (document.getElementById('hiddeneditform' + clickedLi).getElementById('editform')) alert('ERROR');
//document.getElementById('diff' + clickedLi).innerHTML = document.getElementById('hiddeneditform' + clickedLi).getElementById('bodyContent');
//document.getElementById('hiddeneditform' + clickedLi).style.display='block';
//°lert('sj');
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
document.getElementById('diff' + clickedLi).innerHTML =
'<div style="border:1px solid black;padding:.5em">' + xmlDoc.getElementById('bodyContent').innerHTML
+ '</div>';
document.getElementById('diff' + clickedLi).innerHTML += '<input type=button value="' + txtClose + '" onClick="javascript:cancelFix(' + clickedLi + ')">';
//alert('sj2');
fixinglink=0;
// document.getElementById('hiddeneditform' + clickedLi).innerHTML = xmlH
}
function saveDiff(li)
{
clickedLi = li;
//alert(li);
params = 'wpSave=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpSave.value);
/*wpAntispam=
wpSection=
wpStarttime=20100910205931
wpEdittime=20100910145957
wpScrolltop=
wpAutoSummary=d41d8cd98f00b204e9800998ecf8427e
oldid=0
wpSummary=
wpMinoredit=1
wpWatchthis=1
wpSave=Pagina opslaan
wpPreview=Toon bewerking ter controle
wpDiff=Wijzigingen bekijken
wpEditToken=b27c9865f728da5be75268c9a705d1a3+\*/
//et=document.getElementById('editform' + clickedLi).wpEditToken.value.substring(0, document.getElementById('editform' + clickedLi).wpEditToken.value.length-2) + '+\\';
et=document.getElementById('editform' + clickedLi).wpEditToken.value;
//alert(et);
params += '&wpAutoSummary=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpAutoSummary.value);
params += '&oldid=' + encodeURIComponent(document.getElementById('editform' + clickedLi).oldid.value);
params += '&wpStarttime=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpStarttime.value);
params += '&wpEdittime=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpEdittime.value);
if (isredirect)
summ = txtFixDoubleRedirect + ' - ' + document.getElementById('editform' + clickedLi).wpTextbox1.value
else if (isdisambiguation)
summ = txtFixDisambiguation + ' - ' + document.getElementById(
'summ' + li).value
else
summ = txtFixLink;
params += '&wpSummary=' + encodeURIComponent(summ);
params += '&wpMinoredit=' + '1';
params += '&wpWatchthis=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpWatchthis.value);
params += '&wpTextbox1=' + encodeURIComponent(document.getElementById('editform' + clickedLi).wpTextbox1.value);
params += '&wpEditToken=' + encodeURIComponent(et);
/*
ptitle='Gebruiker:Zanaq/Test';
params = 'action=edit';
params += '&title=Gebruiker:Zanaq/Test';
params += '&summary=test';
params += '¬minor=1';
params += '&basetimestamp=' + document.getElementById('editform' + clickedLi).wpEdittime.value;
params += '&starttimestamp=' + document.getElementById('editform' + clickedLi).wpStarttime.value;;
params += '&text=' + document.getElementById('editform' + clickedLi).wpTextbox1.value;*/
//query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
//query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=parse&format=xml&text={{:' + wgTitle + '}}&title=' + wgTitle;
//params='action=parse&format=xml&title=' + wgTitle + '&text=' + wikiText;
query= document.getElementById('editform' + clickedLi).action;
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("POST", query, true);
xmlhttp.onreadystatechange = savedDiff;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//xmlhttp.setRequestHeader("Content-type", "multipart/form-data");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
function cancelFix(li)
{
document.getElementById('hiddeneditform' + li).innerHTML = '';
document.getElementById('diff' + li).innerHTML = '';
document.getElementById('fix' + li).style.display='inline';
fixinglink=0;
}
function showDiff()
{
if (xmlhttp.readyState != 4) return;
// a=xmlhttp.responseText.indexOf('<form id="editform"');
//b=xmlhttp.responseText.indexOf('</form>',a+1)+7;
ef = xmlhttp.responseText.replace('<form id="editform"', '<form id="editform' + clickedLi + '"');
//ef = xmlhttp.responseText.replace('name="editform"', 'name="editform' + clickedLi + '"');
document.getElementById('hiddeneditform' + clickedLi).innerHTML = ef;
document.getElementById('diff' + clickedLi).innerHTML =
'<div style=border-style:solid;border-width:1px id="wikiDiff">'
+ document.getElementById('wikiDiff').innerHTML
+ '<input type=button value="' + txtSavePage + '" onClick="javascript:saveDiff(' + clickedLi + ')">'
+ '<input type=button value="' + txtCancel + '" onClick="javascript:cancelFix(' + clickedLi + ')">'
+ '</div>';
// alert(xmlhttp.responseText);
document.getElementById('loading' + clickedLi).style.display='none';
}
function fixLinkOnFocus(id)
{
ta=document.getElementById(id);
a = ta.value.toUpperCase().indexOf('[[' + wgTitle.replace('_', ' ').toUpperCase() + '');
b = ta.value.indexOf(']]',a+1)+2;
if ((a > 0) && (b>0))
{
ta.selectionStart=a+2;
ta.selectionEnd=b-2;
}
}
function saveFix(id, n)
{
wt=document.getElementById('taa0--1').value;
for (i=0;i<n;i++)
{
t=document.getElementById('ta' + id + '-' + i).value;
a=(t.substring(0,3)=='...') ? 3 : 0;
b=(t.substring(t.length-3)=='...') ? t.length-3 : t.length;
wt+=t.substring(a,b) + document.getElementById('taa' + id + '-' + i).value;
}
document.getElementById('editform' + id).wpTextbox1.value = wt;
saveDiff(id);
}
function previewFix(id, n)
{
wt=document.getElementById('taa0--1').value;
for (i=0;i<n;i++)
{
t=document.getElementById('ta' + id + '-' + i).value;
a=(t.substring(0,3)=='...') ? 3 : 0;
b=(t.substring(t.length-3)=='...') ? t.length-3 : t.length;
wt+=t.substring(a,b) + document.getElementById('taa' + id + '-' + i).value;
}
document.getElementById('editform' + id).wpTextbox1.value = wt;
//alert(id);
//document.getElementById('editform' + clickedLi).wpTextbox1.value = '#REDIRECT ' + wikiText;
/* inputs = document.getElementById('hiddeneditform' + clickedLi).getElementsByTagName('input');
params=''
for (i=0;i<inputs.length;i++)
{
//document.editform.wpTextbox1.value += '\n' + inputs[i].name + '=' + inputs[i].value;
//params += inputs[i].name + '=' + inputs[i].value + '&';
}
*/
params = 'wpDiff=' + document.getElementById('editform' + clickedLi).wpDiff.value;
/*wpAntispam=
wpSection=
wpStarttime=20100910205931
wpEdittime=20100910145957
wpScrolltop=
wpAutoSummary=d41d8cd98f00b204e9800998ecf8427e
oldid=0
wpSummary=
wpMinoredit=1
wpWatchthis=1
wpSave=Pagina opslaan
wpPreview=Toon bewerking ter controle
wpDiff=Wijzigingen bekijken
wpEditToken=b27c9865f728da5be75268c9a705d1a3+\*/
params += '&wpEditToken=' + document.getElementById('editform' + clickedLi).wpEditToken.value;
params += '&oldid=' + document.getElementById('editform' + clickedLi).oldid.value;
params += '&wpStarttime=' + document.getElementById('editform' + clickedLi).wpStarttime.value;
params += '&wpEdittime=' + document.getElementById('editform' + clickedLi).wpEdittime.value;
params += '&wpTextbox1=' + document.getElementById('editform' + clickedLi).wpTextbox1.value;
//query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=parse&format=xml&text={{:' + wgTitle + '}}&title=' + wgTitle;
//params='action=parse&format=xml&title=' + wgTitle + '&text=' + wikiText;
query= document.getElementById('editform' + clickedLi).action;
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("POST", query, true);
xmlhttp.onreadystatechange = showDiff;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
function replaceLink(id, replaceText)
{
rt=replaceText;
ta=document.getElementById('ta' + id);
a = ta.value.toUpperCase().indexOf('[[' + wgTitle.replace('_', ' ').toUpperCase() + '')+2;
b = ta.value.indexOf(']]',a+1);
c = ta.value.indexOf('|',a+1);
if (c>-1 && c < b)
{
if (document.getElementById('chtxt' + clickedLi).value)
{
b = c;
}
} else {
if (!document.getElementById('chtxt' + clickedLi).value)
{
replaceText += '|' + ta.value.substring(a,b)
}
}
if ((a > -1) && (b >- 1))
{
ta.value = ta.value.substring(0,a) + replaceText + ta.value.substring(b)
document.getElementById('dab' + id).style.display='none';
sep = (document.getElementById(
'summ' + id.substring(0,id.indexOf('-'))
).value == '') ? '' : ', ';
document.getElementById(
'summ' + id.substring(0,id.indexOf('-'))
).value+= sep + '[[' + wgTitle.replace('_', ' ') + ']] -> [[' + rt + ']]';
ta.selectionStart=a;
ta.selectionEnd=a+replaceText.length;
ta.focus();
}
}
function fixLinkLoadForm()
{
if (xmlhttp.readyState != 4) return;
// alert(xmlhttp.responseText);
a=xmlhttp.responseText.indexOf('<form id="editform"');
b=xmlhttp.responseText.indexOf('</form>',a+1)+7;
ef = xmlhttp.responseText.substring(a,b).replace('<form id="editform"', '<form id="editform' + clickedLi + '"');
//ef = xmlhttp.responseText.substring(a,b).replace('name="editform"', 'name="editform' + clickedLi + '"');
document.getElementById('hiddeneditform' + clickedLi).innerHTML = ef;
//return;
var regexFindTemplates = RegExp('(' + redirectKeywords + ')','im');
editText = document.getElementById('editform' + clickedLi).wpTextbox1.value;
a= regexFindTemplates.exec(editText);
if ((a && !isredirect) || (!a && !isredirect))
{
//alert('no es redirect');
t=[editText]; //complete text
l=[]; //links
//p=[]; //end positions
lc=0;
//pc=0;
for (i=0;i<t.length;i++)
{
a = t[i].toUpperCase().indexOf('[[' + wgTitle.replace('_', ' ').toUpperCase());
b = t[i].indexOf(']]',a+1)+2;
//alert(a + '--' + b);
if ((a > -1) && (b>-1))
{
//p[i] = a+pc++;
t[1 + i] = t[i].substring(a,b);
l[lc++] = i+1;
t[2 + i] = t[i].substring(b);
t[i] = t[i].substring(0,a);
document.getElementById('diff' + clickedLi).innerHTML += t[i++].substring(a,b);
}
}
//document.getElementById('diff' + clickedLi).innerHTML += '---';
//document.getElementById('diff' + clickedLi).innerHTML +=
//q='';
a = (t[0].length < 50) ? 0 : t[0].length -50;
document.getElementById('diff' + clickedLi).innerHTML +=
'<textarea id=taa0--1 style=display:none>'
+ t[0].substring(0,a)
+ '</textarea>';
pta=t[0].substring(a);
dotsO=(a!=0) ? '...' : '';
//alert(l.length);
for (i=0;i<l.length;i++)
{
//a = (pta.value.length < 50) ? 0 : pta.value.length -50;
//aa=pta.value.substring(0,a);
//pta.value=pta.value.substring(a);
m= (t[l[i]+1].length > 100) ? 50 : Math.floor((t[l[i]+1].length)/2);
b = (t[l[i]+1].length < m) ? t[l[i]+1].length : m;
dotsC=(b < (t[l[i]+1].length-1)) ? '...' : '';
//alert(b +'---' + t[l[i]+1].length);
q =
'<textarea id=ta' + clickedLi + '-' + i + ' rows=4 onfocus="fixLinkOnFocus(\'ta' + clickedLi + '-' + i + '\')">'
+ dotsO + pta + t[l[i]] + t[l[i]+1].substring(0,b) + dotsC
+ '</textarea>';
q +=
'<textarea id=taa' + clickedLi + '-' + i + ' style=display:none>'
+ t[l[i]+1].substring(b)
+ '</textarea>';
pta='';
document.getElementById('diff' + clickedLi).innerHTML +=q;
//document.getElementById('ta' + clickedLi + '-' + 'i').value = t[l[i-1]] + t[l[i]] + t[l[i+1]];
//isredirect
if (true)//(!isredirect)
{
//alert(t.length);
//l=[]; //links
//t=wikiText];
a = wikiText.indexOf('[[');
q='';
while(a>-1)
{
b = wikiText.indexOf(']]',a+1);
if ((a > -1) && (b>-1))
{
lt=wikiText.substring(a+2,b);
c=lt.indexOf('|');
lt=(c>0) ? lt.substring(0,c-1) : lt;
d=lt.indexOf(':',1);
if ((d > 5) || (d < 1)) //ugly workaround for interwiki's
{
q += '<input type=button value="' + lt + '" onClick="javascript:replaceLink(\'' + clickedLi + '-' + i + '\', \'' + lt + '\')">'
}
}
a = wikiText.indexOf('[[',b+1);
}
document.getElementById('diff' + clickedLi).innerHTML += '<div id=dab' + clickedLi + '-' + i + ' style=margin-bottom:.5em>' + q +
'<span style=white-space:nowrap><input type=checkbox id=chtxt' + clickedLi + ' value="' + lt + '"> ' + txtChangeLinktext +'</span></div>';
}
}
document.getElementById('diff' + clickedLi).innerHTML += '<input type=input id=summ' + clickedLi + ' maxlength="200" size="60" >';
document.getElementById('diff' + clickedLi).innerHTML +=
'<input type=button value="' + txtSavePage + '" onClick="javascript:saveFix(' + clickedLi + ',' + l.length + ')" style=display:none>' //always preview until tested well
+'<input type=button value="' + txtPreview + '" onClick="javascript:previewFix(' + clickedLi + ',' + l.length + ')">'
+'<input type=button value="' + txtCancel + '" onClick="javascript:cancelFix(' + clickedLi + ')">';
// document.getElementById('ta' + clickedLi + '-' + i).selectionStart =t[l[i]-1].substring(a).length+5;
// document.getElementById('ta' + clickedLi + '-' + i).selectionEnd =t[l[i]-1].substring(a).length + t[l[i]].length+1;
document.getElementById('ta' + clickedLi + '-0').focus();
document.getElementById('loading' + clickedLi).style.display='none';
} else {
document.getElementById('editform' + clickedLi).wpTextbox1.value = '#REDIRECT ' + wikiText;
/* inputs = document.getElementById('hiddeneditform' + clickedLi).getElementsByTagName('input');
params=''
for (i=0;i<inputs.length;i++)
{
//document.editform.wpTextbox1.value += '\n' + inputs[i].name + '=' + inputs[i].value;
//params += inputs[i].name + '=' + inputs[i].value + '&';
}
*/
params = 'wpDiff=' + document.getElementById('editform' + clickedLi).wpDiff.value;
/*wpAntispam=
wpSection=
wpStarttime=20100910205931
wpEdittime=20100910145957
wpScrolltop=
wpAutoSummary=d41d8cd98f00b204e9800998ecf8427e
oldid=0
wpSummary=
wpMinoredit=1
wpWatchthis=1
wpSave=Pagina opslaan
wpPreview=Toon bewerking ter controle
wpDiff=Wijzigingen bekijken
wpEditToken=b27c9865f728da5be75268c9a705d1a3+\*/
params += '&wpEditToken=' + document.getElementById('editform' + clickedLi).wpEditToken.value;
params += '&oldid=' + document.getElementById('editform' + clickedLi).oldid.value;
params += '&wpStarttime=' + document.getElementById('editform' + clickedLi).wpStarttime.value;
params += '&wpEdittime=' + document.getElementById('editform' + clickedLi).wpEdittime.value;
params += '&wpTextbox1=' + document.getElementById('editform' + clickedLi).wpTextbox1.value;
//query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=parse&format=xml&text={{:' + wgTitle + '}}&title=' + wgTitle;
//params='action=parse&format=xml&title=' + wgTitle + '&text=' + wikiText;
query= document.getElementById('editform' + clickedLi).action;
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("POST", query, true);
xmlhttp.onreadystatechange = showDiff;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
}
function fixLink(li, title)
{
if (fixinglink)
{
alert('First save or cancel other fixes');
return;
}
fixinglink = 1;
clickedLi = li;
url='http://nl.wikipedia.org/w/index.php?title=' + title + '&action=edit';
document.getElementById('fix' + clickedLi).style.display='none';
document.getElementById('loading' + clickedLi).style.display='inline';
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = fixLinkLoadForm;
xmlhttp.send(null);
//alert(title);
}
//adds javascript links to a list
titles='';
function modifyList(id)
{
//alert(document.cookie);
l=document.getElementById(id);
l=l.getElementsByTagName('li');
for (i=0;i<l.length;i++)
{
span=l[i].getElementsByTagName('span')[0];
if (l[i].innerHTML.indexOf('</a> (' + txtRedirect + ') <span') > 0)
{
url=l[i].getElementsByTagName('a')[0].href;
title=url.substring(url.indexOf('?title=')+7, url.indexOf('&redirect='));
//l[i].innerHTML.replace('</a> (' + txtRedirect + ') <span', '</a> (<b>' + txtRedirect + '</b>) <span');
d = 'style=display:none';
e = '';
} else {
title=l[i].getElementsByTagName('a')[0].href.substring(wgServer.length + 6);
e = 'style=display:none';
d = '';
}
span.innerHTML = span.innerHTML.substring(0, span.innerHTML.length -1)
+ ' <a ' + d + ' href=\'javascript:openAjaxWhatLinksHere(' + trackLi + ',"'
+ encodeURIComponent(title) + '")\'> [' + txtShowLink + ']</a>'
+'<a ' + e + ' href="javascript:closeAjaxWhatLinksHere(' + trackLi
+ ')"> [' + txtHideLink
+ ']</a> <span id=loading' + trackLi + ' style=display:none>' + txtLoading + '</span>'
+ ' <a id=fix' + trackLi + ' href=\'javascript:fixLink(' + trackLi + ',"' + encodeURIComponent(title) + '")\'>[' + txtFix + ']</a>'
+ ' <a href="/w/index.php?title=' + title + '&action=edit">[' + txtEditTopLink + ']</a>'
+ ')';
span.getElementsByTagName('a')[0].innerHTML = '←';
//alert(l[i].innerHTML);
ul = l[i].getElementsByTagName('ul')[0]; //if there's already an ul, put it at the end.
if (ul) {
ulh = '<ul>' + ul.innerHTML + '</ul>';
l[i].removeChild(ul);
} else {
ulh = '';
}
l[i].innerHTML=
'<span id=li' + (trackLi) + '>' + l[i].innerHTML
+ '<span id="diff' + trackLi + '"></span><span style=display:none id="hiddeneditform' + trackLi + '"></span></span>' + ulh;
//document.getElementById('hiddeneditform' + trackLi).innerHTML = 'ajahjahjahj';//xmlhttp.responseText.substring(a,b);
trackLi++;
titles+='|' + title;
}
}
//User clicked hide
function closeAjaxWhatLinksHere(id)
{
li=document.getElementById('li' + id);
ul = li.getElementsByTagName('ul')[0];
li.removeChild(ul);
li.getElementsByTagName('span')[0].getElementsByTagName('a')[1].style.display='inline';
li.getElementsByTagName('span')[0].getElementsByTagName('a')[2].style.display='none';
}
//Http request complete: inject content
function insertAjaxWhatLinksHere()
{
if (xmlhttp.readyState != 4) return;
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
newlinks=xmlDoc.getElementById('mw-whatlinkshere-list');
if (newlinks)
{
document.getElementById('li' + clickedLi).innerHTML+='<ul id=ul' + trackUl + '>' + newlinks.innerHTML + '</ul>';
document.getElementById('li' + clickedLi).getElementsByTagName('span')[0].getElementsByTagName('a')[2].style.display='inline';
document.getElementById('li' + clickedLi).getElementsByTagName('span')[0].getElementsByTagName('span')[0].style.display='none';
modifyList('ul' + trackUl++);
} else {
document.getElementById('li' + clickedLi).getElementsByTagName('span')[0].innerHTML='';
}
}
//User clicked expand
function openAjaxWhatLinksHere(li, title)
{
clickedLi=li;
l=document.getElementById('mw-whatlinkshere-list').getElementsByTagName('li');
parameters= document.location.href.indexOf('&');
parameters=(parameters > 0) ? document.location.href.substring(parameters) : '';
url='/w/index.php?title=Speciaal:VerwijzingenNaarHier/' + title + parameters;
document.getElementById('li' + clickedLi).getElementsByTagName('span')[0].getElementsByTagName('a')[1].style.display='none';
document.getElementById('li' + clickedLi).getElementsByTagName('span')[0].getElementsByTagName('span')[0].style.display='inline';
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = insertAjaxWhatLinksHere;
xmlhttp.send(null);
}
//add Ajax controls to the list
function addAjaxWhatLinksHere()
{
modifyList('mw-whatlinkshere-list');
}
function showPages()
{
if (xmlhttp.readyState != 4) return;
pageTitle=document.getElementById('contentSub').getElementsByTagName('a')[0].href
pageTitle=pageTitle.substring(pageTitle.indexOf('=')+1, pageTitle.indexOf('&'));
sm=document.getElementById('statusMsg');
sm.innerHTML+='.....';
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
//alert(xmlDoc.getElementsByTagName('rev')[0].childNodes[0].nodeValue);
pages=xmlDoc.getElementsByTagName('page')
ul = document.getElementById('bodyContent').getElementsByTagName('ul')[0]
ul.innerHTML='';
for (i=0;i<pages.length;i++)
{
ul.innerHTML+='<li>'+pages[i].getAttribute("title") + '-';
pageText = pages[i].getElementsByTagName('rev')[0].childNodes[0].nodeValue;
//ul.innerHTML+='<br>'+pageText;
//var regexFindLink = RegExp('(\\[\\[' + pages[i].getAttribute("title") + '\\]\\])','im');
var regexFindLink = RegExp('\\[\\['+ pageTitle + '\\]\\]','im');
a = regexFindLink.exec(xmlhttp.responseText);
ul.innerHTML+=' -' + pageText.substring(pageText.indexOf(a[0])-100,pageText.indexOf(a[0])+100);
ul.innerHTML+=' -' + a[0];
}
}
function loadPages()
{
query='http://nl.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles=' + titles.substring(1);
document.getElementById('statusMsg').innerHTML=txtLoading;
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("GET", query, true);
xmlhttp.onreadystatechange = showPages;
xmlhttp.send(null);
}
function showDisamb()
{
document.getElementById('showDisamb').style.display='none';
document.getElementById('hideDisamb').style.display='inline';
document.getElementById('dContent').style.display='inline';
}
function hideDisamb()
{
document.getElementById('showDisamb').style.display='inline';
document.getElementById('hideDisamb').style.display='none';
document.getElementById('dContent').style.display='none';
}
function insertControls2()
{
if (xmlhttp.readyState != 4) return;
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
//alert(xmlhttp.responseText);
//alert(xmlDoc.getElementsByTagName('rev')[0].childNodes[0].nodeValue);
html=xmlDoc.getElementsByTagName('text')[0].childNodes[0].nodeValue;
document.getElementById('dContent').innerHTML=html;
if (isredirect)
{
document.getElementById('dContent').innerHTML =
'<img src="http://bits.wikimedia.org/skins-1.5/common/images/redirectltr.png" alt="#REDIRECT "><span class="redirectText">'
+ document.getElementById('dContent').getElementsByTagName('p')[0].innerHTML
+ '</span>';
}
document.getElementById('statusMsg').innerHTML='';
}
//Displays if the page is a disambiguation page
isdisambiguation=false;
isredirect=false;
wikiText='';
function insertControls()
{
if (xmlhttp.readyState != 4) return;
var regexFindTemplates = RegExp('\\{\\{(' + disambiguationTemplates + ')(.*)\\}\\}','im');
a = regexFindTemplates.exec(xmlhttp.responseText);
if (a)
{
isdisambiguation=true;
isredirect=false;
txtPageType=txtDisambiguation;
} else {
var regexFindTemplates = RegExp('(' + redirectKeywords + ')','im');
a = regexFindTemplates.exec(xmlhttp.responseText);
if (a)
{
isredirect=true;
isdisambiguation=false;
//alert('1');
txtPageType=txtRedirect;
} else {
// addAjaxWhatLinksHere();
//addOnloadHook(addAjaxWhatLinksHere);
// window.addEventListener("DOMContentLoaded", addAjaxWhatLinksHere, false);
return;
}
}
//addOnloadHook(addAjaxWhatLinksHere);
//window.addEventListener("DOMContentLoaded", addAjaxWhatLinksHere, false);
//create a fieldset for the disambiguator/redirect fixer
cs=document.getElementById('contentSub');
cs.innerHTML += ' (' + txtPageType + ')';
bc = document.getElementById('bodyContent');
y = bc.getElementsByTagName('fieldset')[1];
newNode = document.createElement("fieldset");
newNode.innerHTML =
'<legend>' + txtFix + ' ' + txtPageType
//+ '<a href=\'javascript:loadPages()\'> [+]</a>'
+ ' <a id=showDisamb href=\'javascript:showDisamb()\'>[' + txtShowLink + ']</a>'
+ '<a id=hideDisamb style=display:none href=\'javascript:hideDisamb()\'>[' + txtHideLink + ']</a>'
+ '</legend><span id=statusMsg style=display:none></span><div id=dContent style=display:none></div>';
bc.insertBefore(newNode,y);
//parse the wikitext of the disambiguation page/redirect
wikiText = xmlhttp.responseText.replace(regexFindTemplates,'').trim();
//alert(wikiText);
//query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=parse&format=xml&text={{:' + wgTitle + '}}&title=' + wgTitle;
params='action=parse&format=xml&title=' + wgTitle + '&text=' + wikiText;
query= mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
document.getElementById('statusMsg').innerHTML=txtLoading;
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("POST", query, true);
xmlhttp.onreadystatechange = insertControls2;
//xmlhttp.send(null);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
//Requests if the page is a disambiguation page
function isDisambiguation()
{
//document.getElementById('bodyContent').innerHTML='<iframe src="" id=k>dsads</iframe>';
//document.getElementById('k').contentDocument.innerHTML='dhasjkhasjk';
title=document.getElementById('contentSub').getElementsByTagName('a')[0].href;
title=title.substring(title.indexOf('=')+1, title.indexOf('&'));
wgTitle = title; // <-- modify global wikipedia variable
url=mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(title) + '&action=raw';
xmlhttp = sajax_init_object();
if (!xmlhttp) return;
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = insertControls;
xmlhttp.send(null);
}
if (wgCanonicalSpecialPageName=='Whatlinkshere')
{
window.addEventListener("DOMContentLoaded", isDisambiguation, false);
window.addEventListener("DOMContentLoaded", addAjaxWhatLinksHere, false);
}
//</nowiki>