;(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

Novo camisa 10: Santos fecha a contratação de Ricardo Goulart

Ricardo Goulart, durante partida na China - Reprodução/Instagram
Ricardo Goulart, durante partida na China Imagem: Reprodução/Instagram

Lucas Musetti Perazolli

Colaboração para o UOL, em Santos (SP)

09/01/2022 09h30

O Santos fechou a contratação de Ricardo Goulart. O Peixe acertou um vínculo de dois anos. O meia-atacante de 30 anos será o camisa 10. Faltam apenas os exames médicos e a .

A pedida inicial de Goulart foi alta e bem acima do possível para o Santos. Na sequência, porém, o Peixe pensou numa proposta mais complexa para convencer o jogador.

O UOL Esporte apurou que o Santos ofereceu R$ 500 mil de salário fixo, com variáveis em ações de marketing. Ricardo Goulart será o garoto propaganda e receberá parte da venda de tokens, além de ganhar bônus pela comercialização das camisas com seu nome, por exemplo.

Goulart tinha um salário milionário no futebol chinês e aceitou reduzir o valor para jogar no Peixe. Pessoas próximas ao jogador afirmaram que "o projeto foi mais decisivo que dinheiro".

As negociações foram conduzidas pelo executivo de futebol Edu Dracena, com a ajuda do presidente Andres Rueda. O empresário de Goulart é Paulo Pitombeira, que também cuida da carreira do técnico Fabio Carille. Edu tem carta branca da diretoria para contratar dentro do orçamento, mas, por se tratar de uma proposta que envolveu também o departamento de marketing, ele conversou com o Comitê de Gestão.

Dracena argumentou sobre o bom desempenho técnico de Ricardo Goulart ao longo dos últimos anos e mostrou informações positivas sobre a situação física do atleta de 30 anos. Os dirigentes concordaram com a oferta.

Goulart se tornou a prioridade do Santos depois da frustração por Nathan, emprestado pelo Atlético-MG ao Fluminense. O Peixe estava convicto sobre a contratação e chegou a trocar documentos com o Galo.

Ricardo Goulart está sem clube desde novembro, quando rescindiu com o Guanghzou. A última partida dele foi em agosto e ele aproveitará a pré-temporada para se recondicionar fisicamente. Na última temporada, ele fez sete gols em 13 jogos pela Superliga Chinesa. O elenco do Santos se reapresenta no próximo domingo (9).

Ricardo Goulart negociou com o Fluminense recentemente, mas o clube carioca desistiu da contratação no fim de dezembro. A última agem dele no Brasil foi pelo Palmeiras, em 2019. Pelo Cruzeiro, foi bicampeão brasileiro em 2013 e 2014 e chegou a ser convocado para a seleção brasileira.