Salve a tutti ho scritto le seguenti funzioni:


codice:
            var idFadeOut;
            var g_Current=0;
            function    coverFadeOut(elmCoverImg){


                        //var elmCoverImg = document.getElementById("coverImg");
                        var iCurrentOpacity = elmCoverImg.style.opacity;
                        elmCoverImg.style.opacity= iCurrentOpacity - 0.2;
                        
                        var idFadeOut;
                        
                        if    (elmCoverImg.style.opacity>0){
                        
                            idFadeOut = setInterval(function(){coverFadeOut(elmCoverImg)},200);
                            document.getElementById("text").innerHTML = elmCoverImg.style.opacity + " opacità";                            
                        }else{
                            clearInterval(idFadeOut);
                            g_Current++
                            document.getElementById("text2").innerHTML = g_Current + " Terminato";    
                        }
            }
            
            function    coverSlideShow(){
                        
                        var elmCoverImg =  document.getElementById("coverImg_" + g_Current);
                        coverFadeOut(elmCoverImg);
            
            }
            
            onload= function(){
                var iCountId=0;
                coverSlideShow();
            }
Putroppo però la funzione non si ferma quando richiamo clearInterval, il ramo dell'else viene continuamente eseguito (come dimostra l'incremento del valore che stampo a video).
Mi viene in mente che clearInterval elimini l'id del task creato precedentemente dal setInterval in questo caso eliminerebbe soltanto l'ultimo settato.
Può essere questo il problema?
Se sì come risolvo?

Se no mi sapete dare suggerimenti?
Grazie a chi mi darà una mano!