<!DOCTYPE html>
<html lang="en">

<?php
include 'db.php';

if (!isset($_GET['slug']) || empty($_GET['slug'])) {
    header("Location: all-blogs");
    exit;
}

$slug = $conn->real_escape_string($_GET['slug']);

// Fetch active blog by slug
$sql = "SELECT * FROM blogs WHERE slug = '$slug' AND is_active = 1";
$result = $conn->query($sql);

if ($result->num_rows == 0) {
    // Blog not found or inactive
    header("Location: all-blogs");
    exit;
}

$blog = $result->fetch_assoc();

// Parse Image
$main_image = "uploads/blogs/" . $blog['image'];
if (!file_exists($main_image) || empty($blog['image'])) {
    $main_image = "assets/images/placeholder.jpg"; // fallback
}

// Parse Author
$author = !empty($blog['published_by']) ? htmlspecialchars($blog['published_by']) : 'Admin';

// Parse Categories for primary label
$b_cats = json_decode($blog['categories'], true);
$primary_cat_name = 'Blog';
if (is_array($b_cats) && count($b_cats) > 0) {
    $cat_id = intval($b_cats[0]);
    $cat_q = $conn->query("SELECT name FROM blog_categories WHERE id = $cat_id");
    if ($cat_q && $cat_q->num_rows > 0) {
        $primary_cat_name = $cat_q->fetch_assoc()['name'];
    }
}

// Parse Tags
$tags = json_decode($blog['tags'], true);

// Fetch Related Posts (3 active, preferring same categories, excluding current)
$related_blogs = [];
if (is_array($b_cats) && count($b_cats) > 0) {
    // First try to find blogs sharing the same categories
    $cat_clauses = [];
    foreach($b_cats as $rc) {
        $cat_clauses[] = "JSON_CONTAINS(categories, '\"" . intval($rc) . "\"')";
    }
    $cat_where = "(" . implode(" OR ", $cat_clauses) . ")";
    $related_sql = "SELECT id, title, slug, image, categories, published_at FROM blogs WHERE is_active = 1 AND id != {$blog['id']} AND $cat_where ORDER BY published_at DESC LIMIT 3";
    $related_result = $conn->query($related_sql);
    if ($related_result && $related_result->num_rows > 0) {
        while($r = $related_result->fetch_assoc()) {
            $related_blogs[] = $r;
        }
    }
}
// If not enough related by category, fill with latest
if (count($related_blogs) < 3) {
    $exclude_ids = [$blog['id']];
    foreach($related_blogs as $rb) $exclude_ids[] = $rb['id'];
    $exclude_str = implode(',', $exclude_ids);
    $fill_sql = "SELECT id, title, slug, image, categories, published_at FROM blogs WHERE is_active = 1 AND id NOT IN ($exclude_str) ORDER BY published_at DESC LIMIT " . (3 - count($related_blogs));
    $fill_result = $conn->query($fill_sql);
    if ($fill_result && $fill_result->num_rows > 0) {
        while($r = $fill_result->fetch_assoc()) {
            $related_blogs[] = $r;
        }
    }
}

// Helper to get category name
function getRelatedCatName($cat_id, $conn) {
    $q = $conn->query("SELECT name FROM blog_categories WHERE id = ".intval($cat_id));
    if($q && $q->num_rows > 0) return $q->fetch_assoc()['name'];
    return 'Blog';
}

// Dynamic Page URL for Sharing
$page_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$encoded_url = urlencode($page_url);
$encoded_title = urlencode($blog['title']);

$site_url = "https://www.jthompsontextiles.com";
$meta_title = !empty($blog['seo_title']) ? trim($blog['seo_title']) : trim($blog['title']) . " | James Thompson Textiles";
$meta_description = !empty($blog['seo_desc']) ? trim($blog['seo_desc']) : trim($blog['short_desc']);
if ($meta_description === '') {
    $meta_description = "Read blog updates from James Thompson Textiles.";
}

$seo_keywords_arr = json_decode($blog['seo_keywords'], true);
if (!is_array($seo_keywords_arr)) {
    $seo_keywords_arr = [];
}
$seo_keywords_arr = array_values(array_filter(array_map('trim', $seo_keywords_arr)));

$tags_keywords_arr = json_decode($blog['tags'], true);
if (!is_array($tags_keywords_arr)) {
    $tags_keywords_arr = [];
}
$tags_keywords_arr = array_values(array_filter(array_map('trim', $tags_keywords_arr)));

$meta_keywords = !empty($seo_keywords_arr)
    ? implode(', ', $seo_keywords_arr)
    : (!empty($tags_keywords_arr) ? implode(', ', $tags_keywords_arr) : "blog, james thompson textiles");

// Blog image is always used as SEO image (seo_image = image set on upload)
$meta_image_path = "assets/images/others/share-img.png";
if (!empty($blog['image']) && file_exists("uploads/blogs/" . $blog['image'])) {
    $meta_image_path = "uploads/blogs/" . $blog['image'];
} elseif (!empty($blog['seo_image']) && file_exists("uploads/blogs/" . $blog['seo_image'])) {
    $meta_image_path = "uploads/blogs/" . $blog['seo_image'];
}

$title = $meta_title;
$description = $meta_description;
$keywords = $meta_keywords;
$image = $site_url . "/" . ltrim($meta_image_path, '/');
$current_url = $site_url . "/blog-detail?slug=" . urlencode($blog['slug']);

?>

<?php include 'layouts/header.php'; ?>

<body>
<?php include 'layouts/navbar.php'; ?>
<main id="content" class="wrapper layout-page">
    
    <section class="z-index-2 position-relative pb-2 mb-5" data-animated-id="1">
        <div class="bg-body-secondary mb-3">
            <div class="container">
                <nav class="py-4 lh-30px" aria-label="breadcrumb">
                    <ol class="breadcrumb justify-content-center py-1 mb-0">
                        <li class="breadcrumb-item"><a title="Home" href="/" class="text-decoration-none text-dark">Home</a></li>
                        <li class="breadcrumb-item"><a title="Blogs" href="all-blogs" class="text-decoration-none text-dark">Blogs</a></li>
                        <li class="breadcrumb-item active text-muted" aria-current="page"><?= htmlspecialchars($blog['title']) ?></li>
                    </ol>
                </nav>
            </div>
        </div>
    </section>

    <section class="pt-10 pb-3 pb-lg-3" data-animated-id="2">
        <div class="container">
            <div class="row text-center justify-content-center">
                <div class="col-lg-10">
                    
                    <div class="text-center mb-13 pb-4">
                        <a href="all-blogs?category=<?= isset($cat_id) ? $cat_id : '' ?>" class="btn  shadow-none py-1 px-5 mb-4 rounded-pill" style="font-size: 13px;border: 1px solid #ababab !important;">
                            <?= htmlspecialchars($primary_cat_name) ?>
                        </a>
                        <h2 class="px-6 border-0 fw-bold mb-4 fs-2">
                            <?= htmlspecialchars($blog['title']) ?>
                        </h2>
                        
                        <ul class="list-inline fs-15px fw-semibold text-muted d-flex justify-content-center align-items-center mb-0 mt-4" style="list-style: none; padding-left: 0;">
                            <?php if(!empty($blog['published_by'])): ?>
                            <li class="border-end px-4">
                                By <span class="text-dark"><?= htmlspecialchars($blog['published_by']) ?></span>
                            </li>
                            <?php endif; ?>
                            <li class="list-inline-item px-4"><?= date('M j, Y', strtotime($blog['published_at'])) ?></li>
                            <?php if(!empty($blog['read_time'])): ?>
                            <li class="px-4 border-start"><i class="far fa-clock me-1"></i> <?= htmlspecialchars($blog['read_time']) ?></li>
                            <?php endif; ?>
                        </ul>
                    </div>
                    
                    <div class="post-content text-start mx-auto" style="max-width: 800px; font-size: 1.1rem; line-height: 1.8; color: #444;">
                        <?php if($main_image != 'assets/images/placeholder.jpg'): ?>
                            <div class="text-center mb-5">
                                <img src="<?= $main_image ?>" alt="<?= htmlspecialchars($blog['title']) ?>" class="img-fluid rounded shadow-sm w-100" style="max-height: 500px; object-fit: cover;">
                            </div>
                        <?php endif; ?>
                        
                        <!-- Main Content output from CKEditor -->
                        <?= $blog['content'] ?>
                    </div>
                    
                    <div class="row no-gutters pt-5 mt-5 justify-content-sm-between align-items-center mx-auto" style="max-width: 850px;">
                        
                        <!-- Tags List -->
                        <div class="col-sm-8 mb-4 mb-sm-0 text-start">
                            <?php if(is_array($tags) && count($tags) > 0): ?>
                            <ul class="list-inline fw-semibold m-0">
                                <?php foreach($tags as $t): $t = trim($t); if(empty($t)) continue; ?>
                                <li class="list-inline-item me-2 mb-2">
                                    <a href="all-blogs?tag=<?= urlencode($t) ?>" class="text-secondary hover-hover-underline text-decoration-none bg-light px-5 py-3 rounded-pill" style="font-size: 13px;">#<?= htmlspecialchars($t) ?></a>
                                </li>
                                <?php endforeach; ?>
                            </ul>
                            <?php endif; ?>
                        </div>
                        
                        <!-- Social Share -->
                        <div class="col-sm-4 d-flex justify-content-sm-end align-items-center">
                            <label class="text-secondary fw-semibold me-3 mb-0" style="font-size: 14px;">Share:</label>
                            <ul class="list-inline mb-0 lh-1 d-flex gap-5 mx-4">
                                <li class="list-inline-item me-0">
                                    <a href="https://twitter.com/intent/tweet?url=<?= $encoded_url ?>&text=<?= $encoded_title ?>" target="_blank" class="fs-6 text-primary hover-hover-underline">
                                        <i class="fab fa-x-twitter"></i>
                                    </a>
                                </li>
                                <li class="list-inline-item me-0">
                                    <a href="https://www.facebook.com/sharer/sharer.php?u=<?= $encoded_url ?>" target="_blank" class="fs-6 text-primary hover-hover-underline">
                                        <i class="fab fa-facebook-f"></i>
                                    </a>
                                </li>
                                <li class="list-inline-item me-0">
                                    <a href="https://www.linkedin.com/shareArticle?mini=true&url=<?= $encoded_url ?>&title=<?= $encoded_title ?>" target="_blank" class="fs-6 text-primary hover-hover-underline">
                                        <i class="fab fa-linkedin-in"></i>
                                    </a>
                                </li>
                                <li class="list-inline-item me-0">
                                    <a href="mailto:?subject=<?= $encoded_title ?>&body=Check out this blog: <?= $encoded_url ?>" class="fs-6 text-primary hover-hover-underline">
                                        <i class="fas fa-envelope"></i>
                                    </a>
                                </li>
                                <li class="list-inline-item me-0">
                                    <a href="javascript:void(0);" 
                                       onclick="copyBlogLink()" 
                                       class="fs-6 text-primary hover-hover-underline"
                                       title="Copy Link">
                                        <i class="fas fa-link"></i>
                                    </a>
                                </li>
                            </ul>
                        </div>
                        
                        <div class="col-12 mt-5 mb-5">
                            <div class="border-bottom"></div>
                        </div>
                    </div>
                    
                    
                    <?php if(count($related_blogs) > 0): ?>
                    <!-- Related Posts Section -->
                    <div class="pt-5 pb-13 pb-lg-15 mx-auto text-start" id="post_related">
                        <div class="text-center"><h2 class="mb-0 mt-8 fs-3 fw-bold">Related Blogs</h2></div>

                        <div class="row gy-50px mt-3" style="row-gap: 50px;">
                            <?php foreach($related_blogs as $rel): 
                                $r_img = "uploads/blogs/" . $rel['image'];
                                if(!file_exists($r_img) || empty($rel['image'])) $r_img = "assets/images/placeholder.jpg";
                                
                                $rel_cats = json_decode($rel['categories'], true);
                                $rel_cat_name = 'Blog';
                                $rel_cat_id = 0;
                                if(is_array($rel_cats) && count($rel_cats) > 0) {
                                    $rel_cat_id = $rel_cats[0];
                                    $rel_cat_name = getRelatedCatName($rel_cat_id, $conn);
                                }
                            ?>
                            <div class="col-sm-6 col-lg-4 mb-4">
                                <article class="card card-post-grid-2 bg-transparent border-0">
                                    <figure class="card-img-top mb-4 position-relative overflow-hidden" style="border-radius: 8px;">
                                        <a href="blog-detail?slug=<?= $rel['slug'] ?>" class="hover-shine hover-zoom-in d-block" title="<?= htmlspecialchars($rel['title']) ?>">
                                            <img src="<?= $r_img ?>" class="img-fluid w-100" alt="<?= htmlspecialchars($rel['title']) ?>" style="height: 240px; object-fit: cover;">
                                        </a>
                                    </figure>
                                    <div class="card-body mt-4 p-0">
                                        <ul class="post-meta list-inline lh-1.5 d-flex flex-wrap fs-13px text-uppercase ls-1 fw-semibold m-0 text-muted" style="font-size: 12px; letter-spacing: 0.5px;">
                                            <li class="list-inline-item border-end pe-3 me-3">
                                                <a class="text-reset text-decoration-none text-primary-hover" href="all-blogs?category[]=<?= $rel_cat_id ?>" title="<?= htmlspecialchars($rel_cat_name) ?>"><?= htmlspecialchars($rel_cat_name) ?></a>
                                            </li>
                                            <li class="list-inline-item"><?= date('M jS, Y', strtotime($rel['published_at'])) ?></li>
                                        </ul>
                                        <h5 class="card-title fs-5 lh-1.5 mt-3 pt-2 mb-0 fw-semibold">
                                            <a class="text-decoration-none text-primary fs-18px" href="blog-detail?slug=<?= $rel['slug'] ?>" title="<?= htmlspecialchars($rel['title']) ?>">
                                                <?= htmlspecialchars($rel['title']) ?>
                                            </a>
                                        </h5>
                                    </div>
                                </article>
                            </div>
                            <?php endforeach; ?>
                        </div>
                    </div>
                    <?php endif; ?>

                </div>
            </div>
        </div>
    </section>
</main>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

<script>
function copyBlogLink() {
    const blogUrl = "<?= $page_url ?>";

    navigator.clipboard.writeText(blogUrl).then(function() {
        alert("Link copied to clipboard!");
    }, function(err) {
        alert("Failed to copy link.");
    });
}
</script>

<?php include 'layouts/footer.php'; ?>
</body>
</html>
