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

if ( ! defined( 'JOURNAL_STORIES_VERSION' ) ) {
	// Replace the version number of the theme on each release.
	define( 'JOURNAL_STORIES_VERSION', wp_get_theme()->get( 'Version' ) );
}

if ( ! function_exists( 'journal_stories_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 journal_stories_setup() {

		load_theme_textdomain( 'journal-stories', get_template_directory() . '/languages' );

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

		add_theme_support( 'align-wide' );

		add_theme_support( 'woocommerce' );

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

		// Enqueue editor styles.
		add_editor_style( 'style.css' );

		// Experimental support for adding blocks inside nav menus
		add_theme_support( 'block-nav-menus' );

		// Add support for experimental link color control.
		add_theme_support( 'experimental-link-color' );
	}
endif;
add_action( 'after_setup_theme', 'journal_stories_setup' );

function journal_stories_scripts() {

    wp_enqueue_style('journal-stories-style', get_stylesheet_uri(), array() );
    wp_enqueue_script('jquery-wow', get_template_directory_uri() . '/assets/js/wow.js', array('jquery'));
    wp_enqueue_style('animate-css', get_template_directory_uri() . '/assets/css/animate.css');

    //font-awesome
    wp_enqueue_style( 'fontawesome', get_template_directory_uri() . '/font-awesome/css/all.css', array(), '7.0.0' );

    wp_enqueue_style('swiper-bundle-css', get_template_directory_uri() . '/assets/css/swiper-bundle.css', array(), '11.2.8');
    wp_enqueue_script('swiper-bundle-js', get_template_directory_uri() . '/assets/js/swiper-bundle.js', array('jquery'), '11.2.8', true);

    wp_enqueue_style( 'owl.carousel-style', get_template_directory_uri().'/assets/css/owl.carousel.css', array(), '2.2.1' );
    wp_enqueue_script( 'owl.carousel-js', get_template_directory_uri(). '/assets/js/owl.carousel.js', array('jquery') ,'2.3.0',true);
    
    wp_enqueue_script('journal-stories-custom-scripts', get_template_directory_uri() . '/assets/js/custom.js', array('jquery'), '', true);
    wp_style_add_data( 'journal-stories-style', 'rtl', 'replace' );

}
add_action( 'wp_enqueue_scripts', 'journal_stories_scripts' );


/**
 * Enqueue block editor styles
 */
function journal_stories_enqueue_block_editor_styles() {
    wp_enqueue_style(
        'journal-stories-block-editor-style', // Handle
        get_theme_file_uri( '/assets/css/block-editor.css' ), // File URI
        array(), // Dependencies
        filemtime( get_theme_file_path( '/assets/css/block-editor.css' ) ) // Version with file modification time for cache busting
    );
}
add_action( 'enqueue_block_editor_assets', 'journal_stories_enqueue_block_editor_styles' );


function journal_stories_init_setup() {

    /**
     * Section Pro
     */
    require get_template_directory() . '/inc/section-pro/customizer.php';

    // Add block patterns
    require get_template_directory() . '/inc/block-patterns.php';
    
}
add_action( 'after_setup_theme', 'journal_stories_init_setup' );


//////////////////////////////////////////////   Function for Translation Error   //////////////////////////////////////////////////////
function journal_stories_enqueue_function() {

    /**
    * GET START.
    */
    require get_template_directory() . '/getstarted/journal_stories_about_page.php';

    define('JOURNAL_STORIES_FREE_SUPPORT',__('https://www.revolutionwp.com/products/journal-stories','journal-stories'));
    define('JOURNAL_STORIES_PRO_SUPPORT',__('https://www.revolutionwp.com/support/revolution-wp/','journal-stories'));
    define('JOURNAL_STORIES_REVIEW',__('https://wordpress.org/support/theme/journal-stories/reviews/','journal-stories'));
    define('JOURNAL_STORIES_BUY_NOW',__('https://www.revolutionwp.com/products/journal-wordpress-theme','journal-stories'));
    define('JOURNAL_STORIES_LIVE_DEMO',__('https://demo.revolutionwp.com/journal-stories-pro/','journal-stories'));
    define('JOURNAL_STORIES_PRO_DOC',__('https://demo.revolutionwp.com/wpdocs/journal-stories-pro/','journal-stories'));
    define('JOURNAL_STORIES_LITE_DOC',__('https://demo.revolutionwp.com/wpdocs/journal-stories-free/','journal-stories'));
    
}
add_action( 'after_setup_theme', 'journal_stories_enqueue_function' );

// Add admin notice
function journal_stories_admin_notice() { 
    global $pagenow;
    $journal_stories_theme_args      = wp_get_theme();
    $journal_stories_meta            = get_option( 'journal_stories_admin_notice' );
    $name            = $journal_stories_theme_args->__get( 'Name' );
    $journal_stories_current_screen  = get_current_screen();

    if( !$journal_stories_meta ){
        if( is_network_admin() ){
            return;
        }

        if( ! current_user_can( 'manage_options' ) ){
            return;
        } 
        
        if( $journal_stories_current_screen->base !== 'appearance_page_journal_stories_guide') { ?>

            <div class="notice notice-success journal-stories-welcome-notice">
                <p class="journal-stories-dismiss-link">
                    <strong>
                        <a href="<?php echo esc_url( add_query_arg( 'journal_stories_admin_notice', '1' ) ); ?>">
                            <?php esc_html_e( 'Dismiss', 'journal-stories' ); ?>
                        </a>
                    </strong>
                </p>

                <div class="journal-stories-welcome-notice-wrap">
                    <h2 class="journal-stories-notice-title">
                        <span class="dashicons dashicons-admin-home"></span> 
                        <?php 
                            $journal_stories_theme_name = wp_get_theme()->get( 'Name' );
                            /* translators: %s!: Theme Name. */
                            echo esc_html( sprintf( __( 'Welcome to the free theme: %s!', 'journal-stories' ), $journal_stories_theme_name ) );
                        ?>
                    </h2>
                    <p class="journal-stories-notice-desc">
                        <?php esc_html_e( 'Get started by exploring the features of your new theme. Customize your design, add your content, and create a site that fits your vision.', 'journal-stories' ); ?>
                    </p>

                    <div class="journal-stories-welcome-info">
                        <div class="journal-stories-welcome-thumb">
                            <img src="<?php echo esc_url( get_stylesheet_directory_uri() . '/screenshot.png' ); ?>" alt="<?php esc_attr_e( 'Theme Screenshot', 'journal-stories' ); ?>">
                        </div>

                        <div class="journal-stories-welcome-getting-started">
                            <h3><span class="dashicons dashicons-art"></span> <?php esc_html_e( 'Customize Your Theme', 'journal-stories' ); ?></h3>
                            <p><?php esc_html_e( 'Want to make it truly yours? Explore the Getting Started Guide to personalize your site to suit your needs.', 'journal-stories' ); ?></p>
                            <p><a class="info-link button" href="<?php echo esc_url( admin_url( 'themes.php?page=journal-stories-getstart-page' ) ); ?>"><?php esc_html_e( 'View Getting Started Guide', 'journal-stories' ); ?></a></p>
                        </div>
                    </div>
                </div>
            </div>

            <?php
        }

    }
}

add_action( 'admin_notices', 'journal_stories_admin_notice' );

if( ! function_exists( 'journal_stories_update_admin_notice' ) ) :
/**
 * Updating admin notice on dismiss
*/
function journal_stories_update_admin_notice(){
    if ( isset( $_GET['journal_stories_admin_notice'] ) && $_GET['journal_stories_admin_notice'] = '1' ) {
        update_option( 'journal_stories_admin_notice', true );
    }
}
endif;
add_action( 'admin_init', 'journal_stories_update_admin_notice' );

add_action('after_switch_theme', 'journal_stories_setup_options');
function journal_stories_setup_options () {
    update_option('journal_stories_admin_notice', FALSE );
}

// Enqueue custom admin notice CSS
function journal_stories_enqueue_admin_notice_css( $hook ) {
    // Load CSS only on wp-admin pages (not the front end)
    wp_enqueue_style(
        'journal-stories-admin-notice-style',
        get_template_directory_uri() . '/assets/css/admin-notice.css',
        array(),
        wp_get_theme()->get( 'Version' )
    );
}
add_action( 'admin_enqueue_scripts', 'journal_stories_enqueue_admin_notice_css' );


// changelog
function journal_stories_get_changelog_from_readme() {
    $file_path = get_template_directory() . '/readme.txt';

    if (!file_exists($file_path)) {
        return [];
    }

    $content = file_get_contents($file_path);

    // Check if changelog exists
    if (strpos($content, '== Changelog ==') === false) {
        return [];
    }

    // Extract only changelog section
    $changelog = explode('== Changelog ==', $content)[1];

    // Match versions like = 1.0 =
    preg_match_all('/=\s*([\d\.]+)\s*=\s*(.*?)(?=\n=\s*[\d\.]+\s*=|\Z)/s', $changelog, $matches, PREG_SET_ORDER);

    return $matches;
}