$(document).ready(function() { 
	
	// show same author when needed
	if($('#showTab').val() != null)
	{
		selectTab($('#showTab').val());
	}
	else
	
	// loading page -> show most recent items
	showMostRecent();
	
	$('#searchbutton').click(function(){
		var search = $('#query').val();
	
		if(search != '')
		{
			// reset selected states
			resetSelectedStates();
			
			startLoader();
			
			$.post("/medialibrary/search_ajax",
			{search: search},
			   function(response){
			     	$('#contents').html(response);
			     	
			     	endLoader();
			   }
			);
		}
		return false;
		});
});

function changeSortDirection()
{
	switch($('#mode').val())
	{
		case 'most-recent': showMostRecent();
			break;
		case 'same-author': showSameAuthor($('#authorId').val());
			break;	
		case 'same-subject': showSameSubject($('#mediaId').val(), $('#mediaType').val());
			break;
		case 'all-videos': showAllVideos();
			break;	
		case 'all-articles': showAllArticles();
			break;	
		case 'category': showCategory($('#categoryId').val());
			break;
		case 'search': searchLibrary();
			break;							
			
	}
}

function searchLibrary()
{
	var search = $('#query').val();
	
	if(search != '')
	{
		startLoader();
		
		// reset selected states
		resetSelectedStates();
		
		if($('#orderby').val() != null) var sortDir = $('#orderby').val();
		else sortDir = 'desc';
		
		$.post("/medialibrary/search_ajax",
		{search: search, sortDir: sortDir},
		   function(response){
		     	$('#contents').html(response);
		     	
		     	// select correct option
	   			$('#orderby').selectOptions(sortDir);
		     	
		     	endLoader();
		   }
		);
	}
	return false;
}

function showMostRecent()
{
	startLoader();
	
	// reset selected states
	resetSelectedStates();
	
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_most_recent').addClass('selected');
	
	$.post("/medialibrary/most_recent_ajax",
	{ sortDir: sortDir },
	   function(response){
	   	
	   		// export content
	   		$('#contents').html(response);
	   		
	   		// select correct option
	   		$('#orderby').selectOptions(sortDir);

	     	endLoader();
	   }
	);
}

function showSameAuthor(authorId)
{
	startLoader();
	
	// reset selected states
	resetSelectedStates();
	
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_same_author').addClass('selected');
	
	$.post("/medialibrary/same_author_ajax",
	{authorId: authorId, sortDir: sortDir},
	   function(response){
	     	$('#contents').html(response);
	     	
	     	// select correct option
	   		$('#orderby').selectOptions(sortDir);
	     	
	     	endLoader();
	   }
	);
}

function showSameSubject(mediaId, mediaType)
{
	// reset selected states
	resetSelectedStates();
	
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_same_subject').addClass('selected');
	
	if(mediaType == 'video')
	{
		startLoader();
		
		$.post("/medialibrary/same_subject_ajax",
		{ videoId: mediaId, sortDir: sortDir },
		   function(response){
		     	$('#contents').html(response);
		     	
		     	// select correct option
	   			$('#orderby').selectOptions(sortDir);
		     	
		     	endLoader();
		   }
		);
	}
	
	if(mediaType == 'article')
	{
		startLoader();
		
		$.post("/medialibrary/same_subject_ajax",
		{articleId: mediaId},
		   function(response){
		     	$('#contents').html(response);
		     	
		     	endLoader();
		   }
		);
	}
}

function showSameTag(tagId)
{
	// reset selected states
	resetSelectedStates();
	
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_same_subject').addClass('selected');
	
	startLoader();
		
	$.post("/medialibrary/same_tag_ajax",
	{ tagId: tagId, sortDir: sortDir },
	   function(response){
	     	$('#contents').html(response);
	     	
	     	// select correct option
   			$('#orderby').selectOptions(sortDir);
	     	
	     	endLoader();
	   }
	);
}

function showCategory(categoryId)
{
	startLoader();
	
	// category toggle
	$("#subcatlist_" + categoryId).toggle();
	
	// reset selected states
	resetSelectedStates();
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_category_' + categoryId).addClass('selected');
	
	$.post("/medialibrary/category_ajax",
	{categoryId: categoryId, sortDir: sortDir},
	   function(response){
	     	$('#contents').html(response);
	     	
	     	// select correct option
	   		$('#orderby').selectOptions(sortDir);
	     	
	     	endLoader();
	   }
	);
}

function showAllVideos()
{
	startLoader();
	
	// reset selected states
	resetSelectedStates();
		
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_all_videos').addClass('selected');
	
	$.post("/medialibrary/all_videos_ajax",
	{sortDir: sortDir},
	   function(response){
	     	$('#contents').html(response);
	     	
	     	// select correct option
	   		$('#orderby').selectOptions(sortDir);
	     	
	     	endLoader();
	   }
	);
}

function showAllArticles()
{
	startLoader();
	
	// reset selected states
	resetSelectedStates();
	
	if($('#orderby').val() != null) var sortDir = $('#orderby').val();
	else sortDir = 'desc';
	
	// set listitem selected
	$('.ml_all_articles').addClass('selected');
	
	$.post("/medialibrary/all_articles_ajax",
	{sortDir: sortDir},
	   function(response){
	     	$('#contents').html(response);
	     	
	     	// select correct option
	   		$('#orderby').selectOptions(sortDir);
	     	
	     	endLoader();
	   }
	);
}

function resetSelectedStates()
{
	$('.ml_most_recent').removeClass('selected');
	$('.ml_same_author').removeClass('selected');
	$('.ml_same_subject').removeClass('selected');
	$('.ml_categories').removeClass('selected');
	$('.ml_all_videos').removeClass('selected');
	$('.ml_all_articles').removeClass('selected');
	
	// empty search box
	$('#query').val('');
}

function startLoader()
{
	$('#contents').hide();
	$('#loading').show();
}

function endLoader()
{
	$('#contents').show();
	$('#loading').hide();
}

function selectTab(tab)
{
	if(tab == 'same-author')
	{
		// reset selected states
		resetSelectedStates();

		// set selected states
		$('.ml_same_author').addClass('selected');	
		
		// activate tab content
		showSameAuthor($('#speakerId').val());
	}
}