jQuery(document).ready(function($){
	var $content=$('.theme-events-display');
	var $evSearchInput=$('.event-search input');
	var ppp = 12;
	var grid_offset =0;var offset=0;
	var list_offset=0;
	var related_true_false = false;
	function set_grid_offset() {		
		 grid_offset = $(".theme-events-display .upcoming-events-grid-view").find('.col').length;
	}
	function set_list_offset() {
		list_offset = $(".theme-events-display .upcoming-events-list-view").find('.event-card').length;
		
	}
	function check_grid_view_event() {
		if($content.find('.upcoming-events-grid-view .events-grid-no').length || $content.find('.upcoming-events-grid-view.first_G_view').find('.col').length < 11)	{
			$('.load-more-events').hide(); //console.log('hide 1');
		} else {
			$('.load-more-events').show();
			//console.log('show...');
		}	
	}
	function check_list_view_event() {
		if($content.find('.upcoming-events-list-view .events-list-no').length || $content.find('.upcoming-events-list-view.first_L_view').find('.event-card').length < 7) {
			//console.log('hide...');
			$('.load-more-events').hide();//console.log('hide 2');
		} else {
			$('.load-more-events').show();
			//console.log('show...');
		}
	}
    //toggle grid and list view
	$('.events-display-switcher .view-switcher').click(function(){
		$(this).parent().find('.view-switcher').removeClass('active');
		$(this).addClass('active');
		view_type=$('.view-switcher.active').data('view');
		check_grid_view_event();check_list_view_event();
		
		if(view_type=='grid') {check_grid_view_event();}
		if ($(this).hasClass('events-grid-view')){
			$('.theme-events-display .upcoming-events-grid-view').show();
			$('.theme-events-display .upcoming-events-list-view').hide();
		} else if ($(this).hasClass('events-list-view')){
			$('.theme-events-display .upcoming-events-list-view').show();
			$('.theme-events-display .upcoming-events-grid-view').hide();
		}

	});

    //load more events 
    $('.load-more-events').click(function()	{
        //TODO: Load more events iwht respect to the currently active filters and chosen view
		var event_type='',view_type='';
		//console.log($(this).attr('event_type'));
		if($('.theme-button.active').data('event') !='') {
			event_type=$('.theme-button.active').data('event');
		} else {
			//event_type=$(this).val();
		}
	    var cats = $(this).data('cats');
		view_type=$('.view-switcher.active').data('view');
		ppp=( view_type =='grid') ? 12 : 8;
		//console.log(active_filter);
		set_grid_offset();
		set_list_offset()
		AjaxLoadMoreEvents(event_type,view_type, cats);
    });
	


	function AjaxLoadMoreEvents(event_type,view_type, evcats='') {
		// console.log('load more...');
		//console.log(offset);
		jQuery.ajax({
			type : 'post',
			url : local_objects.ajaxurl,
			data : {
				action : 'more_events_by_ajax',
				'event_type' : event_type,
				'view_type' : view_type,
				'ppp': ppp,
				'grid_offset': grid_offset,
				'list_offset': list_offset,
				'event_terms' : evcats,
				'current_page': local_objects.cb_page_id
			},
			beforeSend: function() {
				$content.addClass('loading');

			},
			success : function( response ) {
				$content.removeClass('loading');
				$content.append( response );
				if($content.find('.events-grid-no').length) {					
					$content.find( ".events-grid-no" ).filter(function( index ) {
						return index != 1;
					}).hide();
				}
				
				if(view_type=='grid') {
					if($(response).filter(".upcoming-events-grid-view").find('.events-grid-no').length )	{
						$('.load-more-events').hide();
					} else {
						$('.load-more-events').show();
						//console.log('show...');
					} 
				} else {
					if($(response).filter('.upcoming-events-list-view').find(".events-list-no").length) {
						//console.log('hide...');
						$('.load-more-events').hide();
					} else {
						$('.load-more-events').show();
						//console.log('show...');
					}
				}
				if($(response).filter(".upcoming-events-grid-view").find('.col').length < 11 && $(response).filter(".upcoming-events-list-view").find('.event-card').length < 8) {
					$('.load-more-events').hide();//console.log('if...');
				} else {
					$('.load-more-events').show();//console.log('else...');
				}
				//event_modal_init();
			},
			complete: function (response) {
				  $('.card').matchHeight();
					 setTimeout(function(){ 
						$('.card').matchHeight({
							remove:true
						  }); 
						$('.card').matchHeight(); 
					}, 300);
			 }
		});
		grid_offset += ppp;
		list_offset +=8;
		return false;
    }
    //popup modal - this doesn't have to be magnific, just using it for now so there is something to show 
    //
	//helper function ---
    function isSmallWidth() {
      return $('#mobileindicator').is(':visible');
    }
	var this_related=1;var postData=[];var this_slider_grid=1;var row_index=1;
	function event_modal_init($this=false) {
		var event_type='',view_type='';
		//console.log($(this));	
		if($this) {
			//console.log($this.closest('.main-event-content').find('div').hasClass('related-events-block'));
			this_related = ($this.closest('.main-event-content').find('div').hasClass('related-events-block'))	? 2 : 1;
			this_slider_grid = ($this.closest('.slider-section-wrapper').find('div').hasClass('not-to-be-missed-slider'))	? 2 : 1;
			row_index = ($this.closest('.main-section-row').attr('data-rindex'));
		}
		//console.log(this_related);
		if($('.theme-button.active').data('event') !='') {
			event_type=$('.theme-button.active').data('event');
		}		
        $('a.event-modal,div.event-modal').magnificPopup({//start with just.click to fire an alert
            //alert first
            type: 'ajax',
            ajax: {
                settings: {
                    type: 'GET',
                    data: postData
                }
            },
            gallery: {
                enabled: true, // set to true to enable gallery

            },
			closeOnContentClick: false,
			fixedContentPos: true,
			closeOnBgClick: true,
			showCloseBtn: true,
			enableEscapeKey: true,
			callbacks: {
				parseAjax: function(mfpResponse) {					
					console.log(mfpResponse);
					//this_slider_grid = ($this.closest('.slider-section-wrapper').find('div').hasClass('not-to-be-missed-slider'))	? 2 : 1;
					if(this_related ==2 ){
						$(document.body).addClass('is_reated');
					} else {
						$(document.body).removeClass('is_reated');
					}
					if(this_slider_grid==2 ){
						$(document.body).addClass('is_not_missed_slide');
					} else {
						$(document.body).removeClass('is_not_missed_slide');
					}
					
					$('.info-boxes-card-title').click(function(){
					  if (isSmallWidth()) {
						$(this).toggleClass('expanded');
						$(this).parent().find('.info-boxes-card-content').slideToggle();
					  }
					});
					
					  $('.read-more-section .read-more-content').hide(); 
					  $('.read-more-section .expand-read-more').click(function(){
						$(this).toggleClass('expanded');
						$(this).parent().parent().find('.read-more-content').slideToggle();

						if ($(this).hasClass('expanded')){
						  $(this).html('Read Less');
						} else {
						  $(this).html('Read more');

						}
					  })
				},
				ajaxContentAdded: function() {
					var m = this;
					this.content.find('.modal-close').on('click', function(e) {
						e.preventDefault();
						m.close();
					});
					$('.info-boxes-card-title').click(function(){
					  if (isSmallWidth()) {
						$(this).toggleClass('expanded');
						$(this).parent().find('.info-boxes-card-content').slideToggle();
					  }
					});
					  $('.read-more-section .read-more-content').hide(); 
					  $('.read-more-section .expand-read-more').click(function(){
						$(this).toggleClass('expanded');
						$(this).parent().parent().find('.read-more-content').slideToggle();

						if ($(this).hasClass('expanded')){
						  $(this).html('Read Less');
						} else {
						  $(this).html('Read more');

						}
					  });
					  
				},
				open: function() {			  
					// this part overrides "close" method in MagnificPopup object
					$.magnificPopup.instance.close = function () {
						//console.log(document.referrer);
						update_url(local_objects.current_page_url_cb);
						this_related =1;
						this_slider_grid=1;
						$(document.body).removeClass('is_reated');
						$(document.body).removeClass('is_not_missed_slide');						
						$.magnificPopup.proto.close.call(this);
					}; 
			  // you may override any method like so, just note that it's applied globally
			  
			},
			elementParse: function(item){
				postData = {
					 request_type:'ajax',
						'event_type':event_type,
						'current_page': local_objects.cb_page_id,
						'is_not_missed_slide': this_slider_grid,
						'row_index': row_index
				}
				var mp = $.magnificPopup.instance;
				mp.st.ajax.settings.data = postData;
			}
		  }
        });
	}
	//event_modal_init();
	// TODO: When a modal is popped up, you must re-reun $(.card).matchHeight(); to resolve display problems with the related events, 
	// and use the masonry layout funciton to resolve the masonry layout part https://masonry.desandro.com/methods.html#layout-masonry
	//control navigating left and right inside the modal 
    //Clicking the gilter buttons 
    $('.events-navigation .events-filter-buttons .theme-button').click(function(){
        $(this).parent().find('.theme-button').removeClass('active');
        $(this).addClass('active');
		var event_type='',view_type='';
		//console.log($(this).attr('event_type'));
		if($(this).data('event') !='') {
			event_type=$(this).data('event');
		} else {
			event_type=$(this).val();
		}
		view_type=$('.view-switcher.active').data('view');
		var cats = $(this).data('cats');
		ppp=( view_type =='grid') ? 15 : 9;
		//console.log(active_filter);
        //TODO: Ensure the corresponding filter button/select option becomes active as well, so the UI is constent if the user switches beteen a mobile and desktop view.
        filterEventsByDate(event_type,view_type, cats);
		offset = 0;
    });

    $('.events-navigation .events-filter-select select').change(function(){
        //TODO: Ensure the corresponding filter button/select option becomes active as well, so the UI is constent if the user switches beteen a mobile and desktop view.
		var event_type='',view_type='';
		event_type=$(this).val();		
		view_type=$('.view-switcher.active').data('view');
		var cats = $(this).data('cats');
		ppp=( view_type =='grid') ? 15 : 9;		
		filterEventsByDate(event_type,view_type, cats);
    });

    function filterEventsByDate(event_type,view_type, event_c = '') {
        //TODO: Filter events by selected date range
        var searchText = $evSearchInput.val();
		offset = 0;
		 jQuery.ajax({
            type : 'post',
            url : local_objects.ajaxurl,
            data : {
                action : 'event_filter_by_date',
                'event_type' : event_type,
				'view_type' : view_type,
				'search_text': searchText,
				'ppp': ppp,
				'event_terms' : event_c,
				'current_page': local_objects.cb_page_id,
                'offset': offset,
				
            },
            beforeSend: function() {
                $content.addClass('loading');
            },
            success : function( response ) {
                $content.removeClass('loading');
                $content.html( response );
				
				//event_modal_init();
				
				if(view_type=='grid') {
					if($(response).filter(".upcoming-events-grid-view").find('.events-grid-no').length )	{
						$('.load-more-events').hide();
					} else {
						$('.load-more-events').show();
						//console.log('show...');
					} 
				} else {
					if($(response).filter('.upcoming-events-list-view').find(".events-list-no").length) {
						//console.log('hide...');
						$('.load-more-events').hide();
					} else {
						$('.load-more-events').show();
						//console.log('show...');
					}
				}
				if($(response).filter(".upcoming-events-grid-view").find('.col').length < 11) {
					$('.load-more-events').hide();
				}
            },
			complete: function (response) {
				  $('.card').matchHeight();
					 setTimeout(function(){ 
						$('.card').matchHeight({
							remove:true
						  }); 
						$('.card').matchHeight(); 
					}, 300);
			 }
        });
    }
    	//$evSearchInput.on('input',
	function eventSearchInput($this)	{
			var event_type='',view_type='';
			//var $this = 	$( this );
			inputVal= $this.val();
			var cats = $('.ev_categories').val();
			if($('.events-navigation .events-filter-select').is(":visible"))	{
				var curnt_filter =$('.events-navigation .events-filter-select select');
				event_type=curnt_filter.val();	
			} else {
				var curnt_filter =$('.events-filter-buttons .event-filter-button.active');
				if(curnt_filter.data('event') !='') {
					event_type=curnt_filter.data('event');
				}
			}
			view_type=$('.view-switcher.active').data('view');
			ppp=( view_type =='grid') ? 12 : 9;			
			filterEventsByDate(event_type,view_type, cats);
		}
		//);	
		var timer = null;
    $evSearchInput.keydown(function(e){
       clearTimeout(timer); 
       timer = setTimeout(eventSearchInput(	$( this )), 1000);
       if (e.keyCode == 13) {
            e.preventDefault();
            return false;
       }
    });
});
function update_url(url) {
    history.pushState(null, null, url);
}

