L'ho semplificato un pò! Ho tolto i case e messo una funzione (segnata in rosso) che però non viene del tutto rispettata
codice:
<script language="javascript">

   function comp_originale_<%=rs("cat_comp")%>(nome, valore) {
   for (i=0;i<document.Form_Controllo_Prezzo[nome].length;i++){
   if (document.Form_Controllo_Prezzo[i].checked==true)    {
   originale = valore;
   break
   } else {
   originale = document.Form_Controllo_Prezzo[i].prezzo;
   } 
   }
   }
   
function segno(nome, indice){
var diff = parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale);

if (diff >= 0){
str_diff = "[+"+(Math.abs(parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale)))+" euro]";
} else if (diff == 0){
str_diff = "";
} else {
str_diff = "[-"+(Math.abs(parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale)))+" euro]";
}
}  

function scrivivalore_<%=rs("cat_comp")%>(fieldvalue, nome){

for (i=0;i<document.Form_Controllo_Prezzo[nome].length;i++){     
			if (document.getElementById('primo_<%=rs("cat_comp")%>')){
	segno(nome, 0)
    document.getElementById('primo_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('secondo_<%=rs("cat_comp")%>')){
	segno(nome, 1)
	document.getElementById('secondo_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('terzo_<%=rs("cat_comp")%>')){
	segno(nome, 2)
	document.getElementById('terzo_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('quarto_<%=rs("cat_comp")%>')){
	segno(nome, 3)
	document.getElementById('quarto_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('quinto_<%=rs("cat_comp")%>')){
	segno(nome, 4)
	document.getElementById('quinto_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('sesto_<%=rs("cat_comp")%>')){
	segno(nome, 5)
	document.getElementById('sesto_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('settimo_<%=rs("cat_comp")%>')){
	segno(nome, 6)
	document.getElementById('settimo_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('ottavo_<%=rs("cat_comp")%>')){
	segno(nome, 7)
	document.getElementById('ottavo_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}if (document.getElementById('nono_<%=rs("cat_comp")%>')){
	segno(nome, 8)
	document.getElementById('nono_<%=rs("cat_comp")%>').innerHTML = str_diff;
	}
  }	
}
</script>
Non viene rispettata la condizione per la quale se la differenza è pari a 0 non si debba scrivere niente a video! Le altre due però vengono considerate :master: