// app/beach/BeachClientPage.tsx

'use client';

import { useEffect, useState } from 'react';
import { IoIosMail } from "react-icons/io";
import Footer from '../components/Footer';
import Header from '../components/Header';
import BeachRegistrationForm from './BeachRegistrationForm';

export default function BeachClientPage({ config }: { config: any }) {
    const [timeInfo, setTimeInfo] = useState({
        dateStr: 'Laddar...',
        matchStr: 'Laddar...',
        deadlineText: 'Laddar...',
        isClosed: false,
    });

    useEffect(() => {
        const updateTournamentInfo = () => {
            const matchStart = new Date(config.beachPage.matchStart);
            const now = new Date();
            const infoGathering = new Date(matchStart.getTime() - 30 * 60000);
            const closingDate = new Date(matchStart.getTime() - 24 * 60 * 60000);
            const dateOptions: Intl.DateTimeFormatOptions = { day: 'numeric', month: 'long', year: 'numeric' };
            const timeOptions: Intl.DateTimeFormatOptions = { hour: '2-digit', minute: '2-digit' };

            setTimeInfo({
                dateStr: matchStart.toLocaleDateString('sv-SE', dateOptions),
                matchStr: `Matchstart kl.${matchStart.toLocaleTimeString('sv-SE', timeOptions)} (Infosamling kl.${infoGathering.toLocaleTimeString('sv-SE', timeOptions)})`,
                deadlineText: `Anmälan stänger den ${closingDate.toLocaleDateString('sv-SE', dateOptions)} kl.${closingDate.toLocaleTimeString('sv-SE', timeOptions)} (24 timmar innan start) eller om alla platser har blivit fyllda.`,
                isClosed: config.beachPage.isClosedOverride || now >= closingDate,
            });
        };
        updateTournamentInfo();
    }, [config]);

    return (
        <div className="min-h-screen flex flex-col font-sans bg-white text-black">
            <Header />

            <main className="grow flex flex-col items-center bg-[#c8e9f2] bg-[url('/images/volleyball-net.webp')] bg-cover bg-center bg-no-repeat w-full pb-20">
                <section className="flex flex-col items-center text-center w-full px-1.25">
                    <h2 className="mt-12.5"><img className="max-w-62.5" src="/images/hk-mosf.webp" alt="Mat- & Sommarfesten" /></h2>
                    <h1 className="font-beachday text-[clamp(45px,9vw,80px)] text-[#fdb84b] uppercase leading-none m-[20px_0_10px_0]">Beachturnering</h1>
                    <p className="font-bold italic text-[25px] mb-5 text-black">Samla ihop ett kompisgäng och anmäl er!</p>

                    {timeInfo.isClosed && (
                        <div className="bg-black p-5 rounded-[20px] my-5 mx-1.25 w-full max-w-150 shadow-xl border-l-8 border-red-600">
                            <h3 className="text-red-500 text-[clamp(1.5rem,6.5vw,2rem)] font-bold pb-2.5 text-center">Anmälan är stängd!</h3>
                            <p className="text-white text-center whitespace-pre-wrap">{config.beachPage.closeReason}</p>
                        </div>
                    )}

                    <div className="bg-[#b1e0e8] p-[0_20px_20px_20px] rounded-[20px] my-7.5 mx-1.25 flex flex-col items-center text-center w-full max-w-200 shadow-lg">
                        {/* INFORMATION TEXT (Var, När, Regler, etc.) */}
                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Var:</h4>
                        <p className="text-black text-[18px] m-[4px_10px]"><a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://maps.app.goo.gl/vJcdSDCbvdGYXPNY6">Kvickbadet</a> i Höganäs</p>

                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">När:</h4>
                        <p className="text-black text-[18px] m-[4px_10px]">{timeInfo.dateStr}</p>
                        <p className="text-black text-[18px] m-[4px_10px]">{timeInfo.matchStr}</p>
                        <p className="text-black text-[18px] m-[4px_10px]">
                            Samtidigt som <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href={config.beachPage.festivalLink}>Höganäs Mat- & Sommarfest</a>
                        </p>

                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Regler:</h4>
                        <p className="text-black text-[18px] m-[4px_10px] max-w-150">Matcherna spelas 4v4 med <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/volleyboll">inomhusregler</a>, förutom poängräkningen som följer reglerna för <a target="_blank" rel="noreferrer" className="font-medium text-[#cc8124] hover:underline" href="https://www.volleyboll.se/forbundet/valkommen-till-volleyboll/grenar-och-spelformer/beachvolley">beachvolleyboll</a>.</p>

                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Klasser:</h4>
                        <p className="text-black text-[18px] m-[4px_10px] max-w-150">
                            Turneringen kan komma att delas upp i tre olika klasser beroende på antal anmälda lag och baserat på nivå:<br />
                            <strong className="text-green-700">Grön</strong> (Nybörjare),{' '}
                            <strong className="text-[#0f65bf]">Blå</strong> (Amatör),{' '}
                            <strong className="text-black">Svart</strong> (Proffs)
                        </p>
                        <p className="text-black text-[18px] m-[4px_10px] max-w-150 italic">Gör en gissning i vilken nivå ni tror att ert lag skulle passa och skriv gärna något i anmälan om ni är osäkra.</p>

                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Kostnad:</h4>
                        <p className="text-black text-[18px] m-[4px_10px]">Gratis!!!</p>

                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Anmälan:</h4>
                        <p className="text-black text-[18px] m-[4px_10px] max-w-150">Anmälan görs genom anmälningsformuläret nedan. Du får ett bekräftelsemejl när vi kollat igenom er anmälan.</p>
                        <p className="text-black text-[18px] m-[4px_10px] italic">{timeInfo.deadlineText}</p>

                        {/* Övrig info sektionen */}
                        <h4 className="text-black font-bold text-[1.25rem] mt-5 mb-0 italic">Övrig info:</h4>
                        {(config.beachPage?.otherInfo || "").split('\n').map((line: string, i: number) => (
                            line.trim() && <p key={i} className="text-black text-[18px] m-[4px_10px]">{line}</p>
                        ))}

                        {/* Pris sektionen */}
                        <h4 className="font-beachday uppercase text-[30px] font-medium p-2.5 mt-5 text-black">
                            {config.beachPage?.prizesText || "Fina priser till alla pallplatser! 🏆"}
                        </h4>
                    </div>
                </section>

                {/* Rendera formuläret endast om anmälan är öppen */}
                {!timeInfo.isClosed && <BeachRegistrationForm />}

                <section className="w-full flex justify-center px-1.25 mt-5">
                    <div className="bg-[#FAAC4F] flex flex-col justify-center items-center py-2.5 rounded-[20px] m-[10px_5px] w-full max-w-100 shadow-md">
                        <h3 className="text-white text-[clamp(1.5rem,6.5vw,2rem)] text-center font-bold">Kontakta oss</h3>
                        <a href="mailto:beach@lerbergetsvolleyboll.se?subject=Beach%20turnering" className="group flex justify-center items-center text-black font-bold text-[1.1rem] mt-2 relative pb-1">
                            <IoIosMail className="h-7 w-7 mr-2" size={24} />
                            <span>beach@lerbergetsvolleyboll.se</span>
                            <span className="absolute bottom-0 left-0 w-full h-0.5 bg-black transform scale-x-0 transition-transform duration-300 origin-left group-hover:scale-x-100" />
                        </a>
                    </div>
                </section>
            </main>

            <Footer />
        </div>
    );
}