$(document).ready(AIV);
var AIVpageName = 'Wikipedia:Administrator_intervention_against_vandalism';
var section = '1';
var vandal;
var reason;
var username;
function addlilinkAIV(url, name, id){
mw.util.addPortletLink( 'p-cactions', url, name, id, null, null );
}
function AIV(){
if (document.title.indexOf("User talk:") != -1){
username = encodeURIComponent( mw.config.get('wgTitle') );
var test = username.split('.');
if(test[3]) {
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report IP', 'td-report');
}
else {
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report', 'td-report');
}
}
if (document.title.indexOf("User contributions") != -1){
username = location.href.split('/')[5];
if(username == undefined || username == ""){
//if this is the case, then something is up
if(location.href.indexOf("&target=")){
//it looks like we came here from a target link, lets just take the username from that
username = location.href.split('=')[2];
}
}
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report', 'td-report');
}
}
function AIVandal(vandalU){
vandal = vandalU;
if(vandal == document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML){
alert('You don\'t want to report yourself, do you?');
return;
}
reason = prompt('Reason?:');
if(!reason)
return;
document.getElementById('bodyContent').innerHTML = 'Please wait' + '...';
document.getElementById('bodyContent').innerHTML += '<br />Grabbing page...';
$.ajax({
type: 'GET',
url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&prop=info|revisions&format=xml&intoken=edit&rvprop=content&titles=' + AIVpageName + '&rvsection=' + section,
dataType: "xml",
success: function(xml){
var pagetext = $(xml).find('rev').text();
var edittoken = $(xml).find('page').attr('edittoken');
PageReady(pagetext, edittoken);
},
error: function(){
document.getElementById('bodyContent').innerHTML += '<br />Error reading page: ' + AIVpageName;
}
});
}
function PageReady(pagetext, edittoken){
var x;
var myArray = pagetext.split(" ");
var add = true;
document.getElementById('bodyContent').innerHTML += '<br />Searching for existing report...';
for (x=0; x < myArray.length; x++)
{
var myArray2 = myArray[x].split(/\n/);
var y;
for (y=0; y < myArray2.length; y++ ){
if(myArray2[y] == '{{IPvandal|' + vandal + '}}' ||
myArray2[y] == '*{{IPvandal|' + vandal + '}}' ||
myArray2[y] == '{{vandal|' + vandal + '}}' ||
myArray2[y] == '*{{vandal|' + vandal + '}}'){
add = false;
}
}
}
if(add){
document.getElementById('bodyContent').innerHTML += '<br />No report found, adding...';
}
else{
//alert('CSD tag found');
document.getElementById('bodyContent').innerHTML += '<br />Report found, will not add...';
return;
}
//let's do something expiremntal, to see if it's an IP address
var test = username.split('.');
if(test[3]) {
pagetext += '\n*{{IPvandal|' + vandal + '}} - ' + reason + ' --~' + '~' + '~' + '~';
}
else {
pagetext += '\n*{{vandal|' + vandal + '}} - ' + reason + ' --~' + '~' + '~' + '~';
}
var params = {
action : 'edit',
title : AIVpageName,
section : section,
summary : 'Reporting [[Special:Contributions/' + vandal + '|' + vandal + ']] using [[WP:ARV|ARV 2.2]].',
minor : null,
text : pagetext,
token : edittoken
}
document.getElementById('bodyContent').innerHTML += '<br />Submitting form...';
var xmlhttp = sajax_init_object();
xmlhttp.overrideMimeType('application/json');
xmlhttp.open( 'POST' , mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php', true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send( AIVparams(params) );
}
function AIVparams( arr ) {
var resarr = Array();
for( var i in arr ) {
if( typeof arr[i] == 'undefined' ) {
continue;
}
var res;
if( arr[i] instanceof Array ){
var v = Array();
for(var j = 0; j < arr[i].length; ++j ) {
v[j] = encodeURIComponent( arr[i][j] );
}
res = v.join('|');
} else {
res = encodeURIComponent( arr[i] );
}
resarr.push( encodeURIComponent( i ) + '=' + res );
}
return resarr.join('&');
}