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

Ex-juíza e empresário vão concorrer à Prefeitura do Rio

Fábio Grellet

Rio

01/09/2020 08h19

Dois partidos definiram nesta segunda-feira (31) seus candidatos à prefeitura do Rio de Janeiro na eleição que será realizada em 15 de novembro. O Partido Social Cristão (PSC), sigla do governador afastado Wilson Witzel e do interino Cláudio Castro, escolheu a ex-juíza Glória Heloiza Lima da Silva para concorrer ao cargo. O Partido Novo oficializou a candidatura do engenheiro e empresário Fred Luz.

O PSC, partido que até a semana ada era presidido pelo pastor Everaldo Pereira, preso na sexta-feira (28) sob acusação de integrar um esquema de corrupção no governo do Estado do Rio de Janeiro, pretende repetir com Glória Heloiza uma estratégia que deu certo em 2018, na eleição para o governo estadual. Naquela ocasião, Witzel, que também abandonou a carreira de juiz para disputar seu primeiro cargo eletivo, conseguiu superar políticos tradicionais como o ex-prefeito Eduardo Paes (DEM) e o senador Romário (Podemos-RJ) e se elegeu.

Desta vez, no entanto, a estratégia pode ser prejudicada pelas denúncias que envolvem Witzel e o pastor, ambos entusiastas da candidatura da mulher de 51 anos que até janeiro atuava na 2ª Vara da Infância, da Juventude e do Idoso da capital.

Glória Heloiza venceu a disputa interna na Executiva Municipal do PSC com o deputado federal Otoni de Paula, que, embora integre o partido de Witzel, faz estridente oposição ao governador afastado e defende a família Bolsonaro.

Novo

Em convenção virtual, o Partido Novo oficializou a candidatura de Fred Luz para a prefeitura, tendo como candidata a vice a bióloga Giselle Gomes, servidora pública do Instituto Nacional de Propriedade Industrial (INPI) e mestre e doutora em biofísica.

Formado pela PUC-Rio, Luz trabalhou como engenheiro de equipamentos da Petrobras de 1975 a 1980. Depois ou por várias outras empresas, criou o próprio negócio e atuou também na gestão do Flamengo, a partir de 2013. Em 2018 filiou-se ao Partido Novo e integrou a equipe de transição do governador eleito de Minas Gerais, Romeu Zema, do mesmo partido.