MediaWiki talk:Common.js

I'm suggesting we add the following code to this page, to enable AJAX auto-refreshing to the Recent Changes for all users. It would greatly help the vandal fighters and recent changes patrollers:


 * ajaxPages = new Array("Special:RecentChanges");


 * function setCookie(c_name,value,expiredays) {
 * var exdate=new Date
 * exdate.setDate(exdate.getDate+expiredays)
 * document.cookie=c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString)
 * }


 * function getCookie(c_name) {
 * if (document.cookie.length>0) {
 * c_start=document.cookie.indexOf(c_name + "=")
 * if (c_start!=-1) {
 * c_start=c_start + c_name.length+1
 * c_end=document.cookie.indexOf(";",c_start)
 * if (c_end==-1) c_end=document.cookie.length
 * return unescape(document.cookie.substring(c_start,c_end))
 * }
 * }
 * return ""
 * }


 * function getXmlHttpRequestObject {
 * if (window.XMLHttpRequest) {
 * return new XMLHttpRequest; //Not Internet Explorer
 * } else if(window.ActiveXObject) {
 * return new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
 * } else {
 * //fail silently
 * }
 * }
 * getRCDataRO = getXmlHttpRequestObject;
 * var cr = new RegExp("\r", "gm");
 * var lf = new RegExp("\n", "gm");
 * var endText = new RegExp(' [\t\s]*?[\t\s]*? ', "mi");
 * var rcTimer;
 * var rcRefresh = 60000;
 * function preloadAJAXRC {
 * if (skin == "monaco") {
 * s = 1;
 * } else {
 * s = 0;
 * }
 * ajaxRCCookie = (getCookie("ajaxload-"+wgPageName)=="on") ? true:false;
 * document.getElementsByTagName("h1")[0].innerHTML += ' Enable Recent Changes Auto-Refresher ';
 * document.getElementById("ajaxRCtoggle").checked = ajaxRCCookie;
 * if (getCookie("ajaxload-"+wgPageName)=="on") loadRCData;
 * }


 * function toggleRC {
 * if (document.getElementById("ajaxRCtoggle").checked == true) {
 * setCookie("ajaxload-"+wgPageName, "on", 30);
 * loadRCData;
 * } else {
 * setCookie("ajaxload-"+wgPageName, "off", 30);
 * clearTimeout(rcTimer);
 * }
 * }


 * function loadRCData {
 * if (getRCDataRO.readyState == 4 || getRCDataRO.readyState == 0) {
 * if (location.href.indexOf("/wiki/")) {
 * rcURL = "http://" + location.hostname + "/wiki/" + wgPageName + location.search;
 * } else {
 * rcURL = "http://" + location.hostname + "/" + wgPageName + location.search;
 * }
 * getRCDataRO.open("GET", rcURL, true);
 * getRCDataRO.onreadystatechange = parseRCdata;
 * getRCDataRO.send(null);
 * }
 * }


 * function parseRCdata {
 * if (getRCDataRO.readyState == 4) {
 * textFilter = new RegExp(' .*? [\t\s]*?[\t\s]*? ', "i");
 * rawRCdata = getRCDataRO.responseText.replace(cr, "").replace(lf, "");
 * filteredRCdata = textFilter.exec(rawRCdata);
 * updatedText = filteredRCdata[0].replace(' ', "").replace(endText, "");
 * document.getElementById("bodyContent").innerHTML = updatedText;
 * rcTimer = setTimeout("loadRCData;", rcRefresh);
 * }
 * }


 * for (x in ajaxPages) {
 * if (wgPageName == ajaxPages[x]) addOnloadHook(preloadAJAXRC);
 * }