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

Nudismo e troca de casais: este cruzeiro é dedicado aos adeptos do swing

Há mais cruzeiros dedicados a adeptos do swing do que você imagina  - 1001nights/Getty Images
Há mais cruzeiros dedicados a adeptos do swing do que você imagina Imagem: 1001nights/Getty Images

Marcel Vincenti

Colaboração para o UOL

31/05/2019 04h00

Piscina onde é possível fazer nudismo, festas nas quais os participantes usam fantasias sensuais e até uma sala que abriga sessões de sexo grupal.

É isto, e muito mais, o que oferece o Red Carpet Cruise, cruzeiro que será realizado na Europa em 2020 e que é dedicado a casais que são adeptos do swing.

Em cruzeiros do suingue, casais podem trocar de par e fazer sexo em "playrooms"  - Getty Images/iStockphoto - Getty Images/iStockphoto
O Red Carpet Cruise promete propiciar muita interação para casais liberais
Imagem: Getty Images/iStockphoto

A viagem (aberta, logicamente, apenas para adultos) começará no balneário francês de Nice no dia 19 de maio do ano que vem e, até o dia 26 de maio, visitará os portos de Cannes (França), Livorno (Itália), Villefranche-sur-Mer (França) e Barcelona (Espanha).

Enquanto estiverem a bordo, os ageiros terão a chance de curtir uma rotina de clima liberal e cheia de erotismo.

Projeção do navio no qual será realizado o Red Carpet Cruise, em maio de 2020 - Divulgação/Desire Red Carpet Cruise - Divulgação/Desire Red Carpet Cruise
Projeção do navio no qual será realizado o Red Carpet Cruise, em maio de 2020
Imagem: Divulgação/Desire Red Carpet Cruise

Durante o dia, os turistas poderão tomar sol e se refrescar em uma piscina onde roupas são opcionais e curtir, ao mesmo tempo, as paisagens do mar Mediterrâneo, que banha todos os destinos visitados pelo navio.

Já à noite, a embarcação será palco para festas que prometem propiciar um ambiente extremamente sensual para os participantes: a programação destas baladas ainda não está definida, mas, de acordo com imagens de divulgação colocadas no site do Red Carpet Cruise, elas deverão ter temas eróticos, com as pessoas vestindo trajes provocativos.

Área da piscina do navio com o qual será realizado o Red Carpet Cruise - Divulgação/Desire Red Carpet Cruise - Divulgação/Desire Red Carpet Cruise
Área da piscina do navio com o qual será realizado o Red Carpet Cruise
Imagem: Divulgação/Desire Red Carpet Cruise

O navio também contará com um "playroom", espaço social onde os casais podem interagir sexualmente.

E, a bordo, haverá ainda uma área com uma hidromassagem na qual é permitido ficar sem roupas.

Mundo do cinema

Mas nem tudo terá cunho sexual no Red Carpet Cruise. O cruzeiro aportará em Cannes no dia 20 de maio (de 2020), bem na época do famoso Festival de Cannes. Os ageiros conseguirão curtir o balneário sob o clima de um dos mais importantes eventos cinematográficos do mundo.

Já dentro do navio, haverá oferta de restaurantes de alta gastronomia, cassino e bares para curtir um drink.

O navio do Red Carpet Cruise tem capacidade para quase 700 ageiros - Michel Verdure/Desire Red Carpet Cruise - Michel Verdure/Desire Red Carpet Cruise
O navio do Red Carpet Cruise tem capacidade para quase 700 ageiros
Imagem: Michel Verdure/Desire Red Carpet Cruise

O Red Carpet Cruise será realizado em uma embarcação com capacidade para quase 700 hóspedes.

As agens para esta jornada custam a partir de US$ 4.800 (mais taxas) por cabine com base em ocupação dupla (preço sujeito a alterações).

Mais informações sobre o Red Carpet Cruise: www.desire-experience.com/cruises/red-carpet-cruise-may-2020/

Outros cruzeiros

Há outros cruzeiros pelo mundo que são desenhados para casais adeptos do swing.

Em setembro de 2020, por exemplo, haverá uma viagem marítima dedicada a este público que começará no porto de Piraeus, na Grécia, e visitará destinos como Santorini (também na Grécia) e Marmaris, na Turquia. A bordo, também existirão áreas para ficar sem roupa e o famoso "playroom".

Já em novembro deste ano, irá navegar pela região do Caribe o cruzeiro Bliss Cruise, também aberto a casais liberais e com capacidade para aproximadamente 3.600 ageiros.

A jornada terá duração de sete noites, começará em Miami e ará por destinos como Ilhas Virgens Britânicas e Ilhas Virgens Americanas.