Tal vez el error está en el evento que llama a la función.
Cita: <input type="submit" name="BtnEnviar" value="Enviar >>" onclick="return validar(this);">
Para evitarme problemas, cuando llamo funciones desde los eventos procuro indicar el lenguaje del que se trata. Yo lo pondría así:
Código:
<input type="submit" name="BtnEnviar" value="Enviar >>" onclick="JavaScript: return validar(this);">
NOTA: No entiendo por qué demonios me separa en dos palabras JavaScript pero es una sola palabra en el código.
Saludos