$(function() {
  var start = moment().subtract(29, 'days');
  var end = moment(); 
            
  function cb(start, end) {
    $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    $('#reportrange').data('desde', start.format('DD/MM/YYYY'));
    $('#reportrange').data('hasta', end.format('DD/MM/YYYY'));
  }
  $('#reportrange').daterangepicker({
    showDropdowns: true,
    startDate: start,
    endDate: end,
    "locale": {"separator": " - ",
               "applyLabel": "Aplicar",
               "cancelLabel": "Cancelar",
               "fromLabel": "DE",
               "toLabel": "HASTA",
               "customRangeLabel": "Intervalo de fechas",
               "daysOfWeek": ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sáb"],
               "monthNames": ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
               "firstDay": 1
              },
    ranges: {
      'Hoy': [moment().subtract(0, 'days'), moment()],
      'Ayer': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
      'Ultima Semana': [moment().subtract(6, 'days'), moment()],
      'Mes en curso': [moment().startOf('month'), moment()],
      'Ultimos 30 dias': [moment().subtract(29, 'days'), moment()],
      'Ultimos 90 dias': [moment().subtract(89, 'days'), moment()],
    }
  }, cb);
  cb(start, end);
  agregarPeriodo();
});

$(function() {
  $('#btnLimpiarPeriodos').on('click', function () {
    $.confirm({
      title: 'Confirmar',
      content: '¿Elimina todos los períodos cargados?',
      buttons: {
        Si: function () {
          $('#conteFiltroPeriodo').html('');
          $('#btnVerResultado').hide();
        },
        no: function () {
          //$.alert('Cancelado!');
        },
      }
    });
  });

});

function agregarPeriodo() {
  var xxx = '<div class="taglab alert  alert-dismissible"><button onclick="$(\'#btnVerResultado\').hide();" name="filtroFecha" data-desde="'+$("#reportrange").data('desde')+'" data-hasta="'+$("#reportrange").data('hasta')+'" type="button" style="color: #3c4256 !important;" class="close" data-dismiss="alert" aria-hidden="true">×</button>'+$("#reportrange span").html()+'</div>';
  $('#conteFiltroPeriodo').append(xxx);
  $('#btnVerResultado').hide();
}

function toDate(dateStr) {
  var parts = dateStr.split("/")
  return new Date(parts[2], parts[1] - 1, parts[0])
}

function agregarPeriodoFiltro(desde, hasta) {
  var dateDesde = toDate(desde);
  var dateDesde = $.datepicker.formatDate('MM dd, yy', new Date(dateDesde));

  var f = new Date(Date.parse(dateDesde));
  var meses = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
  dateDesde = meses[f.getUTCMonth()] + " " + f.getUTCDate() + ", " + f.getUTCFullYear() ;

  var dateHasta = toDate(hasta);
  var dateHasta = $.datepicker.formatDate('MM dd, yy', new Date(dateHasta));

  var f = new Date(Date.parse(dateHasta));
  var meses = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
  dateHasta = meses[f.getUTCMonth()] + " " + f.getUTCDate() + ", " + f.getUTCFullYear() ;

  vLabel = dateDesde + ' - ' + dateHasta;
  var xxx = '<div class="taglab alert  alert-dismissible"><button name="filtroFecha" data-desde="'+desde+'" data-hasta="'+hasta+'" type="button" style="color: #3c4256 !important;" class="close" data-dismiss="alert" aria-hidden="true">×</button>'+vLabel+'</div>';
  $('#conteFiltroPeriodo').append(xxx);
}

function filtroPeriodos() {
  jsonPeriodos = [];
  $("[name=filtroFecha]").each(function (index) { 
      var id = index;
      //var dgr = $(this).val();
      item = {}
      item["id"] = id;
      item["desde"] = $(this).data('desde');
      item["hasta"] = $(this).data('hasta');

      jsonPeriodos.push(item);
    });  
  return JSON.stringify(jsonPeriodos);
}

