Historical Site
About This Attraction
Bou Inania Madrasa in Fez is an architectural marvel dating back to the 14th century, built during the reign of Sultan Abu Inan Faris. This historic madrasa served as both an educational institution and a congregational mosque. It is renowned for its intricate woodwork, stucco decoration, and stunning zellij tilework. Visitors are often struck by the grandeur of its central courtyard, which features a beautiful fountain and fine craftsmanship. The madrasa is one of the few religious sites in Morocco that is open to non-Muslim visitors.
For those planning to visit, its important to be aware of Bou Inania Madrasa opening hours, which can vary depending on the time of year and local holidays. Typically, it is open daily, but checking ahead is advisable to ensure access. The site offers a glimpse into Islamic architecture and education during medieval times, making it a significant cultural landmark in Fez. Remember to dress modestly out of respect for the sites religious significance.
Location Details
Address
Rue Talaa Sghira, Fes, Morocco
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
20 MAD
Child
10 MAD
Student
15 MAD
Senior
20 MAD
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
9:00 AM to 5:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Al-Qarawiyyin University in Fez, Morocco, is recognized as one of the oldest existing and continually…
Learn More
Punta de Tarifa, located in the southernmost part of mainland Spain, is a notable geographic…
Learn More
Playa de Los Lances is a well-known beach located in Tarifa, Spain. The beach stretches…
Learn More
Paradise Valley, located near Taghazout in Morocco, is a popular destination for nature lovers and…
Learn More
Granada Cathedral, known as the Cathedral of the Incarnation, is located in the heart of…
Learn More
The Alhambra in Granada, Spain, is a historic palace and fortress complex that attracts millions…
Learn More
The Generalife in Granada is a historic garden and summer palace that once served as…
Learn More
Albayzín is a historic neighborhood in Granada, Spain, known for its narrow winding streets and…
Learn More
Plaza de España in Seville is a notable landmark and a prime example of the…
Learn More
The Alcázar of Seville is a stunning example of Mudejar architecture, showcasing the cultural history…
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';
}
});
});
}
});