$(document).ready(function() {
	var common_tbx = $('.filter-form .tbx-common');
	var author_tbx = $('.filter-form .tbx-author');
	var is_file_cbx = $('.filter-form #is_file').get(0);
	var is_reverse_cbx = $('.filter-form #is_reverse').get(0);
	var is_reverse_order = false;

	common_tbx.val("");
	author_tbx.val("");
	is_file_cbx.checked = false;
	is_reverse_cbx.checked = false;
	showResults();
	
	function showResults() {
		var len = $(".articles-list li:not('.hidden')").length;
		$(".filter-form .results .count").html(""+len);
	}

	$(".filter-form").submit(function() {	
		var common_term = common_tbx.val();
		var author_term = author_tbx.val();
		var is_file = is_file_cbx.checked;
		var is_reverse = is_reverse_cbx.checked;
		
		if(is_reverse && !is_reverse_order) {
			$(".articles-list li").reverseOrder();
			is_reverse_order = true;
		}
		else if(!is_reverse && is_reverse_order) {
			$(".articles-list li").reverseOrder();
			is_reverse_order = false;
		}
		
		$(".articles-list li").removeClass("hidden");

		if(is_file) {
			getVisibleArticles().not("li:has('a')").addClass("hidden");
		}
	
		if(common_term != "") {
			getVisibleArticles().not("li:contains('" + common_term + "')").addClass("hidden");
		}
		
		if(author_term != "") {	
			getVisibleArticles()
				.filter(function() { return $(this).find("span.authors:contains('" + author_term +"')").length == 0; })
				.addClass("hidden");
		}
		
		showResults();

		return false;
	});
	
	function getVisibleArticles() {
		return $(".articles-list li:not('.hidden')");
	}
});

(function($) {
$.fn.reverseOrder = function() {
	return this.each(function() {
		$(this).prependTo( $(this).parent() );
	});
};
})(jQuery);
