/**
 * Heatmap Click Recorder
 *
 * Misst Klicks relativ zur linken oberen Ecke von .ts-main,
 * so dass Sticky‑Header, Top‑Bars und Scrollpositionen keinen
 * Einfluss mehr auf die gespeicherten Koordinaten haben.
 *
 * @package    Boxyfy
 * @version    1.1.0
 * @license    GPL‑2.0‑or‑later
 */

(function ($) {
    'use strict';

    $(document).ready(function () {
        $(document.body).on('click', function (e) {

            // Roh‑Koordinaten relativ zum Dokument
            var clickX = e.pageX;
            var clickY = e.pageY;

            var $content = $('.ts-main');
            if (!$content.length) {
                console.warn('Kein .ts-main Container gefunden.');
                return;
            }

            var containerOffset = $content.offset(); // { top, left }
            var relativeX = clickX - containerOffset.left;
            var relativeY = clickY - containerOffset.top;

            // Negative Werte verhindern
            relativeX = Math.max(0, relativeX);
            relativeY = Math.max(0, relativeY);

            // Debug
            if (window.console && console.log) {
                console.log('Click stored at', { x: relativeX, y: relativeY });
            }

            // Daten an WP
            $.ajax({
                url: boxyfy_heatmap_obj.ajax_url,
                method: 'POST',
                dataType: 'json',
                data: {
                    action: 'boxyfy_record_click',
                    nonce: boxyfy_heatmap_obj.nonce,
                    post_id: boxyfy_heatmap_obj.post_id,
                    x: Math.round(relativeX),
                    y: Math.round(relativeY)
                },
                success: function (response) {
                    if (window.console && console.log) {
                        console.log('Klick erfolgreich gespeichert:', response);
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    console.error('Fehler beim Speichern des Klicks:', textStatus, errorThrown);
                    console.log('Server Response:', jqXHR.responseText);
                }
            });
        });
    });
})(jQuery);