FANDOM


/* Any JavaScript here will be loaded for all users on every page load. */ //////////////////////////////////////////////////////////////// // ADVANCED AJAX AUTO-REFRESHING ARTICLES // Code courtesy of "pcj" of WoWWiki. ////////////////////////////////////////////////////////////////

ajaxPages = new Array("Special:RecentChanges", "Special:Watchlist", "Special:Log");

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]*?[\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 += ' AJAX:<input type="checkbox" id="ajaxRCtoggle" onClick="toggleRC();">'; 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); }


///////////////////////////////////////////////////////////////////////////////////////////////////////////

// END OF AJAX AUTO-REFRESH

///////////////////////////////////////////////////////////////////////////////////////////////////////////


// ************************************************** // Experimental javascript countdown timer (Splarka) // Version 0.0.3 // ************************************************** // // Usage example: // // Javascript disabled.

function updatetimer(i) {

 var now = new Date();
 var then = timers[i].eventdate;
 var diff = count=Math.floor((then.getTime()-now.getTime())/1000);
 // catch bad date strings
 if(isNaN(diff)) { 
   timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **' ;
   return;
 }
 // determine plus/minus
 if(diff<0) {
   diff = -diff;
   var tpm = ' ';
 } else {
   var tpm = ' ';
 }


 // calcuate the diff
 var left = (diff%60) + ' seconds';
   diff=Math.floor(diff/60);
 if(diff > 0) left = (diff%60) + ' minutes ' + left;
   diff=Math.floor(diff/60);
 if(diff > 0) left = (diff%24) + ' hours ' + left;
   diff=Math.floor(diff/24);
 if(diff > 0) left = diff + ' days ' + left
 timers[i].firstChild.nodeValue = tpm + left;
 // a setInterval() is more efficient, but calling setTimeout()
 // makes errors break the script rather than infinitely recurse
 timeouts[i] = setTimeout('updatetimer(' + i + ')',1000);

}

function checktimers() {

 //hide 'nocountdown' and show 'countdown'
 var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
 for(var i in nocountdowns) nocountdowns[i].style.display = 'none'
 var countdowns = getElementsByClassName(document, 'span', 'countdown');
 for(var i in countdowns) countdowns[i].style.display = 'inline'
 //set up global objects timers and timeouts.
 timers = getElementsByClassName(document, 'span', 'countdowndate');  //global
 timeouts = new Array(); // generic holder for the timeouts, global
 if(timers.length == 0) return;
 for(var i in timers) {
   timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
   updatetimer(i);  //start it up
 }

} addOnloadHook(checktimers);

// ************************************************** // - end - Experimental javascript countdown timer

// **************************************************

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.