// Valores iniciales del parámetro tiempo:
inicio = -3;	// valor inicial de tiempo
fin = 26;		// valor final de tiempo
mueve = false;	// la acción está parada al iniciarse el programa
espera = 50;	// milisegundos de intervalo del reloj (la acción se ejecuta cada 50 milisegundos, o sea, 20 "fotogramas" por segundo)
paso = 0.099;	// incremento del tiempo en cada ejecución 
xj = 5;
// Nota importante: para evitar "singularidades" (errores de Java)
// NO PONER PASO = 0.1 PUES 0.1 EN BINARIO NO ES EXACTO: 0.1 (decimal) = .0001100011000111000111… (binario)
			
// Programa
tiempo = inicio;    // Comenzamos: el tiempo toma su valor inicial por defecto	
reloj = null;		// Se crea un reloj virtual
coseno = 1;			// Inicia la variable coseno, dándole el valor por defecto
tiempo2 = xj;
coseno2 = 1;
velocidad = 5;
tiempo0 = 0;
modo_x = 0;

function ini() {
	document.getElementById("modo1").checked = true;
	document.getElementById("modo2").checked = false;
	document.getElementById("modo3").checked = false;
	document.getElementById("expresion").value = "";
	document.location.reload();
}

function modo() {	
	if (document.getElementById("modo2").checked){
		modo_x = 1;
	} else{
		if (document.getElementById("modo3").checked){
			modo_x = 2;
		} else{
			modo_x = 0;
		}
	}
	applet = document.Coche;
	applet.evalCommand("modo="+modo_x);
}

function reinicio() {	
	applet = document.Coche;
	setTimeout("clearInterval(reloj)", 0);
	mueve = false;
	tiempo = inicio;
	xj = applet.getValue("xj");
	tiempo2 = xj;
	applet.evalCommand("tiempo=" + tiempo);
	applet.refreshViews();
}

function retrocede() {	
	if (!mueve){
		mueve = true; 
		reloj = setInterval("atras()", espera);
	}
}

function avanza() {	
	if (!mueve){
		mueve = true; 
		reloj = setInterval("adelante()", espera);
	}
}

function pausa() {
	if (mueve){
		mueve = false; 
		setTimeout("clearInterval(reloj)", 0);	
	}
}

function adelante() {
	applet = document.Coche;	
	tiempo = applet.getValue("tiempo");
	tiempo2 = applet.getValue("tiempo2");
	xj = applet.getValue("xj");
	coseno = applet.getValue("m2");
	coseno2 = applet.getValue("m3");
	if (modo_x == 1){
		coseno2 /= coseno;
		coseno = 1;
	}
	if (modo_x == 2){
		coseno = 1;
		coseno2 = 1;
	}
	velocidad = applet.getValue("velocidad");
	if(tiempo < fin) {
		tiempo = tiempo + paso*coseno*velocidad/5;
		applet.evalCommand("tiempo=" + tiempo);
		if (tiempo >= xj){
			tiempo2 = tiempo2 + paso*coseno2*velocidad/5;
		} else{
			tiempo2 = xj;
		}
		applet.evalCommand("tiempo2=" + tiempo2);
	} else{
		setTimeout("clearInterval(reloj)", 0);
		mueve = false;
		tiempo = fin;
		applet.evalCommand("tiempo=" + tiempo);
	}
}

function actualiza() {
	applet = document.Coche;
	tiempo0 = applet.getValue("tiempo");
	reinicio();
	//if (tiempo < tiempo0){
	tiempo = inicio;
	while (tiempo < tiempo0){
		tiempo = applet.getValue("tiempo");
		tiempo2 = applet.getValue("tiempo2");
		xj = applet.getValue("xj");
		coseno = applet.getValue("m2");
		coseno2 = applet.getValue("m3");
		if (modo_x == 1){
			coseno2 /= coseno;
			coseno = 1;
		}
		if (modo_x == 2){
			coseno = 1;
			coseno2 = 1;
		}
		tiempo = tiempo + paso*coseno*2;
		applet.evalCommand("tiempo=" + tiempo);
		if (tiempo >= xj){
			tiempo2 = tiempo2 + paso*coseno2*2;
		} else{
			tiempo2 = xj;
		}
		applet.evalCommand("tiempo2=" + tiempo2);
	}
	/*} else{
		tiempo = inicio;
		tiempo2 = 
		applet.evalCommand("tiempo2=" + inicio);
	}*/
	applet.refreshViews();
}


function atras() {	
	applet = document.Coche;	
	tiempo = applet.getValue("tiempo");
	tiempo2 = applet.getValue("tiempo2");
	xj = applet.getValue("xj");
	coseno = applet.getValue("m2");
	coseno2 = applet.getValue("m3");
	if (modo_x == 1){
		coseno2 /= coseno;
		coseno = 1;
	}
	if (modo_x == 2){
		coseno = 1;
		coseno2 = 1;
	}
	velocidad = applet.getValue("velocidad");
	if(tiempo > inicio) {
		tiempo = tiempo - paso*coseno*velocidad/5; 
		applet.evalCommand("tiempo=" + tiempo);
		if (tiempo >= xj){
			tiempo2 = tiempo2 - paso*coseno2*velocidad/5;
		} else{
			tiempo2 = xj;
		}
		applet.evalCommand("tiempo2=" + tiempo2);
	} else{
		reinicio();
	}
}

function nueva() {	
	applet = document.Coche;
	applet.evalCommand("f(x)="+document.getElementById("expresion").value);
	applet.evalCommand("elegida=0");
	invisible();
	actualiza();
}

function invisible(){
	applet = document.Coche;
	applet.setVisible("C1_1",false);
	applet.setVisible("C1_2",false);
	applet.setVisible("C1_3",false);
	applet.setVisible("C2_1",false);
	applet.setVisible("C2_2",false);
	applet.setVisible("C2_3",false);
	applet.setVisible("C3_1",false);
	applet.setVisible("C3_2",false);
	applet.setVisible("C3_3",false);
	applet.setVisible("C3_4",false);
	applet.setVisible("C3_5",false);
	applet.setVisible("C3_6",false);
	applet.setVisible("C3_7",false);
	applet.setVisible("C4_1",false);
	applet.setVisible("C4_2",false);
	applet.setVisible("C4_3",false);
	applet.setVisible("C4_4",false);
	applet.setVisible("C5_1",false);
	applet.setVisible("C5_2",false);
	applet.setVisible("C5_3",false);
	applet.setVisible("C5_4",false);
}

function f1() {
	applet = document.Coche;
	applet.evalCommand("f(x)=f1(x)");
	applet.evalCommand("elegida=1");
	invisible();
	applet.setVisible("C1_1",true);
	applet.setVisible("C1_2",true);
	applet.setVisible("C1_3",true);
	actualiza();
}

function f2() {
	applet = document.Coche;
	applet.evalCommand("f(x)=f2(x)");
	applet.evalCommand("elegida=2");
	invisible();
	applet.setVisible("C2_1",true);
	applet.setVisible("C2_2",true);
	applet.setVisible("C2_3",true);
	actualiza();

}

function f3() {
	applet = document.Coche;
	applet.evalCommand("f(x)=f3(x)");
	applet.evalCommand("elegida=3");
	invisible();
	applet.setVisible("C3_1",true);
	applet.setVisible("C3_2",true);
	applet.setVisible("C3_3",true);
	applet.setVisible("C3_4",true);
	applet.setVisible("C3_5",true);
	applet.setVisible("C3_6",true);
	applet.setVisible("C3_7",true);
	actualiza();
}

function f4() {
	applet = document.Coche;
	applet.evalCommand("f(x)=f4(x)");
	applet.evalCommand("elegida=4");
	invisible();
	applet.setVisible("C4_1",true);
	applet.setVisible("C4_2",true);
	applet.setVisible("C4_3",true);
	applet.setVisible("C4_4",true);
	actualiza();
}

function f5() {
	applet = document.Coche;
	applet.evalCommand("f(x)=f5(x)");
	applet.evalCommand("elegida=5");
	invisible();
	applet.setVisible("C5_1",true);
	applet.setVisible("C5_2",true);
	applet.setVisible("C5_3",true);
	applet.setVisible("C5_4",true);	
	actualiza();
}
