|
|
Line 355: |
Line 355: |
| return node; | | return node; |
| } | | } |
| /*
| |
|
| |
| /************/
| |
| // addOnloadHook( createNavigationBarToggleButton );
| |
|
| |
| // Code courtesy of pcj of WoWWiki.
| |
| // This is a modified version of the WoWWiki site version, in that it is designed for global.js use.
| |
|
| |
| // Code adds a checkbox at the top of the Special:RecentChanges list, next to the header.
| |
| // Ticking it sets a cookie (should be individual to wikis) and starts updating the RC list.
| |
| // This occurs silently every 60 seconds without a full page reload occuring.
| |
|
| |
| 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('</div>[\t\s]*?<!-- end content -->[\t\s]*?<div class="visualClear">', "mi");
| |
| var rcTimer;
| |
| var rcRefresh = 60000;
| |
| function preloadAJAXRC() {
| |
| s = 0;
| |
| ajaxRCCookie = getCookie("ajaxRC")=="on" ? true:false;
| |
| document.getElementsByTagName("h1")[s].innerHTML += ' <span style="font-size: xx-small; border-bottom: 1px dotted; cursor:help;" title="Enable auto-refreshing recent changes">AUTO-REFRESH:</span><input type="checkbox" id="ajaxRCtoggle" onClick="toggleRC();">';
| |
| document.getElementById("ajaxRCtoggle").checked = ajaxRCCookie;
| |
| if (getCookie("ajaxRC")=="on") loadRCData();
| |
| }
| |
|
| |
| function toggleRC() {
| |
| if (document.getElementById("ajaxRCtoggle").checked == true) {
| |
| setCookie("ajaxRC", "on", 30);
| |
| loadRCData();
| |
| } else {
| |
| setCookie("ajaxRC", "off", 30);
| |
| clearTimeout(rcTimer);
| |
| }
| |
| }
| |
|
| |
| function loadRCData() {
| |
| if (getRCDataRO.readyState == 4 || getRCDataRO.readyState == 0) {
| |
| if (location.href.indexOf("/")) {
| |
| rcURL = "http://" + location.hostname + "/Special:RecentChanges" + location.search;
| |
| } else {
| |
| rcURL = "http://" + location.hostname + "/Special:RecentChanges" + location.search;
| |
| }
| |
| getRCDataRO.open("GET", rcURL, true);
| |
| getRCDataRO.onreadystatechange = parseRCdata;
| |
| getRCDataRO.send(null);
| |
| }
| |
| }
| |
|
| |
| function parseRCdata() {
| |
| if (getRCDataRO.readyState == 4) {
| |
| textFilter = new RegExp('<div id="bodyContent">.*?</div>[\t\s]*?<!-- end content -->[\t\s]*?<div class="visualClear">', "i");
| |
| rawRCdata = getRCDataRO.responseText.replace(cr, "").replace(lf, "");
| |
| filteredRCdata = textFilter.exec(rawRCdata);
| |
| updatedText = filteredRCdata[0].replace('<div id="bodyContent">', "").replace(endText, "");
| |
| document.getElementById("bodyContent").innerHTML = updatedText;
| |
| rcTimer = setTimeout("loadRCData();", rcRefresh);
| |
| }
| |
| }
| |
|
| |
| if (wgPageName == "Special:RecentChanges") addOnloadHook(preloadAJAXRC);
| |