function show_models (makeobj, modelobj, modelsel)
{
	var makename = makeobj.value;
	
	new Ajax.Request('/resources/get_models.php', {
		method: 'get',
		parameters: {make: makename},
		onSuccess: function(transport) {
			var option_array = transport.responseText.split(',');
			modelobj.options.length = 0;
			for (var i=0; i<option_array.length; i++)
			{
				var newopt = document.createElement('option');
				newopt.text = option_array[i];
				newopt.value = option_array[i];
				if (option_array[i] == modelsel)
					newopt.selected = true;
				
				modelobj.options.add(newopt);
			}
		}
	});
}

function process_search_form (formobj)
{
	// time to validate the search form
	var search_url = new Array();
	var search_err = '';
	
	// check the fields, add the values to the URL if they are present.
	// add any errors to the error message
	
	// make/model
	search_url.push('make='+formobj.make.value);
	if (formobj.model.value != '')
		search_url.push('model='+formobj.model.value);
	
	// year: make sure year_from <= year_to
	if (formobj.year_from.value != '' || formobj.year_to.value != '')
	{
		if (formobj.year_from.value > formobj.year_to.value ||
			(formobj.year_from.value == '' && formobj.year_to.value != ''))
		{
			search_err += "Start year must be less than or equal to end year!\n";
		}
		else
		{
			if (formobj.year_from.value != '')
				search_url.push('year_from='+formobj.year_from.value);
			if (formobj.year_to.value != '')
				search_url.push('year_to='+formobj.year_to.value);
		}
	}
	
	// price
	if (formobj.price_min.value > 0 || formobj.price_max.value < 9999999)
	{
		if (formobj.price_min.value > formobj.price_max.value)
			search_err += "Start price must be less than or equal to end price!\n";
		else
		{
			if (formobj.price_min.value > 0)
				search_url.push('price_min='+formobj.price_min.value);
			if (formobj.price_max.value < 9999999)
				search_url.push('price_max='+formobj.price_max.value);
		}
	}
	
	// mileage
	if (formobj.mileage_min.value > 1 || formobj.mileage_max.value < 9999999)
	{
		if (formobj.mileage_min.value > formobj.mileage_max.value)
			search_err += "Start mileage must be less than or equal to end mileage!\n";
		else
		{
			if (formobj.mileage_min.value > 1)
				search_url.push('mileage_min='+formobj.mileage_min.value);
			if (formobj.mileage_max.value < 9999999)
				search_url.push('mileage_max='+formobj.mileage_max.value);
		}
	}
	
	// zip/distance
	if (formobj.zip.value.length == 5 || formobj.zip.value.length == 6)
	{
		search_url.push('zip='+formobj.zip.value);
		search_url.push('distance='+formobj.distance.value);
	}
	else if (formobj.zip.value != '')
		search_err += "Zip code is not valid!\n";

	//alert(formobj.make.value);
	if (search_err != '')
		alert(search_err);
	else
		window.location = '?'+search_url.join('&');
		//alert(search_url.join('&'));
		
	
	return false;
}