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

Após pior resultado nas urnas, Marcelinho Carioca desiste da política

reprodução/Instagram/Marcelinho Carioca
Imagem: reprodução/Instagram/Marcelinho Carioca

Arthur Sandes e Vanderlei Lima

Do UOL, em São Paulo

16/11/2020 20h05

Após sofrer a sexta derrota consecutiva das urnas, Marcelinho Carioca diz ter desistido de disputar eleições. O ex-jogador foi candidato a vereador pelo PSL na cidade de São Paulo, recebeu 7.574 votos e não foi eleito. Agora afirma estar cansado das tentativas.

"Vou cuidar das minhas coisas particulares, das minhas empresas, voltar ao meu programa de rádio. Política, chega. Eu já falei isso outras vezes, mas nestas eleições eu nem sequer iria disputar, só fui chamado de última hora", diz o ex-jogador em entrevista ao UOL Esporte. Diante da insistência da pergunta, ele é taxativo. "Esquece, esquece. Vou cuidar dos meus negócios e de minha vida privada; esquece a vida política."

Marcelinho tenta um cargo eletivo desde 2010, ora como deputado, ora como vereador da capital. Seu melhor desempenho foi justamente há dez anos, quando teve 62.399 votos pelo PSB e foi suplente de Márcio França na Câmara dos Deputados, em Brasília. Na eleição deste ano o ex-jogador obteve seu pior resultado, sendo o terceiro mais votado do PSL, que só elegeu um vereador em São Paulo.

"Em São Paulo eu tenho de 10 a 15 mil votos. Se eu fizesse 14,4 mil, estaria eleito", calcula Marcelinho, que em 2016 recebeu 12.602 votos. Ele culpa a invisibilidade pela derrota deste ano e entende que teria conseguido vencer se tivesse mais espaço na campanha eleitoral do PSL.

Entre a primeira candidatura e a mais recente, Marcelinho ou por cinco partidos e por todo o espectro político. Esteve no PSB, no PT, no PRB e no Podemos antes de filiar ao PSL. Ele se sente usado pelas legendas, que estariam interessadas apenas em sua imagem.

"Todas essas vezes [eu fui usado], só que eu me qualifiquei para ser candidato, é diferente. Eu sou letrado, nunca fui por ideologia de partido. Sempre acreditei no que me falaram, mas todos os que eu ei, todos, falaram coisas e não cumpriram", reclama.

Em julho Marcelinho Carioca apareceu em vídeo ao lado do presidente Jair Bolsonaro (sem partido), o que dividiu opiniões entre quem lembra com carinho de sua carreira em campo. "Alguns corintianos ficaram chateados com esse negócio, mas torço para a mudança de nosso País. Quem não gostaria de estar com o presidente? E eu não vejo corrupção no governo dele", diz.

O PSL, partido de Marcelinho, está no centro de uma denúncia do Ministério Público sobre um esquema de desvio de verbas públicas nas eleições de 2018, por meio de candidaturas laranjas. Um ano e meio após o indiciamento pela Polícia Federal, o Superior Tribunal Federal (STF) ainda não decidiu se o ministro do Turismo, Marcelo Álvaro Antônio, indicado ao cargo por Bolsonaro, vira réu na investigação.