ho provato a modificare il codice copiandoti:
codice:
function setSize(el,value) {
    el.style.height = value+"px";
}
 
function ridimensiona(opt,id){
	imm = document.getElementById(id);
	hgt = document.getElementById(id).style.height.split("px");
	h = hgt[0];
	if(opt == 'max') var stop= 100;
	if(opt == 'min') var stop= 40;
    var timeoutID = window.setInterval(f, 10);
    function f(){ 
		if(opt == 'max'){  
	        if(h<stop){
	            h += 1;
	            setSize(imm,h);
	        	}
	        else {
	             window.clearTimeout(timeoutID);
	        	}
	    	}
		if(opt == 'min'){  
	        if(h>stop){
	            h -= 5;
	            setSize(imm,h);
	        	}
	        else {
	            window.clearTimeout(timeoutID);
	        	}
	    	}	    	
    }
}

...
...
...
... onmouseover="ridimensiona('max','imm_menu_1')" onmouseout="ridimensiona('min','imm_menu_1')" />...
1) l'ingrandimento viene SPARATO ed è istantaneo, mentre la riduzione è fluida come dovrebbe.
2) invece di fermarsi a 100 l'immagine viene ingrandita!

mi puoi aiutare?