Halo Esports Wiki
Donut (talk | contribs)
No edit summary
Donut (talk | contribs)
No edit summary
Line 23: Line 23:
 
if ($("#mw-head").length > 0){
 
if ($("#mw-head").length > 0){
 
var logoText = document.createElement("a");
 
var logoText = document.createElement("a");
logoText.href = "/Call_of_Duty_Esports_Wiki"
+
logoText.href = "/Halo_Esports_Wiki"
logoText.title = "Visit the main page - Call of Duty Esports Wiki"
+
logoText.title = "Visit the main page - Halo Esports Wiki"
 
logoText.className = "mw-wiki-logo-text"
 
logoText.className = "mw-wiki-logo-text"
 
document.getElementById("mw-head").appendChild(logoText);
 
document.getElementById("mw-head").appendChild(logoText);

Revision as of 21:49, 31 December 2018

/* Any JavaScript here will be loaded for all users on every page load. */

/* Changes the width of margin on right/left on the frontpage when the window is smaller than 1500px */
$(function () {
    var windowWidth = window.innerWidth;
    if (windowWidth < 1500){
        var point = document.getElementsByClassName("FrontpageOuterDiv");
        var i;
        for (i = 0; i < point.length; i++){
           point[i].style.maxWidth="100%";
           }
    }
});

$(document).ready(function () {
	if ($("#noTitle").length > 0){
		$("#firstHeading").detach()
	}
});

/* Adding the Wiki Logo Text next to the actual Logo */
function wikiLogoText () {
	if ($("#mw-head").length > 0){
		var logoText = document.createElement("a");
		logoText.href = "/Halo_Esports_Wiki"
		logoText.title = "Visit the main page - Halo Esports Wiki"
		logoText.className = "mw-wiki-logo-text"
		document.getElementById("mw-head").appendChild(logoText);	
	}	
}

$(document).ready( wikiLogoText() );



/* 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 = date.getMonth();
      month = month + 1;
      var timeMonth = "00";
      if (month < 10) timeMonth = "0" + month.toString();
      else timeMonth = month.toString();
      var day = date.getDate();
      var timeDay = "00";
      if (day < 10) timeDay = "0" + day.toString();
      else timeDay = day.toString();
      point[i].textContent = year + "-" + timeMonth + "-" + timeDay;
    }
  }
);

/**
 * 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) {
  
	'use strict';
 
	var translations = $.extend(true, {
		// English (English)
		en: {
			and: 'and',
			second: 'second',
			seconds: 'seconds',
			minute: 'minute',
			minutes: 'minutes',
			hour: 'hour',
			hours: 'hours',
			day: 'day',
			days: 'days'
		},
	}, module.translations || {}),
	i18n = translations[
		mw.config.get('wgContentLanguage')
	] || translations.en;
 
	var countdowns = [];
 
	var NO_LEADING_ZEROS = 1,
	SHORT_FORMAT = 1,
	NO_ZEROS = 4;
 
	function output (i, diff) {
		/*jshint bitwise:false*/
		var delta, result, parts = [];
		delta = diff % 60;
		//result = ' ' + i18n[delta === 1 ? 'second' : 'seconds'];
		//if (countdowns[i].opts & SHORT_FORMAT) result = result.charAt(1);
		//parts.unshift(delta + result);
		diff = Math.floor(diff / 60);
		delta = diff % 60;
		result = ' ' + i18n[delta === 1 ? 'minute' : 'minutes'];
		if (countdowns[i].opts & SHORT_FORMAT) result = result.charAt(1);
		parts.unshift(delta + result);
		diff = Math.floor(diff / 60);
		delta = diff % 24;
		result = ' ' + i18n[delta === 1 ? 'hour'   : 'hours'  ];
		if (countdowns[i].opts & SHORT_FORMAT) result = result.charAt(1);
		parts.unshift(delta + result);
		diff = Math.floor(diff / 24);
		result = ' ' + i18n[diff  === 1 ? 'day'    : 'days'   ];
		if (countdowns[i].opts & SHORT_FORMAT) result = result.charAt(1);
		parts.unshift(diff  + result);
		result = parts.pop();
		if (countdowns[i].opts & NO_LEADING_ZEROS) {
			while (parts.length && parts[0][0] === '0') {
				parts.shift();
			}
		}
		if (countdowns[i].opts & NO_ZEROS) {
			parts = parts.filter(function(part) {
				return part[0] !== '0';
			});
		}
		if (parts.length) {
			if (countdowns[i].opts & SHORT_FORMAT) {
				result = parts.join(' ') + ' ' + result;
			} else {
				result = parts.join(', ') + ' ' + i18n.and + ' ' + 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 == 'next') {
				c.next().css('display', 'inline');
				c.css('display', 'none');
				return true;
			}
			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;
			}
			if (/short-format/.test(text)) {
				opts |= SHORT_FORMAT;
			}
			if (/no-zeros/.test(text)) {
				opts |= NO_ZEROS;
			}
		}
		return opts;
	}
 
	function toggleInit() {
		var countdown = $('.countdown:not(.handled)');
		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;
			}
			countdowns.push({
				node: $this,
				opts: getOptions($this),
				date: date,
			});
		});
		countdown.addClass('handled');
		if (countdowns.length) {
			update();
		}
	}
 
	mw.hook('wikipage.content').add(toggleInit);
 
}(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');
			}
		}
	});
};


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

function includePage( name )
{
 document.write('<script type="text/javascript" src="' + wgScript + '?title='
  + name 
  + '&action=raw&ctype=text/javascript"><\/script>' 
 );
}
/* End of includePage */

/* ========================================================================
 * Bootstrap: dropdown.js v3.1.1
 * http://getbootstrap.com/javascript/#dropdowns
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // DROPDOWN CLASS DEFINITION
  // =========================

  var backdrop = '.dropdown-backdrop'
  var toggle   = '[data-toggle=dropdown]'
  var Dropdown = function (element) {
    $(element).on('click.bs.dropdown', this.toggle)
  }

  Dropdown.prototype.toggle = function (e) {
    var $this = $(this)

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    clearMenus()

    if (!isActive) {
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
        // if mobile we use a backdrop because click events don't delegate
        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
      }

      var relatedTarget = { relatedTarget: this }
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))

      if (e.isDefaultPrevented()) return

      $parent
        .toggleClass('open')
        .trigger('shown.bs.dropdown', relatedTarget)

      $this.focus()
    }

    return false
  }

  Dropdown.prototype.keydown = function (e) {
    if (!/(38|40|27)/.test(e.keyCode)) return

    var $this = $(this)

    e.preventDefault()
    e.stopPropagation()

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    if (!isActive || (isActive && e.keyCode == 27)) {
      if (e.which == 27) $parent.find(toggle).focus()
      return $this.click()
    }

    var desc = ' li:not(.divider):visible a'
    var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)

    if (!$items.length) return

    var index = $items.index($items.filter(':focus'))

    if (e.keyCode == 38 && index > 0)                 index--                        // up
    if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
    if (!~index)                                      index = 0

    $items.eq(index).focus()
  }

  function clearMenus(e) {
    $(backdrop).remove()
    $(toggle).each(function () {
      var $parent = getParent($(this))
      var relatedTarget = { relatedTarget: this }
      if (!$parent.hasClass('open')) return
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
      if (e.isDefaultPrevented()) return
      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
    })
  }

  function getParent($this) {
    var selector = $this.attr('data-target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
    }

    var $parent = selector && $(selector)

    return $parent && $parent.length ? $parent : $this.parent()
  }


  // DROPDOWN PLUGIN DEFINITION
  // ==========================

  var old = $.fn.dropdown

  $.fn.dropdown = function (option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.dropdown')

      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  $.fn.dropdown.Constructor = Dropdown


  // DROPDOWN NO CONFLICT
  // ====================

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  // APPLY TO STANDARD DROPDOWN ELEMENTS
  // ===================================

  $(document)
    .on('click.bs.dropdown.data-api', clearMenus)
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)

}(jQuery);

jQuery(function($) {
$('.dropdown').hover(function() {
$(this).find('.dropdown-menu').first().stop(true, true).delay(100).slideDown();

}, function() {
if ($(this).find('.dropdown-menu').parents('.open').length) {

} else {
$(this).find('.dropdown-menu').first().stop(true, true).delay(100).slideUp();
}
});

$('.dropdown > a').click(function(){
location.href = this.href;
});

});

 
/* 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).parent().parent().children('div.tabs-content').children('div').removeClass('active');
			$(this).parent().parent().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 */

/* PentakillTV Embed Stuff */
$(function () {
$('.embedframe').find('a:not(.toggler-link)').each(function() {

    $(this).attr("target","_blank");

  });

});

/* Sideways text for blockbox needs the height of the parent div altered */
$(document).ready(function() { 
   $('.vert-text').each(function(){
      var parentHeight = $(this).parent().height();
      $(this).height(parentHeight);    
   });
});


 
/* Including extra .js pages */ 
 
 
$(function () {
var allowedKeys = {
  37: 'left',
  38: 'up',
  39: 'right',
  40: 'down',
  65: 'a',
  66: 'b'
};

var secret = ['up', 'up', 'down', 'down', 'left', 'right', 'left', 'right', 'b', 'a'];

// a variable to remember the 'position' the user has reached so far.
var secretCodePosition = 0;

// add keydown event listener
document.addEventListener('keydown', function(e) {
  // get the value of the key code from the key map
  var key = allowedKeys[e.keyCode];
  var requiredKey = secret[secretCodePosition];

  // compare the key with the required key
  if (key == requiredKey) {

    // move to the next key in the konami code sequence
    secretCodePosition++;

    // if the last key is reached, activate cheats
    if (secretCodePosition == secret.length)
      activateCheats();
  } else
    secretCodePosition = 0;
});

function activateCheats() {
  document.body.style.backgroundImage = "url('/w/images/Zileanbg.png')";
  var audio = new Audio('/w/images/Chronokeeper.joke.ogx');
  audio.play();

}
});


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

/* functions for gadgets */
window.displayColor = function(colorclass) {
    $("#p-cactions").addClass(colorclass);
    return;
}

window.clearDisplayColor = function() {
	$("#p-cactions").removeClass("gadget-action-fail gadget-action-incomplete gadget-action-success");
}
/* end functions for gadgets */

$(function() {
	var title = mw.config.get('wgTitle');
	$('[data-to-target-title="' + title + '"]').each(function () {
		$(this).removeClass('to_hasTooltip');
		$(this).attr('data-to-id','');
	}
	);
});