//funciones de validacion de campos en formularios
function es_filtro(texto)
{
	//comprueba que no tenga caracteres no permitidos: ; " \ =
	return !/[;="\\]/.test(texto);
}
function es_sinmayormenor(texto)
{
	if(texto.substr(0,1)==">" || texto.substr(0,1)=="<") return texto.substr(1);
	else return texto;
}
function es_sinseparadores(texto)
{
	return texto.replace(/[\s,-.\+_]/gi,'');
}
function es_tamano(texto,tamano)
{
	return texto.length==tamano;
}
function es_numero(num)
{
	return /^[\d]+$/.test(num);
}
function es_decimal(num)
{
	return /^[\d.]{1,}[\,]*[\d]{0,2}$/.test(num);
}
function es_texto(texto)
{
	return /^[a-zA-Z]+$/.test(texto);
}

function es_precio(precio)
{
	return /^[\d.]{1,}[\,]*[\d]{0,2}$/.test(precio);
}

function es_peso(peso)
{
	return /^[\d.]{1,}[\,]*[\d]{0,3}$/.test(peso);
}

function es_fecha(fecha)
{
	fecha=fecha.replace(/[\s]/gi,'');
	if(!/^[\d]{1,2}\/[\d]{1,2}\/[\d]{2,4}$/.test(fecha)) return false;
	var partes=fecha.split("/");
	var mfecha=new Date();
	mfecha.setFullYear(partes[2],partes[1]-1,partes[0]);
	return (mfecha.getMonth()==partes[1]-1);
}

function es_hora(hora)
{
	hora=hora.replace(/[\s]/gi,'');
	if(!/^[\d]{1,2}\:[\d]{1,2}\:[\d]{1,2}$/.test(hora)) return false;
	else return true;
}

function es_telefono(tlf)
{
	tlf=tlf.replace(/[\s,-.\+_]/gi,'');
	if(tlf.length==9 || tlf.length==11){
		if(tlf.length==9) if(/^\d{9}$/.test(tlf)) return true;
		if(tlf.length==11) if(/^\d{11}$/.test(tlf)) return true;
	}
	return false;
}

function es_email(email)
{
	email=email.replace(/[\s]/gi,'');
	return /^[0-9a-z_.-]+@[0-9a-z-.]+.[a-z]{2,3}$/.test(email);
}

function es_cp(cp)
{
	cp=cp.replace(/[\s,-.\+_]/gi,'');
	return /^[\d]{5}$/.test(cp);
}

function es_nif(nif)
{
	nif=nif.replace(/[\s,-._]/gi,'');
	//if(!/^\d{8}[A-Za-z]{1}$/.test(nif) && !/^\[Xx]d{8}[A-Za-z]{1}$/.test(nif)) return false;
	if(/^\d{8}[A-Za-z]{1}$/.test(nif)){
		var letras='TRWAGMYFPDXBNJZSQVHLCKE';
		var numero=nif.substr(0,8);
		numero=numero%23;
		if(letras.substr(numero,1)==nif.substr(8,1).toUpperCase()) return true;
		else return false;
	}
	else{
		if(/^[Xx]{1}\d{8}[A-Za-z]{1}$/.test(nif)){;
			var letras='TRWAGMYFPDXBNJZSQVHLCKE';
			var numero=nif.substr(1,8);
			numero=numero%23;
			if(letras.substr(numero,1)==nif.substr(9,1).toUpperCase()) return true;
			else return false;
		}
		else return false;
	}
}

function es_cif(cif)
{
	/*
	CIF=letraOrganizacion+7digitos+numeroControl
	
	letraOrganizacion=A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S
	numeroControl:
		A=suma de digitos pares
		B=digitoImpar*2 ... %9 ... sumarlos todos
		C=A+B
		D=10-digitoUnidades_C
		A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 0
	
	Ejemplo para el C.I.F. : A58818501
    	-Utilizamos los siete d?gitos centrales = 5881850
    	-Sumamos los d?gitos pares: A = 8 + 1 + 5 = 14
    	-Posiciones impares:
      		5 * 2 = 10 -> 1 + 0 = 1
      		8 * 2 = 16 -> 1 + 6 = 7
      		8 * 2 = 16 -> 1 + 6 = 7
      		0 * 2 = 0 -> = 0
      	-Sumamos los resultados: B = 1 + 7 + 7 + 0 = 15
    	-Suma parcial: C = A + B = 14 + 15 = 29
		-El d?gito de las unidades de C es 9. Se lo restamos a 10 y nos da: D = 10 - 9 = 1
		-Si el d?gito de control ha de ser un n?mero es 1 y si ha de ser una letra es la "A"
	*/

	cif=cif.replace(/[\s,-._]/gi,'');
 	var tmp=cif.toUpperCase();
	if(!/^[ABCDEFGHKLMNPQS]{1}[0-9]{7}[A-J0-9]{1}$/.test(tmp)) return false;
	else{
		var v1=new Array(0,2,4,6,8,1,3,5,7,9);
		var sum=0;
		for(i=2;i<=6;i+=2){
			sum=sum+v1[parseInt(cif.substr(i-1,1))];
			sum=sum+parseInt(cif.substr(i,1));
		}
		sum=sum+v1[parseInt(cif.substr(7,1))];
		sum=(10-(sum%10));
		if(sum==10) sum=0;
		var v2=new Array("J","A","B","C","D","E","F","G","H","I");
		var v3=new Array(0,1,2,3,4,5,6,7,8,9);
		if(tmp.substr(8,1)==v2[sum] || tmp.substr(8,1)==v3[sum]) return true;
		else return false;
	}
}
