$base = "c:\Users\Rafael\Desktop\centro 03\servicos"

$IMGS = @(
  @{d="Refra%C3%A7%C3%A3o%20Ocular.png"; m="Refra%C3%A7%C3%A3o%20Ocular%20mobile.png"},
  @{d="Biomicroscopia.png"; m="%20Biomicroscopia%20mobile.png"},
  @{d="Tonometry.png"; m="Tonometry%20mobile.png"},
  @{d="Despiste%20Visual.png"; m="Despiste%20Visual%20mobile.png"},
  @{d="Acompanhamento%20Cl%C3%ADnico.png"; m="Acompanhamento%20Cl%C3%ADnico%20mobile.png"}
)

$MOBILE_SCRIPT = @'
  <script>
    const mvItems = document.querySelectorAll('.mv-item');
    document.querySelectorAll('.mv-face[data-bg-mobile]').forEach(face => { face.dataset.bgDesktop = face.style.backgroundImage; });
    function applyMobileImagesFinal() {
      const isMobile = window.innerWidth <= 768;
      document.querySelectorAll('.mv-face[data-bg-mobile]').forEach(face => {
        face.style.backgroundImage = isMobile ? face.dataset.bgMobile : face.dataset.bgDesktop;
      });
    }
    applyMobileImagesFinal();
    window.addEventListener('resize', applyMobileImagesFinal);
    mvItems.forEach(item => {
      item.addEventListener('click', () => {
        if (window.innerWidth > 768) return;
        const isActive = item.classList.contains('mv-active');
        mvItems.forEach(i => i.classList.remove('mv-active'));
        if (!isActive) item.classList.add('mv-active');
      });
    });
  </script>
'@

function Build-Slider($items) {
  $html = "      <div class=`"mv-slider`">`n"
  for ($i = 0; $i -lt $items.Count; $i++) {
    $t = $items[$i][0]; $d = $items[$i][1]
    $id = $IMGS[$i].d; $im = $IMGS[$i].m
    $a = if ($i -eq 0) { " mv-active" } else { "" }
    $html += "        <div class=`"mv-item$a`" tabindex=`"0`" role=`"button`" aria-label=`"$t`">`n"
    $html += "          <div class=`"mv-face`" style=`"background-image:url('../assets/images/Consultas Geral/$id')`" data-bg-mobile=`"url('../assets/images/Consultas Geral/$im')`">`n"
    $html += "            <span class=`"mv-face__title`">$t</span>`n"
    $html += "            <span class=`"mv-face__arrow material-symbols-outlined`" aria-hidden=`"true`">expand_more</span>`n"
    $html += "          </div>`n          <div class=`"mv-panel`"><div class=`"mv-panel__inner`">`n"
    $html += "            <span class=`"mv-panel__name`">$t</span>`n"
    $html += "            <p class=`"mv-panel__desc`">$d</p>`n"
    $html += "          </div></div>`n        </div>`n"
  }
  $html += "      </div>`n"
  return $html
}

function Build-Section($eyebrow, $h2, $desc, $items) {
  $slider = Build-Slider $items
  return @"
  <section class="sp-section sp-section--white">
    <div class="sp-container">
      <div class="mv-layout">
        <div class="mv-layout__text">
          <span class="sp-section__eyebrow">$eyebrow</span>
          <h2 class="sp-section__title">$h2</h2>
          <p class="sp-section__desc">$desc</p>
        </div>
$slider
      </div>
    </div>
  </section>
"@
}

$pages = @{
  "consulta-oculoplastica" = @{
    eyebrow="O Que Inclui"; h2="Pálpebras e Vias Lacrimais"
    desc="Avaliação especializada de alterações palpebrais e disfunção do sistema lacrimal, com orientação para o tratamento cirúrgico mais adequado a cada caso."
    items=@(@("Avaliação Palpebral","Análise das pálpebras superiores e inferiores quanto a excesso de pele, ptose e alterações de posicionamento."),@("Vias Lacrimais","Estudo da permeabilidade do sistema lacrimal e identificação de obstruções causadoras de lacrimejo excessivo."),@("Blefaroplastia","Orientação para remoção cirúrgica de excesso de pele e bolsas de gordura nas pálpebras."),@("Correção Palpebral","Tratamento de ectrópio, entrópio, ptose e outras alterações do bordo palpebral."),@("Plano Cirúrgico","Definição personalizada do procedimento mais adequado a cada caso clínico."))
  }
  "consulta-catarata" = @{
    eyebrow="O Que Inclui"; h2="Diagnóstico e Planeamento da Catarata"
    desc="Utilizamos equipamento de alta precisão para estadiar a catarata e planear a cirurgia com o cálculo exacto da lente intraocular ideal para cada doente."
    items=@(@("Biomicroscopia","Avaliação do grau de opacidade do cristalino e estadiamento detalhado da catarata."),@("Biometria Óptica","Cálculo preciso da lente intraocular por IOLMaster 500 (Carl Zeiss Meditec)."),@("Topografia Corneana","Avaliação da qualidade óptica com Pentacam para planeamento cirúrgico personalizado."),@("Acuidade Visual","Determinação da melhor visão corrigida antes e previsão do resultado pós-cirúrgico."),@("Orientação Cirúrgica","Escolha da lente intraocular e técnica de facoemulsificação mais adequadas."))
  }
  "consulta-cornea" = @{
    eyebrow="O Que Inclui"; h2="Avaliação Especializada da Córnea"
    desc="Consulta abrangente que cobre todas as patologias corneanas, desde o ceratocone às infecções e traumatismos, com exames imagiológicos de última geração."
    items=@(@("Topografia Corneana","Mapeamento detalhado da curvatura corneana para despiste de ceratocone e ectasias."),@("Paquimetria","Medição da espessura corneana para avaliação da progressão e elegibilidade cirúrgica."),@("Biomicroscopia","Exame da superfície corneana em busca de ceratite, úlceras ou cicatrizes."),@("Avaliação Refrativa","Estudo do astigmatismo irregular e o seu impacto na acuidade visual."),@("Plano Terapêutico","Orientação para lentes de contacto, crosslinking, segmentos de anel ou transplante."))
  }
  "consulta-diabetes" = @{
    eyebrow="O Que Inclui"; h2="Rastreio da Retinopatia Diabética"
    desc="Avaliação completa da retina para detectar, estadiar e tratar as complicações oculares do diabetes, prevenindo a perda de visão irreversível."
    items=@(@("Fundo Ocular","Exame da retina com dilatação para detecção e estadiamento da retinopatia diabética."),@("OCT Macular","Tomografia de coerência óptica para avaliação de edema macular e espessura retiniana."),@("Angiografia","Estudo da vasculatura retiniana para detecção de neovascularização e isquémia."),@("Estadiamento","Classificação do grau de retinopatia e definição do protocolo terapêutico."),@("Tratamento LASER","Fotocoagulação e injeções intravítreas de anti-VEGF conforme a evolução clínica."))
  }
  "consulta-estrabismo" = @{
    eyebrow="O Que Inclui"; h2="Alinhamento Visual em Crianças"
    desc="Consulta especializada em estrabismo, ambliopia e patologias lacrimais pediátricas, com abordagens adaptadas à faixa etária de cada criança."
    items=@(@("Avaliação do Desvio","Medição do ângulo de estrabismo e estudo detalhado da motilidade ocular."),@("Acuidade Visual","Avaliação adaptada à idade da criança, com despiste precoce de ambliopia."),@("Visão Binocular","Estudo da estereoscopia e capacidade de fusão das imagens dos dois olhos."),@("Sistema Lacrimal","Avaliação de obstrução nasolacrimal em bebés com lacrimejo excessivo."),@("Plano de Tratamento","Óculos, penso oclusor, toxina botulínica ou programação de cirurgia corretora."))
  }
  "consulta-glaucoma" = @{
    eyebrow="O Que Inclui"; h2="Diagnóstico e Monitorização do Glaucoma"
    desc="Avaliação completa do nervo óptico, pressão intraocular e campo visual, com tecnologia de última geração para detecção e seguimento do glaucoma."
    items=@(@("Tonometria","Medição da pressão intraocular para detecção precoce de hipertensão ocular."),@("OCT RNFL","Análise da camada de fibras nervosas retinianas por tomografia de coerência óptica."),@("Campimetria","Mapeamento computorizado do campo visual para avaliação do dano glaucomatoso."),@("Gonioscopia","Avaliação do ângulo da câmara anterior para classificação do tipo de glaucoma."),@("Monitorização","Vigilância regular e ajuste do tratamento hipotensor conforme a progressão."))
  }
  "blefaroplastia" = @{
    eyebrow="O Que Inclui"; h2="Cirurgia Palpebral Funcional e Estética"
    desc="A blefaroplastia combina a vertente funcional e estética, corrigindo a aparência e problemas que afectam a visão e o conforto ocular."
    items=@(@("Avaliação Palpebral","Análise do excesso de pele, bolsas de gordura, ptose e alterações do bordo palpebral."),@("Planeamento Cirúrgico","Definição personalizada das zonas de intervenção e técnica cirúrgica."),@("Blefaroplastia","Remoção de excesso de pele e gordura com incisões nas pregas naturais das pálpebras."),@("Pós-operatório","Resolução do edema e hematoma em 1 a 2 semanas; resultado definitivo ao fim de 1 mês."),@("Casos Associados","Tratamento de entrópio, ectrópio, xantelasma e aplicação de toxina botulínica."))
  }
  "cirurgia-catarata" = @{
    eyebrow="O Que Inclui"; h2="Cirurgia de Catarata Passo a Passo"
    desc="A facoemulsificação permite remover a catarata através de uma incisão mínima, sem sutura, com implante imediato de lente intraocular de última geração."
    items=@(@("Facoemulsificação","Fragmentação e aspiração do cristalino opaco por ultra-sons através de incisão de 2,2 mm."),@("Lente Intraocular","Implante de LIO premium: monofocal, multifocal ou tórica, adaptada a cada doente."),@("Sem Internamento","Cirurgia ambulatória de 15 a 20 minutos, sob anestesia local por colírio."),@("Recuperação Rápida","Visão melhorada nas primeiras 24 horas; regresso às actividades em 2 a 3 dias."),@("Seguimento","Consultas de controlo às 24 horas, 1 semana e 1 mês após a cirurgia."))
  }
  "cirurgia-refrativa" = @{
    eyebrow="O Que Inclui"; h2="Técnicas de Correção Refrativa"
    desc="Oferecemos as técnicas mais modernas de cirurgia refrativa, individualizadas para cada doente após avaliação criteriosa da córnea e do estado refrativo."
    items=@(@("LASIK Femtosegundo","Criação de flap corneano com laser femtosegundo e remodelação do estroma por excimer."),@("PRK","Ablação de superfície para córneas finas ou com contraindicação ao flap corneano."),@("Avaliação Pré-op","Topografia, paquimetria e aberrometria completas para confirmar elegibilidade."),@("Lente Fáquica","Implante de LIO fáquica para altos graus refractivos não elegíveis para laser."),@("Recuperação","Regresso às actividades no dia seguinte com LASIK; uma semana com PRK."))
  }
  "dacriocistorrinostomia" = @{
    eyebrow="O Que Inclui"; h2="Desobstrução das Vias Lacrimais"
    desc="A DCR cria uma nova comunicação entre o saco lacrimal e as fossas nasais, restabelecendo a drenagem das lágrimas e resolvendo as infecções recorrentes."
    items=@(@("Diagnóstico","Avaliação da permeabilidade das vias lacrimais por irrigação e dacriocistografia."),@("Técnica Externa","Abordagem cutânea pela base do nariz para criação de nova via lacrimal."),@("Técnica Endoscópica","Abordagem intranasal sem cicatriz externa, com taxa de sucesso superior a 85%."),@("Sonda de Silicone","Manutenção do novo canal aberto durante 1 a 3 meses de cicatrização."),@("Plugs Lacrimais","Alternativa conservadora para olho seco grave, colocados sob anestesia tópica."))
  }
}

# Pattern to match the sp-section--white block (with any indentation)
$pattern = '(?s)<section class="sp-section sp-section--white">.*?</section>'

$updated = 0
foreach ($slug in $pages.Keys) {
  $fpath = Join-Path $base "$slug.html"
  if (-not (Test-Path $fpath)) { Write-Host "SKIP: $slug.html"; continue }

  $p = $pages[$slug]
  $newSection = Build-Section $p.eyebrow $p.h2 $p.desc $p.items

  $content = [System.IO.File]::ReadAllText($fpath, [System.Text.Encoding]::UTF8)

  # Replace sp-section--white block
  $newContent = [regex]::Replace($content, $pattern, $newSection, [System.Text.RegularExpressions.RegexOptions]::Singleline)

  # Add mobile script if not present
  if ($newContent -notmatch 'applyMobileImagesFinal') {
    $newContent = $newContent -replace '<script src="\.\./assets/js/main\.js"></script>', "<script src=`"../assets/js/main.js`"></script>`n$MOBILE_SCRIPT"
  }

  [System.IO.File]::WriteAllText($fpath, $newContent, [System.Text.Encoding]::UTF8)
  Write-Host "OK: $slug.html"
  $updated++
}

# Now remove em dashes from ALL service pages and fix hero titles with dashes
Write-Host "`nRemoving em dashes from all pages..."
$allFiles = Get-ChildItem $base -Filter "*.html"
foreach ($f in $allFiles) {
  $content = [System.IO.File]::ReadAllText($f.FullName, [System.Text.Encoding]::UTF8)
  # Remove em dashes in text content (replace — with comma+space or just remove)
  $newContent = $content -replace ' — ', ' ' -replace '— ', '' -replace ' —', ''
  if ($newContent -ne $content) {
    [System.IO.File]::WriteAllText($f.FullName, $newContent, [System.Text.Encoding]::UTF8)
    Write-Host "  Dashes cleaned: $($f.Name)"
  }
}

Write-Host "`nDone. Updated $updated pages with mv-slider."
