MediaWiki:Common.js

/** Archive edit tab disabling ************************************* * Disables the edit tab on old forum topic pages to stop new people bumping old topics. * Page can still be edited by going via the edit tab on the history etc, or by * typing the edit address manually. * By Spang * Monaco support by Uberfuzzy * Oasis support by Uberfuzzy */ if(wgNamespaceNumber == 110) { function disableOldForumEdit { if( typeof( enableOldForumEdit ) != 'undefined' && enableOldForumEdit ) { return; }	if( !document.getElementById('old-forum-warning') ) { return; }	if( skin == 'oasis' ) {		$("#WikiaPageHeader .wikia-menu-button li a:first").html('Archived').removeAttr('href' ); $('#WikiaPageHeader .wikia-button').html('Archived').removeAttr('href'); return; }	if( !document.getElementById('ca-edit') ) { return; }	var editLink = null; if( skin == 'monaco' ) {		editLink = document.getElementById('ca-edit'); }	else if( skin == 'monobook' ) {		editLink = document.getElementById('ca-edit').firstChild; }	else {		return; }	editLink.removeAttribute('href', 0); editLink.removeAttribute('title', 0); editLink.style.color = 'gray'; editLink.innerHTML = 'Archived'; $('span.editsection-upper').remove; } addOnloadHook( disableOldForumEdit ); }

//============================================================================= // IRC support // from http://dev.wikia.com/wiki/Freenode_IRC#Embedding_Wikia.27s_IRC_gateway //============================================================================= function onloadhookcustomirc { 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",onloadhookcustomirc,false); else if (window.attachEvent) window.attachEvent("onload",onloadhookcustomirc);

/* Auto Refresh */ AjaxRCRefreshText = 'Auto-refresh'; AjaxRCRefreshHoverText = 'Automatically refresh the page'; ajaxPages = ["Special:RecentChanges","Special:WikiActivity"]; importArticles({   type: 'script',    articles: [        // Test if an Element has a Certain Class        'MediaWiki:Common.js/elementClass.js',        "MediaWiki:Common.js/ElementTestClass.js",        //Display Timer        "MediaWiki:Common.js/displayTimer.js",        // Togglers (toggles the display of elements on a page)        'MediaWiki:Common.js/togglers.js',        //Floating Rail        "MediaWiki:FloatingRail.js",        // Ajax auto-refresh        "u:dev:AjaxRC/code.js",        // List all duplicate images        'w:dev:DupImageList/code.js',        // Display Clock        'w:dev:DisplayClock/code.js',        // ExternalImageLoader        'w:dev:ExternalImageLoader/code.js',        // SignatureCheck        'w:dev:SignatureCheck/code.js',        // Add "Edit Greeting" button to Message Wall        "u:dev:WallGreetingButton/code.js",        //Add a "Back To Top" button in the footer of the Oasis theme. "u:dev:BackToTopButton/code.js", //Add Show/Hide "u:dev:ShowHide/code.js", //Referencepopups "w:c:dev:ReferencePopups/code.js", /* Balloon pop-up references */ //Spoiler Alert "w:c:dev:SpoilerAlert/code.js", //Spoiler Alert 2 "w:c:dev:SpoilerAlert/code.2.js" ] });

importScriptURI('http://anime.wikia.com/index.php?title=MediaWiki:Anime-Common.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=86400&templates=expand'); // BEGINNING: JavaScript for placing the fair use rationale template inside the summary box on Special:Upload. Code by "wikipedia:User:Pinky49", created and coded specifically for Duty & Valour. function FairUseRationale { if((wgPageName == 'Special:Upload') && document.getElementById('wpDestFile').value == '') { document.getElementById('wpUploadDescription').value = ''; } } addOnloadHook(FairUseRationale); // ****** END: JavaScript for Special:Upload ******

// ************************************************** // 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 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 // **************************************************

addOnloadHook(function {$('head').append('' + $('#css').html + ' ');});

//Imports importArticles({   type: "script",    articles: [        "w:c:dev:EditcountTag/code.js",        "w:c:dev:UserTags/code.js"    ] });

//User tags window.UserTagsJS = { modules: {}, tags: { editmaster: { u:'JoJolion Head Editor', title:'This user is in charge of editting the JoJolion Articles' }, } }; UserTagsJS.modules.custom = { 'Death-dodger is you!': ['editmaster'], };

// insertusername function UserNameReplace { if(typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace || wgUserName == null) return; $("span.insertusername").html(wgUserName); } addOnloadHook(UserNameReplace);

/* =============  MOS box from Brickipedia ==============  This is the little box underneath the search bar and article tally, which has the Seal of Rassilon in it. ===============  Keep at end of common.js, but before any addOnloadHooks. ================ */ importScript('MediaWiki:Common.js/mosbox.js');