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

Olhar Olímpico

Justiça libera presidente afastado em 2018 para voltar ao poder no handebol

Manoel Luiz Oliveira, presidente da Confederação Brasileira de Handebol - Reprodução
Manoel Luiz Oliveira, presidente da Confederação Brasileira de Handebol Imagem: Reprodução

09/03/2020 20h26

Presidente da Confederação Brasileira de Handebol há mais de 30 anos, Manoel Luiz Oliveira está liberado para voltar ao comando da entidade, após quase dois anos. Nesta segunda-feira (9), o juiz federal Ronivon de Aragão, titular da 2ª Vara de Sergipe, extinguiu a ação popular que havia conseguido o afastamento do dirigente, responsabilizado por desvios de mais de R$ 10 milhões (em valores atuais) do Ministério do Esporte ao realizar o Mundial de Handebol Feminino de 2011 em São Paulo.

A ação popular foi inicialmente protocolada na Justiça Federal de Brasília, uma vez que em Sergipe, terra de Oliveira e então sede da CBHb, o Ministério Público investigava as denúncias em ritmo lento. Em abriu de 2018, o juiz federal Rolando Spanholo defendeu que as irregularidades no uso de recursos federais para a organização do Mundial envolviam verbas do Ministério do Esporte, que fica em Brasília e, portanto, que cabia à Justiça Federal do Distrito Federal julgá-lo. Na ocasião, acatou pedido de liminar e determinou o afastamento imediato de Oliveira.

Como a decisão precisava ser remetida a Sergipe e de lá levada à CBHb, a entidade demorou a ser noticiada e, antes que isso acontecesse, Oliveira pediu afastamento por licença médica. Então seu vice, Ricardo Souza, o alagoano Ricardinho, assumiu e tirou a sede da CBHb de Aracaju e levou para São Bernardo do Campo, em São Paulo. Pressionado por atletas, ele logo rompeu com seu padrinho político e ou a toma as rédeas da confederação.

Em setembro do ano ado, o mesmo Spanholo que havia concedido a liminar mudou de ideia e declarou-se incompetente para julgar esse processo, ando-o para Sergipe. Ali, o juiz responsável acatou argumento da defesa, de que a ação popular não incluía cópias dos títulos eleitorais dos denunciantes, e solicitou que estes apresentassem a documentação

Intimados, os autores, entre eles o presidente da Federação Mineira, Cláudio Humberto Dias, não apresentaram as cópias dos títulos eleitorais exigidas. Aí, na falta de resposta dos autores, o juiz federal de Sergipe indeferiu a petição inicial e extinguiu o processo em resolução do mérito.

Isso significa que Oliveira pode retomar ao comando da CBHb quando bem entender, apesar do expresso desejo dos principais atletas do país para que isso não aconteça. O Brasil já está classificado para a Olimpíada de Tóquio no feminino e tem boas chances de se classificar também no masculino. Disputa um Pré-Olímpico em que, de quatro times, dois se classificam. E dois rivais são, em tese, mais fracos: Chile e Coreia do Sul.