var sustancias = new Array("acetona","agua","agua de mar","alcohol","aluminio","cloroformo","cobre","madera de encina","madera de haya","hielo","hierro","mercurio","oro","madera de pino","plata","plomo","madera de roble","sangre");
var densidades = new Array(0.79,1.00,1.03,0.81,2.70,1.48,8.93,0.86,0.75,0.92,7.87,13.50,19.30,0.53,10.50,11.30,0.88,1.06);
var aleatorioSusDen;
var aleatorioVolumen;
var volumen;
var masa;
var veces=0;
var equivocado=0;
var problema=1;
var formulario;
var input;
var eDIV;
var texto;


/***************************************************************************************************
+ Nombre: escribeEnunciado
+ Finalidad: función que escoge y presenta el enunciado de tres modelos de problemas alternándose 
(primero el primero, después el segundo, finalmente el tercero y nuevamente el primero, etc.) Al 
azar se elige una sustancia y un volumen que debe variar entre 50 y 250 (de en 5 unidades). De igual
modo situa un campo para insertar la solución y un botón para comprobar el resultado.
+ Suposiciones: 
	- problema
	- densidades[]
	- sustancias[]
+ Efectos: --
+ Parámetros Entrada: --
+ Valores Devueltos: --
****************************************************************************************************/
function escribeEnunciado()
{

switch(problema)
   {
   	case 1: aleatorioSusDen=aleat(0,18);
			aleatorioVolumen= aleat(10,51);
			volumen=aleatorioVolumen*5;
			masa=Math.round(parseFloat(volumen*densidades[aleatorioSusDen])*100)/100;
			
			clearObj(document.getElementById("divx"));
			eDIV = document.createElement("div");
		    eDIV.setAttribute("id","myDiv");
		    eDIV.appendChild(document.createTextNode("Al medir la masa de " + volumen + "mL de " + sustancias[aleatorioSusDen] + ", se obtiene un valor de " + masa +
		    "g. \u00BFCu\u00E1l es su densidad?"));
			formulario=document.createElement("form");
			formulario.setAttribute("name","form1");
			formulario.setAttribute("method","POST");
			formulario.appendChild(document.createTextNode("d="));
			input=document.createElement("input");
			input.setAttribute("name","datos");
			input.setAttribute("type","text");
		    input.setAttribute("onkeypress","javascript:if(event.keyCode==13){return false;}")
			formulario.appendChild(input);
			formulario.appendChild(document.createTextNode("g/mL  "));
	
			input=document.createElement("input");
			input.setAttribute("type","button");
			input.setAttribute("name","boton");
			input.setAttribute("value","Comprobar");
			input.setAttribute("onclick","compruebaRespuesta1();");	
			formulario.appendChild(input);
	
			eDIV.appendChild(formulario);
			texto=document.createTextNode("");
			eDIV.appendChild(texto);
		    document.getElementById("divx").appendChild(eDIV);
			break;
			
	case 2: aleatorioSusDen=aleat(0,18);
			aleatorioVolumen= aleat(10,51);
			volumen=aleatorioVolumen*5;
			masa=Math.round(parseFloat(volumen*densidades[aleatorioSusDen])*100)/100;
			
			clearObj(document.getElementById("divx"));
			eDIV = document.createElement("div");
		    eDIV.setAttribute("id","myDiv");
		    eDIV.appendChild(document.createTextNode("La densidad de " + sustancias[aleatorioSusDen]+ " es de "+densidades[aleatorioSusDen]+"g/mL. \u00BFQu\u00e9 masa tendr\u00E1 un volumen de "+volumen+"mL de "+sustancias[aleatorioSusDen]+"?"));
			formulario=document.createElement("form");
			formulario.setAttribute("name","form1");
			formulario.setAttribute("method","POST");
			formulario.appendChild(document.createTextNode("m="));
			input=document.createElement("input");
			input.setAttribute("name","datos");
			input.setAttribute("type","text");
		    input.setAttribute("onkeypress","javascript:if(event.keyCode==13){return false;}")			
			formulario.appendChild(input);
			formulario.appendChild(document.createTextNode("g  "));
	
			input=document.createElement("input");
			input.setAttribute("type","button");
			input.setAttribute("name","boton");
			input.setAttribute("value","Comprobar");
			input.setAttribute("onclick","compruebaRespuesta2();");	
			formulario.appendChild(input);

			eDIV.appendChild(formulario);
			texto=document.createTextNode("");
			eDIV.appendChild(texto);
		    document.getElementById("divx").appendChild(eDIV);
			break;
			
	case 3: aleatorioSusDen=aleat(0,18);
			aleatorioVolumen= aleat(10,51);
			volumen=aleatorioVolumen*5;
			masa=Math.round(parseFloat(volumen*densidades[aleatorioSusDen])*100)/100;

			clearObj(document.getElementById("divx"));
			eDIV = document.createElement("div");
		    eDIV.setAttribute("id","myDiv");
		    eDIV.appendChild(document.createTextNode("\u00BFQu\u00e9 volumen ocupar\u00f3an " + masa + "g de "+ sustancias[aleatorioSusDen]+" si su densidad vale " + densidades[aleatorioSusDen]+"g/mL?"));
			formulario=document.createElement("form");
			formulario.setAttribute("name","form1");
			formulario.setAttribute("method","POST");
			formulario.appendChild(document.createTextNode("V="));
			input=document.createElement("input");
			input.setAttribute("name","datos");
			input.setAttribute("type","text");
		    input.setAttribute("onkeypress","javascript:if(event.keyCode==13){return false;}")
			formulario.appendChild(input);
			formulario.appendChild(document.createTextNode("mL  "));
	
			input=document.createElement("input");
			input.setAttribute("type","button");
			input.setAttribute("name","boton");
			input.setAttribute("value","Comprobar");
			input.setAttribute("onclick","compruebaRespuesta3();");	
			formulario.appendChild(input);
		
			eDIV.appendChild(formulario);
			texto=document.createTextNode("");
			eDIV.appendChild(texto);
		    document.getElementById("divx").appendChild(eDIV);
			break;
			
	default: break;
   }	
}


/***************************************************************************************************
+ Nombre: compruebaRespuesta1
+ Finalidad: Este algoritmo comprueba la respuesta al problema tipo 1. Si acierta, lo indica y pasa 
al siguiente problema. Si falla, se borra la respuesta y hace aparecer la fórmula a aplicar. Si 
reincide en el fallo, se borra lo que se ha escrito y, aparece al lado la fórmula con los valores.
Si no acierta a la tercera, se borra lo escrito, muestra un mensaje con la solución. Se lanza la 
función para mostrar otra vez un problema de este tipo.
+ Suposiciones: 
	- problema
	- densidades[]
	- sustancias[]
+ Efectos: --
+ Parámetros Entrada: --
+ Valores Devueltos: --
****************************************************************************************************/

function compruebaRespuesta1(){	

    veces++;
    if (document.forms[0].datos.value == densidades[aleatorioSusDen]) {
		problema++;
		dialogo("HAS ACERTADO. \u00a1MUY BIEN!");
		escribeEnunciado();
		veces = 0;
	}
	else {
		
		if (veces == 1) {
			document.forms[0].datos.value = "";
			texto=document.createTextNode("d=m/V");
			eDIV.removeChild(eDIV.lastChild);
			eDIV.appendChild(texto);

		    document.getElementById("divx").appendChild(eDIV);
			
		}
		else 
			if (veces == 2) {
				document.forms[0].datos.value = "";
				texto=document.createTextNode("d="+masa+"/"+volumen);
				eDIV.removeChild(eDIV.lastChild);
				eDIV.appendChild(texto);				
			}
			else 
				if (veces == 3) {
					document.forms[0].datos.value = "";
					texto=document.createTextNode("Te has equivocado, la densidad vale " + densidades[aleatorioSusDen] + "g/mL");
					eDIV.removeChild(eDIV.lastChild);
					eDIV.appendChild(texto);
					dialogo("Te has equivocado, la densidad vale " + densidades[aleatorioSusDen] + "g/mL");
					problema=1;
					veces = 0;
					escribeEnunciado();

				}

	}
}

/***************************************************************************************************
+ Nombre: compruebaRespuesta2
+ Finalidad: Este algoritmo comprueba la respuesta al problema tipo 2. Si acierta, lo indica y pasa 
al siguiente problema. Si falla, se borra la respuesta y hace aparecer la fórmula a aplicar. Si 
reincide en el fallo, se borra lo que se ha escrito y, aparece al lado la fórmula con los valores.
Si no acierta a la tercera, se borra lo escrito, muestra un mensaje con la solución. Se lanza la 
función para mostrar otra vez un problema de este tipo.
+ Suposiciones: 
	- problema
	- densidades[]
	- sustancias[]
+ Efectos: --
+ Parámetros Entrada: --
+ Valores Devueltos: --
****************************************************************************************************/
function compruebaRespuesta2(){	

	var elemento;
    veces++;
    if (document.forms[0].datos.value == masa) {
		problema++;
		dialogo("HAS ACERTADO. \u00a1MUY BIEN!");
		escribeEnunciado();
		veces=0;		
	}
	else 
		if (veces == 1) {
			document.forms[0].datos.value = "";
			texto=document.createTextNode("m=V\u00b7d");
			eDIV.removeChild(eDIV.lastChild);
			eDIV.appendChild(texto);
		}
		else 
			if (veces == 2) {
				document.forms[0].datos.value = "";
				texto=document.createTextNode("m=" + volumen + "\u00b7" + densidades[aleatorioSusDen]);
				eDIV.removeChild(eDIV.lastChild);
				eDIV.appendChild(texto);
				
			}
			else 
				if (veces == 3) {
					document.forms[0].datos.value = "";
					texto=document.createTextNode("Te has equivocado, la masa vale " + masa + "g");
					eDIV.removeChild(eDIV.lastChild);
					eDIV.appendChild(texto);
					dialogo("Te has equivocado, la masa vale " + masa + "g");					
					veces = 0;
					problema=2;
					escribeEnunciado();
				}
}

/***************************************************************************************************
+ Nombre: compruebaRespuesta3
+ Finalidad: Este algoritmo comprueba la respuesta al problema tipo 3. Si acierta, lo indica y pasa 
al siguiente problema. Si falla, se borra la respuesta y hace aparecer la fórmula a aplicar. Si 
reincide en el fallo, se borra lo que se ha escrito y, aparece al lado la fórmula con los valores.
Si no acierta a la tercera, se borra lo escrito, muestra un mensaje con la solución. Se lanza la 
función para mostrar otra vez un problema de este tipo.
+ Suposiciones: 
	- problema
	- densidades[]
	- sustancias[]
+ Efectos: --
+ Parámetros Entrada: --
+ Valores Devueltos: --
****************************************************************************************************/
function compruebaRespuesta3(){	

	var elemento;
    veces++;
    if (document.forms[0].datos.value == volumen) {
		problema=1;
		dialogo("HAS ACERTADO. \u00a1MUY BIEN!");
		escribeEnunciado();
		veces=0;		
	}
	else 
		if (veces == 1) {
			document.forms[0].datos.value = "";
			texto=document.createTextNode("V=m/d");
			eDIV.removeChild(eDIV.lastChild);
			eDIV.appendChild(texto);
		}
		else 
			if (veces == 2) {
				document.forms[0].datos.value = "";
				texto=document.createTextNode("V=" + masa + "/" + densidades[aleatorioSusDen]);
				eDIV.removeChild(eDIV.lastChild);
				eDIV.appendChild(texto);
				
			}
			else 
				if (veces == 3) {
					document.forms[0].datos.value = "";
					texto=document.createTextNode("Te has equivocado, el volumen vale " + volumen + "mL");
					eDIV.removeChild(eDIV.lastChild);
					eDIV.appendChild(texto);
					dialogo("Te has equivocado, el volumen vale " + volumen + "mL");										
					veces = 0;
					problema=3;
					escribeEnunciado();
				}

}


