Entertainment Complex
About This Attraction
SOHO Square in Sharm El Sheikh is a popular entertainment and shopping destination located near the Red Sea. It offers a wide range of activities including dining, shopping, and live performances. Visitors can enjoy ice skating, bowling, and even a cinema. SOHO Square opening hours usually extend late into the night, allowing tourists to make the most of their visit.
The square is known for its vibrant atmosphere and family-friendly environment. Various restaurants serve international cuisine, providing plenty of dining options. Additionally, there are shops offering everything from souvenirs to luxury goods. With its diverse attractions and amenities, SOHO Square caters to both adults and children, making it an ideal spot for a day out.
Location Details
Address
White Knight Beach, Sharm El Sheikh, South Sinai Governorate, Egypt
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free entry
Child
Free entry
Student
Free entry
Senior
Free entry
Opening Hours & Booking
Open
Days
Daily
Hours
10:00 AM - 2:00 AM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Naama Bay, located in Sharm El Sheikh, Egypt, is a popular destination for tourists seeking…
Learn More
Dahab Lagoon is a popular destination in the town of Dahab, located on the southeast…
Learn More
The Blue Hole in Dahab is a popular diving and snorkeling site located on the…
Learn More
Mount Sinai, located near the town of Dahab in Egypt, is a significant historical and…
Learn More
Ras Abu Galum is a protected area located near Dahab, Egypt, known for its stunning…
Learn More
Ras Mohammed National Park, located at the southern tip of the Sinai Peninsula near Sharm…
Learn More
Khan El Khalili is a famous bazaar in Cairo, Egypt, known for its diverse shops…
Learn More
The Egyptian Museum in Cairo is one of the most important museums in the world,…
Learn More
The Pyramids of Giza are located on the outskirts of Cairo, Egypt. This archaeological site…
Learn More
The Nubian Museum in Aswan is a prominent cultural institution that showcases the history and…
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';
}
});
});
}
});