<?php
function custom_banner_customizer_scripts()
{
    wp_enqueue_script(
        'customizer-preview',
        plugin_dir_url(dirname(__FILE__)) . 'assets/js/customizer.js', // Load script từ plugin
        array('jquery', 'customize-preview'),
        null,
        true
    );
}

add_action('customize_preview_init', 'custom_banner_customizer_scripts');

function custom_theme_customizer($wp_customize)
{

    foreach (bongdako_get_customizer_data() as $key => $itemPanel) {
        $panelKey = 'custom_panel_' . strtolower($key);

        $wp_customize->add_panel($panelKey, array(
            'title' => __($itemPanel['label'], 'bongdako'),
            'priority' => 30,
        ));

        if (isset($itemPanel['data'])) {
            if (isset($itemPanel['data']['colors']) && count($itemPanel['data']['colors'])) {
                // Tạo Section 1
                $wp_customize->add_section('section_color_' . $key, array(
                    'title' => __('Màu sắc', 'bongdako'),
                    'panel' => $panelKey,
                    'priority' => 1,
                ));
            }
            // Lặp qua mảng để tạo setting & control
            foreach ($itemPanel['data']['colors']['fields'] as $setting_id => $value) {
                $wp_customize->add_setting($setting_id . "_" . $key, array(
                    'default' => $value['default'] ?? "",
                    'type' => 'option', // Lưu vào wp_options
                    'sanitize_callback' => 'sanitize_hex_color',
                    'transport' => 'refresh',
                ));
       
                $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, $setting_id . "_" . $key, array(
                    'label' => $value['label'],
                    'section' => 'section_color_' . $key,
                    'settings' => $setting_id . "_" . $key,
                )));
            }

            if (isset($itemPanel['data']['banners']) && count($itemPanel['data']['banners'])) {
                // Tạo Section 2
                $wp_customize->add_section('section_banner_' . $key, array(
                    'title' => __('Quảng Cáo', 'bongdako'),
                    'panel' => $panelKey,
                    'priority' => 1,
                ));
            }

            // Lặp qua mảng để tạo setting & control
            if (isset($itemPanel['data']['banners']['fields'])) {
                if (isset($itemPanel['document']) && $itemPanel['document']) {
                    // Thêm một section mới
                    $wp_customize->add_section('big_image_section' . $key, array(
                        'title' => __('Hướng dẫn sử dụng', 'bongdako'),
                        'priority' => 1, // Hiển thị ở vị trí cao
                    ));

                    // Thêm một control để hiển thị hình ảnh
                    $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'big_image_display' . $key, array(
                        'section' => 'section_banner_' . $key,
                        'settings' => array(),
                        'type' => 'hidden', // Không cần setting vì chỉ hiển thị
                        'description' => '<strong>Hướng dẫn layout</strong><br><a id="preview_docx" href="' . plugin_dir_url(dirname(__FILE__)) . $itemPanel['document'] . '" target="_blank">
                        <img id="display_docx" src="' . plugin_dir_url(dirname(__FILE__)) . $itemPanel['document'] . '" style="max-width:100%; height:auto; cursor:pointer; border: 1px solid #ddd; padding: 5px; margin-bottom:10px;">
                    </a>'
                    )));
                }

                foreach ($itemPanel['data']['banners']['fields'] as $setting_id => $value) {

                    $keySetting = $setting_id . "_" . $key;

                    $wp_customize->add_setting('custom_title_dummy_' . $setting_id . "_" . $key, array(
                        'default' => '',
                        'type' => 'option', // Lưu vào wp_options
                        'sanitize_callback' => 'esc_attr',
                    ));

                    $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'custom_title_dummy_' . $keySetting, array(
                        'label' => '',
                        'section' => 'section_banner_' . $key,
                        'description' => '<h2 style="margin: 10px 0; font-weight: bold;">🔥 ' . $value['label'] . '</h2>',
                        'type' => 'hidden',
                    )));

                    if ($value['type'] === "image") {
                        $wp_customize->add_setting($keySetting, array(
                            'default' => plugin_dir_url(dirname(__FILE__)) . ltrim($value['default'], '/'),
                            'type' => 'option', // Lưu vào wp_options
                            'sanitize_callback' => 'esc_url_raw',
                        ));
                        $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, $setting_id . "_" . $key, array(
                            'label' => "",
                            'section' => 'section_banner_' . $key,
                            'settings' => $keySetting,
                            'type' => 'image',
                        )));

                        $wp_customize->add_setting('tracking_' . $keySetting, array(
                            'default' => $value['tracking'],
                            'type' => 'option', // Lưu vào wp_options
                            'sanitize_callback' => 'esc_url_raw',
                        ));

                        $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'tracking_control_' . $keySetting, array(
                            'label' => __('Nhập URL quảng cáo', 'bongdako'),
                            'section' => 'section_banner_' . $key,
                            'settings' => 'tracking_' . $keySetting,
                            'type' => 'url',
                            'description' => __('Hãy nhập đường dẫn đầy đủ, ví dụ: https://example.com', 'bongdako'),
                        )));
                    }
                    if ($value['type'] === "text") {
                        // Thêm Setting & Control cho Tab 1
                        $wp_customize->add_setting('text_link_' . $keySetting, array(
                            'default' => $value['default'],
                            'type' => 'option', // Lưu vào wp_options
                            'sanitize_callback' => 'sanitize_text_field',
                        ));
                        $wp_customize->add_control('text_link_' . $keySetting, array(
                            'label' => "",
                            'section' => 'section_banner_' . $key,
                            'type' => 'text',
                        ));

                        $wp_customize->add_setting('tracking_' . $keySetting, array(
                            'default' => $value['tracking'],
                            'type' => 'option', // Lưu vào wp_options
                            'sanitize_callback' => 'esc_url_raw',
                        ));

                        $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'custom_url_advanced_control_' . $keySetting, array(
                            'label' => __('Nhập URL quảng cáo', 'bongdako'),
                            'section' => 'section_banner_' . $key,
                            'settings' => 'tracking_' . $keySetting,
                            'type' => 'url',
                            'description' => __('Hãy nhập đường dẫn đầy đủ, ví dụ: https://example.com', 'bongdako'),
                        )));
                    }

                }
            }


            ///3
            if (isset($itemPanel['data']['font-family']) && count($itemPanel['data']['font-family'])) {
                // Tạo Section 1
                $wp_customize->add_section('section_family_' . $key, array(
                    'title' => __($itemPanel['data']['font-family']['label'], 'bongdako'),
                    'panel' => $panelKey,
                    'priority' => 1,
                ));
            }
            if (isset($itemPanel['data']['font-family']['fields'])) {
                foreach ($itemPanel['data']['font-family']['fields'] as $setting_id => $value) {
                    // Thêm setting cho font-family
                    $keySetting = $setting_id . "_" . $key;
                    $wp_customize->add_setting('font_' . $keySetting, array(
                        'default' => $value['default'],
                        'type' => 'option', // Lưu vào wp_options
                        'sanitize_callback' => 'sanitize_text_field',
                    ));

                    // Thêm control cho font-family
                    $wp_customize->add_control($keySetting . '_mytheme_font_family_control', array(
                        'label' => __('Font Family', 'mytheme'),
                        'section' => 'section_family_' . $key,
                        'settings' => 'font_' . $keySetting,
                        'type' => 'select',
                        'choices' => $value['choices'],
                    ));
                }
            }

            ///4
            if (isset($itemPanel['data']['size']) && count($itemPanel['data']['size'])) {
                // Tạo Section 1
                $wp_customize->add_section('section_size_' . $key, array(
                    'title' => __($itemPanel['data']['size']['label'], 'bongdako'),
                    'panel' => $panelKey,
                    'priority' => 1,
                ));
            }
            if (isset($itemPanel['data']['size']['fields'])) {
                foreach ($itemPanel['data']['size']['fields'] as $setting_id => $value) {
                    // Thêm setting cho font-family
                    $keySetting = $setting_id . "_" . $key;
//                    $wp_customize->add_setting('size_' . $keySetting, array(
//                        'default' => $value['default'],
//                        'type' => 'option', // Lưu vào wp_options
//                        'sanitize_callback' => 'sanitize_text_field',
//                    ));
//
//                    // Thêm control cho font-family
//                    $wp_customize->add_control($keySetting . '_size_control', array(
//                        'label' => $value['label'],
//                        'section' => 'section_size_' . $key,
//                        'settings' => 'size' . $keySetting,
//                        'type' => $value['type'],
////                        'choices' => $value['choices'],
//                    ));

                    if (class_exists('Kirki')) {
                        Kirki::add_config('size_' . $keySetting, array(
                            'capability' => 'edit_theme_options',
                            'option_type' => 'option',
                        ));
                        Kirki::add_field('size_' . $keySetting, [
                            'type' => $value['type'],
                            'settings'    => 'size' . $keySetting,
                            'label'       => $value['label'],
                            'section'     => 'section_size_' . $key,
                            'default'     => $value['default'],
                            'priority'    => 10,
                            'choices'     => $value['choices'],
                        ]);
                    }
                }
            }
        }
    }

}

add_action('customize_register', 'custom_theme_customizer');

if (!class_exists('Kirki')) {
    Kirki::add_config('my_plugin_config', array(
        'capability' => 'edit_theme_options',
        'option_type' => 'theme_mod',
    ));

    Kirki::add_section('my_plugin_typography', array(
        'title' => esc_html__('Cài đặt kiểu chữ', 'my-plugin'),
        'priority' => 30,
    ));

    Kirki::add_field('my_plugin_config', [
        'type'        => 'typography',
        'settings'    => 'my_plugin_font_typography',
        'label'       => esc_html__('Tên đội bóng', 'my-plugin'),
        'section'     => 'my_plugin_typography',
        'default'     => [
            'font-family'    => 'Roboto',
            'variant'        => 'regular',
            'font-size'      => '16px',
            'line-height'    => '1.5',
            'letter-spacing' => '0px',
            'text-transform' => 'none',
        ],
        'choices'     => [
            'fonts' => [
                'google' => ['alpha'], // Tự động tải Google Fonts
            ],
        ],
    ]);

    Kirki::add_field('my_plugin_config_3', [
        'type'        => 'dimension',
        'settings'    => 'my_plugin_box_padding2',
        'label'       => esc_html__('Độ dài', 'my-plugin'),
        'section'     => 'my_plugin_typography',
        'default'     => '10px',
        'output'      => [
            [
                'element'  => '.my-box',
                'property' => 'padding',
            ],
        ],
    ]);

    Kirki::add_field('my_plugin_config_2', [
        'type'        => 'dimensions',
        'settings'    => 'my_plugin_box_padding',
        'label'       => esc_html__('Padding Box', 'my-plugin'),
        'section'     => 'my_plugin_typography',
        'default'     => [
            'top'    => '10px',
            'right'  => '15px',
            'bottom' => '10px',
            'left'   => '15px',
        ],
        'output'      => [
            [
                'element'  => '.my-box',
                'property' => 'padding',
            ],
        ],
    ]);

}




