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

Charlie Brown Jr. rebate Marcão e Thiago e fala em 'conduta desleal'

Charlie Brown Jr. se pronunciou sobre saída de integrantes - Divulgação
Charlie Brown Jr. se pronunciou sobre saída de integrantes Imagem: Divulgação

Colaboração para Splash, em Alagoas

01/11/2021 11h36

O perfil oficial da banda Charlie Brown Jr. no Instagram se pronunciou sobre a saída dos guitarristas Marcos Britto, o Marcão, e Thiago Castanho, após os dois anunciarem no mês ado que estão fora da turnê de comemoração aos músicos Chorão e Champignon.

Em uma carta endereçada "à família Charlie Brown Jr." compartilhada hoje, eles dizem lamentar a saída de Marcão e Thiago da turnê comemorativa, principalmente pelo fato de o desligamento ter ocorrido "com tantos ataques, mentiras e rumores nas redes sociais".

"A nossa história nunca deixou de ser pautada pelo carinho e pelo respeito a cada um daqueles que integraram as diferentes fases da banda", diz o texto, que deseja "sucesso" aos guitarristas em seus trabalhos pessoais.

No entanto, o comunicado adverte que, independentemente do respeito que a banda nutre pelos ex-integrantes, não será itida "qualquer tentativa de se tomar à força o nome e os projetos do Charlie Brown Jr.", e afirma que "a conduta desleal vista nos últimos dias são o resultado de manobras irresponsáveis incentivadas por pessoas que pretendem valer-se de acusações falsas para iniciar a promoção de um projeto CBJR paralelo, desrespeitando o legado, os direitos e a memória do Chorão", ressaltando que "isso jamais será aceito, seja de quem for".

Por fim, eles agradeceram o apoio dos fãs e pontua que "divulgações não autorizadas sobre celebrações e perfis paralelos não representam o Charlie Brown Jr".

Marcão e Thiago falam em 'ego' ao justificar saída

Marco Britto e Thiago Castanho anunciaram recentemente que estão fora da turnê comemorativa do Charlie Brown Jr., projeto que havia sido anunciado em fevereiro deste ano.

Ao comunicarem a saída da "Tour Chorão 50", os guitarristas afirmaram não participar de nenhum outro projeto tocado por Alexandre Abrão, filho do Chorão, e alegaram falta de transparência na organização do projeto.

"Em fevereiro foi anunciado um projeto em comemoração ao Charlie Brown Jr., ficamos muito felizes de voltar aos palcos, fazendo um som pra galera com nossos irmãos. Mas infelizmente o ego, a vaidade e a ganância falaram mais alto que uma parceria coerente e honesta, fazendo com que a gente tome a decisão de nos desligar da tour anunciada e qualquer outro projeto que esteja vinculado ao Alexandre, filho do Chorão, e suas empresas", disseram os artistas.

Os dois músicos citam "atitudes imaturas e irresponsáveis de quem diz estar a frente do negócio" e afirmam que as transações foram feitas sem o conhecimento deles, inclusive quando se tratava sobre shows.

Na ocasião, os dois anunciaram uma turnê organizada por eles, intitulada "C. Brown JR. - Tour Celebração 30 aos". Para eles, trata-se de uma celebração pelas três décadas de carreira e da banda.

Chorão, ex-líder da banda, morreu em março de 2013, quando tinha 42 anos. O laudo da necropsia apontou que a causa da morte foi overdose de cocaína.

Champignon era baixista da banda e cometeu suicídio em setembro de 2013 em seu apartamento na região do Morumbi, na zona sul de São Paulo, aos 35 anos. Ele estava a frente da banda "A Banca".