// TRUE si es VACIO -----------------------------------------------------------------------
function esVacio(campo) {
	return (campo.value == "");
}

function validaVacio(campo, nombreCampo) {
	if (campo.value == "") {
		alert("El campo '" + nombreCampo + "' no puede ser vacío.");
		if (campo.type != 'hidden') campo.focus();
		return true;
	}
	return false;
}

// TRUE si COINCIDEN ----------------------------------------------------------------------
function coinciden(campo1, campo2, nombreCampo1, nombreCampo2, campoFoco) {
	if (campo1.value != campo2.value) {
		alert("El campo '" + nombreCampo1 + "' y el '" + nombreCampo2 + "' deben coincidir.");
		if (campoFoco.type != 'hidden') campoFoco.focus();
		return false;
	}
	return true;
}

// TRUE si esta SELECCIONADO ------------------------------------------------------------
function estaSeleccionadoRadio(campo, nombreCampo) {
	var radioSeleccionado = false;

	for (k = 0; k < campo.length; k++) {
		if (campo[k].checked) {
			radioSeleccionado = true;
		}
	}
	
	if(!radioSeleccionado) {
		alert("Tiene que elegir una opcion en el campo '" + nombreCampo + "'.");
		return false;
	}
	return true;
}

// TRUE si esta SELECCIONADO ------------------------------------------------------------
function estaSeleccionadoSelect(campo, nombreCampo) {
	if(campo.selectedIndex < 0) {
		alert("Tiene que elegir una opcion en el campo '" + nombreCampo + "'.");
		return false;
	}
	return true;
}

// TRUE si todos sus caracteres estan en la cadena CARACTERES ----------------------------
function caracteresValidos(texto, caracteres) {
	for (i = 0; i < texto.length; i++) {
		ch = texto.charAt(i);
		for (j = 0; j < caracteres.length; j++)
			if (ch == caracteres.charAt(j))
				break;
				
		if (j == caracteres.length) {
			return false;
		}
	} 
	return true;
}

// TRUE si es NUMERICO --------------------------------------------------------------------
function esNumerico(campo, nombreCampo) {
	if (!caracteresValidos(campo.value, '0123456789.,')) {
		alert("El campo '" + nombreCampo + "' debe ser numérico.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	return true;
}

// TRUE si es TELEFONO --------------------------------------------------------------------
function esTelefono(campo, nombreCampo) {
	if (!caracteresValidos(campo.value, '+0123456789 -*#')) {
		alert("El campo '" + nombreCampo + "' debe ser un número de teléfono válido.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	return true;
}

// TRUE si es FECHA VALIDA ---------------------------------------------------------------
function esFecha(campo, nombreCampo, separador) {
	var fecha = campo.value;

	if (fecha.length < 10) {
		alert("El campo '" + nombreCampo + "' debe tener una fecha correcta.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}

	var ano = new String(fecha.substring(fecha.lastIndexOf(separador) + 1, fecha.length));
	var mes = new String(fecha.substring(fecha.indexOf(separador)+1, fecha.lastIndexOf(separador)));
	var dia = new String(fecha.substring(0, fecha.indexOf(separador)));

	// Validacion del a o
	if (isNaN(ano) || ano.length < 4) {
		alert("Año incorrecto en el campo '" + nombreCampo + "'.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	// Validacion del mes
	if (isNaN(mes) || parseFloat(mes) < 1 || parseFloat(mes) > 12) {
		alert("Mes incorrecto en el campo '" + nombreCampo + "'.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	// Validacion del dia
	if (isNaN(dia) || parseInt(dia, 10) < 1 || parseInt(dia, 10) > 31) {
		alert("Día incorrecto en el campo '" + nombreCampo + "'.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	if (mes == 4 || mes == 6 || mes == 9 || mes == 11 || mes == 2) {
		if (mes == 2 && dia > 28 || dia > 30) {
			alert("Día incorrecto en el campo '" + nombreCampo + "'.");
			if (campo.type != 'hidden') campo.focus();
			return false;
		}
	}
	return true;
}

// TRUE si es VALIDO PARA INTERNET (Usuarios, CONTRASE AS...) ----------------------------
function esValidoInternet(campo, nombreCampo) {
	if (!caracteresValidos(campo.value, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_')) {
		alert("El campo '" + nombreCampo + "' debe contener unicamente 'a-z', 'A-Z', '0-9', '-' o '_'.");
		if (campo.type != 'hidden') campo.focus();
		return false;
	}
	return true;
}

// TRUE si es EMAIL -----------------------------------------------------------------------
function esCorreo(texto){ 

    var mailres = true;             
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-"; 
     
    var arroba = texto.indexOf("@",0); 
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1; 
     
    var punto = texto.lastIndexOf("."); 
                 
     for (var contador = 0 ; contador < texto.length ; contador++){ 
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){ 
            mailres = false; 
            break; 
     } 
    } 

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1)) 
     mailres = true; 
    else 
     mailres = false; 

    return mailres; 
} 


// TURE si es HORA -----------------------------------------------------------------------
function esHora (campo, nombreCampo){
hora1 = '012';
hora2 = '0123456789'; 
min1 = '012345';
min2 = '0123456789';
puntos = ":";
var sok=true;

	var hor = campo.value;
	
	if ((hor.substr(0,2)*1) < 0 || (hor.substr(0,2)*1) > 23) {sok=false;}
	if (puntos.indexOf(hor.substr(2,1),0) == -1) {sok=false;}
	if ((hor.substr(3,2)*1) < 0 || (hor.substr(3,2)*1) > 59) {sok=false;}
	
	if (! sok){
		alert("El campo '" + nombreCampo + "' debe tener una hora correcta.");
		if (campo.type != 'hidden') campo.focus();
	}
	
return sok;
}
// TURE si es NIF -----------------------------------------------------------------------
function esNif(campo, nombreCampo) {
	sok = true;
	dni = campo.value;
	
	if (dni.length <8){
		ceros = "00000000" + dni;
		dni = ceros.substr (ceros.length-8,8);
	}	
	
	numero = dni.substr(0,dni.length);
	let = dni.substr(dni.length-1,1);
	numero = numero % 23;
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	if (letra!=let){
		dni = dni + letra;
	}
	
	if (dni.length <9){
		ceros = "00000000" + dni;
		dni = ceros.substr (ceros.length-9,9);
	}	
	campo.value = dni;
	
	return sok;
}

 
