PageSourceSearch

https://www.727westmadison.com/wp-content/themes/mastertemplatetwo-child/js/gallery.js?ver=1

js 727westmadison.com collected 2026-10-06 02:31:58 UTC 9,431 bytes, 266 lines download raw bytes

1var currentCategory = 'all';
2var ajaxRunning = false;
3
4jQuery(document).ready(function() {
5
6		initializeSlider();
7
8		jQuery(".gallery").on("click", ".thumbnail_wrapper li", function () {
9			
10		var sliderIndex = jQuery(this).attr('data-counter');
11		sliderIndex  = parseInt(sliderIndex) - 1;
12		jQuery('.gallery .mt_slider').slick('slickGoTo', sliderIndex, true); 
13		jQuery("body").addClass("gallery_lightbox_open");
14		jQuery(".lightbox__wrapper").attr("aria-hidden", "false");
15	 		
16 	});
17
18	// Add keyboard support for gallery thumbnails
19	jQuery(".gallery").on("keydown", ".thumbnail_wrapper li a", function (e) {
20		if (e.key === "Enter" || e.key === " ") {
21			e.preventDefault();
22			var sliderIndex = jQuery(this).closest('li').attr('data-counter');
23			sliderIndex  = parseInt(sliderIndex) - 1;
24			jQuery('.gallery .mt_slider').slick('slickGoTo', sliderIndex, true); 
25			jQuery("body").addClass("gallery_lightbox_open");
26			jQuery(".lightbox__wrapper").attr("aria-hidden", "false");
27		}
28	});
29
30		jQuery(".lightbox .lightbox__close").on("click", function () {
31            pauseYouTubeVideo();
32            pauseVideo();
33			jQuery("body").removeClass("gallery_lightbox_open");
34			jQuery(".lightbox__wrapper").attr("aria-hidden", "true");
35		});
36
37		// Add keyboard support for lightbox close button
38		jQuery(".lightbox .lightbox__close").on("keydown", function (e) {
39			if (e.key === "Enter" || e.key === " ") {
40				e.preventDefault();
41				pauseYouTubeVideo();
42				pauseVideo();
43				jQuery("body").removeClass("gallery_lightbox_open");
44				jQuery(".lightbox__wrapper").attr("aria-hidden", "true");
45			}
46		});
47
48		// Add Escape key support to close lightbox
49		jQuery(document).on("keydown", function (e) {
50			if (e.key === "Escape" && jQuery("body").hasClass("gallery_lightbox_open")) {
51				pauseYouTubeVideo();
52				pauseVideo();
53				jQuery("body").removeClass("gallery_lightbox_open");
54				jQuery(".lightbox__wrapper").attr("aria-hidden", "true");
55			}
56		});
57
58        jQuery('.gallery .mt_slider').on('beforeChange', function(event, slick, currentSlide, nextSlide){
59            pauseYouTubeVideo();
60            pauseVideo();
61        });
62
63		jQuery('.gallery .mt_slider').on('afterChange', function(event, slick, currentSlide, nextSlide){
64
65			updateCurrentCounter(currentSlide);
66            updateCaption();
67            playVideo();
68            playYoutubeVideo();
69
70            if(currentCategory != 'all') {
71                var category = jQuery('div.slick-active').find('.slide_wrap').attr('data-category');
72                if(category != currentCategory) {
73                    currentCategory = category;
74                    updateTotalCount(); 
75                    var type = 'category_switch';
76                    var pagenumber = '';
77                    renderGalleryImages(pagenumber, type);  
78                    jQuery('#category_selector button').removeClass('selectivo__option--selected');
79                    jQuery('#category_selector button.'+category).addClass('selectivo__option--selected');
80                    updateDropdownButtonText(category);
81                }
82            }
83		});
84
85	jQuery('a#load_more').click(function(){
86		var type = 'loadmore';
87        var pagenumber = jQuery('input[name=current_page_'+currentCategory+']').val();
88        renderGalleryImages(pagenumber, type);
89	});
90
91	// Add keyboard support for Load More button
92	jQuery('a#load_more').on('keydown', function(e){
93		if (e.key === "Enter" || e.key === " ") {
94			e.preventDefault();
95			var type = 'loadmore';
96			var pagenumber = jQuery('input[name=current_page_'+currentCategory+']').val();
97			renderGalleryImages(pagenumber, type);
98		}
99	});
100
101        jQuery('div#category_selector button').click(function(){
102            var selectedCategory = jQuery(this).attr('data-category');
103            if( selectedCategory != currentCategory ) {
104                currentCategory = selectedCategory;
105                updateTotalCount();
106                var type = 'category_switch';
107                var pagenumber = '';
108                renderGalleryImages(pagenumber, type);
109                updateDropdownButtonText(selectedCategory);
110            }
111        });
112
113});
114
115function refreshGalleryAos() {
116    if (typeof AOS !== 'undefined') {
117        AOS.refresh();
118    }
119}
120
121function updateCaption() {
122    var caption = jQuery('div.slick-active').find('.slide_wrap').attr('data-caption');
123    jQuery('.mt_gallery_caption p').html(caption);
124}
125
126function pauseVideo() {
127    if( jQuery('div.slick-active').find('video').length > 0 ) {
128        let video = document.getElementById( jQuery('div.slick-active').find('video').attr('id') );
129        if (!video.paused) {
130            video.pause();
131        }
132    }
133}
134
135function playVideo() {
136    if( jQuery('div.slick-active').find('video').length > 0 ) {
137        let video = document.getElementById( jQuery('div.slick-active').find('video').attr('id') );
138        if (video.paused) {
139            video.play();
140        }
141    }
142}
143
144function pauseYouTubeVideo() {
145        if( jQuery('div.slick-active').find('iframe.youtube').length > 0 ) {
146            let iframe = jQuery('div.slick-active').find('iframe.youtube')[0];
147            // Stop any currently playing YouTube video by removing and recreating iframe
148            if (iframe && iframe.src) {
149                let originalSrc = iframe.src;
150                let parentNode = iframe.parentNode;
151                let className = iframe.className;
152                let width = iframe.getAttribute('width');
153                let height = iframe.getAttribute('height');
154                let style = iframe.getAttribute('style');
155                // Remove the iframe to stop the video
156                iframe.remove();
157                // Recreate the iframe with the same src but without autoplay
158                let newIframe = document.createElement('iframe');
159                newIframe.src = originalSrc.replace(/autoplay=1/g, 'autoplay=0');
160                newIframe.className = className;
161                if (width) newIframe.setAttribute('width', width);
162                if (height) newIframe.setAttribute('height', height);
163                if (style) newIframe.setAttribute('style', style);
164                newIframe.setAttribute('allowfullscreen', '');
165                newIframe.setAttribute('frameborder', '0');
166                // Insert the new iframe in the parent node
167                parentNode.appendChild(newIframe);
168            }
169        } 
170    } 
171
172function playYoutubeVideo() {
173    if( jQuery('div.slick-active').find('iframe.youtube').length > 0 ) {
174        let iframe = jQuery('div.slick-active').find('iframe.youtube')[0];
175        if (iframe && iframe.contentWindow) {
176            iframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
177        }
178    } 
179}
180
181function updateTotalCount() {
182    var totalCount = jQuery('input[name=hidden_category_counter_'+currentCategory+']').val();
183    jQuery('div.mt_gallery_caption span.total_slide').html(totalCount);
184}
185
186function updateCurrentCounter(currentSlide) {
187    if(currentCategory == 'all') {
188        var slideCounter = parseInt(currentSlide) + 1;
189    } else {
190        var slideCounter = jQuery('div.slick-active').find('.slide_wrap').attr('data-category-counter');
191    }    
192    jQuery('div.mt_gallery_caption span.current_slide').html(slideCounter);
193}
194
195// Update the dropdown button text
196function updateDropdownButtonText(category) {
197    var categoryText = jQuery('#category_selector button.' + category).text();
198    jQuery('.selectivo__label').text(categoryText);
199}
200
201function renderGalleryImages(pagenumber, type) {
202
203	if(ajaxRunning) {
204        return false;
205    }
206
207    if(pagenumber == '') {
208        var nextPageNumber = 1;
209    } else {
210        var nextPageNumber = parseInt(pagenumber) + 1;
211    }
212
213    var pagination_limit = jQuery('input[name=hidden_pagination_limit]').val();
214    var totalPages = jQuery('input[name=hidden_totalpages_'+currentCategory+']').val();
215
216    jQuery.ajax({
217        url : ajax_url,
218        type : 'POST',        
219        data : {
220            action : 'render_gallery_images',
221            pagenumber : nextPageNumber,
222            pagination_limit : pagination_limit,
223            category : currentCategory            
224        },        
225        beforeSend: function() {
226            ajaxRunning = true;
227            jQuery('a#load_more').html('Please Wait');
228        },
229        success : function (html ) {
230        	if(type == 'loadmore') {
231                jQuery('div.thumbnail_wrapper ul').append(html);
232            } else {
233            	jQuery('div.thumbnail_wrapper ul').html(html);	
234            }
235
236            if(totalPages <= nextPageNumber) {
237                jQuery('a#load_more').hide();
238            } else if( totalPages > nextPageNumber ) {
239                jQuery('a#load_more').show();
240            }  
241
242            //if(type == 'loadmore') {
243            //    jQuery('html,body').animate({
244            //        scrollTop: jQuery(".gallery-img-ajx").offset().top - 100
245            //    },'slow');
246            //} 
247
248            refreshGalleryAos();
249
250            jQuery('div.thumbnail_wrapper ul li').removeClass('gallery-img-ajx');
251
252            jQuery('input[name=current_page_'+currentCategory+']').val(nextPageNumber);
253
254            jQuery('a#load_more').html('Load More');
255
256            ajaxRunning = false;
257        }
258    });
259}
260
261function initializeSlider() {
262		jQuery(".gallery .mt_slider").slick({
263				dots:false,
264                adaptiveHeight: true
265		});
266}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.