function clearSelect(select)
{
	select.options.length=1;
}

function submitYear(form,ctrl_suffix)
{
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;
	make_s = form['make'+suffix];
	model_s = form['model'+suffix];
	trim_s = form['trim'+suffix];

	clearSelect(make_s);
	clearSelect(model_s);
	clearSelect(trim_s);
	
	form.submit();
}

function submitMake(form,ctrl_suffix)
{
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;
	model_s = form['model'+suffix];
	trim_s = form['trim'+suffix];

	clearSelect(model_s);
	clearSelect(trim_s);

	form.submit();
}

function submitModel(form,ctrl_suffix)
{
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;
	trim_s = form['trim'+suffix];
	clearSelect(trim_s);

	form.submit();
}

function vehicleSelectionHelper(select)
{
	form = select.form;
	prev = new Array();

	switch (select.name)
	{
		case 'make': prev = ['year']; break;
		case 'model': prev = ['year','make']; break;
		case 'trim': prev = ['year','make','model']; break;
	}

	for (i = 0; i < prev.length; i++)
	{
		prev_select = form[prev[i]];
		if (prev_select.value == 0) 
		{
			alert('Please select '+prev[i]+' first!');
			return false;
		}
	}

	return true;
}


// Functions to populate vehicle parts dropdowns, such as 'make' or 'model'

function fillMakes(form, ctrl_suffix)
{
	if (!form) return false;
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;

        if (!(make_select = form['make'+suffix])) return false;

	clearSelect(make_select);
        if (!(model_select = form['model'+suffix])) return false;
	clearSelect(model_select);	

        if ((trim_select = form['trim'+suffix])) clearSelect(trim_select);

        year=form['year'+suffix].value;

        makes=ma['y'+year];
        if (makes==null) return false;

        for (i = 0; i < makes.length; i+=2)
        {
                make_select.options[i/2+1] = new Option(makes[i+1],makes[i],false,false);
        }
}


function fillModels(form,ctrl_suffix)
{
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;

        if (!(model_select = form['model'+suffix])) return false;
	clearSelect(model_select);	
        if ((trim_select = form['trim'+suffix])) clearSelect(trim_select);	

        year=form['year'+suffix].value;
        make=form['make'+suffix].value;

        models=mo['y'+year]['m'+make];

        if (models==null) return false;

        for (i = 0; i < models.length; i+=2)
        {
                model_select.options[i/2+1] = new Option(models[i+1],models[i],false,false);
        }
}

// A wrapper around appropriate xajax subroutine "xajax_fillTrims"
// Takes 'id' as an optional argument which can be used as a suffix for
// vehicle details controls names (year_123, make_123 or so)
function fillTrimsAjax(ctrl_suffix)
{
	var suffix = (ctrl_suffix==null) ? '' : '_'+ctrl_suffix;

	year = document.getElementById('year'+suffix).value;
	make = document.getElementById('make'+suffix).value;
	model = document.getElementById('model'+suffix).value;

	return xajax_fillTrims(year,make,model,ctrl_suffix==null ? '' : ctrl_suffix);
}
