function VerificaEMAIL(chkEmail, requerido) {
  // chequeo del E-mail
  // devuelve true si el E-mail no es válido
  // devuelve false si E-mail es válido
  // si no es requerido y está en blanco devuelvo true
    if (!requerido && chkEmail.length <= 0) {
		return true;
	} 

      if(!esCorreo(chkEmail)){alert('El e-mail no es correcto'); return false;}

      return true;
}

function esCorreo(correo) {
	if(/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$/.test(correo)){return true;}
	else {return false;}
}


function esVacio(valor){
	if(valor=="" || valor==null)
		return true;
	else
		return false;
}



function es_telefono(tlf, pais0)
{
	var str_phone=tlf.toString();
 	var caracter;
  	var longitud = str_phone.length;
        var i;
	for(i=0;i<longitud;i++)
	{
		caracter=str_phone.charAt(i);
		if(caracter<"0" || caracter>"9")
		{
			alert("Hay algún carácter no numérico en el teléfono");
			return false;
		}
	}	

	if(pais0=="ESPAÑA"){

  	if (longitud!=9){
  		 alert("El número de teléfono no es correcto");
  		 return false;
  	}  	

  	caracter=str_phone.charAt(0);
  	if(!(caracter=="9" || caracter=="6" || caracter=="7" || caracter=="8"))
  	{
  		alert("El número de teléfono no es correcto.");
  		return false;
  	}
	}
	return true;
}

//Se utiliza en registro
function es_codigoUsuario(cd1, cd2, cd3){
				 //POr compatibilidad con los anteriores dejo el código3=5
			if(cd1.length!=3 || cd2.length!=3 || !(cd3.length==7 || cd3.length==5)){return false;}		     			 

			//D00 = La D es porque lo hemos enviado directamente. L=laboratorios, O=Otros, ....
			//Cuando son tres dígitos (012), corresponde con el ID de la librería o distribuidor.	
		 for(i=1;i<3;i++){
			     if(cd1.charAt(i)<"0" || cd1.charAt(i)>"9"){return false;}
		   }		 

		 //LA EDICIÓN 10P 10A, TAMBIÉN PUEDE SER A12 (sólo con la 12ª edición)
		if(cd2.toUpperCase() != "A12"){
			 for(i=0;i<2;i++){
				     if(cd2.charAt(i)<"0" || cd2.charAt(i)>"9"){return false;}
				}
				//ACTUALIZACIÓN O PROGRAMA
			 if(cd2.charAt(2).toUpperCase()!="A" && cd2.charAt(2).toUpperCase()!="P") return false;		 
		}
			//LOS 5 ULTIMOS DÍGITOS	(en realidad serían una letra más un número (en caso de facturas con varios programas, si no 1) más cinco dígitos, o sea siete caracteres)

			/*U101234= nº de usuario (si el pedido es directamente a nosotros) o nº de factura si es a través de librería, laboratorio o distribuidor.

       Puede llevar distintos caracteres: U= nº de usuario, F=nº de factura, A= nº de albarán, O= Otros, D= Depósito*/
		 for(i=1;i<cd3.length;i++){
			     if(cd3.charAt(i)<"0" || cd3.charAt(i)>"9"){return false;}
		   }	
			 	
			 //TIPO DE USUARIO			 
			 if(!/[a-zA-Z]/.test(cd3.charAt(0))){
			 		return false;
			 }
		 //if(cd3.charAt(0).toUpperCase()!="L" && cd3.charAt(0).toUpperCase()!="R" && cd3.charAt(0).toUpperCase()!="U" && cd3.charAt(0).toUpperCase()!="F" && cd3.charAt(0).toUpperCase()!="A" && cd3.charAt(0).toUpperCase()!="O" && cd3.charAt(0).toUpperCase()!="D") return false;
       return true;

    }

//Se utiliza en licencia

function comprobarLlave(llave){
	var llav = llave
 	var apar = llav.split('-');
	 //8 bloques de cuatro caracteres
	if(apar.length!=8)return false;			 

	for(i=0;i<apar.length;i++){
		if(apar[i].length!=4)return false;
	}
return true;
}		

//Creo que no se utiliza en nigún lado
function es_codigoPostal(codigo,numero)
{
	var str_codigo=codigo.toString();
	if(str_codigo.length==5)
	{
		var caracter;
		for(i=0;i<5;i++)
		{
			caracter=str_codigo.charAt(i);
			if(caracter<"0" || caracter>"9")
			{
				alert("Hay algún carácter no numérico en el código postal");
				return false;
			}
		}

		if(str_codigo.charAt(0)=="5") 
		{
			if(str_codigo.charAt(1)>"2")
			{
				alert("Ha introducido un código postal incorrecto.");
				return false;
			}
		}
		else if(str_codigo.charAt(0)=="0")	
		{
			if(str_codigo.charAt(1)=="0")
			{
				alert("Ha introducido un código postal incorrecto.");
				return false;
			}
		}
	

	if (str_codigo.substring(0,2) != numero)
	  {
		alert("El codigo postal no coincide con la provincia.");
		return false;
	  }
	}
	else
	{
		alert("El código postal debe constar de 5 dígitos.");
		return false;
	}
	return true;
}

function numerico(valor){
  cad = valor.toString();
  for (var i=0; i<cad.length; i++) {
    var caracter = cad.charAt(i);
	if (caracter<"0" || caracter>"9")
	  return false;
  }
  return true;
}

function obtenerDigito(valor){
  valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
  control = 0;
  for (i=0; i<=9; i++)
    control += parseInt(valor.charAt(i)) * valores[i];
  control = 11 - (control % 11);
  if (control == 11) control = 0;
  else if (control == 10) control = 1;
  return control;
}

function validarCuenta(banco, sucursal, dc, cuenta) {
  if (banco == ""  || sucursal == "" ||
      dc == "" || cuenta == "")
    alert("Por favor, introduzca los datos de su cuenta");
  else {
    if (banco.length != 4 || sucursal.length != 4 ||
        dc.length != 2 || cuenta.length != 10)
      alert("Por favor, introduzca correctamente los datos de su cuenta;"
	    + " no están completos");
    else {
      if (!numerico(banco) || !numerico(sucursal) ||
          !numerico(dc) || !numerico(cuenta))
        alert("Por favor, introduzca correctamente los datos de su "
         + "cuenta; no son numericos");
      else {
        if (!(obtenerDigito("00" + banco + sucursal) ==
              parseInt(dc.charAt(0))) ||
            !(obtenerDigito(cuenta) ==
              parseInt(dc.charAt(1))))
          alert("Los dígitos de control no se corresponden con los demás"
            + " números de la cuenta");
	    else
                return true;
          //alert ("CCC correcto");
      }
    }
  }
  return false;
}
