//tiene que ser el último js invocado para que este todo cargado
//tengo que ver como detectar los filtros que tiene desponible la pantalla en la que estoy para recupera la info.
$(document).ready(function( $ ) {
  //si al terminar de cargar los períodos verifico si vengo por atajo, si es así busco
  //el los atajos de este tipo para este favorito, y los agrego
  if ($('#xAtajo').val() != -1) {
    $('#conteFiltroPeriodo').html('');
    $('#conteFiltroPeriodoCompras').html('');
    $.ajax({
      url: 'get-detalle-atajo.php',
      type: 'POST',
      data: {xAtajo: $('#xAtajo').val()},
      dataType: "json",
      cache: false,
      success: function (xResponse) {
        $.each(xResponse, function(i, item) {
          //aca hay que recorrer el json y actuar de acuerdo al valor modo 

          switch (item.modo) {
          	case 1:  //Filtro de fechas común
              var str = item.valor;
              aux = str.split(",");

              for(i = 0; i < aux.length; i++) {
                var str = aux[i];
                xx0 = str.split(";");
                v1 = parseInt(xx0[0]) * -1;
                v2 = parseInt(xx0[1]) * -1;

                var d = new Date();
                xx1 = fechaFormateada(sumarDias(d, v1));
                var d = new Date();
                xx2 = fechaFormateada(sumarDias(d, v2));
                agregarPeriodoFiltro(xx1,xx2);
              }
           	break;
            case 2:  //Filtro de fechas compras
              var str = item.valor;
              aux = str.split(",");

              for(i = 0; i < aux.length; i++) {
                var str = aux[i];
                xx0 = str.split(";");
                v1 = parseInt(xx0[0]) * -1;
                v2 = parseInt(xx0[1]) * -1;

                var d = new Date();
                xx1 = fechaFormateada(sumarDias(d, v1));
                var d = new Date();
                xx2 = fechaFormateada(sumarDias(d, v2));
                agregarPeriodoComprasFiltro(xx1,xx2);
              }
            break;
           	case 3: //Componente único con opciones múltiples
              var str = item.valor;
              aux = str.split(",");
              if ($(item.componente).data('tipo') == 1) {
                //con ajax traigo la lista de conceptos precargaos
                $.ajax({
                  url: item.lista,  
                  type: 'POST',
                  data: {xLista: item.valor},
                  dataType: "json",
                  cache: false,
                  async: false,
                  success: function (xResponse) {
                  	$.each(xResponse, function(index, value) {
                      $(item.componente).tagsinput('add', value);
                    });
                  },
                  error: function(xhr, status, error) {
                    alert(xhr.responseText);
                  }
                })
              }
              else {
                $(item.componente).val(aux).trigger('change');
              }
           	break;
            case 4:
              var str = item.valor;
              aux = str.split(",");
              
              var str = item.componente;
              com = str.split(",");

              if (aux[0] == 1) {
                $(com[0]).iCheck('check');
              }
              else {
                $(com[0]).iCheck('uncheck');
              }

              if (aux[1] == 1) {
                $(com[1]).iCheck('check');
              }
              else {
                $(com[1]).iCheck('uncheck');
              }

              if (aux[2] == 1) {
                $(com[2]).iCheck('check');
              }
              else {
                $(com[2]).iCheck('uncheck');
              }
            break;
            case 5:
              $(item.componente).val(item.valor).trigger('change');
            break;
            case 6:
              if (item.valor == 1) {
                $(item.componente).iCheck('check');
              }
              else {
                $(item.componente).iCheck('uncheck');
              }
            break;
            case 7: //Componente único con opciones múltiples 
              var str = item.valor;
              aux = str.split(",");
              if ($(item.componente).data('tipo') == 1) {
                //con ajax traigo la lista de conceptos precargaos
                $.ajax({
                  url: item.lista,  
                  type: 'POST',
                  data: {xLista: item.valor},
                  dataType: "json",
                  cache: false,
                  async: false,
                  success: function (xResponse) {
                    //para cada unidad de negocio verifico si tiene permisos antes de agregarla
                    $.each(xResponse, function(index, value) {
                      $.ajax({
                        url: 'unidad-permitida.php',
                        type: 'POST',
                        data: {xLista: value['value'],
                               sid: Math.random()},
                        dataType: "json",
                        cache: false,
                        timeout: 2*60*60*1000, 
                        success: function (xResponse) {
                          if (xResponse['success']) {
                            $(item.componente).tagsinput('add', value);
                          }
                        },
                        error: function(xhr, status, error) {
                          $.alert(xhr.responseText);
                          alert(xhr); 
                          alert(status);
                          alert(error);
                        }
                      })
                    });
                  },
                  error: function(xhr, status, error) {
                    alert(xhr.responseText);
                  }
                })
              }
              else {
                //$(item.componente).val(aux).trigger('change');

                value = JSON.stringify(aux);
                $.ajax({
                  url: 'unidades-permitidas.php',
                  type: 'POST',
                  data: {xLista: value,
                         sid: Math.random()},
                  dataType: "json",
                  cache: false,
                  timeout: 2*60*60*1000, 
                  success: function (xResponse) {
                    $(item.componente).val(xResponse).trigger('change');
                  },
                  error: function(xhr, status, error) {
                    $.alert(xhr.responseText);
                    alert(xhr); 
                    alert(status);
                    alert(error);
                  }
                })
              }
            break;
            case 8: //Componente único con opciones múltiples 
              var str = item.valor;
              aux = str.split(",");
              if ($(item.componente).data('tipo') == 1) {
                //con ajax traigo la lista de conceptos precargaos
                $.ajax({
                  url: item.lista,  
                  type: 'POST',
                  data: {xLista: item.valor},
                  dataType: "json",
                  cache: false,
                  async: false,
                  success: function (xResponse) {
                    //para cada unidad de negocio verifico si tiene permisos antes de agregarla
                    $.each(xResponse, function(index, value) {
                      $.ajax({
                        url: 'caja-permitida.php',
                        type: 'POST',
                        data: {xLista: value['value'],
                               sid: Math.random()},
                        dataType: "json",
                        cache: false,
                        timeout: 2*60*60*1000, 
                        success: function (xResponse) {
                          if (xResponse['success']) {
                            $(item.componente).tagsinput('add', value);
                          }
                        },
                        error: function(xhr, status, error) {
                          $.alert(xhr.responseText);
                          alert(xhr); 
                          alert(status);
                          alert(error);
                        }
                      })
                    });
                  },
                  error: function(xhr, status, error) {
                    alert(xhr.responseText);
                  }
                })
              }
              else {
                //$(item.componente).val(aux).trigger('change');

                value = JSON.stringify(aux);
                $.ajax({
                  url: 'cajas-permitidas.php',
                  type: 'POST',
                  data: {xLista: value,
                         sid: Math.random()},
                  dataType: "json",
                  cache: false,
                  timeout: 2*60*60*1000, 
                  success: function (xResponse) {
                    $(item.componente).val(xResponse).trigger('change');
                  },
                  error: function(xhr, status, error) {
                    $.alert(xhr.responseText);
                    alert(xhr); 
                    alert(status);
                    alert(error);
                  }
                })
              }
            break;
          }
        });
      },
      error: function(xhr, status, error) {
        alert(error);
      }
    })
  }
});

function sumarDias(fecha, dias){
  fecha.setDate(fecha.getDate() + dias);
  return fecha;
}

function fechaFormateada(day) {
  //var today = new Date();
  var dd = day.getDate();
  var mm = day.getMonth()+1; //January is 0!

  var yyyy = day.getFullYear();
  if(dd<10){
    dd='0'+dd;
  } 
  if(mm<10){
    mm='0'+mm;
  } 
  var day = dd+'/'+mm+'/'+yyyy;
  return day;
}
