<?php

require_once "BASEPATH.php";

class Chat extends MY_Controller
{
    public function getHistory()
    {
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && ((strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false) || strpos($_SESSION["Grupo"], GRUPO_SUPERVISORES) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();

            sv_mysqli_close($con);
        }
    }
    public function listChatRoom()
    {
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && (strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();
            $pagina = limpia($_POST["pagina"]) - 1;
            $cliente = $_SESSION["Cliente"];
            $sal = array();
            $offset = $pagina * 20;
            $sal["Registros"] = array();
            $results = sv_mysqli_query($con, "SELECT idsalaChat,nombre FROM salaChat WHERE cliente='$cliente' AND estado='1' LIMIT $offset,20");
            while ($row = sv_mysqli_fetch_array($results)) {
                $sal["Registros"][] = array("nombre" => $row["nombre"], "idSala" => "idsalaChat");
            }
            sv_mysqli_close($con);
            $sal["Estado"] = "ok";
            $this->output->set_output(json_encode($sal));
        }
    }
    public function detailsChatRoom()
    {
        $idioma = isset($_COOKIE["idioma"]) ? $_COOKIE["idioma"] : "es";
        switch ($idioma) {
            case "es":
                $this->lang->load('chat', "spanish");
                break;
            case "en":
                $this->lang->load('chat', "english");
                break;
            default:
                $this->lang->load('chat', "spanish");
                break;
        }
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && (strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();
            $idSala = limpia($_POST["idSala"]);
            $cliente = $_SESSION["Cliente"];
            $sal = array();
            $sal["Sala"] = array();
            $sal["usuario"] = array();
            $results = sv_mysqli_query($con, "SELECT idsalaChat,nombre FROM salaChat WHERE cliente='$cliente' AND estado='1' AND idsalaChat ");
            if ($row = sv_mysqli_fetch_array($results)) {
                $sal["Sala"] = array("nombre" => $row["nombre"], "idSala" => "idsalaChat");
                $results = sv_mysqli_query($con, "SELECT usuario FROM pertenencia WHERE idSala='$idSala'");
                while ($row = sv_mysqli_fetch_array($results)) {
                    $sal["usuario"][] = $row["usuario"];
                }
                sv_mysqli_close($con);
                $sal["Estado"] = "ok";
                $this->output->set_output(json_encode($sal));

            } else {
                $sal["Estado"] = "error";
                $sal["Descripcion"] = $this->lang->line("desc_salaInexistente");
                sv_mysqli_close($con);
                $sal["Estado"] = "ok";
                $this->output->set_output(json_encode($sal));

            }

        }
    }

    public function createChatRoom()
    {
        $idioma = isset($_COOKIE["idioma"]) ? $_COOKIE["idioma"] : "es";
        switch ($idioma) {
            case "es":
                $this->lang->load('chat', "spanish");
                break;
            case "en":
                $this->lang->load('chat', "english");
                break;
            default:
                $this->lang->load('chat', "spanish");
                break;
        }
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && (strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();
            $nombre = limpia($_POST["nombre"]);
            $creador = $_SESSION["Usuario"];
            $cliente = $_SESSION["Cliente"];
            $usuarios = $_POST["usuarios"];
            sv_mysqli_query($con, "INSERT INTO salaChat(nombre,usuarioCreador,cliente,estado) VALUES('$nombre','$creador','$cliente','1')");
            $idsalaChat = mysqli_insert_id($con);
            foreach ($usuarios as $usuario) {
                sv_mysqli_query($con, "INSERT INTO pertenencia(usuario,idSala,idSocket) VALUES('$usuario','$idsalaChat','')");
            }
            sv_mysqli_close($con);
            $sal = array();
            $sal["Estado"] = "ok";
            $this->output->set_output(json_encode($sal));
        }
    }
    public function editChatRoom()
    {
        $idioma = isset($_COOKIE["idioma"]) ? $_COOKIE["idioma"] : "es";
        switch ($idioma) {
            case "es":
                $this->lang->load('chat', "spanish");
                break;
            case "en":
                $this->lang->load('chat', "english");
                break;
            default:
                $this->lang->load('chat', "spanish");
                break;
        }
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && (strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();
            $nombre = limpia($_POST["nombre"]);
            $cliente = $_SESSION["Cliente"];
            $usuarios = $_POST["usuarios"];
            $idsalaChat = limpia($_POST["idSala"]);
            sv_mysqli_query($con, "UPDATE salaChat SET nombre='$nombre' WHERE idsalaChat='$idsalaChat' AND cliente='$cliente'");
            sv_mysqli_query($con, "DELETE FROM pertenecia WHERE idSala='$idsalaChat'");
            foreach ($usuarios as $usuario) {
                sv_mysqli_query($con, "INSERT INTO pertenencia(usuario,idSala,idSocket) VALUES('$usuario','$idsalaChat','')");
            }
            sv_mysqli_close($con);
            $sal = array();
            $sal["Estado"] = "ok";
            $this->output->set_output(json_encode($sal));
        }
    }
    public function deleteChatRoom()
    {
        $idioma = isset($_COOKIE["idioma"]) ? $_COOKIE["idioma"] : "es";
        switch ($idioma) {
            case "es":
                $this->lang->load('chat', "spanish");
                break;
            case "en":
                $this->lang->load('chat', "english");
                break;
            default:
                $this->lang->load('chat', "spanish");
                break;
        }
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"]) && (strpos($_SESSION["Grupo"], GRUPO_ADMINS) !== false)) {
            header('Content-type: application/json');
            include_once RUTA_APP . 'Sesiones.php';
            $con = getConnection2();
            $sal = array();
            $idsalaChat = limpia($_POST["idSala"]);
            $cliente = $_SESSION["Cliente"];
            sv_mysqli_query($con, "UPDATE salaChat SET estado='0' WHERE idsalaChat='$idsalaChat' AND cliente='$cliente'");
            sv_mysqli_close($con);
            $sal = array();
            $sal["Estado"] = "ok";
            $this->output->set_output(json_encode($sal));
        }
    }
    public function logout()
    {
        include_once RUTA_APP . 'Conexion.php';
        if (!empty($_SESSION["Usuario"])) {
            $con = getConnection2();
            sv_mysqli_query($con, "UPDATE pertenencia SET idSocket='',avisado=0 WHERE usuario ='" . $_SESSION["Usuario"] . "'");
        }
    }

    public function index()
    {
        $this->load->view('chat/head');
        $this->load->view('chat/vw_home');
        $this->load->view('chat/foot');
    }
}
