//variables globales
var NuevoEvento;
var calendarEl          = document.getElementById('calendar');
var initialLocaleCode   = 'es';
var ruta               = document.getElementById('ruta');

console.log('ruta: '+ruta.value);

var calendar = new FullCalendar.Calendar(calendarEl, {
    timeZone: 'UTC',
    locale: initialLocaleCode,
    headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
    },
    slotLabelFormat:{
        hour: '2-digit',
        minute: '2-digit',
        hour12: true
    },//se visualizara de esta manera 01:00 AM en la columna de horas
    eventTimeFormat: {
        hour: '2-digit',
        minute: '2-digit',
        hour12: true
    },
    allDaySlot: false,
    businessHours: true,
    businessHours: {
        // Dias de la semana laborables (0=Sunday)
        daysOfWeek: [ 1, 3, 5 ], // Lunes-Miercoles y Viernes
        startTime: '08:00', // Inicia a las 8 a.m.
        endTime: '14:00', // Finaliza a la 1pm
    },
    events: 'http://localhost'+ruta.value+'controladores/citaControlador.php?op=listarCita',
    //events: 'http://localhost/managwares/controladores/citaControlador.php?op=listarCita',
    //events: 'http://www.administracion.managware.com/controladores/citaControlador.php?op=listarCita',
    
    dateClick: function(info) {
            // alert('clicked ' + info.dateStr);
            // alert('Current view: ' + info.view.type);
            // alert('Current view: ' + info.date);
           
            limpiar();
            var fechai  = info.dateStr;
            if (info.view.type!='dayGridMonth'){
                var tiempo  = buscarhora12(fechai);
                var tiempo1 = buscarhora24(tiempo);
                var tiempo2 = tiempo1.split(':');
                var tiempoi = tiempo2[0];
                if (tiempoi==0){
                    tiempoi=12;
                }
            }else{
                tiempo  = '';
                tiempo1 = '';
                tiempoi = 8;
            }
            console.log('tiempo: '+tiempo);
            console.log('tiempo1: '+tiempo1);
            console.log('tiempoi: '+tiempoi);
            //fechah      = info.date;
            //fechah      = info.dateStr;
            fecha       = moment(fechai).format('DD-MM-YYYY');
            fechastar1  = moment(fechai).format('YYYY-MM-DD');
            $('#start').val(fecha);
            $('#start1').val(fechastar1);
            $('#hora').val(tiempo);
            $('#hora1').val(tiempo1);
            if (tiempoi>7&&tiempoi<14){
                $('#ModalEventos').modal('show');
            }else{
                bootbox.alert("Hora no Laborable");
            }
            
            
    },
    eventClick: function(info) {
        //info.event.extendedProps.description
        //alert('id servicios ' + info.event.extendedProps.idservicio);
        var fechai  = info.event.extendedProps.fecha
        $('#id').val(info.event.id);
        fecha       = moment(fechai).format('DD-MM-YYYY');
        fechastar1  = moment(fechai).format('YYYY-MM-DD');
        $('#start').val(fecha);
        $('#start1').val(fechastar1);
       // $('#start').val(info.event.extendedProps.fecha);
        $('#horai').val(info.event.extendedProps.horai);
        $('#horai').selectpicker('refresh');
        $('#idpaciente').val(info.event.extendedProps.idpaciente);
        $('#idpaciente').selectpicker('refresh');
        $('#idfisioterapeuta').val(info.event.extendedProps.idfisioterapeuta);
        $('#idfisioterapeuta').selectpicker('refresh');
        $('#espacio').val(info.event.extendedProps.espacio);
        $('#espacio').selectpicker('refresh');
        $('#idservicio').val(info.event.extendedProps.idservicio);
        $('#idservicio').selectpicker('refresh');
        espacio1 = info.event.extendedProps.espacio;
        $("#camarahiperbarica").hide();
        $("#cubiculo").hide();
        $("#cama").hide();
        if(espacio1=='cama'){
            $("#cama").show();
            $('#idcama').val(info.event.extendedProps.idcama);
            $('#idcama').selectpicker('refresh');
        }
        if(espacio1=='cubiculo'){
            $("#cubiculo").show();
            $('#idcubiculo').val(info.event.extendedProps.idcubiculo);
            $('#idcubiculo').selectpicker('refresh');
        }
        if(espacio1=='camarahiperbarica'){
            $("#camarahiperbarica").show();
            $('#idcamarahiperbarica').val(info.event.extendedProps.idcamarahiperbarica);
            $('#idcamarahiperbarica').selectpicker('refresh');
        }
        $("#estado1").show();
        $('#estado').val(info.event.extendedProps.estado);
        $('#estado').selectpicker('refresh');
        $('#ModalEventos').modal('show');
        return false;
    },
    eventDrop: function(event, delta, revertFunc) { // si changement de position

        edit(event);

    }, 
     
    //y este código se visualizara de la misma manera pero en el titulo del evento creado en fullcalendar    

}); 

calendar.render();
 
function init(){
    cargarcalendario();
    limpiar();

    /*Se captura el evento de buscar clave de permiso */   
	$("#formularioevento").on("submit",function(e){
		/* Evitamos el envío real del formulario */
        e.preventDefault();
        var tiempo1         = $('#horai').val();
        var paciente        = $('#idpaciente').find('option:selected').text();
        var fisioterapeuta  = $('#idfisioterapeuta').find('option:selected').text();
        var espacio         = $('#espacio').val();
        var espacio1        = "";
        console.log('id: '+$('#id').val())
        if (espacio=='cubiculo') {
            espacio1        = $('#idcubiculo').find('option:selected').text();
        }else{
            if (espacio=='cama') {
                espacio1     = $('#idcama').find('option:selected').text();
            } else {
                espacio1     = $('#idcamarahiperbarica').find('option:selected').text();
            }
        }
        var estado   =  $('#estado').val();
        if (estado=='disponible'){
            $('#backgroundColor').val('#ffffff');
            $('#textColor').val('#041bbd'); //azul
        }else{
            if (estado=='realizada'){
                $('#backgroundColor').val('#ffffff');
                $('#textColor').val('#22c605'); //verde
            }else{
                if (estado=='cancelada'){
                    $('#backgroundColor').val('#ffffff');
                    $('#textColor').val('#f7051f'); //rojo
                }else{ //Not Shown
                    $('#backgroundColor').val('#ffffff');
                    $('#textColor').val('#f79f05'); //naranja
                }
            }
        }
        switch (tiempo1) {
            /* 
                <option value="1">1era. Hora (8-8:45)</option>
                <option value="2">2da. Hora (9-9:45)</option>
                <option value="3">3era. Hora (9:45-10:30)</option>
                <option value="4">4ta. Hora (10:30-11:15)</option>
                <option value="5">5ta. Hora (11:15-12:00)</option>
                <option value="6">6ta. Hora (12:00-12:45)</option>
                <option value="7">7ta. Hora (12:45-2:00)</option>
                <option value="8">5ta. Hora (3:00-3:45)</option>
                <option value="9">5ta. Hora (3:45-4:30)</option>
                <option value="10">5ta. Hora (4:30-5:15)</option>
                <option value="11">5ta. Hora (5:15-6:00)</option>
            */
            case '1':
                $('#hora1').val('08:00');
                $('#hora2').val('09:00');
            break;
            case '2':
                $('#hora1').val('09:00');
                $('#hora2').val('09:45');
            break;
            case '3':
                $('#hora1').val('09:45');
                $('#hora2').val('10:30');
            break;
            case '4':
                $('#hora1').val('10:30');
                $('#hora2').val('11:15');
            break;
            case '5':
                $('#hora1').val('11:15');
                $('#hora2').val('12:00');
            break;
            case '6':
                $('#hora1').val('12:00');
                $('#hora2').val('12:45');
            break;
            case '7':
                $('#hora1').val('12:45');
                $('#hora2').val('14:00');
            break;
            case '8':
                $('#hora1').val('14:00');
                $('#hora2').val('14:45');
            break;
            case '9':
                $('#hora1').val('14:45');
                $('#hora2').val('15:30');
            break;
            case '10':
                $('#hora1').val('15:30');
                $('#hora2').val('16:15');
            break;
            default:
                $('#hora1').val('16:15');
                $('#hora2').val('17:00');
        }
        

        $('#title').val(paciente+'-'+fisioterapeuta+'-'+espacio1);
        $('#descripcion').val(fisioterapeuta+'-'+espacio1);
        
        $('#ModalEventos').modal('toggle');
		guardarcita();
	});
  
    $.post("controladores/pacienteControlador.php?op=selectPaciente", function(r){
        $("#idpaciente").html(r);
        $('#idpaciente').selectpicker('refresh');
    });
      //cargamos los items al select cliente
    $.post("controladores/fisioterapeutaControlador.php?op=selectFisioterapeuta", function(r){
         $("#idfisioterapeuta").html(r);
         $('#idfisioterapeuta').selectpicker('refresh');
    });
    $.post("controladores/cubiculoControlador.php?op=selectCubiculo", function(r){
        $("#idcubiculo").html(r);
        $('#idcubiculo').selectpicker('refresh');
    });
    $.post("controladores/camaControlador.php?op=selectCama", function(r){
        $("#idcama").html(r);
        $('#idcama').selectpicker('refresh');
    });
    $.post("controladores/camarahiperbaricaControlador.php?op=selectCamarahiperbarica", function(r){
        $("#idcamarahiperbarica").html(r);
        $('#idcamarahiperbarica').selectpicker('refresh');
    });
    $.post("controladores/citaControlador.php?op=selectServicio", function(r){
        $("#idservicio").html(r);
        $('#idservicio').selectpicker('refresh');
    });

    $.post("controladores/horarioControlador.php?op=selectHorario", function(r){
        $("#horai").html(r);
        $('#horai').selectpicker('refresh');
    });
    
    
    $("#espacio").change(function(){
        var espacio1 = $("#espacio").val();
        $("#camarahiperbarica").hide();
        $("#cubiculo").hide();
        $("#cama").hide();
        if(espacio1=='cama'){
            $("#cama").show();
        }
        if(espacio1=='cubiculo'){
            $("#cubiculo").show();
        }
        if(espacio1=='camarahiperbarica'){
            $("#camarahiperbarica").show();
        }
    });

    $("#start").change(function(){
        var fechai      = $('#start').val(fecha);
        var fecha       = moment(fechai).format('DD-MM-YYYY');
        var fechastar1  = moment(fechai).format('YYYY-MM-DD');
        $('#start').val(fecha);
        $('#start1').val(fechastar1);    
    });

    $("#btnClose").on("click",function(e){
        e.preventDefault(); 
        console.log('close');
        $('#ModalEventos').modal('toggle');
        cargarcalendario();
        limpiar();
        
    });
     
}

function limpiar() {
    $('#id').val("");
    $("#camarahiperbarica").hide();
    $("#cubiculo").hide();
    $("#cama").hide();
    $("#estado1").hide();
    $("#espacio").val("");
    $('#espacio').selectpicker('refresh');
    $("#idpaciente").val(0);
    $('#idpaciente').selectpicker('refresh');
    $("#idfisioterapeuta").val(0);
    $('#idfisioterapeuta').selectpicker('refresh');
    $("#idcubiculo").val(0);
    $('#idcubiculo').selectpicker('refresh');
    $("#idcama").val(0);
    $('#idcama').selectpicker('refresh');
    $("#idcamarahiperbarica").val(0);
    $('#idcamarahiperbarica').selectpicker('refresh');
    $("#idservicio").val(0);
    $('#idservicio').selectpicker('refresh');
    $("#horai").val(0);
    $('#horai').selectpicker('refresh');
}

//funcion hora
function buscarhora24(objh) {
    console.log('objh: '+objh);
    var partiempo1   = objh.split(':');
    var hora         = partiempo1[0];
    var parminuto    = partiempo1[1].split(' ');
    console.log('hora: '+hora);
    console.log('parminuto: '+parminuto);
    var minuto       = parminuto[0];
    var ampm         = parminuto[1];
    var horai        = parseInt(hora,10);
    if (ampm=='PM'||ampm=='pm'){
        if (horai!=12){
            horai   = horai +12;
        }
    }else{
        if (horai==12){
            horai   = 0;
        }
    }
    hora1   = horai+':'+minuto;
    return hora1;
}

function buscarhora12(objh) {
    var parts = objh.slice(0, -1).split('T');
    var dateComponent = parts[0];
    var timeComponent = parts[1];
    var partiempo     = timeComponent.split(':');
    var hora          = partiempo[0];
    var minuto        = partiempo[1];
    var ampo          = 'AM';
    var horai         = parseInt(hora,10);
    if (horai>=13){
        ampo          = 'PM';
        horai          = horai-12;  
    }
    var tiempo        = horai+':'+minuto+' '+ampo
    return tiempo;
}

function buscarhora12e(objh) {
    var objh = fechai.slice(0, -1).split('T');
    var dateComponent = parts[0];
    var timeComponent = parts[1];
    var partiempo     = timeComponent.split(':');
    var hora          = partiempo[0];
    var minuto        = partiempo[1];
    var ampo          = 'AM';
    var horai         = parseInt(hora,10);
    var hora1       =   hora;
    if (horai>=13){
        ampo          = 'PM';
        horai          = horai-12;  
    }
    var tiempo        = horai+':'+minuto
    return tiempo;
}
    

//funcion cargarcalendario
function cargarcalendario(){
    calendar.render();
};

function recolectardatos(){  
    NuevoEvento = {
        id:$('#txtId').val(),
        title:$('#txtTitulo').val(),
        start:$('#txtFecha').val()+' '+$('#txtHora').val(),
        backgroundColor:$('#txtColor').val(),
        descripcion:$('#txtDescripcion').val(),
        TextColor:"#FFFFFF",
        end:$('#txtFecha').val()+' '+$('#txtHora').val()
    };

}

function guardarcita() {
	var formDataCita=new FormData($("#formularioevento")[0]);
	$.ajax({
		url: "controladores/citaControlador.php?op=guardaryeditar",
		type: "POST",
		data: formDataCita,
		contentType: false,
		processData: false,
		success: function(datos){
            bootbox.alert(datos);
            calendar.refetchEvents();
        }
    });
    limpiar();
}

/* function mandarinformacion (accion) {  
    alert('Guardar Informacion');
    var formDataCita=new FormData($("#formularioevento")[0]);
    console.log('formDataCita: '+formDataCita);
    console.log('accion: '+accion);
    alert('Vamos Guardar Informacion');
    $.ajax({
        url: "controladores/citaControlador.php?op=guardaryeditar",
        type: "POST",
        data: formDataCita,
        contentType: false,
        processData: false,

        success: function(datos){
            bootbox.alert(datos);
            calendar.FullCalendar('refetchEvents');
        }
        
    }); */

    /*
    $.ajax({
		url: "controladores/personaclienteControlador.php?op=guardaryeditar",
		type: "POST",
		data: formDataCliente,
		contentType: false,
		processData: false,
		success: function(datos){
			bootbox.alert(datos);
			buscarcliente(tipo_documento1,num_documento1);
		}
	});  
}


 
    
    
          
   //startTime();


/* var calendar            = new FullCalendar.Calendar(calendarEl, {
    timeZone: 'UTC', 
    headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
        
    },
    locale: initialLocaleCode,
    selectable: true,
    editable: true,
    events: 'http://localhost/ejemplos/agenda/agendames/controladores/eventoControlador.php?op=listarEvento',
    eventTimeFormat: { // like '14:30:00'
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: true
    },
    dateClick: function(info) {
        //alert('clicked ' + info.dateStr);
        fechai      =   info.date;
        fecha       =   moment(fechai).format('DD-MM-YYYY');
        fechastar1  =   moment(fechai).format('YYYY-MM-DD');
        hora        =   fechai.getHours()+":"+fechai.getMinutes()
        $('#start').val(fecha);
        $('#start1').val(fechastar1);
        $('#hora').val(hora);
        $('#ModalEventos').modal('show');
        
    },
    eventClick: function(info) {
        // info.event.extendedProps.description
        // alert('descrripcion ' + info.event.extendedProps.descripcion);
        $('#tituloEvento').html(info.event.title);
        
        //Mostramos la informacion del evento
        $('#descripcion').val(info.event.extendedProps.descripcion);
        $('#id').val(info.event.id);
        $('#title').val(info.event.title);
        $('#backgroundColor').val(info.event.backgroundColor);
        fechahora   =   info.event.start;
        $('#start').val(fechahora.getDay()+'/'+fechahora.getMonth()+'/'+fechahora.getFullYear());
        $('#hora').val(fechahora.getHours()+":"+fechahora.getMinutes());
        $('#ModalEventos').modal('show');
        return false;
    },
    timeFormat: 'H(:mm)'
}); */
//
//funcion que se ejecuta al inicio


//bootbox.alert(datos);
	/* var calendarEl = document.getElementById('calendar');
    var initialLocaleCode = 'es';
    var calendar = new FullCalendar.Calendar(calendarEl, {
     */
        

       /*  initialDate: '2020-09-12',
        locale: initialLocaleCode,
        initialView: 'timeGridWeek',
        headerToolbar: {
            left: 'prev,next today',
            center: 'title',
            right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
        },
        height: 'auto',
        navLinks: true, // can click day/week names to navigate views
        editable: true,
        selectable: true,
        selectMirror: true,
        nowIndicator: true,
        events: [
            {
                title: 'All Day Event',
                start: '2020-09-01',
            },
            {
                title: 'Long Event',
                start: '2020-09-07',
                end: '2020-09-10'
            },
            {
                groupId: 999,
                title: 'Repeating Event',
                start: '2020-09-09T16:00:00'
            },
            {
                groupId: 999,
                title: 'Repeating Event',
                start: '2020-09-16T16:00:00'
            },
            {
                title: 'Conference',
                start: '2020-09-11',
                end: '2020-09-13'
            },
            {
                title: 'Meeting',
                start: '2020-09-12T10:30:00',
                end: '2020-09-12T12:30:00'
            },
            {
                title: 'Lunch',
                start: '2020-09-12T12:00:00'
            },
            {
                title: 'Meeting',
                start: '2020-09-12T14:30:00'
            },
            {
                title: 'Happy Hour',
                start: '2020-09-12T17:30:00'
            },
            {
                title: 'Dinner',
                start: '2020-09-12T20:00:00'
            },
            {
                title: 'Birthday Party',
                start: '2020-09-13T07:00:00'
            },
            {
                title: 'Click for Google',
                url: 'http://google.com/',
                start: '2020-09-28'
            }
        ],
        eventClick: function(event) {
						
            // $('#visualizar #id').text(event.id);
            // $('#visualizar #title').text(event.title);
            // $('#visualizar #start').text(event.start.format('DD/MM/YYYY HH:mm:ss'));
            // $('#visualizar #end').text(event.end.format('DD/MM/YYYY HH:mm:ss'));
            $('#visualizar').modal('show');
            return false;

        },
        select: function (info) {
            //alert('Início do evento: ' + info.start.toLocaleString());
            $('#cadastrar #start').val(info.start.toLocaleString());
            $('#cadastrar #end').val(info.end.toLocaleString());
            $('#cadastrar').modal('show');
        }
    });

    calendar.render();
} */

// function startTime(){
    //     today=new Date();
    //     h=today.getHours();
    //     m=today.getMinutes();
    //     s=today.getSeconds();
    //     m=checkTime(m);
    //     s=checkTime(s);
    //     document.getElementById('reloj').innerHTML=h+":"+m+":"+s;
    //     t=setTimeout('startTime()',500);
    // }
    // function checkTime(i){
    //     if (i<10) {i="0" + i;}return i;
    // }

 /*  $("#btnAgregar").on("click",function(e){
       // recolectardatos();
        var tiempo1 = $('#horai').val();
        $('#hora1').val(tiempo1+':00');
        $('#hora2').val(tiempo1+':45');
        console.log('hora1: '+$('#hora1').val());
        console.log('hora2: '+$('#hora2').val());
        console.log('hora1: '+$('#hora1').val());
        console.log('hora2: '+$('#hora2').val());
        mandarinformacion('guardaryeditar');
        //calendar.addEvent(NuevoEvento);
        $('#ModalEventos').modal('toggle');
    });  */
    /* $(function() {
       $('[name="horai"]').timeselector({
              hours12:true
        });
    });  */
    /* $(function() {
        $('[name="horaf"]').timeselector({
               hours12:true
         });
    }); */

init();