Surf Spot
About This Attraction
Cloud 9 in Siargao is a renowned surfing destination famous for its perfect waves and scenic views. It attracts surfers from all over the world who come to experience the challenging yet rewarding surf breaks. The best time to visit for surfing is generally between September and November, when the waves are at their peak. Visitors can also enjoy the iconic boardwalk that offers stunning views of the ocean and serves as a great spot for photography.
For those planning to visit, its important to note that Cloud 9 has specific opening hours, typically starting early in the morning to make the most of the surf conditions. Apart from surfing, there are nearby accommodations and restaurants that cater to tourists, providing a comfortable experience. With its laid-back atmosphere, Cloud 9 remains a must-visit spot on Siargao Island for both surfers and non-surfers alike.
Location Details
Address
General Luna, Siargao Island, Surigao del Norte, Philippines
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
50 PHP
Child
30 PHP
Student
40 PHP
Senior
40 PHP
Opening Hours & Booking
Open
Days
Daily
Hours
6:00 AM - 6:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Magpupungko Rock Pools, located on the island of Siargao in the Philippines, are a natural…
Learn More
Sugba Lagoon is a popular tourist destination located in Siargao, Philippines, known for its crystal-clear…
Learn More
The Basilica del Santo Niño in Cebu City is a must-visit historical and religious site.…
Learn More
Magellans Cross is a historical landmark located in Cebu City, Philippines. It was planted in…
Learn More
The Cebu Taoist Temple is a prominent cultural and religious site located in the Beverly…
Learn More
The Philippine Eagle Center in Davao is a conservation facility dedicated to protecting the critically…
Learn More
Samal Island, located in the Davao Gulf in the Philippines, is known for its beautiful…
Learn More
Rizal Boulevard in Dumaguete is a popular seaside promenade that offers a scenic view of…
Learn More
Eden Nature Park in Davao is a popular eco-tourism destination that offers a variety of…
Learn More
Apo Island is a small volcanic island located near Dumaguete in the Philippines. It is…
Learn More
";
}
// Initialize modal controls
const initModalControls = function() {
console.log('Initializing modal controls');
const modal = document.getElementById('attraction-modal');
const closeBtn = document.querySelector('.attraction-modal-close');
if (closeBtn) {
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
document.body.style.overflow = '';
});
}
window.addEventListener('click', function(event) {
if (event.target === modal) {
modal.style.display = 'none';
document.body.style.overflow = '';
}
});
// Make attraction cards clickable
const attractionCards = document.querySelectorAll('.attraction-card');
console.log('Found ' + attractionCards.length + ' attraction cards');
attractionCards.forEach(card => {
card.addEventListener('click', function(e) {
openModalWithCardData(this);
});
});
};
// Function to open modal with card data
const openModalWithCardData = function(card) {
// Get data from hidden div
const data = card.querySelector('.attraction-full-data');
if (!data) {
console.error('No attraction data found in card');
return;
}
const modal = document.getElementById('attraction-modal');
if (!modal) {
console.error('Modal element still not found after creation attempt');
return;
}
// Helper function to safely get element text
function getElementText(selector) {
const element = data.querySelector(selector);
return element ? element.textContent : '';
}
try {
// Basic Info
document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name');
document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full');
document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full');
// Reset all containers to hidden
['attraction-modal-hours-container', 'attraction-modal-price-container',
'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => {
const container = document.getElementById(id);
if (container) container.style.display = 'none';
});
// Rating
const ratingText = getElementText('.attraction-rating-full');
if (ratingText) {
const ratingValue = parseFloat(ratingText);
if (!isNaN(ratingValue)) {
const ratingValueEl = document.getElementById('attraction-modal-rating-value');
const ratingFillEl = document.getElementById('attraction-modal-rating-fill');
if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10';
if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%';
}
}
// Show the modal
modal.style.display = 'block';
document.body.style.overflow = 'hidden'; // Prevent background scrolling
console.log('Modal opened successfully');
} catch (error) {
console.error('Error opening modal:', error);
}
};
// Try to create the modal
const created = createModal();
console.log('Modal created:', created);
// If not created (already exists), initialize the controls
if (!created) {
initModalControls();
}
// Also initialize distance toggle
const distanceToggle = document.getElementById('distance-unit-toggle');
if (distanceToggle) {
distanceToggle.addEventListener('change', function() {
const showKm = this.checked;
// Update toggle labels
const labels = document.querySelectorAll('.toggle-label');
if (labels.length >= 2) {
labels[0].style.opacity = showKm ? '0.5' : '1';
labels[1].style.opacity = showKm ? '1' : '0.5';
}
// Update all distance displays
document.querySelectorAll('.nearby-attraction-card').forEach(card => {
const kmEl = card.querySelector('.distance-km');
const miEl = card.querySelector('.distance-mi');
if (kmEl && miEl) {
kmEl.style.display = showKm ? 'inline' : 'none';
miEl.style.display = showKm ? 'none' : 'inline';
}
});
});
}
});