//'use strict';
var validacion = false;
var calendar;
var calendar2;
var numeroSesionPop, idClientePop, nombreClientePop, nombreServicioPop, idCabinaPop, idCitaPop, idEstadosPop, idUsuarioPop, duracionSesionPop;
addEventListener("DOMContentLoaded", event => {
  $('.js-example-basic-single').select2({
    width: '100%',
    language: {
      noResults: function () {
        return "No hay resultado";
      },
      searching: function () {
        return "Buscando...";
      }
    }
  });

  var href = location.href;
  href = href.match(/([^\/]*)\/*$/)[1]; 
  
  if (href!='listacitasF') {
    var clientSelect= document.getElementById('clienteNC').value;
    $(function() {
      $("#clienteNC").keyup();
    });  
    
    $('[name="idClienteO"]').val(href);
      $('[name="nombreClienteO"]').val(clientSelect);
      var boton = "adeudoClienteMC";
      cambioCliente();
      buscarAdeudos(href, 'adeudoClienteMC');
      var cabina = document.getElementById('cabinaNC');
      var todasCabinas = $.cabinas();
      cabina.innerHTML = "";
      cabina.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione cabina</option>`);

      for (var i = 0; i < todasCabinas.length; i++) {
        cabina.insertAdjacentHTML('beforeend', `<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
      } 
    
    $('#modal-agendar').modal('show');
  }else{
    var cabina = document.getElementById('cabinaNC');
      var todasCabinas = $.cabinas();
      cabina.innerHTML = "";
      cabina.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione cabina</option>`);

      for (var i = 0; i < todasCabinas.length; i++) {
        cabina.insertAdjacentHTML('beforeend', `<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
      } 
  }

  let vista = 4;
  if (vista == 5) {
    document.getElementById('calendarF').style.display = "none";
    document.getElementById('calendarF2').style.display = "block";
  } else {
    document.getElementById('calendarF2').style.display = "none";
    document.getElementById('calendarF').style.display = "block";
  }

 /* console.log("horarioNoLab");
  console.log($.horarioNoLab());
  console.log(diasNoLab);*/

  var calendarEl = document.getElementById('calendarF');

  calendar = new FullCalendar.Calendar(calendarEl, {
    schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
    plugins: ['interaction', 'dayGrid', 'timeGrid', 'resourceTimeGrid'],
    timeZone: 'local',
    locale: 'es',
    defaultDate: new Date(),
    defaultView: 'timeGridWeek',
    editable: false,
    selectable: true,
    selectMirror: true,
    selectLongPressDelay: 30,
    displayEventEnd: true,
    slotEventOverlap: false,
    slotLabelFormat: { hour12: true, hour: '2-digit', minute: '2-digit' },
    eventTimeFormat: { hour12: true, hour: '2-digit', minute: '2-digit' },
    firstDay: 0,
    minTime: horaIniEst,//"07:00:00",
    maxTime: horaFinEst,//"22:00:00",
    hiddenDays: diasNoLab,
    businessHours: $.horarioNoLab(),
    selectConstraint: $.horarioNoLab(),
    nowIndicator: true,
    buttonText: {
      today: 'Hoy',
      month: 'Mes',
      week: 'Semana',
      day: 'Día',
      resourceTimeGrid: 'Cabina'
    },
    customButtons: {
      personalButton: {
        text: 'Personal',
        click: function () {
          cambio();
        }
      }
    },
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'timeGridWeek,timeGridDay,resourceTimeGrid,personalButton'
    },
    resources: $.cabinas(),
    events: $.eventosCabina(),
    select: function (arg) {
      contenidoSelect(arg);
    },
    eventClick: function (info) {
      //alert('Event: ' + info.event.id);
      $('#txtHoraI').val(moment(info.event.start, ["HH:mm:ss"]).format("h:mm A"));
      $('#txtHoraF').val(event.hof);
      editarCita(info.event.id, info.event.start, info.event.end);
      $('#modalEvento').modal();
      // change the border color just for fun
      //info.el.style.borderColor = 'red';
    },
    eventRender: function (info) {
      info.el.innerHTML = "<em class='estado-evento fas fa-circle' style='color:" + info.event.extendedProps.scolor + "'></em>" + info.el.innerHTML;
      $(info.el).tooltip({
        title: info.event.extendedProps.description,
        placement: 'auto',
        trigger: 'hover',
        container: 'body',
      });

    }
  });

  calendar.render();

  function contenidoSelect(arg) {
    limpiarM();
    var inicio = moment(arg.startStr).format('YYYY-MM-DD HH:mm:ss');
    var tipo = calendar.view.type;
    
    if (tipo != 'dayGridMonth' && inicio < (moment().format('YYYY-MM-DD HH:mm:ss'))) {
      newCita(arg, inicio);
      return true;
    } else if (tipo == 'dayGridMonth' && inicio < (moment().format('YYYY-MM-DD HH:mm:ss'))) {
      newCita(arg, inicio);
      return true;
    }

    console.log(
      'select',
      arg.startStr,
      arg.endStr,
      arg.resource ? arg.resource.id : '(no resource)'
    );

    newCita(arg, inicio);
  }

  function newCita(arg, inicio) {
    if (validacion == false) {
      document.getElementById('fechaNC').value = moment(inicio).format('DD-MM-YYYY');
      if (arg.startStr == '24:00:00') {
        document.getElementById('inicioNC').value = moment('12:00:00').format('h:mm A');
        //document.getElementById('finNC').value=moment('12:00:00').format('h:mm A');
      } else {
        document.getElementById('inicioNC').value = moment(arg.startStr).format('h:mm A');
        //document.getElementById('finNC').value=moment(arg.endStr).format('h:mm A');            
      }
      var dt1 = moment(arg.startStr).format("HH:mm:ss");
      //var dt2 = moment(arg.endStr).format("HH:mm:ss");
      //document.getElementById('duracionNC').innerHTML = duracion(dt1, dt2);
      agendar('fullcal');
      if (arg.resource !== void 0) {
        document.getElementById('cabinaNC').value = arg.resource.id;
        $('.selectpicker').selectpicker('refresh');
      }
    } else {
      //console.log(duracionSesionPop);
      $('.cerrarPop').trigger('click');
      $(arg.jsEvent.toElement).popover({
        appendToBody: true,
        html: true,
        title: '<button type="button" class="close margenCerrar cerrarPop" ><span class="cerrarPopover">&times;</span></button><br>',
        content: 'Cliente: ' + nombreClientePop + '<br> Servicio: ' + nombreServicioPop + '<br>' +
          'Sesión: ' + numeroSesionPop + '<br>' +
          'Duración: ' + duracionSesionPop + '<br>' +
          'Fecha <input class="form-control date-picker fechaCita" data-provide="datepicker" data-date-format="yyyy/mm/dd" placeholder="dd - mm - yyyy" autocomplete="off" onchange="personalDisponible();">' +
          'Hora Inicio <input type="text" class="form-control timepicker inicioCita" placeholder="12 : 00 AM" onchange="personalDisponible();">' +
          //'Hora Fin <input type="text" class="form-control timepicker finCita" placeholder="11 : 59 PM" onchange="personalDisponible();">' +
          'Cosmetolog@ <select class="form-control personal" id="personalSiguiente" name="personalSiguiente"></select>' +
          'Cabina <select class="form-control selectpicker cabinaC"></select>' +
          'Estado <select class="form-control selectpicker estadosC"></select>' +
          'Comentario <input type="text" class="form-control comentarioCita comentarioPop" maxlength="120"  placeholder="Escribir comentario" autocomplete="off"><br>' +
          '<button type="button" class="col-md-5 btn btn-danger cerrarPop boton-modal-cerrar letra-boton-pop">Cancelar</button>' +
          '<button type="button" class="col-md-5 agendar btn btn-primary pull-right boton-modal-actualizar letra-boton-pop">Agendar</button>'
        ,
        placement: 'auto',
        container: 'body',
      }).popover('show');
      var today = new Date();
      $(".date-picker").datepicker({
        startDate: new Date(today.getFullYear(), today.getMonth(), today.getDate()),
      });
      $('.timepicker').timepicker({
        timeFormat: 'h:i A',
        minTime: '12:00 AM',
        maxTime: '11:59 PM',
      });
      // $('.cabinaC option').remove();
      // $('.estadosC option').remove();
      // $('li').remove();
      //  $('li').remove();

      var todasCabinas = $.cabinas();
      $('.cabinaC').append("<option value='' selected disabled>Seleccione área</option>");
      for (var i = 0; i < todasCabinas.length; i++) {
        $('.cabinaC').append(`<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
      }
      $('.cabinaC').val(idCabinaPop);
      var todosEstados = $.estados();
      for (var i = 0; i < todosEstados.length; i++) {
        $('.estadosC').append(`<option data-icon="colores ` + todosEstados[i].clase + `" value="` + todosEstados[i].id + `"> ` + todosEstados[i].title + `</option>`);
      }
      $('.estadosC').val(idEstadosPop);
      $('.fechaCita').val(moment(inicio).format('DD-MM-YYYY'));
      $('.inicioCita').val(moment(arg.startStr).format('h:mm A'));
      //$('.finCita').val(moment(arg.endStr).format('h:mm A'));
      $('.selectpicker').selectpicker('refresh');
      personalDisponible();
      //personalDisponible();
    }
  }

  var calendarEl2 = document.getElementById('calendarF2');

  calendar2 = new FullCalendar.Calendar(calendarEl2, {
    schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
    plugins: ['interaction', 'dayGrid', 'timeGrid', 'resourceTimeGrid'],
    timeZone: 'local',
    locale: 'es',
    defaultDate: new Date(),
    defaultView: 'timeGridWeek',
    editable: false,
    selectable: true,
    selectMirror: true,
    selectLongPressDelay: 30,
    displayEventEnd: true,
    slotEventOverlap: false,
    slotLabelFormat: { hour12: true, hour: '2-digit', minute: '2-digit' },
    eventTimeFormat: { hour12: true, hour: '2-digit', minute: '2-digit' },
    firstDay: 0,
    minTime: horaIniEst,//"07:00:00",
    maxTime: horaFinEst,//"22:00:00",
    hiddenDays: diasNoLab,
    businessHours: $.horarioNoLab(),
    selectConstraint: $.horarioNoLab(),
    nowIndicator: true,
    buttonText: {
      today: 'Hoy',
      month: 'Mes',
      week: 'Semana',
      day: 'Día',
      resourceTimeGrid: 'Personal'
    },
    customButtons: {
      cabinaButton: {
        text: 'Cabina',
        click: function () {
          document.getElementById('calendarF2').style.display = "none";
          document.getElementById('calendarF').style.display = "block";
          $('.fc-resourceTimeGrid-button').trigger('click');
          $('.fc-timeGridDay-button').trigger('click');
          $('.fc-resourceTimeGrid-button').trigger('click');
        }
      }
    },
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'timeGridWeek,timeGridDay,cabinaButton,resourceTimeGrid'
    },
    resources: $.personal(),
    events: $.eventosPersonal(),
    select: function (arg) {
      contenidoSelect2(arg);
    },
    eventClick: function (info) {
      editarCita(info.event.id, info.event.start, info.event.end);
      $('#modalEvento').modal();
      // change the border color just for fun
      //info.el.style.borderColor = 'red';
    },
    eventRender: function (info) {
      info.el.innerHTML = "<em class='estado-evento fas fa-circle' style='color:" + info.event.extendedProps.scolor + "'></em>" + info.el.innerHTML;
      $(info.el).tooltip({
        title: info.event.extendedProps.description,
        placement: 'auto',
        trigger: 'hover',
        container: 'body',
      });

    }
  });

  calendar2.render();

  function contenidoSelect2(arg) {
    limpiarM();
    var inicio = moment(arg.startStr).format('YYYY-MM-DD HH:mm:ss');
    var tipo = calendar2.view.type;
    if (tipo != 'dayGridMonth' && inicio < (moment().format('YYYY-MM-DD HH:mm:ss'))) {
      newCita2(arg, inicio);
      return true;
    } else if (tipo == 'dayGridMonth' && inicio < (moment().format('YYYY-MM-DD'))) {
      newCita2(arg, inicio);
      return true;
    }

    newCita2(arg, inicio);
  }

  function newCita2(arg, inicio) {
    if (validacion == false) {
      document.getElementById('fechaNC').value = moment(inicio).format('DD-MM-YYYY');
      document.getElementById('inicioNC').value = moment(arg.startStr).format('h:mm A');
      //document.getElementById('finNC').value=moment(arg.endStr).format('h:mm A');
      var dt1 = moment(arg.startStr).format("HH:mm:ss");
      var dt2 = moment(arg.endStr).format("HH:mm:ss");
      document.getElementById('duracion').value = duracion(dt1, dt2);
      agendar('fullcal');
      if (arg.resource !== void 0) {
        document.getElementById('cosmetologoNC').value = arg.resource.id;
        $('.selectpicker').selectpicker('refresh');
      }
    } else {
      //console.log(duracionSesionPop);
      $('.cerrarPop').trigger('click');
      $(arg.jsEvent.toElement).popover({
        html: true,
        title: '<button type="button" class="close margenCerrar cerrarPop" ><span class="cerrarPopover">&times;</span></button><br>',
        content: 'Cliente: ' + nombreClientePop + '<br> Servicio: ' + nombreServicioPop + '<br>' +
          'Sesión: ' + numeroSesionPop + '<br>' +
          'Duración: ' + duracionSesionPop + '<br>' +
          'Fecha <input class="form-control date-picker fechaCita" data-provide="datepicker" data-date-format="yyyy/mm/dd" placeholder="dd - mm - yyyy" autocomplete="off" onchange="personalDisponible();">' +
          'Hora Inicio <input type="text" class="form-control timepicker inicioCita" placeholder="12 : 00 AM" onchange="personalDisponible();">' +
          //'Hora Fin <input type="text" class="form-control timepicker finCita" placeholder="11 : 59 PM" onchange="personalDisponible();">' +
          'Cosmetog@ <select class="form-control personal" id ="personalSiguiente" name="personalSiguiente"></select>' +
          'Cabina <select class="form-control selectpicker cabinaC" id ="cabinaCS" name="cabinaCS"></select>' +
          'Estado <select class="form-control selectpicker estadosC" id ="estadoCS" name="estadoCS"></select>' +
          'Comentario <input type="text" class="form-control comentarioCita comentarioPop" maxlength="120"  placeholder="Escribir comentario" autocomplete="off"><br>' +
          '<button type="button" class="col-md-5 btn btn-danger cerrarPop boton-modal-cerrar letra-boton-pop">Cancelar</button>' +
          '<button type="button" class="col-md-5 agendar btn btn-primary pull-right boton-modal-actualizar letra-boton-pop">Agendar</button>'
        ,
        placement: 'auto',
        container: 'body'
      }).popover('show');
      var today = new Date();
      $(".date-picker").datepicker({
        startDate: new Date(today.getFullYear(), today.getMonth(), today.getDate()),
      });
      $('.timepicker').timepicker({
        timeFormat: 'h:i A',
        minTime: '12:00 AM',
        maxTime: '11:59 PM',
      });

      var todasCabinas = $.cabinas();
      $('.cabinaC').append("<option value='' selected disabled>Seleccione área</option>");
      for (var i = 0; i < todasCabinas.length; i++) {
        $('.cabinaC').append(`<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
      }
      $('.cabinaC').val(idCabinaPop);
      var todosEstados = $.estados();
      for (var i = 0; i < todosEstados.length; i++) {
        $('.estadosC').append(`<option data-icon="colores ` + todosEstados[i].clase + `" value="` + todosEstados[i].id + `"> ` + todosEstados[i].title + `</option>`);
      }
      $('.estadosC').val(idEstadosPop);
      $('.fechaCita').val(moment(inicio).format('DD-MM-YYYY'));
      $('.inicioCita').val(moment(arg.startStr).format('h:mm A'));
      $('.finCita').val(moment(arg.endStr).format('h:mm A'));
      $('.selectpicker').selectpicker('refresh');
      personalDisponible();
      if (arg.resource !== void 0) {
        document.getElementById('personalSiguiente').value = arg.resource.id;
        $('.selectpicker').selectpicker('refresh');
      }
    }
  }

  var guardarCita = document.getElementById('guardarCita');
  guardarCita.addEventListener('click', function () {

    if (validacionCita() == true) {
      var tipo = document.getElementById('tratamientoNC').value;
      var nuevoValor = tipo.slice(-2);
      var id = tipo.slice(0, -2);
      let idPromo = null;
      let idServ = null;
      //alert(id);
      var idDetalle = 0;
      if (nuevoValor == 'VG' || nuevoValor == 'VF') {
        idDetalle = id;
        idServ = $.idServicio();
      } else if (nuevoValor == 'VP') {
        idDetalle = id;
        idPromo = $.idServicio();
      } else if (nuevoValor == 'SP') {
        idPromo = id;
      } else {
        idServ = id;
      }

      var combo = document.getElementById("tratamientoNC");
      let nombreSer = combo.options[combo.selectedIndex].text

      if (nuevoValor != 'SF' || nuevoValor != 'SG' || nuevoValor != 'SP') {
        const nombreSerF = nombreSer.split(", Fecha");
        nombreSer = nombreSerF[0];
      }
      //alert(id);
      var datos = {
        idCliente: document.getElementById('idClienteO').value,
        nombreCliente: document.getElementById('clienteNC').value,
        idServicio: idServ,
        tipo: nuevoValor,
        fecha: document.getElementById('fechaNC').value,
        horaInicio: moment(inicioNC.value, ["h:mm A"]).format("HH:mm:ss"),
        //horaFina:moment(finNC.value, ["h:mm A"]).format("HH:mm:ss"),
        idCabina: document.getElementById('cabinaNC').value,// area.value,
        isEstatus: document.getElementById('statusNC').value,
        observaciones: document.getElementById('observacionesNC').value,
        numeroSesiones: document.getElementById('numeroSesiones').length,
        idUsuario: document.getElementById("cosmetologoNC").value,//personal.value,
        idDetalleVentas: idDetalle,
      }

      var combo = document.getElementById("tratamientoNC");

      const dataA = {
        idPromo: idPromo,
        nombreSer: nombreSer,//$("#tratamientoNC").text(),//document.getElementById('tratamientoNC').text,           
        duracion: $("#duracionNC").text(),
        numeroSesion: $("#numeroSesiones").val(),//numeroSesiones.value,
      };
      const data = Object.assign(datos, dataA);
      //console.log(data);

      //guardarCita.disabled=true;

      AgendarCita(guardarCita, datos);
    }
  });

  function AgendarCita(guardarCita, datos) {
    $.post(base_url + "myagenda/franquiciatario/ListacitasF/buscarCitasAgenda",
      datos, function (res) {
        //console.log(datos);
        var hoy = new Date();
        var fecha2 = hoy.getDate() + '-' + (hoy.getMonth() + 1) + '-' + hoy.getFullYear();
        var hora = hoy.getHours() + ':' + hoy.getMinutes() + ':' + hoy.getSeconds();
        var fechaYHora = fechaHoraAct();//document.getElementById('fechaFooter').value;//fecha2+' '+hora;
        var fecha = document.getElementById('fechaNC').value;
        var inicio = document.getElementById('inicioNC').value;
        //var fin = document.getElementById('finNC').value;
        var horaI = get24hTime(inicio) + ':00';
        var fechaYHoraElegida = fecha + ' ' + horaI;
        // horaF = get24hTime(fin)+':00';
        /*console.log(fechaYHora);
        console.log(fechaYHoraElegida);
        console.log(horaI);*/

        if (fecha != '' && inicio != '') {
          // console.log(compare_dates(fechaYHora, fechaYHoraElegida));
          if (compare_dates(fechaYHora, fechaYHoraElegida)) {
            swal({
              title: "¡Cita fuera de tiempo!",
              text: "Estás intentado registrar una cita en un horario pasado ¿estás seguro?",
              icon: 'warning',
              buttons: ["Cancelar!", "Aceptar!"],
              //dangerMode: true
            })
              .then((result) => {
                if (result) {
                  //console.log("antes de cabina reservada fuera de tiempo");
                  //console.log(res);
                  if (res == 1) {
                    //console.log("dentro de cabina reservada fuera de tiempo");
                    //console.log(res);
                    swal({
                      title: "Cabina reservada!",
                      text: "¿Está seguro de guardar está cita?",
                      icon: 'warning',
                      buttons: ["Cancelar!", "Aceptar!"],
                    })
                      .then((result) => {
                        //console.log("Si acepta agendar en cabina ya reservada y fuera de tiempo");
                        if (result) {
                          $.post(base_url + "myagenda/franquiciatario/ListacitasF/insertCita",
                            datos, function (result) {
                              var datos = JSON.parse(result);
                              if (datos.length == 2) {
                                limpiarM();
                                $('#modal-agendar').modal('hide');
                                //guardarCita.disabled=false;
                                swal({
                                  title: 'Cita guardada correctamente',
                                  icon: 'success',
                                  showConfirmButton: false,
                                  timer: 1500
                                })
                                var eventos = [], eventos2 = [];
                                eventos.push(datos[0]);
                                eventos2.push(datos[1]);
                                calendar.addEventSource(eventos);
                                calendar2.addEventSource(eventos2);
                              } else if (datos.length == 3) {
                                limpiarM();
                                $('#modal-agendar').modal('hide');
                                //guardarCita.disabled=false;
                                swal({
                                  title: '¡Cita guardada correctamente!',
                                  html: '<h3>¿Desea agendar la siguiente sesión?</h3>',
                                  icon: 'success',
                                  buttons: ["Cancelar", "Agendar"],
                                  //reverseButtons: true,
                                }).then((result) => {
                                  if (result) {
                                    document.getElementById('divTemporizador').style.display = "block";//.classList.remove('invisible');
                                    validacion = true;
                                    temporizador();
                                    idCitaPop = datos[2].idCita;
                                    idEstadosPop = datos[2].idEstados;
                                    idCabinaPop = datos[2].idAreas;
                                    numeroSesionPop = datos[2].numeroSesion;
                                    idUsuarioPop = datos[2].idUsuario;
                                    nombreClientePop = datos[2].nombreCliente;
                                    nombreServicioPop = datos[2].nombreServicio;
                                    duracionSesionPop = datos[2].duracion;
                                    //console.log(duracionSesionPop);
                                    //personalDisponible();
                                  }
                                });
                                var eventos = [], eventos2 = [];
                                eventos.push(datos[0]);
                                eventos2.push(datos[1]);
                                calendar.addEventSource(eventos);
                                calendar2.addEventSource(eventos2);
                              } else {
                                swal({
                                  title: '¡No se registro ninguna cita!',
                                  text: 'Intente guardar de nuevo',
                                  icon: 'warning',
                                  showConfirmButton: true,
                                  confirmButtonText: 'Aceptar',
                                })
                                //guardarCita.disabled=false;
                              }
                            });
                        } else {
                          //guardarCita.disabled=false;
                        }
                      });
                  } else {
                    //console.log("cita fuera de tiempo pero area libre");
                    $.post(base_url + "myagenda/franquiciatario/ListacitasF/insertCita",
                      datos, function (result) {
                        //console.log(result);
                        var datos = JSON.parse(result);
                        if (datos.length == 2) {
                          limpiarM();
                          $('#modal-agendar').modal('hide');
                          //guardarCita.disabled=false;
                          swal({
                            title: 'Cita guardada correctamente',
                            icon: 'success',
                            showConfirmButton: false,
                            timer: 1500
                          })
                          var eventos = [], eventos2 = [];
                          eventos.push(datos[0]);
                          eventos2.push(datos[1]);
                          calendar.addEventSource(eventos);
                          calendar2.addEventSource(eventos2);
                        } else if (datos.length == 3) {
                          limpiarM();
                          $('#modal-agendar').modal('hide');
                          //guardarCita.disabled=false;
                          swal({
                            title: '¡Cita guardada correctamente!',
                            html: '<h3>¿Desea agendar la siguiente sesión?</h3>',
                            icon: 'success',
                            buttons: ["Cancelar!", "Agendar!"],
                            //reverseButtons: true,
                          }).then((result) => {
                            if (result) {
                              document.getElementById('divTemporizador').style.display = "block";//.classList.remove('invisible');
                              validacion = true;
                              temporizador();
                              idCitaPop = datos[2].idCita;
                              idEstadosPop = datos[2].idEstados;
                              idCabinaPop = datos[2].idAreas;
                              numeroSesionPop = datos[2].numeroSesion;
                              idUsuarioPop = datos[2].idUsuario;
                              nombreClientePop = datos[2].nombreCliente;
                              nombreServicioPop = datos[2].nombreServicio;                              
                              duracionSesionPop = datos[2].duracion;
                              //console.log(duracionSesionPop);
                              //personalDisponible();
                            }
                          });
                          var eventos = [], eventos2 = [];
                          eventos.push(datos[0]);
                          eventos2.push(datos[1]);
                          calendar.addEventSource(eventos);
                          calendar2.addEventSource(eventos2);
                        } else {
                          swal({
                            title: '¡No se registro ninguna cita!',
                            text: 'Intente guardar de nuevo',
                            icon: 'warning',
                            showConfirmButton: true,
                            confirmButtonText: 'Aceptar',
                          })
                          //guardarCita.disabled=false;
                        }
                      });
                  }
                } else {
                  //$('#modal-agendar').modal('hide');
                }
              });
          } else {
            if (res == 1) {
              //console.log("dentro del tiempo permitido pero area o cabina recervada");
              swal({
                title: "Cabina reservada!",
                text: "¿Está seguro de guardar está cita?",
                icon: 'warning',
                buttons: ["Cancelar", "Aceptar"],
                //reverseButtons: true,
              })
                .then((result) => {
                  //console.log("inserción en are reservada pero en tiempo");
                  if (result) {
                    $.post(base_url + "myagenda/franquiciatario/ListacitasF/insertCita",
                      datos, function (result) {
                        var datos = JSON.parse(result);
                        if (datos.length == 2) {
                          limpiarM();
                          $('#modal-agendar').modal('hide');
                          //guardarCita.disabled=false;
                          swal({
                            title: 'Cita guardada correctamente',
                            icon: 'success',
                            showConfirmButton: false,
                            timer: 1500
                          })
                          var eventos = [], eventos2 = [];
                          eventos.push(datos[0]);
                          eventos2.push(datos[1]);
                          calendar.addEventSource(eventos);
                          calendar2.addEventSource(eventos2);
                        } else if (datos.length == 3) {
                          limpiarM();
                          $('#modal-agendar').modal('hide');
                          //guardarCita.disabled=false;
                          swal({
                            title: '¡Cita guardada correctamente!',
                            html: '<h3>¿Desea agendar la siguiente sesión?</h3>',
                            icon: 'success',
                            buttons: ["Cancelar", "Agendar"],
                            //reverseButtons: true,
                          }).then((result) => {
                            if (result) {
                              document.getElementById('divTemporizador').style.display = "block";//.classList.remove('invisible');
                              validacion = true;
                              temporizador();
                              idCitaPop = datos[2].idCita;
                              idEstadosPop = datos[2].idEstados;
                              idCabinaPop = datos[2].idAreas;
                              numeroSesionPop = datos[2].numeroSesion;
                              idUsuarioPop = datos[2].idUsuario;
                              nombreClientePop = datos[2].nombreCliente;
                              nombreServicioPop = datos[2].nombreServicio;
                              duracionSesionPop = datos[2].duracion;
                              //console.log(duracionSesionPop);
                              //personalDisponible();
                            }
                          });
                          var eventos = [], eventos2 = [];
                          eventos.push(datos[0]);
                          eventos2.push(datos[1]);
                          calendar.addEventSource(eventos);
                          calendar2.addEventSource(eventos2);
                        } else {
                          swal({
                            title: '¡No se registro ninguna cita!',
                            text: 'Intente guardar de nuevo',
                            icon: 'warning',
                            showConfirmButton: true,
                            confirmButtonText: 'Aceptar',
                          })
                          //guardarCita.disabled=false;
                        }
                      });
                  } else {
                    //guardarCita.disabled=false;
                  }
                });
            } else {
             // console.log("cita agendada dentro del tiempo y area libre");

              $.post(base_url + "myagenda/franquiciatario/ListacitasF/insertCita",
                datos, function (result) {
                  console.log(result);
                  var datos = JSON.parse(result);
                  /*console.log(datos);
                  console.log(datos[2]);
                  console.log(datos[2].duracion);*/
                  if (datos.length == 2) {
                    limpiarM();
                    $('#modal-agendar').modal('hide');
                    //guardarCita.disabled=false;
                    swal({
                      title: 'Cita guardada correctamente',
                      icon: 'success',
                      showConfirmButton: false,
                      timer: 1500
                    })
                    var eventos = [], eventos2 = [];
                    eventos.push(datos[0]);
                    eventos2.push(datos[1]);
                    calendar.addEventSource(eventos);
                    calendar2.addEventSource(eventos2);
                  } else if (datos.length == 3) {
                    limpiarM();
                    $('#modal-agendar').modal('hide');
                    //guardarCita.disabled=false;
                    swal({
                      title: '¡Cita guardada correctamente!',
                      html: '<h3>¿Desea agendar la siguiente sesión?</h3>',
                      icon: 'success',
                      buttons: ["Cancelar", "Agendar"],
                      //reverseButtons: true,
                    }).then((result) => {
                      if (result) {
                        document.getElementById('divTemporizador').style.display = "block";//.classList.remove('invisible');
                        validacion = true;
                        temporizador();
                        idCitaPop = datos[2].idCita;
                        idEstadosPop = datos[2].idEstados;
                        idCabinaPop = datos[2].idAreas;
                        numeroSesionPop = datos[2].numeroSesion;
                        idUsuarioPop = datos[2].idUsuario;
                        nombreClientePop = datos[2].nombreCliente;
                        nombreServicioPop = datos[2].nombreServicio;
                        duracionSesionPop = datos[2].duracion;
                        //console.log(duracionSesionPop);
                        //personalDisponible();
                      }
                    });
                    var eventos = [], eventos2 = [];
                    eventos.push(datos[0]);
                    eventos2.push(datos[1]);
                    calendar.addEventSource(eventos);
                    calendar2.addEventSource(eventos2);
                  } else {
                    swal({
                      title: '¡No se registro ninguna cita!',
                      text: 'Intente guardar de nuevo',
                      icon: 'warning',
                      showConfirmButton: true,
                      confirmButtonText: 'Aceptar',
                    })
                    //guardarCita.disabled=false;
                  }
                });
            }
          }
        }
      });
  }

  //  boton editar citas
  var editarCitas = document.getElementById('btnUpdEvento');
  editarCitas.addEventListener('click', function () {
    if (validacionCitaUpdate() == true) {
      var fechaActual = fechaHoraAct();//document.getElementById('fechaFooter');
      var tipo = document.getElementById('selecttratamiento').value;
      var nuevoValor = tipo.slice(-2);
      var id = tipo.slice(0, -2);
      let idPromo = null;
      let idServ = null;
      var idDetalle = 0;

      if (nuevoValor == 'VG' || nuevoValor == 'VF') {
        idDetalle = id;
        idServ = $.idServicio();
      } else if (nuevoValor == 'VP') {
        idDetalle = id;
        idPromo = $.idServicio();
      } else if (nuevoValor == 'SP' || nuevoValor == 'PA') {
        idPromo = id;
      } else {
        idServ = id;
      }

      var combo = document.getElementById("selecttratamiento");
      let nombreSer = combo.options[combo.selectedIndex].text

      if (nuevoValor != 'SF' || nuevoValor != 'SG' || nuevoValor != 'SP') {
        const nombreSerF = nombreSer.split(", Fecha");
        nombreSer = nombreSerF[0];
      }

      var datos = {
        idDetalle: document.getElementById('idActualizar').value,
        idCliente: idClientEdit.value,
        nombreCliente: document.getElementById('txtClientes').value,
        idServicio: idServ,
        idPromo: idPromo,
        idEstados: txtEstado.value,
        idCabina: document.getElementById('txtBandaRP').value,
        numeroSesiones: document.getElementById('numeroSesionesEditar').length,
        numeroSesion: $("#numeroSesionesEditar").val(),
        fecha: txtFecha.value,
        horaInicio: moment(txtHoraIni.value, ["h:mm A"]).format("HH:mm:ss"),
        //horaFina: moment(txtHoraFin.value, ["h:mm A"]).format("HH:mm:ss"),
        idUsuario: txtUsuario.value,
        nombreUsuario: txtUsuario.options[txtUsuario.selectedIndex].text,
        observaciones: txtObservaciones.value,
        nombreSer: nombreSer,//$("#tratamientoNC").text(),//document.getElementById('tratamientoNC').text,           
        duracion: $("#duracionEditar").text(),
        fechaActual: fechaActual,
      }

      $.post(base_url + "myagenda/franquiciatario/ListacitasF/editarCita/",
        datos, function (result) {
          //console.log(result);
          
          var data = JSON.parse(result);
          /*console.log(data);
          console.log(data[1]);
          console.log(data['scolor']);
          console.log(data[1]['scolor']);*/
          if (data == 'error0') {
            swal({
              icon: 'warning',
              title: '¡No se realizo ningun cambio!',
              text: 'Actualizar fecha y hora',
              showConfirmButton: true,
              confirmButtonText: 'Aceptar',
            });
          } else if (data == 'error1') {
            swal({
              icon: 'warning',
              title: '¡No se realizo ningun cambio!',
              text: 'La cita excede el tiempo permitido para reagendar',
              showConfirmButton: true,
              confirmButtonText: 'Aceptar',
            });
          } else if (data == 'error2') {
            swal({
              icon: 'warning',
              title: '¡No se realizo ningun cambio!',
              text: 'La nueva fecha excede el tiempo permitido para reagendar',
              showConfirmButton: true,
              confirmButtonText: 'Aceptar',
            });
          } else if (data == 'error3') {
            /*var data={
              idDetalle:idActualizar.value,
              idCliente:idClienteEditar.value, 
              idServicio:idServicioEdit,         
              idEstados:estadoEditar.value,
              idAreas:areaEditar.value,
              numeroSesiones:numeroSesionesEditar.length,
              numeroSesion:numeroSesionesEditar.value,
              fecha:fechaEditar.value,
              horaInicio:moment(horaIEditar.value, ["h:mm A"]).format("HH:mm:ss"),
              horaFina:moment(horaFEditar.value, ["h:mm A"]).format("HH:mm:ss"),
              idUsuario:personalEditar.value,
              comentario:comentariosEditar.value,
              fechaActual:fecha.value,
            }*/
            //console.log(datos);
            swal({
              title: "¡La cita excede el tiempo permitido para cancelar!",
              text: "¿Está seguro de cancelar esta cita?",
              icon: "warning",
              buttons: ["Tomada por sistema!", "Aceptar!"],
            })
              .then((result) => {
                var estado = 3;
                if (result) {
                  $.post(base_url + "myagenda/franquiciatario/ListacitasF/estadoCancelarTS/" + estado,
                    datos, function (result) {
                      $('#modalEvento').modal('hide');
                      var datos = JSON.parse(result);
                      if (datos == 1) {
                        swal({
                          icon: 'success',
                          title: '¡Cita cancelada correctamente!',
                          showConfirmButton: true,
                          confirmButtonText: 'Aceptar',
                        }).then(function () {
                          $('#modalEvento').modal('hide');
                          var event = calendar.getEventById(document.getElementById('idActualizar').value);
                          var event2 = calendar2.getEventById(document.getElementById('idActualizar').value);

                          event.remove();
                          event2.remove();
                        });
                      } else {
                        swal({
                          icon: 'warning',
                          title: '¡No se realizo ningun cambio!',
                          showConfirmButton: true,
                          confirmButtonText: 'Aceptar',
                        });
                      }
                    });
                } else {
                  var estado = 7;
                  $.post(base_url + "myagenda/franquiciatario/ListacitasF/estadoCancelarTS/" + estado,
                    datos, function (result) {
                      $('#modalEvento').modal('hide');
                      var datos = JSON.parse(result);
                      if (datos == 1) {
                        swal({
                          icon: 'success',
                          title: '¡Cita tomada por sistema!',
                          text: 'Se ha descontado una sesión del paquete.',
                          showConfirmButton: true,
                          confirmButtonText: 'Aceptar',
                        }).then(function () {
                          $('#modalEvento').modal('hide');
                          var eventos = [], eventos2 = [];
                          var event = calendar.getEventById(document.getElementById('idActualizar').value);
                          var event2 = calendar2.getEventById(document.getElementById('idActualizar').value);

                          if (data[1]['scolor'] == '#FF0000') {
                            event.remove();
                            event2.remove();
                          } else {
                            event.remove();
                            event2.remove();
                            eventos.push(data[0]);
                            eventos2.push(data[1]);
                            calendar.addEventSource(eventos);
                            calendar2.addEventSource(eventos2);
                          }
                        });
                      } else {
                        swal({
                          icon: 'warning',
                          title: '¡No se realizo ningun cambio!',
                          showConfirmButton: true,
                          confirmButtonText: 'Aceptar',
                        });
                      }
                    });
                }
              });
          } else if (data == 'error4') {
            swal({
              icon: 'warning',
              title: '¡No se realizo ningun cambio!',
              text: 'La cita excede el tiempo permitido',
              //showConfirmButton: true,
              //confirmButtonText: 'Aceptar',
            });
          } else if (data.length == 2) {
            swal({
              title: 'Cita actualizada correctamente',
              icon: 'success',
              showConfirmButton: false,
              timer: 1500
            })
            $('#modalEvento').modal('hide');
            var eventos = [], eventos2 = [];
            var event = calendar.getEventById(document.getElementById('idActualizar').value);
            var event2 = calendar2.getEventById(document.getElementById('idActualizar').value);

            if (data[1]['scolor'] == '#FF0000') {
              event.remove();
              event2.remove();
            } else {
              event.remove();
              event2.remove();
              eventos.push(data[0]);
              eventos2.push(data[1]);
              calendar.addEventSource(eventos);
              calendar2.addEventSource(eventos2);
            }
          } else if (data == 1) {
            swal({
              title: 'Cita actualizada correctamente',
              icon: 'success',
              showConfirmButton: false,
              timer: 1500
            }).then(function () {
              $('#modalEvento').modal('hide');
              var eventos = [], eventos2 = [];
              var event = calendar.getEventById(document.getElementById('idActualizar').value);
              var event2 = calendar2.getEventById(document.getElementById('idActualizar').value);

              if (data[1]['scolor'] == '#FF0000') {
                event.remove();
                event2.remove();
              } else {
                event.remove();
                event2.remove();
                eventos.push(data[0]);
                eventos2.push(data[1]);
                calendar.addEventSource(eventos);
                calendar2.addEventSource(eventos2);
              }
            });
          } else {
            //console.log(datos);
            swal({
              title: '¡No se actualizo ninguna cita!',
              text: 'Intente de nuevo',
              icon: 'warning',
              showConfirmButton: true,
              confirmButtonText: 'Aceptar',
            })
          }
        });

    }
  });

  // boton para eliminar cita
  var eliminarCita = document.getElementById('deleteCita');
  eliminarCita.addEventListener('click', function () {
    var id = document.getElementById("idActualizar").value;
    swal({
      title: "¿Está seguro de eliminar esta cita?",
      text: "Una vez eliminado, no hay vuelta atras!",
      icon: "warning",
      buttons: ["Cancelar", "Aceptar"],
    })
      .then((result) => {
        if (result) {
          $.post(base_url + "myagenda/franquiciatario/ListacitasF/deleteEvento",
            { id: id }, function (result) {
              if (result) {
                $('#modalEvento').modal('hide');
                var event = calendar.getEventById(id);
                var event2 = calendar2.getEventById(id);
                event.remove();
                event2.remove();
                swal({
                  title: 'Cita eliminada correctamente',
                  icon: 'success',
                  showConfirmButton: false,
                  timer: 1500
                })
              }
            });
        } else {
          swal({
            title: "¡Cita no eliminada!",
            showConfirmButton: false,
            timer: 1500
          });
        }
      });
  });

  function compare_dates(fecha, fecha2) {
    var xYear = fecha.substring(0, 4);
    var xMonth = fecha.substring(5, 7);
    var xDay = fecha.substring(8, 10);

    var xMinute = fecha.substring(11, 13);
    var xSecond = fecha.substring(14, 16);
    var xMillisecond = fecha.substring(17, 19);

    var yDay = fecha2.substring(0, 2);
    var yMonth = fecha2.substring(3, 5);
    var yYear = fecha2.substring(6, 10);

    var yMinute = fecha2.substring(11, 13);
    var ySecond = fecha2.substring(14, 16);
    var yMillisecond = fecha2.substring(17, 19);

    if (xYear > yYear) {
      return (true)
    } else if (xYear < yYear) {
      return (false)
    } else if (xYear == yYear) {
      if (xMonth > yMonth) {
        return (true)
      } else if (xMonth < yMonth) {
        return (false)
      } else if (xMonth == yMonth) {
        if (xDay > yDay) {
          return (true);
        } else if (xDay < yDay) {
          return (false);
        } else if (xDay == yDay) {
          if (xMinute > yMinute) {
            return (true);
          } else if (xMinute < yMinute) {
            return (false);
          } else if (xMinute == yMinute) {
            if (xSecond > ySecond) {
              return (true);
            } else if (xSecond < ySecond) {
              return (false);
            } else if (xSecond == ySecond) {
              if (xMillisecond > yMillisecond) {
                return (true);
              } else if (xMillisecond < yMillisecond) {
                return (false);
              } else if (xMillisecond == yMillisecond) {
                return (false);
              }
            }
          }
        }
      }
    } else {
      return (false);
    }
  }

  // Boton para agenda la siguiente sesión
  $(document).on('click', '.agendar', function () {
    var hoy = new Date();
    var fecha = hoy.getDate() + '-' + (hoy.getMonth() + 1) + '-' + hoy.getFullYear();
    var hora = hoy.getHours() + ':' + hoy.getMinutes() + ':' + hoy.getSeconds();
    var fechaYHora = fechaHoraAct();// document.getElementById('fechaFooter').value;//fecha+' '+hora;
    var inicio = document.getElementById('horaI').value;
    var fin = document.getElementById('horaF').value;


    var fechaYHoraElegida = $('.fechaCita').val() + ' ' + moment($('.inicioCita').val(), ["h:mm A"]).format("HH:mm:ss");

    //console.log(fechaYHora);
    //console.log(fechaYHoraElegida);
    var datos = {
      idCita: idCitaPop,
      idEstado: $('.estadosC').selectpicker('val'),
      idCabina: $('.cabinaC').selectpicker('val'),
      numeroSesion: numeroSesionPop,
      fecha: $('.fechaCita').val(),
      horaInicio: moment($('.inicioCita').val(), ["h:mm A"]).format("HH:mm:ss"),
      horaFin: moment($('.finCita').val(), ["h:mm A"]).format("HH:mm:ss"),
      observaciones: $('.comentarioPop').val(),
      idUsuario: $('.personal').val(),
    };
    //console.log(datos);

    if ($('.fechaCita').val() != '' && moment($('.inicioCita').val(), ["h:mm A"]).format("HH:mm:ss") != '' && document.getElementById('personalSiguiente').value != "" && document.getElementById('cabinaCS').value != "" && document.getElementById('estadoCS').value != "") {
      $.post(base_url + "myagenda/franquiciatario/ListacitasF/buscarCitasAgenda",
        datos, function (res) {
          if (compare_dates(fechaYHora, fechaYHoraElegida)) {
            swal({
              title: "¡Cita fuera de tiempo!",
              text: "Estás intentado registrar una cita en un horario pasado ¿estás seguro?",
              icon: 'warning',
              buttons: ["Cancelar", "Aceptar"],
            })
              .then((result) => {
                if (result) {
                  agendarSigCita(res, datos);
                } else {
                  $('.cerrarPop').trigger('click');
                }
              });
          } else {
            agendarSigCita(res, datos)
          }
        });
    } else {
      if ($('.fechaCita').val() === ''){
        $(".fechaCita").notify("Seleccione fecha",{
          position:'top center',
          className:'error',
        });
      } else if($('.inicioCita').val() === ''){
        $(".inicioCita").notify("Seleccione hora inicio",{
          position:'top center',
          className:'error',
        });
      } else if (document.getElementById('personalSiguiente').value === "") {
        $("#personalSiguiente").notify("Seleccione cosmetolog@",{
          position:'top center',
          className:'error',
        });        
      }  else if(document.getElementById('cabinaCS').value === "") {
        $("#cabinaCS").notify("Seleccione cabina",{
          position:'top center',
          className:'error',
        });
      } else if (document.getElementById('estadoCS').value === "") {
        $("#estadoCS").notify("Seleccione estado",{
          position:'top center',
          className:'error',
        });
      }

      /*swal({
        title: "¡Datos obligatorios faltantes!",
        text: "Verifique que todos los campos obligatorios esten llenos",
        icon: 'warning',
        //buttons: ["Cancelar", "Aceptar"],
      })*/
    }
  });
});


window.addEventListener('load', function (event) {
  // configuraciones de datepiker
  $.fn.datepicker.dates['en'] = {
    days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
    daysShort: ["Dom", "Lun", "Mar", "Mier", "Jue", "Vier", "Sab"],
    daysMin: ["D", "L", "Ma", "Mi", "J", "V", "S"],
    months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
    monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
    today: "Today",
    clear: "Clear",

    weekStart: 0
  };

  $.datepicker.setDefaults($.datepicker.regional['en']);

  var today = new Date();
  $(".date-picker").datepicker({
    isRTL: false,
    format: "dd-mm-yyyy",
    viewMode: "months,days",
    minViewMode: "months,days",
    autoclose: true,
    // startDate: new Date(today.getFullYear(), today.getMonth(), today.getDate()),
    todayHighlight: true,
    daysOfWeekDisabled: diasNoLab,
  });

  var cancelarSiguiente = document.getElementById('cancelarSiguiente');
  cancelarSiguiente.addEventListener('click', function () {
    validacion = false;
    tiempoEspera.setHours(0, 1, 1);
    document.getElementById('divTemporizador').style.display = "none";//.classList.add('invisible');
  });

  var botonSiguiente = document.getElementById('botonSiguiente');
  botonSiguiente.addEventListener('click', function () {
    var id = document.getElementById('idActualizar').value;
    $.get(base_url + "myagenda/franquiciatario/ListacitasF/obtenerDatos", { id: id }, function (result) {
      var datos = JSON.parse(result);
      //console.log(result);
      document.getElementById('divTemporizador').style.display = "block";
      validacion = true;
      temporizador();
      idCitaPop = datos.IdAgenda;
      idEstadosPop = datos.idEstado;
      idCabinaPop = datos.idCabina;
      numeroSesionPop = Number(datos.numeroSesion) + 1;
      idUsuarioPop = datos.idPersonal;
      idClientePop = datos.idCliente;
      nombreClientePop = datos.nombreCliente;
      nombreServicioPop = datos.nombreServicio;
      duracionSesionPop = datos.duracion;
      //console.log(duracionSesionPop);
      /*console.log(idCita);
      console.log(idEstados);
      console.log(cabinaC);
      console.log(numeroSesionPop);
      console.log(idUsuario);
      console.log(nombreClientePop);
      console.log(nombreServicioPop);
      personalDisponible();*/
    });
  });

  //Filtra por cabina
  $('#filtrarCabinas').click(function () {
    var idCabina = $('#queryCabina').val();
    if (idCabina != '') {
      var href = location.href;
      href = href.match(/([^\/]*)\/*$/)[1];
      var idClient;
      if (href != 'listacitasF') {
        idClient = href;
      }else{
        idClient = null;
      }
      $.ajax({
        type: "POST",
        url: base_url + "myagenda/franquiciatario/listacitasF/getEventos",
        data: { codecabina: idCabina, 'idClient':idClient},
        dataType: "json",
        async: false,
        success: function (responseCabina) {
          // Access the JSON response //
          //console.log("aqui buscacabina",responseCabina,idCabina,idClient);
          var json_events = responseCabina;

          var events = calendar.getEventSources('calendarF');

          events.forEach(event => {
            event.remove();
            event.refetch();
          });
          console.log(dataCalendar(json_events, "cabinas"));
          calendar.addEventSource(dataCalendar(json_events, "cabinas"));

          var events2 = calendar2.getEventSources('calendarF2');

          events2.forEach(event2 => {
            event2.remove();
            event2.refetch();
          });

          calendar2.addEventSource(dataCalendar(json_events, "personal"));
        },//end success ajax response
        error: function () {
          var selectedOption = $('#queryCabina  option:selected').text();
          swal({
            icon: 'error',
            title: "No hay resultados para " + selectedOption.toUpperCase(),
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
          });
          //alert("No hay resultados para " + selectedOption.toUpperCase());
        },
      });//end ajax
    }//end if
    else {
      swal({
        icon: 'warning',
        title: "Selecciona una cabina",
        showConfirmButton: true,
        confirmButtonText: 'Aceptar',
      });
      //alert("Selecciona una cabina");
    }
    return false; //para q no haga reload 
  });//end click filtrar cabinas

  $("#buscarCitasboton").click(function () {
    $('#siguenteCitaCliente').css('display', 'none');
    $('#AnteriorCitaCliente').css('display', 'none');
    var i = 0;
    //console.log( "Handler for .click() called." );
    var nameclient = $('#buscarCitasCliente').val();
    
    if (nameclient != '') {
      $.ajax({
        url: base_url + "/myagenda/franquiciatario/BuscarcitasF/buscarporcliente",
        type: 'POST',
        dataType: 'json',
        data: { name: nameclient },
        success: function (response) {
          //console.log("success",response);
          //Access the JSON response //
          var json_events = response;
          //Cambiar por sweetAlert
          if (response.length == 0) {
            swal({
              icon: 'warning',
              title: "No se han encontrado resultados para " + nameclient,
              showConfirmButton: true,
              confirmButtonText: 'Aceptar',
            });
            //alert("No se han encontrado resultados para " + nameclient)
            return false;
          }

          if (response.length == 1) {
            calendar.gotoDate(json_events[i].Fecha);
            var events = calendar.getEventSources('calendarF');
            events.forEach(event => {
              event.remove();
            });
            calendar.addEventSource(dataCalendar(json_events, "cabinas"));

            calendar2.gotoDate(json_events[i].Fecha);
            var events2 = calendar2.getEventSources('calendarF2');
            events2.forEach(event2 => {
              event2.remove();
            });
            calendar2.addEventSource(dataCalendar(json_events, "personal"));
            /*$('#calendarF').fullCalendar('gotoDate',responseclienteName[0].fecha );
            $('#calendarF').fullCalendar( 'removeEvents' );
            $('#calendarF').fullCalendar( 'refetchEvents' );
            $('#calendarF').fullCalendar( 'addEventSource',json_events );*/
            return false;
          }
          //inicio
          if (response.length > 1) {
            if (i <= response.length) {
              $('#siguenteCitaCliente').css('display', 'block');
              $('#siguenteCitaCliente').addClass('fadeInDown animated');

              calendar.gotoDate(json_events[i].Fecha);
              var events = calendar.getEventSources('calendarF');
              events.forEach(event => {
                event.remove();
              });
              calendar.addEventSource(dataCalendar(json_events, "cabinas"));

              calendar2.gotoDate(json_events[i].Fecha);
              var events2 = calendar2.getEventSources('calendarF2');
              events2.forEach(event2 => {
                event2.remove();
              });
              calendar2.addEventSource(dataCalendar(json_events, "personal"));
              /*$('#calendarF').fullCalendar('gotoDate',responseclienteName[i].fecha );
                $('#calendarF').fullCalendar( 'removeEvents' );
                $('#calendarF').fullCalendar( 'refetchEvents' );
              $('#calendarF').fullCalendar( 'addEventSource',json_events );*/

              //console.log("i ->" + i);
              /*if( i <= responseclienteName.length ){*/
              $("#siguenteCitaCliente").click(function () {
                if (i < response.length - 1 && i >= 0) {
                  i++;

                  calendar.gotoDate(response[i].Fecha);
                  var events = calendar.getEventSources('calendarF');
                  events.forEach(event => {
                    event.remove();
                  });
                  calendar.addEventSource(dataCalendar(json_events, "cabinas"));

                  calendar2.gotoDate(response[i].Fecha);
                  var events2 = calendar2.getEventSources('calendarF2');
                  events2.forEach(event2 => {
                    event2.remove();
                  });
                  calendar2.addEventSource(dataCalendar(json_events, "personal"));
                  /*$('#calendarF').fullCalendar('gotoDate',responseclienteName[i].fecha );
                    $('#calendarF').fullCalendar( 'removeEvents' );
                    $('#calendarF').fullCalendar( 'refetchEvents' );
                  $('#calendarF').fullCalendar( 'addEventSource',json_events );*/

                  //console.log("Incremento " + i);
                  //console.log(dataCalendar(json_events, "personal siguiente cliente"));
                  $('#AnteriorCitaCliente').css('display', 'block');
                  $('#AnteriorCitaCliente').addClass('fadeInDown animated');
                  return false;
                } else {
                  swal({
                    icon: 'warning',
                    title: "No Existen más eventos",
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                  });
                  //alert("No Existen más eventos");
                  console.log("i ->" + i);
                  return false;
                }
              });//end function click al hacer click en next

              $("#AnteriorCitaCliente").click(function () {
                if (i > 0 && i <= response.length - 1) {
                  i--;
                  calendar.gotoDate(response[i].Fecha);
                  var events = calendar.getEventSources('calendarF');
                  events.forEach(event => {
                    event.remove();
                  });
                  calendar.addEventSource(dataCalendar(json_events, "cabinas"));

                  calendar2.gotoDate(response[i].Fecha);
                  var events2 = calendar2.getEventSources('calendarF');
                  events2.forEach(event2 => {
                    event2.remove();
                  });
                  calendar2.addEventSource(dataCalendar(json_events, "personal"));
                  return false;
                } else {
                  swal({
                    icon: 'warning',
                    title: "No Existen más eventos anteriores",
                    showConfirmButton: true,
                    confirmButtonText: 'Aceptar',
                  });
                  //alert("No existen más eventos Anteriores");
                  console.log("abt i ->" + i);
                  return false;
                }
              });//end function click al hacer click en next
              /*console.log("no hay mas");*/
            }//end else 2 o mas clientesen citas cambie por if
            return false;
          }//end else 1 raiz
          //inicio - fin
        },//end success ajax response
        error: function () {
          swal({
            icon: 'warning',
            title: "No hay resultados para el nombre " + nameclient.toUpperCase(),
            showConfirmButton: true,
            confirmButtonText: 'Aceptar',
          });
          //alert("No hay resultados para el nombre " + nameclient.toUpperCase());
        },
      });//end ajax
      return false; //para q no haga reload 
    }// end if
    swal({
      icon: 'warning',
      title: "Escribe un nombre",
      showConfirmButton: true,
      confirmButtonText: 'Aceptar',
    });
    //alert("Escribe un nombre");
    return false; //para q no haga reload 
  });//end#buscarcitasboton

  // Autocompletado---------------------------------
  $("#clienteNC").autocomplete({
    source: base_url + "/agenda/franquiciatario/agregarcitaF/clientes/?",

    select: function (event, ui) {
      $('[name="idClienteO"]').val(ui.item.id);
      $('[name="nombreClienteO"]').val(ui.item.label);
      $('[name="clienteNC"]').val(ui.item.label);
      //console.log(ui.item.label);
      var boton = "adeudoClienteMC";
      buscarAdeudos(ui.item.id, boton);
    }
  });

  $("#clienteNC").on("keyup", function () {
    if ($("#clienteNC").val() != $("#nombreClienteO").val()) {
      document.getElementById("idClienteO").value = "";
      document.getElementById("adeudoClienteMC").classList.add('invisible');
    }
  });

  $(document).on('click', '.cerrarPop', function () {
    $(this).parent().parent().popover('hide');
  });
}); //Fin load

function dataCalendar(data, vista) {
  console.log("datacalendar", vista);
  console.log(data);
  var eventos = [];
  if (data != null) {
    for (var i = 0; i < data.length; i++) {
      //console.log(data[i]);
      var estado = "";
      var nombreEstado = "";
      switch (data[i].estatuscitas_IdEstatusCita) {
        case '1': //CONFIRMADA
          estado = '#5F04B4';
          nombreEstado = "CONFIRMADA";
          break;
        case '2': //PENDIENTE POR CONFIRMAR
          estado = '#6b6b6f';
          nombreEstado = "PENDIENTE";
          break;
        case '3': //CANCELADA
          estado = '#FF0000';
          nombreEstado = "CANCELADA";
          break;
        case '4': //REAGENDADA
          estado = '#DF01A5';
          nombreEstado = "REAGENDADA";
          break;
        case '5'://ABIERTO
          estado = '#00FFFF';
          nombreEstado = "ABIERTO";
          break;
        case '6': //REALIZADA
          estado = '#04B404';
          nombreEstado = "REALIZADO";
          break;
        case '7': //TOMADO POR SISTEMA
          estado = '#F7FE2E';
          nombreEstado = "TOMADO POR SISTEMA";
          break;
        case '8': //ONLINE
          estado = '#FF8000';
          nombreEstado = "ONLINE";
          break;
      }

      if (vista === "personal") {
        eventos[i] = {
          id: data[i].IdAgenda,
          resourceId: data[i].Usuarios_IdUsuarios,
          start: data[i].Fecha + ' ' + data[i].HoraInicio,
          end: data[i].Fecha + ' ' + data[i].HoraFin,
          title: data[i].SP_Agendado,
          description: 'Inicio: ' + moment(data[i].Fecha).format('DD-MM-YYYY') + ' ' + moment(data[i].HoraInicio, ["HH:mm:ss"]).format("h:mm A") + '\n Fin: ' + moment(data[i].Fecha).format('DD-MM-YYYY') + ' ' + moment(data[i].HoraFin, ["HH:mm:ss"]).format("h:mm A") +
            '\n Cliente: ' + data[i].NombreCliente + '\n Servicio: ' + data[i].SP_Agendado + '\n Estado: ' + nombreEstado,
          scolor: estado,
          color: data[i].colorCabina
        };
      } else {
        eventos[i] = {
          id: data[i].IdAgenda,
          resourceId: data[i].IdCabina,
          start: data[i].Fecha + ' ' + data[i].HoraInicio,
          end: data[i].Fecha + ' ' + data[i].HoraFin,
          title: data[i].SP_Agendado,
          description: 'Inicio: ' + moment(data[i].Fecha).format('DD-MM-YYYY') + ' ' + moment(data[i].HoraInicio, ["HH:mm:ss"]).format("h:mm A") + '\n Fin: ' + moment(data[i].Fecha).format('DD-MM-YYYY') + ' ' + moment(data[i].HoraFin, ["HH:mm:ss"]).format("h:mm A") +
            '\n Cliente: ' + data[i].NombreCliente + '\n Servicio: ' + data[i].SP_Agendado + '\n Estado: ' + nombreEstado,
          scolor: estado,
        };
      }
    }
  }
  //console.log(eventos);
  return eventos;
}

function agendarSigCita(res, datos) {
  if (res == 1) {
    //console.log("dentro de cabina reservada fuera de tiempo");
    //console.log(res);
    swal({
      title: "Cabina reservada!",
      text: "¿Está seguro de guardar está cita?",
      icon: 'warning',
      buttons: ["Cancelar!", "Aceptar!"],
    })
      .then((result) => {
        if (result) {
          //$('.cerrarPop').trigger('click');
          insertNext(datos);
        } else {
          $('.cerrarPop').trigger('click');
        }
      });
  } else {
    insertNext(datos);
  }
}

function insertNext(datos) {
  $(this).parent().parent().popover('hide');
  $.post(base_url + "myagenda/franquiciatario/ListacitasF/agendarSigCita",
    datos, function (result) {
      $('.cerrarPop').trigger('click');
      var datos = JSON.parse(result);
      //console.log(datos);
      if (datos.length == 2) {
        swal({
          title: 'Cita guardada correctamente',
          icon: 'success',
          showConfirmButton: false,
          timer: 1500
        });
        var eventos = [], eventos2 = [];
        eventos.push(datos[0]);
        eventos2.push(datos[1]);
        calendar.addEventSource(eventos);
        calendar2.addEventSource(eventos2);
        cancelarSiguiente.click();
      } else if (datos.length == 3) {
        $('.cerrarPop').trigger('click');
        swal({
          title: '¡Cita guardada correctamente!',
          html: '<h3>¿Desea agendar la siguiente sesión?</h3>',
          icon: 'success',
          buttons: ["Cancelar", "Agendar"],
        }).then((result) => {
          if (result) {
            document.getElementById('divTemporizador').style.display = "block";
            validacion = true;
            temporizador();
            idCitaPop = datos[2].idCita;
            idEstadosPop = datos[2].idEstados;
            idCabinaPop = datos[2].idCabina;
            numeroSesionPop = datos[2].numeroSesion;
            idUsuarioPop = datos[2].idUsuario;
            nombreClientePop = datos[2].nombreCliente;
            nombreServicioPop = datos[2].nombreServicio;
            personalDisponible();
          }
        });
        var eventos = [], eventos2 = [];
        eventos.push(datos[0]);
        eventos2.push(datos[1]);
        calendar.addEventSource(eventos);
        calendar2.addEventSource(eventos2);
        cancelarSiguiente.click();
      } else {
        $('.cerrarPop').trigger('click');
        swal({
          title: '¡No se registro ninguna cita!',
          text: 'Intente guardar de nuevo',
          icon: 'warning',
          showConfirmButton: true,
          confirmButtonText: 'Aceptar',
        })
      }
    });
}

function agendar(valor) {
  var personal = document.getElementById('personal');
  var todosPersonal = $.personal();
  var cabina = document.getElementById('cabinaNC');
  var todasCabinas = $.cabinas();
  cabina.innerHTML = "";
  cabina.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione cabina</option>`);

  for (var i = 0; i < todasCabinas.length; i++) {
    cabina.insertAdjacentHTML('beforeend', `<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
  }
  $('.selectpicker').selectpicker('refresh');
  if (valor != 'btnCita') {
    //alert(valor+"linea 2307");
    fechaCitaC();
  } else {
    //alert(valor+"linea 2307");
  }
  $('#modal-agendar').modal();
}

function editarCita(id, eventIni, eventFin) {
  var personal = document.getElementById('txtUsuario');
  var todosPersonal = $.personal();
  var cabina = document.getElementById('txtBandaRP');
  var todasCabinas = $.cabinas();
  //console.log(todasCabinas);
  cabina.innerHTML = "";
  cabina.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione cabina</option>`);

  for (var i = 0; i < todasCabinas.length; i++) {
    cabina.insertAdjacentHTML('beforeend', `<option data-content="<i class='fa fa-circle' style='color:` + todasCabinas[i].eventColor + `'> </i>` + todasCabinas[i].title + `">` + todasCabinas[i].id + `</option>`);
  }
  personal.innerHTML = "";
  personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
  for (var i = 0; i < todosPersonal.length; i++) {
    personal.insertAdjacentHTML('beforeend', `<option value="` + todosPersonal[i].id + `">` + todosPersonal[i].title + `</option>`);
  }

  $.get(base_url + "myagenda/franquiciatario/ListacitasF/obtenerDatos", { id: id },
    function (result) {
      //console.log(result);
      var datosCita = JSON.parse(result);
      //console.log(datosCita);
      document.getElementById('txtClientes').value = datosCita.nombreCliente;
      document.getElementById('idClientEdit').value = datosCita.idCliente;
      var ventaEditar = document.getElementById('selecttratamiento');
      var todasVentas = $.ventas();
      var todosServicios = $.serviciosTodos();
      ventaEditar.innerHTML = "";
      ventaEditar.insertAdjacentHTML('beforeend', `<option value=""disabled>Seleccione servicio</option>`);
      ventaEditar.insertAdjacentHTML('beforeend', `<optgroup label="Servicio agendado">`);
      ventaEditar.insertAdjacentHTML('beforeend', `<option value="` + datosCita.idServicio + `" selected><b>` + datosCita.nombreServicio + ', Fecha Agendada:' + datosCita.fecha + '</b><br></option>');
      ventaEditar.insertAdjacentHTML('beforeend', `</optgroup>`);
      ventaEditar.insertAdjacentHTML('beforeend', `<optgroup label="Servicios vendidos">`);
      if (todasVentas != false) {
        for (var i = 0; i < todasVentas.length; i++) {
          ventaEditar.insertAdjacentHTML('beforeend', `<option value="` + todasVentas[i].id + `"><b>` + todasVentas[i].title + '</b><br>, Fecha venta:' + todasVentas[i].fVenta + `</option>`);
        }
      }

      /*venta.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione servicio</option>`);
      if (todasVentas!=false) {
        venta.insertAdjacentHTML('beforeend', `<optgroup label="Servicios vendidos">`);

        for(var i=0; i<todasVentas.length; i++){
          venta.insertAdjacentHTML('beforeend', `<option value="`+todasVentas[i].id+`"><b>`+todasVentas[i].title+'</b><br>, Fecha venta:'+todasVentas[i].fVenta+`</option>`);
        }
        venta.insertAdjacentHTML('beforeend', `</optgroup>`);      
      }*/

      ventaEditar.insertAdjacentHTML('beforeend', `</optgroup>`);

      ventaEditar.insertAdjacentHTML('beforeend', `<optgroup label="Servicios generales">`);
      for (var i = 0; i < todosServicios.length; i++) {
        //console.log(todosServicios[i]);
        if (todosServicios[i].tipo == "sergen") {
          //console.log(todosServicios[i]);
          ventaEditar.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SG">` + todosServicios[i].title + `</option>`);
        }
      }
      ventaEditar.insertAdjacentHTML('beforeend', `</optgroup>`);

      ventaEditar.insertAdjacentHTML('beforeend', `<optgroup label="Servicios franquicia">`);
      for (var i = 0; i < todosServicios.length; i++) {
        if (todosServicios[i].tipo == "serfranq") {
          //console.log(todosServicios[i]);
          ventaEditar.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SF">` + todosServicios[i].title + `</option>`);
        }
      }
      ventaEditar.insertAdjacentHTML('beforeend', `</optgroup>`);

      ventaEditar.insertAdjacentHTML('beforeend', `<optgroup label="Promociones">`);
      for (var i = 0; i < todosServicios.length; i++) {
        if (todosServicios[i].tipo == "promo") {
          //console.log(todosServicios[i]);
          ventaEditar.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SP">` + todosServicios[i].title + `</option>`);
        }
      }
      ventaEditar.insertAdjacentHTML('beforeend', `</optgroup>`);

      /*document.getElementById('buscadorClienteEditar').classList.add("invisible");
      document.getElementById('tarjetaClienteEditar').classList.remove("invisible");
      document.getElementById('nombreClienteEditar').innerHTML=datosCita.nombreCliente;
      document.getElementById('datosClienteEditar').innerHTML=datosCita.datosCliente;*/
      //document.getElementById('nombreServicioEditar').value=datosCita.nombreServicio;
      //document.getElementById('idServicioEditar').value=datosCita.idServicio;
      var sesion = document.getElementById('numeroSesionesEditar');
      sesion.innerHTML = "";
      for (var i = 1; i <= datosCita.sesiones; i++) {
        if (datosCita.numeroSesion == i) {
          sesion.insertAdjacentHTML('beforeend', `<option value="` + i + `" selected>` + i + `</option>`);
        } else {
          sesion.insertAdjacentHTML('beforeend', `<option value="` + i + `">` + i + `</option>`);
        }

      }

      document.getElementById('txtFecha').value = moment(datosCita.fecha).format("DD-MM-YYYY");
      document.getElementById('txtHoraIni').value = moment(eventIni).format('h:mm A');
      document.getElementById('txtHoraFin').value=moment(eventFin).format('h:mm A');
      document.getElementById('duracionEditar').innerHTML = datosCita.duracion;//duracion(datosCita.horaInicio, datosCita.horaFin);
      fechaCitaCO();
      //console.log(datosCita.idPersonal, datosCita.nombrePersonal);
      document.getElementById('txtUsuario').insertAdjacentHTML('beforeend', `<option value="` + datosCita.idPersonal + `">` + datosCita.nombrePersonal + `</option>`);

      document.getElementById('txtUsuario').value = datosCita.idPersonal;
      document.getElementById('txtBandaRP').value = datosCita.idCabina;
      document.getElementById('txtEstado').value = datosCita.idEstado;
      document.getElementById('txtObservaciones').value = datosCita.Observaciones;
      document.getElementById('idActualizar').value = datosCita.IdAgenda;

      var infoLaboral = $.infoLaboral();
      var inicioL = infoLaboral.inicioDiaL;
      var finL = infoLaboral.finDiaL;

      var v1 = inicioL.slice(0, -3);
      var v2 = finL.slice(0, -3);
      /**************************************************/
      $('.timepicker').timepicker({
        timeFormat: 'h:i A',
        minTime: tConvert(v1),//'12:00 AM',
        maxTime: tConvert(v2),//'11:59 PM',
        startTime: tConvert(v1)
      });

      $('.selectpicker').selectpicker('refresh');
      $('#modalEvento').modal();

      if (datosCita.sesionesFaltantesAgendar > 0) {
        document.getElementById('botonSiguiente').style.display = "block";
      } else {
        document.getElementById('botonSiguiente').style.display = "none";
      }

      if (datosCita.idEstado != 6) {
        $('#selecttratamiento').attr('disabled', false);
        $('#numeroSesionesEditar').attr('disabled', false);
        $('#txtFecha').attr('disabled', false);
        $('#txtHoraIni').attr('disabled', false);
        //$('#txtHoraFin').attr('disabled',false);
        $('#duracionEditar').attr('disabled', false);
        $('#txtUsuario').attr('disabled', false);
        $('#txtBandaRP').attr('disabled', false);
        $('#txtEstado').attr('disabled', false);
        $('#txtObservaciones').attr('disabled', false);
        $('#editarCita').attr('disabled', false);
        document.getElementById('eliminarCita').classList.remove('invisible');
        document.getElementById('editarCita').classList.remove('invisible');
      } else if (datosCita.idEstado == 6) {
        $('#selecttratamiento').attr('disabled', 'disabled');
        $('#numeroSesionesEditar').attr('disabled', 'disabled');
        $('#txtFecha').attr('disabled', 'disabled');
        $('#txtHoraIni').attr('disabled', 'disabled');
        //$('#txtHoraFin').attr('disabled','disabled');
        $('#duracionEditar').attr('disabled', 'disabled');
        $('#txtUsuario').attr('disabled', 'disabled');
        $('#txtBandaRP').attr('disabled', 'disabled');
        $('#txtEstado').attr('disabled', 'disabled');
        $('#txtObservaciones').attr('disabled', 'disabled');
        $('#editarCita').attr('disabled', 'disabled');
        document.getElementById('eliminarCita').classList.add('invisible');
        document.getElementById('editarCita').classList.add('invisible');
      }

    });
}

function sumarDuracion(duracionServicio) {
  var hora = moment(document.getElementById('horaI').value, ["h:mm A"]).format("HH:mm:ss");
  var hora1 = (hora).split(":");
  var t1 = new Date();
  var hora2 = "";
  t1.setHours(hora1[0], hora1[1], hora1[2]);
  if (duracionServicio.split('*')[1] == 'min') {
    t1.setMinutes(t1.getMinutes() + Number(duracionServicio.split('*')[0]));
    hora2 = moment(t1).format("HH:mm:ss");
  } else if (duracionServicio.split('*')[1] == 'hrs') {
    t1.setHours(t1.getHours() + Number(duracionServicio.split('*')[0]));
    hora2 = moment(t1).format("HH:mm:ss");
  }
  if (hora !== 'Invalid date') {
    document.getElementById('horaF').value = moment(t1).format("h:mm A");
    document.getElementById('duracion').value = duracion(hora, hora2);
    $('#duracion').notify("Duración actualizada", "warn");
  }

}

function duracion(dt1, dt2) {
  var hora1 = (dt2).split(":"),
    hora2 = (dt1).split(":"),
    t1 = new Date(),
    t2 = new Date();
  t1.setHours(hora1[0], hora1[1], hora1[2]);
  t2.setHours(hora2[0], hora2[1], hora2[2]);
  t1.setHours(t1.getHours() - t2.getHours(), t1.getMinutes() - t2.getMinutes(), t1.getSeconds() - t2.getSeconds());
  // document.getElementById('duracion').value=(t1.getHours() ? t1.getHours() + (t1.getHours() > 1 ? " horas" : " hora") : "") + (t1.getMinutes() ? "  " + t1.getMinutes() + (t1.getMinutes() > 1 ? " minutos" : " minuto") : "") + (t1.getSeconds() ? (t1.getHours() || t1.getMinutes() ? " y " : "") + t1.getSeconds() + (t1.getSeconds() > 1 ? " segundos" : " segundo") : "")
  return (t1.getHours() ? t1.getHours() + (t1.getHours() > 1 ? " hrs" : " hrs") : "") + (t1.getMinutes() ? "  " + t1.getMinutes() + (t1.getMinutes() > 1 ? " min" : " min") : "") + (t1.getSeconds() ? (t1.getHours() || t1.getMinutes() ? " y " : "") + t1.getSeconds() + (t1.getSeconds() > 1 ? " seg" : " seg") : "");
}

function validacionCita() {
  var tipo = document.getElementById('tratamientoNC').value;

  if (document.getElementById('clienteNC').value == "") {
    $("#clienteNC").notify("Seleccione un cliente",{
      position:'top center',
      className:'error',
    });
    return false
  } else if (tipo == "") {
    $("#tratamientoNC").notify("Seleccione servicio",{
      position:'top center',
      className:'error',
    });
    return false
  } else if (document.getElementById('fechaNC').value == "") {
    $("#fechaNC").notify("Seleccione fecha",{
      position:'top center',
      className:'error',
    });//alert("Ingrese fecha");
    return false;
  } else if (document.getElementById("inicioNC").value == "") {
    $("#inicioNC").notify("Seleccione hora inicio",{
      position:'top center',
      className:'error',
    });//alert("Ingrese hora inicio");
    return false;
  } else if (document.getElementById("cosmetologoNC").value == "") {
    $("#cosmetologoNC").notify("Seleccione cosmetolog@",{
      position:'top center',
      className:'error',
    });//alert("Ingrese cosmetolog@");
    return false;
  } else if (document.getElementById("cabinaNC").value == "") {
    $("#cabinaNC").notify("Seleccione cabina",{
      position:'top center',
      className:'error',
    });//alert("Ingrese cabina");
    return false;
  } else  if(document.getElementById("statusNC").value == ""){
    $("#statusNC").notify("Seleccione estado",{
      position:'top center',
      className:'error',
    });
    return false;
  } else {
    return true;
  }
}

function validacionCitaUpdate() {
  var tipo = document.getElementById('selecttratamiento').value;
  if (document.getElementById('txtClientes').value == "") {
    $("#txtClientes").notify("Seleccione un cliente",{
      position:'top center',
      className:'error',
    });
    return false
  } else if (tipo == "") {
    $("#selecttratamiento").notify("Seleccione servicio",{
      position:'top center',
      className:'error',
    });//alert("Ingrese servicio");
    return false;
  } else if (document.getElementById('txtFecha').value == "") {
    $("#txtFecha").notify("Seleccione fecha",{
      position:'top center',
      className:'error',
    });//alert("Ingrese fecha");
    return false;
  } else if (document.getElementById("txtHoraIni").value == "") {
    $("#txtHoraIni").notify("Seleccione hora inicio",{
      position:'top center',
      className:'error',
    });//alert("Ingrese hora inicio");
    return false;
  } else if (document.getElementById("txtUsuario").value == "") {
    $("#txtUsuario").notify("Seleccione cosmetolog@",{
      position:'top center',
      className:'error',
    });//alert("Ingrese cosmetolog@");
    return false;
  } else if (document.getElementById("txtBandaRP").value == "") {
    $("#txtBandaRP").notify("Seleccione cabina",{
      position:'top center',
      className:'error',
    });//alert("Ingrese cabina");
    return false;
  } else  if(document.getElementById("txtEstado").value == ""){
    $("#txtEstado").notify("Seleccione estado",{
      position:'top center',
      className:'error',
    });
    return false;
  } else {
    return true;
  }
}

var tiempoEspera = new Date();
tiempoEspera.setHours(0, 1, 1);
function temporizador() {
  tiempoEspera.setSeconds(tiempoEspera.getSeconds() - 1);
  tiempoRestante.innerHTML = 'Tiempo restante: ' + moment(tiempoEspera).format('HH:mm:ss');
  if (moment(tiempoEspera).format('HH:mm:ss') != '00:00:00' && validacion == true) {
    validacion = true;
    setTimeout("temporizador()", 1000);
  } else {
    validacion = false;
    tiempoEspera.setHours(0, 1, 1);
    document.getElementById('divTemporizador').style.display = 'none';
  }
  //console.log(validacion);  
}

function limpiarM() {
  document.getElementById('clienteNC').value = '';
  document.getElementById('idClienteO').value = '';
  document.getElementById('tratamientoNC').value = '';
  document.getElementById('idServicio').value = '';
  document.getElementById('idPromocion').value = '';
  document.getElementById('cosmetologoNC').value = '';
  $('#cabinaNC').selectpicker('val', '');
  document.getElementById('observacionesNC').value = '';
  document.getElementById('statusNC').value = '';
  document.getElementById("div-cliente").classList.remove("has-error");
  document.getElementById("div-tratamiento").classList.remove("has-error");
  document.getElementById("div-fecha").classList.remove("has-error");
  document.getElementById("div-inicio").classList.remove("has-error");
  //document.getElementById("div-fin").classList.remove("has-error");
  document.getElementById("div-cabina").classList.remove("has-error");
  document.getElementById("div-status").classList.remove("has-error");
  document.getElementById("div-cosmetologo").classList.remove("has-error");
  document.getElementById("adeudoClienteMC").classList.add("invisible");
  $('.notifyjs-wrapper').trigger('notify-hide');
}

function cambio() {
  document.getElementById('calendarF').style.display = "none";
  document.getElementById('calendarF2').style.display = "block";
  $('.fc-resourceTimeGrid-button').trigger('click');
  $('.fc-timeGridWeek-button').trigger('click');
  $('.fc-resourceTimeGrid-button').trigger('click');
}

$.extend({
  cabinas: function () {
    var result = false;
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/cabinasExistentes/",
      dataType: "json",
      async: false,
      success: function (data) {
        var cabinas = [];
        for (var i = 0; i < data.length; i++) {
          cabinas[i] = {
            id: data[i].IdCabina,
            title: data[i].NombreCabina,
            eventColor: data[i].colorCabina
          };
        }
        result = cabinas;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//personal
$.extend({
  personal: function () {
    var result = false;
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/personalExistentes/",
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data, "listado de personal");
        var personal = [];
        for (var i = 0; i < data.length; i++) {
          personal[i] = {
            id: data[i].IdUsuarios,
            title: data[i].NombreUsuario.substring(0, 15)
          };
        }
        result = personal;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

$.extend({
  estados: function () {
    var result = false;
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/estados/",
      dataType: "json",
      async: false,
      success: function (data) {
        var estados = [];
        for (var i = 0; i < data.length; i++) {
          estados[i] = {
            'id': data[i].id,
            'title': data[i].nombre,
            'clase': data[i].clase,
          };
        }
        result = estados;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//eventosCabina
$.extend({
  eventosCabina: function () {
    var result = false;
    var href = location.href;
    href = href.match(/([^\/]*)\/*$/)[1];
    var idClient;
    if (href != 'listacitasF') {
      idClient = href;
    }else{
      idClient = null;
    }
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/listacitasF/getEventos",
      data: { codecabina: null, 'idClient':idClient},
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data);
        result = dataCalendar(data, "cabinas");
        //console.log(result);
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//eventosPersonal
$.extend({
  eventosPersonal: function () {

    var result = false;
    var href = location.href;
    href = href.match(/([^\/]*)\/*$/)[1];
    var idClient;
    if (href != 'listacitasF') {
      idClient = href;
    }else{
      idClient = null;
    }
    console.log(idClient);
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/listacitasF/getEventos",
      data: { codecabina: null, 'idClient':idClient},
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data, "personal");
        result = dataCalendar(data, "personal");
        //console.log(result);
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

function get24hTime(str) {
  str = String(str).toLowerCase().replace(/\s/g, '');
  var has_am = str.indexOf('am') >= 0;
  var has_pm = str.indexOf('pm') >= 0;
  // first strip off the am/pm, leave it either hour or hour:minute
  str = str.replace('am', '').replace('pm', '');
  // if hour, convert to hour:00
  if (str.indexOf(':') < 0) str = str + ':00';
  // now it's hour:minute
  // we add am/pm back if striped out before
  if (has_am) str += ' am';
  if (has_pm) str += ' pm';
  // now its either hour:minute, or hour:minute am/pm
  // put it in a date object, it will convert to 24 hours format for us
  var d = new Date("1/1/2011 " + str);
  // make hours and minutes double digits
  var doubleDigits = function (n) {
    return (parseInt(n) < 10) ? "0" + n : String(n);
  };
  return doubleDigits(d.getHours()) + ':' + doubleDigits(d.getMinutes());
}

function tConvert(time) {
  // Check correct time format and split into components
  time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];

  if (time.length > 1) { // If time format correct

    time = time.slice(1);  // Remove full string match value
    time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
    time[0] = +time[0] % 12 || 12; // Adjust hours
  }
  //return time; // return adjusted time or original string
  var tel = document.getElementById('rzlt');

  return time.join('');
}

function horaTimePicker() {
  /****************TIMEPICKERT**********************/
  var fecha = document.getElementById('fechaNC').value;
  var fecha2 = document.getElementById('fechaNC2').value;
  //console.log(fecha2);
  // console.log(document.getElementById('fecha').value);
  if (fecha2 != '') {
    if (fecha2 != fecha) {
      $('#inicioNC').timepicker('remove').timepicker();
      //$('#finNC').timepicker('remove').timepicker();
      $('#fecha2').val(fecha);
      // console.log(fecha2);
      var infoLaboral = $.infoLaboral();
      var inicioL = infoLaboral.inicioDiaL;
      var finL = infoLaboral.finDiaL;

      $('#inicioNC').val(inicioL);
      //$('#finNC').val(finL);

      var v1 = inicioL.slice(0, -3);
      var v2 = finL.slice(0, -3);
      /**************************************************/
      $('.timepicker').timepicker({
        timeFormat: 'h:i A',
        minTime: tConvert(v1),//'12:00 AM',
        maxTime: tConvert(v2),//'11:59 PM',
        startTime: tConvert(v1)
      });
    }
  } else {
    // console.log(fecha2);
    $('#fecha2').val(fecha);
    // console.log(fecha2);
    var infoLaboral = $.infoLaboral();
    var inicioL = infoLaboral.inicioDiaL;
    var finL = infoLaboral.finDiaL;

    var v1 = inicioL.slice(0, -3);
    var v2 = finL.slice(0, -3);
    /**************************************************/
    $('.timepicker').timepicker({
      timeFormat: 'h:i A',
      minTime: tConvert(v1),//'12:00 AM',
      maxTime: tConvert(v2),//'11:59 PM',
      startTime: tConvert(v1)
    });
  }
}

function fechaCitaC() {
  var fecha, inicio, fin, diasSemana, horaI, horaF, dia, fechaElegida, idCita;
  fecha = document.getElementById('fechaNC').value;
  inicio = document.getElementById('inicioNC').value;
  //fin = document.getElementById('finNC').value;
  //alert(fecha+'***'+inicio+'***'+fin);
  horaTimePicker();

  fecha = fecha.split('-').reverse().join('/');
  fecha = new Date(fecha);
  diasSemana = new Array("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  horaI = get24hTime(inicio) + ':00';
  //horaF = get24hTime(fin)+':00';

  dia = diasSemana[fecha.getUTCDay() - 1];
  //console.log(dia);
  fechaElegida = $('#fechaNC').val();
  idCita = "";
  idCita = document.getElementById('idCitaEdit').value;
  //alert(idCita, fechaElegida, dia, horaF, horaI, fecha);
  //console.log(idCita + "*" + fechaElegida + "-" + dia + "*" + "-" + horaI + "*" + fecha);
  if (dia != '' && dia != undefined && inicio != '') {
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/personalExistentesCambio/",
      data: { 'dia': dia, 'inicio': horaI, 'fechaElegida': fechaElegida, 'idCita': idCita },
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data);
        var personal = document.getElementById('cosmetologoNC');

        //personal.innerHTML="";
        if (data == null) {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
        } else {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
          for (var i = 0; i < data.length; i++) {
            personal.insertAdjacentHTML('beforeend', `<option value="` + data[i].IdUsuarios + `">` + data[i].NombreUsuario + `</option>`);
          }
        }
      },
      error: function (xhr, textStatus, errorThrown, error) {
        var personal = document.getElementById('cosmetologoNC');

        personal.innerHTML = "";
        personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
      }
    });
  }
  //return result;
}

function fechaCitaCO() {
  var fecha, inicio, fin, diasSemana, horaI, horaF, dia, fechaElegida, idCita, idPersonal, duracion;
  fecha = document.getElementById('fechaNC').value;
  inicio = document.getElementById('inicioNC').value;
  duracion = $("#duracionNC").text();
  //fin = document.getElementById('finNC').value;
  if (fecha == '') {
    //console.log(fecha);
    fecha = document.getElementById('txtFecha').value;
    inicio = document.getElementById('txtHoraIni').value;
    duracion = $("#duracionEditar").text();
    //fin = document.getElementById('txtHoraFin').value;
  }
  //alert(fecha+'***'+inicio+'***'+fin);
  horaTimePicker2();

  fecha = fecha.split('-').reverse().join('/');
  fecha = new Date(fecha);
  diasSemana = new Array("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  horaI = get24hTime(inicio) + ':00';
  //horaF = get24hTime(fin)+':00';

  dia = diasSemana[fecha.getUTCDay() - 1];
  //console.log(dia);
  fechaElegida = $('#fechaNC').val();
  if (fechaElegida == '') {
    fechaElegida = $('#txtFecha').val();
  }
  idCita = "";
  idCita = document.getElementById('idCitaEdit').value;
  idPersonal = document.getElementById('txtUsuario').value;
  //alert(idCita, fechaElegida, dia, horaF, horaI, fecha);
  //console.log(idCita + "*" + fechaElegida + "-" + dia + "-" + horaI + "*" + fecha);
  if (dia != '' && dia != undefined && inicio != '') {
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/personalExistentesCambio/",
      data: { 'dia': dia, 'inicio': horaI, 'fechaElegida': fechaElegida, 'idCita': idCita, 'idPersonal': idPersonal, 'duracion':duracion},
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data);
        var personal = document.getElementById('cosmetologoNC');
        if (document.getElementById('fechaNC').value == '') {
          personal = document.getElementById('txtUsuario');
        }
        //console.log(personal);
        for (let i = personal.options.length; i >= 0; i--) {
          personal.remove(i);
        }
        //console.log(personal);

        //personal.innerHTML="";
        if (data == null) {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
        } else {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
          for (var i = 0; i < data.length; i++) {
            personal.insertAdjacentHTML('beforeend', `<option value="` + data[i].IdUsuarios + `">` + data[i].NombreUsuario + `</option>`);
          }
        }
      },
      error: function (xhr, textStatus, errorThrown, error) {
        var personal = document.getElementById('cosmetologoNC');
        if (personal == '') {
          personal = document.getElementById('txtUsuario');
        }
        personal.innerHTML = "";
        personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
      }
    });
  }
}

function personalDisponible() {
  //alert('entrando a funcion personal disponible');
  var fecha, inicio, fin, diasSemana, horaI, horaF, dia, fechaElegida, idCita;
  fecha = $('.fechaCita').val();
  fecha = fecha.split('-').reverse().join('/');
  fecha = new Date(fecha);
  inicio = $('.inicioCita').val();
  //fin = $('.finCita').val();
  diasSemana = new Array("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
  horaI = get24hTime(inicio) + ':00';
  //console.log(horaI);
  //horaF = get24hTime(fin)+':00';
  dia = diasSemana[fecha.getUTCDay() - 1];
  //console.log(dia);
  fechaElegida = $('.fechaCita').val();
  idCita = null;
  //console.log(fechaElegida);
  if (dia != '' && dia != undefined && inicio != '') {
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/personalExistentesCambio/",
      data: { 'dia': dia, 'inicio': horaI, 'fechaElegida': fechaElegida, 'idCita': idCita, 'duracion':duracionSesionPop},
      dataType: "json",
      async: false,
      success: function (data) {
        var personal = document.getElementById('personalSiguiente');

        //personal.innerHTML="";
        if (data == null) {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
        } else {
          personal.innerHTML = "";
          personal.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione personal</option>`);
          for (var i = 0; i < data.length; i++) {
            personal.insertAdjacentHTML('beforeend', `<option value="` + data[i].IdUsuarios + `">` + data[i].NombreUsuario + `</option>`);
          }
        }
      },
      error: function (xhr, textStatus, errorThrown, error) {
        $('.personal').append("<option value='' disabled>Seleccione personal</option>");
      }
    });
  }
}

function buscarAdeudos(id, boton) {
  //console.log(id);
  $.ajax({
    url: base_url + "caja/Franquiciatario/cajaF/buscarAdeudos/",
    type: 'POST',
    dataType: 'json',
    data: { id: id },
    success: function (result) {
      //console.log(result);
      if (result == 'adeudo') {
        if ($('#div-cancelar').hasClass('cosmetologo')) {
          document.getElementById(boton).classList.remove('invisible');
          document.getElementById('div-cancelar').classList.add('col-md-3');
          document.getElementById('div-cancelar').classList.remove('col-md-4');
          document.getElementById('div-ver').classList.add('col-md-3');
          document.getElementById('div-ver').classList.remove('col-md-4');
          document.getElementById('div-guardar').classList.add('col-md-3');
          document.getElementById('div-guardar').classList.remove('col-md-4');
        } else {
          document.getElementById(boton).classList.remove('invisible');
          document.getElementById('div-cancelar').classList.add('div-boton');
          document.getElementById('div-cancelar').classList.remove('col-md-3');
          document.getElementById('div-eliminar').classList.add('div-boton');
          document.getElementById('div-eliminar').classList.remove('col-md-3');
          document.getElementById('div-adeudoE').classList.add('div-boton');
          document.getElementById('div-adeudoE').classList.remove('col-md-3');
          document.getElementById('div-ver').classList.add('div-boton');
          document.getElementById('div-ver').classList.remove('col-md-3');
          document.getElementById('div-guardar').classList.add('div-boton');
          document.getElementById('div-guardar').classList.remove('col-md-3');
        }
      } else {
        if ($('#div-cancelar').hasClass('cosmetologo')) {
          document.getElementById(boton).classList.add('invisible');
          document.getElementById('div-cancelar').classList.remove('col-md-3');
          document.getElementById('div-cancelar').classList.add('col-md-4');
          document.getElementById('div-ver').classList.remove('col-md-3');
          document.getElementById('div-ver').classList.add('col-md-4');
          document.getElementById('div-guardar').classList.remove('col-md-3');
          document.getElementById('div-guardar').classList.add('col-md-4');
        } else {
          document.getElementById(boton).classList.add('invisible');
          document.getElementById('div-cancelar').classList.remove('div-boton');
          document.getElementById('div-cancelar').classList.add('col-md-3');
          document.getElementById('div-eliminar').classList.remove('div-boton');
          document.getElementById('div-eliminar').classList.add('col-md-3');
          document.getElementById('div-ver').classList.remove('div-boton');
          document.getElementById('div-ver').classList.add('col-md-3');
          document.getElementById('div-guardar').classList.remove('div-boton');
          document.getElementById('div-guardar').classList.add('col-md-3');
        }
      }
    },//end success ajax response
    error: function () {
      console.log("No hay resultados");
      swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
        .then((value) => {
          location.href = "";
        });
    },
  });//end ajax   
}

var botonAdeudosE = document.getElementById("adeudoCliente");//document.querySelector('#adeudoCliente');
var botonAdeudosNC = document.querySelector('#adeudoClienteMC');
var botonNuevoCliente = document.querySelector('#nuevoClienteMC');
var botonGuardarCliente = document.querySelector('#guardarNuevoCliente');

$('#adeudoClienteMC').on('shown.bs.tooltip', function () {
  $('.tooltip-inner').css('background-color', 'black');
});

botonAdeudosNC.addEventListener('click', function (e) {
  var id = document.getElementById('idClienteO').value;
  $.ajax({
    url: base_url + "caja/Franquiciatario/cajaF/todosAdeudos/",
    type: 'POST',
    dataType: 'json',
    data: { id: id },
    success: function (result) {
      //console.log(result);
      ventanaAdeudos(result, rol);
    },//end success ajax response
    error: function (xhr, textStatus, errorThrown, error) {
      console.log(xhr.responseText);
      swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
        .then((value) => {
          // location.href="";
        });
    },
  });//end ajax  
});

botonAdeudosE.addEventListener('click', function (e) {
  var id = document.getElementById('id-cliente').innerHTML;
  //console.log('clickeo adeudo');
  $.ajax({
    url: base_url + "caja/Franquiciatario/cajaF/todosAdeudos/",
    type: 'POST',
    dataType: 'json',
    data: { id: id },
    success: function (result) {
      //console.log(result);
      ventanaAdeudos(result, rol);
    },//end success ajax response
    error: function (xhr, textStatus, errorThrown, error) {
      console.log(xhr.responseText);
      swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
        .then((value) => {
          // location.href="";
        });
    },
  });//end ajax  
});

botonNuevoCliente.addEventListener('click', function (e) {
  $('#modal-nuevoCliente').modal();
});

botonGuardarCliente.addEventListener('click', function (e) {
  var nombre = document.getElementById("nombreCompleto").value;
  var telefono = document.getElementById("celular").value;
  var correoE = document.getElementById("correoE").value;
  var datos = "nombre=" + nombre + "&telefono=" + telefono + "&correoE=" + correoE;
  if (nombre == "" && telefono == "" && correoE == "") {
    document.getElementById("ayudaNombre").innerHTML = "Ingresar los datos completos";
    document.getElementById("contenedorNc").classList.add("has-error");
  } else {
    //console.log(datos);
    document.getElementById("ayudaNombre").innerHTML = "";
    document.getElementById("contenedorNc").classList.remove("has-error");
    var nombreA = "nombre=" + nombre;
    $.ajax({
      url: base_url + "caja/Franquiciatario/cajaF/buscarCliente/",
      type: 'POST',
      dataType: 'json',
      data: nombreA,
      success: function (result) {
        //console.log(result);
        if (result == 1) {
          guardaCliente(datos, nombre);
        } else {
          swal({
            title: "¡Nombre de cliente existente!",
            text: "¿Está seguro de guardar esté cliente?",
            icon: "warning",
            buttons: ["Cancelar", "Aceptar"],
            confirm: true,
          })
            .then((confirm) => {
              if (confirm) {
                //console.log('acepto');
                guardaCliente(datos, nombre);
              }
            });
        }

      },//end success ajax response
      error: function () {
        console.log("No hay resultados");
        swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
          .then((value) => {
            location.href = "";
          });
      },
    });//end ajax   
  }
}); //Fin botonNuevoCliente
/*botonCancelarNuevoCliente.addEventListener('click', function(e){
  document.getElementById("nombreCompleto").value="";
  document.getElementById("celular").value="";
});*/

function guardaCliente(datos, nombre) {
  $.ajax({
    url: base_url + "caja/Franquiciatario/cajaF/guardarCliente/",
    type: 'POST',
    dataType: 'json',
    data: datos,
    success: function (id) {
      //console.log(id);
      $('#modal-nuevoCliente').modal('hide');
      $.notify("CLIENTE GUARDADO CORRECTAMENTE !!", {
        position: "top center",
        className: 'success cambia-letra',
      });
      if (id != '' && nombre != '') {
        $(function () {
          $("#clienteNC").keyup();
        });
        $('[name="idClienteO"]').val(id);
        $('[name="clienteNC"]').val(nombre);
        $('[name="nombreClienteO"]').val(nombre);

      }
      document.getElementById("nombreCompleto").value = "";
      document.getElementById("celular").value = "";
    },//end success ajax response
    error: function () {
      //console.log("No hay resultados");
      swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
        .then((value) => {
          location.href = "";
        });
    },
  });//end ajax   
}

function ventanaAdeudos(result, rol) {
  $("#listaAdeudos tr").remove();
  //console.log(result);
  //console.log(rol);
  var fila, tr, editar;
  for (var i = 0; i < result.length; i++) {
    if (result[i] != '') {
      if (rol == 2) {
        switch (result[i][6]) {
          case 'PROD':
            editar = "<a href='" + base_url + "pagos/franquiciatario/pagosF/editar/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'SA':
            editar = "<a href='" + base_url + "pagos/franquiciatario/pagosF/editar2/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'SG':
            editar = "<a href='" + base_url + "pagos/franquiciatario/pagosF/editar3/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'PROM':
            editar = "<a href='" + base_url + "pagos/franquiciatario/pagosF/editarPro/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          default:
            editar = "";
            break;
        }
      } else if (rol == 3) {
        switch (result[i][6]) {
          case 'PROD':
            editar = "<a href='" + base_url + "pagos/cosmetologo/pagosC/editar/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'SA':
            editar = "<a href='" + base_url + "pagos/cosmetologo/pagosC/editar2/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'SG':
            editar = "<a href='" + base_url + "pagos/cosmetologo/pagosC/editar3/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          case 'PROM':
            editar = "<a href='" + base_url + "pagos/cosmetologo/pagosC/editarPro/" + result[i][0] + "/" + result[i][7] + "' class='label label-primary'><span class='glyphicon glyphicon-pencil'></a></span>";
            break;
          default:
            editar = "";
            break;
        }
      }
      fila = "<tr><td class='invisible'>" + result[i][0] + "</td><td>" + result[i][8] + "</td><td>" + result[i][2] + "</td><td>$ " + result[i][3] + "</td><td>$ " + result[i][4] + "</td><td>" + editar + "</td><tr>";
      tr = document.createElement("TR");
      tr.innerHTML = fila;
      document.getElementById("listaAdeudos").appendChild(tr);
      //console.log(result[i][8]);
    }
  }
  $("#modal-adeudos").modal();
}

function guardaCliente(datos, nombre) {
  //console.log(nombre);
  $.ajax({
    url: base_url + "caja/Franquiciatario/cajaF/guardarCliente/",
    type: 'POST',
    dataType: 'json',
    data: datos,
    success: function (id) {
      //console.log(id);
      $('#modal-nuevoCliente').modal('hide');
      $.notify("CLIENTE GUARDADO CORRECTAMENTE !!", {
        position: "top center",
        className: 'success cambia-letra',
      });
      if (id != '' && nombre != '') {
        $(function () {
          $("#clienteNC").keyup();
        });
        $('[name="idClienteO"]').val(id);
        $('[name="clienteNC"]').val(nombre);
        $('[name="nombreClienteO"]').val(nombre);

      }
      document.getElementById("nombreCompleto").value = "";
      document.getElementById("celular").value = "";
    },//end success ajax response
    error: function () {
      //console.log("No hay resultados");
      swal("¡No se pudo conectar con el servidor!", "contacte al departamento de sistemas", "error")
        .then((value) => {
          location.href = "";
        });
    },
  });//end ajax   
}

function cambioCliente() {
  var id = document.getElementById('idClienteO').value;
  //alert(id);
  var venta = document.getElementById('tratamientoNC');
  var todosServicios = $.serviciosTodos();

  if (id != '') {
    var todasVentas = $.ventas();
    venta.innerHTML = "";
    venta.insertAdjacentHTML('beforeend', `<option value="" selected disabled>Seleccione servicio</option>`);
    if (todasVentas != false) {
      venta.insertAdjacentHTML('beforeend', `<optgroup label="Servicios vendidos">`);

      for (var i = 0; i < todasVentas.length; i++) {
        venta.insertAdjacentHTML('beforeend', `<option value="` + todasVentas[i].id + `"><b>` + todasVentas[i].title + '</b><br>, Fecha venta:' + todasVentas[i].fVenta + `</option>`);
      }
      venta.insertAdjacentHTML('beforeend', `</optgroup>`);
    }
  }

  venta.insertAdjacentHTML('beforeend', `<optgroup label="Servicios generales">`);
  for (var i = 0; i < todosServicios.length; i++) {
    //console.log(todosServicios[i]);
    if (todosServicios[i].tipo == "sergen") {
      //console.log(todosServicios[i]);
      venta.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SG">` + todosServicios[i].title + `</option>`);
    }
  }
  venta.insertAdjacentHTML('beforeend', `</optgroup>`);

  venta.insertAdjacentHTML('beforeend', `<optgroup label="Servicios franquicia">`);
  for (var i = 0; i < todosServicios.length; i++) {
    if (todosServicios[i].tipo == "serfranq") {
      //console.log(todosServicios[i]);
      venta.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SF">` + todosServicios[i].title + `</option>`);
    }
  }
  venta.insertAdjacentHTML('beforeend', `</optgroup>`);

  venta.insertAdjacentHTML('beforeend', `<optgroup label="Promociones">`);
  for (var i = 0; i < todosServicios.length; i++) {
    if (todosServicios[i].tipo == "promo") {
      //console.log(todosServicios[i]);
      venta.insertAdjacentHTML('beforeend', `<option value="` + todosServicios[i].id + `SP">` + todosServicios[i].title + `</option>`);
    }
  }
  venta.insertAdjacentHTML('beforeend', `</optgroup>`);
}

//ventas
$.extend({
  ventas: function () {
    var result = false;
    //var href = location.href;
    var id = document.getElementById('idClienteO').value;
    if (id == "") {
      id = document.getElementById('idClientEdit').value;
    }
    //alert(id+"*");
    $.ajax({
      type: "POST",
      url: base_url + "clientes/franquiciatario/clienteF/servVendidos/" + id,
      dataType: "json",
      async: false,
      success: function (data) {
        var serviciosVendidos = [];
        for (var i = 0; i < data["consulta1"].length; i++) {
          serviciosVendidos[i] = {
            'idServicio': data["consulta1"][i].serviciosfranquicias_IdServiciosFranquicias,
            'id': data["consulta1"][i].IdVentasServicios + "VF",
            'title': data["consulta1"][i].NombreServicio,
            'cantidad': data["consulta1"][i].SesionesS,
            'fVenta': data["consulta1"][i].FechaVenta
          };
        }

        for (var i = 0; i < data["consulta2"].length; i++) {
          serviciosVendidosG = {
            'idServicio': data["consulta2"][i].serviciosfranquicias_IdServiciosFranquicias,
            'id': data["consulta2"][i].IdVentasServicios + "VG",
            'title': data["consulta2"][i].NombreServicio,
            'cantidad': data["consulta2"][i].SesionesS,
            'fVenta': data["consulta2"][i].FechaVenta
          };
          serviciosVendidos.push(serviciosVendidosG);
        }

        for (var i = 0; i < data["consulta3"].length; i++) {
          serviciosVendidosP = {
            'idServicio': data["consulta3"][i].promociones_IdPromociones,
            'id': data["consulta3"][i].IdVentasPromociones + "VP",
            'title': data["consulta3"][i].NombrePromocion,
            'cantidad': data["consulta3"][i].SesionesPr,
            'fVenta': data["consulta3"][i].FechaVenta
          };
          serviciosVendidos.push(serviciosVendidosP);
        }
        result = serviciosVendidos;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.error);
      }
    });
    return result;
  }
});

//ventas2
$.extend({
  ventas2: function () {
    var result = false;
    //var href = location.href;
    var id = document.getElementById('idClienteEditar').value;

    $.ajax({
      type: "POST",
      url: base_url + "Clientes/Establecimiento/Cliente/ventasClient/" + id,
      dataType: "json",
      async: false,
      success: function (data) {
        var serviciosVendidos = [];
        for (var i = 0; i < data.length; i++) {
          var nombre;
          if (data[i].descripcionTarjetasRegalo != null) {
            nombre = data[i].servicios_nombreServicios + ': ' + data[i].descripcionTarjetasRegalo;
          } else {
            nombre = data[i].servicios_nombreServicios;
          }

          serviciosVendidos[i] = {
            'idServicio': data[i].servicios_idServicios,
            'id': data[i].idDetalleVentas,
            'title': nombre,
            'cantidad': data[i].cantidadDetalleVentas,
            'fVenta': data[i].fechaCreacionDetalleVentas
          };
        }
        result = serviciosVendidos;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//serviciosTodos
$.extend({
  serviciosTodos: function () {
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/listacitasF/ServProm/",
      dataType: "json",
      async: false,
      success: function (data) {
        //console.log(data);
        var servicios = [];
        var serviciosF = [];
        var serviciosP = [];

        for (var i = 0; i < data["sergen"].length; i++) {
          servicios[i] = {
            'tipo': 'sergen',
            'id': data["sergen"][i].Codigo_Servicios,
            'title': data["sergen"][i].NombreServicio
          };
        }

        for (var i = 0; i < data["serfranq"].length; i++) {
          serviciosF = {
            'tipo': 'serfranq',
            'id': data["serfranq"][i].IdServiciosFranquicias,
            'title': data["serfranq"][i].NombreServicio
          };
          servicios.push(serviciosF);
        }

        for (var i = 0; i < data["promociones"].length; i++) {
          serviciosP = {
            'tipo': 'promo',
            'id': data["promociones"][i].IdPromociones,
            'title': data["promociones"][i].NombrePromocion
          };
          servicios.push(serviciosP);
        }
        //console.log(servicios);
        result = servicios;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

function onchangeSesiones() {
  var tipo = document.getElementById('tratamientoNC').value;
  if (tipo == '' || tipo == "") {
    tipo = document.getElementById('nombreServicioEditar').value;
  }
  var nuevoValor = tipo.slice(-2);
  var id = tipo.slice(0, -2);
  //alert(id+'***'+nuevoValor);

  $.ajax({
    type: "POST",
    url: base_url + "myagenda/franquiciatario/ListacitasF/sesiones/",
    data: { 'tipo': nuevoValor, 'id': id },
    dataType: "json",
    async: false,
    success: function (data) {
      //console.log(data);
      //sumarDuracion(data);
      var sesion = document.getElementById('numeroSesiones');
      sesion.innerHTML = "";
      for (var i = 1; i <= data.sesionesServicio; i++) {
        sesion.insertAdjacentHTML('beforeend', `<option value="` + i + `">` + i + `</option>`);
      }
      //console.log(data.duracionServicio);
      document.getElementById('duracionNC').innerHTML = data.duracionServicio + " min";
    }
  });
}

//idServicio
$.extend({
  idServicio: function () {
    var result = false;
    var tipo = document.getElementById('tratamientoNC').value;
    if (tipo == "") {
      tipo = document.getElementById('selecttratamiento').value;
    }
    var nuevoValor = tipo.slice(-2);
    var id = tipo.slice(0, -2);

    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/sesiones/",
      data: { 'tipo': nuevoValor, 'id': id },
      dataType: "json",
      async: false,
      success: function (data) {
        var idServicios = data['idServicio'];
        result = idServicios;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//horarioNoLab
$.extend({
  horarioNoLab: function () {
    var result = false;

    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListacitasF/horarioNoLab/",
      dataType: "json",
      async: false,
      success: function (data) {
        var businessHours = [];
        var dia1 = [0];
        var dia2 = [1];
        var dia3 = [2];
        var dia4 = [3];
        var dia5 = [4];
        var dia6 = [5];
        var dia7 = [6];

        if (data.domingo === 1) {
          var domingo = { daysOfWeek: dia1, startTime: data.horaIniDomingo, endTime: data.horaFinDomingo };
          businessHours.push(domingo);
        }

        if (data.lunes == 1) {
          var lunes = { daysOfWeek: dia2, startTime: data.horaIniLunes, endTime: data.horaFinLunes };
          businessHours.push(lunes);
        }

        if (data.martes == 1) {
          var martes = { daysOfWeek: dia3, startTime: data.horaIniMartes, endTime: data.horaFinMartes };
          businessHours.push(martes);
        }

        if (data.miercoles == 1) {
          var miercoles = { daysOfWeek: dia4, startTime: data.horaIniMiercoles, endTime: data.horaFinMiercoles };
          businessHours.push(miercoles);
        }

        if (data.jueves == 1) {
          var jueves = { daysOfWeek: dia5, startTime: data.horaIniJueves, endTime: data.horaFinJueves };
          businessHours.push(jueves);
        }

        if (data.viernes == 1) {
          var viernes = { daysOfWeek: dia6, startTime: data.horaIniViernes, endTime: data.horaFinViernes };
          businessHours.push(viernes);
        }

        if (data.sabado == 1) {
          var sabado = { daysOfWeek: dia7, startTime: data.horaIniSabado, endTime: data.horaFinSabado };
          businessHours.push(sabado);
        }
        result = businessHours;
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

//infoLaboral
$.extend({
  infoLaboral: function () {
    var result = false;
    var fecha, diasSemana, dia;
    fecha = document.getElementById('fechaNC').value;
    //console.log(fecha);
    if (fecha == '') {
      //console.log(fecha);
      fecha = document.getElementById('txtFecha').value;
    }
    //console.log(fecha);
    //alert("**infoLaboral**");
    //alert(fecha);

    fecha = fecha.split('-').reverse().join('/');
    //console.log(fecha);
    fecha = new Date(fecha);
    //console.log(fecha);
    diasSemana = new Array("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo");
    //console.log(diasSemana);
    dia = diasSemana[fecha.getUTCDay() - 1];
    //console.log(dia);
    //alert(dia);
    $.ajax({
      type: "POST",
      url: base_url + "myagenda/franquiciatario/ListaCitasF/infoLaboral/",
      data: { 'dia': dia },
      dataType: "json",
      async: false,
      success: function (data) {
        if (data != false) {
          var horario = [];
          horario = {
            'inicioDiaL': data.horaInicio,
            'finDiaL': data.horaFin
          };
          result = horario;
        } else {
          result = false;
        }
      },
      error: function (xhr, textStatus, errorThrown, error) {
        console.log(xhr.responseText);
      }
    });
    return result;
  }
});

function horaTimePicker2() {
  /****************TIMEPICKERT**********************/
  var fecha = document.getElementById('fechaNC').value;
  var fecha2 = document.getElementById('fechaNC2').value;
  if (fecha == '') {
    //console.log(fecha);
    fecha = document.getElementById('txtFecha').value;
  }
  //console.log(fecha2);
  //console.log(document.getElementById('').value);
  if (fecha2 != '') {
    if (fecha2 != fecha) {
      $('#inicioNC').timepicker('remove').timepicker();
      //$('#finNC').timepicker('remove').timepicker();
      $('#fecha2').val(fecha);
      // console.log(fecha2);
      var infoLaboral = $.infoLaboral();
      var inicioL = infoLaboral.inicioDiaL;
      var finL = infoLaboral.finDiaL;

      $('#inicioNC').val(inicioL);
      //$('#finNC').val(finL);

      var v1 = inicioL.slice(0, -3);
      var v2 = finL.slice(0, -3);
      /**************************************************/
      $('.timepicker').timepicker({
        timeFormat: 'h:i A',
        minTime: tConvert(v1),//'12:00 AM',
        maxTime: tConvert(v2),//'11:59 PM',
        startTime: tConvert(v1)
      });
    }
  } else {
    $('#fecha2').val(fecha);
    // console.log(fecha2);
    var infoLaboral = $.infoLaboral();
    var inicioL = infoLaboral.inicioDiaL;
    var finL = infoLaboral.finDiaL;

    var v1 = inicioL.slice(0, -3);
    var v2 = finL.slice(0, -3);
    /**************************************************/
    $('.timepicker').timepicker({
      timeFormat: 'h:i A',
      minTime: tConvert(v1),//'12:00 AM',
      maxTime: tConvert(v2),//'11:59 PM',
      startTime: tConvert(v1)
    });
  }
}

function fechaHoraAct() {
  var momentoActual = new Date()
  var hora = momentoActual.getHours()
  var minuto = momentoActual.getMinutes()
  var segundo = momentoActual.getSeconds()
  var dia = momentoActual.getDate()
  var mes = momentoActual.getMonth() + 1
  var anio = momentoActual.getFullYear()
  if (dia < 10) {
    dia = '0' + dia;
  }
  if (mes < 10) {
    mes = '0' + mes;
  }
  var str_segundo = new String(segundo)
  if (str_segundo.length == 1)
    segundo = "0" + segundo

  var str_minuto = new String(minuto)
  if (str_minuto.length == 1)
    minuto = "0" + minuto

  var str_hora = new String(hora)
  if (str_hora.length == 1)
    hora = "0" + hora

  var horaImprimible = hora + ":" + minuto + ":" + segundo
  var fecha = anio + "-" + mes + "-" + dia;
  var fecha = fecha + " " + horaImprimible;
  return fecha;
}

var botonVerCliente= document.querySelector('#verCliente');

botonVerCliente.addEventListener('click', function(e){
  var cliente=document.getElementById('idClientEdit').value;
  /*console.log(cliente);
  console.log(cliente, rol);*/
  if(rol==2){
    location.href=base_url+'/clientes/franquiciatario/clienteF/editar/'+cliente;
  }else if(rol==3){
    location.href=base_url+'/clientes/cosmetologo/clienteC/editar/'+cliente;
  }
});

function modalAgregar() {
  $('#modal-agendar').modal();
}

/*
function duracion(dt1, dt2){
  var hora1 = (dt2).split(":"),
  hora2 = (dt1).split(":"),
  t1 = new Date(),
  t2 = new Date();
  t1.setHours(hora1[0], hora1[1], hora1[2]);
  t2.setHours(hora2[0], hora2[1], hora2[2]);
  t1.setHours(t1.getHours() - t2.getHours(), t1.getMinutes() - t2.getMinutes(), t1.getSeconds() - t2.getSeconds());
  // document.getElementById('duracion').value=(t1.getHours() ? t1.getHours() + (t1.getHours() > 1 ? " horas" : " hora") : "") + (t1.getMinutes() ? "  " + t1.getMinutes() + (t1.getMinutes() > 1 ? " minutos" : " minuto") : "") + (t1.getSeconds() ? (t1.getHours() || t1.getMinutes() ? " y " : "") + t1.getSeconds() + (t1.getSeconds() > 1 ? " segundos" : " segundo") : "")
  return (t1.getHours() ? t1.getHours() + (t1.getHours() > 1 ? " hrs" : " hrs") : "") + (t1.getMinutes() ? "  " + t1.getMinutes() + (t1.getMinutes() > 1 ? " min" : " min") : "") + (t1.getSeconds() ? (t1.getHours() || t1.getMinutes() ? " y " : "") + t1.getSeconds() + (t1.getSeconds() > 1 ? " seg" : " seg") : "");
}*/