function getFavoritos() {
  $.ajax({
    url: 'favoritos.php',
    type: 'POST',
    data: {xOpcion: $('#grupo').val(),
           xConsulta: $('#xConsulta option:selected').text()},
    dataType: "text", 
    cache: false,
    success: function (xResponse) {
      $('#conteFavoritos').html(xResponse);
      $('#listaUsuarios').select2();
      $('#tipoAtajo').on("change", function (e) { 
        $('#listaUsuarios').val(null).trigger('change');
        if ($(this).val() != 2) {
          $('#lblUsuarios').hide();
        }
        else {
          $('#lblUsuarios').show();
        }
      });
      $(function () {
        $('[name=xOpcFavorito],[name=xOpcAutomatico],[name=xOpcPublico]').iCheck({
          checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%' // optional
        });
      });
      //reviso todos los checks y veo si sus componentes tienen valores y si no tienen los deshabilito
      $('[name=xOpcFavorito]').each(function(i, item) {
        switch ($(this).data('modo')) {
          case 1:
            xFiltro = armarFavoritosPeriodo($(this).data('componente'));
          break;
          case 2:
            xFiltro = armarFavoritosPeriodo($(this).data('componente'));
          break;
          case 3:
            xFiltro = $.trim($($(this).data('componente')).val());
          break;
          case 4:
            xFiltro = '';
            if ($('#ModuloMesasChk').is(':checked')) {
              xFiltro += '1'; 
            }
            else {
              xFiltro += '0'; 
            }
            if ($('#ModuloMostradorChk').is(':checked')) {
              xFiltro += ',1'; 
            }  
            else {
              xFiltro += ',0';
            }
            if ($('#ModuloDeliveryChk').is(':checked')) {
              xFiltro += ',1';  
            }
            else {
              xFiltro += ',0';
            }
          break;
          case 5:
            xFiltro = $.trim($($(this).data('componente')).val());
          break;
          case 6:
            if ($('#SaldoCero').is(':checked')) {
              xFiltro = '1'; 
            }
            else {
              xFiltro = '0'; 
            }
          break;
          case 7: 
            xFiltro = $.trim($($(this).data('componente')).val());
          break;
          case 8: 
            xFiltro = $.trim($($(this).data('componente')).val());
          break;
        }
        if (($.trim(xFiltro) == '') || ($.trim(xFiltro) == -1)) {
          $(this).iCheck('disable'); //To uncheck the radio button
        }
        else {
          $(this).iCheck('enable'); //To check the radio button
          $(this).iCheck('check'); //To check the radio button
        }
        $(this).iCheck('update');

        //alert( $(this).data('componente') + ' - ' +  xFiltro );

      });

      $("#xListaFavoritos").change(function() {
        if ($(this).val() == -1) {
          $('#xNombreFavorito').val('');
          $('#tipoAtajo').val(-1);
          $('#listaUsuarios').val(null).trigger('change');
          $('#lblUsuarios').hide();
        }
        else {
          $('#xNombreFavorito').val($("#xListaFavoritos option:selected").data('nombre'));
          //tengo que poner el selected correcto en tipoAtajo y dependiendo si es tipo 2 cargar los usuarios
          $('#tipoAtajo').val($("#xListaFavoritos option:selected").data('publico'));
          if ($("#xListaFavoritos option:selected").data('publico') == 2) {
            $('#lblUsuarios').show();
            $.ajax({
              url: 'get-usuarios-atajo.php',
              type: 'POST',
              data: {xAtajo: $(this).val(),
                     sid: Math.random()},
              dataType: "text",
              cache: false,
              timeout: 2*60*60*1000, 
              success: function (yResponse) {
                aux = yResponse.split(",");
                $('#listaUsuarios').val(aux).trigger('change');
              },
              error: function(xhr, status, error) {
                $.alert(xhr.responseText);
              }
            })
          }
        }
      });
    
      $('#favoritos_modal').modal('show');
    },
    error: function(xhr, status, error) {
      alert(error);
    }
  })
}

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

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

restaFechas = function(f1,f2) {
  var aFecha1 = f1.split('/'); 
  var aFecha2 = f2.split('/'); 
  var fFecha1 = Date.UTC(aFecha1[2],aFecha1[1]-1,aFecha1[0]); 
  var fFecha2 = Date.UTC(aFecha2[2],aFecha2[1]-1,aFecha2[0]); 
  var dif = fFecha2 - fFecha1;
  var dias = Math.floor(dif / (1000 * 60 * 60 * 24)); 
  return dias;
}

function armarFavoritosPeriodo(vObjeto) {
  resu = '';
  nexo = '';
  $(vObjeto).each(function (index) { 
    aux1 = restaFechas($(this).data('desde'), toDay());
    aux2 = restaFechas($(this).data('hasta'), toDay());

    resu = resu + nexo + aux1 + ';' + aux2;

    nexo = ',';
  });  
  return resu;
}


$('.FavSelect').select2({
  theme: "classic",
  placeholder: "Select a state",
  containerCssClass: "FavContainer"
});


function controlarFavoritos() {
  resu = true;
  if (($('#xListaFavoritos').val() == -1) && ($.trim($('#xNombreFavorito').val()) == '')) {
    resu = false;
    $.alert('Debe ingresar el nombre del atajo');
    $('#xNombreFavorito').focus();
  }

  if (resu) {
    if ($("[name=xOpcFavorito]:checked").length == 0) {
      resu = false;
      $.alert('Debe seleccionar al menos un filtro.');
    }
  }

  return resu;
}

function guardarFavoritos() {
  if (!controlarFavoritos()) {
    return false;
  }

  //recorro los check para obtener el filtro de cada uno de los marcados
  xFiltro = '';
  jsonFavoritos = [];
  $("[name=xOpcFavorito]").each(function(i, item) {

    if ($(this).is(':checked')) {
      xIdInfo = $(this).data('id');
      switch ($(this).data('modo')) {
        case 1:
          xFiltro = armarFavoritosPeriodo($(this).data('componente'));
        break;
        case 2:
          xFiltro = armarFavoritosPeriodo($(this).data('componente'));
        break;
        case 3:
          xFiltro = $.trim($($(this).data('componente')).val());
        break;
        case 4:
          xFiltro = '';
          if ($('#ModuloMesasChk').is(':checked')) {
            xFiltro += '1'; 
          }
          else {
            xFiltro += '0';
          }
          if ($('#ModuloMostradorChk').is(':checked')) {
            xFiltro += ',1'; 
          }  
          else {
            xFiltro += ',0';
          }
          if ($('#ModuloDeliveryChk').is(':checked')) {
            xFiltro += ',1';  
          }
          else {
            xFiltro += ',0';
          }
        break;
        case 5:
          xFiltro = $.trim($($(this).data('componente')).val());
        break;
        case 6:
          if ($('#SaldoCero').is(':checked')) {
            xFiltro = '1'; 
          }
          else {
            xFiltro = '0';
          }
        break;
        case 7:
          xFiltro = $.trim($($(this).data('componente')).val());
        break;
      }

      item = {}
      item["id"] = xIdInfo;
      item["valor"] = xFiltro;

      jsonFavoritos.push(item);
    }

  });
  stringFavoritos = JSON.stringify(jsonFavoritos);

  if ($('#xOpcAutomatico').is(':checked')) {auxAuto = 1;}else{auxAuto = 0;}

  $.ajax({
    url: 'ajax-guardar-favorito.php',
    type: 'POST',
    data: {xPantalla: $('#grupo').val(),
           xConsulta: $('#xConsulta').val(),
           xFavorito: $('#xListaFavoritos').val(),
           xNombre: $.trim($('#xNombreFavorito').val()),
           xDetalle: stringFavoritos,
           xAutomatico: auxAuto,
           xPublico: $('#tipoAtajo').val(),
           xUsuarios: $.trim($('#listaUsuarios').val()),
          },
    dataType: 'json',
    success: function (xResponse) {
      if (xResponse['success']) {
        $('#favoritos_modal').modal('hide');
        $.alert('Favorito guardado. '+xResponse['message']);
      }
      else {
        alert(xResponse['message']);
      }
    },
    error: function (xhr, ajaxOptions, thrownError) {
      alert(xhr.status);
      alert(thrownError);
      return false;
    }
  })
}

function cargarFavorito(xAtajo, xDestino) {
  $('#xAuxAtajo').val(xAtajo);
  $('#frmFavoritos').attr('action', xDestino);
  $('#frmFavoritos').submit();
}

$('#btnLimpiarTodo').on('click', function () {
  $.confirm({
    title: 'Confirmar',
    content: '¿Elimina todos los filtros cargados?',
    buttons: {
      Si: function () {
        $('*[data-clear="1"]').each(function(i, item) {
          $(item).val(null).trigger('change');
        });

        $('*[data-clear="2"]').each(function(i, item) {
          $(item).tagsinput('removeAll');
        });

        $('*[data-clear="3"]').each(function(i, item) {
          $(item).html('');
        });

        $('*[data-clear="4"]').each(function(i, item) {
          $(item).val('');
        });

        $('*[data-clear="5"]').each(function(i, item) {
          $(item).val('-1');
        });
      },
      no: function () {
        //$.alert('Cancelado!');
      },
    }
  });
});

$('#btnSalir').on('click', function () {
  $.ajax({
    url: 'ajax-logout.php',
    type: 'POST',
    data: {},
    dataType: 'json',
    success: function (xResponse) {
      if (xResponse['success']) {
        $(location).attr('href', 'login.php');
      }
      else {
        alert(xResponse['message']);
      }
    },
    error: function (xhr, ajaxOptions, thrownError) {
      alert(xhr.status);
      alert(thrownError);
      return false;
    }
  })

});

$(function () {
  $('input').iCheck({
    checkboxClass: 'icheckbox_square-blue',
    radioClass: 'iradio_square-blue',
    increaseArea: '20%' // optional
  });
});

    

$('#xFavoritos').on('change', function() { 
  cargarFavorito($(this).val(), $(this).find("option:selected").data('destino'));
});

function cargarFavoritosIndex() {
  $.ajax({
    url: 'get-favoritos-index.php',
    type: 'POST',
    data: {sid: Math.random()},
    dataType: "json",
    cache: false,
    timeout: 2*60*60*1000, 
    success: function (xResponse) {
      if (xResponse['success']) {
        $('#conteIndex').html(xResponse['message']);

        $('[name=linkAtajo]').click(function(e) { 
          cargarFavorito($(this).data('atajo'), $(this).data('destino'));
        });
        $('[name=linkDelAtajo]').click(function(e) { 
          eliminarFavorito($(this).data('atajo'));
        });
        $('[name=linkModAtajo]').click(function(e) { 
          modificarFavorito($(this).data('atajo'));
        });
        $('[name=linkUsrAtajo]').click(function(e) { 
          transferirFavorito($(this).data('atajo'));
        });
      }
      else {
        $.alert(xResponse['message']); 
      }
    },
    error: function(xhr, status, error) {
      $.alert(xhr.responseText);
      alert(xhr); 
      alert(status);
      alert(error);
    }
  })
}

function cargarFavoritosMenu() {
  $.ajax({
    url: 'get-favoritos-menu.php',
    type: 'POST',
    data: {sid: Math.random()},
    dataType: "json",
    cache: false,
    timeout: 2*60*60*1000, 
    async: false,
    success: function (xResponse) {
      if (xResponse['success']) {
        $('#conteFavoritosMenu').html(xResponse['message']);
      }
      else {
        $.alert(xResponse['message']); 
      }
    },
    error: function(xhr, status, error) {
      $.alert(xhr.responseText);
      alert(xhr); 
      alert(status);
      alert(error);
    }
  })
}

function eliminarFavorito(xAtajo) {
  $.confirm({
    title: 'Confirmar',
    content: '¿Elimina la eliminación del atajo?',
    buttons: {
      Si: function () {
        doEliminarFavorito(xAtajo);
      },
      no: function () {
        //$.alert('Cancelado!');
      },
    }
  });
}

function doEliminarFavorito(xAtajo) {
  $.ajax({
    url: 'ajax-eliminar-favorito.php',
    type: 'POST',
    data: {xAtajo: xAtajo,
           sid: Math.random()},
    dataType: "json",
    cache: false,
    timeout: 2*60*60*1000, 
    success: function (xResponse) {
      if (xResponse['success']) {
        //cargarFavoritosIndex();
        location.reload();
      }
      else {
        $.alert(xResponse['message']); 
      }
    },
    error: function(xhr, status, error) {
      $.alert(xhr.responseText);
      alert(xhr); 
      alert(status);
      alert(error);
    }
  })
}

function modificarFavorito(xAtajo) {
  $.ajax({ 
    url: 'modificar-favorito.php',
    type: 'POST',
    data: {xAtajo: xAtajo},
    dataType: "text",
    cache: false,
    success: function (xResponse) {
      $('#conteFavoritos').html(xResponse);
      $('#listaUsuarios').select2();

      $('#tipoAtajo').on("change", function (e) { 
        $('#listaUsuarios').val(null).trigger('change');
        if ($(this).val() != 2) {
          $('#lblUsuarios').hide();
        }
        else {
          $('#lblUsuarios').show();
        }
      });

      $('#modificar_modal').modal('show');

      $('#modificar_modal').on('shown.bs.modal', function() {   
        $.ajax({
          url: 'get-usuarios-atajo.php',
          type: 'POST',
          data: {xAtajo: xAtajo,
                 sid: Math.random()},
          dataType: "text",
          cache: false,
          timeout: 2*60*60*1000, 
          success: function (yResponse) {
            aux = yResponse.split(",");
            $('#listaUsuarios').val(aux).trigger('change');
          },
          error: function(xhr, status, error) {
            $.alert(xhr.responseText);
          }
        })
      })

      $('#btnAceptarModificarNombre').on('click', function () {
        $.ajax({
          url: 'ajax-modificar-favorito.php',
          type: 'POST',
          data: {xAtajo: xAtajo,
                 xNombre: $('#nombreFavorito').val(),
                 xPublico: $('#tipoAtajo').val(),
                 xUsuarios: $.trim($('#listaUsuarios').val()),
                 sid: Math.random()},
          dataType: "json",
          cache: false,
          timeout: 2*60*60*1000, 
          success: function (xResponse) {
            if (xResponse['success']) {
              $('#modificar_modal').modal('hide');
              cargarFavoritosIndex();
              //location.reload();
            }
            else {
              $.alert(xResponse['message']); 
            }
          },
          error: function(xhr, status, error) {
            $.alert(xhr.responseText);
          }
        })
      });
      $('#modificar_modal').on('shown.bs.modal', function() {
        $('#nombreFavorito').focus();
        $('#nombreFavorito').select();
      })      
    },
    error: function(xhr, status, error) {
      alert(error);
    }
  });
}

function transferirFavorito(xAtajo) {
  $.ajax({
    url: 'transferir-favorito.php',
    type: 'POST',
    data: {xAtajo: xAtajo},
    dataType: "text",
    cache: false,
    success: function (xResponse) {
      $('#conteFavoritos').html(xResponse);
      $('#xSelUsuario').select2({
        maximumSelectionLength: 1
      });
      
      $('#transferir_modal').modal('show');
      $('#btnAceptarTransferir').on('click', function () {
        if ($('#xSelUsuario').val() != '') {
          $.ajax({
            url: 'ajax-transferir-favorito.php',
            type: 'POST',
            data: {xAtajo: xAtajo,
                   xUsuario: $('#xSelUsuario').val(),
                   sid: Math.random()},
            dataType: "json",
            cache: false,
            timeout: 2*60*60*1000, 
            success: function (xResponse) {
              if (xResponse['success']) {
                $('#transferir_modal').modal('hide');
                location.reload();
                //cargarFavoritosIndex();
              }
              else {
                $.alert(xResponse['message']); 
              }
            },
            error: function(xhr, status, error) {
              $.alert(xhr.responseText);
            }
          })
        }
      });
      $('#transferir_modal').on('shown.bs.modal', function() {
        $('#xSelUsuario').focus();
      })      
    },
    error: function(xhr, status, error) {
      alert(error);
    }
  });
}

function cambiarPass() {
  $('#pass_modal').modal();
  $('#pass_modal').on('shown.bs.modal', function() {
    $('#xVieja').focus();
    $('#xVieja').keypress(function(e) {
      if(e.which == 13) {
        if ($.trim($('#xVieja').val()) == '') {
          $.alert({
            title: false,
            content: 'Debe ingresar la contraseña actual.',
            onDestroy: function () { 
              $('#xVieja').focus();
            }
          });
        }
        else {
          $('#xNueva').focus();
        }
      }
    });
    $('#xNueva').keypress(function(e) {
      if(e.which == 13) {
        if ($.trim($('#xNueva').val()) == '') {
          $.alert({
            title: false,
            content: 'Debe ingresar la nueva contraseña.',
            onDestroy: function () { 
              $('#xNueva').focus();
            }
          });
        }
        else {
          $('#xConfirma').focus();
        }
      }
    });
    $('#xConfirma').keypress(function(e) {
      if(e.which == 13) {
        doCambiarPass();
      }
    });
  });      
}

function doCambiarPass() {
  seguir = true;
  if ($.trim($('#xVieja').val()) == '') {
    $.alert({
      title: false,
      content: 'Debe ingresar la contraseña actual.',
      onDestroy: function () {
        $('#xVieja').val('');
        $('#xNueva').val('');
        $('#xConfirma').val('');
        $('#xVieja').focus();
      }
    });
    seguir = false;
  }

  if (seguir && ($.trim($('#xNueva').val()) == '')) {
    $.alert({
      title: false,
      content: 'Debe ingresar la nueva contraseña.',
      onDestroy: function () {
        $('#xVieja').val('');
        $('#xNueva').val('');
        $('#xConfirma').val('');
        $('#xVieja').focus();
      }
    });
    seguir = false;
  }

  if (seguir && ($.trim($('#xNueva').val()) != $.trim($('#xConfirma').val()))) {
    $.alert({
      title: false,
      content: 'La nueva contraseña no coincide con su confirmación.',
      onDestroy: function () {
        $('#xVieja').val('');
        $('#xNueva').val('');
        $('#xConfirma').val('');
        $('#xVieja').focus();
      }
    });
    seguir = false;
  }

  if (!seguir) {
  }
  else {
    $.ajax({
      url: 'ajax-cambiar-pass.php',
      type: 'POST',
      data: {xVieja:$("#xVieja").val(), 
             xNueva:$("#xNueva").val(),
             sid: Math.random()},
      dataType: 'json',
      async: false, 
      success: function (xResponse) {
        if (xResponse['success']) {
          $.alert({
            title: false,
            content: 'La contraseña fue modificada.',
            onDestroy: function () {
              $('#pass_modal').modal('hide');
            }
          });
        }
        else {
          $.alert({
            title: false,
            content: xResponse['message'],
            onDestroy: function () {
              $('#xVieja').val('');
              $('#xNueva').val('');
              $('#xConfirma').val('');
              $('#xVieja').focus();
            }
          });
        }
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.responseText);
        return false;
      }
    })
  }
}