Event.observe(document, 'dom:loaded', function(event) {
	
	var filters = $$('.filters input');
	
	exp_last_radio_filter_checked = filters.find(function(filter) {
		return filter.readAttribute('type') == 'radio' && filter.checked;
	});
	
	filters.each(function (filter) {
		filter.observe('click', function(event) {
			if (this.readAttribute('type') == 'radio' && this == exp_last_radio_filter_checked) return;
			filters.invoke('disable');
			save_preferences(this);
		});
	});
	
	function save_preferences(filter) {
		new Ajax.Request(exp_ajax_php_file, {
			method: 'post',
			parameters: {
				action: 'save_preferences',
				category_slug: filter.id.substr(7),
				checked: filter.checked,
				last_checked_category_slug: (filter.readAttribute('type') == 'radio') ?
											exp_last_radio_filter_checked.id.substr(7) :
											null
			},
			onSuccess: function(transport) {
				
			},
			onComplete: function(transport) {
				if (filter.id == 'filter-custom-actu-preferences') {
					[filter.next().next(), filter.parentNode.previous()].invoke('toggle');
				}
				if (filter.readAttribute('type') == 'radio') {
					[filter.next().next(), exp_last_radio_filter_checked.next().next()].each(function(subfilters) {
						if (subfilters) subfilters.toggle();
					});
					exp_last_radio_filter_checked = filter;
				}
				filters.invoke('enable');
			}
		});
	}
	
});
