<?php $__env->startSection('title', 'Hotspots — Page ' . $page->page_number); ?>

<?php $__env->startPush('styles'); ?>
<style>
    .hotspot-editor-wrap { position: relative; display: inline-block; max-width: 100%; cursor: crosshair; }
    .hotspot-editor-wrap img { max-width: 100%; display: block; border: 1px solid #e5e7eb; border-radius: 6px; }
    .hs-rect {
        position: absolute;
        border: 2px solid #4f46e5;
        background: rgba(79,70,229,.15);
        cursor: pointer;
        box-sizing: border-box;
    }
    .hs-rect .hs-label {
        position: absolute;
        top: -20px;
        left: 0;
        background: #4f46e5;
        color: #fff;
        font-size: .6rem;
        padding: 1px 5px;
        white-space: nowrap;
        border-radius: 3px;
    }
    .hs-rect .hs-del {
        position: absolute;
        top: -8px;
        right: -8px;
        width: 18px; height: 18px;
        background: #ef4444;
        color: #fff;
        border: none;
        border-radius: 50%;
        font-size: .6rem;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    #drawRect {
        position: absolute;
        border: 2px dashed #f59e0b;
        background: rgba(245,158,11,.1);
        pointer-events: none;
        display: none;
    }
</style>
<?php $__env->stopPush(); ?>

<?php $__env->startSection('content'); ?>
<div class="d-flex align-items-center gap-3 mb-3">
    <a href="<?php echo e(route('admin.newspapers.pages', $page->newspaper)); ?>" class="btn btn-sm btn-outline-secondary"><i class="bi bi-arrow-left"></i></a>
    <div>
        <h5 class="mb-0">Hotspot Editor — Page <?php echo e($page->page_number); ?></h5>
        <small class="text-muted"><?php echo e($page->newspaper->publish_date->format('d M Y')); ?></small>
    </div>
</div>

<div class="row g-3">
    <div class="col-lg-8">
        <div class="card">
            <div class="card-header py-3 px-4">
                <i class="bi bi-pin-map me-2"></i>Draw Hotspot Areas
                <small class="text-muted ms-2">Click and drag on the image to define a clickable area</small>
            </div>
            <div class="card-body p-3 text-center overflow-auto">
                <div class="hotspot-editor-wrap" id="hsWrap">
                    <img src="<?php echo e($page->image_url); ?>" id="hsImage" alt="Page <?php echo e($page->page_number); ?>">
                    <div id="drawRect"></div>
                    <?php $__currentLoopData = $page->hotspots; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $hs): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                        <div class="hs-rect" data-id="<?php echo e($hs->id); ?>"
                             style="left:<?php echo e($hs->x_percent); ?>%;top:<?php echo e($hs->y_percent); ?>%;width:<?php echo e($hs->width_percent); ?>%;height:<?php echo e($hs->height_percent); ?>%">
                            <?php if($hs->title): ?><div class="hs-label"><?php echo e($hs->title); ?></div><?php endif; ?>
                            <button type="button" class="hs-del" data-id="<?php echo e($hs->id); ?>"><i class="bi bi-x"></i></button>
                        </div>
                    <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
                </div>
            </div>
        </div>
    </div>

    <div class="col-lg-4">
        <div class="card">
            <div class="card-header py-3 px-4"><i class="bi bi-plus-circle me-2"></i>Add Hotspot</div>
            <div class="card-body p-4">
                <form id="hotspotForm" method="POST" action="<?php echo e(route('admin.hotspots.store', $page)); ?>">
                    <?php echo csrf_field(); ?>
                    <div class="mb-3">
                        <label class="form-label fw-semibold">Title</label>
                        <input type="text" name="title" id="hs_title" class="form-control" placeholder="Article title or label">
                    </div>
                    <div class="row g-2 mb-3">
                        <div class="col-6">
                            <label class="form-label fw-semibold" style="font-size:.75rem">X %</label>
                            <input type="number" name="x_percent" id="hs_x" class="form-control form-control-sm" step="0.01" min="0" max="100" required>
                        </div>
                        <div class="col-6">
                            <label class="form-label fw-semibold" style="font-size:.75rem">Y %</label>
                            <input type="number" name="y_percent" id="hs_y" class="form-control form-control-sm" step="0.01" min="0" max="100" required>
                        </div>
                        <div class="col-6">
                            <label class="form-label fw-semibold" style="font-size:.75rem">Width %</label>
                            <input type="number" name="width_percent" id="hs_w" class="form-control form-control-sm" step="0.01" min="1" max="100" required>
                        </div>
                        <div class="col-6">
                            <label class="form-label fw-semibold" style="font-size:.75rem">Height %</label>
                            <input type="number" name="height_percent" id="hs_h" class="form-control form-control-sm" step="0.01" min="1" max="100" required>
                        </div>
                    </div>
                    <div class="mb-3">
                        <label class="form-label fw-semibold">Link Type</label>
                        <select name="link_type" id="hs_type" class="form-select">
                            <option value="url">External URL</option>
                            <option value="page">Page Number</option>
                            <option value="anchor">Anchor ID</option>
                        </select>
                    </div>
                    <div class="mb-3">
                        <label class="form-label fw-semibold" id="link_label">Link Value</label>
                        <input type="text" name="link_value" id="hs_link" class="form-control"
                               placeholder="https://... or page number or anchor">
                    </div>
                    <div class="form-check mb-3">
                        <input class="form-check-input" type="checkbox" name="is_active" id="hs_active" value="1" checked>
                        <label class="form-check-label" for="hs_active">Active</label>
                    </div>
                    <button type="submit" class="btn btn-primary w-100"><i class="bi bi-plus me-1"></i>Add Hotspot</button>
                </form>
            </div>
        </div>

        <?php if($page->hotspots->count()): ?>
            <div class="card mt-3">
                <div class="card-header py-3 px-4"><i class="bi bi-list me-2"></i>Existing Hotspots</div>
                <div class="list-group list-group-flush">
                    <?php $__currentLoopData = $page->hotspots; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $hs): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                        <div class="list-group-item d-flex align-items-center gap-2 py-2 px-3">
                            <i class="bi bi-pin-map text-primary"></i>
                            <div class="flex-1 min-w-0">
                                <div style="font-size:.8rem;font-weight:600"><?php echo e($hs->title ?: 'Untitled'); ?></div>
                                <div style="font-size:.68rem;color:#9ca3af"><?php echo e($hs->link_type); ?>: <?php echo e(Str::limit($hs->link_value, 30)); ?></div>
                            </div>
                            <form method="POST" action="<?php echo e(route('admin.hotspots.destroy', $hs)); ?>" onsubmit="return confirm('Delete?')">
                                <?php echo csrf_field(); ?> <?php echo method_field('DELETE'); ?>
                                <button type="submit" class="btn btn-xs btn-outline-danger" style="font-size:.68rem;padding:2px 6px">
                                    <i class="bi bi-trash"></i>
                                </button>
                            </form>
                        </div>
                    <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
                </div>
            </div>
        <?php endif; ?>
    </div>
</div>
<?php $__env->stopSection(); ?>

<?php $__env->startPush('scripts'); ?>
<script>
(function () {
    var wrap     = document.getElementById('hsWrap');
    var img      = document.getElementById('hsImage');
    var drawRect = document.getElementById('drawRect');
    var startX = 0, startY = 0, drawing = false;

    /* ── Coordinate helper ─────────────────────────────────────
     * Returns mouse position relative to #hsWrap (the position:relative
     * ancestor of drawRect), clamped to wrap bounds.
     * Using wrap — NOT img — so the reference matches drawRect's
     * absolute positioning context exactly.
     ─────────────────────────────────────────────────────────── */
    function wrapCoords(e) {
        var r = wrap.getBoundingClientRect();
        return {
            x: Math.max(0, Math.min(e.clientX - r.left, r.width)),
            y: Math.max(0, Math.min(e.clientY - r.top,  r.height))
        };
    }

    /* ── Draw start ────────────────────────────────────────── */
    wrap.addEventListener('mousedown', function (e) {
        /* Don't start a new draw if clicking an existing hotspot or its children */
        if (e.target.closest('.hs-rect')) return;
        e.preventDefault();

        drawing = true;
        var p  = wrapCoords(e);
        startX = p.x;
        startY = p.y;

        drawRect.style.cssText =
            'display:block;position:absolute;' +
            'left:' + startX + 'px;top:' + startY + 'px;' +
            'width:0;height:0;';
    });

    /* ── Draw rubber-band ──────────────────────────────────── */
    window.addEventListener('mousemove', function (e) {
        if (!drawing) return;
        var p    = wrapCoords(e);
        var left = Math.min(p.x, startX);
        var top  = Math.min(p.y, startY);
        var w    = Math.abs(p.x - startX);
        var h    = Math.abs(p.y - startY);
        drawRect.style.left   = left + 'px';
        drawRect.style.top    = top  + 'px';
        drawRect.style.width  = w    + 'px';
        drawRect.style.height = h    + 'px';
    });

    /* ── Draw end → fill form ──────────────────────────────── */
    window.addEventListener('mouseup', function (e) {
        if (!drawing) return;
        drawing = false;
        drawRect.style.display = 'none';

        var p  = wrapCoords(e);
        var x1 = Math.min(p.x, startX);
        var y1 = Math.min(p.y, startY);
        var w  = Math.abs(p.x - startX);
        var h  = Math.abs(p.y - startY);
        if (w < 5 || h < 5) return;   /* too small — ignore */

        /* Use wrap dimensions as the 100% reference — same reference
           the frontend uses when rendering hotspots over the image */
        var bW = wrap.clientWidth;
        var bH = wrap.clientHeight;

        document.getElementById('hs_x').value = (x1 / bW * 100).toFixed(2);
        document.getElementById('hs_y').value = (y1 / bH * 100).toFixed(2);
        document.getElementById('hs_w').value = (w  / bW * 100).toFixed(2);
        document.getElementById('hs_h').value = (h  / bH * 100).toFixed(2);
    });

    /* ── Touch support (tablet/mobile) ────────────────────── */
    wrap.addEventListener('touchstart', function (e) {
        if (e.target.closest('.hs-rect')) return;
        e.preventDefault();
        var t = e.touches[0];
        drawing = true;
        var r  = wrap.getBoundingClientRect();
        startX = Math.max(0, t.clientX - r.left);
        startY = Math.max(0, t.clientY - r.top);
        drawRect.style.cssText =
            'display:block;position:absolute;' +
            'left:' + startX + 'px;top:' + startY + 'px;' +
            'width:0;height:0;';
    }, { passive: false });

    wrap.addEventListener('touchmove', function (e) {
        if (!drawing) return;
        e.preventDefault();
        var t    = e.touches[0];
        var r    = wrap.getBoundingClientRect();
        var px   = Math.max(0, Math.min(t.clientX - r.left, r.width));
        var py   = Math.max(0, Math.min(t.clientY - r.top,  r.height));
        drawRect.style.left   = Math.min(px, startX) + 'px';
        drawRect.style.top    = Math.min(py, startY) + 'px';
        drawRect.style.width  = Math.abs(px - startX) + 'px';
        drawRect.style.height = Math.abs(py - startY) + 'px';
    }, { passive: false });

    wrap.addEventListener('touchend', function (e) {
        if (!drawing) return;
        drawing = false;
        drawRect.style.display = 'none';
        var t  = e.changedTouches[0];
        var r  = wrap.getBoundingClientRect();
        var px = Math.max(0, Math.min(t.clientX - r.left, r.width));
        var py = Math.max(0, Math.min(t.clientY - r.top,  r.height));
        var x1 = Math.min(px, startX), y1 = Math.min(py, startY);
        var w  = Math.abs(px - startX), h  = Math.abs(py - startY);
        if (w < 5 || h < 5) return;
        var bW = wrap.clientWidth, bH = wrap.clientHeight;
        document.getElementById('hs_x').value = (x1 / bW * 100).toFixed(2);
        document.getElementById('hs_y').value = (y1 / bH * 100).toFixed(2);
        document.getElementById('hs_w').value = (w  / bW * 100).toFixed(2);
        document.getElementById('hs_h').value = (h  / bH * 100).toFixed(2);
    });

    /* ── Link type placeholder ─────────────────────────────── */
    document.getElementById('hs_type').addEventListener('change', function () {
        var ph = { url: 'https://example.com/article', page: '3', anchor: 'section-id' };
        document.getElementById('hs_link').placeholder = ph[this.value] || '';
    });

    /* ── Delete existing hotspots via AJAX ─────────────────── */
    var hsDestroyUrl = '<?php echo e(route("admin.hotspots.destroy", ["hotspot" => "__ID__"])); ?>';

    document.querySelectorAll('.hs-del').forEach(function (btn) {
        btn.addEventListener('click', function (e) {
            e.stopPropagation();
            if (!confirm('Delete this hotspot?')) return;
            fetch(hsDestroyUrl.replace('__ID__', this.dataset.id), {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': '<?php echo e(csrf_token()); ?>'
                },
                body: JSON.stringify({ _method: 'DELETE' })
            }).then(function () { location.reload(); });
        });
    });
})();
</script>
<?php $__env->stopPush(); ?>

<?php echo $__env->make('layouts.admin', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/boguraj1/public_html/epaper/resources/views/admin/hotspots/index.blade.php ENDPATH**/ ?>