Allora .. (l'esempio è per 'nome', ma vale per tutti i campi):
Tu scrivi:
codice:
function control(form_id,nome,cognome,email,cemail,pw,cpw,cf,tel) {
var nome = document.forms[form_id].elements[nome].value;
.....
Prima domanda:
ORA, cosa contiene la variabile nome ??

Se hai capito cosa contiene, hai anche capito che se fai, dopo, :

codice:
if((nome == '')||(nome == "undefined"))
{ var nome2 = document.forms[form_id].elements[nome];
...
sei perfettamente conscio che la variabile nome2 non vale nulla, a meno che,
per una fortuna sfacciata, il value del campo nome valesse esattamente 'nome' ...

Quindi:
codice:
function control(form_id,nome,cognome,email,cemail,pw,cpw,cf,tel) {
var ValoreNome = document.forms[form_id].elements[nome].value;
.....
if((ValoreNome == '')||(ValoreNome == "undefined"))
{ var nome2 = document.forms[form_id].elements[nome];
...
HTH
Zappa