Hola:
Bueno, al menos parece que la validación mejora, porque lo único que hace es comprobar que el campo esté vacío o no.
Pones el formulario como parámetro de la función:
<form onsubmit="return validar(this)" ... >
El this es muy importante si sigues mi ejemplo... si no pones this, dentro de la función deberías indicar que f es el formulario...
funacion validar() {
f = document.forms["formulario1"];
// el resto creo que igual
}
Pruébalo y nos cuentas.
Saludos