Restaurant

Asking Price:

AED 520,000

STATUS:
SOLD
SOLD
Business ID
PHD1166
Listing Category
Location
Port Saeed

Description

A fantastic opportunity to lease a fully fitted restaurant and café in the heart of Port Saeed, surrounded by hotels, offices, and residential buildings. The space comes with approximately 60% of the restaurant and café assets already in place — offering a fast and convenient start for your new venture.

Overview

PROPERTY HIGHLIGHTS
Fully fitted restaurant and cafe with furniture, fixtures, and kitchen setup
Indoor seating area with excellent visibility
Prime corner location with high footfall
Surrounded by hotels, offices, and residential buildings
Ample parking and easy access
Direct from landlord – no key money required

GROWTH & OPPORTUNITY
Located in a busy business and hospitality district with consistent customer flow
Most existing restaurants in the area are Indian, Pakistani, and Arabic, leaving great room for new and unique dining concepts
No pizza or similar outlets currently in the vicinity, presenting a strong opportunity for innovative brands
Perfect for launching a different cuisine or modern café concept to attract both corporate and residential clientele
Ideal setup for dine-in and delivery operations
Potential to add outdoor seating with your own design (subject to RTA pre-approval)

SUMMARY
This ready-to-operate restaurant and cafe offers everything you need to establish your business quickly in one of Dubai’s most strategic and high-traffic areas. With an asking rent of AED 520,000, no key money, and direct landlord access, it presents an excellent opportunity to introduce a fresh and unique concept that stands out from the surrounding competition. An ideal space to grow your F&B brand and capture an untapped market in Port Saeed.

Consultation Form

در یک سالن آرایش فعال در دبی

با بیش از ۱۰۰۰ مشتری

و ۱۴ سال سابقه

ارزش هر صندلی فقط ۴ میلیارد تومان

۵۰٪ از مشتری‌ها به‌صورت ثابت به شما تعلق می‌گیرد

مناسب برای:

  • آرایشگران حرفه‌ای مقیم ایران که دنبال درآمد دلاری هستند
  • علاقه‌مندان به مهاجرت کاری مطمئن و تضمین‌شده به امارات

پیش‌بینی درآمد:

۱۰,۰۰۰ تا ۲۵,۰۰۰ درهم در ماه

همین حالا برای رزرو مشاوره اقدام کنید. فقط ۵ صندلی در دسترس است.

We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies. Cookie Policy

' + fmt(val) + '
'; }// ==================== BUSINESS OUTPUT ==================== function businessOutput(d, region, mgmtMode) { var p = d.profit, cum = 0; for (var t = 1; t 0 ? d.profit / d.price * 100 : 0;// ---- 01 VALUATION ---- var val = valuation(d.profit, d.sector, d.region, risk, d.growth, mgmt); var mult = multiple(d.sector, d.region, risk, d.growth, d.profit, mgmt); $("vVal").textContent = fmt(val); $("vRange").textContent = "Range: " + fmt(val * 0.80) + " – " + fmt(val * 1.22); $("vMult").textContent = mult.toFixed(2) + "×"; $("vMultDetail").textContent = REGION_NAME[d.region] + " base " + REGION[d.region].toFixed(2) + " × " + IND_NAME[d.sector] + " " + IND[d.sector].toFixed(2) + " × growth " + growthF(d.growth).toFixed(2) + " × risk " + RISKM[risk].toFixed(2) + " × size " + sizeF(d.profit).toFixed(2) + " × mgmt " + mgmtF(mgmt).toFixed(2); $("vYield").textContent = yld.toFixed(1) + "%"; $("vPb").textContent = d.profit > 0 ? (d.price / d.profit).toFixed(1) + " yrs" : "—"; $("vMargin").textContent = d.price > 0 ? (d.profit / d.price * 100).toFixed(1) + "%" : "—";var gap = val - d.price; var gapPct = d.price > 0 ? (gap / d.price * 100) : 0; $("vGap").textContent = (gap >= 0 ? "+" : "") + fmtPct(gapPct / 100, 1); $("vGap").className = gap >= 0 ? "v green" : "v red";var rating = "PASS"; var ratingClass = "badge-red"; if (gapPct >= 15) { rating = "STRONG BUY"; ratingClass = "badge-green"; } else if (gapPct >= 5) { rating = "BUY"; ratingClass = "badge-green"; } else if (gapPct >= -5) { rating = "NEGOTIATE"; ratingClass = "badge-gold"; } else if (gapPct >= -15) { rating = "OVERPRICED"; ratingClass = "badge-red"; } $("vRating").innerHTML = '' + rating + '';// Valuation breakdown bars var vb = $("valBreakdown"); vb.innerHTML = ""; var baseVal = d.profit * REGION[d.region]; var afterIndustry = baseVal * IND[d.sector]; var afterGrowth = afterIndustry * growthF(d.growth); var afterRisk = afterGrowth * RISKM[risk]; var afterSize = afterRisk * sizeF(d.profit); var finalVal = afterSize * mgmtF(mgmt); var steps = [ { n: "Base (" + REGION_NAME[d.region] + ")", v: baseVal, c: "#3a6b86" }, { n: "+ Industry (" + IND_NAME[d.sector] + ")", v: afterIndustry, c: "#2f7d8c" }, { n: "+ Growth (" + d.growth + "%)", v: afterGrowth, c: "#7d5bd6" }, { n: "+ Risk (" + risk + ")", v: afterRisk, c: "#c98a1a" }, { n: "+ Size factor", v: afterSize, c: "#c08a2d" }, { n: "+ Management (" + (mgmt === "managed" ? "managed" : "owner") + ")", v: finalVal, c: "#1f7a5c" } ]; var vmx = Math.max.apply(null, steps.map(function(s){ return s.v; })); steps.forEach(function(s, i) { bar(vb, s.n, "AED " + fmt(s.v), s.v, vmx, s.c, i === steps.length - 1); });// ---- 02 DEAL FINDER ---- var dealData = generateDeals(d); var dt = $("dealRows"); dt.innerHTML = ""; dealData.forEach(function(deal) { var roi = deal.price > 0 ? (deal.profit / deal.price * 100).toFixed(1) : "0"; var statusClass = deal.status === "Active" ? "pos" : (deal.status === "Urgent" ? "neg" : ""); dt.innerHTML += '' + deal.platform + '' + deal.title + '' + fmt(deal.price) + '' + fmt(deal.profit) + '' + deal.industry + '' + deal.emirate + '' + roi + '%' + deal.status + ''; });// ---- 03 INVESTMENT COMPARISON ---- var biz = businessOutput(d, d.region, mgmt); var gold = totalCost * Math.pow(1.085, d.years); var oil = totalCost * Math.pow(1.10, d.years); var stock = totalCost * Math.pow(1.095, d.years); var dep = totalCost * Math.pow(1.048, d.years); var re = totalCost * Math.pow(1.072, d.years); var car = totalCost * Math.pow(0.90, d.years);var io = [ { n: "This Business", s: "profit + exit", v: biz.total, c: "#c08a2d", r: (risk === "low" ? 18 : (risk === "med" ? 28 : 42)), liquid: "Low" }, { n: "Global Equities", s: "~10%", v: stock, c: "#1f7a5c", r: 16, liquid: "High" }, { n: "Dubai Real Estate", s: "~7.5%", v: re, c: "#2f7d8c", r: 12, liquid: "Medium" }, { n: "Gold", s: "~8.5%", v: gold, c: "#caa53c", r: 18, liquid: "High" }, { n: "Oil", s: "~10% (volatile)", v: oil, c: "#8a5f1a", r: 32, liquid: "High" }, { n: "Deposit/Sukuk", s: "~4.8%", v: dep, c: "#6c7a85", r: 1, liquid: "High" }, { n: "Luxury Car", s: "~−10%", v: car, c: "#b4452f", r: 5, liquid: "Low" } ]; var imx = Math.max.apply(null, io.map(function(o){ return o.v; }), 1); var iwin = io.reduce(function(a, b){ return b.v > a.v ? b : a; }); var ib = $("iBars"); ib.innerHTML = ""; io.forEach(function(o){ bar(ib, o.n, o.s, o.v, imx, o.c, o === iwin); });var rar = (yld + d.growth) / (risk === "low" ? 22 : (risk === "med" ? 32 : 48)); var stockRar = 10 / 16; var t = $("iTag"), x = $("iTxt"); if (d.growth = stockRar * 1.15) { t.className = "badge badge-green"; t.textContent = "✅ WORTH IT (Accepting Risk)"; x.innerHTML = "Risk-adjusted return (" + rar.toFixed(2) + ") beats equities (" + stockRar.toFixed(2) + ") and payback is ~" + (d.profit > 0 ? (d.price / d.profit).toFixed(1) : "—") + " yrs. Higher return comes with higher risk and lower liquidity."; } else if (rar >= stockRar * 0.9) { t.className = "badge badge-gold"; t.textContent = "⚖️ CONDITIONAL"; x.textContent = "Risk-adjusted return is close to the market. Worth it only if you buy below value or can lift growth/margin significantly."; } else { t.className = "badge badge-red"; t.textContent = "❌ NOT WORTH IT"; x.textContent = "Risk-adjusted return is below market. Either negotiate price down by " + Math.abs(gapPct).toFixed(0) + "% or find a better deal."; }renderScatter(io, totalCost);// Comparison table var ct = $("compareRows"); ct.innerHTML = ""; io.forEach(function(o) { var annRet = Math.pow(o.v / totalCost, 1/d.years) - 1; var riskAdj = annRet / (o.r / 10); var taxImpact = o.n === "This Business" ? "9% (0% up to 375K)" : (o.n === "Global Equities" ? "15% CGT" : (o.n === "Dubai Real Estate" ? "5% VAT + 4% transfer" : "0-5%")); var verdict = o === iwin ? "🏆 BEST" : (annRet > 0.08 ? "✅ Good" : (annRet > 0.04 ? "⚖️ Fair" : "❌ Poor")); var vClass = o === iwin ? "best" : (annRet' + o.n + '' + fmt(o.v) + '' + fmtPct(annRet, 1) + '' + o.r + '%' + o.liquid + '' + riskAdj.toFixed(2) + '' + taxImpact + '' + verdict + ''; });// ---- 04 CAPITAL INCREASE ---- var capPct = +$("capPct").value || 0; var capAmt = +$("capAmt").value || 0; var inj = capAmt > 0 ? capAmt : d.price * capPct / 100; var hurdle = 0.10; var reqYield = yld / 100; var target15 = 0.15, target20 = 0.20;$("capKpis").innerHTML = '
Current business yield
' + yld.toFixed(1) + '%
' + '
Market hurdle rate
' + (hurdle * 100).toFixed(0) + '%
' + '
Extra profit needed (current yield)
' + fmt(inj * Math.max(reqYield, hurdle)) + '
';var crt = $("capRows"); crt.innerHTML = ""; [10, 25, 50, 100, 200].forEach(function(pc) { var x = d.price * pc / 100; var newCap = d.price + x; var profitCurrent = x * reqYield; var profitMarket = x * hurdle; var profit15 = x * target15; var profit20 = x * target20; var breakeven = reqYield > 0 ? (x / (d.profit + profitCurrent) * 12).toFixed(1) : "—"; crt.innerHTML += '+' + pc + '%' + fmt(newCap) + '' + fmt(profitCurrent) + '' + fmt(profitMarket) + '' + fmt(profit15) + '' + fmt(profit20) + '' + breakeven + ' mo'; });$("capVerdict").className = "verdict" + (reqYield >= hurdle ? "" : " warn"); $("capVerdict").innerHTML = reqYield >= hurdle ? "✅ Capital injection makes sense. Your current commercial allocation where applicable(" + yld.toFixed(1) + "%) beats the market hurdle (10%). For this injection of " + fmt(inj) + ", you must generate at least " + fmt(inj * reqYield) + " in extra annual profit. If the new capital earns 15%, that's " + fmt(inj * 0.15) + "/yr. If it earns 20%, that's " + fmt(inj * 0.20) + "/yr — a 2× return on the injection itself." : "⚠️ Capital injection is risky. Your current commercial allocation where applicable(" + yld.toFixed(1) + "%) is below the market hurdle (10%). Every extra dirham must return at least 10% — otherwise that money is better in equities or real estate. Focus on improving current operations before expanding.";// Capital scenarios var cs = $("capScenarios"); cs.innerHTML = ""; var scenarios = [ { pct: 25, label: "Conservative (+25%)", desc: "Small expansion, same team" }, { pct: 50, label: "Moderate (+50%)", desc: "New location or product line" }, { pct: 100, label: "Aggressive (+100%)", desc: "Full expansion, new market" } ]; scenarios.forEach(function(sc) { var amt = d.price * sc.pct / 100; var need = amt * Math.max(reqYield, hurdle); var need15 = amt * 0.15; cs.innerHTML += '
' + sc.label + '
' + fmt(amt) + '
Injection amount
Min profit needed: ' + fmt(need) + '/yr
At 15% target: ' + fmt(need15) + '/yr
' + sc.desc + '
'; });// ---- 05 GLOBAL TAX ---- var uaeTaxable = Math.max(0, d.profit - 375000); var uaeTax = uaeTaxable * 0.09; var uaeNet = d.profit - uaeTax; var usaNet = d.profit * 0.79; var ukNet = d.profit * 0.75; var gerNet = d.profit * 0.70; var indNet = d.profit * 0.65; var worldNet = d.profit * 0.76;var TAX = [ ["UAE 🇦🇪 (9%)", uaeNet, "#1f7a5c"], ["USA 🇺🇸 (21%)", usaNet, "#3a6b86"], ["UK 🇬🇧 (25%)", ukNet, "#7d5bd6"], ["Germany 🇩🇪 (30%)", gerNet, "#c98a1a"], ["India 🇮🇳 (~35%)", indNet, "#b4452f"], ["World Avg (~24%)", worldNet, "#9aa6ad"] ]; var tmx = Math.max.apply(null, TAX.map(function(o){ return o[1]; }), 1); var wt = $("wtBars"); wt.innerHTML = ""; TAX.forEach(function(o, i) { bar(wt, o[0], "net profit", o[1], tmx, o[2], i === 0); });var advVsAvg = Math.round((uaeNet / worldNet - 1) * 100); var advVsUsa = Math.round((uaeNet / usaNet - 1) * 100); $("wtNote").innerHTML = "Net profit in UAE: " + fmt(uaeNet) + " — roughly " + advVsAvg + "% more than world average (~24%) and " + advVsUsa + "% more than USA (21%). This tax edge feeds directly into valuation. Over " + d.years + " years, tax savings alone add " + fmt((uaeNet - worldNet) * d.years) + " to your wealth. (VAT 5% separate; free zones can be 0%.)";$("taxUaeNet").textContent = fmt(uaeNet); $("taxWorldNet").textContent = fmt(worldNet); $("taxAdvantage").textContent = fmt(uaeNet - worldNet) + "/yr"; $("taxMultiplier").textContent = mult.toFixed(1); $("taxYears").textContent = d.years; $("taxTotal").textContent = fmt((uaeNet - worldNet) * d.years * mult);// ---- 06 REAL ESTATE vs BUSINESS ---- var rePrice = +$("rePrice").value || d.price; var reYield = +$("reYield").value || 7; var reGrowth = +$("reGrowth").value || 5; var reService = +$("reService").value || 15; var reVacancy = +$("reVacancy").value || 5; var reMortgage = +$("reMortgage").value || 0;var grossRent = rePrice * (reYield / 100); var netRent = grossRent * (1 - reService / 100) * (1 - reVacancy / 100); var reAppreciation = rePrice * Math.pow(1 + reGrowth / 100, d.years); var reTotal = netRent * d.years + reAppreciation; var reNetYield = rePrice > 0 ? (netRent / rePrice * 100) : 0;$("reBizOutput").textContent = fmt(biz.total); $("reBizYield").textContent = yld.toFixed(1) + "%"; $("reBizRisk").textContent = risk === "low" ? "Low-Medium" : (risk === "med" ? "Medium" : "High"); $("reBizTax").textContent = "9% (0% to 375K)"; $("reBizLiquid").textContent = "Low (6-12 mo)";$("rePropOutput").textContent = fmt(reTotal); $("rePropYield").textContent = reNetYield.toFixed(1) + "%"; $("rePropRisk").textContent = "Low-Medium"; $("rePropTax").textContent = "4% transfer + 5% VAT"; $("rePropLiquid").textContent = "Medium (2-6 mo)";var reGap = biz.total - reTotal; var reGapPct = reTotal > 0 ? (reGap / reTotal * 100) : 0; $("reVerdict").className = "verdict" + (reGap > 0 ? "" : " warn"); $("reVerdict").innerHTML = reGap > 0 ? "✅ Business wins by " + fmt(reGap) + " (" + reGapPct.toFixed(0) + "%) over " + d.years + " years. Real estate offers stability and tangible asset, but the business generates " + fmt(biz.cumProfit) + " in cumulative profit plus " + fmt(biz.exitValue) + " exit value. If you prefer passive, stable income with lower risk → real estate. If you want maximum wealth creation and can handle operational risk → business." : "⚠️ Real estate wins by " + fmt(Math.abs(reGap)) + " over " + d.years + " years. Your business deal may be overpriced or underperforming. Consider: (1) negotiating price down, (2) improving profit margins, or (3) diversifying into real estate.";// ---- 07 VEHICLE REALITY ---- var carPrice = +$("carPrice").value || 500000; var carDeprec = +$("carDeprec").value || 12; var carCost = +$("carCost").value || 25000; var carValue = carPrice * Math.pow(1 - carDeprec / 100, d.years); var carTotalCost = carCost * d.years; var carNet = carValue - carTotalCost; var carLoss = carPrice - carNet;var carBars = $("carBars"); carBars.innerHTML = ""; var carMax = Math.max(carPrice, Math.abs(carNet), biz.total, gold); bar(carBars, "Initial vehicle cost", "AED " + fmt(carPrice), carPrice, carMax, "#6c7a85", false); bar(carBars, "Vehicle value after " + d.years + " yrs", "depreciated", carValue, carMax, "#9aa6ad", false); bar(carBars, "Maintenance + insurance", "total cost", carTotalCost, carMax, "#b4452f", false); bar(carBars, "Net vehicle position", "value - costs", carNet, carMax, "#8a2e1d", false); bar(carBars, "Same money in business", "profit + exit", biz.total, carMax, "#c08a2d", true); bar(carBars, "Same money in gold", "~8%/yr", gold, carMax, "#caa53c", false);$("carVerdict").className = "verdict" + (carNet Vehicle depreciation reality: A " + fmt(carPrice) + " vehicle loses " + fmt(carLoss) + " over " + d.years + " years (" + fmtPct(carLoss / carPrice / d.years, 1) + " annually). The same " + fmt(carPrice) + " in this business would return " + fmt(biz.total) + " — a " + (biz.total / Math.abs(carNet)).toFixed(1) + "× difference. Vehicles are consumption, not Partnership. If you need a vehicle for the business, lease or buy used to minimize capital drag.";// ---- 08 ROADMAP ---- $("roadGrowth").textContent = d.growth; var rm = $("roadmapGrid"); rm.innerHTML = ""; var targets = [2, 3, 4, 5, 6]; var currentMult = biz.total / totalCost; targets.forEach(function(tgt) { var isCurrent = currentMult >= tgt && currentMult 0 ? (Math.log(tgt) / Math.log(1 + d.growth / 100)).toFixed(1) : "∞"; var extraCap = d.price * (tgt - 1); var items = [ tgt === 2 ? "Hire 1-2 key staff" : (tgt === 3 ? "Open 2nd location" : (tgt === 4 ? "Franchise model" : (tgt === 5 ? "Regional expansion" : "IPO / Strategic sale"))), tgt === 2 ? "Systemize operations" : (tgt === 3 ? "New revenue line" : (tgt === 4 ? "M&A target" : (tgt === 5 ? "Digital platform" : "International markets"))), tgt === 2 ? "Manager in place" : (tgt === 3 ? "Capital: " + fmt(extraCap) : (tgt === 4 ? "Team: 15-20 people" : (tgt === 5 ? "Brand licensing" : "Exit at " + (tgt * mult).toFixed(1) + "×"))) ]; rm.innerHTML += '
' + tgt + '×
' + (isCurrent ? "CURRENT" : "~" + yearsNeeded + " yrs") + '
    ' + items.map(function(i){ return '
  • ' + i + '
  • '; }).join('') + '
'; });// ---- 09 MANAGEMENT ---- var ooProfit = d.profit; var ooVal = valuation(ooProfit, d.sector, d.region, "high", d.growth, "owner"); var mgProfit = Math.max(0, d.profit - d.mgr); var mgVal = valuation(mgProfit, d.sector, d.region, "low", d.growth, "managed");$("oo_income").textContent = fmt(ooProfit); $("oo_exit").textContent = fmt(ooVal); $("oo_mult").textContent = multiple(d.sector, d.region, "high", d.growth, ooProfit, "owner").toFixed(2) + "×"; $("mg_income").textContent = fmt(mgProfit); $("mg_exit").textContent = fmt(mgVal); $("mg_mult").textContent = multiple(d.sector, d.region, "low", d.growth, mgProfit, "managed").toFixed(2) + "×";var exitGap = ooVal > 0 ? Math.round((mgVal - ooVal) / ooVal * 100) : 0; var incGap = fmt(ooProfit - mgProfit); $("mgmtVerdict").className = "verdict" + (mgVal >= ooVal ? "" : " warn"); $("mgmtVerdict").innerHTML = mgVal >= ooVal ? "✅ Managed wins. You pocket " + incGap + " less per year, but you go passive and the exit value is " + exitGap + "% higher. If your goal is freedom, lifestyle, and a richer exit → hire a manager. The business becomes a true asset, not a job." : "⚠️ Owner-run wins on cash. Without a manager you pocket " + incGap + " more per year, but you work 40-60 hrs/week. The business depends on you, so it sells for less. If you want maximum cash now and enjoy operations → run it yourself. Plan to systemize within 2 years.";// ---- 10 CONSULTATION ---- $("recPhone").textContent = d.price = 1000000 && d.price 5000000 ? "Recommended for you ✓" : "";// ---- 11 REPORT ---- $("repDate").textContent = new Date().toLocaleDateString("en-GB", { day: '2-digit', month: 'short', year: 'numeric' }); var recCons = d.price > 5000000 ? "an in-person meeting" : (d.price >= 1000000 ? "an online deep-dive" : "a phone consultation");var repHTML = "Business Opportunity Summary

" + "Deal Parameters: " + IND_NAME[d.sector] + " in " + REGION_NAME[d.region] + " · Price " + fmt(d.price) + " · Profit " + fmt(d.profit) + "/yr · Growth " + d.growth + "% · " + d.years + "-year horizon

" + "Valuation: " + fmt(val) + " (" + mult.toFixed(2) + "× multiple) · Range " + fmt(val * 0.80) + " – " + fmt(val * 1.22) + "
" + "Deal Rating: " + rating + " · " + (gap >= 0 ? "Underpriced by " + fmtPct(gapPct / 100, 1) : "Overpriced by " + fmtPct(Math.abs(gapPct) / 100, 1)) + "
" + "Earnings Yield: " + yld.toFixed(1) + "% · Payback: " + (d.profit > 0 ? (d.price / d.profit).toFixed(1) : "—") + " yrs

" + "" + d.years + "-Year Output Comparison:
" + "• Business (" + REGION_NAME[d.region] + "): " + fmt(biz.total) + " (cumulative profit " + fmt(biz.cumProfit) + " + exit " + fmt(biz.exitValue) + ")
" + "• Global Equities: " + fmt(stock) + " · Gold: " + fmt(gold) + "
" + "• Dubai Real Estate: " + fmt(re) + " · Deposits: " + fmt(dep) + "

" + "Management Strategy:
" + "• Owner-run: Income " + fmt(ooProfit) + "/yr · Exit " + fmt(ooVal) + " · " + multiple(d.sector, d.region, "high", d.growth, ooProfit, "owner").toFixed(2) + "×
" + "• Managed: Income " + fmt(mgProfit) + "/yr · Exit " + fmt(mgVal) + " · " + multiple(d.sector, d.region, "low", d.growth, mgProfit, "managed").toFixed(2) + "×
" + "• Exit value difference: " + Math.abs(exitGap) + "% " + (mgVal >= ooVal ? "higher with manager" : "higher owner-run") + "

" + "Tax Advantage (UAE): Net profit " + fmt(uaeNet) + " vs world average " + fmt(worldNet) + " · " + advVsAvg + "% more after-tax wealth

" + "Capital Increase: At current yield, every 100% capital increase needs " + fmt(d.price * reqYield) + " extra profit/yr to maintain returns

" + "Recommended Next Step: " + recCons + "

" + "
" + "This report is generated by the Persian Horizon Business Intelligence Suite. Indicative only — not financial advice or a guaranteed return. Consult a licensed advisor before any decision." + "
";$("repBody").innerHTML = repHTML; window.__rep = repHTML.replace(/]+>/g, ' ').replace(/\s+/g, ' ').trim(); }// ==================== EVENT LISTENERS ==================== $("riskSeg").addEventListener("click", function(e) { var b = e.target.closest("button"); if (!b) return; risk = b.dataset.r; [].forEach.call(this.querySelectorAll("button"), function(x) { x.setAttribute("aria-pressed", x === b ? "true" : "false"); }); calc(); });$("mgmtSeg").addEventListener("click", function(e) { var b = e.target.closest("button"); if (!b) return; mgmt = b.dataset.m; [].forEach.call(this.querySelectorAll("button"), function(x) { x.setAttribute("aria-pressed", x === b ? "true" : "false"); }); calc(); });$("consCards").addEventListener("click", function(e) { var c = e.target.closest(".cc"); if (!c) return; cons = c.dataset.c; [].forEach.call(this.querySelectorAll(".cc"), function(x) { x.setAttribute("aria-pressed", x === c ? "true" : "false"); }); });var inputIds = ["price", "profit", "growth", "years", "transfer", "sector", "emirate", "mgrCost", "capPct", "capAmt", "rePrice", "reYield", "reGrowth", "reService", "reVacancy", "reMortgage", "carPrice", "carDeprec", "carCost"]; inputIds.forEach(function(id) { var el = $(id); if (el) { el.addEventListener("input", calc); el.addEventListener("change", calc); } });$("cBook").addEventListener("click", function() { var n = $("cName").value.trim(), p = $("cPhone").value.trim(), e = $("cEmail").value.trim(); if (!n || p.replace(/\D/g, "").length " + map[cons] + " consultation booked!
We'll contact you on WhatsApp within 24 hours. (Lead → CRM)"; });$("cSave").addEventListener("click", function() { $("cMsg").style.color = "var(--blue)"; $("cMsg").textContent = "💾 Analysis saved to your account. Access anytime."; });$("cShare").addEventListener("click", function() { if (navigator.share) { navigator.share({ title: "UAE Business Review", text: window.__rep || "", url: window.location.href }); } else { $("cMsg").style.color = "var(--blue)"; $("cMsg").textContent = "🔗 Report link copied to clipboard."; } });$("repCopy").addEventListener("click", function() { if (navigator.clipboard) navigator.clipboard.writeText(window.__rep || ""); $("repCopy").textContent = "Copied ✓"; setTimeout(function(){ $("repCopy").textContent = "📋 Copy Report Text"; }, 2000); });$("repEmail").addEventListener("click", function() { var subject = "UAE Business Review - Persian Horizon"; var body = window.__rep || ""; window.location.href = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body); });// Smooth scroll for nav links document.querySelectorAll('a[href^="#"]').forEach(function(a) { a.addEventListener('click', function(e) { e.preventDefault(); var target = document.querySelector(this.getAttribute('href')); if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }); });// Initial calculation calc();// ---- IFRAME INTEGRATION ---- if (window.self !== window.top) { document.body.classList.add('ph-in-iframe'); }setInterval(function() { if (window.parent !== window) { window.parent.postMessage({ type: 'phCalcHeight', height: document.documentElement.scrollHeight }, '*'); } }, 500);})(); WhatsApp