
// Comprueba q el campo este vacio
function esVacio(campo) {
	return ((campo == null) || (campo == ''));
}

// Comprueba q cumpla las caracteristicas de un campo numerico
function esNumerico(campo) {	// Solo cifras
	var regexp = /^[0-9]*$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un precio en euros
function esPrecioEuros(campo) {	// Solo numeros decimales
	var regexp = /^[0-9]*(\.[0-9]{0,2})?$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un campo de solo texto
function esNoNumerico(campo) {	// Solo alfabetico
	var regexp = /[^0-9]/;
	return !regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un DNI
function esDni(campo) { // De 1-8 cifras
	var regexp = /^[0-9]{1,8}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un NIF
function esNif(campo) { // De 1-8 cifras + letra Nif
	var regexp = /^[0-9]{1,8}[a-zA-Z]$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un NIE
function esNie(campo) { // De X + 1-8 cifras + letra Nif
	var regexp = /^[XYZ][0-9]{1,8}[a-zA-Z]$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un CIF
function esCif(campo) { // De letra Cif + 1-8 cifras
	var regexp = /^[a-zA-Z][0-9]{1,8}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un CIF o de un NIF
function esNifoCif(campo) {
	return (esNif(campo) || esCif(campo));
}

// Comprueba q cumpla las caracteristicas de un NIF
function esNifComplex(dni, letra) { // De 1-8 cifras + letra Nif
	var regexp = /^[0-9]{1,8}[a-zA-Z]$/;
	return regexp.test(dni + letra);
}


function validarCIF(cif) {
	par = 0; non = 0;
	letras="ABCDEFGHKLMNPQS";
	let=cif.charAt(0);

	if (!isNaN(let)) return false;
	if (cif.length!=9) return false;
	if (letras.indexOf(let.toUpperCase())==-1) return false;

	for (zz=2; zz<8; zz+=2)
	  par = par + parseInt(cif.charAt(zz))

	for (zz=1; zz<9; zz+=2) {
	  nn = 2 * parseInt(cif.charAt(zz));
  	if (nn > 9) 
			nn = 1+(nn-10);
	  non = non+nn;
	}

	parcial = par + non;
	control = (10 - ( parcial % 10));
	if (control==10) control=0

	if (control!=cif.charAt(8))
		return false;
		
	return true;
}

function validarNIF(nif) {
	dni=nif.substring(0,nif.length-1);
	let=nif.charAt(nif.length-1);

	if (!isNaN(let)) return false;

	cadena="TRWAGMYFPDXBNJZSQVHLCKET";
	posicion = dni % 23;
	letra = cadena.substring(posicion,posicion+1);
	if (letra!=let.toUpperCase())
		return false;

	return true;
}

function validarNIE(nie) {
	x=nie.charAt(0);
	resto=nie.substring(1,nie.length);
	if (x.toUpperCase() == 'X') {
		resto = '0' + resto;
	} else if (x.toUpperCase() == 'Y') {
		resto = '1' + resto;
	} else if (x.toUpperCase() == 'Z') {
		resto = '2' + resto;
	} else {
		return false;
	}

	return validarNIF(resto);
}


function eliminarSimbolos(texto) {
//	var regexp = new RegExp(["([^0-9]|[^a-zA-Z])", ["g"]]);
//	texto = texto.replace(regexp, '');
	return texto;
}







// Comprueba q cumpla las caracteristicas de un telefono fijo
function esTelefonoFijo(campo) {	// 2-3 prefijo + 7 telefono
	var regexp = /^[0-9]{9,10}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un telefono movil
function esTelefonoMovil(campo) {	// 9 telefono
	var regexp = /^[0-9]{9}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un telefono (fijo o movil)
function esTelefono(campo) {
	return (esTelefonoFijo(campo) || esTelefonoMovil(campo));
}

// Comprueba q cumpla las caracteristicas de un codigo postal
function esCodigoPostal(campo) {	// 5 digitos
	var regexp = /^[0-9]{5}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de una url (solo nombre servidor)
function esUrl(campo) { // ej -> https:\\webmail.upv.es
	var regexp = /^(http:\\\\|https:\\\\)([_0-9a-zA-Z-]+\.)+[a-zA-Z]+$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de una direccion web (nombre servidor+recurso)
function esDireccionWeb(campo) {	// ej -> https:\\www.upv.com\recursos\ej.txt
/*** HAY Q DEPURARLO
	var regexp = /^(http:\\\\|https:\\\\)?([_0-9a-zA-Z-]+\.)+[_0-9a-zA-Z-]+((\/|\\)[_0-9a-zA-Z-~\.]*)*$/;
	return regexp.test(campo);
***/
	return true;	
}

// Comprueba q cumpla las caracteristicas de una direccion de email
function esEMail(campo) {	// ej -> pacopepe@hotmail.es
	var regexp = /^.+@(.+\.)+.{2,3}$/;
	return regexp.test(campo);
}

// Comprueba q cumpla las caracteristicas de un password del tamaņo especificado
function esPassword(campo, limInf, limSup) {
	expresion = "^.{" + limInf + "," + limSup + "}$";
	var regexp = new RegExp(expresion);
	return regexp.test(campo);
}


function esFechaEsp(campo) {
	var regexp = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
	if (!regexp.test(campo))
		return false;
	var datosFecha = campo.split('/');
  return esFechaEspDiv(datosFecha[0], datosFecha[1], datosFecha[2]);
}

function esFechaIng(campo) {
	var regexp = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
	if (!regexp.test(campo))
		return false;
	var datosFecha = campo.split('/');
	return esFechaEspDiv(datosFecha[1], datosFecha[0], datosFecha[2]);
}

function esFechaBD(campo) { 
	var regexp = /^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,2}$/;
	if (!regexp.test(campo))
		return false;
	var datosFecha = campo.split('/');
	return esFechaEspDiv(datosFecha[2], datosFecha[1], datosFecha[0]);
}

function esFechaEspDiv(dia, mes, anyo) {
	var Fecha = new Date(anyo, mes-1, dia); 
  return (Fecha.getMonth() == mes-1); 
}

function esMesAnyo(campo) {
	var regexp = /^[0-9]{1,2}\/[0-9]{4}$/;
	if (!regexp.test(campo))
		return false;
	var datosFecha = campo.split('/');
  return esFechaEspDiv(1, datosFecha[0], datosFecha[1]);
}

function mostrarErrores(mens) {
//	window.open('comun/ventana_mensaje.php?t=error&m='+mens,'','width=390, height=220');
	alert(mens);
}

function campoObligatorio(valor, mensaje) {
	if (valor == '') {
    mostrarErrores(mensaje);
		return false;
	}
	return true;
}

function comprobarCampo(valor, comprobacion, mensaje) {
	if ((valor != '') && !comprobacion) {
		mostrarErrores(mensaje);
		return false;
	}
	return true;
}

function campoMultipleObligatorio(campo, mensaje) {
  for(i=0;i<campo.length;i++)
		if(campo[i].checked) return true;
	mostrarErrores(mensaje);
	return false;
}

function campoBooleanoObligatorio(campo, mensaje) {
	if (!campo[0].checked && !campo[1].checked) {
		mostrarErrores(mensaje);
		return false;
	}
	return true;
}

function campoSelectObligatorio(campo, mensaje) {
	if (campo.selectedIndex == 0) {
		mostrarErrores(mensaje);
		return false;
	}
	return true;
}



function getRadioButtonSelectedValue(campo) {
	for(i=0;i<campo.length;i++)
		if(campo[i].checked) return campo[i].value;
}
