<?php
/**
 * Fitness Park functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Fitness_Park
 */

if ( ! function_exists( 'fitness_park_setup' ) ) :
	/**
	 * Sets up theme defaults and registers support for various WordPress features.
	 *
	 * Note that this function is hooked into the after_setup_theme hook, which
	 * runs before the init hook. The init hook is too late for some features, such
	 * as indicating support for post thumbnails.
	 */
	function fitness_park_setup() {
		/*
		 * Make theme available for translation.
		 * Translations can be filed in the /languages/ directory.
		 * If you're building a theme based on Fitness Park, use a find and replace
		 * to change 'fitness-park' to the name of your theme in all the template files.
		 */
		load_theme_textdomain( 'fitness-park', get_template_directory() . '/languages' );

		// Add default posts and comments RSS feed links to head.
		add_theme_support( 'automatic-feed-links' );

		/*
		 * 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' );

		add_theme_support( 'align-wide' );

		// Add support for block styles.
		add_theme_support( 'wp-block-styles' );

		add_theme_support( 'editor-styles' );

		/*
		 * Enable support for Post Thumbnails on posts and pages.
		 *
		 * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
		 */
		add_theme_support( 'post-thumbnails' );

		add_image_size('fitness-park-image', 800, 510, true);
		add_image_size('fitness-park-slider', 1350, 520, true);
		add_image_size('fitness-park-gallery', 500, 400, true);

		// This theme uses wp_nav_menu() in one location.
		register_nav_menus( array(
			'menu-1' => esc_html__( 'Primary', 'fitness-park' ),
			'footer-menu' => esc_html__( 'Footer Menu', 'fitness-park' ),
		) );

		/*
		 * Switch default core markup for search form, comment form, and comments
		 * to output valid HTML5.
		 */
		add_theme_support( 'html5', array(
			'search-form',
			'comment-form',
			'comment-list',
			'gallery',
			'caption',
		) );

		// Set up the WordPress core custom background feature.
		add_theme_support( 'custom-background', apply_filters( 'fitness_park_custom_background_args', array(
			'default-color' => 'ffffff',
			'default-image' => '',
		) ) );

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

		// Add support for Block Styles.
        add_theme_support('wp-block-styles');

        // Add support for full and wide align images.
        add_theme_support('align-wide');

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

		// Add support for responsive embedded content.
		add_theme_support('responsive-embeds');

		add_theme_support('custom-line-height');

		add_theme_support('custom-spacing');

		add_theme_support('custom-units');

		/**
		 * Add support for core custom logo.
		 *
		 * @link https://codex.wordpress.org/Theme_Logo
		 */
		add_theme_support( 'custom-logo', array(
			'height'      => 250,
			'width'       => 250,
			'flex-width'  => true,
			'flex-height' => true,
		) );
	}
endif;
add_action( 'after_setup_theme', 'fitness_park_setup' );

/**
 * Set the content width in pixels, based on the theme's design and stylesheet.
 *
 * Priority 0 to make it available to lower priority callbacks.
 *
 * @global int $content_width
 */
function fitness_park_content_width() {
	// This variable is intended to be overruled from themes.
	// Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}.
	// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
	$GLOBALS['content_width'] = apply_filters( 'fitness_park_content_width', 640 );
}
add_action( 'after_setup_theme', 'fitness_park_content_width', 0 );

/**
 * Register widget area.
 *
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
 */
function fitness_park_widgets_init() {

	register_sidebar( array(
		'name'          => esc_html__( 'Right Sidebar Widget Area', 'fitness-park' ),
		'id'            => 'sidebar-1',
		'description'   => esc_html__( 'Add widgets here.', 'fitness-park' ),
		'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<h2 class="widget-title">',
		'after_title'   => '</h2>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Left Sidebar Widget Area', 'fitness-park' ),
		'id'            => 'sidebar-2',
		'description'   => esc_html__( 'Add widgets here.', 'fitness-park' ),
		'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<h2 class="widget-title">',
		'after_title'   => '</h2>',
	) );
}
add_action( 'widgets_init', 'fitness_park_widgets_init' );

if ( ! function_exists( 'fitness_park_fonts_url' ) ) :

	/**
	 * Register Google fonts for Fitness Park
	 *
	 * Create your own fitness_park_fonts_url() function to override in a child theme.
	 *
	 * @since Fitness Prak 1.0.0
	 *
	 * @return string Google fonts URL for the theme.
	 */

    function fitness_park_fonts_url() {

        $fonts_url = '';

        $font_families = array();


        if ( 'off' !== _x( 'on', 'Raleway: on or off', 'fitness-park' ) ) {
            $font_families[] = 'Raleway:300,300i,400,400i,500,500i,600,600i,700,700i,800';
        }


        if( $font_families ) {

            $query_args = array(

                'family' => urlencode( implode( '|', $font_families ) ),
                'subset' => urlencode( 'latin,latin-ext' ),
            );

            $fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
        }

        return esc_url ( $fonts_url );
    }

endif;

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

	$min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

	wp_enqueue_style( 'fitness-park-fonts', fitness_park_fonts_url(), array(), null );

	// Load Font Awsome CSS Library File
	wp_enqueue_style( 'fontawsome', get_template_directory_uri(). '/assets/library/font-awesome/css/fontawsome.css' );

	wp_enqueue_style('materialdesignicons', get_template_directory_uri() . '/assets/css/materialdesignicons.css', array(), '4.4.0');

	// Load Bootstrap CSS Library File
	wp_enqueue_style( 'bootstrap', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/bootstrap/css/bootstrap' . esc_attr ( $min ) . '.css' );

	// Load prettyPhoto CSS Library File
	wp_enqueue_style( 'prettyPhoto', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/prettyPhoto/css/prettyPhoto.css' );

	// Load owlcarousel CSS Library File
	wp_enqueue_style( 'owlcarousel', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/owlcarousel/css/owl.carousel' . esc_attr ( $min ) . '.css' );

	// Load animate CSS File
	wp_enqueue_style( 'fitness-park-animate',  get_template_directory_uri(). '/assets/css/animate.css' );

	wp_enqueue_style( 'fitness-park-style', get_stylesheet_uri() );

	if ( has_header_image() ) {
		$custom_css = '.site-header .navbar{ background-image: url("' . esc_url( get_header_image() ) . '"); background-repeat: no-repeat; background-position: center center; background-size: cover; }';
		wp_add_inline_style( 'fitness-park-style', $custom_css );
	}

    // Load Bootstrap Library File
    wp_enqueue_script('bootstrap', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/bootstrap/js/bootstrap' . esc_attr ( $min ) . '.js', array('jquery'),'3.3.7', true );

    // Load jquery-prettyPhoto Library File
    wp_enqueue_script('jquery-prettyPhoto', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/prettyPhoto/js/jquery.prettyPhoto.js', array('jquery'), '3.1.6', true );

    // Load parallex  File
    wp_enqueue_script('parallex', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/parallex/parallex' . esc_attr ( $min ) . '.js', array('jquery'),'1.5.0', true );

    // Load owlcarousel Library File
    wp_enqueue_script('owl-carousel', trailingslashit( esc_url ( get_template_directory_uri() ) ) . '/assets/library/owlcarousel/js/owl.carousel' . esc_attr ( $min ) . '.js', array('jquery'),'2.3.4', true );

	wp_enqueue_script( 'fitness-park-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array(), '20151215', true );

	wp_enqueue_script( 'fitness-park-skip-link-focus-fix', get_template_directory_uri() . '/assets/js/skip-link-focus-fix.js', array(), '20151215', true );

	// Main
    wp_enqueue_script('fitness-park-main', get_template_directory_uri() . '/assets/js/main.js', array('jquery'), true );

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

/**
 * Sets the Fitness Prak Template Instead of front-page.
 */
function fitness_park_front_page_set( $template ) {

  $fitness_park_front_page = get_theme_mod( 'fitness_park_front_page' ,false);

  if( true != $fitness_park_front_page ){

    if ( 'posts' == get_option( 'show_on_front' ) ) {

      include( get_home_template() );

    } else {

      include( get_page_template() );
      
    }
  }
}
add_filter( 'fitness_park_enable_front_page', 'fitness_park_front_page_set' );

/**
 * Load Files.
 */
require get_template_directory() . '/inc/init.php';




if(!function_exists('sparklethemes_register_block_patterns')){

	function sparklethemes_register_block_patterns() {

		$patterns = array();

		$block_pattern_categories = array(
			'fitness-park' => array( 'label' => esc_html__( 'Theme Patterns', 'fitness-park' ) ),
		);

		$block_pattern_categories = apply_filters( 'sparklethemes_register_block_patterns', $block_pattern_categories );

		foreach ( $block_pattern_categories as $name => $properties ) {

			if ( ! WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( $name ) ) {

				register_block_pattern_category( $name, $properties );

			}
		}

		register_block_style(
			'core/list',
			array(
				'name'         => 'checkmark-list',
				'label'        => __( 'Check Mark', 'fitness-park' ),
				/*
				* Styles for the custom checkmark list block style
				* https://github.com/WordPress/gutenberg/issues/51480
				*/
				'inline_style' => '
				.is-style-checkmark-list .block-editor-block-list__block{
					display: flex;
					align-items: center;
				}
				.is-style-checkmark-list .block-editor-block-list__block:before{
					color: var(--wp--preset--color--primary);
				}
				.editor-styles-wrapper ol.is-style-checkmark-list, 
				.editor-styles-wrapper ul.is-style-checkmark-list,
				ol.is-style-checkmark-list,
				ul.is-style-checkmark-list{
					padding: 0;
				}
				.is-style-checkmark-list li{
					margin-bottom: 5px;
					list-style: none;
					display: flex;
					align-items: center;
				}
				.is-style-checkmark-list li a{
					margin-left: 3px;
				}
				.is-style-checkmark-list li:before {
					content: "\f12a";
					font-family: "dashicons";
					color: #ff7101;
					margin-right: 5px;
				}',
			)
		);

		register_block_style(
			'core/list',
			array(
				'name'         => 'circle-list',
				'label'        => __( 'Circle List', 'fitness-park' ),
				/*
				* Styles for the custom circle list block style
				* https://github.com/WordPress/gutenberg/issues/51480
				*/
				'inline_style' => '
				.is-style-circle-list .block-editor-block-list__block{
					display: flex;
					align-items: center;
				}
				.is-style-circle-list .block-editor-block-list__block:before{
					color: var(--wp--preset--color--primary);
				}
				.editor-styles-wrapper ol.is-style-circle-list, 
				.editor-styles-wrapper ul.is-style-circle-list,
				ol.is-style-circle-list,
				ul.is-style-circle-list{
					padding: 0;
				}
				.is-style-circle-list li{
					margin-bottom: 5px;
					list-style: none;
					display: flex;
					align-items: center;
				}
				.is-style-circle-list li a{
					margin-left: 3px;
				}
				.is-style-circle-list li:before {
					content: "\f159";
					font-family: "dashicons";
					color: #ff7101;
					margin-right: 5px;
				}',
			)
		);

		/** Button */
		register_block_style(
			'core/button',
			array(
				'name'         => 'primary-button',
				'label'        => esc_html__( 'Primary Button', 'fitness-park' ),
				'inline_style' => '
				.wp-block-button .wp-block-button__link.is-style-outline, 
				.wp-block-button.is-style-outline>.wp-block-button__link {
					padding: 20px 32px;
					cursor: pointer;
				}
				.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color), 
				.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color){
					color: var(--wp--preset--color--primary);
				}

				.wp-block-button.is-style-primary-button .wp-block-button__link,
				.editor-styles-wrapper .is-style-primary-button.wp-block-button .wp-block-button__link {
					overflow: hidden;
					position: relative;
					z-index: 1;
					vertical-align: middle;
					padding-right:55px;
					cursor: pointer;
				}
				
				.is-style-primary-button .wp-block-button__link::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}

				.wp-block-button.is-style-primary-button .wp-block-button__link:before,
				.editor-styles-wrapper .is-style-primary-button.wp-block-button .wp-block-button__link:before {
					content: "";
					position: absolute;
					z-index: -1;
					background-color: var(--wp--preset--color--black);
					left: auto;
					right: 0;
					top: 0;
					height: 100%;
					width: 0;
					-webkit-transition: all ease 0.4s;
					-o-transition: all ease 0.4s;
					transition: all ease 0.4s;
				}
				
				.wp-block-button.is-style-primary-button .wp-block-button__link:hover,
				.editor-styles-wrapper .is-style-primary-button.wp-block-button .wp-block-button__link:hover {
					color: var(--wp--preset--color--white);
				}
				
				.wp-block-button.is-style-primary-button .wp-block-button__link:hover:before,
				.editor-styles-wrapper .is-style-primary-button.wp-block-button .wp-block-button__link:hover:before {
					width: 101%;
					right: auto;
					left: 0;
				}',
			)
		);

		register_block_style(
			'core/button',
			array(
				'name'         => 'secondary-button',
				'label'        => esc_html__( 'Secondary Button', 'fitness-park' ),
				'inline_style' => '
				.wp-block-button.is-style-secondary-button .wp-block-button__link,
				.editor-styles-wrapper .is-style-secondary-button.wp-block-button .wp-block-button__link {
					overflow: hidden;
					position: relative;
					z-index: 1;
					vertical-align: middle;
					padding-right:55px;
					cursor: pointer;
					background-color: var(--wp--preset--color--white);
					color: var(--wp--preset--color--primary);
					border: 2px solid var(--wp--preset--color--primary);
					padding: 18px 55px 18px 30px;
				}
				
				.is-style-secondary-button .wp-block-button__link::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}

				.wp-block-button.is-style-secondary-button .wp-block-button__link:before,
				.editor-styles-wrapper .is-style-secondary-button.wp-block-button .wp-block-button__link:before {
					content: "";
					position: absolute;
					z-index: -1;
					background-color: var(--wp--preset--color--primary);
					left: auto;
					right: 0;
					top: 0;
					height: 100%;
					width: 0;
					-webkit-transition: all ease 0.4s;
					-o-transition: all ease 0.4s;
					transition: all ease 0.4s;
				}
				
				.wp-block-button.is-style-secondary-button .wp-block-button__link:hover,
				.editor-styles-wrapper .is-style-secondary-button.wp-block-button .wp-block-button__link:hover {
					color: var(--wp--preset--color--white);
				}
				
				.wp-block-button.is-style-secondary-button .wp-block-button__link:hover:before,
				.editor-styles-wrapper .is-style-secondary-button.wp-block-button .wp-block-button__link:hover:before {
					width: 101%;
					right: auto;
					left: 0;
				}',
			)
		);

		register_block_style(
			'core/button',
			array(
				'name'         => 'no-border',
				'label'        => esc_html__( 'No Border', 'fitness-park' ),
				'inline_style' => '
				.wp-block-button.is-style-no-border .wp-block-button__link,
				.editor-styles-wrapper .is-style-no-border.wp-block-button .wp-block-button__link {
					overflow: hidden;
					position: relative;
					z-index: 1;
					vertical-align: middle;
					cursor: pointer;
					background-color: transparent;
					color: var(--wp--preset--color--black);
					padding: 0 25px 0 0;
				}
				
				.is-style-no-border .wp-block-button__link::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}

				.wp-block-button.is-style-no-border .wp-block-button__link:hover,
				.editor-styles-wrapper .is-style-no-border.wp-block-button .wp-block-button__link:hover {
					color: var(--wp--preset--color--primary);
				}',
			)
		);

		register_block_style(
			'core/button',
			array(
				'name'         => 'video',
				'control__label' => 'shiv',
				'label'        => esc_html__( 'Video Icon', 'fitness-park' ),
				'inline_style' => '
				.wp-block-button.is-style-video .wp-block-button__link,
				.editor-styles-wrapper .is-style-video.wp-block-button .wp-block-button__link {
					position: relative;
					z-index: 99;
					width: 65px;
					height: 65px;
					font-size: 25px;
					color: var(--wp--preset--color--white);
					text-align: center;
					background: var(--wp--preset--color--primary);
					border-radius: 50%;
					font-size:0;
					display: inline-flex;
					align-items: center;
					justify-content: center;
					box-shadow: 0 0 16px rgba(19, 143, 129, 0.9);
				}
				.is-style-video .wp-block-button__link::before {
					position: absolute;
					content: "";
					top: -2px;
					bottom: -2px;
					left: -2px;
					right: -2px;
					border-radius: 50%;
					box-shadow: 0 0 rgba(255, 255, 255, 0.2), 0 0 0 16px rgba(255, 255, 255, 0.2), 0 0 0 32px rgba(255, 255, 255, 0.2), 0 0 0 48px rgba(255, 255, 255, 0.2);
					animation: ripples 1s linear infinite;
					animation-play-state: running;
					opacity: 1;
					visibility: visible;
					transform: scale(0.6);
					z-index: 0;
				}
				
				.is-style-video .wp-block-button__link::after {
					content: "\f235";
					position: absolute;
					font-family: "dashicons";
					font-size: 25px;
				}

				.wp-block-button.is-style-video .wp-block-button__link:hover,
				.editor-styles-wrapper .is-style-video.wp-block-button .wp-block-button__link:hover {
					box-shadow: 0px 4px 10px var(--wp--preset--color--primary);
				}
				.wp-block-button.is-style-video .wp-block-button__link:hover:before,
				.editor-styles-wrapper .is-style-video.wp-block-button .wp-block-button__link:hover:before {
					animation-play-state: paused;
					opacity: 0;
					visibility: hidden;
					transition: 0.3s;
				}',
			)
		);

		/** Read More */
		register_block_style(
			'core/read-more',
			array(
				'name'         => 'primary-button',
				'label'        => esc_html__( 'Primary Button', 'fitness-park' ),
				'inline_style' => '
				.is-style-primary-button.wp-block-read-more{
					overflow: hidden;
					position: relative;
					z-index: 1;
					vertical-align: middle;
					padding-right:55px;
					cursor: pointer;
					background: var(--wp--preset--color--primary);
					color: var(--wp--preset--color--white);
				}
				.is-style-primary-button.wp-block-read-more::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}
				.is-style-primary-button.wp-block-read-more:before{
					content: "";
					position: absolute;
					z-index: -1;
					background-color: var(--wp--preset--color--black);
					left: auto;
					right: 0;
					top: 0;
					height: 100%;
					width: 0;
					-webkit-transition: all ease 0.4s;
					-o-transition: all ease 0.4s;
					transition: all ease 0.4s;
				}
				.is-style-primary-button.wp-block-read-more:hover{
					color: var(--wp--preset--color--white);
				}
				.is-style-primary-button.wp-block-read-more:hover:before{
					width: 101%;
					right: auto;
					left: 0;
				}',
			)
		);

		register_block_style(
			'core/read-more',
			array(
				'name'         => 'secondary-button',
				'label'        => esc_html__( 'Secondary Button', 'fitness-park' ),
				'inline_style' => '

				.is-style-secondary-button.wp-block-read-more{
					overflow: hidden;
					position: relative;
					z-index: 1;
					padding-right:55px;
					cursor: pointer;
					background-color: var(--wp--preset--color--white);
					color: var(--wp--preset--color--primary);
					border: 2px solid var(--wp--preset--color--primary);
				}
				
				.is-style-secondary-button.wp-block-read-more::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}

				.is-style-secondary-button.wp-block-read-more:before {
					content: "";
					position: absolute;
					z-index: -1;
					background-color: var(--wp--preset--color--primary);
					left: auto;
					right: 0;
					top: 0;
					height: 100%;
					width: 0;
					-webkit-transition: all ease 0.4s;
					-o-transition: all ease 0.4s;
					transition: all ease 0.4s;
				}
				
				.is-style-secondary-button.wp-block-read-more:hover {
					color: var(--wp--preset--color--white);
				}
				
				.is-style-secondary-button.wp-block-read-more:hover:before {
					width: 101%;
					right: auto;
					left: 0;
				}',
			)
		);

		register_block_style(
			'core/read-more',
			array(
				'name'         => 'no-border',
				'label'        => esc_html__( 'No Border', 'fitness-park' ),
				'inline_style' => '

				.is-style-no-border.wp-block-read-more{
					overflow: hidden;
					position: relative;
					z-index: 1;
					vertical-align: middle;
					cursor: pointer;
					background-color: transparent;
					color: var(--wp--preset--color--black);
				}
				
				.is-style-no-border.wp-block-read-more::after {
					content: "\f344";
					position: absolute;
					margin-left: 5px;
					font-family: "dashicons";
				}

				.is-style-no-border.wp-block-read-more:hover {
					color: var(--wp--preset--color--primary);
				}',
			)
		);

	}
}
add_action( 'init', 'sparklethemes_register_block_patterns', 9 );