Architectural Attraction
About This Attraction
The Crazy House in Dalat, officially known as the Hang Nga Guesthouse, is an architectural marvel designed by Vietnamese architect Đặng Việt Nga. Resembling a giant treehouse, it features winding stairways, tunnels, and rooms with unique themes. Visitors are welcome to explore its surreal design and imaginative spaces daily. The Crazy House opening hours are typically from 8:30 AM to 7:00 PM, but its always a good idea to check for any changes before planning your visit.
This destination has been drawing tourists since its opening in 1990 due to its unconventional style. The structure is continuously evolving, with new additions enhancing the experience over time. It also serves as a guesthouse with rooms available for those wishing to stay overnight in this one-of-a-kind setting. Many visitors find it fascinating not only for its artistic architecture but also for its connection to nature, as it incorporates elements like trees and animals into its design seamlessly.
Location Details
Address
03 Huynh Thuc Khang, Ward 4, Dalat, Vietnam
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
60,000 VND
Child
30,000 VND
Student
50,000 VND
Senior
50,000 VND
Opening Hours & Booking
Open
Days
Daily
Hours
8:30 AM - 7:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Xuan Huong Lake is a prominent landmark situated in the center of Dalat, Vietnam. The…
Learn More
Dalat Flower Gardens is a popular attraction located in Dalat, Vietnam, known for its diverse…
Learn More
Long Son Pagoda, located in Nha Trang, Vietnam, is a prominent Buddhist temple known for…
Learn More
The Po Nagar Cham Towers in Nha Trang are an important historical and cultural site…
Learn More
Vinpearl Land in Nha Trang is a popular amusement park located on Hon Tre Island,…
Learn More
Nha Trang Beach is a popular seaside destination located in the coastal city of Nha…
Learn More
Vinpearl Safari in Phu Quoc is Vietnams first and largest semi-wildlife conservation park. It covers…
Learn More
Sunset Beach on Koh Rong Sanloem is known for its pristine sandy shores and tranquil…
Learn More
Phnom Sampeau is a notable hill in Battambang, Cambodia, known for its historical and cultural…
Learn More
Wat Banan Temple is a historical site located in Battambang, Cambodia. The temple dates back…
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';
}
});
});
}
});