Cultural/Historical
About This Attraction
The Old City Temples in Chiang Mai offer a glimpse into the cultural and historical heart of northern Thailand. Within its ancient walls, visitors can find several significant temples, such as Wat Phra Singh, known for its classic Lanna architecture and the revered Phra Buddha Sihing statue. Another notable temple is Wat Chedi Luang, which once housed the Emerald Buddha and features a partially restored chedi that dates back to the 14th century. These sites are easily accessible by foot or bicycle, making them convenient to explore while in the citys historic core.
For those planning to visit, its important to dress respectfully, as these are active places of worship. Many temples offer free entrance, but donations are appreciated to help with maintenance costs. Old City Temples travel information suggests visiting early in the morning to avoid crowds and enjoy a more peaceful experience. Each temple has unique features and histories, offering a broad overview of Chiang Mais past and spiritual traditions. Remember to take off your shoes before entering any temple buildings as a sign of respect.
Location Details
Address
Old City, Mueang Chiang Mai District, Chiang Mai 50200, Thailand
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
6:00 AM to 5:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Museum showcasing Northern Thai culture and history.
A historical monument honoring three kings who founded Chiang Mai.
Exhibits on Chiang Mai's history and culture
Historic teakwood temple with intricate carvings
Massage center run by inmates offering traditional Thai massages.
Oldest temple in Chiang Mai, known for its ancient Buddha statues.
Museum showcasing Chiang Mai's history and culture.
Vibrant street market with local crafts, food, and performances.
Historic city gate, part of the old city walls.
A historic Buddhist temple known for its intricate architecture and serene atmosphere.
";
}
// 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';
}
});
});
}
});