/* 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 tieneVocales(cadena){
	/* chequeo de vocales */
		nuevacadena = new String(cadena);
		nuevacadena = nuevacadena.toLowerCase();
		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 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 el pop up de las imagenes
	var ventana; 
	var cont=0 ;
	var titulopordefecto = "Visualizar"; //texto por defecto a mostrar en la barra de ttulo en caso de omitir el argumento titulo 

	function afoto(cual,titulo) 
	{ 
		if(cont==1){ventana.close();ventana=null} 
		if(titulo==null){titulo=titulopordefecto} 
		ventana=window.open('','ventana','resizable=yes, scrollbars=yes, width=640, height=480') 
		ventana.document.write('<html><head><title>' + titulo + '</title></head><body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" Unload="opener.cont=0"><img src="' + cual + '">') 
		ventana.document.close(); 
		cont++; 
	} 

	function redimensionar(ancho,alto) 
	{ 
		ventana.resizeTo(ancho+12,alto+28) 
		ventana.moveTo((screen.width-ancho)/2,(screen.height-alto)/2) //centra la ventana. Eliminar si no se quiere centrar el popup 
	}


	