User:Gary/wikicup viewer.js

/*	Wikicup Viewer TODO Highlight cells based on who has the most for each type. function wikicupSorter {	if (mw.config.get('wgPageName') != 'Wikipedia:WikiCup') return false;

mw.util.addCSS('.wikicup-failing td { background-color: #fee; }\		.wikicup-passing td { background-color: #efe; }\		.wikicup-self td { background-color: #ffe; }\		.key-table { float: left; }\		.viewer-information { float: left; margin-left: 2.5em; background-color: #eee; padding: 10px; }\		.viewer-information-header { font-weight: bold; font-size: 1.25em; }\	'); // Script might be broken during the transition periods between rounds var today = new Date; var thisYear = today.getFullYear; // Round 1 var topContestants = 64; var topWildcards = 0; function setCutoff(date, contestants, wildcards) {		if (today >= new Date(thisYear + '-' + date)) topContestants = contestants, topWildcards = wildcards; }	setCutoff('03-01', 2, 16); // Round 2 setCutoff('05-01', 2, 8); // Round 3 setCutoff('07-01', 2, 4); // Round 4 setCutoff('09-01', 1, 0); // Round 5 var score = $('.headerSort[abbr=Score]').click.click; var username = mw.config.get('wgUserName'); // Self: #ffe, passing: #efe, failing: #fee score.each(function	{		var contestantCount = 0;		$(this).parent.parent.next.children.each(function {			var contestant = $(this); contestant.addClass('wikicup-contestant'); if (contestant.text.match(username)) contestant.addClass('wikicup-self'); if (contestantCount < topContestants) contestant.addClass('wikicup-passing'); // Passing else contestant.addClass('wikicup-failing'); // Failing

contestantCount++; });	});

// Now do the wildcards var failingScores = []; $('.wikicup-failing').each(function	{		failingScores.push([$(this), $(this).children(':last').text]);	});

// Sort failing scores by score failingScores.sort(function (a, b)	{		if (parseInt(a[1]) < parseInt(b[1])) return 1;		else if (parseInt(a[1]) == parseInt(b[1])) return 0;		else return -1;	}); var wildcards = failingScores.slice(0, topWildcards); var minWildcardScore; if (wildcards.length >= 1) minWildcardScore = parseInt(wildcards[wildcards.length - 1][1]); else minWildcardScore = 'Unknown'; for (var i = 0; i < wildcards.length; i++) {		wildcards[i][0].addClass('wikicup-passing'); }	/*		Extra data to add next to the Key for the page */	var keyTable = $('#Key').parent.next; keyTable.addClass('key-table'); keyTable.after(' WikiCup Viewer information  Minimum score required as a wildcard: ' + minWildcardScore + ' points  '); }

addOnloadHook(wikicupSorter); // addOnloadHook necessary to allow table to be sortable first