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

Fluminense

Flu busca contornar ações enquanto visa equilibrar finanças na pandemia

Presidente Mario Bittencourt na apresentação de Fred no Fluminense - Lucas Merçon/Fluminense FC
Presidente Mario Bittencourt na apresentação de Fred no Fluminense Imagem: Lucas Merçon/Fluminense FC

Do UOL, no Rio de Janeiro (RJ)

21/07/2020 04h00

Em meio aos obstáculos financeiros impostos pela pandemia de coronavírus, o Fluminense tenta também superar questões judiciais às quais foi alvo nos últimos dias. Apesar de uma issão que as ações atrapalham um pouco o planejamento, a diretoria trabalha para diminuir ao máximo tais impactos.

Internamente, o clube busca realizar um monitoramento para que se tenha um controle que permita ter ideia dos riscos iminentes. Mesmo que as penhoras não sejam previsíveis, elas entram em uma lista de contingência que fazem parte do dia a dia.

Até por isso, mesmo que a situação gere certos lamentos, entende-se que é contornável. A ideia que vem sendo implantada é a de, com esse monitoramento, se antecipar e buscar o diálogo antes de a "bomba estourar".

Recentemente, o Fluminense teve cerca de R$ 8 milhões penhorados em ação da Caixa - em dívida que havia sido parcelada em 2016, mas que teve o acordo rescindido em 2019. Além disso, foi condenado a pagar R$ 3,7 milhões à Unimed devido à venda de Jean ao Palmeiras, em negociação que aconteceu em 2016.

Os ex-jogadores do Tricolor Mateus Norton, que atuou entre 2015 e 2018, e Mateus Gonçalves, que jogou em 2018, também acionaram a Justiça cobrando salários atrasados. As ações giram em torno de R$ 1,3 milhão.

Durante a pandemia, o clube das Laranjeiras sofreu perdas financeiras e renegociou os salários junto ao elenco e funcionários. Em contrapartida, procurou novas fontes de receitas e meios de auxiliar servidores tricolores.

Diretoria quita parte dos direitos de imagem

A cúpula pagou, ontem (20), 50% dos direitos de imagem referente ao mês de fevereiro. Desta forma, está em aberto o pagamento dos direitos de imagem de janeiro, maio e junho, além da outra metade de fevereiro. No caso de maio e junho, também há o atraso dos valores anotados em carteira.

A informação foi divulgada, primeiramente, pela Rádio Globo e confirmada pelo UOL Esporte. Pelo acordo feito com o elenco no decorrer da pandemia, o que estava em atraso anteriormente à paralisação será parcelado até o final do ano.

Há a intenção de quitar o salário de maio até o final da próxima semana.

Fluminense