$(document).ready(function() {
	if (0 < $('#sliderContainer').size() && 0 < $('#sliderBody').size()) {
		$('#sliderBody').appendTo('#sliderContainer');
		$('#sliderBody').css('display', 'block');
	}

	$('.sparesFinder select:not(:first)').each(function(i) {
		$(this).attr('disabled', 'disabled');
	});

	getEntityItems($('.sparesFinder select:first'));
	$('.selector:not(:last)').change(function() {
		var sender = $(this);

		// when change filter disable all next selectors
		sender.parents('li')
			.nextAll('li:not(.action)')
			.each(function(i) {
				var selector = $(this).find('select');
				selector.find('option:not(:first)').each(function(i) {
					$(this).remove();
				});
				selector.attr('disabled', 'disabled');
		});

		if ('' == sender.val() || null == sender.val()) {
			return;
		}

		getEntityItems(sender);
	});

	$('#searchBtn').click(function(e) {
		e.preventDefault();
		if (0 < $('.sparesFinder select:disabled').size()) {
			return;
		}
		else if ('' == $('.sparesFinder select:last').val()) {
			return;
		}
		window.location = '/catalogue/car_id/'+$('.sparesFinder select:not(:disabled):last').val();
	});

	$('.selector:last').click(function(){
		if ('' != $(this).val()) {
			$('#searchBtn').css('opacity', '1');
			$('#searchBtn').css('cursor', 'pointer');
		}
		else {
			$('#searchBtn').css('opacity', '0.6');
		}
	});
});

function generateOptions(data)
{
	// trying parse json
	try {
		data = $.parseJSON(data);
	}
	catch (e) {
		return;
	}

	// choose selector to append options
	var selector = $('.sparesFinder select:not(:disabled):last');

	// append options to select
	for (var i in data) {
		if ('undefined' != typeof(data[i].title) && 'undefined' != typeof(data[i].id)) {
			selector.append('<option value="'+data[i].id+'">'+data[i].title+'</option>');
		}
		else {
			selector.append('<option value="'+data[i]+'">'+data[i]+'</option>');
		}
	}
}

function getEntityItems(sender)
{
	if ('undefined' == typeof(sender)) {
		return;
	}
	$.ajax({
		url		: '/ajax/slider/get_category_by_filter.php?'+$('#ymm').serialize(),
		type	: 'GET',
		success	: function(data) {
			if ('' != sender.val() && null != sender.val()) {
				$('.sparesFinder select:disabled:first').removeAttr('disabled');
			}
			generateOptions(data);
		}
	});
}
