var retry_update_time = 10000;

function updateModels(brands_id, models_id, versions_id, action, format, modeltext) {
    
    if(action == null)
        action = 'getModels';
    
    if(brands_id == null)
        brands_id = 'brands';
    
    if(models_id == null)
        models_id = 'models';
    
    if(format == null)
        format = ['mod_seo', 'mod_name'];

    if(modeltext == null)
    	modeltext = 'Modelo';
    
    if($(brands_id).selectedIndex == 0) {
        $(models_id).disabled = true;
        emptySelect($(models_id), modeltext);
        
        try {
	        $(versions_id).disabled = true;
	        emptySelect($(versions_id), 'Versão');
        } catch (e) {
        }
        
        return false;
    } 

    $(brands_id).disabled   = true;
    $(models_id).disabled   = true;
    
    if(versions_id && versions_id.length > 0) {
        $(versions_id).disabled = true;
        emptySelect($(versions_id), 'Versão');
    }
    
    updateSelect($(models_id), 
                 [], 
                 format, 
                 'A actualizar...');
    
    path = '/ajax/'+action+'/'+$F(brands_id);
                               
    new Ajax.Request(path,  
                    {method: 'get',
                      onSuccess: function(transport) {
                                     
                                     $(models_id).disabled = false;
                                     $(brands_id).disabled = false;
                                     
                                     //if(versions_id && versions_id.length > 0)
                                     //    $(versions_id).disabled = false;
    
                                     emptySelect($(models_id));
                                     updateSelect($(models_id), 
                                                  transport.responseJSON, 
                                                  format, 
                                                  modeltext);
                                 },
                      onFailure: function(transport) {
                                     
                                     $(models_id).disabled = false;
                                     $(brands_id).disabled = false;
    
                                     //if(versions_id && versions_id.length > 0)
                                     //    $(versions_id).disabled = false;
                                     
                                     emptySelect($(models_id));
                                     updateSelect($(models_id), 
                                                  [], 
                                                  format, 
                                                  'Erro a carregar modelos');
    
                                     //setTimeout('updateModels("'+brands_id+'", "'+models_id+'", "'+action+'")', retry_update_time);
                                 }
                        });
    return false;
}

function updateVersions(brands_id, models_id, versions_id, action) {
    
    if(action == null)
        action = 'getVersions';
    
    if ($(models_id).selectedIndex == 0) {
        $(versions_id).disabled = true;
        emptySelect($(versions_id), 'Versão');
        return false;
    } 

    $(brands_id).disabled   = true;
    $(models_id).disabled   = true;
    $(versions_id).disabled = true;
    
    path = '/ajax/'+action+'/'+$F(brands_id)+'/'+$F(models_id); 
    
    new Ajax.Request(path, 
                    {method: 'get',
                      onSuccess: function(transport) {
                                      
                                     $(models_id).disabled = false;
                                     $(brands_id).disabled = false;
                                     $(versions_id).disabled = false;
    
                                     emptySelect($(versions_id));
                                     updateSelect($(versions_id), 
                                                  transport.responseJSON, 
                                                  ['ver_name', 'ver_name'], 
                                                  'Versão');
                                 },
                      onFailure: function(transport) {
                                      
                                     $(models_id).disabled = false;
                                     $(brands_id).disabled = false;
                                     $(versions_id).disabled = false;
    
                                     emptySelect($(versions_id));
                                     updateSelect($(versions_id), 
                                                  [], 
                                                  ['ver_name', 'ver_name'], 
                                                  'Erro a carregar versões');
                                     
                                     setTimeout('updateVersions("'+brands_id+'", "'+models_id+'", "'+versions_id+'", "'+action+'")', retry_update_time);
                                 }
                    });
    return false;
}
