<?php
/**
 * Pixel Hair Spa functions and definitions
 *
 * @package Pixel Hair Spa
 */

if ( ! function_exists( 'pixel_hair_spa_setup' ) ) :
	function pixel_hair_spa_setup() {
		
		// Add default posts and comments RSS feed links to head.
		add_theme_support( 'automatic-feed-links' );

		add_theme_support( 'woocommerce' );

		load_theme_textdomain( 'pixel-hair-spa', get_template_directory() . '/languages' );

		/*
		 * Let WordPress manage the document title.
		 * By adding theme support, we declare that this theme does not use a
		 * hard-coded <title> tag in the document head, and expect WordPress to
		 * provide it for us.
		 */
		add_theme_support( 'title-tag' );

		/*
		 * Post thumbnail support should be enabled for pages and posts.
		 */
		add_theme_support( 'post-thumbnails' );

		// This theme uses wp_nav_menu() in one location.
		register_nav_menus( array(
			'menu-1' => esc_html__( 'Primary', 'pixel-hair-spa' ),
			'menu-2' => esc_html__( 'Footer', 'pixel-hair-spa' ),
		) );

		/*
		 * To produce valid HTML5, change the default core markup for the comments, search form, and search form.
		 */
		add_theme_support( 'html5', array(
			'search-form',
			'comment-form',
			'comment-list',
			'gallery',
			'caption',
		) );
		
		/**
		 * Add support for core custom logo.
		 *
		 * @link https://codex.wordpress.org/Theme_Logo
		 */
		add_theme_support( 'custom-logo', array(
			'width'       => 270,
			'height'      => 80,
			'flex-height' => true,
			'flex-width'  => true,
		) );

		// Add theme support for selective refresh for widgets.
		add_theme_support( 'customize-selective-refresh-widgets' );

		// Add custom image size.
		add_image_size( 'pixel-hair-spa-1920-550', 1920, 550, true );
		add_image_size( 'pixel-hair-spa-1370-550', 1370, 550, true );
		add_image_size( 'pixel-hair-spa-590-310', 590, 310, true );
		add_image_size( 'pixel-hair-spa-420-380', 420, 380, true );
		add_image_size( 'pixel-hair-spa-420-300', 420, 300, true );
		add_image_size( 'pixel-hair-spa-420-200', 420, 200, true );
		add_image_size( 'pixel-hair-spa-290-150', 290, 150, true );
		add_image_size( 'pixel-hair-spa-80-60', 80, 60, true );
		
		add_editor_style( array( '/assets/css/editor-style.min.css') );

		add_theme_support( 'align-wide' );
		add_theme_support( 'editor-styles' );
		add_theme_support( 'wp-block-styles' );

        add_theme_support( 'custom-background', apply_filters( 'pixel_hair_spa_custom_background', array(
            'default-color' => 'ffffff',
            'default-image' => '',
        )));
        
        add_theme_support( 'responsive-embeds' );

		add_theme_support('custom-header', array(
			'default-image'      => '',
			'width'              => 1920,
			'height'             => 200,
			'flex-height'        => true,
			'flex-width'         => true,
			'uploads'            => true,
		));
	}
endif;
add_action( 'after_setup_theme', 'pixel_hair_spa_setup' );

/**
 * Enqueue scripts and styles.
 */
function pixel_hair_spa_scripts() {

	wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.min.css' );
	if ( is_rtl() ){
		wp_enqueue_style( 'bootstrap-rtl', get_template_directory_uri() . '/assets/bootstrap/css/rtl/bootstrap.min.css' );

		wp_enqueue_style( 'pixel-hair-spa-rtl-style', get_template_directory_uri() . '/rtl.css' );
	}

	wp_enqueue_style( 'pixel-hair-spa-style', get_stylesheet_uri() );
	
	wp_enqueue_style( 'fontawesome', get_template_directory_uri() . '/assets/font-awesome/css/all.min.css' );
	
	wp_enqueue_style( 'owl.carousel.css', get_template_directory_uri() . '/assets/css/owl.carousel.css' );
	wp_enqueue_style( 'pixel-hair-spa-blocks', get_template_directory_uri() . '/assets/css/blocks.min.css' );
	wp_enqueue_style( 'roboto-google-font', 'https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap', false );

	$scripts = array(
		array(
			'id'     => 'bootstrap',
			'url'    => get_template_directory_uri() . '/assets/bootstrap/js/bootstrap.min.js',
			'footer' => true
		),
		array(
			'id'     => 'owl.carousel.js',
			'url'    => get_template_directory_uri() . '/assets/js/owl.carousel.js',
			'footer' => true
		),
		array(
			'id'     => 'pixel-hair-spa-custom',
			'url'    => get_template_directory_uri() . '/assets/js/custom.js',
			'footer' => true
		)
	);

	pixel_hair_spa_add_scripts( $scripts );

	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}
}
add_action( 'wp_enqueue_scripts', 'pixel_hair_spa_scripts' );

/**
* Add script
* 
* @since Pixel Hair Spa 1.0.0
*/
function pixel_hair_spa_add_scripts( $scripts ){
	foreach ( $scripts as $key => $value ) {
		wp_enqueue_script( $value['id'] , $value['url'] , array( 'jquery', 'jquery-masonry' ), 0.8, $value['footer'] );
	}
}

/**
 * Sanitizes Image Upload.
 *
 * @param string $input potentially dangerous data.
 */
function pixel_hair_spa_sanitize_image( $input ) {
	$filetype = wp_check_filetype( $input );
	if ( $filetype['ext'] && wp_ext2type( $filetype['ext'] ) === 'image' ) {
		return esc_url( $input );
	}
	return '';
}

/**
* Enqueue editor styles for Gutenberg
* 
* @since Pixel Hair Spa 1.0.0
*/
function pixel_hair_spa_block_editor_styles() {
	// Block styles.
	wp_enqueue_style( 'pixel-hair-spa-block-editor-style', get_theme_file_uri( '/assets/css/editor-blocks.min.css' ) );
}
add_action( 'enqueue_block_editor_assets', 'pixel_hair_spa_block_editor_styles' );

// Sanitization function to ensure it's an integer within the range
function pixel_hair_spa_sanitize_number( $input ) {
    $input = absint( $input ); // Convert to a non-negative integer
    return ( $input >= 1 && $input <= 6 ) ? $input : 1; // Return input if within range, or default to 1
}


/**
 * Custom template tags for this theme.
 */
require get_template_directory() . '/inc/template-tags.php';

/**
 * Functions which enhance the theme by hooking into WordPress.
 */
require get_template_directory() . '/inc/template-functions.php';

/**
 * Customizer additions.
 */
require get_template_directory() . '/inc/customizer/customizer.php';

/**
 * Dynamic CSS.
 */
require get_template_directory() . '/inc/customizer/loader.php';

/**
* GET START.
*/
require get_template_directory() . '/themeinfo/pixel_hair_spa_themeinfo_page.php';


define('PIXEL_HAIR_SPA_BUY_NOW',__('https://www.themepixels.net/products/hair-spa-wordpress-theme/','pixel-hair-spa'));
define('PIXEL_HAIR_SPA_LIVE_DEMO',__('https://www.themepixels.net/demo-site/pixel-hair-spa/','pixel-hair-spa'));
define('PIXEL_HAIR_SPA_FREE_DOC',__('https://www.themepixels.net/docs/pixel-hair-spa-free/','pixel-hair-spa'));
define('PIXEL_HAIR_SPA_BUNDLE',__('https://www.themepixels.net/products/wp-theme-bundle/','pixel-hair-spa'));
define('PIXEL_HAIR_SPA_THEME_SUPPORT',__('https://wordpress.org/support/theme/pixel-hair-spa','pixel-hair-spa'));

// NOTICE FUNCTION
function pixel_hair_spa_activation_notice() {
    if (get_option('pixel_hair_spa_notice_dismissed')) {
        return;
    }

    if (isset($_GET['page']) && $_GET['page'] === 'pixel-hair-spa-themeinfo-page') {
        return;
    }
    ?>
    <div class="updated notice notice-theme-info-class is-dismissible" data-notice="theme_info">
        <div class="pixel-hair-spa-theme-info-notice clearfix">
            <div class="pixel-hair-spa-theme-notice-content">
                <h2 class="pixel-hair-spa-notice-h2">
                    <?php
                    printf(
                        /* translators: 1: Theme name */
                        esc_html__('Hello! Thank you for choosing our %1$s!', 'pixel-hair-spa'), '<strong>' . esc_html(wp_get_theme()->get('Name')) . '</strong>'
                    );
                    ?>
                </h2>
                <a class="pixel-hair-spa-btn-theme-info button button-primary" 
                    href="<?php echo esc_url(admin_url('themes.php?page=pixel-hair-spa-themeinfo-page')); ?>" 
                    id="pixel-hair-spa-themeinfo-button">
                    <?php esc_html_e('Pixel Hair Spa Theme Information', 'pixel-hair-spa') ?>
                </a>
            </div>
        </div>
    </div>
    <?php
}

add_action('admin_notices', 'pixel_hair_spa_activation_notice');

add_action('wp_ajax_pixel_hair_spa_dismiss_notice', 'pixel_hair_spa_dismiss_notice');

function pixel_hair_spa_notice_status() {
    delete_option('pixel_hair_spa_notice_dismissed');
}
add_action('after_switch_theme', 'pixel_hair_spa_notice_status');

function pixel_hair_spa_dismiss_notice() {
    update_option('pixel_hair_spa_notice_dismissed', true);
    wp_send_json_success();
}

function pixel_hair_spa_admin_enqueue_scripts(){
	wp_enqueue_style('pixel-hair-spa-admin-style', esc_url( get_template_directory_uri() ) . '/assets/css/pixel-hair-spa-notice.css');
	wp_enqueue_script('pixel-hair-spa-dismiss-notice-script', get_stylesheet_directory_uri() . '/assets/js/pixel-hair-spa-notice.js', array('jquery'), null, true);
}
add_action( 'admin_enqueue_scripts', 'pixel_hair_spa_admin_enqueue_scripts' );