package itourbaskServlet;

import itourbaskBeans.q53EncuestaBean;
import itourbaskBeans.q53RespuestaBean;
import itourbaskClases.q53EncuestaClass;
import itourbaskClases.q53ProcedenciaClass;
import itourbaskClases.q53RespuestaClass;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import q53_util.q53Constantes;
import q53_util.q53LogEstadisticas;
import q53_util.q53Util;

import com.cidat.proclets.PSP;
import com.cidat.proclets.ProcletException;
import com.cidat.proclets.ProcletServiceData;


public class q53usrBusquedaServlet extends q53Servlet {
	ProcletServiceData sd;
	
	public void pspProcess(ProcletServiceData psd) throws ProcletException {
		q53LogEstadisticas.printLog("Entra en q53usrBusquedaServlet");
		sd = psd;
		// Trapi para que chute
    	//sd.servletSrvVersion = 8;
    	try {
			// establece el contentType del response
			sd.res.setContentType("text/html");
			sd.res.setHeader("Pragma", "no-cache");
			sd.res.setHeader("Cache-Control", "no-cache");
			sd.res.setHeader("Expires", "0");
			
			String codigo_aleatorio = q53Util.obtener_cod_aleatorio();
			
			// tratar las cookies
			
			q53_tratarCookies(sd);
			q53LogEstadisticas.printLog("perfil:"+sd.gOS("q53_cki.q53_perfil"));
			q53Util.setPerfilInSession(sd);
			/*String perfilUser = "NO";
			 if (q53Util.esPerfil(sd, q53Constantes.PERFIL_USRO)) {
			 perfilUser = "SI";
			 }
			 String perfilCoord = "NO";
			 if (q53Util.esPerfil(sd, q53Constantes.PERFIL_COOR)) {
			 perfilCoord = "SI";
			 }
			 String perfilAdmin = "NO";
			 if (q53Util.esPerfil(sd, q53Constantes.PERFIL_ADMO)) {
			 perfilAdmin = "SI";
			 }
			 sd.setVal("perfilUser", perfilUser);
			 sd.setVal("perfilCoord", perfilCoord);
			 sd.setVal("perfilAdmin", perfilAdmin);*/
			//CHANGE          Saco esto del if pq es comun a if y else y se actualiza descoordinadamente sino
			PSP.paramProclet(sd,
			"usuario(),accion(),respuesta_rd_asociada(),encuestas_terminadas(),fechaInicio(),fechaFin(),fechaInicioVis(),fechaFinVis(),encuesta(),pendientes(),ultima(),pofi(),asc(),des(),tipo_ordenacion(), codigosRespuesta(), cp(), cuantos()");
			String codOficina = sd.gOS("q53_cki.q53_oficina");
			String accion = sd.gOS("accion");
			q53LogEstadisticas.printLog("accion:"+accion);
			String usuario=sd.gOS("usuario"); 
			q53LogEstadisticas.printLog("usuario:"+usuario);
			sd.setVal("usuario",usuario);
			String respuestaAsociada = sd.gOS("respuesta_rd_asociada");
			String encuestasTerminadas = sd.gOS("encuestas_terminadas");
			sd.setVal("respuesta_rd_asociada", respuestaAsociada);
			sd.setVal("encuestas_terminadas", encuestasTerminadas);
			String volver = q53Util.getLiteral(sd, "GEN_VOLVER", q53Util.getIdioma(sd));
			sd.setVal("volver", volver);
			String encuesta=sd.gOS("encuesta"); // de esta no hacia set
			q53LogEstadisticas.printLog("encuesta:"+encuesta);
			
			String fechaInicio = sd.gOS("fechaInicio");
			q53LogEstadisticas.printLog("fechaInicio:"+fechaInicio);
			
			String fechaFin = sd.gOS("fechaFin");
			q53LogEstadisticas.printLog("fechaFin:"+fechaFin);
			
			String fechaInicioVis = sd.gOS("fechaInicioVis");
			q53LogEstadisticas.printLog("fechaInicioVis:"+fechaInicioVis);
			
			String fechaFinVis = sd.gOS("fechaFinVis");
			q53LogEstadisticas.printLog("fechaFinVis:"+fechaFinVis);
			
			sd.setVal("fechaInicio", fechaInicio);
			sd.setVal("fechaFin", fechaFin);
			sd.setVal("fechaInicioVis", fechaInicioVis);
			sd.setVal("fechaFinVis", fechaFinVis);
			String ascOrDesc = "asc";
			String visOrGrab = "vis";
			String fechaInit = fechaInicioVis;
			String fechaFinal = fechaFinVis;
			String asc=sd.gOS("asc");
			String aux = "";
			//          Si no es ascendiente se tiene que ordenar descendientemente
			if(asc.equals("")) 
				ascOrDesc = "desc";
			//Si no se ha metido la fecha de visita se procede con la de grabacion
			if (!fechaInicio.equals("")||!fechaFin.equals("")){ 
				visOrGrab = "gra";
				fechaInit = fechaInicio;
				fechaFinal = fechaFin;
			}
			//CHANGE          Saco esto del if pq es comun a if y else y se actualiza descoordinadamente sino
			//busqueda por provincia y CP.
			String provincia = q53Util.getStringAndSetItInResponse(sd, "provincia");
			String cp = q53Util.getStringAndSetItInResponse(sd, "cp");
			// busqueda por provincia y CP
			if (q53Util.esPerfil(sd, q53Constantes.PERFIL_COOR)) {
				String oficina=sd.gOS("pofi");
				if(oficina==null || oficina.length()==0)oficina=(String)sd.req.getSession(true).getAttribute("pofi");
				if(oficina==null)oficina="";
				oficina=oficina.toUpperCase();
				q53LogEstadisticas.printLog("OFICINA:"+oficina);
				q53LogEstadisticas.printLog("encuesta presencial o no presencial:<"+encuesta + ">");
				//Recojemos la encuesta visible de la oficina para recuperar los datos
				//y al pulsar el boton volver en la jsp podemos volver a la 
				//panatalla de recogida de datos
				q53EncuestaBean encuestaVisible = null;
				if(encuesta.equals("pres")){
					encuestaVisible = q53EncuestaClass.getEncuestaVisiblePres(sd, oficina);
				}else{
					encuestaVisible = q53EncuestaClass.getEncuestaVisibleNoPres(sd,	oficina);
				}
				List listOficinas = q53ProcedenciaClass.getOficinasListNombre(sd);
				List listNombres=q53ProcedenciaClass.getNombresList(sd,null);
				sd.setVal("listaOficinas",listOficinas);
				sd.setVal("listaNombres",listNombres);
				q53LogEstadisticas.printLog("oficina(POFI) "+oficina);
				q53LogEstadisticas.printLog("codOficina "+codOficina);
				sd.req.getSession(true).setAttribute("pofi",oficina);
				sd.setVal("encVisible", encuestaVisible);
				sd.setVal("pagina", "q53_usr_busquedaEncuestas");
				if (accion.equals("inicioBusqueda")) {
					//Redirijimos a la pantalla de busquedas
					PSP.setTemplatePageProclet(sd,	"/q53_usr_busquedaEncuestas.jsp?cod_al="+codigo_aleatorio+"&cuantos="+sd.gOS("cuantos"));
				} else {
					//Empieza la busqueda de espuestas
					/*String fechaInicio = sd.gOS("fechaInicio");
					 String fechaFin = sd.gOS("fechaFin");
					 String fechaInicioVis = sd.gOS("fechaInicioVis");
					 String fechaFinVis = sd.gOS("fechaFinVis");
					 sd.setVal("fechaInicio", fechaInicio);
					 sd.setVal("fechaFin", fechaFin);
					 sd.setVal("fechaInicioVis", fechaInicioVis);
					 sd.setVal("fechaFinVis", fechaFinVis);
					 String ascOrDesc = "asc";
					 String visOrGrab = "vis";
					 String fechaInit = fechaInicioVis;
					 String fechaFinal = fechaFinVis;
					 String asc=sd.gOS("asc");
					 String aux = "";
					 //Si no es ascendiente se tiene que ordenar descendientemente
					  if(asc.equals("")) 
					  ascOrDesc = "desc";
					  //Si no se ha metido la fecha de visita se procede con la de grabacion
					   if (!fechaInicio.equals("")||!fechaFin.equals("")){ 
					   visOrGrab = "gra";
					   fechaInit = fechaInicio;
					   fechaFinal = fechaFin;
					   }*/
					String pendientes=sd.gOS("pendientes");
					String ultima=sd.gOS("ultima");
					String des=sd.gOS("des");
					String tipo_ordenacion=sd.gOS("tipo_ordenacion");
					q53LogEstadisticas.printLog("fechaInicio "+fechaInicio);
					q53LogEstadisticas.printLog("fechaFin "+fechaFin);
					q53LogEstadisticas.printLog("fechaInicioVis "+fechaInicioVis);
					q53LogEstadisticas.printLog("fechaFinVis "+fechaFinVis);
					q53LogEstadisticas.printLog("asc "+asc);
					q53LogEstadisticas.printLog("tipo_ordenacion "+tipo_ordenacion);
					q53LogEstadisticas.printLog("provincia "+provincia);
					q53LogEstadisticas.printLog("codigo postal "+cp);
					q53LogEstadisticas.printLog("pendientes "+ pendientes);
					if(pendientes.length()==0 && sd.req.getSession(true).getAttribute("pendientes")!=null)pendientes=(String)sd.req.getSession(true).getAttribute("pendientes");
					else if(pendientes.equals("N"))pendientes="";
					sd.req.getSession(true).setAttribute("pendientes",pendientes);
					if(ultima.length()==0 && sd.req.getSession(true).getAttribute("ultima")!=null)ultima=(String)sd.req.getSession(true).getAttribute("ultima");
					else if(ultima.equals("N"))ultima="";
					sd.req.getSession(true).setAttribute("ultima",ultima);
					
					
					//Recuperamos la lista de respuestas odenadas por fecha de realizacion de la encuesta
					String tipo=sd.gOS("encuesta");
					List respuestasList=null;
					
					String  codigosRespuesta = "";
					
					
					q53LogEstadisticas.printLog("------CAMBIO: busqueda de tipo " + visOrGrab + " por orden " + ascOrDesc + " y pendientes:"+pendientes.length());
					if(pendientes.length()==0){
						respuestasList = q53RespuestaClass.getRespuestasNuevo(sd,oficina, fechaInit, fechaFinal, tipo,ultima,tipo_ordenacion,ascOrDesc,visOrGrab,usuario);
						//TODO:Quitar esto acabadas las pruebas
						codigosRespuesta = q53RespuestaClass.getCodigosRespuestaGlobal(sd,oficina, fechaInit, fechaFinal,tipo,ultima,tipo_ordenacion,ascOrDesc,visOrGrab,usuario, cp);
						//TODO:Quitar esto acabadas las pruebas FIN 
						aux = recuperarCodigosDeRespuesta(respuestasList);
						comparadorDeCadenas(codigosRespuesta, aux);
						codigosRespuesta = aux; 		
					}
					else{//TODO Esto hay que limpiarlo en cuanto veamos que funcionan bien las interfaces (para la proxima vez que se toque esta clase).
						if(!fechaInicio.equals("")||!fechaFin.equals("")){
							if(asc.equals("")){
								respuestasList =q53RespuestaClass.getRespuestasTipoEstado(sd,
																											 oficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoDesc(sd,
																														 oficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}else{
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoAsc(sd,
																												 oficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoAsc(sd,
																														oficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}
						}else{
							if(asc.equals("")){
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoVis(sd,
																												 oficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoVisDesc(sd,
																															 oficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}else{
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoVisAsc(sd,
																													 oficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoVisAsc(sd,
																															oficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}
						}
					}	
					sd.setVal("respuestasList", respuestasList);					
					sd.setVal("codigosRespuesta", codigosRespuesta);
					sd.setVal("pagina", "q53_usr_busquedaEncuestas");
					sd.setVal("tipo_ordenacion", tipo_ordenacion);
					
					q53LogEstadisticas.printLog("Redirigimos al jsp con la lista de las respuestas 1 ");
					PSP.setTemplatePageProclet(sd,
														"/q53_usr_busquedaEncuestas.jsp?cod_al="+codigo_aleatorio);
				}
			}//TODO hay muchas cosas comunes en el if y el else, declaraciones de variables y tal... convendria sacarlas
			// Pq empiezan a tener diferencias que no parecen razonables... igual se hace en un caso y no en otro y debiera hacerse en los dos...
			else if(q53Util.esPerfil(sd, q53Constantes.PERFIL_USRO) || q53Util.esPerfil(sd, q53Constantes.PERFIL_ADMO)){ // perfil administrador
				List listNombres=q53ProcedenciaClass.getNombresList(sd,codOficina);
				sd.setVal("listaNombres",listNombres);		
				//Recojemos la encuesta visible de la oficina para recuperar los datos
				//y al pulsar el boton volver en la jsp podemos volver a la 
				//panatalla d erecogida de datos
				q53EncuestaBean encuestaVisible = null;
				q53LogEstadisticas.printLog("encuesta presencial o no presencial (2):<"+encuesta + ">");
				if(encuesta.equals("pres")){
					encuestaVisible = q53EncuestaClass.getEncuestaVisiblePres(sd, codOficina);
				}else{
					encuestaVisible = q53EncuestaClass.getEncuestaVisibleNoPres(sd, codOficina);
				}
				sd.setVal("encVisible", encuestaVisible);
				sd.setVal("pagina", "q53_usr_busquedaEncuestas");
				if (accion.equals("inicioBusqueda")) {
					//Redirijimos a la pantalla de busquedas                    
					PSP.setTemplatePageProclet(sd,
														"/q53_usr_busquedaEncuestas.jsp?cod_al="+codigo_aleatorio+"&cuantos="+sd.gOS("cuantos"));
				} else {
					//Empieza la busqueda de espuestas
					/*String fechaInicio = sd.gOS("fechaInicio");
					 String fechaFin = sd.gOS("fechaFin");
					 String fechaInicioVis = sd.gOS("fechaInicioVis");
					 String fechaFinVis = sd.gOS("fechaFinVis");
					 sd.setVal("fechaInicio", fechaInicio);
					 sd.setVal("fechaFin", fechaFin);
					 sd.setVal("fechaInicioVis", fechaInicioVis);
					 sd.setVal("fechaFinVis", fechaFinVis);
					 String asc=sd.gOS("asc");
					 String ascOrDesc = "asc";
					 String visOrGrab = "vis";
					 String fechaInit = fechaInicioVis;
					 String fechaFinal = fechaFinVis;
					 String aux = "";
					 //Si no es ascendiente se tiene que ordenar descendientemente
					  if(asc.equals("")) 
					  ascOrDesc = "desc";
					  //Si no es vis tiene que ser gra
					   if (!fechaInicio.equals("")||!fechaFin.equals("")){ //
					   visOrGrab = "gra";
					   fechaInit = fechaInicio;
					   fechaFinal = fechaFin;
					   }*/
					String pendientes=sd.gOS("pendientes");
					String ultima=sd.gOS("ultima");
					String des=sd.gOS("des");
					String tipo_ordenacion=sd.gOS("tipo_ordenacion");
					q53LogEstadisticas.printLog("Fecha inicio "+fechaInicio);
					q53LogEstadisticas.printLog("Fecha fin "+fechaFin);
					q53LogEstadisticas.printLog("Fecha inicioVis "+fechaInicioVis);
					q53LogEstadisticas.printLog("Fecha finVis "+fechaFinVis);
					q53LogEstadisticas.printLog("tipo_ordenacion "+tipo_ordenacion);
					if(pendientes.length()==0 && sd.req.getSession(true).getAttribute("pendientes")!=null)pendientes=(String)sd.req.getSession(true).getAttribute("pendientes");
					else if(pendientes.equals("N"))pendientes="";
					sd.req.getSession(true).setAttribute("pendientes",pendientes);
					if(ultima.length()==0 && sd.req.getSession(true).getAttribute("ultima")!=null)ultima=(String)sd.req.getSession(true).getAttribute("ultima");
					else if(ultima.equals("N"))ultima="";
					sd.req.getSession(true).setAttribute("ultima",ultima);
					sd.req.getSession(true).setAttribute("pendientes",pendientes);
					
					//Recuperamos la lista de respuestas odenadas por fecha de introducion en la
					//b.d. o lo que es lo mismo por codigo de respuesta  
					//Enumerationeste caso como el perfil es administrador solo aparecerna 
					//las respuestas de el oficina 
					String tipo=sd.gOS("encuesta");
					List respuestasList=null;
					
					String  codigosRespuesta = "";
					
					
					q53LogEstadisticas.printLog("------CAMBIO: busqueda de tipo " + visOrGrab + " por orden " + ascOrDesc + " y pendientes:"+pendientes.length());
					if(pendientes.length()==0){
						respuestasList = q53RespuestaClass.getRespuestasNuevo(sd,codOficina, fechaInit, fechaFinal,tipo,ultima,tipo_ordenacion,ascOrDesc,visOrGrab,usuario);
						//	TODO:Quitar esto acabadas las pruebas
						codigosRespuesta = q53RespuestaClass.getCodigosRespuestaGlobal(sd,codOficina, fechaInit, fechaFinal,tipo,ultima,tipo_ordenacion,ascOrDesc,visOrGrab,usuario,cp);
						aux = recuperarCodigosDeRespuesta(respuestasList);
						comparadorDeCadenas(codigosRespuesta, aux);
						codigosRespuesta = aux;
					}
					
					else{
						if(!fechaInicio.equals("")||!fechaFin.equals("")){
							if(asc.equals("")){
								respuestasList =q53RespuestaClass.getRespuestasTipoEstado(sd,
																											 codOficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoDesc(sd,
																														 codOficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}else{
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoAsc(sd,
																												 codOficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoAsc(sd,
																														codOficina, fechaInicio, fechaFin, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}
						}else{
							if(asc.equals("")){
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoVis(sd,
																												 codOficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoVisDesc(sd,
																															 codOficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}else{
								respuestasList =q53RespuestaClass.getRespuestasTipoEstadoVisAsc(sd,
																													 codOficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								//TODO:Quitar esto acabadas las pruebas
								codigosRespuesta = q53RespuestaClass.getCodigosRespuestaEstadoVisAsc(sd,
																															codOficina, fechaInicioVis, fechaFinVis, "0", "1",tipo,ultima,tipo_ordenacion);
								aux = recuperarCodigosDeRespuesta(respuestasList);
								comparadorDeCadenas(codigosRespuesta, aux);
								codigosRespuesta = aux;
							}
						}
					}	
					sd.setVal("respuestasList", respuestasList);
					//q53LogEstadisticas.printLog("respuestasList:"+respuestasList);
					sd.setVal("pagina", "q53_usr_busquedaEncuestas");
					sd.setVal("tipo_ordenacion", tipo_ordenacion);
					sd.setVal("codigosRespuesta", codigosRespuesta);
					//q53LogEstadisticas.printLog("(Usuario o administrador)RespuestasList: "+sd.getVal("respuestasList").toString());
					q53LogEstadisticas.printLog("Redirigimos al jsp con la lista de las respuestas 2");
					PSP.setTemplatePageProclet(sd,"/q53_usr_busquedaEncuestas.jsp?cod_al="+codigo_aleatorio);
				}
				//
			}else{
				// el usuario no tiene el perfil necesario. seguramente es porque
				// se ha perdido la sesión y hay que redirigirlo al login, para que
				// vuelva a meter su usuario y contraseña
				sd.setVal("pagina", "q53_gen_login");
				q53_redirigir(sd,"/q53ItourbaskWar/q53_gen_login.jsp?es_usuario_no_sesion");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**Obtiene los codigos de respuesta de una lista de respuestaBeans. 
	 * Debiera hacerse directamente en q53RespuestaClass al buscar pero lo pongo aqui para no 
	 * cambiar el tipo de dato del return de las busquedas
	 * @param lista lista de respuestas
	 * @return los numeros de respuesta separados por espacio.
	 */
	private String recuperarCodigosDeRespuesta(List lista){
		String codigosRespuesta = "";
		for (int x  = 0; x < lista.size(); x++){
			codigosRespuesta += ((q53RespuestaBean)(lista.get(x))).getCodRespuesta() + " ";
		}
		q53LogEstadisticas.printLog("-------CAMBIO: en el pegao cod respuesta ahora: " + codigosRespuesta);
		return codigosRespuesta;
		
	}
	/**
	 * @param str1
	 * @param str2
	 */
	private void comparadorDeCadenas(String str1, String str2){
		q53LogEstadisticas.printLog("------CAMBIO: Comienza la comparacion entre los cods recogidos ahora y los anteriores");
		if (str1.trim().equals(str2.trim())){
			q53LogEstadisticas.printLog("------CAMBIO: comparacion OK");
			return;
		}
		ArrayList a1 = stringTokenizer2ArrayList(new StringTokenizer(str1));
		ArrayList a2 = stringTokenizer2ArrayList(new StringTokenizer(str2));
		int aux = 0;
		if (a1.size() != a2.size()){
			q53LogEstadisticas.printWarning("------CAMBIO:ATENCION!!! diferente numero de resultados: " + a1.size() + " vs " + a2.size());
		}
		for (int i = 0; i < a1.size(); i++){
			if ((aux = a2.indexOf(a1.get(i))) != -1){
				if (i != aux)
					q53LogEstadisticas.printWarning("------CAMBIO:ATENCION!!! ESTA MAL EL ORDEN!!! de " + a1.get(i));
				else
					q53LogEstadisticas.printWarning("------CAMBIO:ATENCION!!! NO SE ENCUENTRA!!! de " + a1.get(i));
			}
		}
	}
	
	private ArrayList stringTokenizer2ArrayList(StringTokenizer stk){
		ArrayList al = new ArrayList();
		while (stk.hasMoreElements()){
			al.add(stk.nextElement());
		}  
		return al;
	}
}
