????

Your IP : 216.73.216.174


Current Path : /home2/morganrand/www/wp-content/themes/wanderfuls/
Upload File :
Current File : /home2/morganrand/www/wp-content/themes/wanderfuls/functions.php

<?php




/**

 * This is where the magic happens.

 *

 * IMPORTANT: DO NOT EVER EDIT THIS FILE !!!!

 * IMPORTANT: DO NOT EVER COPY AND PASTE ANYTHING FROM HERE TO YOUR CHILD THEME !!!

 *

 * Wanderfuls is a very powerful theme and virtually anything can be customized

 * via a child theme. If you need any help altering a function, just let us know!

 * Customizations aren't included for free but if it's a simple task I'll be sure to help :)

 *

 * Theme Docs: http://tbplorer-themes.com/total/docs/

 *

 * @package Wanderfuls WordPress Theme

 * @subpackage Templates

 */





class TB_Theme_Setup {

	private $template_dir;



	/**

	 * Main Theme Class Constructor

	 *

	 * Loads all necessary classes, functions, hooks, configuration files and actions for the theme.

	 * Everything starts here.

	 *

	 * @since 1.6.0

	 *

	 */

	public function __construct() {



		$this->template_dir = get_template_directory();



		// Define globals

		global $tb_theme, $tb_theme_mods, $tb_admin_help_tabs;



		// Load global object file first so it can be used anywhere needed - this is important

		// because when inserting VC modules we must re-run the class object at times

		require_once( $this->template_dir .'/framework/classes/global-object.php' );



		// Add admin help tabs?

		$tb_admin_help_tabs = apply_filters( 'tb_admin_help_tabs', true );



		// Gets all theme mods and stores them in an easily accessable var

		$tb_theme_mods = get_theme_mods();



		// Functions used to retrieve theme mods - must be loaded early so it can be used on all hooks.

		require_once( $this->template_dir .'/framework/get_mods.php' );



		// Populate the global object

		// Must be done after all core functions are registered and after the WP object is set up so ID exists

		// Priority of 20 is important so we can use filters at default priority via other classes

		add_action( 'template_redirect', array( $this, 'global_object' ), 20 );



		// Defines hooks and runs actions

		add_action( 'init', array( $this, 'actions' ), 0 );



		// Define constants

		add_action( 'after_setup_theme', array( $this, 'constants' ), 1 );



		// Load all the theme addons - must run on this hook!

		add_action( 'after_setup_theme', array( $this, 'addons' ), 2 );



		// Load configuration classes (post types & 3rd party plugins)

		// Must load first so it can use hooks defined in the classes

		add_action( 'after_setup_theme', array( $this, 'configs' ), 3 );



		// Load all core theme function files

		add_action( 'after_setup_theme', array( $this, 'include_functions' ), 4 );



		// Load framework classes

		add_action( 'after_setup_theme', array( $this, 'classes' ), 5 );



		// Load custom widgets

		add_action( 'after_setup_theme', array( $this, 'custom_widgets' ), 5 );



		// Actions & filters

		add_action( 'after_setup_theme', array( $this, 'add_theme_support' ) );



		// Run after switch theme

		add_action( 'after_switch_theme', array( $this, 'after_switch_theme' ) );



		// Load scripts in the WP admin

		add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );



		// Load theme CSS

		add_action( 'wp_enqueue_scripts', array( $this, 'theme_css' ) );



		// Load responsive CSS - must be added last

		add_action( 'wp_enqueue_scripts', array( $this, 'responsive_css' ), 99 );



		// Load theme js

		add_action( 'wp_enqueue_scripts', array( $this, 'theme_js' ) );



		// Add meta viewport tag to header

		add_action( 'wp_head', array( $this, 'meta_viewport' ), 1 );



		// Add an X-UA-Compatible header

		add_filter( 'wp_headers', array( $this, 'x_ua_compatible_headers' ) );



		// Browser dependent CSS

		add_action( 'wp_head', array( $this, 'browser_dependent_css' ) );



		// Loads html5 shiv script

		add_action( 'wp_head', array( $this, 'html5_shiv' ) );



		// Outputs custom CSS to the head

		add_action( 'wp_head', array( $this, 'custom_css' ), 9999 );



		// Outputs custom CSS for the admin

		add_action( 'admin_head', array( $this, 'admin_inline_css' ) );



		// register sidebar widget areas

		add_action( 'widgets_init', array( $this, 'register_sidebars' ) );



		// Add gallery metabox to portfolio

		add_filter( 'tb_gallery_metabox_post_types', array( $this, 'add_gallery_metabox' ), 10 );



		// Define the directory URI for the gallery metabox calss

		add_filter( 'tb_gallery_metabox_dir_uri', array( $this, 'gallery_metabox_dir_uri' ) );



		// Alter tagcloud widget to display all tags with 1em font size

		add_filter( 'widget_tag_cloud_args', array( $this, 'widget_tag_cloud_args' ) );



		// Alter WP categories widget to display count inside a span

		add_filter( 'wp_list_categories', array( $this, 'wp_list_categories_args' ) );



		// Exclude categories from the blog page

		add_filter( 'pre_get_posts', array( $this, 'pre_get_posts' ) );



		// Add new social profile fields to the user dashboard

		add_filter( 'user_contactmethods', array( $this, 'add_user_social_fields' ) );



		// Add a responsive wrapper to the WordPress oembed output

		add_filter( 'embed_oembed_html', array( $this, 'add_responsive_wrap_to_oembeds' ), 99, 4 );



		// Allow for the use of shortcodes in the WordPress excerpt

		add_filter( 'the_excerpt', 'shortcode_unautop' );

		add_filter( 'the_excerpt', 'do_shortcode' );



		// Make sure the wp_get_attachment_url() function returns correct page request (HTTP or HTTPS)

		add_filter( 'wp_get_attachment_url', array( $this, 'honor_ssl_for_attachments' ) );



		// Tweak the default password protection output form

		add_filter( 'the_password_form', array( $this, 'custom_password_protected_form' ) );



		// Exclude posts with custom links from the next and previous post links

		add_filter( 'get_previous_post_join', array( $this, 'prev_next_join' ) );

		add_filter( 'get_next_post_join', array( $this, 'prev_next_join' ) );

		add_filter( 'get_previous_post_where', array( $this, 'prev_next_where' ) );

		add_filter( 'get_next_post_where', array( $this, 'prev_next_where' ) );



		// Redirect posts with custom links

		add_filter( 'template_redirect', array( $this, 'redirect_custom_links' ) );



		// Remove tb_term_data when a term is removed

		add_action( 'delete_term', array( $this, 'delete_term' ), 5 );



		// Remove emoji scripts

		if ( tb_get_mod( 'remove_emoji_scripts_enable', true ) ) {

			remove_action( 'wp_head', 'print_emoji_detection_script', 7 );

			remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );

			remove_action( 'wp_print_styles', 'print_emoji_styles' );

			remove_action( 'admin_print_styles', 'print_emoji_styles' );

		}



		// Adds classes the post class

		add_filter( 'post_class', array( $this, 'post_class' ) );



		// Add schema markup to the authors post link

		add_filter( 'the_author_posts_link', array( $this, 'the_author_posts_link' ) );



	} // End constructor



	/**

	 * Defines the constants for use within the theme.

	 *

	 * @since 2.0.0

	 */

	public function constants() {



		// Theme version

		define( 'TB_THEME_VERSION', '1.0.5' );



		// Visual Composer supported version

		define( 'TB_VC_SUPPORTED_VERSION', '4.11.2' );



		// Define branding constant based on theme options

		define( 'TB_THEME_BRANDING', tb_get_mod( 'theme_branding', 'Wanderfuls' ) );



		// Theme Panel slug

		define( 'TB_THEME_PANEL_SLUG', 'tb-panel' );

		define( 'TB_ADMIN_PANEL_HOOK_PREFIX', 'theme-panel_page_'. TB_THEME_PANEL_SLUG );



		// Paths to the parent theme directory

		define( 'TB_THEME_DIR', $this->template_dir );

		define( 'TB_THEME_URI', get_template_directory_uri() );



		// Javascript and CSS Paths

		define( 'TB_JS_DIR_URI', TB_THEME_URI .'/js/' );

		define( 'TB_CSS_DIR_URI', TB_THEME_URI .'/css/' );



		// Framework Paths

		define( 'TB_FRAMEWORK_DIR', TB_THEME_DIR .'/framework/' );

		define( 'TB_FRAMEWORK_DIR_URI', TB_THEME_URI .'/framework/' );

		define( 'TB_ClASSES', TB_FRAMEWORK_DIR .'/classes/' );



		// Classes directory

		define( 'TB_ClASSES_DIR', TB_FRAMEWORK_DIR .'/classes/' );



		// Check if plugins are active

		define( 'TB_VC_ACTIVE', class_exists( 'Vc_Manager' ) );

		define( 'TB_BBPRESS_ACTIVE', class_exists( 'bbPress' ) );

		define( 'TB_WOOCOMMERCE_ACTIVE', class_exists( 'WooCommerce' ) );

		define( 'TB_REV_SLIDER_ACTIVE', class_exists( 'RevSlider' ) );

		define( 'TB_LAYERSLIDER_ACTIVE', function_exists( 'lsSliders' ) );

		define( 'TB_WPML_ACTIVE', class_exists( 'SitePress' ) );

		define( 'TB_TRIBE_EVENTS_CALENDAR_ACTIVE', class_exists( 'Tribe__Events__Main' ) );



		// Active post types

		define( 'TB_PORTFOLIO_IS_ACTIVE', tb_get_mod( 'portfolio_enable', true ) );

		define( 'TB_STAFF_IS_ACTIVE', tb_get_mod( 'staff_enable', true ) );

		define( 'TB_TESTIMONIALS_IS_ACTIVE', tb_get_mod( 'testimonials_enable', true ) );



		// Visual Composer

		define( 'TB_VCEX_DIR', TB_FRAMEWORK_DIR .'visual-composer/' );

		define( 'TB_VCEX_DIR_URI', TB_FRAMEWORK_DIR_URI .'visual-composer/' );



	}



	/**

	 * Defines all theme hooks and runs all needed actions for theme hooks.

	 *

	 * @since 2.0.0

	 */

	public static function actions() {



		$dir = TB_FRAMEWORK_DIR;



		// Perform actions after updating

		require_once( $dir .'updates/after-update.php' );



		// Register hooks (needed in admin for Custom Actions panel)

		require_once( $dir .'hooks/hooks.php' );



		// Front-end stuff

		if ( ! is_admin() ) {

			require_once( $dir .'hooks/actions.php' );

			require_once( $dir .'hooks/partials.php' );

		}



	}



	/**

	 * Theme addons

	 *

	 * @since 2.0.0

	 */

	public static function addons() {

		require_once( TB_FRAMEWORK_DIR .'addons/theme-panel.php' );

	}



	/**

	 * Configs for post types and 3rd party plugins.

	 *

	 * @since 2.0.0

	 */

	public function configs() {



		$dir = TB_FRAMEWORK_DIR;



		// Portfolio

		if ( TB_PORTFOLIO_IS_ACTIVE ) {

			require_once( $dir .'portfolio/portfolio-config.php' );

		}



		// Staff

		if ( TB_STAFF_IS_ACTIVE ) {

			require_once( $dir .'staff/staff-config.php' );

		}



		// Testimonias

		if ( TB_TESTIMONIALS_IS_ACTIVE ) {

			require_once( $dir .'testimonials/testimonials-config.php' );

		}



		// WooCommerce

		if ( TB_WOOCOMMERCE_ACTIVE ) {

			require_once( $dir .'woocommerce/woocommerce-config.php' );

		}



		// Visual Composer

		if ( TB_VC_ACTIVE ) {

			require_once( $dir .'visual-composer/vc-config.php' );

		}



		// The Events Calendar

		if ( TB_TRIBE_EVENTS_CALENDAR_ACTIVE ) {

			require_once( $dir .'config/tribe-events.php' );

		}



		// Revolution slider

		if ( TB_REV_SLIDER_ACTIVE ) {

			require_once( $dir .'config/revslider.php' );

		}



		// WPML

		if ( TB_WPML_ACTIVE ) {

			require_once( $dir .'config/wpml.php' );

		}



		// Polylang

		if ( class_exists( 'Polylang' ) ) {

			require_once( $dir .'config/polylang.php' );

		}



		// bbPress

		if ( TB_BBPRESS_ACTIVE ) {

			require_once( $dir .'config/bbpress.php' );

		}



		// Sensei

		if ( function_exists( 'Sensei' ) ) {

			require_once( $dir .'config/sensei.php' );

		}



	}



	/**

	 * Framework functions

	 *

	 * @since 2.0.0

	 */

	public function include_functions() {

		$dir = TB_FRAMEWORK_DIR;

		require_once( $dir .'deprecated.php' );

		require_once( $dir .'core.php' );

		require_once( $dir .'conditionals.php' );

		require_once( $dir .'body-classes.php' );

		require_once( $dir .'arrays.php' );

		require_once( $dir .'fonts.php' );

		require_once( $dir .'shortcodes/shortcodes.php' );

		require_once( $dir .'overlays.php' );

		require_once( $dir .'togglebar.php' );

		require_once( $dir .'topbar.php' );

		require_once( $dir .'header-functions.php' );

		require_once( $dir .'search-functions.php' );

		require_once( $dir .'title.php' );

		require_once( $dir .'page-header.php' );

		require_once( $dir .'menu-functions.php' );

		require_once( $dir .'excerpts.php' );

		require_once( $dir .'comments-callback.php' );

		require_once( $dir .'social-share.php' );

		require_once( $dir .'blog-functions.php' );

		require_once( $dir .'pagination.php' );

		require_once( $dir .'tinymce.php' );

		if ( tb_get_mod( 'blog_dash_thumbs', true ) ) {

			require_once( $dir .'thumbnails/dashboard-thumbnails.php' );

		}

	}



	/**

	 * Framework Classes

	 *

	 * @since 2.0.0

	 */

	public function classes() {



		// Classes Dir

		$dir = TB_ClASSES_DIR;



		// Sanitize input

		require_once( $dir .'sanitize-data.php' );



		// iLightbox

		require_once( $dir .'ilightbox.php' );



		// Image Resize

		require_once( $dir .'image-resize.php' );



		// Gallery metabox

		require_once( $dir .'gallery-metabox/gallery-metabox.php' );



		// Term colors - coming soon!

		//require_once( $dir .'term-colors.php' );



		// Post Series

		if ( tb_get_mod( 'post_series_enable', true ) ) {

			require_once( $dir .'post-series.php' );

		}



		// Custom WP header

		if ( tb_get_mod( 'header_image_enable' ) ) {

			require_once( $dir .'custom-header.php' );

		}



		// Auto updates

		require_once(  $dir .'wp-updates-theme.php' );



		// Recommend plugins

		if ( tb_get_mod( 'recommend_plugins_enable', true ) ) {

			require_once( $dir .'class-tgm-plugin-activation.php' );

			require_once( TB_FRAMEWORK_DIR .'config/tgm-plugin-activation.php' );

		}



		// Term thumbnails

		if ( tb_get_mod( 'term_thumbnails_enable', true ) ) {

			require_once( $dir .'tax-thumbnails.php' );

		}



		// Remove post type slugs

		if ( tb_get_mod( 'remove_posttype_slugs' ) ) {

			require_once( $dir .'remove-post-type-slugs.php' );

		}

		

		// Image sizes panel

		if ( tb_get_mod( 'image_sizes_enable', true ) ) {

			require_once( $dir .'image-sizes.php' );

		}



		// Admin only classes

		if ( is_admin() ) {



			// Category meta

			require_once( $dir .'category-meta.php' );



			// Metabox - custom fields

			require_once( $dir .'metabox.php' );



			// Custom attachment fields

			require_once( $dir .'attachment-fields.php' );



		}



		// Front-end classes

		else {



			// Accent color

			require_once( $dir .'accent-color.php' );



			// Site layouts

			require_once( $dir .'site-layouts.php' );



			// Site backgrounds

			require_once( $dir .'site-backgrounds.php' );



			// Advanced styling

			require_once( $dir .'advanced-styling.php' );



			// Breadcrumbs class

			require_once( $dir .'breadcrumbs.php' );



		}



		// Customizer must load last to take advantage of all functions before it

		require_once( TB_FRAMEWORK_DIR .'customizer/customizer.php' );



	}



	/**

	 * Include all custom widget classes

	 *

	 * @since 2.0.0

	 */

	public static function custom_widgets() {



		// Define array of custom widgets for the theme

		$widgets = apply_filters( 'tb_custom_widgets', array(

			'social-fontawesome',

			'social',

			'simple-menu',

			'modern-menu',

			'flickr',

			'video',

			'posts-thumbnails',

			'posts-grid',

			'posts-icons',

			'comments-avatar',

		) );



		// Loop through widgets and load their files

		$dir = TB_ClASSES_DIR;

		foreach ( $widgets as $widget ) {

			require_once( $dir .'widgets/'. $widget .'.php' );

		}



	}



	/**

	 * Populate the $tb_theme global object.

	 *

	 * This helps speed things up by calling core functions only once and saving them in memory.

	 *

	 * @since 2.0.0

	 */

	public static function global_object() {



		// Get global object

		global $tb_theme;



		// Run global object class and update global var

		$tb_theme = new TB_Global_Theme_Object();



		// Apply filters to object var for advanced tweaking

		$tb_theme = apply_filters( 'tb_global_theme_object', $tb_theme );



	}



	/**

	 * Adds basic theme support functions and registers the nav menus

	 *

	 * @since 1.6.0

	 */

	public static function add_theme_support() {



		// Get globals

		global $content_width;



		// Set content width based on theme's default design

		if ( ! isset( $content_width ) ) {

			$content_width = 980;

		}



		// Menus

		$menus = array(

			'topbar_menu'     => __( 'Top Bar', 'tb' ),

			'main_menu'       => __( 'Main', 'tb' ),

			'mobile_menu_alt' => __( 'Mobile Menu Alternative', 'tb' ),

			'footer_menu'     => __( 'Footer', 'tb' ),

		);



		// Add mobile icons menu nav

		if ( in_array( tb_get_mod( 'mobile_menu_toggle_style', 'icon_buttons' ), array( 'icon_buttons', 'icon_buttons_under_logo' ) ) ) {

			$menus['mobile_menu'] = __( 'Mobile Icons', 'tb' );

		}



		// Register navigation menus

		register_nav_menus( $menus );




function print_filters_for( $hook = '' ) {
    global $wp_filter;
    if( empty( $hook ) || !isset( $wp_filter[$hook] ) )
        return;

    print '<pre>';
    print_r( $wp_filter[$hook] );
    print '</pre>';
}

function footer_function_list_fn( $atts ) {
	ob_start();	

		print_filters_for( 'wp_footer' );

	return ob_get_clean();
}

add_shortcode( 'footer_function_list', 'footer_function_list_fn' );


function desktop_testimonial_function( $atts ) {

	ob_start();

	$test_query = new WP_Query(array(

		'post_type' => 'reviews',

		'posts_per_page' => 3,

		));

?>

<?php if($test_query->have_posts()) : ?>

<div class="row">

	<?php while($test_query->have_posts()) : $test_query->the_post(); ?>

	<div class="col-md-4">

		<div style="position: relative;padding-bottom: 70px;margin-left: -10px;margin-right: -10px;" class="des-testimonial-item">

			<h1 style="text-align: center">"<?php the_title(); ?>"</h1>

			<hr>

			<?php the_content(); ?>



			<div style="position: absolute;right:15px;bottom:30px;" class="reviewer-details">

				<p style="text-align: right;font-size:18px"><strong>– <?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_name', true )); ?></strong><br><?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_city', true )); ?></p>			

			</div>

		</div>

	</div>

	<?php endwhile; ?>

</div>

<?php endif; ?>

<?php

	return ob_get_clean();

}

add_shortcode( 'des_testimonial', 'desktop_testimonial_function' );



function lucy_orange_scripts() {

    ?>

<script type='text/javascript'>

window.__lo_site_id = 61520;



	(function() {

		var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;

		wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';

		var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);

	  })();

	</script>



    <?php

}

add_action('wp_head', 'lucy_orange_scripts');




function facebook_scripts() {

    ?>

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '104046656996943',
      cookie     : true,
      xfbml      : true,
      version    : 'v2.8'
    });
    FB.AppEvents.logPageView();   
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>



    <?php

}

add_action('wp_head', 'facebook_scripts');




function color_mobile_menu_style() {

    ?>

	<style>
		.prodcuts_menu_1{
			display: <?php echo is_wfm_products_1() == 1 ? 'block' : 'none' ; ?>;
		}

		.prodcuts_menu_2{
			display: <?php echo is_wfm_products_2() == 1 ? 'block' : 'none' ; ?>;
		}

		.prodcuts_menu_3{
			display: <?php echo is_wfm_products_3() == 1 ? 'block' : 'none' ; ?>;
		}

		.discounts_menu_1{
			display: <?php echo is_wfm_discounts_1() == 1 ? 'block' : 'none' ; ?>;
		}

		.discounts_menu_2{
			display: <?php echo is_wfm_discounts_2() == 1 ? 'block' : 'none' ; ?>;
		}
	</style>

    <?php

}

add_action('wp_head', 'color_mobile_menu_style');





function favor_big_animation_function($atts){
	ob_start();
	?>
		<div id="favorbig" class="fbig">
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer15.png"/>      
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer02.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer03.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer04.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer05.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer06.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer07.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer08.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer09.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer10.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer12.png"/>
			<img src="<?php echo get_template_directory_uri(); ?>/images/fbig/small_10_pink_pompoms_dissolveLayer13.png"/>    
		</div>
	<?php
	return ob_get_clean();
}

add_shortcode( 'favor_big_animation', 'favor_big_animation_function');

function favor6_animation_function($atts){
	ob_start();
	?>
	<!-- Favor 6 -->  
	<div id="favor6" class="fv6">
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer7.jpg"/>
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer1.jpg"/> 
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer2.jpg"/>
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer3.jpg"/> 
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer4.jpg"/> 
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer5.jpg"/> 
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv6/small_06_pink_pompoms_dissolvelayer6.jpg"/> 
	</div>
	<?php
	return ob_get_clean();
}

add_shortcode( 'favor6_animation', 'favor6_animation_function');


function facebook_shortcode_fn($atts){
	ob_start();

	echo get_scp_widget();

	return ob_get_clean();
}

add_shortcode( 'facebook_c_shortcode', 'facebook_shortcode_fn');



function favor8_animation_function($atts){
	ob_start();
	?>
		<!-- Favor 8 --> 
		<div id="favor8" class="fv8">
			<img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer9.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer1.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer2.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer3.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer4.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer5.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer6.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer7.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv8/small_08_pink_pompoms_dissolvelayer8.jpg"/>            
	    </div>	
	<?php
	return ob_get_clean();
}

add_shortcode( 'favor8_animation', 'favor8_animation_function');

function favor9_animation_function($atts){
	ob_start();
	?>
		<!-- Favor 9 --> 
		<div id="favor9" class="fv9">
			<img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer10.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer1.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer2.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer3.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer4.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer5.jpg"/> 
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer6.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer7.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer8.jpg"/>
	        <img src="<?php echo get_template_directory_uri(); ?>/images/fv9/small_09_pink_pompoms_dissolvelayer9.jpg"/> 
	    </div>	
	<?php
	return ob_get_clean();
}

add_shortcode( 'favor9_animation', 'favor9_animation_function');


function favor10_animation_function($atts){
	ob_start();
	?>
	<!-- Favor 10 --> 
	<div id="favor10" class="fv10">
		<img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer12.jpg"/>
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer03.jpg"/> 
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer05.jpg"/>
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer06.jpg"/> 
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer07.jpg"/> 
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer08.jpg"/> 
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer09.jpg"/>
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer10.jpg"/>
        <img src="<?php echo get_template_directory_uri(); ?>/images/fv10/small_10_pink_pompoms_dissolvelayer11.jpg"/> 
    </div>
	<?php
	return ob_get_clean();
}

add_shortcode( 'favor10_animation', 'favor10_animation_function');




function faq_item_function_shortcode($atts){
	ob_start();


?>

<div class="vc_row wpb_row vc_inner vc_row-fluid vc_custom_1499668453659">
	<div class="wpb_column vc_column_container vc_col-sm-4 vc_custom_1499688435760"  style="margin-bottom: -30px !important;">
		<div class="wpb_wrapper tb-vc-column-wrapper tb-clr">
			<?php
				$first_col_query = new WP_Query(array(
					'post_type' => 'faqs',
					'posts_per_page' => -1,
					'meta_query' => array(
					    array(
					        'key' => 'wf_faq_coloumn',
					        'value' => '1st_coloumn'
					    ),
					),		
				));
			?>

			<?php while($first_col_query->have_posts()) : $first_col_query->the_post(); ?>
				<div class="vc_toggle vc_toggle_default vc_toggle_color_default  vc_toggle_size_md   faq-item">
					<div class="vc_toggle_title"><h4><?php the_title(); ?></h4><i class="vc_toggle_icon"></i></div>
					<div class="vc_toggle_content" style="overflow: hidden; display: none;"><?php the_content(); ?></div>
				</div>
			<?php endwhile; ?>
		</div>
	</div>
	<div class="wpb_column vc_column_container vc_col-sm-4 vc_custom_1499688463598" style="margin-bottom: -30px !important;">
		<div class="wpb_wrapper tb-vc-column-wrapper tb-clr">

		<?php
			$second_coloumn_query = new WP_Query(array(
				'post_type' => 'faqs',
				'posts_per_page' => -1,
				'meta_query' => array(
				    array(
				        'key' => 'wf_faq_coloumn',
				        'value' => '2nd_coloumn'
				    ),
				),
			));
		?>
		<?php while($second_coloumn_query->have_posts()) : $second_coloumn_query->the_post(); ?>
			<div class="vc_toggle vc_toggle_default vc_toggle_color_default  vc_toggle_size_md   faq-item">
				<div class="vc_toggle_title"><h4><?php the_title(); ?></h4><i class="vc_toggle_icon"></i></div>
				<div class="vc_toggle_content" style="overflow: hidden; display: none;"><?php the_content(); ?></div>
			</div>
		<?php endwhile; ?>

		</div>
	</div>	
	
	<div class="wpb_column vc_column_container vc_col-sm-4 vc_custom_1499688456830"  style="margin-bottom: -30px !important;">
		<div class="wpb_wrapper tb-vc-column-wrapper tb-clr">

		<?php
			$third_coloumn_query = new WP_Query(array(
				'post_type' => 'faqs',
				'posts_per_page' => -1,
				'meta_query' => array(
				    array(
				        'key' => 'wf_faq_coloumn',
				        'value' => '3rd_coloumn'
				    ),
				),
			));
		?>
		<?php while($third_coloumn_query->have_posts()) : $third_coloumn_query->the_post(); ?>
			<div class="vc_toggle vc_toggle_default vc_toggle_color_default  vc_toggle_size_md   faq-item">
				<div class="vc_toggle_title"><h4><?php the_title(); ?></h4><i class="vc_toggle_icon"></i></div>
				<div class="vc_toggle_content" style="overflow: hidden; display: none;"><?php the_content(); ?></div>
			</div>
		<?php endwhile; ?>

		</div>
	</div>	

	
</div>

<?php

	return ob_get_clean();
}

add_shortcode( 'faqs_item', 'faq_item_function_shortcode');







function desktop_testimonial_function2( $atts ) {

	ob_start();

	$test_query = new WP_Query(array(

		'post_type' => 'reviews',

		'posts_per_page' => 9,

		));

?>

<?php if($test_query->have_posts()) : ?>

<div class="row">

	<?php while($test_query->have_posts()) : $test_query->the_post(); ?>

	<div class="col-md-4">

		<div style="position: relative;padding-bottom: 70px;margin-left: -10px;margin-right: -10px;" class="des-testimonial-item">

			<h1 style="text-align: center">"<?php the_title(); ?>"</h1>

			<hr>

			<?php the_content(); ?>



			<div style="position: absolute;right:15px;bottom:30px;" class="reviewer-details">

				<p style="text-align: right;font-size:18px"><strong>– <?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_name', true )); ?></strong><br><?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_city', true )); ?></p>			

			</div>

		</div>

	</div>

	<?php endwhile; ?>

</div>

<?php endif; ?>

<?php

	return ob_get_clean();

}

add_shortcode( 'des_testimonial2', 'desktop_testimonial_function2' );











function mobile_testimonial_function( $atts ) {

	ob_start();

	$test_query = new WP_Query(array(

		'post_type' => 'reviews',

		'posts_per_page' => 9,



		));

?>

<?php if($test_query->have_posts()) : ?>

<div class="row">

	<div class="col-md-12">

		<div  class="owl-carousel default testimonial-slider">

		<?php while($test_query->have_posts()) : $test_query->the_post(); ?>



		<div class="mob-testimonial-item">

			<h1 style="text-align: center">"<?php the_title(); ?>"</h1>

			<hr>

			<?php the_content(); ?>



			<div class="reviewer-details">

				<p style="text-align: right;font-size:18px"><strong>– <?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_name', true )); ?></strong><br><?php echo esc_attr(get_post_meta( get_the_ID(), 'rv_city', true )); ?></p>			

			</div>

		</div>



		<?php endwhile; ?>

		</div>

	</div>

</div>

<?php endif; ?>

<?php

	return ob_get_clean();

}

add_shortcode( 'mob_testimonial', 'mobile_testimonial_function' );




add_action( 'init', 'post_reviews_init' );



function my_password_form() {
    global $post;
    $label = 'pwbox-'.( empty( $post->ID ) ? rand() : $post->ID );

    ob_start(); 

    ?>

<div class="password-protection-box clr">
<form action="<?php echo esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ); ?>" method="post">
<h2>Password Protected</h2>
<p>This content is password protected. To view it please enter your password below:</p>
<p>		<input name="post_password" id="<?php echo $label; ?>" size="20" maxlength="20" placeholder="Password" type="password"><input name="Submit" value="Enter" type="submit"><a class="color-page-link" href="/colors.html">Go to COLORS</a><br>
	</p></form>
</div>

<?php
    
    return ob_get_clean();
}
add_filter( 'the_password_form', 'my_password_form' );



/* Page switcher */


add_action( 'admin_menu', 'wf_add_admin_menu' );
add_action( 'admin_init', 'wf_settings_init' );


function wf_add_admin_menu(  ) { 

	add_menu_page( 'Wonderfuls Page Switch', 'Wonderfuls Page Switch', 'manage_options', 'wonderfuls_page_switch', 'wf_options_page' );

}


function wf_settings_init(  ) { 

	register_setting( 'pluginPage', 'wf_settings' );

	add_settings_section(
		'wf_pluginPage_section', 
		__( '', 'wonderfuls' ), 
		'wf_settings_section_callback', 
		'pluginPage'
	);

	add_settings_field( 
		'wf_select_field_0', 
		__( 'Products or Discounts Page', 'wonderfuls' ), 
		'wf_select_field_0_render', 
		'pluginPage', 
		'wf_pluginPage_section' 
	);

	add_settings_field( 
		'wf_select_field_1', 
		__( 'Choose Products Version', 'wonderfuls' ), 
		'wf_select_field_1_render', 
		'pluginPage', 
		'wf_pluginPage_section' 
	);

	add_settings_field( 
		'wf_select_field_2', 
		__( 'Choose Discounts Version', 'wonderfuls' ), 
		'wf_select_field_2_render', 
		'pluginPage', 
		'wf_pluginPage_section' 
	);

}


function wf_select_field_0_render(  ) { 

	$options = get_option( 'wf_settings' );
	?>
	<select id="select_1" name='wf_settings[wf_select_field_0]'>
		<option value='products' <?php selected( $options['wf_select_field_0'], 'products' ); ?>>Products</option>
		<option value='discounts' <?php selected( $options['wf_select_field_0'], 'discounts' ); ?>>Discounts</option>
	</select>

<?php



}


function wf_select_field_1_render(  ) { 

	$options = get_option( 'wf_settings' );
	?>
	<select  id="select_2"  name='wf_settings[wf_select_field_1]'>
		<option value='products1' <?php selected( $options['wf_select_field_1'], 'products1' ); ?>>Products A</option>
		<option value='products2' <?php selected( $options['wf_select_field_1'], 'products2' ); ?>>Products B</option>
		<option value='products3' <?php selected( $options['wf_select_field_1'], 'products3' ); ?>>Products C</option>
	</select>

<?php

}


function wf_select_field_2_render(  ) { 

	$options = get_option( 'wf_settings' );
	?>
	<select id="select_3" name='wf_settings[wf_select_field_2]'>
		<option value='discounts1' <?php selected( $options['wf_select_field_2'], 'discounts1' ); ?>>Discounts A</option>
		<option value='discounts2' <?php selected( $options['wf_select_field_2'], 'discounts2' ); ?>>Discounts B</option>
	</select>

<?php

}





function wf_settings_section_callback(  ) { 

	echo __( '', 'wonderfuls' );

}


function wf_options_page(  ) { 

	?>
	<form class="page_switch" action='options.php' method='post'>

		<h2>Wonderfuls Page Switcher</h2>

		<?php
		settings_fields( 'pluginPage' );
		do_settings_sections( 'pluginPage' );

		?>
		<input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes"  />
		<button type="reset" id="reset" class="button">Reset</button>

	</form>
	<?php

}

add_action( 'admin_footer', 'page_switch_enqueue' );
function page_switch_enqueue( ) {
	?>
	<script>





	jQuery(document).ready(function($){



		$('#reset').click(function(){

    		$('#select_1 option').attr('selected', false);
    		$('#select_2 option').attr('selected', false);
    		$('#select_3 option').attr('selected', false);
    		$('#select_4 option').attr('selected', false);
		});


	});

	</script>

	<?php
}



function is_wfm_products_1(){
	$options = get_option( 'wf_settings' );

	$val = $options['wf_select_field_0'];  
	$val_sub = $options['wf_select_field_1'];  

	if($val == 'products' && $val_sub == 'products1'){
		return true;
	}else{
		return false;
	}
}

function is_wfm_products_2(){
	$options = get_option( 'wf_settings' );

	$val = $options['wf_select_field_0'];  
	$val_sub = $options['wf_select_field_1'];  

	if($val == 'products' && $val_sub == 'products2'){
		return true;
	}else{
		return false;
	}
}

function is_wfm_products_3(){
	$options = get_option( 'wf_settings' );

	$val = $options['wf_select_field_0'];  
	$val_sub = $options['wf_select_field_1'];  

	if($val == 'products' && $val_sub == 'products3'){
		return true;
	}else{
		return false;
	}
}

function is_wfm_discounts_1(){
	$options = get_option( 'wf_settings' );

	$val = $options['wf_select_field_0'];  
	$val_sub = $options['wf_select_field_2'];  

	if($val == 'discounts' && $val_sub == 'discounts1'){
		return true;
	}else{
		return false;
	}
}

function is_wfm_discounts_2(){
	$options = get_option( 'wf_settings' );

	$val = $options['wf_select_field_0'];  
	$val_sub = $options['wf_select_field_2'];  

	if($val == 'discounts' && $val_sub == 'discounts2'){
		return true;
	}else{
		return false;
	}
}

/**

 * Register a book post type.

 *

 * @link http://codex.wordpress.org/Function_Reference/register_post_type

 */

function post_reviews_init() {

	$labels = array(

		'name'               => _x( 'Reviews', 'post type general name', 'your-plugin-textdomain' ),

		'singular_name'      => _x( 'Review', 'post type singular name', 'your-plugin-textdomain' ),

		'menu_name'          => _x( 'Reviews', 'admin menu', 'your-plugin-textdomain' ),

		'name_admin_bar'     => _x( 'Review', 'add new on admin bar', 'your-plugin-textdomain' ),

		'add_new'            => _x( 'Add New', 'Review', 'your-plugin-textdomain' ),

		'add_new_item'       => __( 'Add New Review', 'your-plugin-textdomain' ),

		'new_item'           => __( 'New Review', 'your-plugin-textdomain' ),

		'edit_item'          => __( 'Edit Review', 'your-plugin-textdomain' ),

		'view_item'          => __( 'View Review', 'your-plugin-textdomain' ),

		'all_items'          => __( 'All Reviews', 'your-plugin-textdomain' ),

		'search_items'       => __( 'Search Reviews', 'your-plugin-textdomain' ),

		'parent_item_colon'  => __( 'Parent Reviews:', 'your-plugin-textdomain' ),

		'not_found'          => __( 'No Reviews found.', 'your-plugin-textdomain' ),

		'not_found_in_trash' => __( 'No Reviews found in Trash.', 'your-plugin-textdomain' )

	);



	$args = array(

		'labels'             => $labels,

                'description'        => __( 'Description.', 'your-plugin-textdomain' ),

		'public'             => true,

		'publicly_queryable' => true,

		'show_ui'            => true,

		'show_in_menu'       => true,

		'query_var'          => true,

		'rewrite'            => array( 'slug' => 'review' ),

		'capability_type'    => 'post',

		'has_archive'        => true,

		'hierarchical'       => false,

		'menu_position'      => null,

		'supports'           => array( 'title', 'editor' )

	);



	register_post_type( 'reviews', $args );

}

function post_faqs_init() {

	$labels = array(

		'name'               => _x( 'Faqs', 'post type general name', 'your-plugin-textdomain' ),

		'singular_name'      => _x( 'Faq', 'post type singular name', 'your-plugin-textdomain' ),

		'menu_name'          => _x( 'Faqs', 'admin menu', 'your-plugin-textdomain' ),

		'name_admin_bar'     => _x( 'Faq', 'add new on admin bar', 'your-plugin-textdomain' ),

		'add_new'            => _x( 'Add New', 'Faq', 'your-plugin-textdomain' ),

		'add_new_item'       => __( 'Add New Faq', 'your-plugin-textdomain' ),

		'new_item'           => __( 'New Faq', 'your-plugin-textdomain' ),

		'edit_item'          => __( 'Edit Faq', 'your-plugin-textdomain' ),

		'view_item'          => __( 'View Faq', 'your-plugin-textdomain' ),

		'all_items'          => __( 'All Faqs', 'your-plugin-textdomain' ),

		'search_items'       => __( 'Search Faqs', 'your-plugin-textdomain' ),

		'parent_item_colon'  => __( 'Parent Faqs:', 'your-plugin-textdomain' ),

		'not_found'          => __( 'No Faqs found.', 'your-plugin-textdomain' ),

		'not_found_in_trash' => __( 'No Faqs found in Trash.', 'your-plugin-textdomain' )

	);



	$args = array(

		'labels'             => $labels,

                'description'        => __( 'Description.', 'your-plugin-textdomain' ),

		'public'             => true,

		'publicly_queryable' => true,

		'show_ui'            => true,

		'show_in_menu'       => true,

		'query_var'          => true,

		'rewrite'            => array( 'slug' => 'faqs' ),

		'capability_type'    => 'post',

		'has_archive'        => true,

		'hierarchical'       => false,
		'menu_icon'   => 'dashicons-format-chat',
		'menu_position'      => null,

		'supports'           => array( 'title', 'editor' )

	);



	register_post_type( 'faqs', $args );

}

add_action( 'init', 'post_faqs_init' );

/*** faqs metabox ****/

function faqs_metabox(){

	add_meta_box(

		'Faqs Coloumn',  

		__('Faqs','nuliterature'), 

		'faqs_callback_function',

		'faqs',

		'upper_2',

		'high'
	);	



}

add_action('add_meta_boxes','faqs_metabox');



function faqs_callback_function($post){



	wp_nonce_field('faqs_metabox_action','faqs_metabox_nonce_name');



	?>

		<div class="inside">
		<?php $wf_faq_coloumn = esc_attr(get_post_meta( $post->ID, 'wf_faq_coloumn', true )); ?>

			<p><label for="wf_faq_coloumn">Select Coloumn</label></p>

			<p> <select name="wf_faq_coloumn" id="wf_faq_coloumn" class="widefat">
				<option <?php echo $wf_faq_coloumn == '1st_coloumn' ? 'selected' : '' ; ?> value="1st_coloumn">1st Coloumn</option>
				<option <?php echo $wf_faq_coloumn == '2nd_coloumn' ? 'selected' : '' ; ?> value="2nd_coloumn">2nd Coloumn</option>
				<option <?php echo $wf_faq_coloumn == '3rd_coloumn' ? 'selected' : '' ; ?> value="3rd_coloumn">3rd Coloumn</option>
			</select>
		</div>



	<?php

}



	function save_faqs_metabox_data($post_id){



		if(if_user_can_save_faqs_data($post_id, 'faqs_metabox_nonce_name')){





			if(isset($_POST['wf_faq_coloumn'])){

				$meta_value = stripslashes(strip_tags($_POST['wf_faq_coloumn']));

				update_post_meta($post_id,'wf_faq_coloumn',$meta_value);

			}



		}

	}


	add_action('save_post','save_faqs_metabox_data');



	function if_user_can_save_faqs_data($post_id, $nonce){



		// this is not an autosave

		$r_autosave = wp_is_post_autosave($post_id);



		// this is not an Revison

		$r_revision = wp_is_post_revision($post_id);

		

		//check if the nonce is valid

		$r_is_valid_nonce = isset($_POST[$nonce]) && wp_verify_nonce($_POST[$nonce],'faqs_metabox_action' );

	

		// return true if the user is able to save data

		return !($r_autosave || $r_revision ) && $r_is_valid_nonce;



	}

function faq_move_deck() {

        # Get the globals:

        global $post, $wp_meta_boxes;



        # Output the "advanced" meta boxes:

        do_meta_boxes( get_current_screen(), 'upper_2', $post );



        # Remove the initial "advanced" meta boxes:

        unset($wp_meta_boxes['post']['faqs']);

    }



add_action('edit_form_after_title', 'faq_move_deck');


/*

*

* Meta boxes

*

*

*/









function foo_move_deck() {

        # Get the globals:

        global $post, $wp_meta_boxes;



        # Output the "advanced" meta boxes:

        do_meta_boxes( get_current_screen(), 'upper', $post );



        # Remove the initial "advanced" meta boxes:

        unset($wp_meta_boxes['post']['reviews']);

    }



add_action('edit_form_after_title', 'foo_move_deck');





function reviews_metabox(){

	add_meta_box(

		'Reviews Details',  

		__('Reviews','nuliterature'), 

		'reviews_callback_function',

		'reviews',

		'upper',

		'high'
	);	



}

add_action('add_meta_boxes','reviews_metabox');



/* === First Year Result Metabox === */

function reviews_callback_function($post){



	wp_nonce_field('reviews_metabox_action','reviews_metabox_nonce_name');



	?>

		<div class="inside">

			<p><label for="1st_regno">Reviewer Name</label></p>

			<p><input type="text" name="rv_name" value="<?php echo esc_attr(get_post_meta( $post->ID, 'rv_name', true )); ?>" id="rv_name" class="widefat" /></p>



			<p><label for="1st_regno">Reviewer City</label></p>

			<p><input type="text" name="rv_city" value="<?php echo esc_attr(get_post_meta( $post->ID, 'rv_city', true )); ?>" id="rv_city" class="widefat" /></p>



		</div>



	<?php

}




	function save_metabox_data($post_id){



		if(if_user_can_save_data($post_id, 'reviews_metabox_nonce_name')){





			if(isset($_POST['rv_name'])){

				$meta_value = stripslashes(strip_tags($_POST['rv_name']));

				update_post_meta($post_id,'rv_name',$meta_value);

			}



			if(isset($_POST['rv_city'])){

				$meta_value = stripslashes(strip_tags($_POST['rv_city']));

				update_post_meta($post_id,'rv_city',$meta_value);

			}





		}

	}



	add_action('save_post','save_metabox_data');







	function if_user_can_save_data($post_id, $nonce){



		// this is not an autosave

		$r_autosave = wp_is_post_autosave($post_id);



		// this is not an Revison

		$r_revision = wp_is_post_revision($post_id);

		

		//check if the nonce is valid

		$r_is_valid_nonce = isset($_POST[$nonce]) && wp_verify_nonce($_POST[$nonce],'reviews_metabox_action' );

	

		// return true if the user is able to save data

		return !($r_autosave || $r_revision ) && $r_is_valid_nonce;



	}















		// Apply filters for easier editing

		$menus = apply_filters( 'tb_nav_menus', $menus );





			register_nav_menus( array(

				'sticky_menu' => 'Sticky Menu'

			) );





		// Load text domain

		load_theme_textdomain( 'tb', TB_THEME_DIR .'/languages' );



		// Declare theme support

		add_theme_support( 'post-formats', array( 'video', 'gallery', 'audio', 'quote', 'link' ) );

		add_theme_support( 'automatic-feed-links' );

		add_theme_support( 'post-thumbnails' );

		add_theme_support( 'html5' );

		add_theme_support( 'woocommerce' );

		add_theme_support( 'title-tag' );

		add_theme_support( 'yoast-seo-breadcrumbs' );



		// Enable excerpts for pages.

		add_post_type_support( 'page', 'excerpt' );



		// Add styles to the WP editor

		add_editor_style( 'css/editor-style.css' );



	}



	/**

	 * Functions called after theme switch

	 *

	 * @since 1.6.0

	 */

	public static function after_switch_theme() {

		flush_rewrite_rules();

		delete_metadata( 'user', null, 'tgmpa_dismissed_notice_tb_theme', null, true );

	}



	/**

	 * Adds the meta tag to the site header

	 *

	 * @since 1.6.0

	 */

	public function meta_viewport() {



		// Responsive viewport viewport

		if ( tb_global_obj( 'responsive' ) ) {

			$viewport = '<meta name="viewport" content="width=device-width, initial-scale=1">';

		}



		// Non responsive meta viewport

		else {

			$width    = intval( tb_get_mod( 'main_container_width', '980' ) );

			$width    = $width ? $width: '980';

			$viewport = '<meta name="viewport" content="width='. $width .'" />';

		}

		

		// Apply filters to the meta viewport for child theme tweaking

		echo apply_filters( 'tb_meta_viewport', $viewport );



	}



	/**

	 * Load scripts in the WP admin

	 *

	 * @since 1.6.0

	 */

	public function admin_scripts() {

		wp_enqueue_style( 'tb-font-awesome', TB_CSS_DIR_URI .'font-awesome.min.css' );

	}



	/**

	 * Returns all CSS needed for the front-end

	 *

	 * @since 1.6.0

	 */

	public static function theme_css() {



		// Front end only

		if ( is_admin() ) {

			return;

		}



		// Define dir

		$dir = TB_CSS_DIR_URI;

		$theme_version = TB_THEME_VERSION;



		// Remove other font awesome scripts

		wp_deregister_style( 'font-awesome' );

		wp_deregister_style( 'fontawesome' );



		// Load font awesome script everywhere except the front-end composer because the js_composer already adds it

		wp_enqueue_style( 'tb-font-awesome', $dir .'font-awesome.min.css', false, '4.3.0' );



		// Register hover-css

		wp_register_style( 'tb-hover-animations', $dir .'hover-css.min.css', false, '2.0.1' );



		// LayerSlider

		if ( TB_LAYERSLIDER_ACTIVE ) {

			wp_enqueue_style( 'tb-layerslider', $dir .'tb-layerslider.css', false, $theme_version );

		}



		// Main Style.css File

		wp_enqueue_style( 'tb-style', get_stylesheet_uri(), false, $theme_version );



		// Load RTL.css if enabled

		if ( is_RTL() ) {

			wp_enqueue_style( 'tb-rtl', $dir .'rtl.css', array( 'tb-style' ), false );

		}



	}



	/**

	 * Loads responsive css very last after all styles.

	 *

	 * @since 1.6.0

	 */

	public static function responsive_css() {

		if ( tb_global_obj( 'responsive' ) ) {

			wp_enqueue_style( 'tb-responsive', TB_CSS_DIR_URI .'tb-responsive.css', false, TB_THEME_VERSION );

		}

	}



	/**

	 * Returns all js needed for the front-end

	 *

	 * @since 1.6.0

	 */

	public function theme_js() {



		// Front end only

		if ( is_admin() ) {

			return;

		}



		// Get js directory uri

		$dir = TB_JS_DIR_URI;



		// Get current theme version

		$theme_version = TB_THEME_VERSION;



		// Get localized array

		$localize_array = $this->localize_array();



		// Make sure the core jQuery script is loaded

		wp_enqueue_script( 'jquery' );



		// Retina.js

		if ( tb_global_obj( 'retina' ) ) {

			wp_enqueue_script( 'retina', $dir .'retina.js', array( 'jquery' ), '0.0.2', true );

		}



		// Comment reply

		if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {

			wp_enqueue_script( 'comment-reply' );

		}



		// Load minified js

		if ( tb_get_mod( 'minify_js_enable', true ) ) {

			wp_enqueue_script( 'wanderfuls-min', $dir .'wanderfuls-min.js', array( 'jquery' ), $theme_version, true );

			wp_localize_script( 'wanderfuls-min', 'tbLocalize', $localize_array );

		}

		

		// Load all non-minified js

		else {



			// Superfish used for menu dropdowns

			wp_enqueue_script( 'tb-superfish', $dir .'lib/superfish.js', array( 'jquery' ), $theme_version, true );

			wp_enqueue_script( 'tb-supersubs', $dir .'lib/supersubs.js', array( 'jquery' ), $theme_version, true );

			wp_enqueue_script( 'tb-hoverintent', $dir .'lib/hoverintent.js', array( 'jquery' ), $theme_version, true );



			// Sticky header

			wp_enqueue_script( 'tb-sticky', $dir .'lib/sticky.js', array( 'jquery' ), $theme_version, true );



			// Page animations

			wp_enqueue_script( 'tb-animsition', $dir .'lib/animsition.js', array( 'jquery' ), $theme_version, true );



			// Tooltips

			wp_enqueue_script( 'tb-tipsy', $dir .'lib/tipsy.js', array( 'jquery' ), $theme_version, true );



			// Checks if images are loaded within an element

			wp_enqueue_script( 'tb-images-loaded', $dir .'lib/images-loaded.js', array( 'jquery' ), $theme_version, true );



			// Main masonry script

			wp_enqueue_script( 'tb-isotope', $dir .'lib/isotope.js', array( 'jquery' ), $theme_version, true );



			// Leaner modal used for search/woo modals: @todo: Replace with CSS+light js

			wp_enqueue_script( 'tb-leanner-modal', $dir .'lib/leanner-modal.js', array( 'jquery' ), $theme_version, true );



			// Slider Pro

			wp_enqueue_script( 'tb-sliderpro', $dir .'lib/jquery.sliderPro.js', array( 'jquery' ), $theme_version, true );

			wp_enqueue_script( 'tb-sliderpro-customthumbnails', $dir .'lib/jquery.sliderProCustomThumbnails.js', array( 'jquery' ), false, true );



			// Touch Swipe - do we need it?

			wp_enqueue_script( 'tb-touch-swipe', $dir .'lib/touch-swipe.js', array( 'jquery' ), $theme_version, true );



			// Carousels

			wp_enqueue_script( 'tb-owl-carousel', $dir .'lib/owl.carousel.js', array( 'jquery' ), $theme_version, true );



			// Used for milestones

			wp_enqueue_script( 'tb-count-to', $dir .'lib/count-to.js', array( 'jquery' ), $theme_version, true );

			wp_enqueue_script( 'tb-appear', $dir .'lib/appear.js', array( 'jquery' ), $theme_version, true );



			// Mobile menu

			wp_enqueue_script( 'tb-sidr', $dir .'lib/sidr.js', array( 'jquery' ), $theme_version, true );



			// Custom Selects

			wp_enqueue_script( 'tb-custom-select', $dir .'lib/jquery.customSelect.js', array( 'jquery' ), $theme_version, true );



			// Equal Heights

			wp_enqueue_script( 'tb-match-height', $dir .'lib/jquery.matchHeight.js', array( 'jquery' ), $theme_version, true );



			// Mousewheel

			wp_enqueue_script( 'tb-mousewheel', $dir .'lib/jquery.mousewheel.js', array( 'jquery' ), $theme_version, true );



			// Parallax bgs

			wp_enqueue_script( 'tb-scrolly', $dir .'lib/scrolly.js', array( 'jquery' ), $theme_version, true );



			// iLightbox

			wp_enqueue_script( 'tb-ilightbox', $dir .'lib/ilightbox.js', array( 'jquery' ), $theme_version, true );

			

			// Cycle2

            wp_enqueue_script( 'tb-cycle2', $dir .'lib/jquery.cycle2.js', array( 'jquery' ), $theme_version, true );



			// WooCommerce quanity buttons

			if ( TB_WOOCOMMERCE_ACTIVE ) {

				wp_enqueue_script( 'wc-quantity-increment', $dir .'lib/wc-quantity-increment.js', array( 'jquery' ), $theme_version, true );

			}



			// Core global functions

			wp_enqueue_script( 'tb-functions', $dir .'functions.js', array( 'jquery' ), $theme_version, true );



			// Core global functions

			


			wp_enqueue_script( 'tb-customjs', $dir .'custom.js', array( 'jquery' ), $theme_version, true );

			// Localize script

			wp_localize_script( 'tb-functions', 'tbLocalize', $localize_array );



		}



	}









	/**

	 * Functions.js localize array

	 * IMPORTANT: Must be static so we can get array in VC inline_js class

	 *

	 * @since 3.0.0

	 */

	public static function localize_array() {



		// Get theme options

		$header_style      = tb_global_obj( 'header_style' );

		$sticky_header     = tb_global_obj( 'has_fixed_header' );

		$sticky_header     = tb_global_obj( 'has_fixed_header' );

		$mobile_menu_style = tb_global_obj( 'mobile_menu_style' );



		// Create array

		$array = array(

			'isRTL'                 => is_rtl(),

			'mainLayout'            => tb_global_obj( 'main_layout' ),

			'mobileMenuStyle'       => tb_global_obj( 'mobile_menu_style' ),

			'menuSearchStyle'       => tb_global_obj( 'menu_search_style' ),

			'hasStickyHeader'       => $sticky_header,

			'siteHeaderStyle'       => $header_style,

			'superfishDelay'        => 600,

			'superfishSpeed'        => 'fast',

			'superfishSpeedOut'     => 'fast',

			'localScrollUpdateHash' => false,

			'localScrollSpeed'      => 800,

			'windowScrollTopSpeed'  => 800,

			'carouselSpeed'		    => 150,

			'customSelects'         => '.woocommerce-ordering .orderby, #dropdown_product_cat, .widget_categories select, .widget_archive select, #bbp_stick_topic_select, #bbp_topic_status_select, #bbp_destination_topic, .single-product .variations_form .variations select',

		);



		// WooCart

		if ( TB_WOOCOMMERCE_ACTIVE ) {

			$array['wooCartStyle'] = tb_global_obj( 'menu_cart_style' );

		}



		// Sidr settings

		if ( 'sidr' == $mobile_menu_style ) {

			$array['sidrSource']   = tb_global_obj( 'sidr_menu_source' );

			$array['sidrDisplace'] = tb_get_mod( 'mobile_menu_sidr_displace', true ) ?  true : false;

			$array['sidrSide']     = tb_get_mod( 'mobile_menu_sidr_direction', 'left' );

			$array['sidrSpeed']    = 300;

		}



		// Toggle mobile menu

		if ( 'toggle' == $mobile_menu_style ) {

			$array['animateMobileToggle'] = true;

		}



		// Sticky Header

		if ( $sticky_header ) {

			$array['stickyShrinkOffset'] = 0;

			if ( tb_global_obj( 'fixed_header_logo' ) ) {

				$array['stickyheaderCustomLogo'] = tb_global_obj( 'fixed_header_logo' );

			}

			$array['hasStickyMobileHeader']  = tb_get_mod( 'fixed_header_mobile' );

			$array['overlayHeaderStickyTop'] = 0;

			$array['stickyHeaderBreakPoint'] = 960;

			$array['shrinkHeaderLogoHeight'] = tb_get_mod( 'fixed_header_shrink_logo_height', 50 );

		}



		// Sticky topBar

		if ( tb_get_mod( 'top_bar_sticky' ) ) {

			$array['stickyTopBarBreakPoint'] = 960;

			$array['hasStickyTopBarMobile']  = true;

		}



		// Header five

		if ( 'five' == $header_style ) {

			$array['headerFiveSplitOffset'] = 1;

		}



		// Full screen mobile menu style

		if ( 'full_screen' == $mobile_menu_style ) {

			$array['fullScreenMobileMenuStyle'] = tb_get_mod( 'full_screen_mobile_menu_style', 'white' );

		}



		// Apply filters and return array

		return apply_filters( 'tb_localize_array', $array );

	}



	/**

	 * Add headers for IE to override IE's Compatibility View Settings

	 *

	 * @since 2.1.0

	 */

	public static function x_ua_compatible_headers( $headers ) {

		$headers['X-UA-Compatible'] = 'IE=edge';

		return $headers;

	}



	/**

	 * Adds CSS for ie8

	 * Applies the tb_ie_8_url filter so you can alter your IE8 stylesheet URL

	 *

	 * @since 1.6.0

	 */

	public static function browser_dependent_css() {

		$ie_8 = apply_filters( 'tb_ie8_stylesheet', TB_CSS_DIR_URI .'ie8.css' );

		echo '<!--[if IE 8]><link rel="stylesheet" type="text/css" href="'. $ie_8 .'" media="screen"><![endif]-->';

		$ie_9 = apply_filters( 'tb_ie9_stylesheet', TB_CSS_DIR_URI .'ie9.css' );

		echo '<!--[if IE 9]><link rel="stylesheet" type="text/css" href="'. $ie_9 .'" media="screen"><![endif]-->';

	}



	/**

	 * Load HTML5 dependencies for IE8

	 *

	 * @since 1.6.0

	 */

	public static function html5_shiv() {

		echo '<!--[if lt IE 9]><script src="'. TB_JS_DIR_URI .'html5.js"></script><![endif]-->';

	}



	/**

	 * Registers the theme sidebars (widget areas)

	 *

	 * @since 1.6.0

	 */

	public function register_sidebars() {



		// Heading element type

		$sidebar_headings = tb_get_mod( 'sidebar_headings', 'div' );

		$sidebar_headings = $sidebar_headings ? $sidebar_headings : 'div';

		$footer_headings  = tb_get_mod( 'footer_headings', 'div' );

		$footer_headings  = $footer_headings ? $footer_headings : 'div';



		// Main Sidebar

		register_sidebar( array (

			'name'          => __( 'Main Sidebar', 'tb' ),

			'id'            => 'sidebar',

			'description'   => __( 'Widgets in this area are used in the default sidebar. This sidebar will be used for your standard blog posts.', 'tb' ),

			'before_widget' => '<div class="sidebar-box %2$s clr">',

			'after_widget'  => '</div>',

			'before_title'  => '<'. $sidebar_headings .' class="widget-title">',

			'after_title'   => '</'. $sidebar_headings .'>',

		) );



		// Pages Sidebar

		if ( tb_get_mod( 'pages_custom_sidebar', true ) ) {

			register_sidebar( array (

				'name'          => __( 'Pages Sidebar', 'tb' ),

				'id'            => 'pages_sidebar',

				'before_widget' => '<div class="sidebar-box %2$s clr">',

				'after_widget'  => '</div>',

				'before_title'  => '<'. $sidebar_headings .' class="widget-title">',

				'after_title'   => '</'. $sidebar_headings .'>',

			) );

		}



		// Search Results Sidebar

		if ( tb_get_mod( 'search_custom_sidebar', true ) ) {

			register_sidebar( array (

				'name'          => __( 'Search Results Sidebar', 'tb' ),

				'id'            => 'search_sidebar',

				'before_widget' => '<div class="sidebar-box %2$s clr">',

				'after_widget'  => '</div>',

				'before_title'  => '<'. $sidebar_headings .' class="widget-title">',

				'after_title'   => '</'. $sidebar_headings .'>',

			) );

		}



		// Testimonials Sidebar

		if ( post_type_exists( 'testimonials' ) && tb_get_mod( 'testimonials_custom_sidebar', true ) ) {

			$obj            = get_post_type_object( 'testimonials' );

			$post_type_name = $obj->labels->name;

			register_sidebar( array (

				'name'          => $post_type_name .' '. __( 'Sidebar', 'tb' ),

				'id'            => 'testimonials_sidebar',

				'before_widget' => '<div class="sidebar-box %2$s clr">',

				'after_widget'  => '</div>',

				'before_title'  => '<'. $sidebar_headings .' class="widget-title">',

				'after_title'   => '</'. $sidebar_headings .'>',

			) );

		}

// Side Menu Widgit

				register_sidebar( array (

					'name'          => __( 'Side Menu Widgit Area', 'tb' ),

					'id'            => 'side_menu',

					'before_widget' => '<div class="side_menu %2$s clr">',

					'after_widget'  => '</div>',

					'before_title'  => '<'. $sidebar_headings .' class="widget-title">',

					'after_title'   => '</'. $sidebar_headings .'>',

				) );





	register_sidebar( array(

		'name'          => __( 'Custom Footer Coloumn 1', '' ),

		'id'            => 'cs-footer-1',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );

	register_sidebar( array(

		'name'          => __( 'Custom Footer Coloumn 2', '' ),

		'id'            => 'cs-footer-2',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );

	register_sidebar( array(

		'name'          => __( 'Custom Footer Coloumn 3', '' ),

		'id'            => 'cs-footer-3',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );

	register_sidebar( array(

		'name'          => __( 'Custom Footer Coloumn 4', '' ),

		'id'            => 'cs-footer-4',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );

	register_sidebar( array(

		'name'          => __( 'Custom Footer Coloumn 5', '' ),

		'id'            => 'cs-footer-5',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );

	register_sidebar( array(

		'name'          => __( 'Custom Mobile Coloumn left', '' ),

		'id'            => 'cs-m-footer-1',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );



	register_sidebar( array(

		'name'          => __( 'Custom Mobile Coloumn Right', '' ),

		'id'            => 'cs-m-footer-2',

		'description'   => __( 'Add footer coloumn', '' ),

		'before_widget' => '<div id="%1$s" class="widget %2$s">',

		'after_widget'  => '</div>',

		'before_title'  => '<h3 class="widget-title">',

		'after_title'   => '</h3>',

	) );





		// Footer Sidebars

		if ( tb_get_mod( 'footer_widgets', true ) ) {



			// Footer widget columns

			$footer_columns = tb_get_mod( 'footer_widgets_columns', '4' );

			

			// Footer 1

			register_sidebar( array (

				'name'          => __( 'Footer Column 1', 'tb' ),

				'id'            => 'footer_one',

				'before_widget' => '<div class="footer-widget %2$s clr">',

				'after_widget'  => '</div>',

				'before_title'  => '<'. $footer_headings .' class="widget-title">',

				'after_title'   => '</'. $footer_headings .'>',

			) );

			

			// Footer 2

			if ( $footer_columns > '1' ) {

				register_sidebar( array (

					'name'          => __( 'Footer Column 2', 'tb' ),

					'id'            => 'footer_two',

					'before_widget' => '<div class="footer-widget %2$s clr">',

					'after_widget'  => '</div>',

					'before_title'  => '<'. $footer_headings .' class="widget-title">',

					'after_title'   => '</'. $footer_headings .'>'

				) );

			}

			

			// Footer 3

			if ( $footer_columns > '2' ) {

				register_sidebar( array (

					'name'          => __( 'Footer Column 3', 'tb' ),

					'id'            => 'footer_three',

					'before_widget' => '<div class="footer-widget %2$s clr">',

					'after_widget'  => '</div>',

					'before_title'  => '<'. $footer_headings .' class="widget-title">',

					'after_title'   => '</'. $footer_headings .'>',

				) );

			}

			

			// Footer 4

			if ( $footer_columns > '3' ) {

				register_sidebar( array (

					'name'          => __( 'Footer Column 4', 'tb' ),

					'id'            => 'footer_four',

					'before_widget' => '<div class="footer-widget %2$s clr">',

					'after_widget'  => '</div>',

					'before_title'  => '<'. $footer_headings .' class="widget-title">',

					'after_title'   => '</'. $footer_headings .'>',

				) );

			}



			// Footer 5

			if ( $footer_columns > '4' ) {

				register_sidebar( array (

					'name'          => __( 'Footer Column 5', 'tb' ),

					'id'            => 'footer_five',

					'before_widget' => '<div class="footer-widget %2$s clr">',

					'after_widget'  => '</div>',

					'before_title'  => '<'. $footer_headings .' class="widget-title">',

					'after_title'   => '</'. $footer_headings .'>',

				) );

			}

			

		}



	}



	/**

	 * Add the gallery metabox to more post types

	 *

	 * @since 2.0.0

	 */

	public static function add_gallery_metabox( $types ) {

		$types[] = 'page';

		return $types;

	}



	/**

	 * Defines the directory URI for the gallery metabox class.

	 *

	 * @since 1.6.3

	 */

	public static function gallery_metabox_dir_uri() {

		return TB_FRAMEWORK_DIR_URI .'classes/gallery-metabox/';

	}



	/**

	 * All theme functions hook into the tb_head_css filter for this function.

	 * This way all dynamic CSS is minified and outputted in one location in the site header.

	 *

	 * @since 1.6.0

	 */

	public static function custom_css( $output = NULL ) {



		// Add filter for adding custom css via other functions

		$output = apply_filters( 'tb_head_css', $output );



		// Minify and output CSS in the wp_head

		if ( ! empty( $output ) ) {

			$output = tb_minify_css( $output );

			$output = "<!-- TOTAL CSS -->\n<style type=\"text/css\">\n" . $output . "\n</style>";

			echo $output;

		}



	}



















	/**

	 * Adds inline CSS for the admin

	 *

	 * @since 1.6.0

	 */

	public static function admin_inline_css() {

		echo '<style>div#setting-error-tgmpa{display:block;}</style>';

	}



	/**

	 * Alters the default WordPress tag cloud widget arguments.

	 * Makes sure all font sizes for the cloud widget are set to 1em.

	 *

	 * @since 1.6.0 

	 */

	public static function widget_tag_cloud_args( $args ) {

		$args['largest']  = '0.923em';

		$args['smallest'] = '0.923em';

		$args['unit']     = 'em';

		return $args;

	}



	/**

	 * Alter wp list categories arguments.

	 * Adds a span around the counter for easier styling.

	 *

	 * @since 1.6.0

	 */

	public static function wp_list_categories_args( $links ) {

		$links = str_replace( '</a> (', '</a> <span class="cat-count-span">(', $links );

		$links = str_replace( ' )', ' )</span>', $links );

		return $links;

	}



	/**

	 * This function runs before the main query.

	 *

	 * @since 1.6.0

	 */

	public function pre_get_posts( $query ) {



		// Lets not break stuff

		if ( is_admin() || ! $query->is_main_query() ) {

			return;

		}



		// Search pagination

		if ( is_search() ) {

			$query->set( 'posts_per_page', tb_get_mod( 'search_posts_per_page', '10' ) );

			return;

		}



		// Exclude categories from the main blog

		if ( ( is_home() || is_page_template( 'templates/blog.php' ) ) && $cats = tb_blog_exclude_categories() ) {

			set_query_var( 'category__not_in', $cats );

			return;

		}



		// Category pagination

		$terms = get_terms( 'category' );

		if ( ! empty( $terms ) ) {

			foreach ( $terms as $term ) {

				if ( is_category( $term->slug ) ) {

					$term_id    = $term->term_id;

					$term_data  = get_option( "category_$term_id" );

					if ( $term_data ) {

						if ( ! empty( $term_data['tb_term_posts_per_page'] ) ) {

							$query->set( 'posts_per_page', $term_data['tb_term_posts_per_page'] );

							return;

						}

					}

				}

			}

		}



	}



	/**

	 * Add new user fields / user meta

	 *

	 * @since 1.6.0

	 */

	public static function add_user_social_fields( $contactmethods ) {



		$branding = TB_THEME_BRANDING;



		if ( ! isset( $contactmethods['tb_twitter'] ) ) {

			$contactmethods['tb_twitter'] = $branding .' - Twitter';

		}



		if ( ! isset( $contactmethods['tb_facebook'] ) ) {

			$contactmethods['tb_facebook'] = $branding .' - Facebook';

		}



		if ( ! isset( $contactmethods['tb_googleplus'] ) ) {

			$contactmethods['tb_googleplus'] = $branding .' - Google+';

		}



		if ( ! isset( $contactmethods['tb_linkedin'] ) ) {

			$contactmethods['tb_linkedin'] = $branding .' - LinkedIn';

		}



		if ( ! isset( $contactmethods['tb_pinterest'] ) ) {

			$contactmethods['tb_pinterest'] = $branding .' - Pinterest';

		}

		

		if ( ! isset( $contactmethods['tb_instagram'] ) ) {

			$contactmethods['tb_instagram'] = $branding .' - Instagram';

		}



		return $contactmethods;



	}



	/**

	 * Alters the default oembed output.

	 * Adds special classes for responsive oembeds via CSS.

	 *

	 * @since 1.6.0

	 */

	public static function add_responsive_wrap_to_oembeds( $html, $url, $attr, $post_id ) {

		$html = '<div class="responsive-video-wrap entry-video">' . $html . '</div>';

		return $html;

	}



	/**

	 * The wp_get_attachment_url() function doesn't distinguish whether a page request arrives via HTTP or HTTPS.

	 * Using wp_get_attachment_url filter, we can fix this to avoid the dreaded mixed content browser warning

	 *

	 * @since 1.6.0

	 */

	public static function honor_ssl_for_attachments( $url ) {

		$http     = site_url( FALSE, 'http' );

		$https    = site_url( FALSE, 'https' );

		$isSecure = false;

		if ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ) {

			$isSecure = true;

		}

		if ( $isSecure ) {

			return str_replace( $http, $https, $url );

		} else {

			return $url;

		}

	}



	/**

	 * Alters the default WordPress password protected form so it's easier to style

	 *

	 * @since 2.0.0

	 */

	public static function custom_password_protected_form() {

		ob_start();

		include( locate_template( 'partials/password-protection-form.php' ) );

		return ob_get_clean();

	}





	/**

	 * Modify JOIN in the next/prev function

	 *

	 * @since 2.0.0

	 */

	public static function prev_next_join( $join ) {

		global $wpdb;

		$join .= " LEFT JOIN $wpdb->postmeta AS m ON ( p.ID = m.post_id AND m.meta_key = 'tb_post_link' )";

		return $join;

	}



	/**

	 * Modify WHERE in the next/prev function

	 *

	 * @since 2.0.0

	 */

	public static function prev_next_where( $where ) {

		global $wpdb;

		$where .= " AND ( (m.meta_key = 'tb_post_link' AND CAST(m.meta_value AS CHAR) = '' ) OR m.meta_id IS NULL ) ";

		return $where;

	}



	/**

	 * Redirect posts using custom links

	 *

	 * @since 2.0.0

	 */

	public static function redirect_custom_links() {

		if ( is_singular() && $custom_link = tb_get_custom_permalink() ) {

			wp_redirect( $custom_link, 301 );

		}

	}



	/**

	 * When a term is deleted, delete its data.

	 *

	 * @since 2.1.0

	 */

	public static function delete_term( $term_id ) {



		// If term id is defined

		if ( $term_id = absint( $term_id ) ) {

			

			// Get terms data

			$term_data = get_option( 'tb_term_data' );



			// Remove key with term data

			if ( $term_data && isset( $term_data[$term_id] ) ) {

				unset( $term_data[$term_id] );

				update_option( 'tb_term_data', $term_data );

			}



		}



	}



	/**

	 * Adds extra classes to the post_class() output

	 *

	 * @since 3.0.0

	 */

	public static function post_class( $classes ) {



		// Get post

		global $post;



		// Add entry class

		$classes[] = 'entry';



		// Add has media class

		if ( has_post_thumbnail()

			|| get_post_meta( $post->ID, 'tb_post_oembed', true )

			|| get_post_meta( $post->ID, 'tb_post_self_hosted_media', true )

			|| get_post_meta( $post->ID, 'tb_post_video_embed', true )

			|| get_post_meta( $post->ID, 'tb_post_oembed', true )

		) {

			$classes[] = 'format-video';

			$classes[] = 'has-media';

		}



		// Return classes

		return $classes;



	}



	/**

	 * Add schema markup to the authors post link

	 *

	 * @since 3.0.0

	 */

	public static function the_author_posts_link( $link ) {



		// Add schema markup

		$schema = tb_get_schema_markup( 'author_link' );

		if ( $schema ) {

			$link = str_replace( 'rel="author"', 'rel="author"'. $schema, $link );

		}



		// Return link

		return $link;



	}



}

$tb_theme_setup = new TB_Theme_Setup;





function theme_name_scripts() {

	wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/bootstrap/css/bootstrap.min.css');

    wp_enqueue_style( 'style', get_template_directory_uri() . '/bootstrap/style.css');

	wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/bootstrap/js/bootstrap.min.js');

    wp_enqueue_script( 'flash', get_template_directory_uri() . '/js/flash_detect_min.js');

    wp_enqueue_script( 'dt', get_template_directory_uri() . '/js/dt50.js');

}



add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );