var searchFilter = 
{
	init: function() 
	{
		$('.js-selectbox').selectbox();
		$('#browse_add').click(function() { searchFilter.add(); });
		$('#browse_buttons .delete').click(function(){ searchFilter.rem( this.id ); $('#search_filter_form').submit(); });
				
		$('.js-selectbox').change(function()
		{
			id = this.id.substr(this.id.lastIndexOf('_')+1);
			name = this.name.replace('[]', '');
			
			if(name == 'must_have' || name == 'game_tags') 
			{
				if(($('#must_have_'+id).val() == 0 || $('#game_tags_'+id).val() == 0) && (id !=0))
				{ return false; } 
			}
			
			$('#search_filter_form').submit(); 
		}); 
	},
	
	add: function()
	{
		searchFilter.next = $('#must_have_container select:last').attr('id');
		searchFilter.next = parseInt(searchFilter.next.substr(searchFilter.next.lastIndexOf('_')+1)) + 1;
		searchFilter.addSelect('#must_have_container');
		searchFilter.addSelect('#game_tags_container');
		searchFilter.addRemoveButton();
	},
	
	addSelect: function(selector)
	{
		$(selector + ' .x-box:last').clone(true).appendTo(selector)
			.children(':not(select)').remove().end()
			.find(':selected').removeAttr("selected").end()
			.find('select').attr({ id: function(){ return searchFilter.newId(this) } })
			.change(function()
			{
				id = this.id.substr(this.id.lastIndexOf('_')+1);
				name = this.name.replace('[]', '');
				
				if((name == 'must_have' || name == 'game_tags') && ($('#must_have_'+id).val() == 0 || $('#game_tags_'+id).val() == 0)) { return false; }
				$('#search_filter_form').submit(); 
			})
			.selectbox(); // apply the custom style
	},
	
	addRemoveButton: function()
	{
		$('<input type="button" class="browse_button delete" id="browse_remove_button_' + searchFilter.next + '" value="" />').appendTo('#browse_buttons')
			.click(function(){ searchFilter.rem( this.id ); $('#search_filter_form').submit(); });
	},
	
	newId: function(el)
	{
		var name = $(el).attr('id');
		return (name.substr(0, name.lastIndexOf('_')+1)) + searchFilter.next;
	},
	
	rem: function(id)
	{
		id = id.substr(id.lastIndexOf('_')+1);
		$('#must_have_'+id).parent().remove();		
		$('#game_tags_'+id).parent().remove();		
		$('#browse_remove_button_'+id).remove();
	}
};


$(function()
{
	searchFilter.init();
});
