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

Marco Aurélio Cunha deixa CBF por foco em eleições do São Paulo em dezembro

Marco Aurélio Cunha deixou o cargo de coordenador de futebol feminino da CBF - Lucas Figueiredo / MoWA Press
Marco Aurélio Cunha deixou o cargo de coordenador de futebol feminino da CBF Imagem: Lucas Figueiredo / MoWA Press

José Eduardo Martins e Pedro Lopes

Do UOL, em São Paulo

02/06/2020 19h48

A Confederação Brasileira de Futebol (CBF) anunciou hoje (2) a saída de Marco Aurélio Cunha da coordenação das seleções brasileiras femininas. A entidade disse que a decisão ocorre em comum acordo entre a CBF e o dirigente. Marco Aurélio deixa o cargo para dedicar-se, sem qualquer conflito, a construir um projeto para participar das eleições do São Paulo em dezembro deste ano.

Na última semana, por exemplo, havia vazado um áudio no grupo de conselheiros do Whatsapp com o pai do presidente da CBF de Rogério Caboclo, Carlos, dando o seu apoio para uma chapa formada por Marco Aurélio e Ópice Blum, para a presidência do Conselho Deliberativo. Tal situação gerou críticas de alguns conselheiros.

"Agora arrumem outra pauta para me atrapalhar. Queria era mostrar decência, ética, e isenção, não estou usando cargo nenhum. Sai para ter liberdade de fazer o que eu penso. Não foi por isso [pelo áudio], o que não queria era o constrangimento de carregar a imagem da CBF com a de uma candidatura. É uma decisão que tenho tomado desde a semana ada", disse Marco Aurélio ao UOL Esporte. .

O dirigente é um potencial pré-candidato à presidência do clube do Morumbi, e tem mantido diálogo com lideranças como o vice-presidente Roberto Natel, o ex-presidente do conselho deliberativo José Carlos Ferreira Alves. O pleito já tem um candidato declarado: Júlio Casares, que comandou o departamento de marketing nas gestões de Juvenal Juvêncio e Carlos Miguel Aidar, e hoje é integrante do Conselho de istração.

Na última sexta-feira, ele já participou de uma reunião com líderes da oposição e outros sócios do clube para falar sobre uma possível candidatura. A convenção da oposição será realizada no fim deste mês, sendo articulada por Newton Ferreira.

Marco Aurélio Cunha ficou cinco anos no cargo. Entre as conquistas, ele esteve ao lado da seleção principal que ganhou a medalha de ouro nos Jogos Pan-Americanos Toronto 2015, além dos títulos do Torneio Internacional de Natal 2015, do Torneio Internacional de Manaus 2016, da Copa CFA da China 2017 e da Copa América do Chile 2018.

"O Marco Aurélio fez um trabalho irável no desenvolvimento do futebol feminino, que hoje é uma prioridade dentro da CBF. Fui testemunha de sua competência, dedicação e do seu comprometimento ao longo desses anos de convivência. Sabemos que o Marco tem outros projetos e entendemos conjuntamente que havia chegado o momento dele sair. Fica o meu agradecimento, com a certeza de que suas qualidades pessoais e profissionais ficarão marcadas na seleção brasileira feminina", disse Rogério Caboclo, presidente da CBF.