function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener un email válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe contener un número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' debe contener un número entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligado.\n'; }
  } if (errors) alert('Tiene (el)los siguiente(s) error(es):\n'+errors);
  document.MM_returnValue = (errors == '');
}

function validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener un email válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe contener un número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' debe contener un número entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligado.\n'; }
  } if (errors) alert('Tiene (el)los siguiente(s) error(es):\n'+errors);
             var enviar = false
         if (document.contactar.acepto_contactar.checked == true)
                 enviar = true
         else
                 if (document.contactar.acepto_contactar.checked == true)
                        enviar = true
                 else
                        enviar = false
          if (enviar == false)
          {
                 alert("Debe leer y aceptar la Ley de Privacidad.")
                 return false
          }
          else
                 return true 
document.returnValue = (errors == '');
}



<!-- Principio
function emailCheck (emailStr) {
/* Verificar si el email tiene el formato user@dominio. */
var emailPat=/^(.+)@(.+)$/; 

/* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; 

/* Verifica los caracteres que son válidos en una dirección de email */
var validChars="\[^\\s" + specialChars + "\]"; 

var quotedUser="(\"[^\"]*\")"; 

/* Verifica si la dirección de email está representada con una dirección IP Válida */ 


var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;


/* Verificar caracteres inválidos */ 

var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
/* domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");


var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
/*alert("Email address seems incorrect (check @ and .'s)");*/
return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Si el user "user" es valido 
if (user.match(userPat)==null) {
// Si no
/*alert("El nombre de usuario no es válido.");*/
return false
}

/* Si la dirección IP es válida */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
/*alert("IP de destino inválida");*/
return false
}
}
return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
/*alert("El dominio parece no ser válido.");*/
return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { 

/*alert("La dicrección debe tener 3 letras si es .'com' o 2 si en de algún pais.");*/
return false
}

if (len<2) {
var errStr="La dirección es erronea"
/*alert(errStr);*/
return false
}

// La dirección de email ingresada es Válida
return true;
}
// End -->


function CompararCadenas(){
			if(document.formulario.inputUno.value == document.formulario.inputDos.value){
 				if(document.formulario.inputUno.value == "" && document.formulario.inputDos.value == "")
					alert("Cadena 1 y Cadena 2 no tienen un valor asignado")
				else
					alert("Cadena 1 igual a Cadena 2")
			}	else
				if(document.formulario.inputUno.value != document.formulario.inputDos.value)
					alert("Cadena 1 es diferente de Cadena 2")
		}

function Validar(form){
var mail=emailCheck(formulario.email_com.value);
if (mail == false)
{ alert("Debe especificar un correo de contacto"); formulario.email_com.focus(); return; }

if (formulario.usuario.value == "")
{ alert("Es obligatorio escoger un Nombre de Usuario"); formulario.usuario.focus(); return; }

if (formulario.password.value == "")
{ alert("Debe especificar una contraseña"); formulario.password.focus(); return; }

if (formulario.repassword.value == "")
{ alert("Repita su contraseña"); formulario.repassword.focus(); return; }

if (formulario.repassword.value != formulario.password.value)
{ alert("Debe repetir la misma contraseña"); formulario.repassword.focus(); return; }

if (formulario.acepto_privacidad.checked == false)
{ alert("Debe aceptar la Ley de Privacidad"); formulario.acepto_privacidad.focus(); return; }


formulario.submit();
}

function ValidarE(form){
if (formularioE.tele_emp.value == "")
{ alert("Debe introducir un Teléfono"); formularioE.tele_emp.focus(); return; }

if (formularioE.fax_emp.value == "")
{ alert("Debe introducir un Fax"); formularioE.fax_emp.focus(); return; }

var mail=emailCheck(formularioE.email_emp.value);
if (mail == false)
{ alert("Debe especificar un correo de contacto"); formularioE.email_emp.focus(); return; }

if (formularioE.usuario.value == "")
{ alert("Es obligatorio escoger un Nombre de Usuario"); formularioE.usuario.focus(); return; }

if (formularioE.password.value == "")
{ alert("Debe especificar una contraseña"); formularioE.password.focus(); return; }

if (formularioE.repassword.value == "")
{ alert("Repita su contraseña"); formularioE.repassword.focus(); return; }

if (formularioE.repassword.value != formularioE.password.value)
{ alert("Debe repetir la misma contraseña"); formularioE.repassword.focus(); return; }

if (formularioE.acepto_privacidad.checked == false)
{ alert("Debe aceptar la Ley de Privacidad"); formularioE.acepto_privacidad.focus(); return; }


formularioE.submit();
}

function ValidarEM(form){
if (formularioEM.tele_emp.value == "")
{ alert("Debe introducir un Teléfono"); formularioEM.tele_emp.focus(); return; }

if (formularioEM.fax_emp.value == "")
{ alert("Debe introducir un Fax"); formularioEM.fax_emp.focus(); return; }

var mail=emailCheck(formularioEM.email_emp.value);
if (mail == false)
{ alert("Debe especificar un correo de contacto"); formularioEM.email_emp.focus(); return; }

if (formularioEM.usuario.value == "")
{ alert("Es obligatorio escoger un Nombre de Usuario"); formularioEM.usuario.focus(); return; }

if (formularioEM.password.value == "")
{ alert("Debe especificar una contraseña"); formularioEM.password.focus(); return; }

if (formularioEM.repassword.value == "")
{ alert("Repita su contraseña"); formularioEM.repassword.focus(); return; }

if (formularioEM.repassword.value != formularioEM.password.value)
{ alert("Debe repetir la misma contraseña"); formularioEM.repassword.focus(); return; }

if (formularioEM.acepto_privacidad.checked == false)
{ alert("Debe aceptar la Ley de Privacidad"); formularioEM.acepto_privacidad.focus(); return; }


formularioEM.submit();
}