function fecha(string) {
  let f = formatearFechaUI(string);
  return f ? f : 'Sin fecha';
}

function formatearFechaUI(fechaHora) {
    if (!fechaHora || fechaHora === '0000-00-00' || fechaHora === '0000-00-00 00:00:00') {
        return '';
    }

    const fecha = fechaHora.split(' ')[0];
    const [year, month, day] = fecha.split('-');

    return `${day}/${month}/${year}`;
}

function fechaHora(string) {
  let f = formatearFechaHoraUI(string);
  return f ? f : 'Sin fecha';
}

function formatearFechaHoraUI(fechaHora) {
    if (!fechaHora || fechaHora === '0000-00-00 00:00:00') {
        return '';
    }

    const partes = fechaHora.split(' ');
    const fecha  = partes[0];
    const hora   = partes[1]; // HH:mm:ss

    const [year, month, day] = fecha.split('-');

    if (!hora) {
        return `${day}/${month}/${year}`;
    }

    const [hh, mm, ss] = hora.split(':');

    return `${day}/${month}/${year} ${hh}:${mm}:${ss}`;
}



function isDate(string) {
  if (string == null) {
    return false;
  }

  if (string == '') {
    return false;
  }

  if (string == '0000-00-00') {
    return false;
  }

  if (string == '0000-00-00 00:00:00') {
    return false;
  }

  if (string != null){
    var parts = string.split(' ');
    if(parts[0].split('-').length == 3){
      return true;
    }
  }
  return false;
}

function convertDate(string) {
  if (string != null){
    var date = string.split('-').reverse().join('-');
      return date;
  }
  else {
    return '';
  }
}


function convertDateTime(string) {
  //return string;

  if (string != null){
    var parts = string.split(' ');
    var date = parts[0].split('-').reverse().join('-') + ' ' + parts[1];
      return date;
  }
  else {
    return '';
  }
}

function clp(num) {
  num = num.replace(/[\D\s\._\-]+/g, "");
  return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
}

function normalize(term){
  return term.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}

function normalizeLower(term){
  return term.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
}

// Función Corregida
// Función que permite autocomplete con tildes ordenando resultados por coincidencias inicial
function autocompleteFx(elemento, values){
  elemento.autocomplete({
      source: function (request, response) {
          var term = $.ui.autocomplete.escapeRegex(normalize(request.term))
              , startsWithMatcher = new RegExp("^" + term, "i")
              , startsWith = $.grep(values, function(value) {
                  value = value.label || value.value || value;
                  return startsWithMatcher.test(value) || startsWithMatcher.test(normalize(value));
              })
              , containsMatcher = new RegExp(term, "i")
              , contains = $.grep(values, function (value) {
                  value = value.label || value.value || value;
                  return $.inArray(value, startsWith) < 0 &&
                    (containsMatcher.test(value) || containsMatcher.test(normalize(value)));
              });

          response(startsWith.concat(contains));
      }
  });
}

function autocompleteProducto(elemento){
  let articulo = elemento.parent();
  elemento.autocomplete({
    source: function( request, response ) {
      // Limpia campos relacionados a cliente
      articulo.find('.input-id-producto').val('');
      $.ajax( {
        url: 'productos/ac_nombre',
        dataType: "jsonp",
        data: {
          term: request.term
        },
        success: function( data ) {
          response( data );
        }
      } );
    },
    minLength: 2,
    select: function( event, ui ) {
      articulo.find('.input-producto').val(ui.item.label);
      articulo.find('.input-id-producto').val(ui.item.id);
      articulo.find('.input-ps-id-product').val(ui.item.ps_id);
      $(this).blur();
    }
  });
}

function autocompleteProductoPS(elemento){
  let articulo = elemento.parent().parent().parent();
  //console.log(articulo);
  elemento.autocomplete({
    source: function( request, response ) {
      // Limpia campos relacionados a cliente
      articulo.find('.ps-id').val('');
      $.ajax( {
        url: 'productos/acps_nombre',
        dataType: "jsonp",
        data: {
          term: request.term
        },
        success: function( data ) {
          response( data );
        }
      } );
    },
    minLength: 2,
    select: function( event, ui ) {
      articulo.find('.ps-nombre').val(ui.item.label);
      articulo.find('.ps-id').val(ui.item.ps_id);
      $(this).blur();
    }
  });
}



//busca un valor en un objeto y devuelve su indice
function getKey (object, value) {
  return Object.keys(object).find(key => object[key] == value);
}

// Hace un console.log();
function pr (string) {
  console.log(string);
  return true;
}

function muestra_imagen(imagen, id_imagen) {
  imagen.attr('src', 'https://dementegames.cl/' + id_imagen + '-medium_default/img.jpg');
  imagen.attr('title', '<img src=\'https://dementegames.cl/' + id_imagen + '-medium_default/img.jpg\'>')
  if (!imagen.hasClass('has-tooltip')) {
      imagen.tooltip({
          animated: 'fade',
          placement: 'right',
          html: true
      });
  }
  else{
      imagen.attr('data-original-title', '<img src=\'https://dementegames.cl/' + id_imagen + '-medium_default/img.jpg\'>')
  }
  imagen.addClass('has-tooltip');
}

$(document).on('click', '.ps-id-product', function(){
  //al hacer click en badge ps id debe abrir una nueva pestaña con la url de ps
  var ps_id = $(this).data('ps-id');
  var product_token = $('#psProductToken').val();
  var url = 'https://dementegames.cl/admin161m0dq8h/index.php/product/form/' + ps_id + '?_token=' + product_token;
  window.open(url, '_blank');
});


$(document).ready(function() {
  $('[data-toggle="tooltip"]').tooltip({
    animated: 'fade',
    placement: 'right',
    html: true,
    trigger: 'hover'
  });
  $('.tt').tooltip({
    animated: 'fade',
    placement: 'right',
    html: true,
    trigger: 'hover'
  });
});