<?php
/**
 * Hotel 26 Theme Customizer.
 *
 * @package Hotel 26
 */

if (! class_exists('Hotel_26_Customizer') ) {

    /**
     * Customizer Loader
     *
     * @since 1.0.0
     */
    class Hotel_26_Customizer
    {

        /**
         * Instance
         *
         * @access private
         * @var    object
         */
        private static $instance;

        /**
         * Initiator
         */
        public static function get_instance()
        {
            if (! isset(self::$instance) ) {
                self::$instance = new self;
            }
            return self::$instance;
        }

        /**
         * Constructor
         */
        public function __construct()
        {
            /**
             * Customizer
             */
            add_action('customize_preview_init',                  array( $this, 'hotel_26_customize_preview_js' ));
            add_action('customize_controls_enqueue_scripts',        array( $this, 'hotel_26_customizer_script' ));
            add_action('customize_register',                      array( $this, 'hotel_26_customizer_register' ));
            add_action('after_setup_theme',                       array( $this, 'hotel_26_customizer_settings' ));
        }
        
        /**
         * Add postMessage support for site title and description for the Theme Customizer.
         *
         * @param WP_Customize_Manager $wp_customize Theme Customizer object.
         */
        function hotel_26_customizer_register( $wp_customize )
        {
            
            $wp_customize->get_setting('blogname')->transport         = 'postMessage';
            $wp_customize->get_setting('blogdescription')->transport  = 'postMessage';
            $wp_customize->get_setting('header_textcolor')->transport = 'postMessage';
            $wp_customize->get_setting('background_color')->transport = 'postMessage';
            $wp_customize->get_setting('custom_logo')->transport = 'refresh';

            /**
             * Helper files
             */
            include HOTEL_26_PARENT_INC_DIR . '/custom-controls/font-control.php';
            include HOTEL_26_PARENT_INC_DIR . '/custom-controls/editor/class/class-hotel-26-page-editor.php';
            include HOTEL_26_PARENT_INC_DIR . '/sanitization.php';
        }

        /**
         * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
         */
        function hotel_26_customize_preview_js()
        {
            wp_enqueue_script('hotel-26-customizer', HOTEL_26_PARENT_URI . '/assets/js/customizer-preview.js', array( 'customize-preview' ), '20151215', true);
        }
        
        function hotel_26_customizer_script()
        {
            wp_enqueue_script('hotel-26-customizer-section', HOTEL_26_PARENT_URI .'/assets/js/customizer-section.js', array("jquery"), '', true);    
        }

        // Include customizer customizer settings.
            
        function hotel_26_customizer_settings()
        {
            include HOTEL_26_PARENT_INC_DIR . '/customize/hotel-26-header.php';
            include HOTEL_26_PARENT_INC_DIR . '/customize/hotel-26-blog.php';
            include HOTEL_26_PARENT_INC_DIR . '/customize/hotel-26-footer.php';
            include HOTEL_26_PARENT_INC_DIR . '/customize/hotel-26-general.php';
            include HOTEL_26_PARENT_INC_DIR . '/customize/customizer_import_data.php';
            include HOTEL_26_PARENT_INC_DIR . '/customize/hotel-26-premium.php';
        }

    }
}// End if().

/**
 *  Kicking this off by calling 'get_instance()' method
 */
Hotel_26_Customizer::get_instance();
