;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

'Levo numa boa, não vejo muita graça', diz Thiago Neves sobre 'Fala, Zezé'

Thiago Neves em ação com a camisa do Sport -                                 ALEXANDRE GONDIM/JC IMAGEM
Thiago Neves em ação com a camisa do Sport Imagem: ALEXANDRE GONDIM/JC IMAGEM

Do UOL, em São Pauo

06/04/2021 19h23

Não há quem não se recorde do áudio de Thiago Neves para o então dirigente do Cruzeiro, Zezé Perrella, cobrando salários atrasados antes da partida dos mineiros contra o CSA, no Brasileirão 2019. O clube vivia um momento conturbado que culminou na queda para a Série B, e o meia virou piada - que resiste até hoje - com a mensagem enviada ao então diretor. Dois anos depois, ele diz que não se incomoda, apesar de não ver 'muita graça'.

"Eu levo na boa. Não vejo muita graça, dou risada em algumas coisas. Foi uma bobeira, acho que é mais os atleticanos zoando pela forma que foi, e pelo Cruzeiro ter caído, do que os próprios cruzeirenses", disse, em entrevista ao canal 'Pilhado' no Youtube.

O "Fala Zezé, bom dia cara", marcou. Na mensagem, Thiago Neves pedia para que o clube pagasse aos jogadores uma quantia que faltava para completar os salários antes da partida. Ele diz não saber como a mensagem foi divulgada. Em campo, a Raposa foi derrotada pelo time de Alagoas por 1 a 0, com um pênalti perdido pelo meia.

"Como vazou, eu não sei. Aí eu te pergunto o que eu ganharia vazando o áudio. Eu não mandei o áudio para o meu empresário ou minha mulher, pessoas que eu mais confio, não mandei para ninguém. Por que eu vazaria um áudio de cobrança? Não tem porquê, eu perguntei isso para o Zezé e ele não soube me responder", afirmou.

Thiago esclareceu que as conversas sobre os salários eram corriqueiras entre os líderes do elenco e os dirigentes do clube, e que esse não teria sido "nem o primeiro nem o segundo" áudio.

"O que a gente ficava chateado é que pagavam 30% para os funcionários do clube que ganhavam R$ 1 mil, R$ 2 mil. Pô, dos funcionários? É pouca coisa. Para os funcionários que arrumam o campo, cuidavam da Toca [da Raposa], R$ 100, R$ 200, faz falta. Eles davam data, 'ah na segunda paga', e não pagava. Não pagou na segunda, 'pago na quinta', não pagava também. Foram perdendo a credibilidade. Eles começaram a pagar 30, 40% do salário. Atrasava, e eu comecei a cobrar. Era direto essa cobrança. Mas aquele áudio, logo depois que eu perdi o pênalti, falando do CSA, foi de maldade, não escapou. Vazou às 2h do dia do jogo, que foi às 21h. Não tem explicação", relembrou.

No Sport, o jogador também enfrenta uma fase delicada. Depois de se salvar da queda para a Série B do Brasileirão na última rodada do campeonato, o time foi eliminado na Copa do Brasil e na Copa do Nordeste.