Se sono radio, la sintassi cambia.

Mi sono dimenticato un paio di graffe:
codice:
function control(ff){
  if (ff.legals[0].checked) {
    return true;
  } else {
    alert("Leggere e accettare le note legali.");
    return false;
  }
}
non usare nomi uguali per variabili diverse: fai confusione tu e rischi di commettere errori.

Dentro la funzione la varibaile (locale) ff indica l'oggetto form, non il suo nome, dato che e` stato passato l'oggetto.