Hola a todos:
Quería indicar unos errores del script inicial, y también de los arreglos de angsanchez (¡Hola

!)...
Al evaluar:
if (('f.'+[text]+'.value') == ''){
alerta = true;
}
... o la versión:
if (('f.'+text+'.value') == ''){
tenemos que 'f.' es una cadena de texto y nunca un formulario:
var f = document.forms['form1'];
Con la versión original se hubiera podido considerar elementos del formulario cosas así:
eval('f.'+text+'.value').
o
f[text].value
De todos modos, si está solucionado, solo podrá servir como referencia.
Saludos