<?php

/**
 *  Inspirelite Scripts
 */

if( ! class_exists( 'Inspirelite_Theme_Scripts' ) ){

    /**
     *  Inspirelite Emails
     */
    class Inspirelite_Theme_Scripts{

        /**
         * Member Variable
         *
         * @var instance
         */
        private static $instance;

        /**
         *  Initiator
         */
        public static function get_instance() {
          
            if ( ! isset( self::$instance ) ) {
              self::$instance = new self;
            }
            return self::$instance;
        }

        public function __construct() {

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

        	add_action( 'admin_init',  array( $this, 'inspirelite_add_editor_styles' ) );

        	add_action( 'inspirelite_scripts', array( $this, 'inspirelite_scripts_markup' ) );

        	add_action( 'inspirelite_admin_scripts', array( $this, 'inspirelite_admin_scripts_markup' ) );
        }

        public static function inspirelite_theme_scripts(){

        	if( is_admin() ){

        		do_action( 'inspirelite_admin_scripts' );

        	}else{
				
				do_action( 'inspirelite_scripts' );
        	}
        }

        public static function inspirelite_admin_scripts_markup(){}

		/**
		 * 		Enqueue scripts and styles.
		 */
        public static function inspirelite_scripts_markup(){

        	global $post, $wp_query, $page;

        	$this->bootstrap();

        	$this->fontawesome();

        	$this->inspirelite_menu();

			$this->slick();

            $this->owl_carousel();

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

				$this->inspirelite_comment();
			}

			$this->inspirelite_font();

			$this->theme_style();

			$this->theme_script();

            if( is_singular( 'listing' ) ){

                $this->google_map();
            }
        }

        public function google_map(){

            if( Inspirelite_Redux:: inspirelite_option( 'google_map_api_key_here' ) != '' || INSPIRELITE_DEV_ON ){

                if( INSPIRELITE_DEV_ON ){

                    $query_args = array(
                        'key'       => '',
                        'ver'       => '1',
                        'libraries' => urlencode( 'places' ),
                        'region'    => urldecode( 'uk' ),
                        'language'  => urldecode( 'en' ),
                        'sensor'    => urldecode( 'true' )
                    );

                    wp_enqueue_script( 'google-map', esc_url( add_query_arg( $query_args, 'https://maps.googleapis.com/maps/api/js' ) ), array('jquery'), INSPIRELITE_VERSION, true );  

                }else{

                    $query_args = array(
                        'key'       => urlencode( Inspirelite_Redux:: inspirelite_option( 'google_map_api_key_here' ) ),
                        'libraries' => urlencode( 'places' ),
                        'region'    => urldecode( 'uk' ),
                        'language'  => urldecode( 'en' ),
                        'sensor'    => urldecode( 'true' )
                    );

                    wp_enqueue_script( 'google-map', esc_url( add_query_arg( $query_args, 'https://maps.googleapis.com/maps/api/js' ) ), array('jquery'), INSPIRELITE_VERSION, true );  
                }
            }
        }

        public function inspirelite_add_editor_styles(){

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

        public function bootstrap(){

        	wp_enqueue_style( 'bootstrap', INSPIRELITE_LIBRARY . 'bootstrap-4.0.0/bootstrap.min.css', array(), INSPIRELITE_VERSION, 'all' );

        	wp_enqueue_script( 'bootstrap', INSPIRELITE_LIBRARY . 'bootstrap-4.0.0/bootstrap.bundle.min.js', array('jquery'), INSPIRELITE_VERSION, true );
        }

        public function fontawesome(){

        	wp_enqueue_style( 'fontawesome', INSPIRELITE_LIBRARY . 'fontawesome/css/fontawesome-all.css', array(), INSPIRELITE_VERSION, 'all' );
        }

        public function inspirelite_menu(){

        	wp_enqueue_style(  INSPIRELITE_PRIFIX.'menu', INSPIRELITE_LIBRARY . 'menu-maker/menu-maker.css', array(), INSPIRELITE_VERSION, 'all' );

        	wp_enqueue_script( INSPIRELITE_PRIFIX.'menu', INSPIRELITE_LIBRARY . 'menu-maker/menu-maker.js', array('jquery'), INSPIRELITE_VERSION, true );
        }

        public function inspirelite_comment(){

        	wp_enqueue_script( 'comment-reply' );
        }

        public function owl_carousel(){

	        wp_enqueue_style( 'owl-carousel', INSPIRELITE_LIBRARY . 'owlcarousel/owl.carousel.css', array(), INSPIRELITE_VERSION, 'all' );
	        
	        wp_enqueue_style( 'owl-carousel-default', INSPIRELITE_LIBRARY . 'owlcarousel/owl.theme.default.css', array(), INSPIRELITE_VERSION, 'all' );        	

            wp_enqueue_script( 'owl-carousel', INSPIRELITE_LIBRARY . 'owlcarousel/owl.carousel.js', array('jquery'), INSPIRELITE_VERSION, true );
        }

        public function slick(){

            wp_enqueue_style( 'slick', INSPIRELITE_LIBRARY . 'slick/css/slick.css', array(), INSPIRELITE_VERSION, 'all' );

            wp_enqueue_style( 'slick-theme', INSPIRELITE_LIBRARY . 'slick/css/slick-theme.css', array(), INSPIRELITE_VERSION, 'all' );

            wp_enqueue_script( 'slick', INSPIRELITE_LIBRARY . 'slick/js/slick.min.js', array('jquery'), INSPIRELITE_VERSION, true );
        }

        public function theme_style(){

            wp_enqueue_style( 'theme-style', INSPIRELITE_THEME_DIR . 'css/theme-style.css', array(), INSPIRELITE_VERSION, 'all' );

            /** stylesheet loaded for core **/
            
            if( is_rtl() ){

                 wp_enqueue_style( INSPIRELITE_PRIFIX.'-rtl-style', INSPIRELITE_DIR .'/rtl.css', array(), INSPIRELITE_VERSION, 'all' );

            }else{

            	wp_enqueue_style( INSPIRELITE_PRIFIX.'-style', get_template_directory_uri() . '/style.css' , array( 'theme-style' ), INSPIRELITE_VERSION, 'all' );
            }

            if( is_child_theme() ){

                wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( INSPIRELITE_PRIFIX.'-style' ), INSPIRELITE_VERSION );
            }
        }

        public function theme_script(){
        
            wp_enqueue_script( 'default-script', INSPIRELITE_THEME_DIR . 'js/default-script.js', array('jquery'), INSPIRELITE_VERSION, true );

            wp_enqueue_script( 'theme-script', INSPIRELITE_THEME_DIR . 'js/theme-script.js', array('jquery'), INSPIRELITE_VERSION, true );
        }

		/**
		 *   Register Google font in theme.
		 */
        public function inspirelite_font(){

        	if( ! class_exists( 'OT_Loader' ) ){

        		wp_enqueue_style( 'google-fonts', $this->inspirelite_google_fonts(), array(), null );
        	}
        }

		public function inspirelite_google_fonts() {

            $inspirelite_font = array();
			
			$inspirelite_font[] = esc_attr('Lora:400,400i,700,700i');

			$inspirelite_font[] = esc_attr('Roboto:100,100italic,300,300italic,400,400italic,500,500italic,700,700italic,900,900italic,regular,italic');

			$query_args = array(

					'family' 	=> 	urlencode( implode( '|', $inspirelite_font ) ),
					'subset' 	=>	urlencode( 'latin,latin-ext' ),
			);
	
			return esc_url_raw( add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ) );
		}
    }

    /**
    *  Kicking this off by calling 'get_instance()' method
    */
    Inspirelite_Theme_Scripts::get_instance();
}