User:Loiseaulybre/aiv.js

//ARV 2.0 // - // XMLHttpRequest support // - if (document.implementation.createDocument) { var gml_xmlparser = new DOMParser; }

function gml_XMLParse(string) { if (document.implementation.createDocument) { return gml_xmlparser.parseFromString(string, "text/xml"); } else if (window.ActiveXObject) { var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM"); gml_xmldoc.async = "false"; ret = gml_xmldoc.loadXML(string); if (!ret) return null; return gml_xmldoc.documentElement; } return null; }

var gml_xmlhttp;

function HTTPClient { var gml_http; if(window.XMLHttpRequest) { gml_http = new XMLHttpRequest; } else if (window.ActiveXObject) { try { gml_http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { gml_http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { gml_http = false; }   }  }  return gml_http; } var pageName; var AIVpageName = 'Wikipedia:Administrator_intervention_against_vandalism'; var section = '1'; var vandal; var reason;

function addlilinkAIV(url, name, id){ var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.appendChild(na); tabs.appendChild(li); return li; }

function AIV{ if (document.title.indexOf("User talk:") != -1){ username = location.href.split(':')[2]; if(!username){ username = document.getElementsByTagName('h1')[0].innerHTML.split(':')[1]; }   if (username.indexOf("&action=edit") != -1){ //remove &action=edit from username, only happens when editing user talk username = username.split('&')[0]; }   else if (username.indexOf("&action=submit") != -1){ //remove &action=submit from username, only happens after giving user a warning. username = username.split('&')[0]; }   if (username.indexOf("#") != -1){ //this removes any ancor that could possibly be in the URL bar, where we fetch the username from. username = username.split('#')[0]; }   //if there is an & in there, lets get rid of it    if (username.indexOf("&") != -1){ username = username.split('&')[0]; }   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' + '...'; gml_xmlhttp = HTTPClient; if (!gml_xmlhttp) return; document.getElementById('bodyContent').innerHTML += ' Grabbing page...'; gml_xmlhttp.open('GET', 'http://en.wikipedia.org/w/index.php?title=' + AIVpageName + '&action=edit' + '&section=' + section + '', true); gml_xmlhttp.onreadystatechange = AIVMore; gml_xmlhttp.send(null); }

function AIVMore { if (gml_xmlhttp.readyState != 4){ document.getElementById('bodyContent').innerHTML += '.'; return } var form, newform, l;  // Insert the downloaded form in our current page, using // only hidden form inputs. doc = gml_XMLParse(gml_xmlhttp.responseText); form = doc.getElementById('editform');

var x; var t = form.wpTextbox1.value; myArray = t.split(" "); var add; add = true; document.getElementById('bodyContent').innerHTML += ' Searching for existing report...'; var test = "*"; for (x in myArray) {   myArray2 = myArray[x].split(/\n/); for (y in myArray2){ if(myArray2[y] == ''){ add = false; }     if(myArray2[y] == test){ add = false; }     if(myArray2[y] == ''){ add = false; }   }  }  if(add == true){ document.getElementById('bodyContent').innerHTML += ' No report found, adding...'; } else{ //alert('CSD tag found'); document.getElementById('bodyContent').innerHTML += ' 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]) { form.wpTextbox1.value += '* - ' + reason + ' --~' + '~' + '~' + '~'; }   else { form.wpTextbox1.value += '* - ' + reason + ' --~' + '~' + '~' + '~'; }

form.wpSummary.value = 'Reporting ' + vandal + ' using ARV 2.1.';

newform = document.createElement('form'); l = form.getElementsByTagName('textarea'); for (i = l.length; i--; ) { var t = document.createElement('input'); t.type = 'hidden'; t.name = l[i].name; t.value = l[i].value; newform.appendChild(t); } l = form.getElementsByTagName('input'); for (i = l.length; i--; ) { if (l[i].name == 'wpSummary') { l[i].value = 'Reporting ' + vandal + ' using ARV 2.1.'; } else if (l[i].name == 'wpMinoredit') { l[i].value = '1'; } else if (l[i].name == 'wpWatchthis') { if (!l[i].checked) continue; l[i].value = "on"; } else if (l[i].name == 'wpPreview') { continue; } else if (l[i].name == 'wpDiff') { continue; }   l[i].type = 'hidden'; newform.appendChild(l[i]); } newform.name = form.name; newform.method = form.method; newform.id = form.id; newform.action = form.action; document.getElementById('bodyContent').innerHTML += ' Submitting form...'; document.getElementById('bodyContent').appendChild(newform); // Submit the form newform.submit; }

$(AIV);