function ripple(e) {
  if ($(this).attr('type') != 'submit' || ( e.type == 'submit' && $(this).closest('form')[0].getAttribute('class').indexOf('js-form-no-submit') == -1)) {
    e.preventDefault();
  }
  var
  $this = (e.target.tagName == 'BUTTON') ? $(e.target).css({position: 'relative'}) : $(this),
  element = $(e.target),
  posX = $this.offset().left,
  posY = $this.offset().top,
  containerWidth = $this.width(),
  containerHeight =  $this.height(),
  tamanho = Math.max(containerHeight, containerWidth) * 2,
  x = e.pageX - posX - tamanho / 2,
  y = e.pageY - posY - tamanho / 2,
  $span = $('<span>');

  $(".ftr-ripple").remove();

  $span.addClass('ftr-ripple').css({
    width: tamanho,
    height: tamanho,
    top: y,
    left: x
  });

  $this.append($span);

  $(".ftr-ripple").addClass('active');
  setTimeout(function() {
    $(".ftr-ripple").remove();
    
    if ($this.attr('type') == 'submit') {
      if (typeof $this.closest('form')[0].getAttribute('class') != 'undefined' && $this.closest('form')[0].getAttribute('class').indexOf('js-form-no-submit') == -1) {
        $this.closest('form')[0].submit();
        console.log('submit feito pela função rippleeffect');
      }
    } else if (e.target.tagName == 'BUTTON') {
      // retorna se o clique foi no botão dentro do card de produto para não direcinar para a pagina
      return;
    } else if (typeof element.attr('href') != 'undefined') {
      window.location = element.attr('href');
    } else if (typeof element.closest('a') != 'undefined' && typeof element.closest('a').attr('href') != 'undefined') {
      window.location = element.closest('a').attr('href');
    }
  }, 200);
}

$('.ftr-js-ripple-effect').off('click', ripple);
$('.ftr-js-ripple-effect').on('click', ripple);
