function ValidarFormulario(elmFORM) { 
 var Mensaje = ''; 
 var cnjFORM = elmFORM.elements; 
 for (var i=0; i<cnjFORM.length; i++) { 
   if (cnjFORM[i].className.indexOf('Obligatorio')!=-1) { 
     if (! tieneDatos(cnjFORM[i].value)) { 
       Mensaje+='El campo '+cnjFORM[i].name+' no puede estar vacío.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Fecha')!=-1) { 
     if (! esFecha(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una fecha válida (dd-mm-aaaa).\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Numerico')!=-1) { 
     if (! esNumerico(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' sólo puede contener números.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Email')!=-1) { 
     if (! esEmail(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una dirección de correo válida.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Url')!=-1) { 
     if (! esURL(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una dirección web válida.\n'; 
       } 
     } 
   
   } 
 if (Mensaje != '') {
 	alert(Mensaje)
 }else{
 	elmFORM.submit();
 }; 
}

function tieneDatos(Valor) { 
 for (var i=0; i<Valor.length; i++) { 
   if ((" \t\n\r").indexOf(Valor.charAt(i))==-1) return true; 
   } 
 return false; 
}
 
function esNumerico(Valor) {
 if (!tieneDatos(Valor)) return true; 
 return (parseInt(Valor)); 
}
 
function esFecha(Valor) { 
 if (!tieneDatos(Valor)) return true; 
 var DatosFecha = Valor.split('-'); 
 var Fecha = new Date(); 
 Fecha.setFullYear(DatosFecha[2],DatosFecha[1]-1,DatosFecha[0]); 
 return (Fecha.getMonth()==DatosFecha[1]-1); 
}

function esEmail(email){
 if (!tieneDatos(email)) return true; 
if( email.indexOf('@',0) <= 0  || email.indexOf(';',0) != -1
     || email.indexOf(' ',0) != -1 || email.indexOf('/',0) != -1
     || email.indexOf(';',0) != -1 || email.indexOf('<',0) != -1
     || email.indexOf('>',0) != -1 || email.indexOf('*',0) != -1
     || email.indexOf('|',0) != -1 || email.indexOf('`',0) != -1
     || email.indexOf('&',0) != -1 || email.indexOf('$',0) != -1
     || email.indexOf('!',0) != -1 || email.indexOf('"',0) != -1
     || email.indexOf(':',0) != -1 ) { 
	 return false; 
}
else return true;
}

function esURL(Web) {
if (!tieneDatos(Web)) return true; 
else
    if( (Web.substring(0, 7) == 'http://') || (Web.substring(0, 7) == 'HTTP://')) {
		return true;
    }
    else {
		return false;
	}
}
