(function()
{
	function initialize_filtrator()
	{
		if ($('#filtrator_page_filter_panel').size() == 0 )
		{
			return;
		}
		$('#filtrator_page_clear_filters_button').click(clear_filters);
		$('#filtrator_page_carcass input').click(filter_rows);
		filter_rows();
	}
	function clear_filters()
	{
		$('#filtrator_page_carcass input').attr('checked', false);
		$('#filtrator_page_carcass input[chbd=1]').attr('checked', true);
		filter_rows();
	}
	function filter_rows()
	{
		var checked = [];
		$('#filtrator_page_carcass input').each(function()
		{
			if ($(this).attr('checked'))
			{
				checked.push($(this).attr('id'));
			}
		});
		
		$('#filtrator_page_carcass table tbody tr').each(function()
		{
			var tr = this;
			var filters = [];
			$(tr).children('td.first_cell').children('input[type=hidden]').each(function()
			{
				var row_filter = $(this).attr('value');
				filters.push(row_filter);
			});
			if ( !array_in_array(checked, filters) )
			{
				$(tr).css('display', 'none');
			}
			else
			{
				$(tr).css('display', 'table-row');
			}
		});
		
		var counter=1;
		$('#filtrator_page_carcass table tbody tr').each(function()
		{
			if ( $(this).css('display') == 'table-row' )
			{
				$(this).children('td.first_cell').children('span').html(counter + ')');
				counter++;
			}
		});
	}
	
	function array_in_array (needle, haystack)
	{
		for ( var i=0; i<needle.length; i++)
		{
			if ( in_array( needle[i], haystack ) )
			{
				continue;
			}
			else
			{
				return false;
			}
		}
		return true;
	}
	
	function in_array (what, where)
	{
		for ( var i=0; i<where.length; i++)
		{
			if(what == where[i])
			{ 
				return true;
			}
		}
		return false;
	}
	
	$(document).ready(initialize_filtrator);
})();
