
$(document).ready(function(){
	$('#type').change(function(){
		var $me = $(this);
		var type = $me.attr('value');
		var $make = makeList(vehicleObj[type]);
		var currentMake = $make.attr('value');
		var $model = modelList(vehicleObj['models'][currentMake]);
		updateYears(type);
		updateMileage(type);
	});
	
	$('#make').change(function(){
		var $make = $(this);
		var currentModel = $make.attr('value');
		var $model = modelList(vehicleObj['models'][currentModel]);
	});
	
	$('#type').change();
});

//update options in make dropdown.  returns jquery object reference to make
function makeList(list)
{
	var $make = $('#make');
	var currentMake = $make.attr('value');
	var optionIndex = 1;
	var dropdown = $make.get(0)
	dropdown.options.length = 0;
	dropdown.options[0] = new Option('Select Make', '', true, false);
	for(i in list)
	{
		dropdown.options[optionIndex] = new Option(list[i], list[i], false, list[i] == currentMake);
		optionIndex++;
	}
	
	return $make;
}

function modelList(list)
{
	var $model = $('#model');
	var currentModel = $model.attr('value');
	var optionIndex = 1;
	var dropdown = $model.get(0)
	dropdown.options.length = 0;
	dropdown.options[0] = new Option('Select Model', '', true, false);

	if(!list)
	{
		dropdown.disabled = true;
		return false;
	}
	dropdown.disabled = false;
	
	for(i in list)
	{
		dropdown.options[optionIndex] = new Option(list[i], list[i], false, list[i] == currentModel);
		optionIndex++;
	}
	
	return $model;
}

function updateYears(listType)
{
	var $yearMin = $('#year-min');
	var $yearMax = $('#year-max');
	var currentMin = $yearMin.attr('value'), currentMax = $yearMax.attr('value');
	var minDrop = $yearMin.get(0), maxDrop = $yearMax.get(0);
	var year = (new Date()).getYear() + 1;
	var minYear = null, loopVar = 1;
	if (year < 1900)	//normalize year just in case
		year += 1900;

	minDrop.options.length = 0;
	maxDrop.options.length = 0;
	
	minDrop.options[0] = new Option('Oldest', '', true, false);
	maxDrop.options[0] = new Option('Newest', '', true, false);
	
	if(listType == 'new')
	{
		minYear = year - 2;
	}
	else
	{
		minYear = year - 30;
	}
	
	for(var i = year; i >= minYear; i = i - 1)
	{
		minDrop.options[loopVar] = new Option(i, i, false, currentMin == i);
		maxDrop.options[loopVar] = new Option(i, i, false, currentMax == i);
		loopVar++;
	}
}

function updateMileage(listType)
{
	var minDrop = $('#mileage-min').get(0), maxDrop = $('#mileage-max').get(0);
	if(listType == 'new')
	{
		minDrop.disabled = true;
		maxDrop.disabled = true;
	}
	else
	{
		minDrop.disabled = false;
		maxDrop.disabled = false;
	}

}