Market
About This Attraction
The Grand Bazaar in Istanbul is one of the largest and oldest covered markets in the world. It has over 4,000 shops spread across 61 streets, offering a wide variety of products such as jewelry, textiles, spices, and ceramics. The market is open six days a week, and the Grand Bazaar opening hours are from 9:00 AM to 7:00 PM, closing on Sundays and some public holidays.
Visitors can enter through one of its many gates that lead into a maze-like interior. While shopping, it is common to engage in friendly bargaining with vendors to get the best price. The bazaar also features several cafes and restaurants where visitors can take a break and enjoy traditional Turkish cuisine.
Location Details
Address
Beyazıt, 34126 Fatih/Istanbul, Turkey
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Monday to Saturday
Hours
09:00 to 19:00
Seasonality
Closed on Sundays and public holidays
Booking
Booking Required?
No
Nearby Attractions
The Blue Mosque, officially known as the Sultan Ahmed Mosque, is a historic mosque located…
Learn More
Hagia Sophia in Istanbul is a historic building with a rich history that spans over…
Learn More
Topkapi Palace in Istanbul is a historical site that served as the main residence and…
Learn More
A Bosphorus Cruise in Istanbul offers a unique perspective of the city, navigating the waters…
Learn More
St. Anastasia Island is a small island located in the Black Sea, close to the…
Learn More
The Sea Garden in Burgas, Bulgaria is a large public park located along the Black…
Learn More
The Burgas Archaeological Museum is located in Burgas, Bulgaria, and offers visitors a comprehensive view…
Learn More
Holy Trinity Church in Bansko is one of the towns most significant landmarks, known for…
Learn More
The Mausoleum at Halicarnassus in Bodrum, Turkey, is one of the Seven Wonders of the…
Learn More
Bodrum Marina, located in the heart of Bodrum, Turkey, is a prominent destination for yacht…
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';
}
});
});
}
});