Loading event...

About Event

Amok Mallorca Nightclub · Saturday, June 6, 2026 · 6:00 PM–11:30 PM · +25 · commercial, hits · tickets from €5.00 Callejeo is a hits session at Discoteca Amok Mallorca in Palma. Callejeo arrives at Amok with a different format than the venue’s usual lineup. Where afro-house of a select cut used to play, the dancefloor now shifts to commercial and chart hits. The change is deliberate: less pretense, more packed dancefloor from the first track. The room keeps its large-scale architecture —30,000 square meters, including an artificial lagoon— but the set focuses on short bursts of immediate energy for an early evening. There’s no late-night here; the 11:30 PM closing time confirms it. It’s an early-evening format for those who want to dance without a long night commitment. Door opens 6:00 PM, closes 11:30 PM. Dress code casual. Age +25.

Event Details

  • Date Wed, 10 June 2026
  • Time 22:00 - 06:00
  • Age Restriction 18+ (ID Required)
  • Dress Code Smart Casual
  • Last Entry 02:00 AM

Location

Discoteca Amok Mallorca
Open Map
Address: Camí Can Capó, 4, 07199 Palma (Islas Baleares), España

Similar Events

Manage Tickets

Enter the email or phone number you used when purchasing tickets. We'll look up your orders.

 
' ); } function renderEmbeddedCheckout(targetUrl) { if (window.fvLog) window.fvLog('BUY', 'Input URL: ' + targetUrl); if (!targetUrl) { showBuyError('Checkout URL not available. Please refresh and try again.'); return; } var box = document.getElementById('embedded-checkout'); var frame = document.getElementById('embedded-checkout-frame'); var backdrop = document.getElementById('embedded-checkout-backdrop'); if (!box || !frame) { showBuyError('Embedded checkout block is missing.'); return; } // Guard against rapid re-clicks stacking multiple {lightbox:true} // history entries. Each stacked entry forces the popstate handler into // the setTimeout(history.back()) branch, which can overshoot the event // page and bounce the user to the previous origin (e.g. "/"). var alreadyOpen = box.classList.contains('is-open'); if (window.__embedReadyTimer) { clearTimeout(window.__embedReadyTimer); window.__embedReadyTimer = null; } box.classList.add('is-loading'); box.classList.remove('is-ready'); frame.style.opacity = '0'; var readyMarked = false; function markFrameReady() { if (readyMarked) return; readyMarked = true; box.classList.remove('is-loading'); box.classList.add('is-ready'); frame.style.opacity = '1'; } frame.onload = function() { if (window.fvLog) window.fvLog('IFRAME', 'loaded (src=' + (frame.src || 'srcdoc').slice(-60) + ')'); window.__embedReadyTimer = setTimeout(markFrameReady, 320); }; frame.onerror = function(e) { if (window.fvLog) window.fvLog('IFRAME-ERR', String(e)); }; // Always use FV embed widget (srcdoc) — strips deep-link paths var embedScriptUrl = buildFourvenuesEmbedScriptUrl(targetUrl); if (window.fvLog) window.fvLog('EMBED', 'Script: ' + embedScriptUrl); if (embedScriptUrl) { var srcdoc = buildEmbedSrcdoc(embedScriptUrl); frame.removeAttribute('src'); frame.srcdoc = srcdoc; } else { frame.removeAttribute('srcdoc'); frame.src = targetUrl; } // Reset nav depth for the back button window.__checkoutNavDepth = 0; // Populate toolbar with event date var dateEl = document.getElementById('embedded-checkout-date'); if (dateEl && window.currentEventData) { var ev = window.currentEventData; var parts = []; if (ev.date) parts.push(ev.date); if (ev.timeStart) { var timePart = ev.timeStart; if (ev.timeEnd) timePart += ' - ' + ev.timeEnd; parts.push(timePart); } dateEl.textContent = parts.join(' · ') || ''; } // Push a history state so browser back closes the lightbox — but only // on the initial open. Re-entering while open would stack entries and // break popstate cleanup (see alreadyOpen comment above). if (!alreadyOpen) { history.pushState({ lightbox: true }, ''); } box.classList.add('is-open'); if (backdrop) backdrop.classList.add('is-open'); document.body.classList.add('checkout-lightbox-open'); window.__embedReadyTimer = setTimeout(markFrameReady, 800); } window.openTicketTailorCheckout = function() { if (!window.currentEventData) { showBuyError('Event is loading, please wait...'); return; } // Track click (fire-and-forget) try { var evData = window.currentEventData; var refCode = new URLSearchParams(window.location.search).get('ref') || ''; fetch((window.__PB_URL || '') + '/api/collections/clicks/records', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ event: evData.id || '', ticket_type: window.activeTicketTypeId || '', ref_code: refCode }) }).catch(function() {}); } catch (_) {} // Check if selected ticket is a deposit (direct payment) ticket var selectedRow = document.querySelector('.ticket-row.selected, .ticket-row[aria-selected="true"]'); if (!selectedRow) selectedRow = document.querySelector('[data-payment-type="direct"]'); if (selectedRow && selectedRow.getAttribute('data-payment-type') === 'direct') { var ttId = selectedRow.getAttribute('data-ticket-type-id') || ''; var ttName = selectedRow.getAttribute('data-ticket-name') || ''; var deposit = selectedRow.getAttribute('data-deposit') || '10'; var venuePrice = selectedRow.getAttribute('data-venue-price') || '25'; if (window.openDepositCheckout) { window.openDepositCheckout(ttId, ttName, parseFloat(deposit), parseFloat(venuePrice), window.currentEventData); return; } } renderEmbeddedCheckout(window.activeTicketUrl || window.currentEventData.url || window.eventFallbackUrl || ''); }; // Navigate back one step inside the checkout iframe, or close if at start function checkoutGoBack() { var depth = window.__checkoutNavDepth || 0; if (depth > 0 && typeof window.__checkoutDoBack === 'function') { window.__checkoutDoBack(); } else { clearEmbeddedCheckout(); } } // === Purchase success handler === function handlePurchaseSuccess(data) { console.log('%c[Purchase Success]', 'color:#0f0;font-weight:bold', data); var ev = window.currentEventData || {}; var successPanel = document.getElementById('purchase-success'); var poEvent = document.getElementById('po-event'); var poMeta = document.getElementById('po-meta'); var poTicketBtn = document.getElementById('po-btn-ticket'); var poEventBtn = document.getElementById('po-btn-event'); var poCalBtn = document.getElementById('po-btn-calendar'); var frame = document.getElementById('embedded-checkout-frame'); // Hide iframe, show success card inside lightbox if (frame) frame.style.display = 'none'; // Hide toolbar buttons except close var backBtn = document.getElementById('embedded-checkout-back'); var headerInfo = document.querySelector('.embedded-checkout__header-info'); if (backBtn) backBtn.style.visibility = 'hidden'; if (headerInfo) headerInfo.style.visibility = 'hidden'; // Populate event info if (poEvent) poEvent.textContent = data.event_name || ev.name || ''; if (poMeta) { var metaParts = []; if (data.event_date) { var dm = data.event_date.match(/^(\d{2})(\d{2})-(\d{4})-(\d{2})-(\d{2})$/); if (dm) { metaParts.push(dm[5] + '.' + dm[4] + '.' + dm[3] + ' · ' + dm[1] + ':' + dm[2]); } else { metaParts.push(data.event_date); } } if (data.quantity) metaParts.push(data.quantity + (data.quantity > 1 ? ' tickets' : ' ticket')); poMeta.textContent = metaParts.join(' · '); } // Download ticket button if (poTicketBtn && data.success_url) { poTicketBtn.href = data.success_url; poTicketBtn.style.display = ''; } else if (poTicketBtn) { poTicketBtn.style.display = 'none'; } // Google Calendar button if (poCalBtn && data.event_date) { var cm = data.event_date.match(/^(\d{2})(\d{2})-(\d{4})-(\d{2})-(\d{2})$/); if (cm) { var calYear = cm[3], calMonth = cm[4], calDay = cm[5], calHH = cm[1], calMM = cm[2]; var dtStart = calYear + calMonth + calDay + 'T' + calHH + calMM + '00'; var startDate = new Date(+calYear, +calMonth - 1, +calDay, +calHH, +calMM); var endDate = new Date(startDate.getTime() + 4 * 3600000); var dtEnd = endDate.getFullYear() + String(endDate.getMonth() + 1).padStart(2, '0') + String(endDate.getDate()).padStart(2, '0') + 'T' + String(endDate.getHours()).padStart(2, '0') + String(endDate.getMinutes()).padStart(2, '0') + '00'; var evName = data.event_name || ev.name || 'Party Isla Event'; var evLocation = (ev.venue_name ? ev.venue_name + ', ' : '') + 'Mallorca'; var gcUrl = 'https://calendar.google.com/calendar/render?action=TEMPLATE' + '&text=' + encodeURIComponent(evName) + '&dates=' + dtStart + '/' + dtEnd + '&location=' + encodeURIComponent(evLocation) + '&details=' + encodeURIComponent('Ticket from partyisla.com'); poCalBtn.onclick = function() { window.open(gcUrl, '_blank'); }; poCalBtn.style.display = ''; } else { poCalBtn.style.display = 'none'; } } else if (poCalBtn) { poCalBtn.style.display = 'none'; } // Return button — close lightbox if (poEventBtn) { poEventBtn.onclick = function() { clearEmbeddedCheckout(); }; } // Show success panel inside lightbox if (successPanel) successPanel.classList.add('is-open'); // Send purchase data to backend (fire-and-forget) try { console.log('%c[Purchase API] Sending to /api/fv-purchase...', 'color:#0f0;font-weight:bold', data); fetch('/api/fv-purchase', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ event_id: ev.id || '', transaction_id: data.transaction_id || '', event_name: data.event_name || '', event_slug: data.event_slug || ev.slug || '', event_date: data.event_date || '', quantity: data.quantity || 1, price: data.price || '', service: data.service || '', rate_id: data.rate_id || '', transaction_tax: data.transaction_tax || '', cn: data.cn || '', ce: data.ce || '', cp: data.cp || '', success_url: data.success_url || '' }) }).then(function(r) { console.log('[Purchase API] Response:', r.status); return r.json(); }).then(function(j) { console.log('[Purchase API] Result:', j); // Chain PDF fetch AFTER fv-purchase so the server has bound // the transaction to this session (ownership check). if (data.transaction_id && data.transaction_id.indexOf('-') > -1) { var txParts = data.transaction_id.split('-'); var purchaseId = txParts[0]; var deviceId = txParts[1]; console.log('%c[PDF Fetch] Getting direct PDF...', 'color:#0af;font-weight:bold', purchaseId, deviceId); fetch('/api/fv-ticket-pdf', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ purchase_id: purchaseId, device_id: deviceId }) }).then(function(r) { return r.json(); }).then(function(j2) { if (j2.ok && j2.pdf_url && poTicketBtn) { poTicketBtn.href = j2.pdf_url; console.log('%c[PDF Fetch] Direct PDF set!', 'color:#0f0;font-weight:bold', j2.pdf_url); } }).catch(function(e) { console.log('[PDF Fetch] Fallback to FV success page', e); }); } }).catch(function(err) { console.error('[Purchase API] Error:', err); }); } catch (_) {} } // Close lightbox on backdrop click, ESC key, toolbar buttons, or browser back function initCheckoutClose() { var backdrop = document.getElementById('embedded-checkout-backdrop'); if (backdrop) { backdrop.addEventListener('click', function() { clearEmbeddedCheckout(); }); } // Toolbar close button var closeBtn = document.getElementById('embedded-checkout-close'); if (closeBtn) { closeBtn.addEventListener('click', function() { clearEmbeddedCheckout(); }); } // Toolbar back button var backBtn = document.getElementById('embedded-checkout-back'); if (backBtn) { backBtn.addEventListener('click', function() { checkoutGoBack(); }); } document.addEventListener('keydown', function(e) { if (e.key === 'Escape') clearEmbeddedCheckout(); }); // === FV message listener (purchase detection, checkout events) === window.addEventListener('message', function(e) { try { var d = typeof e.data === 'string' ? JSON.parse(e.data) : e.data; if (!d || typeof d !== 'object') return; if (d.source && (d.source.indexOf('devtools') >= 0 || d.source.indexOf('webpack') >= 0)) return; if (d.type && d.type.indexOf('webpackOk') >= 0) return; // FV track events (begin_checkout, add_to_cart, etc.) if (d.source === 'fv_srcdoc' && d.type === 'track' && d.event === 'begin_checkout') { var box = document.getElementById('embedded-checkout'); if (box) box.classList.add('show-fv-logo'); } // Direct FV seamless_data messages (when loaded via frame.src, not srcdoc) if (d.data && d.data.key === 'seamless_data' && d.data.data) { var sd = d.data.data; if (sd.key === 'track' && sd.eventObject && sd.eventObject.event === 'begin_checkout') { var box2 = document.getElementById('embedded-checkout'); if (box2) box2.classList.add('show-fv-logo'); } // Purchase detection: openUrl with /success/ if (sd.key === 'openUrl' && typeof sd.url === 'string' && sd.url.indexOf('/success/') > -1 && !window.__purchaseHandled) { try { var su = new URL(sd.url); var sp = su.searchParams; var txM = su.pathname.match(/\/success\/\w+\/([^?/]+)/); window.__purchaseHandled = true; handlePurchaseSuccess({ source: 'fv_purchase', transaction_id: txM ? txM[1] : '', event_name: sp.get('event_name') || '', event_slug: sp.get('event_slug') || '', event_code: sp.get('event_code') || '', event_date: sp.get('event_date') || '', quantity: parseInt(sp.get('quantity')) || 1, price: sp.get('price') || '', service: sp.get('service') || 'tickets', rate_id: sp.get('rate_id') || '', transaction_tax: sp.get('transaction_tax') || '', cn: sp.get('cn') || '', ce: sp.get('ce') || '', cp: sp.get('cp') || '', success_url: sd.url }); } catch(pex) { console.warn('Purchase parse error', pex); } } // Handle blocked popups from direct FV iframe if (sd.key === 'navigate' && sd.url) { window.open(sd.url, '_blank'); } } // Purchase success detection (from srcdoc wrapper) if (d.source === 'fv_purchase' && d.transaction_id && !window.__purchaseHandled) { window.__purchaseHandled = true; handlePurchaseSuccess(d); } } catch(ex) {} }); // Browser back — only close if we hit our marker state window.addEventListener('popstate', function(e) { if (window.__checkoutIgnorePopstate) { window.__checkoutIgnorePopstate = false; return; } var box = document.getElementById('embedded-checkout'); if (box && box.classList.contains('is-open')) { // Close the UI immediately regardless of which entry we landed on window.__checkoutNavDepth = 0; closeCheckoutUI(); // Landing on a lightbox marker used to chain setTimeout(history.back) // to "go past it". That chain would overshoot and bounce users // back to the previous origin ("/") whenever extra lightbox // entries had been stacked by rapid clicks. We now prevent the // stacking at pushState time (see renderEmbeddedCheckout), so a // single popstate is enough: just close and let the browser // stay where it landed. } }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initCheckoutClose(); }); } else { initCheckoutClose(); }
Select ticket

1
Ticket ×1€35
Pay at venue€25
Booking feesFree
Pay today€10
01/Pay deposit now
02/Get your ticket instantly via WhatsApp
03/Pay the rest at the venue door
Payment method
Contact info
via
WhatsApp
WhatsApp
SMS
Billing details
Card details
Thank you!
Purchase confirmed
Download Ticket