loadModels = function(){
	if (!$('#SelectMake').val()){
		document.getElementById('SelectModel').disabled = true;
		$('#SelectModel').html('<option></option>');
		disableFields(true, '');
		return false;
	}
	document.getElementById('SelectModel').disabled = true;
	$('#SelectModel').html('<option value="">loading...</option>');
	$.getJSON('/getmodels.php',
	{
		make: $('#SelectMake').val(),
		'type': type
	},
	function(data, status){
		$('#SelectModel').html('<option value="">Any</option>');
		if (status.toLowerCase() == 'success'){
			for(var model in data){
				model = model.toLowerCase();
				var isSelected = '';
				if (model.toLowerCase() == selectedModel.toLowerCase()){
					isSelected = 'selected="selected"';
				}
				$('#SelectModel').append('<option value="'+model+'"' + isSelected + '>' + model +'</option>');
			}
			loadFields();
		}
		document.getElementById('SelectModel').disabled = false;
		return false;
	});
	return false;
}

function disableFields(disable, loading)
{
	if (isNaN(loading)){
		loading = 'loading...';
	}
	var ids = new Array('SelectSeries', 'SelectVariant', 'SelectBody', 'SelectSeats', 'SelectBodyColour', 'SelectTransmission');
	for (var i = 0; i < ids.length; i++) {

		document.getElementById(ids[i]).disabled = disable;
		if (disable) {
			document.getElementById(ids[i]).innerHTML = '<option value="">'+loading+'</option>';
		}
	}
}

var loadFields = function(){
	if (!$('#SelectMake').val() && !$('SelectModel').val()){
		disableFields(true, '');
		return false;
	}
	disableFields(true);
	var cmake = $('#SelectMake').val()? $('#SelectMake').val() : '';
	var cmodel = $('#SelectModel').val()? $('#SelectModel').val() : '';
	var cbadge = $('#SelectVariant').val()? $('#SelectVariant').val() : '';
	var cseries = $('#SelectSeries').val()? $('#SelectSeries').val() : '';

	$.getJSON('/getfields.php',
	{
		make: cmake,
		model: cmodel,
		badge : cbadge,
		series: cseries,
		'type': type
	},
	function(data, status)
    {
		var fields = new Array('series', 'badges', 'bodies', 'seats', 'body_colours', 'gear_boxes');
		var ids = new Array('SelectSeries', 'SelectVariant', 'SelectBody', 'SelectSeats', 'SelectBodyColour', 'SelectTransmission');
		for (var i = 0; i < fields.length; i++) {
			
			var elem = document.getElementById(ids[i]);

			$(elem).html('<option value="">Any</option>');
			if (status.toLowerCase() == 'success'){
				var options = data[fields[i]];
				var selectedOption ;selectedOption = eval('selected_'+fields[i]);
				
				for (var option in options){
					
					var selected = '';
					if (option.toLowerCase() == selectedOption.toLowerCase()){
						selected = 'selected="selected"';
					}
					$(elem).append('<option value="' + option + '" ' + selected + '>' + option + '</option>');
				}
			}
		}
		disableFields(false);
	});
	return false;
};

loadModels();
$('#SelectMake').change(loadModels);
$('#SelectModel').change(loadFields);

$('.FormSubmitLink').click(function(){	
	document.getElementById('AdvancedForm').submit(); return false;
});
