﻿function togglePlayoffDetails(element)
{
	var toggleTd = $(element);
	
	if (toggleTd) {
		
		var tr1 = toggleTd.up(0);
		var tr2 = tr1.next(0);
		
		tr1.toggleClassName('expanded');
		tr2.toggleClassName('visible');
	}
}

function toggleTableDetails(id)
{
	var node = $(id);
	var btn = $('btn_table-details');
	if (node)
	{
		Element.toggleClassName(node, 'collapsed');
		if (Element.hasClassName(node, 'collapsed')) btn.innerHTML = 'Details anzeigen';
		else btn.innerHTML = 'Details verbergen';
	}
}

function saveViewState()
{
	var nodes = $$('#calendar > tbody');
	var a = [];
	nodes.each(
		function (node) { a.push((node.className == 'collapsed') ? '0' : '1') }
	);
	document.location = '#?' + a.join('');
}
function restoreViewState() {
	var hash = window.location.hash;
	var nodes = $$('#calendar > tbody');
	if (!hash.empty()) {

		var h = hash.substring(1);
		var vs = h.substring((h.indexOf('?') + 1));

		if (vs.indexOf('0') == -1) {
			toggleAllTableRowDetails('calendar');
		}
		else {
			nodes.each(
				function (node, i) {
					if (vs.charAt(i) == 1) toggleTableRowDetails(node);
				}
			);
		}
	}
}

function toggleTableRowDetails(element)
{
	var element = $(element);
	var node = (element.nodeName.toLowerCase() == 'tbody') ? element : element.up('tbody');
	if (node)
	{
		Element.toggleClassName(node, 'collapsed');
	}
	saveViewState();
}

function toggleAllTableRowDetails(id)
{
	var node = $(id);
	var btn = $('btn_table-details');
	if (node)
	{
		var nodes = node.select('tbody');
		if (btn.hasClassName('off'))
		{
			nodes.invoke('removeClassName', 'collapsed');
			btn.innerHTML = 'Details verbergen';
			btn.removeClassName('off');
		}
		else
		{
			nodes.invoke('addClassName', 'collapsed');
			btn.innerHTML = 'Details anzeigen';
			btn.addClassName('off');
		}
	}
	saveViewState();
}

function expandContentSection(trigger, index)
{
	var sections = $('main').select('.content-section');
	var filter = $('content-filter');

	filter.select('li').invoke('removeClassName', 'active');

	if (index === 'all')
	{
		sections.invoke('removeClassName', 'filtered');
		sections.invoke('removeClassName', 'hidden');
	}
	else
	{
		var section = sections[index];
		sections.invoke('addClassName', 'hidden');
		if (section)
		{
			section.addClassName('filtered');
			section.removeClassName('hidden');
		}
	}
	trigger.addClassName('active');
}

Element.observe(document, 'dom:loaded', restoreViewState);
