ho parametrizzato all'inizio della funzione il prefisso del nome dei campi
codice:
function AbilitaRighe(tt){
	prefisso1 = 'prodotto_dettaglio_'
	prefisso2 = 'prodotto_descrizione_'
	var numero,abilita,altrovalore
	if(tt.name.substr(0,prefisso1.length)==prefisso1){
		numero = parseInt(tt.name.substr(prefisso1.length),10)
		altrovalore = tt.form.elements[prefisso2+numero].value
	}
	else{
		numero = parseInt(tt.name.substr(prefisso2.length),10)
		altrovalore = tt.form.elements[prefisso1+numero].value
	}
	abilita = (tt.value!='' && altrovalore!='')
	if(tt.form.elements[prefisso1+(numero+1)]){
		tt.form.elements[prefisso1+(numero+1)].readOnly=!abilita
		tt.form.elements[prefisso2+(numero+1)].readOnly=!abilita
	}
	abilita = (tt.value!='' || altrovalore!='')
	if(tt.form.elements[prefisso1+(numero-1)]){
		tt.form.elements[prefisso1+(numero-1)].readOnly=abilita
		tt.form.elements[prefisso2+(numero-1)].readOnly=abilita
	}
}
io l'ho provato e funzia... se continua a dare errore ci sarà qualcos'altro
famme sape'