$(document).ready(function() {
	var selectedEntityId = parseInt(window.location.hash.substr(1));

	$('table tr td:first-child').addClass('first-child');
	$('table tr td:last-child').addClass('last-child');

	// alle Links raussuchen, die mit AJAX-Funktionalität versehen werden sollen
	$('table.list tbody tr td a.ajax').each(function() {
		// zu jedem Link das übergeordnete <tr> finden
		var tr = $(this).parents('tr');
		var nativeTr = tr.get(0);
		nativeTr.url = tr.find('a.ajax').attr('href');
		nativeTr.entityId = nativeTr.url.match(/\d+/);

		// aussteigen, wenn das <tr> bereits ge-AJAX-t wurde
		if (tr.is('.ajaxified')) return;

		tr.click(function() {
			$(this).find('a').blur();
			if ($(this).is('.active')) {
				$(this).removeClass('active');
				$(this).next('tr').hide();
			} else if ($(this).next('tr').is('.detail')) {
				window.location.hash = '#' + this.entityId + '/';
				$(this).addClass('active');
				$(this).next('tr').show();
			} else {
				var url = this.url;
				window.location.hash = '#' + this.entityId + '/';

				// Aktiv-Status der <tr> aktivieren
				$(this).addClass('active');

				// colspan des <td> im eingefügten <tr> an die Spaltenanzahl der übergeordneten Tabelle anpassen
				var numcols = $(this).find('td').length;
				// $(this).next('tr').find('td').attr('colspan', numcols);

				// neues <tr> einfügen, in das die Details geladen werden sollen
				$(this).after('<tr class="detail loading"><td colspan="' + numcols + '"><div class="details"></div></td></tr>');

				// Detail-HTML in das <td> laden
				$(this).next('tr').find('td div.details').load(url + '?ajax=1', null, function() {
					$(this).parents('tr').removeClass('loading');
					$(this).show('slow');
				});
			}

			// verhindern, dass der Click-Event an das <a> weiter gegeben wird
			return false;
		});
		tr.addClass('ajaxified');
		if (nativeTr.entityId == selectedEntityId) {
			tr.click();
			$(window).scrollTop($(nativeTr).offset().top - 100);
		}
	});

	// alle Tabellenüberschriften (<th>) anklickbar machen
	$('table.list thead th').each(function() {
		var href = $(this).find('a').attr('href');
		if (href) {
			$(this).addClass('clickable');
			$(this).click(function() { window.location.replace(href); });
		}
		return;
	});

});
