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

Caso Robinho acirra rivalidade interna entre Casagrande e Caio na Globo

Caio Ribeiro e Casagrande no "Bem, Amigos!", do Sportv - Reprodução/SporTV
Caio Ribeiro e Casagrande no "Bem, Amigos!", do Sportv Imagem: Reprodução/SporTV

Gabriel Vaquer

Colaboração para o UOL, em Aracaju

18/10/2020 04h00

A discussão que gerou o caso Robinho ressuscitou uma disputa que estava adormecida entre os comentaristas Caio Ribeiro e Walter Casagrande Jr na Globo. Novamente por opiniões manifestadas opostas sobre o assunto, a emissora se dividiu. Alguns profissionais pediram esclarecimentos e ações para os superiores. A chefia de esporte da emissora precisou acalmar ânimos e explicar que cada um tem seu espaço.

Segundo apurou a reportagem do UOL Esporte, diversos nomes do Esporte da Globo não gostaram do que Caio falou durante sua participação no programa "Tá na Área", do Sportv, na última sexta. Ele foi acusado de relativizar a situação do ex-atacante do Santos, condenado em primeira instância na Itália por estupro contra uma jovem de origem albanesa.

"A gente tem que tomar cuidado até ter todas as informações e até a Justiça, que tem tudo isso, decretar que ele é culpado ou inocente. Se ele for culpado, não é porque ele é um ídolo ou jogou muito... Tem que ser punido como qualquer pessoa, porque estupro é uma coisa muito grave. Sou pai de uma menina e não imagino o que eu faria se alguém encostasse um dedo na minha filha. Mas acho que todo mundo merece o benefício da dúvida. A gente não tem todas as informações, então vamos esperar. Quem tem que julgar é a Justiça. Isso é a primeira coisa e a minha forma de analisar os fatos", afirmou Caio.

As reclamações vieram principalmente das mulheres da redação do esporte da Globo, já que existe a condenação em primeira instância. Além disso, foi uma reportagem do site "Globoesporte.com" com informações sobre o processo que aumentou a pressão que resultou na suspensão do contrato do jogador com o Santos.

Algumas pessoas citaram, inclusive, que não é a primeira vez que Caio Ribeiro fala algo que prejudica a imagem da cobertura da emissora em casos delicados.

No lado oposto, a opinião de Casagrande no "Globo Esporte SP", também na última sexta (16), viralizou positivamente. No programa, Casagrande se mostrou indignado com a situação e disse que não dá para achar "qualquer sacanagem normal". Casagrande recebeu parabéns do público e de muitos colegas de Globo, diferentemente de Caio Ribeiro.

"Eu estou assustado com a sociedade brasileira. Não é o apedrejamento do Robinho, é o apedrejamento da moral da sociedade brasileiro. Não podem se inverter os valores. O Robinho está condenado a nove anos de prisão por violência sexual na Itália. Recorreu, mas, neste momento, é condenado. Eu fico assustado com o que acontece no Brasil", disse Casagrande.

Os chefes da Globo defenderam a pluralidade de opiniões da emissora. Na visão deles, se Casagrande pode falar o que quiser, Caio Ribeiro também pode dizer o que entender sobre o assunto. Para a emissora, é essa pluralidade de opiniões que faz o esporte da Globo ser independente e bem visto pelo público, mesmo que a manifestação do ex-jogador do São Paulo não tenha agradado.

Caio Ribeiro e Casagrande voltarão a trabalhar juntos na próxima segunda-feira no "Bem, Amigos!', do Sportv. O caso Robinho está na pauta de discussão do programa comandado por Galvão Bueno.