//Variables generales
var ACT=0;  			//Variable que se envía al juego para indicar que se ha cargado el fichero de preguntas
var txt;    			//Variable en la que se carga el contenido del fichero de preguntas
var cargadaLocal=0;  	//Estado de carga del fichero opción-local
var cargadaURL=0;  		//Estado de carga del fichero opción-URL
var cargadaAJDA=0;   	//Estado de carga del fichero opción-AJDA
var numline=0; 			//Número de preguntas del fichero
var nombreAutor;  		//Nombre del autor/a
var temaFichero;		//Título del tema del fichero
var reemnumline;		//Número de preguntas del fichero
var longitudFichero; 	//Número de líneas del fichero de preguntas
var cadena1;			// Cadena temporal 1
var cadena2;			// Cadena temporal 2
var Inform;				//Estado de carga del fichero
var InformEst1;			//Cargar fichero
var InformEst2;			//Fichero no cargado
var InformEst3;			//Fichero cargado
var InformEst4;			//Seleccionar un fichero de la lista
var InformEst5;			//La extensión debe ser .txt
var InformEst6;			//Posible error en fichero
var InformEst7;			//Preguntas insuficientes para jugar
var ultimoEst; 			//Último estado de carga del fichero
var borrarLocal=false;
var borrarURL=false;
var borrarAJDA=false;


// Funcion comprueba fichero preguntas
// Devuelve "true" si vale  para este juego (false en otro caso)
//Se pasa el dato de las Preguntas mínimas de la escena al html iframe

window.addEventListener("message", funcionQueManejaLosMensajes)
	function funcionQueManejaLosMensajes(evt) 
	{
         var data = evt.data;
		 //A evt se le asocia el objeto evento. Este objeto da información del tipo de evento que se ha producido.
		 
         if (data.type === "set") 
		 {
		 	switch (data.name) 
			{
		        case "pmin":
		  		document.getElementById("pregminimas").innerHTML =  data.value;
				pregmin = data.value;
		  		break;
	         	case "temaidm":	
				document.getElementById("enumtema").innerHTML =  data.value + ':';
		  		break;
		        case "autoridm":
				document.getElementById("enumautor").innerHTML =  data.value + ':';	          	
		   		break;			
		        case "npregidm":
		   		document.getElementById("enumpreguntas").innerHTML =  data.value + ':';
	          	break;
		        case "tipoidm":
			  	document.getElementById("enumtipo").innerHTML =  data.value + ':';
	          	break;
		        case "estadocargaidm":
		   		document.getElementById("enumestado").innerHTML =  data.value + ':';
	          	break;
		        case "requisitosidm":
		   		document.getElementById("enunrequisitos").innerHTML =  data.value;
          		break;
		        case "selficheroidm":
		   		document.getElementById("enumselfich").innerHTML =  data.value;
	          	break;	
		        case "repoajdaidm":
		   		document.getElementById("repo").innerHTML =  data.value;
	          	break;			
		        case "enlacewebidm":
		  		document.getElementById("enumurl").innerHTML =  data.value;
	          	break;	
		        case "fichlocalidm":
		   		document.getElementById("enumlocal").innerHTML =  data.value;	
		   		break;	
		        case "toolajdaidm":
		   		document.getElementById("repo").setAttribute("title", data.value);
		   		break;	
		        case "toolurlidm":
		   		document.getElementById("enumurl").setAttribute("title", data.value);		   
	          	break;	
		        case "toollocalidm":
		   		document.getElementById("enumlocal").setAttribute("title", data.value);			   
	          	break;	
		        case "generadoridm":
	 	   		document.getElementById("generador").setAttribute("title", data.value);
	          	break;	
		        case "buscadoridm":
				document.getElementById("buscador").setAttribute("title", data.value);
		 		break;	
		        case "borraridm":
		 		document.getElementById("borrar").setAttribute("title", data.value);
	          	break;	

		        case "cargarfichidm":
           		cargarfichidm = data.value;
		  		InformEst1 = cargarfichidm;
		   		if ((ultimoEst==0))
		   		{
		   		Inform.innerHTML = cargarfichidm;
		 		}
	          	break;	

		        case "fichnocaridm":
		        fichnocaridm = data.value;
	         	InformEst2 = fichnocaridm;
		   		if ((ultimoEst==2))
		   		{
		 		Inform.innerHTML = fichnocaridm;
		 		}
	          	break;	
				
		        case "fichcaridm":
           		fichcaridm = data.value;
		   		InformEst3 = fichcaridm;
		   		if ((ultimoEst==3))
		   		{
				Inform.innerHTML = fichcaridm;
		 		}		
	          	break;
	
		        case "selfichlistidm":
           		selfichlistidm = data.value;
			 	InformEst4 = selfichlistidm;
			   	if ((ultimoEst==4))
		   		{
				Inform.innerHTML = selfichlistidm;
		 		}		
	          	break;	

		        case "errorextidm":
          		errorextidm = data.value;
			  	 InformEst5 = errorextidm;
			   	if ((ultimoEst==5))
		  	 	{
		   		Inform.innerHTML = errorextidm;
		 		}		
	          	break;	

		        case "errorfichidm":
         		  errorfichidm = data.value;
			  	 InformEst6 = errorfichidm;
			   	if ((ultimoEst==6))
		   		{
			  	Inform.innerHTML = errorfichidm;
			 	}		
	          	break;	

		        case "preginsufidm":
          		preginsufidm = data.value;
				InformEst7 = preginsufidm;
			   	if ((ultimoEst==7))
			   	{
			 	Inform.innerHTML = preginsufidm;
		 		}		
	          	break;	

	  	    	default:	
			}						
		 }			
		 else if (data.type === "update") {} 
		 
	}


window.onload = function(evt)
      {
       var rutaListaServidor;
       rutaListaServidor = servidor + rutaFicherosPrefijo + nombreTipoJuego + barraSeparadora + listaPhp;
       leerLista(rutaListaServidor);

       document.getElementById("tipofich").innerHTML =  nombreTipoJuego2.replaceAll(/^(0+)/g,"");

       	Inform = document.getElementById('Info');	//Estado de carga del fichero
	   	Inform.value = "Cargar fichero";
	   	InformEst1 = "Cargar fichero";
	   	InformEst2 = "Fichero no cargado";
	   	InformEst3 = "Fichero cargado";
	   	InformEst4 = "Seleccionar un fichero de la lista";
	   	InformEst5 = "La extensión debe ser .txt";
	   	InformEst6 = "Posible error en fichero";	
	   	InformEst7 = "Preguntas insuficientes para jugar";
		ultimoEst = 0;

       var pm1 = document.getElementById("pregminimas");
        // cuando el campo de texto cambia, es decir hay un enter, entonces se envia el valor al padre y se realiza una actualizacion
        pm1.addEventListener("change", function(evt) 
			{
             window.parent.postMessage({ type: "set", name: "variableEnviada", value: this.value }, '*');
             window.parent.postMessage({ type: "update" }, '*');
            });
      }

function MM_openBrWindow(theURL,winName,features) 
{ //v2.0
window.open(theURL,winName,features);
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Parte que lee los ficheros del cargador 1. Fichero local
function cargaLocal(files) 
{
	var file = files[0];
 	var reader = new FileReader();
	var df1 = document.getElementById('dir1').value;
	var dfExt1= df1.substring(df1.length-4, df1.length);
	
	reader.onload = function (e)

	{
		// Cuando éste evento se dispara, los datos están ya disponibles.
		txt = e.target.result;
		linefich= txt.split ("\n");
		nomAut (nombreTipoJuego, linefich);
		temFich (nombreTipoJuego, linefich);
		longitudFichero = linefich[linefich.length - 1];

    tipoFichero (nombreTipoJuego,linefich);

			  var decimal = numline - Math.floor(numline)

			  if (decimal == 0)
              {	 
               reemnumline=(numline.toFixed(0));
	          }
			  else  
			  {
              reemnumline=(numline.toFixed(2));
              }
				 
     datosFichero ();  
			  

					if (dfExt1 !=".txt")
					{
					cargadaLocal=2;
         			cargadaURL=0;
        			cargadaAJDA=0;
                    errorExtension ();
					}
					else if ( pregmin>numline )
					{
				    cargadaLocal=2;
           	  	    cargadaURL=0;
  		            cargadaAJDA=0;	
                    errorPreguntasInsuficientes ();
					}
					else if ( (numline.toFixed(1)) - (numline.toFixed(0)) !=0 )
					{
					cargadaLocal=3;
					cargadaURL=0;
					cargadaAJDA=0;
                    errorFichero ();
					}
					else
					{
  				    cargadaLocal=1;
		            cargadaURL=0;
  		            cargadaAJDA=0;
                    ficheroCargado ();
					}
	}
		reader.readAsText(file);
}

  
// Parte que lee los ficheros del cargador 2. Enlace URL
function leerFichero(url)
{
	var linefich= new Array();
	var xmlhttp;
	
	xmlhttp = new XMLHttpRequest();
	xmlhttp.onreadystatechange = function()
     {
		if ( xmlhttp.readyState == 4 )
		{
			if ( xmlhttp.status==200 && ! xmlhttp.responseURL.includes ("/juegosdidacticos/index.php") )
            {	 
				txt = xmlhttp.responseText;
				linefich= txt.split ("\n");
				nomAut (nombreTipoJuego, linefich);
        		temFich (nombreTipoJuego, linefich);
		        longitudFichero = linefich[linefich.length - 1];
			
				// Extraemos del fichero el numero de preguntas que contiene
                tipoFichero (nombreTipoJuego,linefich);
		  
		  
			    var decimal = numline - Math.floor(numline)

			    if (decimal == 0)
                {	 
                    reemnumline=(numline.toFixed(0));
	            }
			    else  
			    {
                    reemnumline=(numline.toFixed(2));
                }

				// Limpiamos los datos leídos del fichero recibido
                datosFichero (); 	
			
				if (( pregmin>numline ) &&  (numline>0) )
				{
					cargadaLocal=0;
					cargadaURL=2;
					cargadaAJDA=0;
                    errorPreguntasInsuficientes ();		
				}
				else if ( ((numline.toFixed(1)) - (numline.toFixed(0)) !=0 ) &&  (numline>0) )
				{
				    cargadaLocal=0;
               	    cargadaURL=3;
            		cargadaAJDA=0;
                    errorFichero ();		
				}
				else
				{
					cargadaLocal=0;
					cargadaURL=1;
					cargadaAJDA=0;
                    ficheroCargado ();				
				}		
		    }
		    else
		    {
                limpiar();							// Borrar campos del formulario
				ultimoEst = 2;						// Estado de errores de carga: 2 (Fichero no cargado)
		   		Inform.innerHTML = InformEst2;		// Texto del estado en la Tabla
				Inform.style.color = "red";
				cargadaLocal=0;
				cargadaURL=2;						// Carga incorrecta de URL (icono rojo)
				cargadaAJDA=0;
				activar();							// Activamos botón "Jugar" si algun "cargadaXXX = 1"
				estado();							// Actualiza iconos del resto de campos de la tabla
		    }
		}
     }
				
	 xmlhttp.open("GET", url, true);
	 xmlhttp.send();
}

//Enlace URL
function cargaURL() 
{
	var df2 = document.getElementById('dir2').value;	
	var dfExt2= df2.substring(df2.length-4, df2.length);
	var ini2= document.getElementById('dir2').value.substring(0, 4);
	var ini2b= document.getElementById('dir2').value.substring(0, 2);

	if ( (ini2 !="http") && ( ini2 !="file") && ( ini2b !="./") && ( dfExt2 !=".txt") && ( document.URL.substring(4, 0) !="http") )
	{rutaFichero = "./subida/ficheros/"+document.getElementById('dir2').value+".txt";}
	else if ( (ini2 !="http") && ( ini2 !="file") && ( ini2b !="./") && ( dfExt2 ==".txt") && ( document.URL.substring(4, 0) !="http") )
	{rutaFichero = "./subida/ficheros/"+document.getElementById('dir2').value;}
	else if ( (ini2 !="http") && ( ini2 !="file") && ( ini2b !="./") && ( dfExt2 !=".txt") && ( document.URL.substring(4, 0) =="http") )
	{rutaFichero = servidor+rutaJuegosPrefijo+nombreJuego+rutaJuegosSufijo+document.getElementById('dir2').value+".txt";}
	else if ( (ini2 !="http") && ( ini2 !="file") && ( ini2b !="./") && ( dfExt2 ==".txt") && ( document.URL.substring(4, 0) =="http") )
	{rutaFichero = servidor+rutaJuegosPrefijo+nombreJuego+rutaJuegosSufijo+document.getElementById('dir2').value;}
	
	else {rutaFichero = document.getElementById('dir2').value;} 
    leerFichero(rutaFichero);
}


// Parte que lee los ficheros del cargador 3. Repositorio de AJDA

//Primera opción del menú desplegable

//Lectura de los ficheros de la lista del menú desplegable

function leerLista(url)
{
	var listatxt;
	var listafich= new Array();
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.onreadystatechange = function()
     {
		    if ( xmlhttp.readyState == 4 && xmlhttp.status==200 )
           {	 
			listatxt = xmlhttp.responseText;
			listafich= listatxt.split ("\n");
			document.getElementById('c3-b').style.opacity = 1;
			document.getElementById('repo').style.opacity = 1;
			document.getElementById('dir3').disabled = false;
		
			for (i=0; i<listafich.length; i++)
			{
            if ( listafich[i].trim() != "" )
				{				
					var opcion = document.createElement("option");
					opcion.setAttribute("value", listafich[i]);
					opcion.appendChild( document.createTextNode( listafich[i].slice(0,-4) ) );
					document.getElementById("dir3").appendChild(opcion);
				}
			}
		  }
	}
	xmlhttp.open("POST", url, true);
	xmlhttp.send();
}


//Carga del fichero seleccionado en el menú desplegable

function leerFichero3(url3)
{
	var linefich= new Array();
	var xmlhttp;
	xmlhttp = new XMLHttpRequest();
	xmlhttp.onreadystatechange = function()
     {
			if ( xmlhttp.readyState == 4 && xmlhttp.status==200 )
                {	 
				txt = xmlhttp.responseText;
				linefich= txt.split ("\n");
				nomAut (nombreTipoJuego, linefich);
        		temFich (nombreTipoJuego, linefich);
        		longitudFichero = linefich[linefich.length - 1];
				var opcionprimera=document.getElementById("dir3").options[0].value;
				
    tipoFichero (nombreTipoJuego,linefich);  

			  var decimal = numline - Math.floor(numline)

			  if (decimal == 0)
              {	 
               reemnumline=(numline.toFixed(0));
	          }
			  else  
			  {
              reemnumline=(numline.toFixed(2));
              }

     datosFichero (); 
				
					if ( document.getElementById("dir3").value==opcionprimera )
					{
					ultimoEst = 4;
		   			Inform.innerHTML = InformEst4;
					Inform.style.color = "red";
					cargadaLocal=0;
					cargadaURL=0;
					cargadaAJDA=2;
					activar();					
					estado();
					document.getElementById('tema').innerHTML = ('');
					document.getElementById('autor').innerHTML = ('');
					document.getElementById('npreg').innerHTML = ('');
					document.getElementById('tfor').innerHTML = ('');
					}
					else if ( pregmin>numline )
					{
					cargadaLocal=0;
					cargadaURL=0;
					cargadaAJDA=2;	
                    errorPreguntasInsuficientes ();
					}
					else if ( (numline.toFixed(1)) - (numline.toFixed(0)) !=0 )
					{
					cargadaLocal=0;
					cargadaURL=0;
					cargadaAJDA=3;
                    errorFichero ();
					}
					else
					{
					cargadaLocal=0;
					cargadaURL=0;
					cargadaAJDA=1;
                    ficheroCargado ();
					}
				
			}
	}
	xmlhttp.open("POST", url3, true);
	xmlhttp.send();
}

//Repositorio AJDA
function cargaAJDA() 
{
	var rutaFichero3;
	var nombreFicheroPreguntas = document.getElementById("dir3").value;
	rutaFichero3 = servidor + rutaFicherosPrefijo + nombreTipoJuego + rutaFicherosSufijo + nombreFicheroPreguntas;
    leerFichero3(rutaFichero3);
}
	

//Limpia los campos del formulario

function limpiarFormulario(borrarLocal, borrarURL, borrarAJDA) 
{
	if (borrarLocal==true)
	{	 
    	if (cargadaLocal!=0)
		{
		document.getElementById("dir1").value="";
	    limpiar();
		ultimoEst = 0;
		Inform.innerHTML =  InformEst1;
		Inform.style.color = "red";
		cargadaLocal=0;
		activar();
		estado();
		}
		else{
		document.getElementById("dir1").value="";
		cargadaLocal=0;
		}
	}
	
	if (borrarURL==true)
	{	 
   		if (cargadaURL!=0)
		{
		document.getElementById("dir2").value="";
	    limpiar();
		ultimoEst = 0;		
		Inform.innerHTML =  InformEst1;
		Inform.style.color = "red";
		cargadaURL=0;
		activar();	
		estado();
		}
		else{
		document.getElementById("dir2").value="";
		cargadaURL=0;
		}	
	}
	
	if (borrarAJDA==true)
	{	 
    	if (cargadaAJDA!=0)
		{
		document.getElementById("dir3").value="";
		document.getElementById("dir3").value=document.getElementById("dir3").options[0].value;  
	    limpiar();
		ultimoEst = 0;		
		Inform.innerHTML =  InformEst1;
		Inform.style.color = "red";
		cargadaAJDA=0;
		activar();	
		estado();
		}
		else{
		document.getElementById("dir3").value="";
		document.getElementById("dir3").value=document.getElementById("dir3").options[0].value;
		cargadaAJDA=0;
		}	
	}
	
borrarLocal=false;
borrarURL=false;
borrarAJDA=false;
}
  
//Activa la opción de JUGAR al cargarse correctamente un fichero
function activar()
{
if ((cargadaLocal==0)&&(cargadaURL==0)&&(cargadaAJDA==0)) {ACT=2;}
if ((cargadaLocal!=1)&&(cargadaURL!=1)&&(cargadaAJDA!=1)&&(cargadaLocal!=3)&&(cargadaURL!=3)&&(cargadaAJDA!=3)) {ACT=2; activacion();}
if ((cargadaLocal==1)||(cargadaURL==1)||(cargadaAJDA==1)||(cargadaLocal==3)||(cargadaURL==3)||(cargadaAJDA==3)) {ACT=1; activacion();}
}

//Indica el estado de carga de un fichero en sus diferentes opciones (AJDA, URL, Local(
function estado()
{
if (cargadaLocal!=0) {document.getElementById('c1-b').style.display = 'none';}
if (cargadaURL!=0) {document.getElementById('c2-b').style.display = 'none';}
if (cargadaAJDA!=0) {document.getElementById('c3-b').style.display = 'none';}

if (cargadaLocal!=1) {document.getElementById('c1-v').style.display = 'none';}
if (cargadaURL!=1) {document.getElementById('c2-v').style.display = 'none';}
if (cargadaAJDA!=1) {document.getElementById('c3-v').style.display = 'none';}

if (cargadaLocal!=2) {document.getElementById('c1-r').style.display = 'none';}
if (cargadaURL!=2) {document.getElementById('c2-r').style.display = 'none';}
if (cargadaAJDA!=2) {document.getElementById('c3-r').style.display = 'none';}

if (cargadaLocal!=3) {document.getElementById('c1-n').style.display = 'none';}
if (cargadaURL!=3) {document.getElementById('c2-n').style.display = 'none';}
if (cargadaAJDA!=3) {document.getElementById('c3-n').style.display = 'none';}

if (cargadaLocal==0) {document.getElementById('c1-b').style.display = 'inline';}
if (cargadaURL==0) {document.getElementById('c2-b').style.display = 'inline';}
if (cargadaAJDA==0) {document.getElementById('c3-b').style.display = 'inline';}

if (cargadaLocal==1) {document.getElementById('c1-v').style.display = 'inline';}
if (cargadaURL==1) {document.getElementById('c2-v').style.display = 'inline';}
if (cargadaAJDA==1) {document.getElementById('c3-v').style.display = 'inline';}

if (cargadaLocal==2) {document.getElementById('c1-r').style.display = 'inline';}
if (cargadaURL==2) {document.getElementById('c2-r').style.display = 'inline';}
if (cargadaAJDA==2) {document.getElementById('c3-r').style.display = 'inline';}

if (cargadaLocal==3) {document.getElementById('c1-n').style.display = 'inline';}
if (cargadaURL==3) {document.getElementById('c2-n').style.display = 'inline';}
if (cargadaAJDA==3) {document.getElementById('c3-n').style.display = 'inline';}

}

//Enviar dato de activación de comienzo a la escena
								
function activacion() 
{
window.parent.postMessage({ type: "set", name: "ACTB", value: ACT }, '*');
window.parent.postMessage({ type: "update" }, '*');
window.parent.postMessage({ type: "set", name: "TOTALENVI", value: txt }, '*');
window.parent.postMessage({ type: "update" }, '*');
}

//Función limpiar. Borra parámatros comunes al limpiar

function limpiar() 
{
	document.getElementById('tema').innerHTML = ('');
	document.getElementById('autor').innerHTML = ('');
	document.getElementById('npreg').innerHTML = ('');
	document.getElementById('tfor').innerHTML = ('');
}

//Función que define las preguntas mínimas de cada tipo de fichero

function tipoFichero (nombreTipoJuego, linefich)  
{
          switch (nombreTipoJuego) {
          case "01":
          numline=((linefich.length-3)/9);
          break;
          case "02":
          numline=((linefich.length-3)/20);
          break;
		  case "03":
          numline=((linefich.length-3)/7);
          break;
          case "04":
          numline=((linefich.length-3)/8);
          break;
          case "05":
          numline=((linefich.length-4)/11);
          break;		  
          case "06":
          numline=((linefich.length)/36);
          break;
          case "07":
          numline=(((linefich.length)-3)/10);
          break;
          case "08":
          numline=((linefich.length-3)/9);
          break;		  
          case "09":
          numline=((linefich.length-3)/5);
          break;
          case "10":
          numline=((linefich.length)/79);
          break;
          case "11":
          numline=((linefich.length-3)/1);
          break;		  
          case "12":
          numline=((linefich.length-3)/10);
          break;
          case "13":
          numline=((linefich.length-3)/11);
          break;
          case "14":
          numline=((linefich.length-3)/15);
          break;		  
          case "15":
          numline=((linefich.length-6)/9);
          break;
          case "16":
          numline=(((linefich.length)/24)*9);
          break;
          case "17":
          numline=((linefich.length-5)/11);
          break;		  
          case "18":
          numline=((linefich.length-7)/3);
          break;
          case "19":
          numline=((linefich.length-3)/10);
          break;
          case "20":
          numline=((linefich.length-3)/9);
          break;		  
          case "21":
          numline=((linefich.length-3)/12);
          break;
          case "22":
          numline=((linefich.length-3)/6);
          break;
          case "ahorcado":
          numline=((linefich.length)/22);
          break;
          case "antes_y_despues":
          numline=(((linefich.length)/79)*9);
          break;	
          case "arco_iris":
          numline=((linefich.length-9)/9);
          break;	
          case "cada_sabio_con_su_tema":
          numline=((linefich.length-7)/9);
          break;	
          case "coincidencias":
          numline=((linefich.length)/10);
          break;	
          case "contrasena":
          numline=((linefich.length)/18);
          break;	
          case "cuantas_letras":
          numline=((linefich.length)/42);
          break;	
          case "dos_palabras":
          numline=((linefich.length)/51);
          break;	
          case "duelo_de_palabras":
          numline=((linefich.length)*2/23);
          break;	
          case "el_duelo":
          numline=((linefich.length-3)/11);
          break;	
          case "el_pulsador":
          numline=((linefich.length-11)/10);
          break;	
          case "empieza_por":
          numline=((linefich.length-3)/11);
          break;	
          case "en_pocas_palabras":
          numline=((linefich.length)/5);
          break;	
          case "identity":
          numline=((linefich.length-3)/14);
          break;	
          case "jurado":
          numline=((linefich.length-3)/6);
          break;	
          case "la_escalera":
          numline=((linefich.length-3)/10);
          break;	
          case "la_guillotina":
          numline=((linefich.length)/23);
          break;	
          case "la_parte_por_el_todo":
          numline=((linefich.length)/12);
          break;		
          case "las_pistas":
          numline=((linefich.length-3)/11);
          break;	
          case "letra_a_letra":
          numline=((linefich.length-3)/8);
          break;	
          case "letritas_que_faltan":
          numline=((linefich.length)/43)
          break;	
          case "lingo":
          numline=((linefich.length-3)/6);
          break;	
          case "los_sabios":
          numline=((linefich.length-8)/8);
          break;	
          case "ordena_la_frase":
          numline=((linefich.length-3)/4);
          break;	
          case "palabra_imposible":
          numline=((linefich.length-12)/10);
          break;	
          case "palabras_cruzadas":
          numline=(((linefich.length)/42)*9);
          break;	
          case "palabras_encadenadas":
          numline=((linefich.length-3)/17);
          break;	
          case "pulsapistas":
          numline=((linefich.length-2)/18);
          break;	
          case "que_es_que":
          numline=(((linefich.length)/31)*12);
          break;	
          case "super_frase":
          numline=((linefich.length)/93);
          break;	
          case "tabu":
          numline=((linefich.length-3)/8);
          break;		
          case "un_dos_tres":
          numline=((linefich.length-3)/7);
          break;
		  default:
          numline=0;
          }
		  return numline;
}

//Busca el nombre del autor en cada fichero
function nomAut (nombreTipoJuego, linefich)  
{
          switch (nombreTipoJuego) {
          case "01":
          case "02":
		  case "03":
 		  case "04":
   		  case "06":
   		  case "08":
   		  case "09":
   		  case "11":		
   		  case "12":	
   		  case "13":		
   		  case "14":	
   		  case "15":		
   		  case "16":				
   		  case "17":
   		  case "18":
   		  case "19":
   		  case "20":
   		  case "21":
          case "ahorcado":		
          case "arco_iris":
          case "coincidencias":
          case "contrasena":		
          case "cuantas_letras":
          case "dos_palabras":	
          case "duelo_de_palabras":
          case "el_duelo":
          case "empieza_por":
          case "jurado":
          case "la_escalera":
          case "la_guillotina":
          case "letritas_que_faltan":
          case "lingo":		  
          case "ordena_la_frase":
          case "palabras_encadenadas":		  
          case "pulsapistas":
          case "tabu":		  
          nombreAutor=linefich[0];
          break;
		  
          case "05":
          case "palabra_imposible":
          nombreAutor=linefich[2];
          break;
		  
          case "07":
          case "antes_y_despues":
          case "cada_sabio_con_su_tema":
          case "en_pocas_palabras":	
          case "la_parte_por_el_todo":
          case "las_pistas":
          case "letra_a_letra":
          case "los_sabios":	
          case "palabras_cruzadas":
          case "que_es_que":
          case "super_frase":		  
          case "un_dos_tres":		  
          nombreAutor=linefich[linefich.length-3];
          break;
		  
          case "10":
          nombreAutor=linefich[linefich.length-13];
          break;
		  
          case "22":
          case "identity":		  
          nombreAutor=linefich[linefich.length-2];
          break;
          case "el_pulsador":
          nombreAutor=linefich[1];	  
          break;		  
		  default:
          nombreAutor='No definido';
          }
		  return nombreAutor;
}

//Busca el nombre del autor en cada fichero
function temFich (nombreTipoJuego, linefich)  
{
          switch (nombreTipoJuego) {
          case "01":
          case "02":
		  case "03":
 		  case "04":
          case "05":		  
   		  case "06":
   		  case "08":
   		  case "09":
   		  case "11":		
   		  case "12":	
   		  case "13":		
   		  case "14":	
   		  case "15":		
   		  case "16":				
   		  case "17":
   		  case "18":
   		  case "19":
   		  case "20":
   		  case "21":

          case "arco_iris":
          case "coincidencias":
          case "contrasena":		
          case "cuantas_letras":
          case "dos_palabras":	
          case "duelo_de_palabras":
          case "el_duelo":
          case "empieza_por":
          case "jurado":
          case "la_escalera":
          case "la_guillotina":
          case "letritas_que_faltan":
          case "lingo":		  
          case "ordena_la_frase":
          case "palabras_encadenadas":		  
          case "pulsapistas":
          case "tabu":		  
          temaFichero=linefich[1];
          break;
		  
          case "el_pulsador":		  
          temaFichero=linefich[2];
          break;
		  
          case "07":
          case "ahorcado":				  
          case "antes_y_despues":
          case "cada_sabio_con_su_tema":
          case "en_pocas_palabras":	
          case "la_parte_por_el_todo":
          case "las_pistas":
          case "letra_a_letra":
          case "los_sabios":	
          case "palabra_imposible":				  
          case "palabras_cruzadas": 
          case "que_es_que":
          case "super_frase":		  
          case "un_dos_tres":		  
          temaFichero=linefich[linefich.length-2];
          break;
		  
          case "10":
          temaFichero=linefich[linefich.length-12];
          break;
		  
          case "22":
          temaFichero=linefich[linefich.length-3];
          break;		  
		  
          case "identity":		  
          temaFichero=linefich[0];
          break;
		  
		  default:
          temaFichero='No definido';
          }
		  return temaFichero;
}

//Función que pasa los datos del fichero seleccionado

function datosFichero ()
{
			  cadena1 = nombreAutor.replaceAll("'","");
			  cadena2 = cadena1.replaceAll("AUTOR/A: ","");
			  cadena1 = cadena2.replaceAll("Autor/a: ","");
			  cadena2 = cadena1.replaceAll("AUTOR: ","");
			  cadena1 = cadena2.replaceAll("AUTORA: ","");
			  cadena2 = cadena1.replaceAll("Autor: ","");
			  cadena1 = cadena2.replaceAll("Autores: ","");		
  			  cadena2 = cadena1.replaceAll("Autoras: ","");
			  cadena1 = cadena2.replaceAll("AUTORES: ","");		
  			  cadena2 = cadena1.replaceAll("AUTORAS: ","");	
			  cadena1 = cadena2.replaceAll("AUTORÍA: ","");
  			  cadena2 = cadena1.replaceAll("Autoría: ","");
			  cadena1 = cadena2.replaceAll("Autor/a:","");
			  cadena2 = cadena1.replaceAll("AUTOR/A:","");			  
			  nombreAutor = cadena2.replaceAll("Autora: ","");			  
			  
			  cadena1 = temaFichero.replaceAll("'","");
			  cadena2 = cadena1.replaceAll("TEMA: ","");
			  cadena1 = cadena2.replaceAll("TEMA:","");
			  cadena2 = cadena1.replaceAll("Tema:","");			  
              temaFichero = cadena2.replaceAll("Tema: ","");
			  
			  cadena1 = longitudFichero.replaceAll("'","");
			  cadena2 = cadena1.replaceAll("Compatibilidad ","");
			  cadena1 = cadena2.replaceAll("COMPATIBILIDAD","");
			  longitudFichero = cadena1.replaceAll("Formulario tipo ","");	
}		

//Error en la extenxión del fichero
function errorExtension ()
{
			ultimoEst = 5;
			Inform.innerHTML = InformEst5;
			Inform.style.color = "red";
			activar();
			estado();
            limpiar();
}

//Error preguntas insuficientes
function errorPreguntasInsuficientes ()
{
    		ultimoEst = 7;
		   	Inform.innerHTML = InformEst7;
		   	Inform.style.color = "red";
		   	preginsuf = 1;
		   	activar();
		   	estado();
		   	document.getElementById('tema').innerHTML = temaFichero;
		   	document.getElementById('autor').innerHTML = nombreAutor;
		  	document.getElementById('npreg').innerHTML = reemnumline;
		   	document.getElementById('tfor').innerHTML = longitudFichero;	
}

//Posible error en fichero
function errorFichero ()
{
			ultimoEst = 6;
		  	Inform.innerHTML = InformEst6;
			Inform.style.color = "red";
			activar();
			estado();
		  	document.getElementById('tema').innerHTML = temaFichero;
		  	document.getElementById('autor').innerHTML = nombreAutor;
		  	document.getElementById('npreg').innerHTML = reemnumline;
		  	document.getElementById('tfor').innerHTML = longitudFichero;	
}

//Fichero cargado
function ficheroCargado ()
{
		ultimoEst = 3;		
		Inform.innerHTML = InformEst3;
		Inform.style.color = "blue";
		activar();
		estado();
		document.getElementById('tema').innerHTML = temaFichero;
		document.getElementById('autor').innerHTML = nombreAutor;
		document.getElementById('npreg').innerHTML = reemnumline;
		document.getElementById('tfor').innerHTML = longitudFichero;			
}