<?php
/**
 * Customizer Settings
 * 
 * @package Presto_Fashion_Blogger
 */
function presto_fashion_blogger_dequeue_customizer_settings( $wp_customize ){
    $wp_customize->remove_control( 'ed_social_links' );
    $wp_customize->remove_setting( 'ed_social_links' );
}
add_action( 'customize_register', 'presto_fashion_blogger_dequeue_customizer_settings', 11 );

function presto_blog_customize_register_info( $wp_customize ) {

    $wp_customize->add_section( 'theme_info' , array(
        'title'       => __( 'Important Links' , 'presto-fashion-blogger' ),
        'priority'    => 6,
        'capability' => 'edit_theme_options'
        )
    );

    $wp_customize->add_setting('theme_info_theme',array(
        'default'           => '',
        'sanitize_callback' => 'wp_kses_post',
        )
    );

    $theme_info = '';
    $theme_info .= '<span class="sticky_info_row"><span class="emoji dashicons emoji dashicons-visibility"></span><a href="' . esc_url( 'https://sublimetheme.com/theme/' . PRESTO_BLOG_TEXTDOMAIN . '/' ) . '"  target="_blank">' . __( 'View demo', 'presto-fashion-blogger' ) . '</a></span><br />';
    $theme_info .= '<span class="sticky_info_row"><span class="emoji dashicons emoji dashicons-text-page"></span><a href="' . esc_url( 'https://sublimetheme.com/docs/' . PRESTO_BLOG_TEXTDOMAIN . '/' ) . '" target="_blank">' . __( 'View documentation', 'presto-fashion-blogger' ) . '</a></span><br />';
    $theme_info .= '<span class="sticky_info_row"><span class="emoji dashicons emoji dashicons-info"></span><a href="' . esc_url( 'https://sublimetheme.com/theme/' . PRESTO_BLOG_TEXTDOMAIN . '/' ) . '" target="_blank">' . __( 'Theme info', 'presto-fashion-blogger' ) . '</a></span><br />';
    $theme_info .= '<span class="sticky_info_row"><span class="emoji dashicons emoji dashicons-tickets"></span><a href="' . esc_url( 'https://sublimetheme.com/support/' ) . '" target="_blank">' . __( 'Support ticket', 'presto-fashion-blogger' ) . '</a></span><br />';
    $theme_info .= '<span class="sticky_info_row"><span class="emoji dashicons dashicons-star-filled"></span><a href="' . esc_url( 'https://wordpress.org/support/theme/' . PRESTO_BLOG_TEXTDOMAIN . '/reviews/' ) . '" target="_blank">' . __( 'Rate this theme', 'presto-fashion-blogger' ) . '</a></span><br />';


    $wp_customize->add_control( 
        new Presto_Blog_Theme_Info( $wp_customize, 
            'theme_info_theme', 
            array(
                'section'     => 'theme_info',
                'description' => $theme_info
            )
        )
    );

    $wp_customize->add_setting( 'theme_info_more_theme', 
        array(
            'default'           => '',
            'sanitize_callback' => 'wp_kses_post',
        )
    );
}

function presto_blog_customize_register_banner( $wp_customize ){

    /** FrontPage Settings */
    $wp_customize->add_panel( 
        'frontpage_settings',
         array(
            'priority'    => 40,
            'capability'  => 'edit_theme_options',
            'title'       => __( 'Front Page Settings', 'presto-fashion-blogger' ),
        ) 
    );
    
    $wp_customize->get_section( 'header_image' )->panel                    = 'frontpage_settings';
    $wp_customize->get_section( 'header_image' )->title                    = __( 'Banner Section', 'presto-fashion-blogger' );
    $wp_customize->get_section( 'header_image' )->priority                 = 10;
    $wp_customize->get_control( 'header_image' )->active_callback          = 'presto_blog_banner_ac';
    $wp_customize->get_control( 'header_video' )->active_callback          = 'presto_blog_banner_ac';
    $wp_customize->get_control( 'external_header_video' )->active_callback = 'presto_blog_banner_ac';
    $wp_customize->get_section( 'header_image' )->description              = '';
    $wp_customize->get_setting( 'header_image' )->transport                = 'refresh';
    $wp_customize->get_setting( 'header_video' )->transport                = 'refresh';
    $wp_customize->get_setting( 'external_header_video' )->transport       = 'refresh';

    /** Banner Options */
    $wp_customize->add_setting(
        'ed_banner_section',
        array(
            'default'           => 'slider_banner',
            'sanitize_callback' => 'presto_blog_sanitize_select'
        )
    );

    $wp_customize->add_control(
        'ed_banner_section',
        array(
            'label'       => __( 'Banner Options', 'presto-fashion-blogger' ),
            'description' => __( 'Choose banner as static image/video.', 'presto-fashion-blogger' ),
            'type'        => 'select',
            'section'     => 'header_image',
            'choices'     => array(
                'no_banner'     => __( 'Disable Banner Section', 'presto-fashion-blogger' ),
                'slider_banner' => __( 'Slider Banner', 'presto-fashion-blogger' ),
                'static_banner' => __( 'Banner with CTA', 'presto-fashion-blogger' ),
            ),
            'priority' => 5
        )
    );

    /** Subtitle */
    $wp_customize->add_setting(
        'banner_subtitle',
        array(
            'default'           => __( 'Free Blogging Course','presto-fashion-blogger' ),
            'sanitize_callback' => 'sanitize_text_field',
            'transport'         => 'postMessage'
        )
    );
    
    $wp_customize->add_control(
        'banner_subtitle',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Subtitle', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    $wp_customize->selective_refresh->add_partial( 'banner_subtitle', array(
        'selector'        => '.banner-static .item-content .item-content-inner .sub-title',
        'render_callback' => 'presto_blog_banner_subtitle',
    ) );

    /** Title */
    $wp_customize->add_setting(
        'banner_title',
        array(
            'default'           => __( 'Are you Ready to Start a Profitable Blog?','presto-fashion-blogger' ),
            'sanitize_callback' => 'sanitize_text_field',
            'transport'         => 'postMessage'
        )
    );

    $wp_customize->add_control(
        'banner_title',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Title', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    $wp_customize->selective_refresh->add_partial( 'banner_title', array(
        'selector'        => '.banner-static .item-content .item-title',
        'render_callback' => 'presto_blog_banner_title',
    ) );

    /** Banner link one label */
    $wp_customize->add_setting(
        'banner_link_one_label',
        array(
            'default'           => __( 'Get Started','presto-fashion-blogger' ),
            'sanitize_callback' => 'sanitize_text_field',
            'transport'         => 'postMessage'
        )
    );

    $wp_customize->add_control(
        'banner_link_one_label',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Link One Label', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    $wp_customize->selective_refresh->add_partial( 'banner_link_one_label', array(
        'selector'        => '.banner-static .item-content .btn-wrap .btn:first-child',
        'render_callback' => 'presto_blog_banner_link_one_label',
    ) );

    /** Banner link one url */
    $wp_customize->add_setting(
        'banner_link_one_url',
        array(
            'default'           => '#',
            'sanitize_callback' => 'esc_url_raw',
        )
    );

    $wp_customize->add_control(
        'banner_link_one_url',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Link One URL', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    /** Banner link two label */
    $wp_customize->add_setting(
        'banner_link_two_label',
        array(
            'default'           => __( 'Learn More','presto-fashion-blogger' ),
            'sanitize_callback' => 'sanitize_text_field',
            'transport'         => 'postMessage'
        )
    );

    $wp_customize->add_control(
        'banner_link_two_label',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Link Two Label', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    $wp_customize->selective_refresh->add_partial( 'banner_link_two_label', array(
        'selector'        => '.banner-static .item-content .btn-wrap .btn-outlined',
        'render_callback' => 'presto_blog_banner_link_two_label',
    ) );

    /** Banner link two url */
    $wp_customize->add_setting(
        'banner_link_two_url',
        array(
            'default'           => '#',
            'sanitize_callback' => 'esc_url_raw',
        )
    );

    $wp_customize->add_control(
        'banner_link_two_url',
        array(
            'section'         => 'header_image',
            'label'           => __( 'Link Two URL', 'presto-fashion-blogger' ),
            'active_callback' => 'presto_blog_banner_ac'
        )
    );

    //slider banner

    /** No. of slides */
    $wp_customize->add_setting(
        'no_of_slides',
        array(
            'default'           => 5,
            'sanitize_callback' => 'presto_blog_sanitize_number_absint',
        )
    );

    $wp_customize->add_control(
        new Presto_Blog_Slider_Control(
            $wp_customize,
            'no_of_slides',
            array(
                'label'       => __('Number of Slides', 'presto-fashion-blogger'),
                'description' => __('Choose the number of slides you want to display from latest post in slider.', 'presto-fashion-blogger'),
                'section'     => 'header_image',
                'choices'     => array(
                    'min'  => 1,
                    'max'  => 20,
                    'step' => 1,
                ),
                'active_callback' => 'presto_blog_banner_ac',
            )
        )
    );

    /** Enable/Disable Slider Auto Transition */
     $wp_customize->add_setting( 
        'slider_auto', 
        array(
            'default'           => false,
            'sanitize_callback' => 'presto_blog_sanitize_checkbox'
        ) 
    );
    
    $wp_customize->add_control(
        new Presto_Blog_Toggle_Control( 
            $wp_customize,
            'slider_auto',
            array(
                'section'     => 'header_image',
                'label'       => __( 'Enable Slider Auto Transition', 'presto-fashion-blogger' ),
                'description' => __( 'Enable this option to show featured section in home page.', 'presto-fashion-blogger' ),
                'active_callback' => 'presto_blog_banner_ac'
            )
        )
    );
}

/**
 * Active Callback
 */
function presto_blog_banner_ac( $control ){
    $edbanner    = $control->manager->get_setting( 'ed_banner_section' )->value();
    $control_id  = $control->id;
    
    // static banner controls
    if ( $control_id == 'header_image' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'header_video' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'external_header_video' && $edbanner == 'static_banner' ) return true;

    // banner title and description controls
    if ( $control_id == 'banner_subtitle' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'banner_title' && $edbanner == 'static_banner' ) return true;

    // Link button controls
    if ( $control_id == 'banner_link_one_label' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'banner_link_one_url' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'banner_link_two_label' && $edbanner == 'static_banner' ) return true;
    if ( $control_id == 'banner_link_two_url' && $edbanner == 'static_banner' ) return true;
    
    // slider banner
    if ( $control_id == 'slider_auto' && $edbanner == 'slider_banner' ) return true;
    if ( $control_id == 'no_of_slides' && $edbanner == 'slider_banner' ) return true;

    return false;
}