import Script from 'next/script';

function safeGaId(value: string): string | null {
  const id = value.trim();
  return /^G-[A-Z0-9]+$/i.test(id) || /^UA-\d+-\d+$/.test(id) ? id : null;
}

function safePixelId(value: string): string | null {
  const id = value.trim();
  return /^\d{15,16}$/.test(id) ? id : null;
}

export default function AnalyticsScripts({ gaId, facebookPixelId }: { gaId: string; facebookPixelId: string }) {
  const ga = safeGaId(gaId);
  const pixel = safePixelId(facebookPixelId);
  if (!ga && !pixel) return null;

  return (
    <>
      {ga ? (
        <>
          <Script src={`https://www.googletagmanager.com/gtag/js?id=${ga}`} strategy="afterInteractive" />
          <Script id="ga4" strategy="afterInteractive">
            {`window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','${ga}');`}
          </Script>
        </>
      ) : null}
      {pixel ? (
        <Script id="facebook-pixel" strategy="afterInteractive">
          {`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init','${pixel}');fbq('track','PageView');`}
        </Script>
      ) : null}
    </>
  );
}
