<?php
/**
* Customizer Custom Classes.
* @package Packers Movers Company
*/

if ( ! function_exists( 'packers_movers_company_sanitize_number_range' ) ) :
    function packers_movers_company_sanitize_number_range( $packers_movers_company_input, $packers_movers_company_setting ) {
        $packers_movers_company_input = absint( $packers_movers_company_input );
        $packers_movers_company_atts = $packers_movers_company_setting->manager->get_control( $packers_movers_company_setting->id )->input_attrs;
        $packers_movers_company_min = ( isset( $packers_movers_company_atts['min'] ) ? $packers_movers_company_atts['min'] : $packers_movers_company_input );
        $packers_movers_company_max = ( isset( $packers_movers_company_atts['max'] ) ? $packers_movers_company_atts['max'] : $packers_movers_company_input );
        $packers_movers_company_step = ( isset( $packers_movers_company_atts['step'] ) ? $packers_movers_company_atts['step'] : 1 );
        return ( $packers_movers_company_min <= $packers_movers_company_input && $packers_movers_company_input <= $packers_movers_company_max && is_int( $packers_movers_company_input / $packers_movers_company_step ) ? $packers_movers_company_input : $packers_movers_company_setting->default );
    }
endif;

/**
 * Upsell customizer section.
 *
 * @since  1.0.0
 * @access public
 */
class Packers_Movers_Company_Customize_Section_Upsell extends WP_Customize_Section {

    /**
     * The type of customize section being rendered.
     *
     * @since  1.0.0
     * @access public
     * @var    string
     */
    public $type = 'upsell';

    /**
     * Custom button text to output.
     *
     * @since  1.0.0
     * @access public
     * @var    string
     */
    public $pro_text = '';

    /**
     * Custom pro button URL.
     *
     * @since  1.0.0
     * @access public
     * @var    string
     */
    public $pro_url = '';

    public $notice = '';
    public $nonotice = '';

    /**
     * Add custom parameters to pass to the JS via JSON.
     *
     * @since  1.0.0
     * @access public
     * @return void
     */
    public function json() {
        $json = parent::json();

        $json['pro_text'] = $this->pro_text;
        $json['pro_url']  = esc_url( $this->pro_url );
        $json['notice']  = esc_attr( $this->notice );
        $json['nonotice']  = esc_attr( $this->nonotice );

        return $json;
    }

    /**
     * Outputs the Underscore.js template.
     *
     * @since  1.0.0
     * @access public
     * @return void
     */
    protected function render_template() { ?>

        <li id="accordion-section-{{ data.id }}" class="accordion-section control-section control-section-{{ data.type }} cannot-expand">

            <# if ( data.notice ) { #>
                <h3 class="accordion-section-notice">
                    {{ data.title }}
                </h3>
            <# } #>

            <# if ( !data.notice ) { #>
                <h3 class="accordion-section-title">
                    {{ data.title }}

                    <# if ( data.pro_text && data.pro_url ) { #>
                        <a href="{{ data.pro_url }}" class="button button-secondary alignright" target="_blank">{{ data.pro_text }}</a>
                    <# } #>
                </h3>
            <# } #>
            
        </li>
    <?php }
}