// funciones genericas para validacion de formularios 

	function esMailValido(cadena_mail) {
	// chequeo de direcciones de email validas 
		tipodominio = cadena_mail.substring(cadena_mail.lastIndexOf("."),cadena_mail.length);
		var resultadoValidacion = true;
		if(tipodominio.length<5 && tipodominio.length>1){	
			var Template = /^[a-z][a-z-_0-9.]+@[a-z-_=>0-9.]+.[a-z]{2,3}$/i
			if (Template.test(cadena_mail) == 0){
				resultadoValidacion = false;
			}
		}
		else{
			resultadoValidacion = false;
		}	
		return(resultadoValidacion);
	}


	function longitudMaxima(cadena, longitud_maxima) {
	// chequeo de longitudes de cadenas 
		if (cadena.length > longitud_maxima){return(false);}
		else {return(true);}
	}  


	function estaVacio(cadena){
	// chequeo de valores vacios 
		nuevacadena = new String(cadena);
	
		if (trim(nuevacadena) == ""){return(true);}
		else {return(false);}
	}  

	function esNumerico(cadena){
	// chequeo de valores numericos 
		return(!isNaN(cadena));
	} 
	function esTexto(cadena){
	  var esLetra = "abcdefghijklmnñopqrstuvwxyzçABCDEFGHIJKLMNÑOPQRSTUVWXYZÇáéíóàèìòùäëïöüÁÉÍÓÚÀÈÌÒÙÄËÏÖÖ- ";
	  var Caracter;
	  var Contador=0;
	  var elementos = cadena.length;
	
	  for (var i=0; i < elementos; i++) 
	  { 
		Caracter=cadena.substring(i,i+1);
		if (esLetra.indexOf(Caracter,0)!=-1) 
		  Contador++;
	  }
	  return(Contador==cadena.length)
	 
	}
	
	function tieneVocales(cadena){
	// chequeo de vocales 
		nuevacadena = new String(cadena);
		nuevacadena = nuevacadena.toLowerCase();
		var vocales = "a,e,i,o,u,á,é,í,ó,à,è,ì,ò,ù,ä,ë,ï,ö,ü";
		//var vocales = "a,e,i,o,u";
		var arrayVocales = new Array();
		arrayVocales = vocales.split(",");
		var resultadoValidacion = false;

		for(i=0; i <= (arrayVocales.length-1); i++){
			if (nuevacadena.indexOf(arrayVocales[i])>=0 ){resultadoValidacion=true;}
		}
		return(resultadoValidacion)
	}
   

	function esNifValido(cadena_nif){
		//verifica si un nif es correcto
		lon = cadena_nif.length;
		if (lon<9) {return(false);}
		else {
			letraNIF = cadena_nif.charAt(lon-1);
			letraNIF = letraNIF.toUpperCase();
			numeroNIF = cadena_nif.substring(0,lon-1);
			if(isNaN(numeroNIF)){return(false);}
			else {
				letraCorrecta = letraNif(numeroNIF);
				if (letraNIF != letraCorrecta) {return(false);}
			}
		}
		return(true);
	}
	

	function letraNif(numero_nif)	{
	 //calcula la letra del nif de un numero de nif
		var letrasNif = "T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E,T";
		var arrayLetrasNif = new Array();
		arrayLetrasNif = letrasNif.split(",");
		return arrayLetrasNif[numero_nif % 23];
	}
	
	function esNieValido(cadena_nie){
		//verifica si un nie es correcto
		lon = cadena_nie.length;
		if (lon<10) {return(false);}
		else {
			letraNIE = cadena_nie.charAt(0);
			letraNIE = letraNIE.toUpperCase();
			if ((letraNIE != "X") && (letraNIE != "T")) {
				return (false);
			}
			else {
				cadenaNIF = cadena_nie.substring(1,lon);
				return (esNifValido(cadenaNIF));
			} // else
		}
		return(true);
	}
	
	function esNieNifValido(numero) {
		var letra = numero.charAt(0);
		if (isNaN(letra)) { //es una letra
			return 	esNieValido(numero);
		} else {
			return esNifValido(numero);	
		}
		
	}
	
	function reemplazarCaracter(cadena,caracter_buscar, caracter_reemplazar){
	// reemplaza un caracter por otro en na cadana 
		cadena = cadena.split(caracter_buscar).join(caracter_reemplazar);
		return(cadena);
	}     



	function contiene(cadena,subcadena){
	// indica si la subcadena esta dentro de la cadena 
		if (cadena.indexOf(subcadena)!=-1){return true}
		else {return false}
	}
	
	
	
	function trim(cadena) {
	// devuelve la cadena sin espacios por la derecha ni la izquierda
		return ltrim(rtrim(cadena));
	} 



	function ltrim(cadena){
		// devuelve la cadena sin espacios por la izquierda 
		espacios = " "; 
		cadena_aux = cadena;
	    j=0; i = cadena.length;
		while (j < i && espacios.indexOf(cadena_aux.charAt(j)) != -1) {j++;} 
		cadena_aux = cadena_aux.substring(j, i);
		return cadena_aux;
	}

	function rtrim(cadena){
		// devuelve la cadena sin espacios por la derecha 
		espacios = " "; 
		cadena_aux = cadena;
	    var i = cadena.length - 1;
	    while (i >= 0 && espacios.indexOf(cadena_aux.charAt(i)) != -1) i--;
	    cadena_aux = cadena_aux.substring(0, i+1);
		return cadena_aux;
	}	
	
	function mid(cadena, inicio, n){
	//  devuelve la subcadena de n caracteres desde la posicion de inicio 
		return cadena.substring(inicio-1,inicio+n);
	}

	function right(cadena,n){
		//  devuelve los n primeros caracters de la cadena por la derecha 
		return cadena.substring(cadena.length-n, cadena.length);
	}

	function left(cadena,n){
	//  devuelve los n primeros caracters de la cadena por la izquierda 
		return cadena.substring(0,n);
	}	
	
	function solamenteNumeros(e) {
		if (e.which)
		{
			if(e.which!=46 && e.which!=8 && e.wich!=9 && (e.which<48 || e.which>57))
				return false;
		}
		else if(e.keyCode)
		{
			if(e.keyCode!=46 && e.keyCode!=8 && e.keyCode!=9 && (e.keyCode<48 || e.keyCode>57))
				return false;
		}
		return true;
	}

	// Funciones para la fecha
	function esDigito(sChr){
	var sCod = sChr.charCodeAt(0);
	return ((sCod > 47) && (sCod < 58));
	}
	function valSep(oTxt){
	var bOk = false;
	bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
	bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
	return bOk;
	}
	function finMes(oTxt){
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	var nRes = 0;
	switch (nMes){
	case 1: nRes = 31; break;
	case 2: nRes = 29; break;
	case 3: nRes = 31; break;
	case 4: nRes = 30; break;
	case 5: nRes = 31; break;
	case 6: nRes = 30; break;
	case 7: nRes = 31; break;
	case 8: nRes = 31; break;
	case 9: nRes = 30; break;
	case 10: nRes = 31; break;
	case 11: nRes = 30; break;
	case 12: nRes = 31; break;
	}
	return nRes;
	}
	function valDia(oTxt){
	var bOk = false;
	var nDia = parseInt(oTxt.value.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
	return bOk;
	}
	function valMes(oTxt){
	var bOk = false;
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	return bOk;
	}
	function valAno(oTxt){
	var bOk = true;
	var nAno = oTxt.value.substr(6);
	bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
	if (bOk){
	for (var i = 0; i < nAno.length; i++){
	bOk = bOk && esDigito(nAno.charAt(i));
	}
	}
	return bOk;
	}
	
	function cambiar_imagen(imagen){
		//alert(imagen);
		document.getElementById("principal").src=imagen;
	}
	function cerrarCapaMensaje(capa){
		document.getElementById(capa).style.display="none";
	}
	function redirect(url){
		window.location.href = url;	
	}
	function AbrirBeneficios(url){
		window.open(url,"Beneficios","width=900,height=600,scrollbars=YES");
	}
		
	function avisoLegal(){
		window.open("avisolegal.html","politica","width=620,height=900,scrollbars=yes");
	}
	
	function proteccionDatos(){
		window.open("legal.html","politica","width=620,height=900,scrollbars=yes");
	}