var _makeSel = null;
var _yearSel = null;
var _modelSel = null;

var _cache     = []
var _cacheMap  = []

function updateModels( iYear, sMake )
{
    initFieldVars();
    
    sCurSel = _modelSel.value;           
    _makeSel.disabled = true;
    _modelSel.disabled = true;
    aModels = [];
     
	jQuery.get( "/autos/models", { make: sMake, year: iYear }, function(data, textStatus) {
	    jQuery("model", data).each(function(index, domEl) {
	        aModels[ index ] = jQuery(domEl).attr('name');
	    });
	    
        _updateSelectBox( aModels, _modelSel, sCurSel );    
        _makeSel.disabled = false;
        _modelSel.disabled = false;
	    
	});  
  
}

function updateMakes( iYear, bRecurse )
{

    initFieldVars();
    sCurSel = _makeSel.value;           
    _makeSel.disabled = true;
    aMakes = [];
     
    jQuery.get( "/autos/makes", { year: iYear }, function(data, textStatus) {
        jQuery("manufacturer", data).each(function(index, domEl) {
            aMakes[ index ] = jQuery(domEl).attr('name');
        });
                
        _updateSelectBox( aMakes, _makeSel, sCurSel ); 
        
        //update our models, if needed   
        if ( bRecurse && _modelSel.value != '' )
        {
            updateModels( iYear, _makeSel.value ); 
        }
        _makeSel.disabled = false;
                
    });     
}

function _updateSelectBox( aValues, oSelect, sCurSel )
{
    oSelect.options.length = 1;
    oSelect.selectedIndex = 0;
    
    for( i = 0; i < aValues.length; i++ )
    {
        oSelect.options[ i + 1 ] = new Option( aValues[i] );
        if ( aValues[i] == sCurSel ) oSelect.selectedIndex = i+1;
    }
}

function initFieldVars()
{
    _makeSel = document.getElementById('VehicleVehicleMakeName');
    _yearSel = document.getElementById('VehicleYear');
    _modelSel = document.getElementById('VehicleVehicleModelName');

}