Ho provato a cambiarlo per fare in modo di passargli l'id dell'oggetto, così:

Codice PHP:
    function toggle_visibility(idx){
        var 
oggetto document.getElementById(idx);
        
alert ('Parto'); 
        if(
oggetto.style.display == 'none'){
            
oggetto.style.display 'block';
            
alpha 0;
            
quantita 0.05;
            
oggetto.style.opacity alpha;
            
alert('Non visibile: lo metto visibile con alpha = '+alpha+'('+oggetto.style.opacity+'); Incremento = '+quantita);
            }
        else{
            
alpha 1;
            
oggetto.style.opacity alpha;
            
quantita = -0.05;
            
alert('Visibile: lo metto visibile con alpha = '+alpha+'('+oggetto.style.opacity+'); Incremento = '+quantita);
        }
        
cambia_alpha(alpha,quantita,idx);
    }
    function 
cambia_alpha(alpha,quantita,idx){
        var 
oggetto document.getElementById(idx);

        
alpha+=quantita//Si ferma qui
        
oggetto.style.opacity alpha;

        
alpha=alpha*100;
        
alpha=parseInt(alpha);
        
alpha=alpha/100;
        
        
alert('Cambio alpha = '+alpha+'('+oggetto.style.opacity+')');
        
        if(
alpha>0&&alpha<1){
            
setTimeout("cambia_alpha("+alpha+","+quantita+","+idx+")",200);
        }else{
            if(
alpha==0)
                
oggetto.style.display 'none';
            
alert('Basta');
        }
    } 
Noterete che ho rinominato la prima funzione... Comunque succede questo:
Esegue toggle_visibility()
Esegue cambia_alpha()
La riesegue e si ferma dove chè il commento.

Per me è inspiegabile, magari per voi è una cavolata...
GRAZIE ANCORA