Rocket League Esports Wiki
Advertisement

CSS and Javascript changes must comply with the wiki design rules.


Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences
/* Any JavaScript here will be loaded for all users on every page load. */

/* Converter the scheduled next game time into local timezone */
$(function () {
    var point = document.getElementsByClassName("getLocalTimeZoneOfThis");
    var i;
    for (i = 0; i < point.length; i++){
       var date = new Date(point[i].innerHTML);
    var month = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    var timeMonth = month[date.getMonth()];
    var weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
    var timeWeekday = weekday[date.getDay()];
    var minutes = date.getMinutes();
    var timeMinutes = "00";
    if (minutes < 10) timeMinutes = "0" + minutes.toString();
    else timeMinutes = minutes.toString();
    var hours = date.getHours();
    var timeHours = "00";
    if (hours < 10) timeHours = "0" + hours.toString();
    else timeHours = hours.toString();
    point[i].textContent = timeWeekday+" "+timeMonth+" "+date.getDate()+" "+timeHours+":"+timeMinutes;
    }
});

$(function () {
    var point = document.getElementsByClassName("TimeInLocal");
    var i;
    for (i = 0; i < point.length; i++){
      var original = point[i].innerHTML;
      var splitStr = original.split(',');
      var date = new Date(Date.UTC(splitStr[0],splitStr[1]-1,splitStr[2],splitStr[3],splitStr[4],0,0));
    var minutes = date.getMinutes();
    var timeMinutes = "00";
    if (minutes < 10) timeMinutes = "0" + minutes.toString();
    else timeMinutes = minutes.toString();
    var hours = date.getHours();
    var timeHours = "00";
    if (hours < 10) timeHours = "0" + hours.toString();
    else timeHours = hours.toString();
    point[i].textContent =timeHours+":"+timeMinutes;
    }
});

$(function() {
    var point = document.getElementsByClassName("DateInLocal");
    var i;
    for (i = 0; i < point.length; i++) {
      var original = point[i].innerHTML;
      var splitStr = original.split(',');
      var date = new Date(Date.UTC(splitStr[0],splitStr[1]-1,splitStr[2],splitStr[3],splitStr[4],0,0));
      var year = date.getFullYear();
      var month = date.getMonth();
      month = month + 1;
      var timeMonth = "00";
      if (month < 10) timeMonth = "0" + month.toString();
      else timeMonth = month.toString();
      var weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
      var timeWeekday = weekday[date.getDay()];
      var day = date.getDate();
      var timeDay = "00";
      if (day < 10) timeDay = "0" + day.toString();
      else timeDay = day.toString();
      point[i].textContent = timeWeekday + " " + year + "-" + timeMonth + "-" + timeDay;
    }
  }
);

$(function() {
    var point = document.getElementsByClassName("DateInLocalSB");
    var i;
    for (i = 0; i < point.length; i++) {
      var original = point[i].innerHTML;
      var splitStr = original.split(',');
      var date = new Date(Date.UTC(splitStr[0],splitStr[1]-1,splitStr[2],splitStr[3],splitStr[4],0,0));
      var year = date.getFullYear();
      var month = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
      var timeMonth = month[date.getMonth()];
      var weekday = ["Sunday","Monay","Tuesday","Wednesday","Thursday","Friday","Saturday"];
      var timeWeekday = weekday[date.getDay()];
      var day = date.getDate();
      var timeDay = "00";
      if (day < 10) timeDay = "0" + day.toString();
      else timeDay = day.toString();
      point[i].textContent = timeWeekday + " " + timeDay+ " " + timeMonth + " " + year;
    }
  }
);



/* Dynamic Tabs - Adapted from Liquipedia - http://wiki.teamliquid.net/dota2/MediaWiki:Common.js */
/* Tabs by FO-nTTaX */
$(document).ready (function() {
	$('div.tabs-dynamic ul.tabs li').click(
		function () {
			var i = $(this).index() + 1;
			$(this).parent().children('li').removeClass('active');
			$(this).addClass('active');
			$(this).parents().children('div.tabs-content').children('div').removeClass('active');
			$(this).parents().children('div.tabs-content').children('div.content' + i).addClass('active');
		}
	);
	$('div.tabs-dynamic').each(function(index) {
		var h = $(this).children('ul.tabs').children('li.active').index() + 1;
		$(this).children('div.tabs-content').children('div.content' + h).addClass('active');
	});
	var hash = location.hash.slice(1);
	if (hash.substring(0, 4) == 'tab-') {
		var hasharr = hash.split('-scrollto-');
		var tabno = hasharr[0].replace('tab-', '');
    		$('div.tabs-dynamic ul.tabs li').removeClass('active');
		$('div.tabs-dynamic ul.tabs li.tab' + tabno).addClass('active');
		$('div.tabs-dynamic div.tabs-content div').removeClass('active');
		$('div.tabs-dynamic div.tabs-content div.content' + tabno).addClass('active');
		if (hasharr.length == 2) {
			var scrollto = '#' + hasharr[1];
			setTimeout(function(){$(window).scrollTop($(scrollto).offset().top)}, 500);
		}
	}
});
/* Dynamic Tabs - END */

/* Bracket Highlighting - Adapted from Liquipedia - http://wiki.teamliquid.net/dota2/MediaWiki:Common.js */
var highlighted;
$.fn.justtext = function() {
	return $(this).clone().children().remove('div').end().text().trim();
};
var bracketGame;
$(document).ready(function() {
	$('.bracket-game').each( function() {
		if ($(this).find('.bracket-game-details').length > 0) {
			var margin = $(this).find(':first-child').height() - 6;
			$(this).prepend('<div class="icon" style="margin-top:' + margin + 'px;"></div>');
		}
	});
	$('.match-row').each( function() {
		if ($(this).find('.bracket-game-details').length > 0) {
			$(this).find('td:eq(2)').prepend('<div style="position:relative"><div class="match-row-icon"></div></div>');
		}
	});
	$('.match-row').hover(function () {
		$(this).addClass('bracket-hover');
		if ($(this).closest('.match-row').find('.bracket-game-details').length) {
			$(this).css('cursor', 'pointer');
		}
	},
	function () {
		$(this).removeClass('bracket-hover');
	});
	$('.bracket-team-top, .bracket-team-top-oldschool, .bracket-team-bottom, .bracket-team-bottom-oldschool, .bracket-game .icon').hover(function () {
		var t = $(this),
		    text = t.justtext();
		if ((text) && (text.toUpperCase() != 'BYE')) {
			highlighted = $('.bracket').find('.bracket-team-top, .bracket-team-bottom, .bracket-team-top-oldschool, .bracket-team-bottom-oldschool').filter(function () {
				return $(this).justtext() == text;
			});
			highlighted.css('background', '#cecece');
		}
		if (t.closest('.bracket-game').children('.bracket-game-details').length) {
			t.css('cursor', 'pointer');
		}
	},
	function() {
		if (highlighted != null)
			highlighted.css('background', '');
	});

	$('html').click(function () {
		if (bracketGame != null) {
			bracketGame.find('.bracket-game-details').toggle();
			bracketGame = null;
		}
	});

	$('.bracket-team-top, .bracket-team-bottom, .bracket-team-top-oldschool, .bracket-team-bottom-oldschool, .bracket-game .icon').click(
	function (event) {
		var bracket = $(this).closest('.bracket'),
			detailsHeight, detailsWidth, spaceOnTheRight;
		if (bracketGame != null) {
			bracketGame.children('.bracket-game-details').toggle();
			if (bracketGame[0] === $(this).closest('.bracket-game')[0]) {
				bracketGame = null;
				return;
			}
		}
		bracketGame = $(this).closest('.bracket-game');
		detailsHeight= bracketGame.children('.bracket-game-details').height();
 		detailsWidth = bracketGame.children('.bracket-game-details').width();
		
		bracketGame.children('.bracket-game-details').css('margin-top', -detailsHeight / 2);
		spaceOnTheRight = Math.max($(window).width(), bracket.offset().left + bracket.outerWidth()) - (bracketGame.offset().left + bracketGame.outerWidth());
		if (spaceOnTheRight < detailsWidth && bracketGame.offset().left > detailsWidth) {
			bracketGame.children('.bracket-game-details').css('margin-left', -detailsWidth - 1);
		} else {
			bracketGame.children('.bracket-game-details').css('margin-left', bracketGame.width());
		}
		bracketGame.children('.bracket-game-details').toggle();
		event.stopPropagation();
	});
	$('.match-row').click(function (event) {
		if (bracketGame != null) {
			bracketGame.find('.bracket-game-details').toggle();
			if (bracketGame[0] === $(this)[0]) {
				bracketGame = null;
				return;
			}
		}
		bracketGame = $(this);
		var height = bracketGame.find('.bracket-game-details').height();
		bracketGame.find('.bracket-game-details').css('margin-top', 3);
		bracketGame.find('.bracket-game-details').toggle();
		event.stopPropagation();
	});

	$('.bracket-game-details').click(function (event) {
		event.stopPropagation();
	});
});
/* End Bracket Highlighting */


    /** 
        Toggles the display of elements on a page 
        Author/contact: Austin Che http://openwetware.org/wiki/User:Austin_J._Che
        See http://openwetware.org/wiki/OpenWetWare:Toggle for examples and documentation
     */


// indexed array of toggler ids to array of associated toggle operations
// each operation is a two element array, the first being the type, the second a class name or array of elements
// operation types are strings like "_reset" or "" for the default toggle operation
var togglers = new Array();     
var allClasses = new Object(); // associative map of class names to page elements

function toggler(id)
{
    var toBeToggled = togglers[id];
    if (!toBeToggled)
        return;

    // if some element is in list more than once, it will be toggled multiple times
    for (var i = 0; i < toBeToggled.length; i++)
    {
        // get array of elements to operate on
        var toggles = toBeToggled[i][1];
        if (typeof(toggles) == "string")
        {
            if (toggles.charAt(0) == '-')
            {
                // treat as an element ID, not as class
                toggles = document.getElementById(toggles.substring(1));
                if (toggles)
                    toggles = new Array(toggles);
            }
            else
                toggles = allClasses[toggles];
        }
        if (!toggles || !toggles.length)
            continue;

        var op = toBeToggled[i][0]; // what the operation will be

        switch (op)
        {
            case "_reset":
                for (var j = 0; j < toggles.length; j++)
                    toggles[j].style.display = toggles[j]._toggle_original_display;
                break;
            case "_show":
                for (var j = 0; j < toggles.length; j++)
                    toggles[j].style.display = '';
                break;
            case "_hide":
                for (var j = 0; j < toggles.length; j++)
                    toggles[j].style.display = 'none';
                break;
            case "_slidehide":
                for (var j = 0; j < toggles.length; j++){
                    if (toggles[j].style.display != 'none'){
                        $(toggles[j]).animate({width: 'toggle'});
                    }
                    }
                break;
            case "_slideshow":
                for (var j = 0; j < toggles.length; j++){
                    if (toggles[j].style.display == 'none'){
                        $(toggles[j]).animate({width: 'toggle'});
                    }
                    }
                break;
            case "_expand":
                for (var j = 0; j < toggles.length; j++){
                    var bracketCr2 = $(toggles[j]).find('*.oldr2');
                    var bracketCr3 = $(toggles[j]).find('*.oldr3');
                    var bracketCr4 = $(toggles[j]).find('*.oldr4');
                    var bracketCr5 = $(toggles[j]).find('*.oldr5');
                    var bracketCr6 = $(toggles[j]).find('*.oldr6');
                    function distinguishCell(cell, oRound){
                        var strNClass = "test";
                        if($(cell).is('*[class*="bracket-cell"]')){
                           strNClass = "bracket-cell-r" + oRound.toString();
                        }
                        else if($(cell).is('*[class*="bracket-line-left-top"]')){
                           strNClass = "bracket-line-left-top-r" + oRound.toString();
                        }
                        else if($(cell).is('*[class*="bracket-line-left-mid"]')){
                           strNClass = "bracket-line-left-mid-r" + oRound.toString();
                        }
                        else if($(cell).is('*[class*="bracket-line-left-bot"]')){
                           strNClass = "bracket-line-left-bot-r" + oRound.toString();
                        }
                        else if($(cell).is('*[class*="bracket-line-right-top"]')){
                           strNClass = "bracket-line-right-top-r" + oRound.toString();
                        }
                        else if($(cell).is('*[class*="bracket-line-right-bot"]')){
                           strNClass = "bracket-line-right-bot-r" + oRound.toString();
                        }
                        cell.className = strNClass;
                    }
                    for (var k = 0; k < bracketCr2.length; k++){
                        distinguishCell(bracketCr2[k],2);
                    }
                    for (var k = 0; k < bracketCr3.length; k++){
                        distinguishCell(bracketCr3[k],3);
                    }
                    for (var k = 0; k < bracketCr4.length; k++){
                        distinguishCell(bracketCr4[k],4);
                    }
                    for (var k = 0; k < bracketCr5.length; k++){
                        distinguishCell(bracketCr5[k],5);
                    }
                    for (var k = 0; k < bracketCr6.length; k++){
                        distinguishCell(bracketCr6[k],6);
                    }
                    }
                break;
             case "_shrink":
                setTimeout(function(){togglerShrink(toggler)},200);
                function togglerShrink(toggler) {
                var smallest = 7;
                var smallestL = 7;
                for (var j = 0; j < toggles.length; j++){
                    var bracketCr2 = $(toggles[j]).find('*.bracket-cell-r2');
                    var bracketCr3 = $(toggles[j]).find('*.bracket-cell-r3');
                    var bracketCr4 = $(toggles[j]).find('*.bracket-cell-r4');
                    var bracketCr5 = $(toggles[j]).find('*.bracket-cell-r5');
                    var bracketCr6 = $(toggles[j]).find('*.bracket-cell-r6');
                    if(bracketCr2.length > 0 && smallest > 2){
                       smallest = 2;
                    }
                    else if(bracketCr3.length > 0 && smallest > 3){
                       smallest = 3;
                    }
                    else if(bracketCr4.length > 0 && smallest > 4){
                       smallest = 4;
                    }
                    else if(bracketCr5.length > 0 && smallest > 5){
                       smallest = 5;
                    }
                    else if(bracketCr6.length > 0 && smallest > 6){
                       smallest = 6;
                    }

                    var bllt2 = $(toggles[j]).find('*.bracket-line-left-top-r2');
                    var bllt3 = $(toggles[j]).find('*.bracket-line-left-top-r3');
                    var bllt4 = $(toggles[j]).find('*.bracket-line-left-top-r4');
                    var bllt5 = $(toggles[j]).find('*.bracket-line-left-top-r5');
                    var bllt6 = $(toggles[j]).find('*.bracket-line-left-top-r6');

                    if(bllt2.length > 0 && smallestL > 2){
                       smallestL = 2;
                    }
                    else if(bllt3.length > 0 && smallestL > 3){
                       smallestL = 3;
                    }
                    else if(bllt4.length > 0 && smallestL > 4){
                       smallestL = 4;
                    } 
                    else if(bllt5.length > 0 && smallestL > 5){
                       smallestL = 5;
                    }
                    else if(bllt6.length > 0 && smallestL > 6){
                       smallestL = 6;
                    }
                }
                for (var j = 0; j < toggles.length; j++){
                    var bracketCr2 = $(toggles[j]).find('*.bracket-cell-r2');
                    var bracketCr3 = $(toggles[j]).find('*.bracket-cell-r3');
                    var bracketCr4 = $(toggles[j]).find('*.bracket-cell-r4');
                    var bracketCr5 = $(toggles[j]).find('*.bracket-cell-r5');
                    var bracketCr6 = $(toggles[j]).find('*.bracket-cell-r6');

                    var bllt2 = $(toggles[j]).find('*.bracket-line-left-top-r2');
                    var bllm2 = $(toggles[j]).find('*.bracket-line-left-mid-r2');
                    var bllb2 = $(toggles[j]).find('*.bracket-line-left-bot-r2');
                    var blrt2 = $(toggles[j]).find('*.bracket-line-right-top-r2');
                    var blrb2 = $(toggles[j]).find('*.bracket-line-right-bot-r2');

                    var bllt3 = $(toggles[j]).find('*.bracket-line-left-top-r3');
                    var bllm3 = $(toggles[j]).find('*.bracket-line-left-mid-r3');
                    var bllb3 = $(toggles[j]).find('*.bracket-line-left-bot-r3');
                    var blrt3 = $(toggles[j]).find('*.bracket-line-right-top-r3');
                    var blrb3 = $(toggles[j]).find('*.bracket-line-right-bot-r3');

                    var bllt4 = $(toggles[j]).find('*.bracket-line-left-top-r4');
                    var bllm4 = $(toggles[j]).find('*.bracket-line-left-mid-r4');
                    var bllb4 = $(toggles[j]).find('*.bracket-line-left-bot-r4');
                    var blrt4 = $(toggles[j]).find('*.bracket-line-right-top-r4');
                    var blrb4 = $(toggles[j]).find('*.bracket-line-right-bot-r4');

                    var bllt5 = $(toggles[j]).find('*.bracket-line-left-top-r5');
                    var bllm5 = $(toggles[j]).find('*.bracket-line-left-mid-r5');
                    var bllb5 = $(toggles[j]).find('*.bracket-line-left-bot-r5');
                    var blrt5 = $(toggles[j]).find('*.bracket-line-right-top-r5');
                    var blrb5 = $(toggles[j]).find('*.bracket-line-right-bot-r5');
					
					for (var k = 0; k < bracketCr2.length; k++){
						var n = 3-smallest;
						var nClass = " bracket-cell-r" + n.toString();
						bracketCr2[k].className += nClass;
						$(bracketCr2[k]).removeClass("bracket-cell-r2");
						if($(bracketCr2[k]).is('*[class*="old"]')){
						}
						else{
							bracketCr2[k].className += " oldr2";
						}
					}
						for (var k = 0; k < bracketCr3.length; k++){
							var n = 4-smallest;
							var nClass = " bracket-cell-r" + n.toString();
							bracketCr3[k].className += nClass;
							$(bracketCr3[k]).removeClass("bracket-cell-r3");
							if($(bracketCr3[k]).is('*[class*="old"]')){
							}
							else{
								bracketCr3[k].className += " oldr3";
							}
						}
						for (var k = 0; k < bracketCr4.length; k++){
							var n = 5-smallest;
							var nClass = " bracket-cell-r" + n.toString();
							bracketCr4[k].className += nClass;
							$(bracketCr4[k]).removeClass("bracket-cell-r4");
							if($(bracketCr4[k]).is('*[class*="old"]')){
							}
							else{
								bracketCr4[k].className += " oldr4";
							}
						}
						for (var k = 0; k < bracketCr5.length; k++){
							var n = 6-smallest;
							var nClass = " bracket-cell-r" + n.toString();
							bracketCr5[k].className += nClass;
							$(bracketCr5[k]).removeClass("bracket-cell-r5");
							if($(bracketCr5[k]).is('*[class*="old"]')){
							}
							else{
								bracketCr5[k].className += " oldr5";
							}
						}
						for (var k = 0; k < bracketCr6.length; k++){
							var n = 7-smallest;
							var nClass = " bracket-cell-r" + n.toString();
							bracketCr6[k].className += nClass;
							$(bracketCr6[k]).removeClass("bracket-cell-r6");
							if($(bracketCr6[k]).is('*[class*="old"]')){
							}
							else{
								bracketCr6[k].className += " oldr6";
							}
						}
					for (var k = 0; k < bllt2.length; k++){
						var n = 3 - smallestL;
						var m1 = 2 * k;
						var m2 = 2 * k + 1;
                                                var nSt = " bracket-line-left-top-r" + n.toString();
                                                var nSm = " bracket-line-left-mid-r" + n.toString();
                                                var nSb = " bracket-line-left-bot-r" + n.toString();
                                                var nStr = " bracket-line-right-top-r" + n.toString();
                                                var nSbr = " bracket-line-right-bot-r" + n.toString();
						bllt2[k].className += nSt;
						bllm2[m1].className += nSm;
						bllm2[m2].className += nSm;
						bllb2[k].className += nSb;
						blrt2[k].className += nStr;
						blrb2[k].className += nSbr;
						$(bllt2[k]).removeClass("bracket-line-left-top-r2");
						$(bllm2[m1]).removeClass("bracket-line-left-mid-r2");
						$(bllm2[m2]).removeClass("bracket-line-left-mid-r2");
						$(bllb2[k]).removeClass("bracket-line-left-bot-r2");
						$(blrt2[k]).removeClass("bracket-line-right-top-r2");
						$(blrb2[k]).removeClass("bracket-line-right-bot-r2");
						if($(bllt2[k]).is('*[class*="old"]')){
						}
						else{
						   bllt2[k].className += " oldr2";
						   bllb2[k].className += " oldr2";
						   bllm2[m1].className += " oldr2";
						   bllm2[m2].className += " oldr2";
						   blrt2[k].className += " oldr2";
						   blrb2[k].className += " oldr2";
						}
					}
					for (var k = 0; k < bllt3.length; k++){
						var n = 4 - smallestL;
						var m1 = 2 * k;
						var m2 = 2 * k + 1;
                                                var nSt = " bracket-line-left-top-r" + n.toString();
                                                var nSm = " bracket-line-left-mid-r" + n.toString();
                                                var nSb = " bracket-line-left-bot-r" + n.toString();
                                                var nStr = " bracket-line-right-top-r" + n.toString();
                                                var nSbr = " bracket-line-right-bot-r" + n.toString();
						bllt3[k].className += nSt;
						bllm3[m1].className += nSm;
						bllm3[m2].className += nSm;
						bllb3[k].className += nSb;
						blrt3[k].className += nStr;
						blrb3[k].className += nSbr;
						$(bllt3[k]).removeClass("bracket-line-left-top-r3");
						$(bllm3[m1]).removeClass("bracket-line-left-mid-r3");
						$(bllm3[m2]).removeClass("bracket-line-left-mid-r3");
						$(bllb3[k]).removeClass("bracket-line-left-bot-r3");
						$(blrt3[k]).removeClass("bracket-line-right-top-r3");
						$(blrb3[k]).removeClass("bracket-line-right-bot-r3");
						if($(bllt3[k]).is('*[class*="old"]')){
						}
						else{
						   bllt3[k].className += " oldr3";
						   bllb3[k].className += " oldr3";
						   bllm3[m1].className += " oldr3";
						   bllm3[m2].className += " oldr3";
						   blrt3[k].className += " oldr3";
						   blrb3[k].className += " oldr3";
						}
					}
					for (var k = 0; k < bllt4.length; k++){
						var n = 5 - smallestL;
						var m1 = 2 * k;
						var m2 = 2 * k + 1;
                                                var nSt = " bracket-line-left-top-r" + n.toString();
                                                var nSm = " bracket-line-left-mid-r" + n.toString();
                                                var nSb = " bracket-line-left-bot-r" + n.toString();
                                                var nStr = " bracket-line-right-top-r" + n.toString();
                                                var nSbr = " bracket-line-right-bot-r" + n.toString();
						bllt4[k].className += nSt;
						bllm4[m1].className += nSm;
						bllm4[m2].className += nSm;
						bllb4[k].className += nSb;
						blrt4[k].className += nStr;
						blrb4[k].className += nSbr;
						$(bllt4[k]).removeClass("bracket-line-left-top-r4");
						$(bllm4[m1]).removeClass("bracket-line-left-mid-r4");
						$(bllm4[m2]).removeClass("bracket-line-left-mid-r4");
						$(bllb4[k]).removeClass("bracket-line-left-bot-r4");
						$(blrt4[k]).removeClass("bracket-line-right-top-r4");
						$(blrb4[k]).removeClass("bracket-line-right-bot-r4");
						if($(bllt4[k]).is('*[class*="old"]')){
						}
						else{
						   bllt4[k].className += " oldr4";
						   bllb4[k].className += " oldr4";
						   bllm4[m1].className += " oldr4";
						   bllm4[m2].className += " oldr4";
						   blrt4[k].className += " oldr4";
						   blrb4[k].className += " oldr4";
						}
					}
					for (var k = 0; k < bllt5.length; k++){
						var n = 6 - smallestL;
						var m1 = 2 * k;
						var m2 = 2 * k + 1;
                                                var nSt = " bracket-line-left-top-r" + n.toString();
                                                var nSm = " bracket-line-left-mid-r" + n.toString();
                                                var nSb = " bracket-line-left-bot-r" + n.toString();
                                                var nStr = " bracket-line-right-top-r" + n.toString();
                                                var nSbr = " bracket-line-right-bot-r" + n.toString();
						bllt5[k].className += nSt;
						bllm5[m1].className += nSm;
						bllm5[m2].className += nSm;
						bllb5[k].className += nSb;
						blrt5[k].className += nStr;
						blrb5[k].className += nSbr;
						$(bllt5[k]).removeClass("bracket-line-left-top-r5");
						$(bllm5[m1]).removeClass("bracket-line-left-mid-r5");
						$(bllm5[m2]).removeClass("bracket-line-left-mid-r5");
						$(bllb5[k]).removeClass("bracket-line-left-bot-r5");
						$(blrt5[k]).removeClass("bracket-line-right-top-r5");
						$(blrb5[k]).removeClass("bracket-line-right-bot-r5");
						if($(bllt5[k]).is('*[class*="old"]')){
						}
						else{
						   bllt5[k].className += " oldr5";
						   bllb5[k].className += " oldr5";
						   bllm5[m1].className += " oldr5";
						   bllm5[m2].className += " oldr5";
						   blrt5[k].className += " oldr5";
						   blrb5[k].className += " oldr5";
						}
					}
                 }
                }
                break;
            case "":
            default:
                // Toggle
                for (var j = 0; j < toggles.length; j++)
                    toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
                break;
        }
    }
}

function createTogglerLink(toggler, id)
{
    var toggle = document.createElement("a");
    toggle.className = 'toggler-link';
    toggle.setAttribute('id', 'toggler' + id);
    toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
    var child = toggler.firstChild;
    toggler.removeChild(child);
    toggle.appendChild(child);
    toggler.insertBefore(toggle, toggler.firstChild);
}

function toggleInit()
{
    var togglerElems = new Array();
    var toggleGroup = new Array();

    // initialize/clear any old information
    togglers = new Array();     
    allClasses = new Object();
        
    // make list of all document classes
    var elems = document.getElementsByTagName("*");
    var numelems = elems.length;
    for (var i = 0; i < elems.length; i++)
    {
        var elem = elems[i];
        if (!elem.className)
            continue;

        elem._toggle_original_display = elem.style.display;
        var togglerID = -1;
        var elemClasses = elem.className.split(' '); // get list of classes
        for (var j = 0; j < elemClasses.length; j++)
        {
            var elemClass = elemClasses[j];
            if (! allClasses[elemClass])
                allClasses[elemClass] = new Array();
            allClasses[elemClass].push(elem);

            // all the special classes begin with _toggle
            if (elemClass.substring(0, 7) != "_toggle")
                continue;

            if (elemClass == "_togglegroup")
                toggleGroup = new Array();
            else if (elemClass == "_toggle")
                toggleGroup.push(elem);
            else if (elemClass.substring(0, 12) == "_toggle_init")
            {
                // set initial value for display (ignore the original CSS set value)
                // understands _toggle_initshow and _toggle_inithide
                var disp = elemClass.substring(12);
                if (disp == "show")
                    elem.style.display = '';
                else if (disp == "hide")
                    elem.style.display = 'none';
                elem._toggle_original_display = disp;
            }
            else if (elemClass.substring(0, 8) == "_toggler")
            {
                if (togglerID == -1)
                {
                    togglerID = togglers.length;
                    togglers[togglerID] = new Array();
                    togglerElems[togglerID] = elem;
                }

                // all classes are of form _toggler_op-CLASS
                // figure out what class we're toggling
                // if none is specified, then we use the current toggle group
                var toBeToggled;
                var hyphen = elemClass.indexOf('-');
                if (hyphen != -1)
                    toBeToggled = elemClass.substring(hyphen+1);
                else
                {
                    toBeToggled = toggleGroup;
                    hyphen = elemClass.length;
                }

                var op = elemClass.substring(8, hyphen);
                togglers[togglerID].push(new Array(op, toBeToggled));
            }
        }
    }

    // add javascript links to all toggler elements
    for (var i = 0; i < togglerElems.length; i++)
        createTogglerLink(togglerElems[i], i);
}


function owwsitesearch(f){
    f.q.value='site:http://openwetware.org/wiki/'+
        f.base.value+'++'+f.qfront.value
}


$(toggleInit);


/**
 * Countdown
 *
 * @version 2.1
 *
 * @author Pecoes <http://c.gamepedia.com/User:Pecoes>
 * @author Asaba <http://dev.gamepedia.com/User:Asaba>
 *
 * Version 1 authors:
 * - Splarka <http://c.gamepedia.com/User:Splarka>
 * - Eladkse <http://c.gamepedia.com/User:Eladkse>
 *
 * documentation and examples at:
 * <http://dev.gamepedia.com/Countdown>
 */
 
/*jshint jquery:true, browser:true, devel:true, camelcase:true, curly:false, undef:true, bitwise:true, eqeqeq:true, forin:true, immed:true, latedef:true, newcap:true, noarg:true, unused:true, regexp:true, strict:true, trailing:false */
/*global mediaWiki:true*/
 
;(function (module, mw, $, undefined) {
 
 
    var countdowns = [];
 
    var NO_LEADING_ZEROS = 1;
 
    function output (i, diff) {
        /*jshint bitwise:false*/
        var delta, result, parts = [];        
        diff = Math.floor(diff / 60);
        delta = diff % 60;
        if (delta<10)
        {
            parts.unshift('0'+delta+'m');
        }
        else
        {
            parts.unshift(delta+'m');
        }
        diff = Math.floor(diff / 60);
        delta = diff % 24;
        if (delta<10) 
        {
            parts.unshift('0'+delta+'h ');
        }
        else
        {
            parts.unshift(delta+'h ');
        }
        diff = Math.floor(diff / 24);
        parts.unshift(diff+'d ');
        result = parts.pop();
        if (countdowns[i].opts & NO_LEADING_ZEROS) {
            while (parts.length &&  parts[0][0] === '0' && (parts[0][1] === '0' || parts[0][1] ==='d')) {
                parts.shift();
            }
        }
        if (parts.length) {
            result = parts.join('') + result;
        }
        countdowns[i].node.text(result);
    }
 
    function end(i) {
        var c = countdowns[i].node.parent();
        switch (c.attr('data-end')) {
            case 'remove':
                c.remove();
                return true;
            case 'stop':
                output(i, 0);
                return true;
            case 'toggle':
                var toggle = c.attr('data-toggle');
                if (toggle && $(toggle).length) {
                    $(toggle).css('display', 'inline');
                    c.css('display', 'none');
                    return true;
                }
                break;
            case 'callback':
                var callback = c.attr('data-callback');
                if (callback && $.isFunction(module[callback])) {
                    output(i, 0);
                    module[callback].call(c);
                    return true;
                }
                break;
         }
         countdowns[i].countup = true;
         output(i, 0);
         return false;
    }
 
    function update () {
        var now = Date.now();
        var countdownsToRemove = [];
        $.each(countdowns.slice(0), function (i, countdown) {
            var diff = Math.floor((countdown.date - now) / 1000);
            if (diff <= 0 && !countdown.countup) {
                if (end(i)) countdownsToRemove.push(i);
            } else {
                output(i, Math.abs(diff));
            }
        });
        var x;
        while((x = countdownsToRemove.pop()) !== undefined) {
            countdowns.splice(x, 1);
        }
        if (countdowns.length) {
            window.setTimeout(function () {
                update();
            }, 1000);
        }
    }
 
    function getOptions (node) {
        /*jshint bitwise:false*/
        var text = node.parent().attr('data-options'),
            opts = 0;
        if (text) {
            if (/no-leading-zeros/.test(text)) {
                opts |= NO_LEADING_ZEROS;
            }
        }
        return opts;
    }
 
    $(function () {
        var countdown = $('.countdown');
        if (!countdown.length) return;
        $('.nocountdown').css('display', 'none');
        countdown
        .css('display', 'inline')
        .find('.countdowndate')
        .each(function () {
            var $this = $(this),
                date = (new Date($this.text())).valueOf();
            if (isNaN(date)) {
                $this.text('BAD DATE');
                return;
            }
            if (date < Date.now()) {
                $this.text(' ');
                return;
            }
            countdowns.push({
                node: $this,
                opts: getOptions($this),
                date: date,
            });
        });
        if (countdowns.length) {
            update();
        }
    });
 
}(window.countdownTimer = window.countdownTimer || {}, mediaWiki, jQuery));


var toggleMapListSetup = function() {
	var btn = $('a[id^="collapseButton"]');

	btn.each(function() {
		var table = $(this).closest('table');
		var m = $('.maprow', table);

		if (m.length) {
			m.hide(); // Collapse maps by default

			var span = $('<span>', {
				class: 'mapsCollapseButton',
				css: {
					'font-weight': 'normal',
					'float': 'right',
					'margin-right': '7px',
					'cursor': 'pointer'
				}
			});

			table.data('maps-collapsed', true);

			var toggleMaps = function() {
				table.find('.maprow').toggle();
				table.data('maps-collapsed', !table.data('maps-collapsed'));

				$(this).text(function(i, txt) {
					return txt.replace(/\+|−/, function(a) {
						return a === '+' ? '−' : '+';
					});
				});
			}

			var a = $('<a>+maps</a>').click(toggleMaps);

			span.append('[', a, ']');
			$(this).parent().after(span);

			if (table.hasClass('uncollapsed-maps')) {
				a.trigger('click');
			}
		}
	});
};

/**
 * Collapsible tables
 *
 * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
 *
 * @version 2.0.3 (2014-03-14)
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
 * @author [[User:R. Koot]]
 * @author [[User:Krinkle]]
 * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
 * is supported in MediaWiki core.
 */

var autoCollapse = 2;
var collapseCaption = 'hide';
var expandCaption = 'show';
var tableIndex = 0;

function collapseTable( tableIndex ) {
    var Button = document.getElementById( 'collapseButton' + tableIndex );
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );

    if ( !Table || !Button ) {
        return false;
    }

    var Rows = Table.rows;
    var i;
    var $row0 = $(Rows[0]);

    if ( Button.firstChild.data === collapseCaption ) {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = 'none';
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = $row0.css( 'display' );
        }
        Button.firstChild.data = collapseCaption;
    }
}

function createClickHandler( tableIndex ) {
    return function ( e ) {
        e.preventDefault();
        collapseTable( tableIndex );
    };
}

function createCollapseButtons( $content ) {
    var NavigationBoxes = {};
    var $Tables = $content.find( 'table' );
    var i;

    $Tables.each( function( i, table ) {
        if ( $(table).hasClass( 'collapsible' ) ) {

            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = table.getElementsByTagName( 'tr' )[0];
            if ( !HeaderRow ) {
                return;
            }
            var Header = table.getElementsByTagName( 'th' )[0];
            if ( !Header ) {
                return;
            }

            NavigationBoxes[ tableIndex ] = table;
            table.setAttribute( 'id', 'collapsibleTable' + tableIndex );

            var Button     = document.createElement( 'span' );
            var ButtonLink = document.createElement( 'a' );
            var ButtonText = document.createTextNode( collapseCaption );
            // Styles are declared in [[MediaWiki:Common.css]]
            Button.className = 'collapseButton';

            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
            ButtonLink.appendChild( ButtonText );

            Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( ']' ) );

            Header.insertBefore( Button, Header.firstChild );
            tableIndex++;
        }
    } );

    for ( i = 0;  i < tableIndex; i++ ) {
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
            ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
        ) {
            collapseTable( i );
        }
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
            var element = NavigationBoxes[i];
            while ((element = element.parentNode)) {
                if ( $( element ).hasClass( 'outercollapse' ) ) {
                    collapseTable ( i );
                    break;
                }
            }
        }
    }
}

mw.hook( 'wikipage.content' ).add( createCollapseButtons );

/**
 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
 *
 * Maintainers: TheDJ
 */
function mwCollapsibleSetup( $collapsibleContent ) {
	var $element,
	    $toggle,
		autoCollapseThreshold = 2;
	$.each( $collapsibleContent, function (index, element) {
		$element = $( element );
		if ( $collapsibleContent.length > autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
			$element.data( 'mw-collapsible' ).collapse();
		} else if ( $element.hasClass( 'innercollapse' ) ) {
			if ( $element.parents( '.outercollapse' ).length > 0 ) {
				$element.data( 'mw-collapsible' ).collapse();
			}
		}
		$toggle = $element.find( '.mw-collapsible-toggle' );
		if ( $toggle.length ) {
			// Make the toggle inherit text color
			if( $toggle.parent()[0].style.color ) {
				$toggle.find( 'a' ).css( 'color', 'inherit' );
			}
		}
	} );
}

mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );

/**
 * Dynamic Navigation Bars (experimental)
 *
 * Description: See [[Wikipedia:NavFrame]].
 * Maintainers: UNMAINTAINED
 */

/* set up the words in your language */
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
var indexNavigationBar = 0;

/**
 * Shows and hides content and picture (if available) of navigation bars
 * Parameters:
 *     indexNavigationBar: the index of navigation bar to be toggled
 **/
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
    var NavChild;

    if ( !NavFrame || !NavToggle ) {
        return false;
    }

    /* if shown now */
    if ( NavToggle.firstChild.data === NavigationBarHide ) {
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;

    /* if hidden now */
    } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }

    event.preventDefault();
};

/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton( $content ) {
    var NavChild;
    /* iterate over all < div >-elements */
    var $divs = $content.find( 'div' );
    $divs.each( function ( i, NavFrame ) {
        /* if found a navigation bar */
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {

            indexNavigationBar++;
            var NavToggle = document.createElement( 'a' );
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
            NavToggle.setAttribute( 'href', '#' );
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );

            var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
            /**
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
                if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                    if ( NavChild.style.display === 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if ( isCollapsed ) {
                for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
                    if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
            NavToggle.appendChild( NavToggleText );

            /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
            for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
                if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
                    NavFrame.childNodes[j].appendChild( NavToggle );
                }
            }
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
        }
    } );
}

mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
Advertisement