/**
 * File customizer.js.
 *
 * Theme Customizer enhancements for a better user experience.
 *
 * Contains handlers to make Theme Customizer preview reload changes asynchronously.
 */

(function ($) {

    'use strict';

    // Site title and description.
    wp.customize('blogname', function (value) {
        value.bind(function (to) {
            $('.site-title a').text(to);
        });
    });
    wp.customize('blogdescription', function (value) {
        value.bind(function (to) {
            $('.site-description').text(to);
        });
    });

    // Header text color.
    wp.customize('header_textcolor', function (value) {
        value.bind(function (to) {
            if ('blank' === to) {
                $('.site-title, .site-description').css({
                    'clip': 'rect(1px, 1px, 1px, 1px)',
                    'position': 'absolute'
                });
            } else {
                $('.site-title, .site-description').css({
                    'clip': 'auto',
                    'position': 'relative'
                });
                $('.site-title a, .site-description').css({
                    'color': to
                });
            }
        });
    });

    wp.customize('booklium_footer_text', function (value) {
        value.bind(function (to) {
            $('.site-info').html(to);
        })
    });

    wp.customize(
        'booklium_accent_color',
        'booklium_header_color',
        'booklium_header_hover_color',
        'booklium_header_bg_color',
        'booklium_header_left_menu_dropdown_bg_color',
        'booklium_footer_bg_color',
        'booklium_footer_text_color',
        'booklium_footer_widgets_title_color',
        'booklium_button_bg_color',
        'booklium_button_color',
        'booklium_hb_accent_color',
        'booklium_calendar_bg_color',
        'booklium_calendar_color',
        function (
            booklium_accent_color,
            booklium_header_color,
            booklium_header_hover_color,
            booklium_header_bg_color,
            booklium_header_left_menu_dropdown_bg_color,
            booklium_footer_bg_color,
            booklium_footer_text_color,
            booklium_footer_widgets_title_color,
            booklium_button_bg_color,
            booklium_button_color,
            booklium_hb_accent_color,
            booklium_calendar_bg_color,
            booklium_calendar_color,
        ) {

            $.each(arguments, function (index, setting) {
                setting.bind(function (newColor) {
                    var color = getSelectedColorSchemeColor(setting.id);
                    document.body.style.setProperty(color.css_variable, newColor, 'important');
                });
            })
        }
    )


    function getSelectedColorSchemeColor(colorID) {
        var selectedSchemeID = wp.customize('booklium_color_scheme').get();

        return bookliumColorScheme[selectedSchemeID][colorID];
    }

})(jQuery);
