/**
	* @package Alchemists HTML
	*
	* Template Scripts
	* Created by Dan Fisher
*/

;(function($){
	"use strict";

	$('body:not(.page-loader-disable)').jpreLoader({
		showSplash: false,
		loaderVPos: "50%",
	});

	$.fn.exists = function () {
		return this.length > 0;
	};

	/* ----------------------------------------------------------- */
	/*  Predefined Variables
	/* ----------------------------------------------------------- */
	var $template_var = $('body').data('template');
	var $color_primary = '#ffdc11';
	var $main_nav     = $('.main-nav');
	var $circular_bar = $('.circular__bar');
	var $gmap         = $('.gm-map');
	var $mp_single    = $('.mp_single-img');
	var $mp_gallery   = $('.mp_gallery');
	var $mp_iframe    = $('.mp_iframe');
	var $content_filter = $('.content-filter');
	var $marquee = $('.marquee');
	var $range_slider = $('#slider-range');
	var posts_filterable = $('.js-posts--filterable');

	var Core = {

		initialize: function() {

			this.headerNav();

			this.circularBar();

			this.circleProgress();

			this.MagnificPopup();

			//this.isotope();

			//this.SlickCarousel();

			//this.swiperSlider();

			this.ContentFilter();

			this.miscScripts();

		},

		SvgPolyfill: function() {
			//svg4everybody();
			return false;
		},

		headerNav: function() {
			var width = $(window).width();
			if ( $main_nav.exists()) {

				var $top_nav     = $('.nav-account');
				var $top_nav_li  = $('.nav-account > li');
				var $social      = $('.social-links--main-nav');
				var $info_nav_li = $('.info-block--header > li');
				var $info_nav_li_onclick = $('.js-info-block__item--onclick');
				var $wrapper     = $('.site-wrapper');
				var $nav_list    = $('.main-nav__list');
				var $nav_list_li = $('.main-nav__list > li');
				var $account_list    = $('.nav-account');
				var $account_list_li = $('.nav-account > li');
				var $toggle_btn  = $('#header-mobile__toggle');
				var $pushy_btn   = $('.pushy-panel__toggle, .search__toggle');

				// Clone Search Form
				var $header_search_form = $('.header-search-form').clone();
				$('#header-mobile').append($header_search_form);

				// Clone Shopping Cart to Mobile Menu
				/*var $shop_cart = $('.info-block__item--shopping-cart > .info-block__link-wrapper').clone();
				$shop_cart.appendTo($nav_list).wrap('<li class="main-nav__item--shopping-cart"></li>');*/

				// Add arrow and class if Top Bar menu ite has submenu
				$top_nav_li.has('ul').addClass('has-children').prepend('<span class="main-nav__toggle"></span>');

				// Clone Top Bar menu to Main Menu
				if ( $top_nav.exists() ) {
					var children = $top_nav.children().clone();
					$nav_list.append(children);
				}else
					$nav_list.append('<li class="divider showmobile"></li><li class="showmobile"><a href="/login/">Login</a></li><li class="showmobile"><a href="/signup/">Sign Up for Free</a></li>');

				// Clone Header Logo to Mobile Menu
				var $logo_mobile = $('.header-mobile__logo').clone();
				$nav_list.prepend($logo_mobile);
				$logo_mobile.prepend('<span class="main-nav__back"></span>');

				// Clone Header Info to Mobile Menu
				var header_info1 = $('.info-block__item--contact-primary').clone();
				var header_info2 = $('.info-block__item--contact-secondary').clone();
				$nav_list.append(header_info1).append(header_info2);

				// Clone Social Links to Main Menu
				if ( $social.exists() ) {
					var social_li = $social.children().clone();
					var social_li_new = social_li.contents().unwrap();
					social_li_new.appendTo($nav_list).wrapAll('<li class="main-nav__item--social-links"></li>');
				}

				// Add arrow and class if Info Header Nav has submenu
				$info_nav_li.has('ul').addClass('has-children');

				if ( $info_nav_li_onclick.exists() ){
					$info_nav_li_onclick.prepend('<span class="info-block__menu-icon"></span>');
					$info_nav_li_onclick.on('click', '.info-block__menu-icon', function() {
						$(this).toggleClass('active');
					});
				}

				// Mobile Menu Toggle
				$toggle_btn.on('click', function(){
					$wrapper.toggleClass('site-wrapper--has-overlay');
				});

				$('.site-overlay, .main-nav__back').on('click', function(){
					$wrapper.toggleClass('site-wrapper--has-overlay');
				});

				// Pushy Panel Toggle
				$pushy_btn.on('click', function(e){
					e.preventDefault();
					$wrapper.toggleClass('site-wrapper--has-overlay-pushy');
				});

				$('.site-overlay, .pushy-panel__back-btn').on('click', function(e){
					e.preventDefault();
					$wrapper.removeClass('site-wrapper--has-overlay-pushy site-wrapper--has-overlay');
				});

				// Add toggle button and class if menu has submenu
				$nav_list_li.has('.main-nav__sub').addClass('has-children').prepend('<span class="main-nav__toggle"></span>');
				$nav_list_li.has('.main-nav__megamenu').addClass('has-children').prepend('<span class="main-nav__toggle"></span>');

				$('.main-nav__toggle').on('click', function(){
					$(this).toggleClass('main-nav__toggle--rotate')
					.parent().siblings().children().removeClass('main-nav__toggle--rotate');

					$(".main-nav__sub, .main-nav__megamenu").not($(this).siblings('.main-nav__sub, .main-nav__megamenu')).slideUp('normal');
					$(this).siblings('.main-nav__sub').slideToggle('normal');
					$(this).siblings('.main-nav__megamenu').slideToggle('normal');
				});

				// Add toggle button and class if submenu has sub-submenu
				$('.main-nav__list > li > ul > li').has('.main-nav__sub-2').addClass('has-children').prepend('<span class="main-nav__toggle-2"></span>');
				$('.main-nav__list > li > ul > li > ul > li').has('.main-nav__sub-3').addClass('has-children').prepend('<span class="main-nav__toggle-2"></span>');

				$('.main-nav__toggle-2').on('click', function(){
					$(this).toggleClass('main-nav__toggle--rotate');
					$(this).siblings('.main-nav__sub-2').slideToggle('normal');
					$(this).siblings('.main-nav__sub-3').slideToggle('normal');
				});

				// Mobile Search
				$('#header-mobileaccount').on('click', function(){
					$(this).toggleClass('header-mobile__search-icon--close');
					$('.header-mobile').toggleClass('header-mobile--expanded');
				});
			}
		},

		circularBar: function() {

			var $track_color = '#ecf0f6';
			var $track_line_cap = 'square';

			if ( $template_var == 'template-esports' ) {
				$track_line_cap = 'round';
			}

			if ( $template_var == 'template-football' ) {
				$track_color = '#4e4d73';
			} else if ( $template_var == 'template-esports' ) {
				$track_color = '#4b3b60';
			}


		},

		circleProgress: function() {
			var circle_progress = $('.js-alc-circle-progress');

			if ( circle_progress.exists() ) {
				circle_progress.each(function() {
					var circle_progress_el = $(this);
					var valueEl = circle_progress_el.attr('data-value');
					var percentSymbol = circle_progress_el.attr('data-percent-symbol');
					var hideValue = circle_progress_el.attr('data-hide-value');
					var maxValue = circle_progress_el.attr('aria-valuemax');
					if(!maxValue)
						maxValue = 100;

					circle_progress_el.circleProgress({
						max: maxValue,
						value: valueEl,
						textFormat: function() {
							if (hideValue) {
								return '';
							}
							if (percentSymbol) {
								return (this.value !== undefined ? this.value : this.indeterminateText) + '%';
							}
							return (this.value !== undefined ? this.value : this.indeterminateText);
						},
					});
				});
			}

		},

		MagnificPopup: function(){

			if ($mp_single.exists() ) {
				// Single Image
				$('.mp_single-img').magnificPopup({
					type:'image',
					removalDelay: 300,

					gallery:{
						enabled:false
					},
					mainClass: 'mfp-fade',
					autoFocusLast: false,

				});
			}

			if ($mp_gallery.exists() ) {
				// Multiple Images (gallery)
				$('.mp_gallery').magnificPopup({
					type:'image',
					removalDelay: 300,

					gallery:{
						enabled:true
					},
					mainClass: 'mfp-fade',
					autoFocusLast: false,

				});
			}

			if ($mp_iframe.exists() ) {
				// Iframe (video, maps)
				$('.mp_iframe').magnificPopup({
					type:'iframe',
					removalDelay: 300,
					mainClass: 'mfp-fade',
					autoFocusLast: false,

					patterns: {
						youtube: {
							index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index).

							id: 'v=', // String that splits URL in a two parts, second part should be %id%
							// Or null - full URL will be returned
							// Or a function that should return %id%, for example:
							// id: function(url) { return 'parsed id'; }

							src: '//www.youtube.com/embed/%id%?autoplay=1' // URL that will be set as a source for iframe.
						},
						vimeo: {
							index: 'vimeo.com/',
							id: '/',
							src: '//player.vimeo.com/video/%id%?autoplay=1'
						},
						twitch: {
							index: 'twitch.tv/',
							id: 'videos/',
							src: '//player.twitch.tv/?autoplay=false&video=v%id%'
						},
						gmaps: {
							index: '//maps.google.',
							src: '%id%&output=embed'
						}
					},

					srcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. "iframe_src" means: find "iframe" and set attribute "src".

				});
			}
		},


		ContentFilter: function() {

			if ( $content_filter.exists() ) {
				$('.content-filter__toggle,.content-filter__togglelink').on('click', function(e){
					let viewportWidth = window.innerWidth;
					if(viewportWidth<993){
						e.preventDefault();
						$(this).toggleClass('content-filter__toggle--active');
						$('.content-filter__list').toggleClass('content-filter__list--expanded');
					}
				});
			}

		},

		miscScripts: function() {
			// Tooltips
			$('[data-toggle="tooltip"]').tooltip();

			[].slice.call( document.querySelectorAll( 'select.cs-select' ) ).forEach( function(el) {
				new SelectFx(el);
			} );

			// Marquee
			if ( $marquee.exists() ) {
				$marquee.marquee({
					allowCss3Support: true,
					pauseOnHover: true
				});
			}

			// Duotone effect
			$('.effect-duotone').prepend('<div class="effect-duotone__layer"><div class="effect-duotone__layer-inner"></div></div>');

		},

	};

	$(document).on('ready', function() {
		Core.initialize();
	});

})(jQuery);
