
// Recibe por parámetro el formulario los campos que son obligatorios
function checkForm(form,accion,oArg){
  var f=eval("document." + form);
  for (var i=0;i<f.length;i++){
    campo = f.elements[i].name;
    if (campo!=""){
      tipocontrol=f.elements[i].type;
      tipo=eval("typeof(oArg." + campo + ")");
      if (tipo!="undefined"){ 
        switch (tipocontrol){
          case "text":
            if (eval("f.elements[" + i + "].value.length==0") || eval("f.elements[" + i + "].value.charAt(0)==' '")){
              alert("El campo " + eval("f.elements[" + i + "].title") + " es obligatorio.");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            break;
          case "select-one":
            if (f.elements[i].selectedIndex==0){
              alert("El campo " + eval("f.elements[" + i + "].title") + " es obligatorio.");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            break;
          case "textarea":
            if (eval("f.elements[" + i + "].value.length==0") || eval("f.elements[" + i + "].value.charAt(0)==' '")){
              alert("El campo " + eval("f.elements[" + i + "].title") + " es obligatorio.");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            break;
           
        }
        filtro=eval("oArg." + campo);
        switch (filtro){
          case "txt":
            if ((/[^A-Za-z|á|é|í|ó|ú|ñ|Á|É|Í|Ó|Ú|Ñ|\s]+/.test(eval("f.elements[" + i + "].value"))) || eval("f.elements[" + i + "].value.length==0") || eval("f.elements[" + i + "].value.charAt(0)==' '")){
              alert(eval("f.elements[" + i + "].title") + " no valido. No escriba dígitos ni caracteres especiales)");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            break;
          case "num":
            if (!(/^[0-9]{9,20}$/.test(eval("f.elements[" + i + "].value")))){
              alert(eval("f.elements[" + i + "].title") + " no valido. Escriba sólo digitos (sin espacios ni otros caracteres)");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            break;
		  case "condiciones":
		  	if (!eval("f.elements[" + i + "].checked==true")){
              alert("Debe aceptar el pliego de Terminos y Condiciones de MercadoProfesional.com para poder registrarse");
              return false;
			}
		  	break;	
          case "fecha":
            break;
		  case "alias":
            if (/\W+/.test(eval("f.elements[" + i + "].value"))){
              alert(eval("f.elements[" + i + "].title") + " no valido. Escriba sólo letras, números o '-' (sin espacios ni otros caracteres)");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
			}	
		  	break;	
          case "email":
            var ckLen=eval("f.elements[" + i + "].value.length==0");
            if (ckLen || !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(eval("f.elements[" + i + "].value")))){ 
              alert("La direccion de email es incorrecta.");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return (false);
            }         
            break;
          case "email_req":
            var ckLen=eval("f.elements[" + i + "].value.length==0");
            if (ckLen || !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(eval("f.elements[" + i + "].value")))){ 
              alert("La direccion de email es incorrecta.");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return (false);
            }
            if (eval("f.elements[" + i + "].value.length==0")){
              alert("Por favor confirme la dirección de email");
              eval("f.elements[" + (i+1) + "].focus()");
              return (false);
            }
            if (eval("f.elements[" + i + "].value!=f.elements[" + (i+1) + "].value")){
              alert("La dirección de correo proporcionada y su confirmación no son iguales. Vuelva a escribirlas");
              eval("f.elements[" + i + "].focus()");
              return (false);
            }
            break;
          case "clave":
            var c1 = eval("f.elements[" + i + "].value")
            var c2 = eval("f.elements[" + (i+1) + "].value")
            var esp = true;
            var cont = 0;
            while (esp && (cont < c1.length)) {
              if (c1.charAt(cont) != " ") 
                esp = false;
              cont++;
            }
            if (esp) {
              alert (eval("f.elements[" + i + "].title") + " no valida");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            if (c1.length == 0){
              alert("Introduzca la nueva clave de acceso");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
            }
            if (c2.length == 0){
              alert("Confirme la clave de acceso");
              eval("f.elements[" + (i+1) + "].select()");
              eval("f.elements[" + (i+1) + "].focus()");
              return false;
            }  
            if (c1 != c2) {
              alert("La clave de acceso y su confirmación no son iguales. Vuelva a escribirlas");
              eval("f.elements[" + i + "].value=''");
              eval("f.elements[" + (i+1) + "].value=''");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
            }           
          	break;
		  default:
			if (eval("f.elements[" + i + "].value=='" + filtro + "'")){
              alert(eval("f.elements[" + i + "].title") + " no valido.");
              eval("f.elements[" + i + "].select()");
              eval("f.elements[" + i + "].focus()");
              return false;
			}
		  	break;
        }         
      }
    }
  }
  if (accion=="submit")
    f.submit();  
  else
    eval(accion);
}