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

Marcel Rizzo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Clubes temem corte imediato de verbas da TV e de torneios se futebol parar

Futebol vai parar? Clubes, CBF e federações tentam evitar - Divulgação CBF
Futebol vai parar? Clubes, CBF e federações tentam evitar Imagem: Divulgação CBF

Colunista do UOL

18/03/2021 04h00

Os clubes pressionam CBF e federações pela não paralisação do futebol com a piora da pandemia porque temem o congelamento do ree de cotas de participação em campeonatos e de parcelas dos contratos de direito de transmissão. Em recente reunião virtual, os cartolas da CBF ouviram que dessa vez será uma "quebradeira geral" se houver corte nesses pagamentos.

Há preocupação em duas frentes: as parcelas de direito de transmissão dos Estaduais, torneio disputado neste momento, e nas cotas de participação em competições como Copa do Brasil, Libertadores e Sul-Americana, que geram depósitos pontuais a cada avanço de fase — e que no ano ado tiveram valores adiantados pelas entidades, mas este ano, se parar, não terá.

Em 2020, a Globo, que na época detinha o direito dos principais Estaduais, congelou o pagamento durante a maior parte da paralisação, que durou de março a junho e julho. Aos poucos foi liberando as parcelas, até os torneios acabarem.

O blog apurou que para 2021 novos acordos de direitos de transmissão assinados para os Estaduais por emissoras e empresas de streaming preveem a "cláusula covid", batizada assim porque coloca no papel que em caso de paralisação por causa da pandemia o ree será interrompido ou diminuído. É o caso, por exemplo, do acordo da TV Record para o Campeonato Carioca.

No ano ado, os clubes demoraram mais a receber cotas por desempenho em campeonatos com as paralisações e o aperto no calendário. A Copa do Brasil, que normalmente termina em setembro, quando todos os clubes já receberam tudo e que para o campeão rende mais de R$ 50 milhões, em 2020 só acabou em março de 2021, ou seja, seis meses depois do que o usual, o que atrasou em meio ano o pagamento de toda a quantia milionária.

A Conmebol (Confederação Sul-Americana de Futebol) já sinalizou que se tiver que parar a Libertadores e a Sul-Americana não terá como repetir o que fez em 2020 e adiantar cotas. Só na Libertadores cada clube brasileiro que estava na fase de grupos recebeu US$ 2 milhões antecipado do torneio que parou em março e só voltou em setembro. Houve queda significativa nas receitas da confederação no ano ado principalmente pelo adiamento da Copa América e finais únicas da Libertadores e Sul-Americana sem público.

Por isso, como mostrou o blog, foi feito um pacto entre clubes e entidades para só parar os campeonatos se os governos mandassem, que é o que acontece em alguns lugares, como São Paulo. A Conmebol pretende levar seus torneios até o limite e se times brasileiros não puderem atuar no Brasil, os jogos serão transferidos para o Paraguai. A CBF tem mudado, as vezes mais de uma vez, os locais de partidas da Copa do Brasil de Estados fechados para Estados abertos. Só não se sabe até quando isso poderá ser feito.