Island
About This Attraction
Samal Island, located in the Davao Gulf in the Philippines, is known for its beautiful beaches and natural attractions. Accessible by a short boat ride from Davao City, it offers a range of activities such as snorkeling, diving, and hiking. The island is home to several resorts that cater to different budgets, making it an ideal destination for both luxury and budget travelers. When planning your visit, its important to note that Samal Island opening hours can vary depending on the specific resort or attraction.
Visitors can explore the Monfort Bat Sanctuary, which houses millions of bats in its caves, or relax at one of the many pristine beaches along the coastline. Hagimit Falls is another popular spot known for its cascading waters and picnic-friendly surroundings. While planning your trip, consider the local climate as the region experiences a tropical climate with distinct wet and dry seasons. With proper planning and consideration of Samal Island opening hours, you can enjoy a seamless travel experience.
Location Details
Address
Samal Island, Davao del Norte, Philippines
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
The Philippine Eagle Center in Davao is a conservation facility dedicated to protecting the critically…
Learn More
Eden Nature Park in Davao is a popular eco-tourism destination that offers a variety of…
Learn More
Cloud 9 in Siargao is a renowned surfing destination famous for its perfect waves and…
Learn More
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
Apo Island is a small volcanic island located near Dumaguete in the Philippines. It is…
Learn More
Rizal Boulevard in Dumaguete is a popular seaside promenade that offers a scenic view of…
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
";
}
// 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';
}
});
});
}
});