Salve a tutti!!

Sono di nuovo qui per esporre i miei abbozzi di script non funzionanti, sperando nella vostra pazienza

codice:
<script language="javascript" type="text/javascript">

function synchronize(ActValue,n,x) {
for(var i=n;i<=x;++i)
// impongo lo stesso valore della select "Articolo(i)"
// a tutte le select "Articolo(i+1)" se hanno .value=0
//(ovvero nessun valore selezionato)

	if (document.forms[0].elements['Articolo'+i].value == 0)
	{ document.forms[0].elements['Articolo'+i].value=ActValue;
	}
}

function synchronize1(ActValue,n,x) {
// impongo lo stesso valore della select costo(i)"
// a tutte le select costo(i+1)" se 
// la select "articolo(i)" ha lo stesso valore della select articolo(i+1)
for(var i=n;i<=x;++i)
	if (document.forms[0].elements['Articolo'+(i+1)].value == document.forms[0].elements['Articolo'+i].value) {
  document.forms[0].elements['costo'+i].value=ActValue;
	}
}
</script>
Brevemente si tratta di due funzioni che, a partire da una generica select(i) , impongono il suo valore a tutte le select seguenti a meno di casi particolari (che ho evidenziato nel codice).

Se tolgo i cicli if tutto funziona (chiaramente saltando le eccezioni), con gli if non fa nulla.

Cosa ho sbagliato?
Grazie