<?php
require_once("../includes/initialize.php");

$page->set_metadata();

$artnr         = 0;
$artikelThumbs = "";

if (isset($_GET['artnr'])) {
    if (!correctArtikelNummer($_REQUEST['artnr'])) {
        redirect_to("artikel.php");
    } else {
        $artnr = $_REQUEST['artnr'];
    }
} else {
    if (isset($_GET['omschr'])) {
        $a_artnr = explode('_', $_GET['omschr']);
        if (!correctArtikelNummer($a_artnr[0])) {
            redirect_to("artikel.php");
        } else {
            $artnr = $a_artnr[0];
        }
    } else {
        redirect_to("index.php");
    }
}

use kippers\videos\Video;
use kippers\documenten\Document;
use kippers\producten\Article;
use kippers\producten\Alternatives;
use kippers\projects\Projects;
use kippers\orders\Order_klant;
use \kippers\algemeen\Schema;
use kippers\orders\Btw;

$video        = new Video($database->getPDO(), $session);
$document     = new Document($database->getPDO(), $session);
$alternatives = new Alternatives($database->getPDO(), $session);
$projecten    = new Projects($database->getPDO(), $session);
$btw          = new Btw($database->getPDO());
$order        = new Order_klant($database->getPDO(), $btw, $session);
$schema       = new Schema();

$article      = Article::find_by_id($artnr);

$bartnr = str_replace(',', ' ', $article->bartnr);
$bartnr = str_replace('  ', ' ', $bartnr);

$omschr = str_replace(',', ' ', $article->omschr);
$omschr = str_replace('  ', ' ', $omschr);

// Veilige keywords generatie
$zoekwoorden = [];
$zoekwoorden[] = stripslashes($article->cat_naam);
$zoekwoorden[] = stripslashes($article->hfdgroep_naam);
$zoekwoorden[] = stripslashes($article->subgroep_naam);
if (!empty($article->ean13)) {
    $zoekwoorden[] = "ean {$article->ean13}";
}
if (!empty($article->merk)) {
    $zoekwoorden[] = $article->merk;
}
if (!empty($article->tag)) {
    $zoekwoorden[] = $article->tag;
}

// Genereer SEO URL — via Urlpad zodat de canonical exact gelijk is aan de links
// die de site zelf rendert én aan de productsitemap (zelfde Slugify-slug).
$urlpad_canonical = new \kippers\algemeen\Urlpad($database->getPDO(), $session);
$seo_url = $urlpad_canonical->pad_artikeldetail($article->artnr);
$canonical_url = 'https://www.kipperscreatif.fr' . $seo_url;

// Genereer meta tags
$meta_tags = array();

// Basis meta tags
$meta_tags[] = '<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />';
$meta_tags[] = '<meta name="googlebot" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />';
$meta_tags[] = '<meta name="revisit-after" content="7 days" />';
$meta_tags[] = '<meta name="language" content="' . htmlspecialchars($session->get_taal(), ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta name="author" content="Kippers Creatif" />';
$meta_tags[] = '<meta name="generator" content="Kippers Creatif CMS" />';

// Canonical URL — overschrijf de generieke canonical uit Page::getCanonical(),
// anders staan er twee (mogelijk tegenstrijdige) canonical-tags op de pagina.
$page->canonical = '<link rel="canonical" href="' . htmlspecialchars($canonical_url, ENT_QUOTES, 'UTF-8') . '" />';

// Open Graph tags
$meta_tags[] = '<meta property="og:title" content="' . htmlspecialchars($article->omschr, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="og:type" content="product" />';
$meta_tags[] = '<meta property="og:url" content="' . htmlspecialchars($canonical_url, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="og:image" content="' . htmlspecialchars($article->getImage(), ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="og:description" content="' . htmlspecialchars($page->metadescription, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="og:site_name" content="Kippers Creatif" />';
$meta_tags[] = '<meta property="og:locale" content="' . ($session->get_taal() == 'fr' ? 'fr_FR' : 'nl_NL') . '" />';

// Product specifieke meta tags
$meta_tags[] = '<meta property="product:price:amount" content="' . htmlspecialchars($article->cprijs, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="product:price:currency" content="EUR" />';
$availability = $article->isPreorder() ? 'preorder' : ($article->vrrd > 0 ? 'in stock' : 'out of stock');
$meta_tags[] = '<meta property="product:availability" content="' . $availability . '" />';
$meta_tags[] = '<meta property="product:brand" content="' . htmlspecialchars($article->merk, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta property="product:category" content="' . htmlspecialchars($article->subgroep_naam, ENT_QUOTES, 'UTF-8') . '" />';

// Twitter Card tags
$meta_tags[] = '<meta name="twitter:card" content="summary_large_image" />';
$meta_tags[] = '<meta name="twitter:title" content="' . htmlspecialchars($article->omschr, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta name="twitter:description" content="' . htmlspecialchars($page->metadescription, ENT_QUOTES, 'UTF-8') . '" />';
$meta_tags[] = '<meta name="twitter:image" content="' . htmlspecialchars($article->getImage(), ENT_QUOTES, 'UTF-8') . '" />';

// Alternatieve taal versies
$meta_tags[] = '<link rel="alternate" hreflang="fr" href="https://www.kipperscreatif.fr' . $seo_url . '" />';
$meta_tags[] = '<link rel="alternate" hreflang="nl" href="https://www.kipperscreatif.nl' . $seo_url . '" />';
$meta_tags[] = '<link rel="alternate" hreflang="x-default" href="https://www.kipperscreatif.fr' . $seo_url . '" />';

$page->keywords = implode("\n    ", $meta_tags);

$title = "{$omschr} ({$article->subgroep_naam}) - {$article->merk} {$bartnr}";
$titel = htmlentities($article->toon_artnr() . " - " . $article->omschr, ENT_QUOTES, 'UTF-8');

/*Voor het actief maken van de keuze in het topmenu*/
$cat_groep = getCatgroep(substr($article->categorie, 0, 3));

$alternatives->artnr = $article->artnr;
$alternatives->getAlsogroupid();

$article->artikelDetailImages();

$bodyid = "artikel{$cat_groep}";

//de inhoud en de zichtbaarheid van de 'tabs' onderaan de pagina bepalen
$videotab       = $video->showVideoLinks($article, 'article');
$descriptiontab = $article->toonTekstArtikelOfGroep();
$pdftab         = $document->showPDFLinks($article->artnr, $article->id_subgroep);
$inspiratietab  = $projecten->toonProjektenLijstArtikel($article->artnr);
$iteminfotab    = $article->artikelgegevens();

$active_array   = array('description' => '', 'video' => '', 'pdf' => '', 'iteminfo' => '', 'inspiratie' => '');
$selected_array = array('description' => 'false', 'video' => 'false', 'pdf' => 'false', 'iteminfo' => 'false', 'inspiratie' => 'false');

// Controleer of er überhaupt tabs zijn om te tonen
if (empty($videotab) && empty($descriptiontab) && empty($pdftab) && empty($inspiratietab) && empty($iteminfotab)) {
    $tabcontent = false;
} else {
    $tabcontent = true;

    // Als er een specifieke tab is geselecteerd via GET parameter
    if (isset($_GET['tab'])) {
        switch ($_GET['tab']) {
            case 'inspiration':
                if (!empty($inspiratietab)) {
                    $active_array['inspiratie'] = 'active';
                    $selected_array['inspiratie'] = 'true';
                }
                break;
            case 'video':
                if (!empty($videotab)) {
                    $active_array['video'] = 'active';
                    $selected_array['video'] = 'true';
                }
                break;
            case 'pdf':
                if (!empty($pdftab)) {
                    $active_array['pdf'] = 'active';
                    $selected_array['pdf'] = 'true';
                }
                break;
            case 'iteminfo':
                if (!empty($iteminfotab)) {
                    $active_array['iteminfo'] = 'active';
                    $selected_array['iteminfo'] = 'true';
                }
                break;
        }
    }

    // Als er geen actieve tab is, selecteer de eerste beschikbare tab
    if (!in_array('active', $active_array)) {
        if (!empty($iteminfotab)) {
            $active_array['iteminfo'] = 'active';
            $selected_array['iteminfo'] = 'true';
        } elseif (!empty($videotab)) {
            $active_array['video'] = 'active';
            $selected_array['video'] = 'true';
        } elseif (!empty($pdftab)) {
            $active_array['pdf'] = 'active';
            $selected_array['pdf'] = 'true';
        } elseif (!empty($inspiratietab)) {
            $active_array['inspiratie'] = 'active';
            $selected_array['inspiratie'] = 'true';
        } elseif (!empty($descriptiontab)) {
            $active_array['description'] = 'active';
            $selected_array['description'] = 'true';
        }
    }
}

$page->page_title = $title;
$page->metadescription = $title . " | " . tekst_t('Adviesprijs') . " " . '&#8364; ' . nf($article->cprijs);

$font = "paginatitel-ED color-evelinesdesign";
$json_schema = $schema->Products($article, $canonical_url);

$adminbalk = (((isAdmin() || $admin->magDesignerToegang())) ? "<div id='adminbar' class='row'>" . $admin->addAdminItems($article) . "</div>" : "");

?>

<!DOCTYPE html>
<html lang="<?php echo htmlspecialchars($session->get_taal(), ENT_QUOTES, 'UTF-8'); ?>">
<head>
    <?php echo $page->content; ?>
    <title><?php echo htmlspecialchars($page->page_title, ENT_QUOTES, 'UTF-8'); ?></title>
    <meta name="description" content="<?php echo htmlspecialchars($page->metadescription, ENT_QUOTES, 'UTF-8'); ?>"/>
    
    <?php echo $page->keywords; ?>
    <?php echo $json_schema; ?>

    <!-- Favicon -->
    <link rel="icon" type="image/x-icon" href="/favicon.ico">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="shortcut icon" href="/favicon.ico">

    <?php include('layouts/loader_metadata.php'); ?>
    <?php include('layouts/loader_css.php'); ?>

    <?php include('layouts/cookieconsent.php'); ?>
</head>

<body <?= $session->bodystyle; ?> id="<?php echo htmlspecialchars($bodyid, ENT_QUOTES, 'UTF-8'); ?>">

<div class="container-fluid page-inner">
    <div class="container px-0">
        <section class="page_header">
            <?php echo $session->account_info_links($cart, $auth); ?>

            <div id="site_header" class="row" style="background-color: #e9eff7 !important;">
                <div class="col-12">
                    <?php include('layouts/siteheader.php'); ?>
                </div>
            </div>
        </section>

        <section class="page_content">
            <?php echo $adminbalk; ?>

            <div class="row kippers-content-layout px-0 white-background">
                <div class="col-12">
                    <nav aria-label="breadcrumb" class="d-none d-sm-block">
                        <?php echo $article->breadcrumbDetail($menu, $session, $dbh); ?>
                    </nav>
                    <nav aria-label="breadcrumb" class="d-block d-sm-none mb-3">
                        <?php echo $article->breadcrumbDetailMobile($menu, $session, $dbh); ?>
                    </nav>
                </div>

                <div class="col-12">
                    <div class="main-page">
                        <h1 style="font-size: 2rem;"><?php echo htmlspecialchars($article->omschr, ENT_QUOTES, 'UTF-8'); ?></h1>

                        <div class="d-none d-sm-block">
                            <?php echo $admin->addAdminItems($article); ?>
                        </div>

                        <div class="row">
                            <div class="col-12 col-md-7">
                                <div class="product-slider mb-3" role="region" aria-label="Product afbeeldingen">
                                    <div class="thumbcarouselindicators">
                                        <div id="thumbcarousel" class="carousel slide" data-interval="false">
                                            <div class="carousel-inner">
                                                <?php echo $article->carousel_thumbs; ?>
                                            </div>

                                            <?php if ($article->tlr > 4) { ?>
                                                <a class="carousel-control-prev" href="#thumbcarousel" role="button" data-slide="prev" aria-label="Vorige afbeelding">
                                                    <i class="fas fa-arrow-left"></i>
                                                </a>
                                                <a class="carousel-control-next" href="#thumbcarousel" role="button" data-slide="next" aria-label="Volgende afbeelding">
                                                    <i class="fas fa-arrow-right"></i>
                                                </a>
                                            <?php } ?>
                                        </div>
                                    </div>

                                    <div id="uitwerking-carousel" class="carousel slide" data-interval="false" data-ride="carousel">
                                        <div class="carousel-inner">
                                            <?php echo $article->carousel; ?>
                                        </div>

                                        <?php if ($article->tlr > 0) { ?>
                                            <a class="carousel-control-prev" style="bottom: unset;" href="#uitwerking-carousel" role="button" data-slide="prev" aria-label="Vorige afbeelding">
                                                <i class="fa fa-chevron-left"></i>
                                            </a>
                                            <a class="carousel-control-next" style="bottom: unset;" href="#uitwerking-carousel" role="button" data-slide="next" aria-label="Volgende afbeelding">
                                                <i class="fa fa-chevron-right"></i>
                                            </a>
                                        <?php } ?>
                                    </div>
                                </div>

                                <div id="project_artikel"></div>
                            </div>

                            <div class="col-12 col-md-5 kolom-rechts">
                                <div class="artikel-info p-2 mb-3" style="background-color: #f3f3f3; border: 1px solid #CFD1D2;">
                                    <div class="itembestel mb-3">
                                        <?php echo $article->bestelinformation(); ?>
                                    </div>

                                    <?php //echo $article->toonArtikelThumbs(); ?>

                                    <!-- Beschrijving verplaatst naar artikel-info -->
                                    <div class="mt-3 artikel-beschrijving">

                                        <div class="artikel-beschrijving-content">
                                            <?php echo $article->toonTekstArtikelOfGroep(); ?>
                                        </div>
                                    </div>

                                    <div class="mt-3 itembestel-extra">
                                        <?php echo $article->showTags(); ?>
                                    </div>

                                    <div class="mt-3 itembestel-extra">
                                        <?php echo $article->showThema(); ?>
                                    </div>

                                </div>
                                <?php echo $order->toonBetaalLogos(); ?>
                            </div>
                        </div>

                        

                        <?php if (!empty($tabcontent)) { ?>
                            <div class="row">
                                <div class="col-12">
                                    <div class="nav nav-tabs w-100 mt-2" id="artikelDetailGegevens" role="tablist">
                                        <?php echo "<a href='#nav_iteminfo' class='nav-item nav-link {$active_array['iteminfo']}' id='nav_iteminfo_tab' data-toggle='tab' role='tab' aria-selected='{$selected_array['iteminfo']}'>" . tekst_t('Product informatie') . "</a>"; ?>

                                        <?php if (!empty($videotab)) {
                                            echo "<a href='#nav_videos' class='nav-item nav-link {$active_array['video']}' id='nav_videos_tab' data-toggle='tab' role='tab' aria-selected='{$selected_array['video']}'>" . tekst_t('Videos') . "</a>";
                                        }
                                        ?>

                                        <?php if (!empty($pdftab)) {
                                            echo "<a href='#nav_pdf' class='nav-item nav-link {$active_array['pdf']}' id='nav_pdf_tab' data-toggle='tab' role='tab' aria-selected='{$selected_array['pdf']}'>" . tekst_t('PDF') . "</a>";
                                        }
                                        ?>

                                        <?php if (!empty($inspiratietab)) {
                                            echo "<a href='#nav_inspiratie' class='nav-item nav-link {$active_array['inspiratie']}' id='nav_inspiratie_tab' data-toggle='tab' role='tab' aria-selected='{$selected_array['inspiratie']}'>" . tekst_t('Inspiratie') . "</a>";
                                        }
                                        ?>
                                    </div>

                                    <!-- Tab Content -->
                                    <div class="tab-content w-100 mt-3" id="artikelDetailGegevensContent">
                                        <!-- Product Informatie Tab -->
                                        <div class="tab-pane fade <?php echo $active_array['iteminfo'] ? 'show active' : ''; ?>" id="nav_iteminfo" role="tabpanel" aria-labelledby="nav_iteminfo_tab">
                                            <?php echo $iteminfotab; ?>
                                        </div>

                                        <!-- Video Tab -->
                                        <?php if (!empty($videotab)) { ?>
                                            <div class="tab-pane fade <?php echo $active_array['video'] ? 'show active' : ''; ?>" id="nav_videos" role="tabpanel" aria-labelledby="nav_videos_tab">
                                                <?php echo $videotab; ?>
                                            </div>
                                        <?php } ?>

                                        <!-- PDF Tab -->
                                        <?php if (!empty($pdftab)) { ?>
                                            <div class="tab-pane fade <?php echo $active_array['pdf'] ? 'show active' : ''; ?>" id="nav_pdf" role="tabpanel" aria-labelledby="nav_pdf_tab">
                                                <?php echo $pdftab; ?>
                                            </div>
                                        <?php } ?>

                                        <!-- Inspiratie Tab -->
                                        <?php if (!empty($inspiratietab)) { ?>
                                            <div class="tab-pane fade <?php echo $active_array['inspiratie'] ? 'show active' : ''; ?>" id="nav_inspiratie" role="tabpanel" aria-labelledby="nav_inspiratie_tab">
                                                <?php echo $inspiratietab; ?>
                                            </div>
                                        <?php } ?>
                                    </div>
                                </div>
                            </div>
                        <?php } ?>
                    </div>
                </div>
            </div>
        </section>

        <section class="page_footer">
            <?php include('layouts/footer.php'); ?>
        </section>
    </div> 
</div>


<?php include('layouts/loader_js.php'); ?>

<?php
// Product pageview teller (taalgebonden)
try {
    $excludeIps = getenv('IP_EXCLUDE_LIST') ?: ($_ENV['IP_EXCLUDE_LIST'] ?? '');
    $exclude    = array_filter(array_map('trim', explode(',', (string)$excludeIps)));
    $clientIp   = $_SERVER['REMOTE_ADDR'] ?? '';
    $isAdmin    = function_exists('isAdmin') ? isAdmin() : false;
    if (!$isAdmin && $clientIp && !in_array($clientIp, $exclude, true)) {
        $lang = strtolower($session->get_taal() ?: 'fr');
        $sth = $database->getPDO()->prepare("
            INSERT INTO article_views_daily(artnr, view_date, lang, views)
            VALUES(?, CURDATE(), ?, 1)
            ON DUPLICATE KEY UPDATE views = views + 1
        ");
        $sth->execute([(int)$artnr, $lang]);
    }
} catch (\Throwable $t) { /* ignore */ }
?>

<style>
/* Beschrijving styling (desktop + mobiel) */
.artikel-beschrijving-content img { max-width: 100%; height: auto; }
.artikel-beschrijving-content { word-wrap: break-word; overflow-wrap: anywhere; }
@media (max-width: 576px) {
  .artikel-info { padding: 12px !important; }
  .artikel-beschrijving h2, .artikel-beschrijving .h5 { font-size: 1.05rem !important; }
  .artikel-beschrijving-content { font-size: 0.95rem; line-height: 1.45; }
  /* Maak CTA en inputs makkelijk klikbaar op mobiel */
  .artikel-info .btn { width: 100%; }
  .artikel-info .form-control { width: 100%; max-width: 100%; }
  .product-slider { margin-bottom: 1rem; }
  .kolom-rechts { margin-top: 1rem; }
}
</style>
</body>
</html>