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

Marina critica quem não acreditava em aliança com Campos

Fernanda Calgaro

Do UOL, em Brasília

14/04/2014 17h24Atualizada em 14/04/2014 21h17

Ao ser anunciada como vice na chapa com o ex-governador Eduardo Campos (PSB), a ex-senadora Marina Silva criticou em seu discurso “aqueles que apostavam que a aliança [com Campos] não ia dar certo”.

“Aqueles que apostavam que a aliança não ia dar certo, a cada semana ouvíamos algo que seria o tiro de misericórdia, a bala de prata, mas, graças a Deus, a confiança que estamos criando entre nós, estamos aqui para anunciar a nossa candidatura à Presidência da República”, afirmou, referindo-se à coligação com Campos como um "casamento de uma tapioca com um açaí", numa referência a comidas tradicionais de seus respectivos Estados.

Ela relembrou do momento em que o registro da Rede foi negado pelo TSE (Tribunal Superior Eleitoral), em outubro do ano ado, e disse que foi um dos episódios em que se sentiu mais "fraca". "Naquele dia em que saí do tribunal, estava mais enfraquecida do que nunca, mas pensei: 'quando sou fraco é que sou forte'. Você é forte quando tem a capacidade de se juntar com outras pessoas", disse.

Marina ressaltou que a coligação ainda está em "formação" e que é "abençoado" aquele que "vive no gerúndio" porque é "livre para questionar e questionar-se.” "Quando perguntarem se já deram certo na aliança programático, vamos responder: “estamos dando certo'”.

A ex-senadora ressaltou que pretende caminhar “lado a lado” com Campos, e não “atrás”. Nascida no Acre, a ex-ministra do Meio Ambiente relembrou o seu ado e disse que a sua experiência de vida na floresta a ensinara a “entrar na mata virgem ao lado do mateiro e não atrás dele".

“Aprendi a não me colocar à frente porque aprendi que, numa mata virgem com animais ferozes, é preciso sempre ir ao lado de um mateiro e não se colocar atrás, mas ao lado”, afirmou. “Estou aqui para me colocar lado a lado com você”, completou, dirigindo-se a Campos.

Disse ainda que sua história não permitiria “jamais trocar o futuro dos brasileiros por qualquer vaidade, (...) qualquer veleidade política”.

O evento para anúncio da chapa do PSB para as eleições foi marcado por poesia e música, além de depoimentos de políticos aliados. 

No entanto, a formação da chapa ainda não é considerada válida de acordo com a lei eleitoral -- juridicamente, a iniciativa do PSB não significa nada, segundo o advogado João Fernando Lopes de Carvalho, especialista em direito eleitoral. "Isso é a criação de um fato político, não tem valor jurídico. Eles só serão candidatos quando forem escolhidos na convenção do partido", afirma Carvalho.

Filiação ao PSB

Em outubro do ano ado, após ter o registro do partido Rede Sustentabilidade negado pelo TSE (Tribunal Superior Eleitoral), a ex-senadora se filiou oficialmente ao PSB, surpreendendo até a seus aliados.

À época, Marina afirmou dar total apoio à candidatura de Eduardo Campos à Presidência. Mas, em várias entrevistas desde então, Marina não deixou claro se seria vice do ex-governador de Pernambuco nas eleições de 2014.

"Muitas vezes me perguntavam se esse era um plano A ou B. Posso dizer que esse é um plano C. O plano C é o Eduardo Campos. Escolhemos por que ele sempre nos apoiou no começo. Tivemos uma carta de apoio dele já quando resolver criar a Rede", disse na ocasião.