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

Cruzeiro

Novo diretor já chega ao Cruzeiro pressionado por críticas e polêmicas

Antes mesmo de ser oficializado, Rodrigo Pastana já chegou com rejeição da torcida no Cruzeiro - Divulgação/Cruzeiro
Antes mesmo de ser oficializado, Rodrigo Pastana já chegou com rejeição da torcida no Cruzeiro Imagem: Divulgação/Cruzeiro

Do UOL, em Belo Horizonte

07/06/2021 04h00

Horas antes de o Cruzeiro ser derrotado para o CRB, o clube oficializou Rodrigo Pastana como novo diretor de futebol. Ele será o homem forte do departamento depois que André Mazzuco deixou o clube e foi para o Santos. Antes mesmo de ser anunciado, Pastana já precisou começar a lidar com críticas de torcedores, que agora se somam aos resultados ruins como mais um problema a ser resolvido pelo cartola.

No último sábado, um grupo de cerca de 50 pessoas foi à porta da Toca da Raposa para protestar contra a contratação do agora ex-diretor do CSA. Nas redes sociais, a campanha #PastanaNão também chegou a ser utilizada por torcedores do Cruzeiro. A rejeição já chegou ao conhecimento de Pastana, que agora pede um voto de confiança para conquistar o o com a Raposa.

"Eu tomei conhecimento [da manifestação na Toca II] e vejo com total respeito. É mais uma responsabilidade que tenho com a nação azul de me empenhar cada vez mais e mudar esse índice de rejeição. Torço para que, abraçados, no fim da Série B, a gente mude essa rejeição considerável que estou tendo. Estou ciente sim da rejeição e dos protestos", disse o diretor, no Mineirão.

Parte dessa rejeição precoce da torcida do Cruzeiro é explicada pelas polêmicas envolvendo o nome de Rodrigo Pastana. O diretor foi questionado sobre os assuntos e deu suas explicações. Veja algumas delas:

Grêmio Barueri

Em 2012, Pastana estava no Grêmio Barueri quando foi acusado de improbidade istrativa pelo Ministério Público de São Paulo. "Isso vem de um convênio que o Barueri tinha com a Prefeitura de Barueri. Eu nunca fui funcionário público. Eu era sócio minoritário do clube. Fomos absolvidos do processo em 2018. Desse processo já fomos absolvidos", disse.

Áudio vazado de Argel Fucks

No ano ado, quando foi demitido do CSA, o técnico Argel Fucks teve áudios vazados em que acusava Pastana de ser "o maior pilantra do futebol". O diretor também comentou sobre o assunto: "Sobre as acusações, todo mundo que me conhece sabe que são totalmente infundadas. Ele vai responder na Justiça por tudo que falou. Agora, uma coisa que nos deixa indignados no Brasil é que quem acusa não precisa provar. Quem se defende que precisa provar. Eu prefiro não comentar mais sobre isso", falou.

Protestos de outras torcidas

Pastana também comentou sobre episódios relembrados por torcedores do Cruzeiro em que o diretor também foi alvo de protestos em clubes como Paraná, Coritiba, ABC e Figueirense. Ele se defendeu dizendo que apesar das manifestações o objetivo do o para o Campeonato Brasileiro foi atingido nesses clubes.

"Existiram manifestações, mas sobre os quatro clubes, em três deles eu tive os. Figueirense, Paraná e Coritiba. Foram fatos isolados que aconteceram. No ABC, talvez não tenha feito grande trabalho no início de 2015. Mas logo em seguida fui contratado pelo Ceará e conseguimos fazer, com uma campanha quase de o, que o Ceará não fosse rebaixado", encerrou.

Novo desafio no Cruzeiro

Agora, além de lidar com os problemas fora de campo e com a rejeição da torcida, Rodrigo Pastana terá que trabalhar para tentar ter no Cruzeiro o mesmo sucesso que conseguiu em outras equipes pelas quais já ou. Apesar de ainda jogar a Copa do Brasil, a Raposa tem como prioridade voltar à elite do Brasileirão.

Para isso, precisa reagir o quanto antes na Série B. Após duas, o Cruzeiro figura na zona de rebaixamento da competição, com duas derrotas.

Cruzeiro