package educacion;

import java.io.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

//import bloqueos.BloqueoBean;

/**
 * Servlet implementation class for Servlet: Teoria
 *
 */
 public class Teoria extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	 
	 static final long serialVersionUID = 0;
	 
	public Teoria() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//private static Connection conDB = null;
		//private static String DBUrl;
		
		//Recogemos la operacion enviada por el formulario 
		String operacion = request.getParameter("operacion");
		HttpSession session= request.getSession(true);
		
		String pagina="principal.jsp";
		
		/*
		 * Si la operacion es verTeorias, se recoge el identificador de la teoria seleccionada
		 */
		if (operacion.equals("verTeorias")){	
			TeoriaBean t = new TeoriaBean();
			int idTeoria=0;
			String teoria= request.getParameter("teoria");
			int numeroTeorias=t.numeroTeorias();
			String[] teorias=t.getNombresIds();
			int[] idsTeorias=new int[numeroTeorias];
			int i=0;
			int k=0;
			while(i!=numeroTeorias*2){
				i++;
				idsTeorias[k]=Integer.parseInt(teorias[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroTeorias){
				String j=String.valueOf(idsTeorias[i]);
				if(teoria.equals(j)){
					idTeoria=idsTeorias[i];
				}
				i++;
			}
			//Conseguimos las caracteristicas de la teoria seleccionada
			String nombre=t.getNombre(idTeoria);
			String descripcion=t.getDefinicion(idTeoria);
			String url=t.getUrl(idTeoria);
			
			//Guardamos todas las caracteristicas para luego meterlas en la sesion
			t.setNombre(nombre);
			t.setDefinicion(descripcion);
			t.setIdTeoria(idTeoria);
			t.setUrl(url);
			
			session.setAttribute("teoria",t);
			
			//El servlet nos devolvera a la pagina teoria.jsp
			pagina="teoria.jsp";
		}
		/*
		 * Si la operacion es verEvento, se recoge el identificador del evento seleccionado
		 */
		if(operacion.equals("verEvento")){	
			
			EventoBean e = new EventoBean();
			int idEvento=0;
			TeoriaBean t=(TeoriaBean)session.getAttribute("teoria");
			int idTeoria=t.conseguirIdTeoria();
			int numeroEventos=e.numeroEventos(idTeoria);
			String evento=request.getParameter("evento");
			String[] eventos=e.getNombresIds(idTeoria);
			int i=0;
			int [] idsEventos= new int[numeroEventos];
			int k=0;
			while(i!=numeroEventos*2){
				i++;
				idsEventos[k]=Integer.parseInt(eventos[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroEventos){
				String j=String.valueOf(idsEventos[i]);
				if(evento.equals(j)){
					idEvento=idsEventos[i];
				}
				i++;
			}
			//Conseguimos las caracteristicas del evento seleccionado
			String nombre=e.getNombre(idEvento);
			String descripcion=e.getDefinicion(idEvento);
			
			//Recogemos esas caracteristicas para luego guardarlas en la sesion
			e.setNombre(nombre);
			e.setDefinicion(descripcion);
			e.setIdTeoria(t.conseguirIdTeoria());
			e.setIdEvento(idEvento);
			
			session.setAttribute("evento",e);
			
			//El servlet nos devolvera a la pagina evento.jsp
			pagina="evento.jsp";
		}
		/*
		 * Si la operacion es verTactica, se recoge el identificador de la tactica seleccionada
		 */
		if(operacion.equals("verTactica")){
			
			TacticaBean t = new TacticaBean();
			int idTactica=0;
			EventoBean e=(EventoBean)session.getAttribute("evento");
			int idEvento=e.conseguirIdEvento();
			int numeroTacticas=t.numeroTacticas(idEvento);
			String tactica=request.getParameter("tactica");
			int i=0;
			String[] tacticas =t.getNombresIds(idEvento);
			int[] idsTacticas=new int[numeroTacticas];
			int k=0;
			while(i!=numeroTacticas*2){
				i++;
				idsTacticas[k]=Integer.parseInt(tacticas[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroTacticas){
				String j=String.valueOf(idsTacticas[i]);
				if(tactica.equals(j)){
					idTactica=idsTacticas[i];
				}
				i++;
			}
			
			//Conseguimos las caracteristicas de la tactica seleccionada
			String nombre=t.getNombre(idTactica);
			String descripcion=t.getDefinicion(idTactica);
			
			//Recogemos estas caracteristicas para guardarlas en la sesion
			t.setNombre(nombre);
			t.setDefinicion(descripcion);
			t.setIdEvento(idEvento);
			t.setIdTactica(idTactica);
			
			session.setAttribute("tactica",t);
			
			//El servlet nos devolvera a la pagina tactica.jsp
			pagina="tactica.jsp";
		}
		/*
		 * Si la operacion es verEstrategias, se recoge el identificador de la estrategia seleccionada
		 */
		if (operacion.equals("verEstrategias")){	
			EstrategiaBean t = new EstrategiaBean();
			int idEstrategia=0;
			String teoria= request.getParameter("estrategia");
			int numeroEstrategias=t.numeroEstrategias();
			String[] estrategias=t.getNombresIds();
			int[] idsEstrategias=new int[numeroEstrategias];
			int i=0;
			int k=0;
			while(i!=numeroEstrategias*2){
				i++;
				idsEstrategias[k]=Integer.parseInt(estrategias[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroEstrategias){
				String j=String.valueOf(idsEstrategias[i]);
				if(teoria.equals(j)){
					idEstrategia=idsEstrategias[i];
				}
				i++;
			}
			
			//Conseguimos las caracteristicas de la estrategia seleccionada
			String nombre=t.getNombre(idEstrategia);
			String descripcion=t.getDefinicion(idEstrategia);
		
			//Recogemos estas caracteristicas para guardarlas luego en la sesion
			t.setNombre(nombre);
			t.setDefinicion(descripcion);
			t.setIdEstrategia(idEstrategia);
			
			session.setAttribute("estrategia",t);
			
			//El servlet nos devolvera a la pagina estrategia.jsp
			pagina="estrategia.jsp";
		}
		/*
		 * Si la operacion es verEventoEstrategia, se recoge el identificador del evento seleccionado que
		 * esta relacionado con una Estrategia.
		 */
		if(operacion.equals("verEventoEstrategia")){
			
			EventoEstrategiaBean ev = new EventoEstrategiaBean();
			int idEvento=0;
			EstrategiaBean e=(EstrategiaBean)session.getAttribute("estrategia");
			int idEstrategia=e.conseguirIdEstrategia();
			int numeroEventos=ev.numeroEventos(idEstrategia);
			String evento=request.getParameter("evento");
			String[] eventos=ev.getNombresIds(idEstrategia);
			int i=0;
			int [] idsEventos= new int[numeroEventos];
			int k=0;
			while(i!=numeroEventos*2){
				i++;
				idsEventos[k]=Integer.parseInt(eventos[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroEventos){
				String j=String.valueOf(idsEventos[i]);
				if(evento.equals(j)){
					idEvento=idsEventos[i];
				}
				i++;
			}
			//Conseguimos las caracteristicas del evento seleccionado
			String nombre=ev.getNombre(idEvento);
			String descripcion=ev.getDefinicion(idEvento);
			
			//Recogemos esas caracteristicas para luego guardarlas en la sesion
			ev.setNombre(nombre);
			ev.setDefinicion(descripcion);
			ev.setIdEvento(idEvento);
			
			session.setAttribute("eventoEstrategia",ev);
			
			//El servlet nos devolvera a la pagina eventoEstrategia.jsp
			pagina="eventoEstrategia.jsp";
		}
		/*
		 * Si la operacion es verTacticaEstrategia, se recoge el identificador de la tactica seleccionada
		 */
		if(operacion.equals("verTacticaEstrategia")){
			
			TacticaBean t = new TacticaBean();
			int idTactica=0;
			EventoEstrategiaBean ev=(EventoEstrategiaBean)session.getAttribute("eventoEstrategia");
			int idEvento=ev.conseguirIdEvento();
			int numeroTacticas=t.numeroTacticas(idEvento);
			String tactica=request.getParameter("tactica");
			String[] tacticas=t.getNombresIds(idEvento);
			int i=0;
			int[] idsTacticas=new int [numeroTacticas];
			int k=0;
			while(i!=numeroTacticas*2){
				i++;
				idsTacticas[k]=Integer.parseInt(tacticas[i]);
				k++;
				i++;
			}
			i=0;
			while(i!=numeroTacticas){
				String j=String.valueOf(idsTacticas[i]);
				if(tactica.equals(j)){
					idTactica=idsTacticas[i];
				}
				i++;
			}
			
			//Conseguimos las caracteristicas de esta tactica
			String nombre=t.getNombre(idTactica);
			String descripcion=t.getDefinicion(idTactica);
			
			//Recogemos las caracteristicas para luego guardarlas como atributo de la sesion
			t.setNombre(nombre);
			t.setDefinicion(descripcion);
			t.setIdEvento(idEvento);
			t.setIdTactica(idTactica);
			
			session.setAttribute("tactica",t);
			
			//El servlet nos devolvera a la pagina tacticaEstrategia.jsp
			pagina="tactica.jsp";
		}
		
		RequestDispatcher dispatcher = request.getRequestDispatcher(pagina);
		dispatcher.forward(request, response); 
		//Conexion.desconecta();
	}  
}   	  	    

