/******************************************************************************/
/* JSLIB.JS                                                                   */
/******************************************************************************/
	var IE = navigator.appName.toLowerCase().indexOf("microsoft") > -1;
	var Mozilla = navigator.appName.toLowerCase().indexOf("netscape") > -1;

	var textoAnt = "";
	var posicionListaFilling = 0;

	var datos = new Array();



/******************************************************************************/
/* CREARRAY                                                                   */
/* Crear array de n posiciones                                                */
/* E n                                                                        */
/******************************************************************************/
function crearray(n)
	{var index;
	this.length=n;
	for(index=1;index<=n;index++)
		{this[index]=0;}}
/******************************************************************************/
/******************************************************************************/
/* RECOGER_INFO_JS                                                            */
/* Indicando el primer string y el segundo retorna lo que hay entre           */
/* el final del primero y el inicio del segundo                               */
/* E inicio                                                                   */
/* E fin                                                                      */
/* E informacion                                                              */
/******************************************************************************/
function recoger_info_js(inicio,fin,informacion)
	{auxini=informacion.indexOf(inicio)+inicio.length;
	auxfin=informacion.indexOf(fin);
	return (informacion.substring(auxini,auxfin));}
/******************************************************************************/
/* IRA_JS                                                                     */
/* Va a la pagina web que se le indique                                       */
/* E cual                                                                     */
/* Atencion al vinculo con la funcion vinculo_php                             */
/******************************************************************************/
function ira_js(cual)
	{var info;
	
	if(cual==1)
		{info="php/registrarse01.php";}
	else if(cual==2)
		{info="registrarse02.php";}
	else if(cual==3)
		{info="../index.php";}
	else if(cual==4)
		{info="registrarse01.php";}
	else if(cual==16)
		{info="problema_cuenta.php";}		
	location.href=info;
	}

/******************************************************************************/
/* ABRIR_VENTANA_JS                                                           */
/* Abre una ventana con la direccion url que se indique                       */
/* E direccion, direccion url que se debe abrir                               */
/* E ancho, ancho de la ventana                                               */
/* E alto, alto de la ventana                                                 */
/******************************************************************************/
function abrir_ventana_js(direccion,ancho,alto)
	{escribir = "width=" + ancho + ",height=" + alto + ",scrollbars=1";
	ventana=open(direccion,"DisplayWindow",escribir);}
	
/******************************************************************************/
/* CERRAR_VENTANA_JS                                                          */
/* Cierra la ventana activa 				                      */
/******************************************************************************/
function cerrar_ventana_js()
	{close();}
	
/******************************************************************************/
/* PONER_ESPACIOS_JS                                                          */
/* Genera un string con tantos espacios como se indiquen                      */
/* E cuantos                                                                  */
/******************************************************************************/
function poner_espacios_js(cuantos)
	{var indexe,ret1;

	ret1="";
	for(indexe=0;indexe<=cuantos;indexe++)
		{ret1=ret1 + "&nbsp;"}
	return ret1;}
	
/******************************************************************************/
/* ESCRIBIR_DIA_JS                                                            */
/* Escribir el dia en formato lista                                           */
/* E nombre                                                                   */
/* E valor_dia                                                                */
/******************************************************************************/
function escribir_dia_js(nombre,valor_dia)
	{var indexe,indexestr,valorstr;
	
	document.write("<select name='" + nombre + "' class='inputtext'>\n");
	for(indexe=1;indexe<=31;indexe++)
		{
		if (indexe==valor_dia){valorstr="selected";}
		else{valorstr="";}
		if (indexe<=9){indexestr="0"+ indexe;}
		else{indexestr=indexe;}
		document.write("<option value='" + indexestr + "' " + valorstr + " class='inputtext'>" + indexestr + "</option>\n");
		} 
	document.write("</select>\n"); 
	}
	
/******************************************************************************/
/* ESCRIBIR_MES_JS                                                            */
/* Escribir el mes en formato lista                                           */
/* E nombre                                                                   */
/* E valor_mes                                                                */
/******************************************************************************/
function escribir_mes_js(nombre,valor_mes)
	{var indexe,indexestr,valorstr;
	
	document.write("<select name='" + nombre + "' class='inputtext'>");
	for(indexe=1;indexe<=12;indexe++)
		{
		if (indexe==valor_mes){valorstr="selected";}
		else{valorstr="";}
		switch(indexe)
			{
			case  1:indexestr="Enero";str1="01";break;
			case  2:indexestr="Febrero";str1="02";break;
			case  3:indexestr="Marzo";str1="03";break;
			case  4:indexestr="Abril";str1="04";break;
			case  5:indexestr="Mayo";str1="05";break;
			case  6:indexestr="Junio";str1="06";break;
			case  7:indexestr="Julio";str1="07";break;
			case  8:indexestr="Agosto";str1="08";break;
			case  9:indexestr="Septiembre";str1="09";break;
			case 10:indexestr="Octubre";str1="10";break;
			case 11:indexestr="Noviembre";str1="11";break;
			case 12:indexestr="Diciembre";str1="12";break;			
			}
		document.write("<option value='" + str1 + "' " + valorstr + " class='inputtext'>" + indexestr + "</option>\n");
		} 
	document.write("</select>"); 
	}

/******************************************************************************/
/* ESCRIBIR_ANNO_JS                                                           */
/* Escribir el anno en formato lista de anno                                  */
/* E nombre                                                                   */
/* E valor_anno                                                               */
/******************************************************************************/
function escribir_anno_js(nombre,valor_anno)
	{var indexe,indexestr,valorstr;
	
	document.write("<select name='" + nombre + "' class='inputtext'>\n");
	for(indexe=2007;indexe<=2014;indexe++)
		{
		if (indexe==valor_anno){valorstr="selected";}
		else{valorstr="";}
		indexestr=indexe;
		document.write("<option value='" + indexe + "' " + valorstr + " class='inputtext'>" + indexestr + "</option>\n");
		} 
	document.write("</select>\n"); 
	}

/******************************************************************************/
/* ESCRIBIR_FECHA_JS                                                          */
/* Escribir fecha en formato de lista                                         */
/* E nombre                                                                   */
/* E dia                                                                      */
/* E mes                                                                      */
/* E anno                                                                     */
/******************************************************************************/
function escribir_fecha_js(nombre,dia,mes,anno)
	{escribir_dia_js(nombre + "_dia",dia);
	document.write("-");	
	escribir_mes_js(nombre + "_mes",mes);
	document.write("-");
	escribir_anno_js(nombre + "_anno",anno);
	document.write("<i>(dd-mm-yyyy)</i>");}
/******************************************************************************/
/* ESCRIBIR_FECHA_CORTA_JS                                                    */
/* Escribir la fecha con mes y anno                                           */
/* E nombre                                                                   */
/* E mes                                                                      */
/* E anno                                                                     */
/******************************************************************************/
function escribir_fecha_corta_js(nombre,mes,anno)
	{escribir_mes_js(nombre + "_mes",mes);
	document.write("-");
	escribir_anno_js(nombre + "_anno",anno);
	document.write("<i>(mm-yyyy)</i>");}
/******************************************************************************/
/* MOSTRAR_ERROR_JS                                                           */
/* Muestra el error que se haya producido                                     */
/* E cual                                                                     */
/******************************************************************************/
function mostrar_error_js(cual)	
	{var mensaje;
	
	switch(cual)
		{case   1:mensaje="Debe introducir el nombre del usuario y el password";break;
		 case   2:mensaje="Solo se permiten números y letras en el usuario y en el password";break;
		 case   3:mensaje="Debe introducir la dirección de correo electrónico.";break;
		 case   4:mensaje="El formato de la dirección de correo electrónico no es correcto.";break;
		 case   5:mensaje="Debe indicar el password, la dirección de correo electrónico y el numero de accesos para poder modificar el usuario root.";break;
		 case   6:mensaje="Solo se permiten números y letras en la dirección de correo electrónico y en el password; y números en el número de accesos.";break;
		 case   7:mensaje="Debe introducir todos los campos para poder crear al usuairo root.";break;
		 case   8:mensaje="Solo se permiten números y letras en la dirección de correo electrónico y en el password.";break;
		 case   9:mensaje="El password debe tener como minimo 5 carácteres.";break;
		 case  10:mensaje="Los 2 passwords son diferentes.";break;
		 case  11:mensaje="Debe indicar la palabra malsonante.";break;
		 case  12:mensaje="Debe poner bien la información de la palabra, sin carácteres raros.";break;
		 case  13:mensaje="Debe indicar el titulo y el cuerpo de la noticia.";break;
		 case  14:mensaje="Alguno de los campos de la notica no posee el formato adecuado(el título o el cuerpo).";break;
		 case  15:mensaje="La fecha desde no es una fecha válida.";break;
		 case  16:mensaje="La fecha hasta no es una fecha válida.";break;
		 case  17:mensaje="La fecha desde es mayor que la fecha hasta.";break;
		 case  18:mensaje="Debe indicar el nombre de la carpeta.";break;
		 case  19:mensaje="El formato del nombre de la carpeta no es válido.";break;
		 case  20:mensaje="El formato de la url no es correcta.";break;
		 case  21:mensaje="Debe indicar el documento, su descripción, la dirección url, palabras asociadas y el orden formativo.";break;
		 case  22:mensaje="Alguno de los campos del documento no posee el formato adecuado(el documento o la descripción o la direccion url).";break;
		 case  23:mensaje="Debe aceptar las reglas para poder registrase.";break;
		 case  24:mensaje="Debe indicar todos los campos para dar de alta/modificar la información del usuario.";break;
		 case  25:mensaje="El formato del nombre o del apellido o la dirección de correo electrónico no es correcto.";break;
		 case  26:mensaje="El formato del usuario o de los passwords es incorrecto.";break;
		 case  27:mensaje="El password entrado es diferente al password repetido";break;
		 case  28:mensaje="La longitud mínima del password es de 5 carácteres";break;
		 case  29:mensaje="Debe indicar el titulo, la empresa, la ganancia y el cuerpo de la publicidad.";break;
		 case  30:mensaje="Alguno de los campos de la publicidad no posee el formato adecuado(el título o la ganancia o el nombre de la empresa o el cuerpo).";break;
		 case  31:mensaje="Debe introducir el nombre y el password para poder entrar en la zona restringida.";break;
		 case  32:mensaje="El formato del usuairo o del password no es correcto, vuelvalo a probar.";break;
		 case  33:mensaje="Debe indicar el password actual, el uevo password y repetir el nuevo password.";break;
		 case  34:mensaje="El formato del password es incorrecto.";break;
		 case  35:mensaje="El nuevo password entrado es diferente al nuevo password repetido.";break;
		 case  36:mensaje="No es coherente el hecho de que no desee información de si ha habido algún cambio de sus preguntas y que desee recibir información de todas las modificaciones de todas las preguntas o respuestas.";break;
		 case  37:mensaje="El formato del motivo por el que se da de baja no es correcto (elimine los caracteres extraños).";break;
		 case  38:mensaje="No se puede avanzar en la lista por que ya se han mostrado todos los elementos de la lista.";break;
		 case  39:mensaje="No se puede retroceder en la lista por que se están en el principio de la lista.";break;
		 case  40:mensaje="Debe indicar la puntuación.";break;
		 case  41:mensaje="La puntuación debe ser un número.";break;
		 case  42:mensaje="El título no posee el formato correcto.";break;
		 case  43:mensaje="El cuerpo de pregunta no posee el formato correcto.";break;
		 case  44:mensaje="Debe indicar el título y el cuerpo de la pregunta";break;
		 case  45:mensaje="Debe indicar una palabra válida";break;
		 case  46:mensaje="Debe indicar un número de identificador";break;
		 case  47:mensaje="Debe indicar la respuesta";break;
		 case  48:mensaje="Debe indicar la respuesta sin caracteres extraños";break;
		 case  49:mensaje="La dirección de correo electrónico debe ser igual a la dirección de correo electrónico de confirmación.";break;
		 case  50:mensaje="Debe indicar el código";break;
		 case  51:mensaje="El código debe de ser de 8 posiciones";break;
		 case  52:mensaje="Debes indicar el nuevo código de usuario";break;
		 case  53:mensaje="El valor del nuevo usuario no es correcto";break;
		 case  54:mensaje="El nuevo valor de usuario no puede ser el mismo que el actual";break;
		 case  55:mensaje="Debe indicar el nombre del fichero para que se pueda subir";break;
		 case  56:mensaje="El fichero no posee extensión, debería de tenerla";break;
		 case  57:mensaje="El fichero debe ser un jpg.";break;
		 case  58:mensaje="Sólo se permite el formato gráfico jpg";break;
		 case  59:mensaje="Debes indicar cuantas respuestas tiene la pregunta";break;
		 case  60:mensaje="El campo cuantas respuestas deberia de ser un número";break;
		 case  61:mensaje="No puedes poner ; y espacios en blanco en la palabra a buscar";break;
		 case  62:mensaje="Debe indicar el nombre del fichero de la pregunta para que se pueda subir";break;
		 case  63:mensaje="El fichero debe tener la extension xls, xlsx, zip o rar";break;
		 case  64:mensaje="Debes indicar la pregunta";break;
		 case  65:mensaje="Debes indicar almenos dos respuestas";break;
		 case  66:mensaje="Debes indicar la respuesta correcta";break;
		 case  67:mensaje="Debes indicar una respuesta que exista";break;
		 case  68:mensaje="El formato de la pregunta no es correcto";break;
		 case  69:mensaje="El formato de la primera respuesta no es correcto";break;
		 case  70:mensaje="El formato de la segunda respuesta no es correcto";break;
		 case  71:mensaje="El formato de la tercera respuesta no es correcto";break;
		 case  72:mensaje="El formato de la cuarta respuesta no es correcto";break;
		 case  73:mensaje="El formato de la quinta respuesta no es correcto";break;
		 case  74:mensaje="Debes responder todas las preguntas";break;
		 case  75:mensaje="Debes indicar el usuario para poder realizar la busqueda";break;
		 case  76:mensaje="Debes indicar el mail para poder realizar la busqueda";break;
		 case  77:mensaje="El formato del mail no es correcto";break;
		 case  78:mensaje="Indica alguna opción de las dos existentes";break;
		 case  79:mensaje="Indica el correo electrónico con el fin de que se te pueda enviar la dirección solicitada";break;
		 case  80:mensaje="Se debe indicar la pregunta inicial y la pregunta final";break;
		 case  81:mensaje="Las peguntas deben ser valores numéricos";break;
		 case  82:mensaje="La pregunta original no puede ser la misma que la de destino";break;
		 case  83:mensaje="Debe indicar el nombre y el orden del plan de formación.";break;
		 case  84:mensaje="El formato del nombre del plan de formación no es válido.";break;
		 case  85:mensaje="El campo orden deberia de ser un número.";break;
		 case  86:mensaje="Se debe indicar el estado";break;
		 case  87:mensaje="El estado debe ser numérico";break;
		 case  88:mensaje="La pregunta inicial de busqueda debe ser menor que la de final";break;
		 case  89:mensaje="Se debe indicar la pregunta a borrar";break;
		 case  90:mensaje="La pregunta deben ser valor numérico";break;
		 case  91:mensaje="Se debe indicar el titulo y el mensaje del mail";break;
		 case  92:mensaje="El titulo no es correcto";break;
		 case  93:mensaje="El cuerpo del mensaje no es correcto";break;
		 case  94:mensaje="El código no se corresponde con el valor generado, vuelvalo a intentar";break;
		 case  95:mensaje="Debe introducir el valor del código";break;
		 case  96:mensaje="Debe responder la pregunta 1 de la encuesta";break;
		 case  97:mensaje="Debe responder la pregunta 2 de la encuesta";break;
		 case  98:mensaje="Debe responder la pregunta 3 de la encuesta";break;
		 case  99:mensaje="Debe responder la pregunta 4 de la encuesta";break;
		 case 100:mensaje="Debe responder la pregunta 5 de la encuesta";break;
		 case 101:mensaje="Debe responder la pregunta 6 de la encuesta";break;
		 case 102:mensaje="Debe responder la pregunta 7 de la encuesta";break;
		 case 103:mensaje="Debe responder la pregunta 8 de la encuesta";break;
		 case 104:mensaje="El formato de la sugerencia por el que se da de baja no es correcto (elimine los caracteres extraños).";break;
		 case 105:mensaje="Para realizar la búsqueda individual de un usuario se debe indicar el código del usuario";break;
		 case 106:mensaje="Para realizar la búsqueda individual de un usuario se debe indicar el código del usuario sin añadir carácteres extraños";break;
		 case 107:mensaje="Debes indicar el estado de la pregunta";break;
		 case 108:mensaje="El campo estado deberia de ser un número";break;
		 case 109:mensaje="Debe indicar el tipo de parámetro vario.";break;
		 case 110:mensaje="Debe indicar al menos el valor numérico o el texto.";break;
		 case 111:mensaje="El valor numerico de vario no posee el formato correcto";break;
		 case 112:mensaje="El valor texto de vario no posee el formato correcto";break;
		 case 113:mensaje="El valor numerico de tipo no posee el formato correcto";break;
		 case 114:mensaje="Este código de usuario ya existe, pruebe con otro.";break;
		 case 115:mensaje="";break;
		 case 116:mensaje="";break;
		 case 117:mensaje="";break;
		 case 118:mensaje="";break;
		 case 119:mensaje="";break;
		 case 120:mensaje="";break;
		}
	alert("Código error:" + cual + "\n" + mensaje);
	}
		
/******************************************************************************/
/* PERMITIR_CARACTER_JS                                                       */
/* Retorna si el formato de lo introducido es correcto                        */
/* E info1   el texto                                                         */
/* E numero  se permiten numeros                          (1)                 */
/* E letra   se permiten letras                           (2)                 */
/* E arroba  se permite el simbolo arroba                 (3)                 */
/* E comilla se permite las comillas                      (4)                 */
/* E punto   se permiten los puntos                       (5)                 */
/* E espacio se permite el espacio en blanco o intro      (6)                 */
/* E mayormenor se permite el simbolo < y >               (7)                 */
/* E contrabarra se permite / y :                         (8)                 */
/* E subrayado se permite _                               (9)                 */
/* E coma se permite ,                                    (10)                */
/* E puntocoma se permite ;                               (11)                */
/* E pwd1(c trancada, tildes)                             (12)                */
/* E menos                                                (13)                */
/* E varios    {}[]...                                    (14)                */
/******************************************************************************/
function permitir_caracter_js(info1,numero,letra,arroba,comilla,punto,espacio,mayormenor,contrabarra,subrayado,coma,puntocoma,pwd1,menos,varios)
	{var correcto,indexe;
	
	correcto=true;
	for(indexe=0;indexe<info1.length;indexe++)
		{		
		if((info1.charAt(indexe)>='0')&&(info1.charAt(indexe)<='9'))
			{if (numero==false)
				{correcto=false;}}
		else if(((info1.charAt(indexe)>='a')&&(info1.charAt(indexe)<='z')) ||
		        ((info1.charAt(indexe)>='A')&&(info1.charAt(indexe)<='Z')) || 
		        ((info1.charAt(indexe)>='á')&&(info1.charAt(indexe)<='ú')) ||
		        ((info1.charAt(indexe)>='Á')&&(info1.charAt(indexe)<='Ú')))	
			 {
			if((info1.charAt(indexe)=='ç')||
			   (info1.charAt(indexe)=='Ç')||
		           ((info1.charAt(indexe)>='á')&&(info1.charAt(indexe)<='ú')) ||
		           ((info1.charAt(indexe)>='Á')&&(info1.charAt(indexe)<='Ú')))
			          {if (pwd1==false)  {correcto=false;}}
			if (letra==false) {correcto=false;}
			}
		else if(info1.charAt(indexe)=='.')
			{if (punto==false)
				{correcto=false;}}
		else if(info1.charAt(indexe)=='_')
			{if (subrayado==false)
				{correcto=false;}}
		else if((info1.charAt(indexe)=='/')||(info1.charAt(indexe)==':'))
			{if (contrabarra==false)
				{correcto=false;}}				
		else if((info1.charAt(indexe)=='>')||(info1.charAt(indexe)=='<'))
			{if (mayormenor==false)
				{correcto=false;}}				
		else if((info1.charAt(indexe)==' ')||(escape(info1.charAt(indexe))=="%0D")||(escape(info1.charAt(indexe))=="%0A"))
			{if (espacio==false)
				{correcto=false;}}
		else if(info1.charAt(indexe)=='"')
			{if (comilla==false)
				{correcto=false;}}
		else if(info1.charAt(indexe)=='\'')
			{if (comilla==false)
				{correcto=false;}}				
		else if(info1.charAt(indexe)=='@')
			{if (arroba==false)
				{correcto=false;}}
		else if(info1.charAt(indexe)==',')
			{if (coma==false)
				{correcto=false;}}
		else if(info1.charAt(indexe)=='-')
			{if (menos==false)
				{correcto=false;}}				
		else if(info1.charAt(indexe)==';')
			{if (puntocoma==false)
				{correcto=false;}}
		else if((info1.charAt(indexe)=='{')||(info1.charAt(indexe)=='}')||
		        (info1.charAt(indexe)=='[')||(info1.charAt(indexe)==']')||
		        (info1.charAt(indexe)=='¿')||(info1.charAt(indexe)=='?')||
		        (info1.charAt(indexe)=='(')||(info1.charAt(indexe)==')')||
		        (info1.charAt(indexe)=='=')||(info1.charAt(indexe)=='&')||
		        (info1.charAt(indexe)=='%'))
			{if (varios==false)
				{correcto=false;}}
		else{correcto=false;}
		}
	return(correcto);
	}

/******************************************************************************/
/* PONER_BOTON_VOLVER_JS                                                      */
/* Escribe un boton de volver, se le indica cuanto se tira para               */
/* atras                                                                      */
/* E cuanto                                                                   */
/******************************************************************************/
function poner_boton_volver_js(cuanto)
	{document.write("<input type='button' value='Volver' class='button' onclick='history.go(" + cuanto + ");'>");}

/******************************************************************************/
/* PONER_BOTON_CERRAR_JS                                                      */
/* Escribe un boton de cerrar ventana                                         */
/******************************************************************************/
function poner_boton_cerrar_js()
	{document.write("<input type='button' value='Cerrar' class='button' onclick='window.close();'>");}
	
/******************************************************************************/
/* ESMAIL_JS                                                                  */
/* Pasandole una direccion confirmara que sea valida o no sin                 */
/* enviar ningun mail                                                         */
/* E mail                                                                     */
/* S si es una direccion de mail o no                                         */
/******************************************************************************/
function esmail_js(mail)
	{
	if (mail.length < 4)		
	  	{return false;}	  	
	else {
		correcto=true;
		posee=0;	
		punto=0;
		posaroo=0;
		for (indexe=0;indexe<mail.length;indexe++)
			{
			correcto = correcto && (mail.charAt(indexe)!='|') && (mail.charAt(indexe)!='+') 
					    && (mail.charAt(indexe)!='!') && (mail.charAt(indexe)!='{')
					    && (mail.charAt(indexe)!='}') && (mail.charAt(indexe)!='?')
			                    && (mail.charAt(indexe)!='¿') && (mail.charAt(indexe)!='"');
			if (mail.charAt(indexe)=='@'){posee = posee + 1;
						      posaroo=indexe;}
			if (mail.charAt(indexe)=='.'){punto = indexe;
						      if (punto == 0)
						      	{correcto = false;}
						      else
						        {if ((punto > 1) && ((punto == posaroo + 1) || (punto == posaroo - 1)))
						        	{correcto=false;}
						        }						      
						      }
		}	
		if ((posee == 1) && (correcto == true) && (punto > 0) && (posaroo > 0) && (punto < mail.length - 1) && (posaroo < mail.length - 1)) 
			{return true;}
		else {return false;}		
		}}	
/******************************************************************************/
/* ISNUMERIC_JS                                                               */
/* Indica si el elemento es numerico o no                                     */
/* E texto                                                                    */
/* E coma                                                                     */
/******************************************************************************/
function isnumeric_js(texto,coma)
	{var correcte,cuantos,indexe;
	correcte = true;	
	cuantos=0; /*gestion para que solo haya un . */
	for(indexe=0;indexe<texto.length;indexe++)
   		{if (texto.charAt(indexe)=='.')
   			{cuantos=cuantos+1;}		
   		correcte=((esdigito_js(texto.charAt(indexe))) || ((coma==true) && (texto.charAt(indexe)=='.' ))) 
   			  && correcte && (cuantos<=1);}
	/*el ultimo y el primer caracter no puede ser un .*/   			  
	correcte=correcte && (texto.charAt(indexe-1)!='.') && (texto.charAt(0)!='.')
   	return (correcte);}
/******************************************************************************/
/* ESDIGITO_JS                                                                */
/* Funcion que indica si lo que se pasa es un numero o no                     */
/* E valor                                                                    */
/* S Retorna si es un digito o no                                             */
/******************************************************************************/
function esdigito_js(valor)
      {if (valor=="0" || valor=="1" ||
          valor=="2" || valor=="3" ||
          valor=="4" || valor=="5" ||
          valor=="6" || valor=="7" ||
          valor=="8" || valor=="9")
          {return true;}
       else {return false;}}
/******************************************************************************/
/* REPETIR_IMAGEN_JS                                                          */
/* Repetir generación de la imagen                                            */
/******************************************************************************/
function repetir_imagen_js()
	{/*alta.imagen1.src="img_generar_imagen.php";*/
	document.forms["alta"].imagen1.src="img_generar_imagen.php";}

/******************************************************************************/
/* PONER_PREGUNTA10_ID_JS                                                     */
/* Simular la entrada de una nueva pregunta via identificador                 */
/* E idpreg                                                                   */
/******************************************************************************/
function poner_pregunta10_id_js(idpreg)
	{document.forms["consultar_id"].identificador.value=idpreg;
	document.forms["consultar_id"].submit();
	}

/******************************************************************************/
/* ESCRIBIR_CORREO_JS                                                         */
/* Escribe el formato del mail para que no se pueda copiar con programas de   */
/* busquedas de mails                                                         */
/* E parte1                                                                   */
/* E parte2                                                                   */
/* E parte3                                                                   */
/******************************************************************************/
function escribir_correo_js(parte1,parte2,parte3)
	{document.write("<a href='mailto:" + parte1 + "@" + parte2 + "." + parte3 + "'>");
	document.write(parte1 + "@" + parte2 + "." + parte3);
	document.write("</a>");}
/******************************************************************************/
/* DIBUJAR_PRIMERA_FILA_JS                                                    */
/* Dibuja la fila de cabecera pasandole el directorio a partir de             */
/* cual esta la imagen y el texto                                             */
/* Crea el inicio de la tabla                                                 */
/* E directorio                                                               */
/* E info                                                                     */
/******************************************************************************/
function dibujar_primera_fila_js(directorio,info)
	{document.write("<table width='100%' class='tablevacia' cellpadding='0'>\n");
	document.write("<tr class='trcabecera' valign='top'><td>");
		document.write("<img src='"+directorio+"img/margen.jpg' width='14px' height='14px' alt='margen mundoexcel' border='0'>\n");
		document.write("<span style='margin-left:5px;'>"+info+"</span>\n");
	document.write("</td></tr>\n");}
		
/******************************************************************************/
/* DIBUJAR_DATOS_FILA_JS                                                      */
/* Dibuja los datos de la fila indicando el contenido                         */
/* E info                                                                     */
/* E conp indica si posee el tag P o no                                       */
/******************************************************************************/
function dibujar_datos_fila_js(info)
	{document.write("<tr><td class='tddatos'>");
	document.write(info);
	document.write("</td></tr>\n");}

/******************************************************************************/
/* DIBUJAR_DATOS_FILA_VERDE_JS                                                */
/* Dibuja los datos de la fila indicando el contenido                         */
/* E info                                                                     */
/******************************************************************************/
function dibujar_datos_fila_verde_js(info)
	{document.write("<tr><td class='tddatos'>");
	document.write("<span class='pdatos_verde'>"+info+"</span>");
	document.write("</td></tr>\n");}
/******************************************************************************/
/* DIBUJAR_DATOS_SEPARADOR_JS                                                 */
/* Dibuja una linea con un separador                                          */
/******************************************************************************/
function dibujar_datos_separador_js()
	{document.write("<tr><td class='tddatos'>");
	document.write("<hr width='100%'>");
	document.write("</td></tr>\n");}
/******************************************************************************/
/* DIBUJAR_DATOS_TITULO_JS                                                    */
/* Dibuja un titulo con informacion                                           */
/* E info                                                                     */
/******************************************************************************/
function dibujar_datos_titulo_js(info)
	{document.write("<tr><td class='tdtitulo'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
	document.write(info);
	document.write("</span></td></tr>\n");}
/******************************************************************************/
/* DIBUJAR_ULTIMA_FILA_JS                                                     */
/* Dibuja la fila de fin pasandole el directorio a partir de                  */
/* cual esta la imagen                                                        */
/* Crea el fin de la tabla                                                    */
/* E directorio                                                               */
/******************************************************************************/
function dibujar_ultima_fila_js(directorio)
	{document.write("<tr><td class='tdfin1'>\n");
	
	document.write("<table width='100%' class='tablevacia'>\n");
	document.write("<tr valign='top'>\n");
		document.write("<td align='left'  valign='top' width='10px'><img src='"+directorio+"img/izquierda.jpg' alt='margen mundoexcel'></td>\n");
		document.write("<td class='tdtop' valign='top' width='99%'><font style='font-size:1px'>&nbsp;</font></td>\n");
		document.write("<td align='right' valign='top' width='10px'><img src='"+directorio+"img/derecha.jpg' alt='margen mundoexcel'></td>\n");
	document.write("</tr>\n");
	document.write("</table>\n");		
	document.write("</td></tr>\n");
	document.write("</table>\n");}	
	
	
/******************************************************************************/
/* AJAXOBJ                                                                    */
/* Pagina web:                                                                */
/* http://sentidoweb.com/2006/05/08/ajax-paso-a-paso-hola-mundo.php           */
/* Crear el objeto AJAX                                                       */
/******************************************************************************/	
function ajaxobj() {
try {
_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
_ajaxobj = false;
}
}
if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
_ajaxobj = new XMLHttpRequest();
}
return _ajaxobj;
}	
/******************************************************************************/
/* GESTION AUTORELLENO                                                        */
/* Paginas:                                                                   */
/* http://displaynone.blogspot.com/2006/02/caja-de-texto-con-autocompletado.html */
/* http://sentidoweb.com/2006/05/18/ajax-paso-a-paso-autocompletado-en-cajas-de-texto.php */ /*FALTA*/
/* <input type="text" id="input-fill" autocomplete="off"                      */
/*              onkeyup="inputFilling(event, this)"                           */
/*              onblur="setInput(this, document.getElementById('lista'))">    */
/*              &nbsp; <img src="abajo.gif" border="0"                        */
/*              onclick="despliegaFilling(document.getElementById('input-fill'), datos, document.getElementById('lista'))"     
/*                title="Importar">                                           */
/*    <div class="contenedor">                                                */
/*    	<div id="lista"     class="fill"></div>                               */
/*    </div>                                                                  */
/******************************************************************************/

/******************************************************************************/
/******************************************************************************/
	function ajaxobj() {
		try {
			_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				_ajaxobj = false;
			}
		}
	   
		if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
			_ajaxobj = new XMLHttpRequest();
		}
		
		return _ajaxobj;
	}

/******************************************************************************/
/******************************************************************************/
	function cargaLista(evt, obj, txt, directoriophp) {
	
		ajax = ajaxobj();
		ajax.open("GET", directoriophp+"usuario_ajax.php?texto="+txt, true);
		ajax.onreadystatechange=function() {
			if (ajax.readyState==4) {
				var datos = ajax.responseXML;
				var usuarios = datos.getElementsByTagName("usuario");
				
				var listausuarios = new Array();
				if (usuarios) {
					for (var i=0; i<usuarios.length; i++) {
						listausuarios[listausuarios.length] = usuarios[i].firstChild.data;
					}
				}
				escribeLista(obj, listausuarios);
			}
		}
		ajax.send(null);
	}
	
/******************************************************************************/
/******************************************************************************/	
	function escribeLista(obj, lista) {
		var html = "";
		var fill = document.getElementById('lista');
		
		if (lista.length == 0) {
			// Si la lista es vacia no la mostramos
			fill.style.display = "none";
		} else {
			// Creamos una tabla con 
			// todos los elementos encontrados
			fill.style.display = "block";
			var html='<table cellspacing="0" '+
				'cellpadding="0" border="0" width="100%">';
			for (var i=0; i<lista.length; i++) {
				html += '<tr id="tr'+obj.id+i+
					'" '+(posicionListaFilling == i? 
						' class="fill" ': '')+
					' onmouseover="seleccionaFilling(\'tr'+
					obj.id+'\', '+i+
					')" onmousedown="seleccionaTextoFilling(\'tr'+
					obj.id+'\', '+i+')">';
				html += '<td>'+lista[i]+'</td></tr>';
			}
			html += '</table>';
		}

		// Escribimos la lista
		fill.innerHTML = html;
	}

/******************************************************************************/
/******************************************************************************/
	// Muestra las coincidencias en la lista
	function inputFilling(evt, obj,directoriophp) {
		var fill = document.getElementById('lista');

		var elems = datos;
		
		var tecla = "";
		var lista = new Array();
		var res = obj.value;
		var borrar = false;
		
		// Almaceno la tecla pulsada
		if (!IE) {
		  tecla = evt.which;
		} else {
		  tecla = evt.keyCode;
		}
		
		var texto;
		// Si la tecla que pulso es una
		// letra o un espacio, o el intro
		// o la tecla borrar, almaceno lo 
		// que debo buscar
		if (!String.fromCharCode(tecla).match(/(\w|\s)/) && 
				tecla != 8 && 
				tecla != 13) {
			texto = textoAnt;
		} else {
			texto = obj.value;
		}
		
		textoAnt = texto;
		
		// Si el texto es distinto de vacio
		// o se pulsa ARRIBA o ABAJO
		// hago llamada AJAX para que 
		// me devuelva la lista de palabras
		// que coinciden con lo que hay
		// escrito en la caja
		if ((texto != null && texto != "") 
			|| (tecla == 40 || tecla == 38)) {
			cargaLista(evt, obj, texto,directoriophp);
		}
		
		
		// SegÃºn la letra que se pulse
		if (tecla == 37) { // Izquierda
			// No hago nada
		} else if (tecla == 38) { // Arriba
			// Subo la posicion en la
			// lista desplegable una posiciÃ³n
			if (posicionListaFilling > 0) {
				posicionListaFilling--;
			}
			// Corrijo la posiciÃ³n del scroll
			fill.scrollTop = posicionListaFilling*14;
		} else if (tecla == 39) { // Derecha
			// No hago nada
		} else if (tecla == 40) { // Abajo
			if (obj.value != "") {
				// Si no es la Ãºltima palabra
				// de la lista
				if (posicionListaFilling < lista.length-1) { 
					// Corrijo el scroll
					fill.scrollTop = posicionListaFilling*14;
					// Bajo la posiciÃ³n de la lista
					posicionListaFilling++;
				} 
			}
		} else if (tecla == 8) { // Borrar <-
			// Se sube la lista del todo
			posicionListaFilling = 0;
			// Se permite borrar
			borrar = true;
		} else if (tecla == 13) { // Intro
			// Deseleccionamos el texto
			if (obj.createTextRange) {
				var r = obj.createTextRange();
				r.moveStart("character", 
					obj.value.length+1);
				r.moveEnd("character", 
					obj.value.length+1);
				r.select();
			} else if (obj.setSelectionRange) {
				obj.setSelectionRange(
					obj.value.length+1, 
					obj.value.length+1);
			}
			// Ocultamos la lista
			fill.style.display = "none";
			// Ponemos el puntero de 
			// la lista arriba del todo
			posicionListaFilling = 0;
			// Controlamos el scroll
			fill.scrollTop = 0;
			return true;
		} else {
			// En otro caso que siga
			// escribiendo
			posicionListaFilling = 0;
			fill.scrollTop = 0;
		}	
		
		// Si no se ha borrado
		if (!borrar) {
			if (lista.length != 0) {
				// Seleccionamos la parte del texto
				// que corresponde a lo que aparece
				// en la primera posiciÃ³n de la lista
				// menos el texto que realmente hemos
				// escrito
				obj.value = lista[posicionListaFilling];
				if (obj.createTextRange) {
					var r = obj.createTextRange();
					r.moveStart("character", 
						texto.length);
					r.moveEnd("character", 
						lista[posicionListaFilling].length);
					r.select();
				} else if (obj.setSelectionRange) {
					obj.setSelectionRange(
						texto.length, 
						lista[posicionListaFilling].length);
				}
			}
		}
		return true;
	}
  
/******************************************************************************/
/******************************************************************************/  
  
	// Introduce el texto seleccionado
	function setInput(obj, fill) {
		obj.value = textoAnt;
		fill.style.display = "none";
		posicionListaFilling = 0;
	}

/******************************************************************************/
/******************************************************************************/
  
	// Cambia el estilo de
	// la palabra seleccionada
	// de la lista
	function seleccionaFilling(id, n) {
		document.getElementById(id + 
			n).className = "fill";
		document.getElementById(id + 
			posicionListaFilling).className = "";  	
		posicionListaFilling = n;
	}
  
/******************************************************************************/
/******************************************************************************/
	// Pasa el texto del filling a la caja
	function seleccionaTextoFilling (id, n) {
		textoAnt = document.getElementById(id + 
			n).firstChild.innerHTML;
		posicionListaFilling = 0;
	}	
