MediaWiki:Common.js

importArticles({   type: 'script',    articles: [        'u:dev:AjaxRC/code.js',        'u:dev:PurgeButton/code.js',        'u:dev:Standard_Edit_Summary/code.js',         'u:dev:UserTags/code.js',          'u:dev:EditIntroButton/code.js',          'u:dev:AjaxRC/code.js',      ] });

// AUTO-REFRESH RECENT CHANGES AND WIKI-ACTIVITY AjaxRCRefreshText = 'Auto-refresh'; AjaxRCRefreshHoverText = 'Automatically refresh the page'; ajaxPages = ["Special:RecentChanges", "Special:WikiActivity"]; // END AUTO-REFRESH

/* Username replace feature * Inserts viewing user's name into * Put text inside the spans to be viewed by logged out users * Originally by Splarka, then by Spang, * This (jQuery) version by wikia:User:Joeyaa, written to be backwards compatible */ if (wgUserName != 'null') { $('.insertusername').html(wgUserName); }

function onloadhookcustom { var replace = document.getElementById("JRChatReplace"); if (null !== replace) { replace.innerHTML=' '; if (window.attachEvent) window.attachEvent("onbeforeunload",confirmexitjrchat); else window.onbeforeunload = confirmexitjrchat; }	//alert(document.getElementById("JRChatReplace").innerHTML); } if (window.addEventListener) window.addEventListener("load",onloadhookcustom,false); else if (window.attachEvent) window.attachEvent("onload",onloadhookcustom);

// Create the "dev" namespace if it doesn't exist already: window.dev = window.dev || {}; window.UserTagsJS = { modules: {}, tags: {}, oasisPlaceBefore: '' }; importArticle({type:'script', article:'w:c:dev:UserTags/code.js'});

// see documentation and fix //UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop', 'rollback', 'bannedfromchat'];

// ************************************************** // Experimental javascript countdown timer (Splarka) // Version 0.0.3 // ************************************************** // // Usage example: // //  Only January 01 2007 00:00:00 PST until New years. // //  Javascript disabled.

function updatetimer(i) { var now = new Date; var then = timers[i].eventdate; var 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 = 'T plus '; }

// 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 var diffing = Math.floor((then.getTime - now.getTime) / 1000); if (diffing < 0) { timers[i].firstChild.nodeValue = 'Timer has expired'; } else { 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 j 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 k in timers) { timers[k].eventdate = new Date(timers[k].firstChild.nodeValue); updatetimer(k); //start it up   } } addOnloadHook(checktimers);

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