jQuery(document).ready(function($) {
	$("#category1_select, #category2_select, #category3_select").change(function() {
		_category_select_click($, this, 'categories');
	});
	$("#services_category1_select, #services_category2_select").change(function() {
		_category_select_click($, this, 'services_categories');
	});
});

function _category_select_click($, obj, section) {
	var AJAX_URL = "/as/modules/catalogue/";
	var prefix = (section=='services_categories') ? 'services_' : '';
	var $this = $(obj);
	var $div = $this.closest('.catalogue-select-category');
	
	if ($this.attr('id')==prefix+'category1_select') {
		var level = 2;
		$div.find('#arrow2').hide();
		$div.find('#'+prefix+'category3_select').hide();
		$div.find('#arrow3').hide();
		$div.find('#brand_select').hide();
		_select_clear($div.find('#'+prefix+'category3_select').get(0));
	} else if ($this.attr('id')==prefix+'category2_select') {
		var level = 3;
		$div.find('#arrow3').hide();
		$div.find('#brand_select').hide();
	} else if ($this.attr('id')==prefix+'category3_select') {
		var level = 'brand';
	}
	
	if (level == 'brand') {
		var $target_select = $div.find('#brand_select');
		if (!$target_select) return;
		$target_select.hide();
		$div.find('#arrow3').hide();
		_select_clear($target_select[0]);
		if ($this.val()!=0) {
			$.getJSON(AJAX_URL + '?a=get_category_brands&cat=' + $this.val(), function(json) {
				if (json.length) {
					_select_set_options($target_select[0], json);
					$target_select.show();
					$div.find('#arrow'+(level-1)).show();
				}
			});
		}
	} else {
		var $target_select = $div.find('#'+prefix+'category'+level+'_select');
		$target_select.hide();
		$div.find('#arrow'+(level-1)).hide();
			
		_select_clear($target_select[0]);
		if ($this.val()!=0) {
			$.getJSON(AJAX_URL + '?a=get_categories&section='+section+'&parent=' + $this.val(), function(json) {
				if (json.length) {
					_select_set_options($target_select[0], json);
					$target_select.show();
					$div.find('#arrow'+(level-1)).show();
				}
			});
		}
	}
}