Historic District
About This Attraction
Nafplio Old Town is a historic area in Nafplio, Greece, known for its charming streets and preserved architecture. Visitors can enjoy strolling through narrow alleyways lined with neoclassical buildings, small cafes, and boutique shops. The town's layout reflects the influence of various cultures over centuries, including Venetian and Ottoman.
Points of interest include Syntagma Square, the Archaeological Museum of Nafplio, and the nearby Palamidi Fortress. While exploring, be aware that Nafplio Old Town opening hours for shops and attractions may vary, especially on weekends and public holidays. The scenic waterfront promenade offers a relaxing walk with views of the Bourtzi Castle situated on an island in the harbor.
Location Details
Address
Old Town, Nafplio, Greece
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Daily
Hours
Open 24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Palamidi Fortress is a historic site located in Nafplio, Greece, perched on a hilltop with…
Learn More
Bourtzi Castle is a small fortress located on an island in the harbor of Nafplio,…
Learn More
The Ancient Agora in Kos is a significant archaeological site that offers a glimpse into…
Learn More
The Acropolis in Athens is a historical site of great significance, with its construction dating…
Learn More
The Parthenon in Athens is a historical monument that stands as a symbol of ancient…
Learn More
Plaka is a historic neighborhood in Athens, Greece, known for its charming streets and ancient…
Learn More
The National Archaeological Museum in Athens is one of the largest and most significant museums…
Learn More
The Patras Archaeological Museum, located in the city of Patras, Greece, showcases a vast collection…
Learn More
The Rio-Antirrio Bridge, also known as the Charilaos Trikoupis Bridge, is an impressive cable-stayed bridge…
Learn More
The Rotunda in Thessaloniki, Greece, is an impressive architectural structure with a fascinating history. Constructed…
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';
}
});
});
}
});