User:Splarka/monobook.js

From Wikipedia, the free encyclopedia

Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.

If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Zocky/SearchBox.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

function main() {
  addRevert();
  setEditForm();
};

function addRevert() {
    if(!queryString("diff")) return;
	
	var xpath = "/html/body/div/div[1]/div/div/table[1]/tbody/tr[1]/td[1]/strong/a";
	
	if (!document.evaluate) return;
        var result = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);
   
        var xname1 = "/html/body/div/div[1]/div/div/table/tbody/tr[1]/td[1]/a[1]"
        var name1 = document.evaluate(xname1, document, null, XPathResult.ANY_TYPE, null).iterateNext().textContent;
        var xname2 = "/html/body/div/div[1]/div/div/table/tbody/tr[1]/td[2]/a[1]"
        var name2 = document.evaluate(xname2, document, null, XPathResult.ANY_TYPE, null).iterateNext().textContent;

	var link = result.iterateNext();
	var revertLink = document.createElement("a");
	
        var summaryText = "Reverted edit of [[Special:Contributions/" + name2 + "|" + name2 + "]] to previous one by " + name1

	revertLink.textContent = "Auto-Revert";
	revertLink.href = link.href + "&action=edit&setsubmit=wpSave&setsummary=" + summaryText + "&setwatch=0";
	
	var space = insertAfter(link.parentNode, document.createTextNode(" ("), link);
	insertAfter(link.parentNode, revertLink, space);
	insertAfter(link.parentNode, document.createTextNode(")"), revertLink);
};

function insertAfter(parent, node, referenceNode) {
    if(referenceNode.nextSibling) {
        return parent.insertBefore(node, referenceNode.nextSibling);
    } else {
        return parent.appendChild(node);
    }
}

function setEditForm() {
	var editform = document.getElementById("editform");
	if (!editform) return;
	
	var summaryText = queryString('setsummary');
	if (summaryText) {
		var summary = document.getElementsByName("wpSummary")[0];
		if (summary) summary.value = summaryText;
	}
	
	var setMinor = queryString('setminor');
	if (setMinor) {
		var minor = document.getElementById("wpMinoredit");
		if (minor) minor.checked = (setMinor == '1');
	}
	
	var setWatch = queryString('setwatch');
	if (setWatch) {
		var watch = document.getElementById("wpWatchthis");
		if (watch) watch.checked = (setWatch == '1');
	}

	var setSubmit = queryString('setsubmit');
	if (setSubmit) {
		var btn = document.getElementById(setSubmit);
	
		if (document.getElementById("editform") && btn) {
			btn.textContent += " (auto clicking...)";
			btn.click();
		}
	}
};

function queryString(p) {
	var re = RegExp('[&?]' + p + '=([^&]*)');
  
	var matches;
  
	if (matches = re.exec(document.location)) {
		try { 
			return decodeURI(matches[1]);
		} catch (e) {
		}
	}
  
	return null;
};

window.addEventListener("load", main, false);