/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.siso.horario.Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import pe.siso.horario.Beans.PeriodoAcademico;
import pe.siso.horario.Beans.Usuario;
import pe.siso.horario.Beans.UsuarioDocente;
import pe.siso.horario.Services.PeriodoAcademicoServices;
import pe.siso.horario.Services.UsuarioDocenteServices;
import pe.siso.horario.Services.UsuarioServices;

/**
 *
 * @author fcelestino
 */
public class ServletUsuario extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String param = request.getParameter("accion");

        if ("validarUsuario".equals(param)) {
            validarUsuario(request, response);
        } else if ("listarUsuario".equals(param)) {
            listarUsuario(request, response);
        } else if ("registrarUsuario".equals(param)) {
            registrarUsuario(request, response);
        } else if ("armarEditar".equals(param)) {
            armarEditar(request, response);
        } else if ("actualizar".equals(param)) {
            actualizar(request, response);
        } else if ("cambiarEstado".equals(param)) {
            cambiarEstado(request, response);
        } else if ("listarUsuarioSede".equals(param)) {
            listarUsuarioSede(request, response);
        } else if ("registrarUsuarioSede".equals(param)) {
            registrarUsuarioSede(request, response);
        } else if ("cargarSede".equals(param)) {
            cargarSede(request, response);
        } else if ("cargarSedeBlo".equals(param)) {
            cargarSedeBlo(request, response);
        } else if ("validarUsuarioDocente".equals(param)) {
            validarUsuarioDocente(request, response);
        } else if ("validarUsuarioDocenteDni".equals(param)) {
            validarUsuarioDocenteDni(request, response);
        } else if ("armarEditarEncargado".equals(param)) {
            armarEditarEncargado(request, response);
        } else if ("actualizarEncargado".equals(param)) {
            actualizarEncargado(request, response);
        } else if ("listarUsuarioDirector".equals(param)) {
            listarUsuarioDirector(request, response);
        } else if ("registrarUsuarioDirector".equals(param)) {
            registrarUsuarioDirector(request, response);
        } else if ("armarEditarDirector".equals(param)) {
            armarEditarDirector(request, response);
        } else if ("actualizarUsuarioDirector".equals(param)) {
            actualizarUsuarioDirector(request, response);
        }else if("cargarSede2".equals(param)){
					cargarSede2(request,response);
				}else if("registroUsuarioObservador".equals(param)){
					registroUsuarioObservador(request,response);
				}
    }

    private void validarUsuario(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicio = new UsuarioServices();
        PeriodoAcademicoServices servicioPA = new PeriodoAcademicoServices(); //------
        PeriodoAcademico periodo = new PeriodoAcademico(); //-------------------------
//        periodo = servicioPA.periodoActivo(); //--------------------------------------
        int valor = 0;
        String dato = "";
        /*String usuario = request.getParameter("usuario");
        String password = request.getParameter("password");*/
        String usuario = request.getParameter("txt_usuario");
        String password = request.getParameter("txt_contrasena");
        int periodoAcademico = Integer.parseInt(request.getParameter("p_periodo"));
        String nombrePeriodo = request.getParameter("p_nomPeriodo");

        valor = servicio.validarUsuario(usuario, password);

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (valor == 0) {
            dato = "<div class=\"alert alert-danger\">"
                    + "<strong>"
                    + "<i class=\"ace-icon fa fa-times\"></i>"
                    + "Alerta -"
                    + "</strong>"
                    + "El usuario o la contraseña estan erradas, revisar. "
                    + "</div>" + "<input type='hidden' name='hbandera' id='hbandera' value='0' />";
            //dato="El Usuario y la Contrase&ntilde;a es Incorrecta. <input type='hidden' name='hbandera' id='hbandera' value='0' />";
        } else if (valor == 1) {
            //------------------------Crear la sesiones-------------------------
            HttpSession session_actual = request.getSession(true);

            Usuario usuarioConsul = servicio.consultar(usuario, password);

            //Encuesta encuestaConsul=servicio1.consultaEncuesta();
            String SessionId = session_actual.getId();
            //System.out.println(SessionId);
            usuarioConsul.setIdentificadorSesion(SessionId);

            session_actual.setAttribute("usuario", usuarioConsul);
            periodo.setCodigoPeriodo(periodoAcademico);
            periodo.setNombrePeriodo(nombrePeriodo);
            session_actual.setAttribute("periodo", periodo);
            //session_actual.setAttribute("encuesta", encuestaConsul);

            session_actual.setMaxInactiveInterval(10 * 60 * 60); // 10 horas

            //------------------------------------------------------------------
            dato = "<input type='hidden' name='hbandera' id='hbandera' value='1' />";
        }
        pw.println(dato);
    }

    private void listarUsuario(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;

        lista = servicios.listarUsuario();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n"
                + "                       <div class=\"table-header\">\n"
                + "                           <table width=\"100%\" >"
                + "             <tbody>"
                + "                 <tr>"
                + "                     <td>Listado de Usuarios</td>"
                + "                     <td align=\"right\">"
                + "                     </td>"
                + "                     <td width=\"10\"></td>"
                + "                 </tr>"
                + "             </tbody>"
                + "         </table>"
                + "                       </div>\n"
                + "                       <div>\n"
                + "                           <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n"
                + "                               <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n"
                + "                                   <thead>\n"
                + "                                       <tr role=\"row\">\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >N°</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">CLAVE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">SEDE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">TIPO USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">EDICIÓN</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">ESTADO</th>\n"
                + "                                       </tr>\n"
                + "                                   </thead>\n"
                + "                                   <tbody>");

        int cont = 1;
        for (int i = 0; i < lista.size(); i++) {

            if (cont % 2 == 0) {
                pw.println("<tr class=\"alt\" >");
            } else {
                pw.println("<tr >");
            }

            String estado = "";
            if (lista.get(i).getEstado() == 1) {
                estado = "<a href=\"javascript:estado(0," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb.png\" />\n"
                        + "</a>";
            } else {
                estado = "<a href=\"javascript:estado(1," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb_off.png\" />\n"
                        + "</a>";
            }

            pw.println("    <td>" + cont + "</td>"
                    + "    <td>" + lista.get(i).getUsuarioUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getClaveUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getNombreSede() + "</td>"
                    + "    <td>" + lista.get(i).getNombreTipoUsuario() + "</td>"
                    + "    <td  align='center'><a href=\"javascript:armarEdicion(" + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                    + "            <img src=\"imagenes/icons/page_edit.png\" />\n"
                    + "        </a>"
                    + "    </td>"
                    + "    <td align='center' valign='middle'>" + estado + "</td>"
                    + " </tr>");
            cont++;
        }

        if (cont == 1) {
            pw.println("<tr><td colspan='6' align='center'>No hay Usuarios registrados</td></tr>");
        }

        pw.println("   </tbody>\n"
                + "</table>");

        pw.println("       </div>"
                + "   </div>"
                + "</div>");
    }

    private void registrarUsuario(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        String usuario = request.getParameter("usuario");
        String clave = request.getParameter("clave");

        int dato = servicios.registrarUsuarioDirage(usuario, clave);

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (dato == 0) {
            pw.println("1");
        } else if (dato > 0) {
            pw.println("0");
        } else {
            pw.println("2");
        }
    }

    private void armarEditar(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        Usuario usuario = new Usuario();
        String codUsuario = request.getParameter("codUsuario");
        usuario = servicios.nombreUsuario(codUsuario);

        //String dato = request.getParameter("dato");
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<table  width='100%'>"
                + "<tr>"
                + "<td align='center'> "
                + "<table border='0'>"
                + "<tr><td height='20' colspan='3' ></td></tr>"
                + "      <tr>"
                + "          <td><b>Sede:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><label>" + usuario.getNombreSede() + "</label></td>"
                + "       </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "       <tr>"
                + "          <td><b>Tipo Usuario:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><label>" + usuario.getNombreTipoUsuario() + "</label></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td><b>Usuario:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><input id='txt_nom_usu' type='text' class='validate[required,custom[onlyLetterMayNumberSp]]' value='" + usuario.getUsuarioUsuario() + "' onChange='conMayusculas(this);' ></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td><b>Password:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><input id='txt_nom_pass' type='text' class='validate[required]' value='" + usuario.getClaveUsuario() + "' onChange='conMayusculas(this);' ></td>"
                + "      </tr>"
                + "  </table>"
                + "</td>"
                + "</tr>"
                + "</table>");
    }

    private void actualizar(HttpServletRequest request, HttpServletResponse response) {
        UsuarioServices servicios = new UsuarioServices();
        String codUsuario = request.getParameter("codUsuario");
        String nombre = request.getParameter("nombre");
        String clave = request.getParameter("clave");
        servicios.actualizar(codUsuario, nombre, clave);

    }

    private void cambiarEstado(HttpServletRequest request, HttpServletResponse response) {
        UsuarioServices servicios = new UsuarioServices();
        String codUsuario = request.getParameter("codUsuario");
        String dato = request.getParameter("dato");
        servicios.estado(dato, codUsuario);
    }

    private void listarUsuarioSede(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;

        lista = servicios.listarUsuarioSede();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n"
                + "                       <div class=\"table-header\">\n"
                + "                           <table width=\"100%\" >"
                + "             <tbody>"
                + "                 <tr>"
                + "                     <td>Listado de Usuarios</td>"
                + "                     <td align=\"right\">"
                + "                     </td>"
                + "                     <td width=\"10\"></td>"
                + "                 </tr>"
                + "             </tbody>"
                + "         </table>"
                + "                       </div>\n"
                + "                       <div>\n"
                + "                           <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n"
                + "                               <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n"
                + "                                   <thead>\n"
                + "                                       <tr role=\"row\">\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >N°</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">CLAVE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">SEDE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">TIPO USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">EDICIÓN</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">ESTADO</th>\n"
                + "                                       </tr>\n"
                + "                                   </thead>\n"
                + "                                   <tbody>");

        int cont = 1;
        for (int i = 0; i < lista.size(); i++) {

            if (cont % 2 == 0) {
                pw.println("<tr class=\"alt\" >");
            } else {
                pw.println("<tr >");
            }

            String estado = "";
            if (lista.get(i).getEstado() == 1) {
                estado = "<a href=\"javascript:estado(0," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb.png\" />\n"
                        + "</a>";
            } else {
                estado = "<a href=\"javascript:estado(1," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb_off.png\" />\n"
                        + "</a>";
            }

            pw.println("    <td>" + cont + "</td>"
                    + "    <td>" + lista.get(i).getUsuarioUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getClaveUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getNombreSede() + "</td>"
                    + "    <td>" + lista.get(i).getNombreTipoUsuario() + "</td>"
                    + "    <td  align='center'><a href=\"javascript:armarEdicion(" + lista.get(i).getCodigoUsuario() + ',' + lista.get(i).getCodigoSede() + ");\" class=\"regular\" >\n"
                    + "            <img src=\"imagenes/icons/page_edit.png\" />\n"
                    + "        </a>"
                    + "    </td>"
                    + "    <td align='center' valign='middle'>" + estado + "</td>"
                    + " </tr>");
            cont++;
        }

        if (cont == 1) {
            pw.println("<tr><td colspan='4' align='center'>No hay Usuarios registrados</td></tr>");
        }

        pw.println("   </tbody>\n"
                + "</table>");

        pw.println("       </div>"
                + "   </div>"
                + "</div>");
    }

    private void registrarUsuarioSede(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        String usuario = request.getParameter("usuario");
        String clave = request.getParameter("clave");
        String codLoc = request.getParameter("codLoc");
        int dato = servicios.registrarUsuarioSede(usuario, clave, codLoc);

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (dato == 0) {
            pw.println("1");
        } else if (dato > 0) {
            pw.println("0");
        } else {
            pw.println("2");
        }
    }

    private void cargarSede(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;
        String accion = request.getParameter("accion");

        lista = servicios.cargarSede();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<select id='cmb_nom_sede' class='form-control validate[required]' onChange='" + accion + "'>");
        pw.println("<option value=''>[Seleccione]</option>");
        for (int i = 0; i < lista.size(); i++) {
            pw.println("<option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
        }

        pw.println("</select>");
    }
    private void cargarSede2(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;
       
        lista = servicios.cargarSede();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<select id='cmbSede' class='form-control validate[required]'>");
        pw.println("<option value=''>[Seleccione]</option>");
        for (int i = 0; i < lista.size(); i++) {
            pw.println("<option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
        }

        pw.println("</select>");
    }

    private void cargarSedeBlo(HttpServletRequest request, HttpServletResponse response) throws IOException {
			 HttpSession session_actual = request.getSession(true);
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;
        String Accion = request.getParameter("Accion");
				Usuario usuario = (Usuario) session_actual.getAttribute("usuario");
				usuario.getNombreSede();
				//usuario.getCodigoTipoUsuario(); 

        lista = servicios.cargarSede();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
				
				String style="";
				if(usuario.getCodigoTipoUsuario() == 5){
					style="background-color:#307ECC;color:white;-moz-appearance:none;-webkit-appearance:none;-webkit-user-select: none;";
				}else{
					style="";
				}

        pw.println("<select id='cmbSede' class='form-control validate[required]' onChange='" + Accion + "' style='"+style+"'>");
        
         
			
				if(usuario.getCodigoTipoUsuario() == 5){
					pw.println("<option value='" + usuario.getCodigoSede() + "'>" + usuario.getNombreSede() + "</option>");
					
				}else{
					 pw.println("<option value=''>[Seleccione]</option>");
					 pw.println("<option value='todo' style='font-weight: bold;font-style: italic;'>TODAS LAS SEDES PART.1</option>");
					 pw.println("<option value='todo2' style='font-weight: bold;font-style: italic;'>TODAS LAS SEDES PART.2</option>");
					 for (int i = 0; i < lista.size(); i++) {
						 
					  pw.println("<option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
           
         }
				
				}
				
       
        pw.println("</select>");
    }
    
		

    private void validarUsuarioDocente(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioDocenteServices servicio = new UsuarioDocenteServices();
        PeriodoAcademicoServices servicioPA = new PeriodoAcademicoServices(); //------
        PeriodoAcademico periodo = new PeriodoAcademico(); //-------------------------
        periodo = servicioPA.periodoActivoDocente(); //--------------------------------------
        int valor = 0;
        String dato = "";

//        String codigoDocente = request.getParameter("usuario");
//        String dniDocente = "09412585";
        String dniDocente = request.getParameter("dni");
//        valor=servicio.validarUsuarioDocente(codigoDocente);
        valor = servicio.validarUsuarioDocenteDni(dniDocente);
        System.out.println("dniDocente => " + dniDocente);
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (valor == 0) {
            dato = "<div class=\"alert alert-danger\">"
                    + "<strong>"
                    + "<i class=\"ace-icon fa fa-times\"></i>"
                    + "Alerta -"
                    + "</strong>"
                    + "El código ingresado es Incorrecto, revisar. "
                    + "</div>" + "<input type='hidden' name='hbandera' id='hbandera' value='0' />";
            //dato="El código ingresado es Incorrecto. <input type='hidden' name='hbandera' id='hbandera' value='0' />";
        } else if (valor == 1) {
            //------------------------Crear la sesiones-------------------------
            HttpSession session_actual = request.getSession(true);

//            UsuarioDocente usuarioConsul=servicio.consultarCodigoID(codigoDocente);
            UsuarioDocente usuarioConsul = servicio.consultarCodigoIDporDni(dniDocente);

            //Encuesta encuestaConsul=servicio1.consultaEncuesta();
            //String SessionId= session_actual.getId();
            //System.out.println(SessionId);
            //usuarioConsul.setIdentificadorSesion(SessionId);
            session_actual.setAttribute("usuarioDocente", usuarioConsul);
            session_actual.setAttribute("periodo", periodo);
            //session_actual.setAttribute("encuesta", encuestaConsul);

            session_actual.setMaxInactiveInterval(10 * 60 * 60); // 10 horas

            //------------------------------------------------------------------
            dato = "<input type='hidden' name='hbandera' id='hbandera' value='1' />";
        }
        pw.println(dato);
    }

    private void armarEditarEncargado(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        Usuario usuario = new Usuario();
        ArrayList<Usuario> lista = null;
        lista = servicios.cargarSede();
        String codUsuario = request.getParameter("codUsuario");
        usuario = servicios.nombreUsuario(codUsuario);

        //String dato = request.getParameter("dato");
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<table  width='100%'>"
                + "<tr>"
                + "<td align='center'> "
                + "<table border='0'>"
                + "<tr><td height='20' colspan='3' ></td></tr>"
                + "       <tr>"
                + "          <td><b>Tipo Usuario:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><label>" + usuario.getNombreTipoUsuario() + "</label></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td><b>Usuario:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><input id='txt_nom_usu' type='text' class='form-control validate[required,custom[onlyLetterMayNumberSp]]' value='" + usuario.getUsuarioUsuario() + "' onChange='conMayusculas(this);' ></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td><b>Password:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><input id='txt_nom_pass' type='text' class='form-control validate[required]' value='" + usuario.getClaveUsuario() + "' onChange='conMayusculas(this);' ></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td colspan='3' height='15'></td>"
                + "      </tr>"
                + "      <tr>"
                + "          <td><b>Sede:</b></td>"
                + "          <td width='10'></td>"
                + "          <td><select id='cmbsedeEncargado' class='form-control validate[required]' onChange=''> ");
        for (int i = 0; i < lista.size(); i++) {
            if (lista.get(i).getCodigoSede() == usuario.getCodigoSede()) {
                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "' selected>" + lista.get(i).getNombreSede() + "</option>");
            } else {
                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
            }

        }

        pw.println("</select></td>"
                + "       </tr>"
                + "  </table>"
                + "</td>"
                + "</tr>"
                + "</table>");
    }

    private void actualizarEncargado(HttpServletRequest request, HttpServletResponse response) {
        UsuarioServices servicios = new UsuarioServices();
        String codUsuario = request.getParameter("codUsuario");
        String nombre = request.getParameter("nombre");
        String clave = request.getParameter("clave");
        String codSede = request.getParameter("codSede");
        servicios.actualizar(codUsuario, nombre, clave, codSede);

    }

    private void validarUsuarioDocenteDni(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioDocenteServices servicio = new UsuarioDocenteServices();
        PeriodoAcademicoServices servicioPA = new PeriodoAcademicoServices(); //------
        PeriodoAcademico periodo = new PeriodoAcademico(); //-------------------------
        //periodo = servicioPA.periodoActivo(); //--------------------------------------
        periodo = servicioPA.periodoActivoDocente();
        int valor = 0;
        String dato = "";

        String dniDocente = request.getParameter("dni");
        valor = servicio.validarUsuarioDocenteDni(dniDocente);
        System.out.println("dniDocente => " + dniDocente);
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (valor == 0) {
            response.sendRedirect("vista/indexDocente.jsp");
            //dato="El código ingresado es Incorrecto. <input type='hidden' name='hbandera' id='hbandera' value='0' />";
        } else if (valor == 1) {
            //------------------------Crear la sesiones-------------------------
            HttpSession session_actual = request.getSession(true);

//            UsuarioDocente usuarioConsul=servicio.consultarCodigoID(codigoDocente);
            UsuarioDocente usuarioConsul = servicio.consultarCodigoIDporDni(dniDocente);

            //Encuesta encuestaConsul=servicio1.consultaEncuesta();
            //String SessionId= session_actual.getId();
            //System.out.println(SessionId);
            //usuarioConsul.setIdentificadorSesion(SessionId);
            session_actual.setAttribute("usuarioDocente", usuarioConsul);
            session_actual.setAttribute("periodo", periodo);
            //session_actual.setAttribute("encuesta", encuestaConsul);

            session_actual.setMaxInactiveInterval(10 * 60 * 60); // 10 horas

            //------------------------------------------------------------------
            response.sendRedirect("vista/principalDocente.jsp");
        }
        pw.println(dato);
    }

    private void listarUsuarioDirector(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        ArrayList<Usuario> lista = null;

        lista = servicios.listarUsuarioDirector();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        pw.println("<div style=\"border: 1px solid #CCCCCC;\">\n"
                + "                       <div class=\"table-header\">\n"
                + "                           <table width=\"100%\" >"
                + "             <tbody>"
                + "                 <tr>"
                + "                     <td>Listado de Usuarios</td>"
                + "                     <td align=\"right\">"
                + "                     </td>"
                + "                     <td width=\"10\"></td>"
                + "                 </tr>"
                + "             </tbody>"
                + "         </table>"
                + "                       </div>\n"
                + "                       <div>\n"
                + "                           <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n"
                + "                               <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n"
                + "                                   <thead>\n"
                + "                                       <tr role=\"row\">\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >N°</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">CLAVE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">SEDE</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">TIPO USUARIO</th>\n"
                + "                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">ACCIÓN</th>\n"
                + "                                       </tr>\n"
                + "                                   </thead>\n"
                + "                                   <tbody>");

        int cont = 1;
        for (int i = 0; i < lista.size(); i++) {

            if (cont % 2 == 0) {
                pw.println("<tr class=\"alt\" >");
            } else {
                pw.println("<tr>");
            }

            String estado = "";
            if (lista.get(i).getEstado() == 1) {
                estado = "<a href=\"javascript:estado(0," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb.png\" />\n"
                        + "</a>";
            } else {
                estado = "<a href=\"javascript:estado(1," + lista.get(i).getCodigoUsuario() + ");\" class=\"regular\" >\n"
                        + "<img src=\"imagenes/icons/lightbulb_off.png\" />\n"
                        + "</a>";
            }

            pw.println("   <td class='text-center'>" + cont + "</td>"
                    + "    <td>" + lista.get(i).getUsuarioUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getClaveUsuario() + "</td>"
                    + "    <td>" + lista.get(i).getNombreSede() + "</td>"
                    + "    <td>" + lista.get(i).getNombreTipoUsuario() + "</td>"
                    + "    <td  align='center'>"
                    + "        <a href=\"javascript:armarEdicion(" + lista.get(i).getCodigoUsuario() + ',' + lista.get(i).getCodigoSede() + ");\" class=\"regular\" >\n"
                    + "            <img src=\"imagenes/icons/page_edit.png\" />\n"
                    + "        </a>"
                    + "  " + estado + ""
                    + "    </td>"
                    + " </tr>");
            cont++;
        }

        if (cont == 1) {
            pw.println("<tr><td colspan='4' align='center'>No hay Usuarios registrados</td></tr>");
        }

        pw.println("   </tbody>\n"
                + "</table>");

        pw.println("       </div>"
                + "   </div>"
                + "</div>");
    }

    private void registrarUsuarioDirector(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        String usuario = request.getParameter("usuario");
        String clave = request.getParameter("clave");
        String codLoc = request.getParameter("codLoc");
        int dato = servicios.registrarUsuarioDirector(usuario, clave, codLoc);

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (dato == 0) {
            pw.println("1");
        } else if (dato > 0) {
            pw.println("0");
        } else {
            pw.println("2");
        }
    }
		
		private void registroUsuarioObservador(HttpServletRequest request, HttpServletResponse response) throws IOException {
		   UsuarioServices servicios = new UsuarioServices();
        String usuario = request.getParameter("user");
        String clave = request.getParameter("pass");
        String sede = request.getParameter("sede");
        int dato = servicios.registroUsuarioObservador(usuario, clave, sede);

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();

        if (dato == 0) {
            pw.println("1");
        } else if (dato > 0) {
            pw.println("0");
        } else {
            pw.println("2");
        }
	  }
		

    private void armarEditarDirector(HttpServletRequest request, HttpServletResponse response) throws IOException {
        UsuarioServices servicios = new UsuarioServices();
        Usuario usuario = new Usuario();
        ArrayList<Usuario> lista = null;
        lista = servicios.cargarSede();
        String codUsuario = request.getParameter("codUsuario");
        usuario = servicios.nombreUsuario(codUsuario);

        //String dato = request.getParameter("dato");
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.println(" <form id=\"actulizar\" method=\"post\">\n"
                + "     <div class='widget-main' id=\"divFormulario\">"
                + "         <div>\n"
                + "             <label for=\"form-field-select-1\">Tipo Usuario: <b>" + usuario.getNombreTipoUsuario() + "</b></label>\n"
                + "         </div>"
                + "         <div>\n"
                + "             <label>Usuario <span style=\"color:red;\">*</span></label>\n"
                + "             <input id='txt_nom_usu' type='text' class='form-control validate[required,custom[onlyLetterMayNumberSp]]' value='" + usuario.getUsuarioUsuario() + "' onChange='conMayusculas(this);'>\n"
                + "         </div><br>"
                + "         <div>\n"
                + "             <label>Password <span style=\"color:red;\">*</span></label>\n"
                + "             <input id='txt_nom_pass' type='text' class='form-control validate[required]' value='" + usuario.getClaveUsuario() + "' onChange='conMayusculas(this);' >\n"
                + "         </div><br>"
                + "         <div>\n"
                + "             <label>Sede <span style=\"color:red;\">*</span></label>\n"
                + "             <select id='cmbsedeEncargado' class='form-control validate[required]' onChange=''>\n"
                + "             <option value=''>[SELECCIONE]</option>\n");
        for (int i = 0; i < lista.size(); i++) {
            if (lista.get(i).getCodigoSede() == usuario.getCodigoSede()) {
                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "' selected>" + lista.get(i).getNombreSede() + "</option>");
            } else {
                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
            }

        }
        pw.println("             </select>\n"
                + "         </div>"
                + "     </div>\n"
                + "</form>");
//        pw.println("<table  width='100%'>"
//                + "<tr>"
//                + "<td align='center'> "
//                + "<table border='0'>"
//                + "<tr><td height='20' colspan='3' ></td></tr>"
//                + "       <tr>"
//                + "          <td><b>Tipo Usuario:</b></td>"
//                + "          <td width='10'></td>"
//                + "          <td><label>" + usuario.getNombreTipoUsuario() + "</label></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td colspan='3' height='15'></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td><b>Usuario:</b></td>"
//                + "          <td width='10'></td>"
//                + "          <td><input id='txt_nom_usu' type='text' class='form-control validate[required,custom[onlyLetterMayNumberSp]]' value='" + usuario.getUsuarioUsuario() + "' onChange='conMayusculas(this);' ></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td colspan='3' height='15'></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td><b>Password:</b></td>"
//                + "          <td width='10'></td>"
//                + "          <td><input id='txt_nom_pass' type='text' class='form-control validate[required]' value='" + usuario.getClaveUsuario() + "' onChange='conMayusculas(this);' ></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td colspan='3' height='15'></td>"
//                + "      </tr>"
//                + "      <tr>"
//                + "          <td><b>Sede:</b></td>"
//                + "          <td width='10'></td>"
//                + "          <td><select id='cmbsedeEncargado' class='form-control validate[required]' onChange=''> ");
//        for (int i = 0; i < lista.size(); i++) {
//            if (lista.get(i).getCodigoSede() == usuario.getCodigoSede()) {
//                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "' selected>" + lista.get(i).getNombreSede() + "</option>");
//            } else {
//                pw.println(" <option value='" + lista.get(i).getCodigoSede() + "'>" + lista.get(i).getNombreSede() + "</option>");
//            }
//
//        }
//
//        pw.println("</select></td>"
//                + "       </tr>"
//                + "  </table>"
//                + "</td>"
//                + "</tr>"
//                + "</table>");
    }

    private void actualizarUsuarioDirector(HttpServletRequest request, HttpServletResponse response) {
        UsuarioServices servicios = new UsuarioServices();
        String codUsuario = request.getParameter("codUsuario");
        String nombre = request.getParameter("nombre");
        String clave = request.getParameter("clave");
        String codSede = request.getParameter("codSede");
        servicios.actualizar(codUsuario, nombre, clave, codSede);
    }

	

}
