var MM_SVGS = {"ground": "DalydressRokportColin'sPIXILC WAIKIKIHub FurnitureOzoneDefactoColin'sCarrefourRenaissance Cinema Complex", "first": "Padel NuestroFitness FactoryHub FurnitureSky ZoneFitness Factory", "basement": "PARKINGEl GwazatEl Segel El MadanyElshahr ElakaryEGYPT PostEgyptianCa SportsEGYPT PostCa SportsEZ El ArabCircle KB12 B12a"}; var MM_META = {"ground": {"label": "Ground Floor", "label_ar": "\u0627\u0644\u062f\u0648\u0631 \u0627\u0644\u0623\u0631\u0636\u064a"}, "first": {"label": "First Floor", "label_ar": "\u0627\u0644\u062f\u0648\u0631 \u0627\u0644\u0623\u0648\u0644"}, "basement": {"label": "Basement", "label_ar": "\u0627\u0644\u0628\u062f\u0631\u0648\u0645"}}; var MM_I18N = {"en": {"shopping": "Shopping", "dining": "Dining", "services": "Services", "entertainment": "Entertainment", "searchPlaceholder": "Search for a store...", "notFound": "Store not found", "parking": "PARKING"}, "ar": {"shopping": "تسوق", "dining": "مطاعم", "services": "خدمات", "entertainment": "ترفيه", "searchPlaceholder": "ابحث عن متجر...", "notFound": "المتجر غير موجود", "parking": "موقف السيارات"}}; (function(){ function ready(fn){ if(document.readyState!=="loading"){fn();} else {document.addEventListener("DOMContentLoaded",fn);} } ready(function(){ var isAr = document.documentElement.lang === "ar"; var t = MM_I18N[isAr ? "ar" : "en"]; var wrap = document.querySelector(".mm-map-wrap") || document.querySelector("section.locator .col-sm-9"); if (!wrap) return; if (wrap.querySelector(".mm-floor-tabs")) return; var floorKeys = ["ground", "first", "basement"]; var state = { floor: "ground" }; wrap.innerHTML = ""; wrap.classList.add("mm-real"); if (isAr) wrap.classList.add("mm-rtl"); // translate PARKING label + legend text baked into each floor's SVG at runtime Object.keys(MM_SVGS).forEach(function(fk){ MM_SVGS[fk] = MM_SVGS[fk].replace(">PARKING<", ">" + t.parking + "<"); }); var legend = document.createElement("div"); legend.className = "mm-legend"; legend.innerHTML = '' + t.shopping + '' + '' + t.dining + '' + '' + t.services + '' + '' + t.entertainment + ''; var searchWrap = document.createElement("div"); searchWrap.className = "mm-search-wrap"; var searchInput = document.createElement("input"); searchInput.type = "text"; searchInput.placeholder = t.searchPlaceholder; searchInput.className = "mm-search-input"; searchWrap.appendChild(searchInput); var searchMsg = document.createElement("div"); searchMsg.className = "mm-search-msg"; searchWrap.appendChild(searchMsg); wrap.appendChild(searchWrap); var tabs = document.createElement("div"); tabs.className = "mm-floor-tabs"; floorKeys.forEach(function(fk){ var btn = document.createElement("button"); btn.type = "button"; btn.className = "mm-floor-tab" + (fk === "ground" ? " active" : ""); btn.textContent = isAr ? MM_META[fk].label_ar : MM_META[fk].label; btn.setAttribute("data-floor", fk); btn.addEventListener("click", function(){ setFloor(fk); }); tabs.appendChild(btn); }); wrap.appendChild(tabs); wrap.appendChild(legend); var stages = {}; floorKeys.forEach(function(fk){ var stage = document.createElement("div"); stage.className = "mm-stage" + (fk === "ground" ? " active" : ""); stage.setAttribute("data-floor", fk); stage.innerHTML = MM_SVGS[fk]; wrap.appendChild(stage); stages[fk] = stage; var svgEl = stage.querySelector("svg"); var vb = svgEl.viewBox.baseVal; stage.querySelectorAll(".mm-cell").forEach(function(cell){ cell.addEventListener("mouseenter", function(){ showTooltip(cell, svgEl, vb); }); cell.addEventListener("mouseleave", function(){ hideTooltip(); }); cell.addEventListener("click", function(){ showTooltip(cell, svgEl, vb); }); }); }); var tooltip = document.createElement("div"); tooltip.className = "mm-tooltip"; wrap.appendChild(tooltip); function showTooltip(cell, svgEl, vb){ var name = cell.getAttribute("data-name"); var cx = parseFloat(cell.getAttribute("data-cx")); var cy = parseFloat(cell.getAttribute("data-cy")); var pctX = (cx / vb.width) * 100; var pctY = (cy / vb.height) * 100; tooltip.textContent = name; tooltip.style.left = pctX + "%"; tooltip.style.top = pctY + "%"; tooltip.classList.add("visible"); document.querySelectorAll(".mm-cell.active").forEach(function(c){ c.classList.remove("active"); }); cell.classList.add("active"); } function hideTooltip(){ tooltip.classList.remove("visible"); } function setFloor(fk){ state.floor = fk; floorKeys.forEach(function(k){ stages[k].classList.toggle("active", k === fk); }); tabs.querySelectorAll(".mm-floor-tab").forEach(function(b){ b.classList.toggle("active", b.getAttribute("data-floor") === fk); }); hideTooltip(); } function normalize(s){ return (s||"").toLowerCase().replace(/[^a-z0-9]/g,""); } function findCell(query){ var q = normalize(query); if (!q) return null; for (var i=0;i