$(document).ready(init);

function init(){
	$('.untermenu').hide().css({
			border: 'none'
	});
	$('.unav').click(function(event){
			event.preventDefault();
			showContent(this);
			addRefLink(this);
	});
	
	checkForRefLink();
	
	// nur in publications
	if($('body#publications').length > 0){
		$('#PublicationType').change(function(){updateFilter()});
		$('#ResearchTopics').change(function(){updateFilter()});
		$('#ResearchProject').change(function(){updateFilter()});
	}
	
	$('.nospam').each(function(){
			var email = $(this).text().replace(/ \(at\) /,'@').replace(/ \(dot\) /,'.');
			var mailLink = $.create('a').attr('href','mailto:'+email).text(email);;
			$(this).replaceWith(mailLink);
	});
}

function updateFilter(){
	var delim = ';';
	
	var type = $('#PublicationType').val();
	var topic = $('#ResearchTopics').val();
	var project = $('#ResearchProject').val();
	
	var tableEntries = $('#publicationstable tr');
	
	$(tableEntries).each(function(){
			var row = $(this);
			row.removeClass('hidden');
			var keywords = row.children('.tab_key').text();
			
			var typeRegexp = new RegExp(delim+type+delim);
			var topicRegexp = new RegExp(delim+topic+delim);
			var projectRegexp = new RegExp(delim+project+delim);
			
			if(type == 'all' || keywords.match(typeRegexp)){
				
			}else{
				row.addClass('hidden');
			}
			
			if(topic == 'all' || keywords.match(topicRegexp)){
				
			}else{
				row.addClass('hidden');
			}
			
			if(project == 'all' || keywords.match(projectRegexp)){
				
			}else{
				row.addClass('hidden');
			}
	});
	
	var tbodys = $('#publicationstable tbody');
	$(tbodys).each(function(){
			var tbody = $(this);
			
			if(tbody.children(':visible').length > 0){
				tbody.children('.tab_titlerow').removeClass('hidden');
			}else{
				tbody.children('.tab_titlerow').addClass('hidden');
			}
			
	});
}

function showContent(navButton){
	$('.unav').removeClass('activeunav');
	$(navButton).addClass('activeunav');
	var prefix = $(navButton).attr('id').match(/(.+)_.*$/)[1];
	$('.untermenu').hide();
	$('#'+prefix).show();
}

function addRefLink(navButton){
	var reflink = $(navButton).attr('id') + ';';
	window.location.hash = reflink;
}

function checkForRefLink(){
	var reflink = window.location.hash;
	if(reflink != ''){
		var prefix = reflink.match(/#(.+)_.*$/)[1];
		$('.untermenu').hide();
		$('#'+prefix).show();
	}
}
