PageSourceSearch

https://www.madamefigaro.hk/wp-content/themes/mftheme/assets/js/mf…504.2b6c2005657f1827f819d590a58b578611.0.83

js madamefigaro.hk collected 2026-09-25 04:51:28 UTC 35,390 bytes, 1,027 lines download raw bytes

1/*Detect mobile*/
2var isMobile = false, //initiate as false
3 	mainHeader = $('#mainHeader'),
4 	mainLogo = $('#mainHeader #logo'),
5 	mainCnt = $('#mainCnt'),
6 	topNav = $('#mainHeader #topNav'),
7	scrolling = false,
8	previousTop = 0,
9	currentTop = 0,
10	scrollDelta = 10,
11	scrollOffset = 150,
12	homeMastheadH = 0,
13	scrollOneFold = $(window).height() / 2,
14	btnMenu = $('#btnMenu'),
15	btnVideos = $('#btnVideos'),
16	btnSearch = $('#btnSearch'),
17	menuDrawer = $('#menuDrawer'),
18	searchDrawer = $('#searchDrawer'),
19	mainHeader = $('#mainHeader'),
20	videoBanner = $('.postsModule.video_banner'),
21	siteWrapper = $('#siteWrapper'),
22	videoDrawer = $('#videoDrawer'),
23	videoCover = $('#homeMastheadCover .cover'),
24	videoBg = $('#homeMastheadCover video'),
25	btnCloseMobileVideoDrawer = $('#btnCloseMobileVideoDrawer'),
26	homeHalfLogoWrapper = $('#homeHalfLogoWrapper'),
27	recommendedModule = $('#recommendedModule'),
28	btnRecommended = $('#btnRecommended'),
29	btnCloseRecommendedModule = $('.btnCloseRecommendedModule'),
30	btnCloseSearchDrawer = $('#btnCloseSearchDrawer'),
31	btnMobileSearch = $('#btnMobileSearch'),
32	btnFollow = $('#btnFollow'),
33	footer = $('#footer'),
34	socialNav = $('#socialNav'),
35	stickyAd = $('.stickyAd'),
36	sticky = $('.sticky'),
37	firstPost =$('.post-container').eq(0),
38	currentPost = firstPost,
39	currentTitle = currentPost.find('.titleModule h1').html(),
40	progressBarTitle = $('#articleProgressBar .title'),
41	postID= firstPost.data('post_id'),
42	top_AD = document.body.firstElementChild,
43	isHomePage =  $('.homePage').length == 0 ? false : true,
44	isCatPage =  $('.catPage').length == 0 ? false : true,
45	isTagPage =  $('.tagPage').length == 0 ? false : true;
46	isSearchPage =  $('.searchPage').length == 0 ? false : true;
47	isAuthorPage =  $('.authorPage').length == 0 ? false : true;
48	isNormalPage =  $('.normalPage').length == 0 ? false : true;
49	progressBarTitle.text(currentTitle);
50// device detection
51if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 
52    || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
52substr(0,4))) { 
53    isMobile = true;
54}
55
56(function($) {
57	setStickyFooter();
58	checkTopAd_mobile();
59	if (videoBg.length) {
60		videoBg[0].play();
61	}
62
63	$(window).on('resize', function(){
64		setStickyFooter();
65	});
66
67	var progressBar = $(".progress"),
68		posts = [],
69		_postProgress = 0,
70		_scrollOffsetTop = 0,
71		_currPage = 0,
72		_currPost = 0;
73
74	var progressHandler = function(){
75		if(!scrolling) {
76			scrolling = true;
77			(!window.requestAnimationFrame) ? autoHideHeader : requestAnimationFrame(autoHideHeader);
78		}
79		var headerHeight = mainHeader.lenght > 0 ? mainHeader[0].clientHeight : 0;
80		var scrollOffsetTop = $(window).scrollTop() + ($(window).innerHeight() - headerHeight);
81		var currPost, currPage, postProgress = 0;
82		$('.post-container').each(function(){
83			var id = $(this).attr('data-post_id');
84			if (!id) {
85				return;
86			}
87			var postExist = false;
88			for (var i = 0; i < posts.length; i++) {
89				if (posts[i].id === id) {
90					postExist = true;
91					break;
92				}
93			}
94			if (postExist) {
95				return;
96			}
97			var post = {
98				id: id,
99				elem: this,
100				pages: []
101			};
102			$(this).find('._page_').each(function(index, value){
103				var page = {
104					elem: this,
105				};
106				if (this.innerHTML.trim() !== '') {
107					post.pages.push(page);
108				}
109			});
110			posts.push(post);
111		});
112		for (var i = 0; i < posts.length; i++) {
113			var postTop = $(posts[i].elem).offset().top;
114			var postHeight = $(posts[i].elem).height();
115			if (scrollOffsetTop > postTop && scrollOffsetTop <= postTop + postHeight) {
116				currPost = posts[i];
117			}
118		}
119		if (currPost) {
120			var pages = currPost.pages;
121			var currPage = 0;
122			for (var i = pages.length - 1; i >= 0; i--) {
123				pages[i].height = $(pages[i].elem).height();
124				pages[i].top = $(pages[i].elem).offset().top;
125			}
126			for (var i = 0; i < pages.length; i++) {
127				if (pages[i-1] && pages[i].top < pages[i-1].top + pages[i-1].height) {
128					break;
129				}
130				if (scrollOffsetTop > pages[i].top) {
131					currPage = i;
132				}
133			}
134			if (currPost === _currPost && scrollOffsetTop > _scrollOffsetTop && currPage < _currPage) {
135				currPage = _currPage;
136			}
137			// console.log(currPage, scrollOffsetTop, pages.map(page => `${page.top}:${page.height}`))
138			if (scrollOffsetTop < pages[0].top) {
139				progressBar.width(0);
140			} else if (scrollOffsetTop >= pages[0].top) {
141				var pageProgress = (scrollOffsetTop - pages[currPage].top) / pages[currPage].height * 100;
142				pageProgress = (pages[currPage].height === 0 || pageProgress > 100) ? 100 / pages.length : pageProgress / pages.length;
143				var postProgress = 100 / pages.length * currPage + pageProgress;
144				postProgress = postProgress > 100 ? 100 : postProgress;
145				postProgress = postProgress < 0 ? 0 : postProgress;
146				if (scrollOffsetTop > _scrollOffsetTop && postProgress > _postProgress) {
147					progressBar.width(postProgress + '%');
148				}
149			}
150			_scrollOffsetTop = scrollOffsetTop;
151			_postProgress = postProgress;
152			_currPage = currPage;
153			_currPost = currPost;
154		}
155	}
156
157	$(window).on('scroll', function(){
158		progressHandler();
159	});
160
161	// var scrollDirection = new Array();
162 // 	var scrollIndex = 0;
163	// scrollDirection[0] = 0;
164	// var postScrollBar = 0;
165	// var postTempID = postID;
166	// var postDirection ='';
167
168	// $(window).on('scroll', function(){
169	// 	scrollIndex ++;
170	// 	scrollDirection[scrollIndex] = $(document).scrollTop();
171	// 		 if (scrollDirection[scrollIndex] > scrollDirection[scrollIndex-1]) {
172	// 			postDirection='down'
173	// 		 }else{
174	// 			postDirection='up';
175	// 		};
176	// 	if(!scrolling) {
177	// 		scrolling = true;
178	// 		(!window.requestAnimationFrame)
179	// 			? setTimeout(autoHideHeader, 250)
180	// 			: requestAnimationFrame(autoHideHeader);
181	// 	}
182	// 	if(postID){
183	// 		//console.log(postID);
184	// 		var windowTop = $(window).scrollTop();
185	// 		var scrollTop = $(this).scrollTop();
186	// 		var articleHeight = $('.articleCols').height();
187	// 		var postHeight = $('#post-'+postID).height();
188	// 		var postScrollTop = $('#post-'+postID).offset().top;
189	// 		var postTop = windowTop - postScrollTop;
190	// 		var windowHeight = $(window).height();
191	// 		// var totalScroll = (windowTop/articleHeight)*100;
192	// 		var totalScroll = (postTop/postHeight)*100;
193	// 		// console.log('postHeight:'+ postHeight);
194	// 		// console.log('windowTop:'+ windowTop);
195	// 		// console.log('totalScroll:'+totalScroll);
196	// 		if(totalScroll<postScrollBar && postTempID===postID && postDirection==='down') return;
197	// 		postTempID=postID;
198	// 		if(totalScroll > 100){
199	// 			totalScroll = 100;
200	// 			var nextPost = currentPost.next('.post-container');
201	// 			currentPost = nextPost.length>0?nextPost:currentPost;
202	// 			postID = currentPost.data('post_id');
203	// 			currentTitle = currentPost.find('.titleModule h2').html();
204	// 			progressBarTitle.text(currentTitle);
205	// 			//console.log('next:'+postID);
206	// 		}else if ( totalScroll < 0){
207	// 			var prevPost = currentPost.prev('.post-container');
208	// 			currentPost = prevPost.length>0?prevPost:currentPost;
209	// 			postID = currentPost.data('post_id');
210	// 			currentTitle = currentPost.find('.titleModule h2').html();
211	// 			progressBarTitle.text(currentTitle);
212	// 			//console.log('prev:'+postID);
213	// 		}
214	// 		$(".progress").css("width",totalScroll+"%");
215	// 		postScrollBar=totalScroll;
216	// 		// console.log(postTop);
217	// 		//console.log(totalScroll+"%");
218	// 	}
219	// });
220
221	function autoHideHeader() {
222		var currentTop = $(window).scrollTop();
223		var documentH =  $(document).height(); 
224		var windowH = $(window).height();
225		var footerH = footer.height();
226		var homeMastheadH = $('#homeMastheadCover').innerHeight() + $('#homeMastheadQuote').innerHeight();
227		checkSimpleNavigation(currentTop);
228		checkStartedScrolling(currentTop);
229		showRecommendedArticles(currentTop, documentH, windowH, footerH);
230		if(homeMastheadH !== 0){
231			checkHomeMasthead(currentTop, homeMastheadH);
232		}else{
233			videoBanner.addClass('fixed_banner');
234		}
235	   	previousTop = currentTop;
236		scrolling = false;
237	}
238
239	function checkTopAd_mobile(){
240		if (!isMobile || top_AD.id.indexOf("div-gpt-ad") < 0 ){
241			return;
242		}
243		top_AD.style.visibility='hidden'; 
244		top_AD.style.width='100%';
245		top_AD.classList.remove('fadeOut','animated');
246		top_AD.classList.add('fadeInDown','animated');
247		var iframeAd = top_AD.getElementsByTagName('iframe')[0];
248		// console.log('iframeAd:',iframeAd);
249		if(typeof iframeAd !== "undefined"){
250		var	iframeDoc = iframeAd.contentDocument || iframeAd.contentWindow.document;
251			
252			// console.log('iframeDoc:',iframeDoc.readyState);
253			// console.log("I am loading");
254
255		if (iframeDoc.readyState == 'complete'){ 
256			// iframeAd.contentWindow.onload = function(){
257            		//console.log("I am loaded");
258            		top_AD.style.cssText='visibility:visible;z-index:9;width:100%;background:#efeaea;position:fixed;top:0;hight:'+iframeDoc.body.clientHeight+'px;';
259            		iframeAd.height = iframeDoc.body.clientHeight+"px";
260            		iframeAd.style.height = iframeDoc.body.clientHeight+"px";
261            		btnMenu.addClass('top_sp');
262					btnSearch.addClass('top_sp');
263					btnVideos.addClass('top_sp');
264					mainHeader.addClass('top_sp');
265		
266					btnMenu.css({"margin-top":iframeDoc.body.clientHeight+"px"});
267					btnSearch.css({"margin-top":iframeDoc.body.clientHeight+"px"});
268					btnVideos.css({"margin-top":iframeDoc.body.clientHeight+"px"});
269					mainHeader.css({"margin-top":iframeDoc.body.clientHeight+"px"});
270					siteWrapper.css("margin-top",iframeDoc.body.clientHeight+"px");
271       			 // };
272				return;
273			
274		}
275		}
276		//console.log("setTimeout",typeof iframeAd);
277		// window.setTimeout(checkTopAd_mobile,100);
278		// if(top_AD.querySelector('iframe')){
279		// btnMenu.addClass('top_sp');
280		// btnSearch.addClass('top_sp');
281		// btnVideos.addClass('top_sp');
282		// mainHeader.addClass('top_sp');
283		
284		// 	btnMenu.css("margin-top",top_AD.clientHeight+"px");
285		// 	btnSearch.css("margin-top",top_AD.clientHeight+"px");
286		// 	btnVideos.css("margin-top",top_AD.clientHeight+"px");
287		// 	mainHeader.css("margin-top",top_AD.clientHeight+"px");
288		// }
289	}
290
291	
292	function checkSimpleNavigation(currentTop) {
293		if (isMobile && top_AD.id.indexOf("div-gpt-ad") == 0 ){
294			if ( top_AD.offsetHeight > scrollOffset)
295			scrollOffset = top_AD.offsetHeight;
296		}
297		// console.log('scrollOffset:',scrollOffset);
298	    if (previousTop - currentTop > scrollDelta) {
299	    	//if scrolling up...
300	    	if(!isHomePage && !isCatPage && !isTagPage && !isSearchPage && !isAuthorPage && !isNormalPage){
301	    		mainHeader.removeClass('collapsed');
302	    	}
303	    	mainLogo.removeClass('sticky');
304			topNav.removeClass('hidden');
305			//console.log('scrollOffset_up:',scrollOffset);console.log('currentTop_up:',currentTop);
306			// if(scrollOffset>currentTop){checkTopAd_mobile();}
307			if(scrollOffset>currentTop && isMobile && top_AD.innerHTML!=""){checkTopAd_mobile();}
308	    } else if( currentTop - previousTop > scrollDelta && currentTop > scrollOffset) {
309	    	//if scrolling down...
310	    	//top_AD.id.indexOf("div-gpt-ad") == 0?top_AD.classList.add('fadeOut','animated'):console.log("No topAD");
311	    	if(top_AD.id.indexOf("div-gpt-ad") == 0){top_AD.classList.add('fadeOut','animated');}
312	    	//console.log('scrollOffset_down:',scrollOffset);console.log('currentTop_down:',currentTop);
313	    	mainHeader.addClass('collapsed');
314	    	if(!isHomePage && !isCatPage && !isTagPage && !isSearchPage && !isAuthorPage && !isNormalPage){ 
315	    		mainLogo.addClass('sticky');
316				topNav.addClass('hidden');
317			}
318			btnMenu.removeClass('top_sp')
319			btnMenu.removeAttr('style');
320			btnSearch.removeClass('top_sp');
321			btnSearch.removeAttr('style');
322			btnVideos.removeClass('top_sp');
323			btnVideos.removeAttr('style');
324			mainHeader.removeClass('top_sp');
325			mainHeader.removeAttr('style');
326	    }
327	}
328
329	function checkHomeMasthead(currentTop, homeMastheadH){
330		if(homeMastheadH > currentTop){
331			mainHeader.addClass('homeHiddenAtStart');
332			videoBanner.removeClass('fixed_banner');
333			// console.log('homeMastheadH',homeMastheadH);
334			 $('.homeHiddenAtStart').css('display','block');
335			 $('.homeHiddenAtStart').css('top',homeMastheadH+'px');
336			// $('.homeHiddenAtStart').position().top = homeMastheadH;
337			videoCover.show();
338			// if (videoBg[0].paused) videoBg[0].play();
339		}else{
340			videoBanner.addClass('fixed_banner');
341			mainHeader.removeClass('homeHiddenAtStart');
342			mainHeader.removeAttr('style');
343			videoCover.hide();
344			// if (!videoBg[0].paused) videoBg[0].pause();
345			//console.log('homeMastheadH:' + homeMastheadH + 'currentTop:' + currentTop);
346		}
347	}
348
349	function checkStartedScrolling(currentTop){
350		var topHeaderScroll = 200;
351		
352		if(currentTop > topHeaderScroll){
353			mainHeader.addClass('startedScrolling');
354		}else{
355			mainHeader.removeClass('startedScrolling');
356		}
357	}
358
359	function showRecommendedArticles(currentTop, documentH, windowH, footerH){
360		if(currentTop > (documentH/2)){
361			if(!recommendedModule.hasClass('locked')){
362				if(!recommendedModule.hasClass('autoOff')){
363					recommendedModule.addClass('isShown');
364					setTimeout(function(){
365						btnRecommended.addClass('isShown');
366						recommendedModule.removeClass('isShown');
367						recommendedModule.addClass('locked');
368					},6000);
369				}
370				btnRecommended.removeClass('isShown');
371			}
372		//}else if(currentTop < windowH || currentTop > (documentH - 1200 - footerH)){
373		}else if(currentTop < windowH){
374			btnRecommended.removeClass('isShown');
375		}else{
376			if(!recommendedModule.hasClass('isShown')){
377				btnRecommended.addClass('isShown');
378			}
379		}
380		// console.log('currenttop: ' + currentTop);
381		// console.log('documentH :' + documentH);
382		// console.log('offsetH :' + (documentH - 1200 - footerH));
383	}
384
385	stickyAd.stickybits({
386		useStickyClasses: true,
387		stickyBitStickyOffset: 91
388	});
389
390	sticky.stickybits({
391		useStickyClasses: true,
392		stickyBitStickyOffset: 150
393	});
394
395	btnMenu.click(function(){
396		if($(this).hasClass('opened')){
397			closeMenuDrawer();
398		}else{
399			$(this).addClass('opened');
400			$('#menuDrawer').addClass('opened');
401			$('body').addClass('overflowHidden');
402			add_themes_ga4_tracking('menu_expand_click',{});
403		}
404	});
405
406	menuDrawer.perfectScrollbar({
407        wheelPropagation: false,
408        scrollYMarginOffset: 20,
409        suppressScrollX: true
410    });
411
412    menuDrawer.on('click', function(event){
413		if ( 
414   			$(this).find('.wrapper').has(event.target).length == 0 
415    		&&
416    		!$(this).find('.wrapper').is(event.target) 
417  		){
418			closeMenuDrawer();
419		}
420	});
421
422	function closeMenuDrawer(){
423		btnMenu.removeClass('opened');
424		$('#menuDrawer').removeClass('opened');
425		$('body').removeClass('overflowHidden');
426	}
427
428    btnSearch.click(function(){
429		openSearchDrawer();
430		add_themes_ga4_tracking('search_expand_click',{});
431	});
432
433	btnMobileSearch.click(function(){
434		openSearchDrawer();
435		add_themes_ga4_tracking('search_expand_click',{});
436	});
437
438	btnCloseSearchDrawer.click(function(){
439		closeSearchDrawer();
440	});
441
442    searchDrawer.on('click', function(event){
443		if ( 
444   			$(this).find('.wrapper').has(event.target).length == 0 //checks if descendants of #searchDrawer > .wrapper was clicked
445    		&&
446    		!$(this).find('.wrapper').is(event.target) //checks if the #searchDrawer > .wrapper itself was clicked
447  		){
448  			//console.log("testclose");
449			//closeSearchDrawer();
450		}
451	});
452
453    function openSearchDrawer(){
454		searchDrawer.addClass('opened');
455		$('body').addClass('overflowHidden');
456    }
457
458	function closeSearchDrawer(){
459		searchDrawer.removeClass('opened');
460		$('body').removeClass('overflowHidden');
461	}
462
463    btnVideos.click(function(){
464		$(this).addClass('videoDrawerOpened');
465		openVideoDrawer();
466	});
467
468	siteWrapper.click(function(){
469		closeVideoDrawer();
470	});
471
472	btnCloseMobileVideoDrawer.click(function(){
473		closeVideoDrawer();
474	});
475
476	videoDrawer.perfectScrollbar({
477        wheelPropagation: false,
478        scrollYMarginOffset: 20,
479        suppressScrollX: true
480    });
481
482	function openVideoDrawer(){
483		btnMenu.addClass('videoDrawerOpened');
484		btnSearch.addClass('videoDrawerOpened');
485		siteWrapper.addClass('videoDrawerOpened');
486		mainHeader.addClass('videoDrawerOpened');
487		videoDrawer.addClass('opened');
488		homeHalfLogoWrapper.fadeOut();
489		recommendedModule.addClass('videoDrawerOpened');
490		$('body').addClass('overflowHidden');
491	}
492
493	function closeVideoDrawer(){
494		btnVideos.removeClass('videoDrawerOpened');
495		btnMenu.removeClass('videoDrawerOpened');
496		btnSearch.removeClass('videoDrawerOpened');
497		siteWrapper.removeClass('videoDrawerOpened');
498		mainHeader.removeClass('videoDrawerOpened');
499		videoDrawer.removeClass('opened');
500		homeHalfLogoWrapper.fadeIn();
501		recommendedModule.removeClass('videoDrawerOpened');
502		$('body').removeClass('overflowHidden');
503	}
504
505	function setStickyFooter(){
506		var documentH = $(document).height();
507		var windowH = $(window).height();
508		if (documentH > windowH) { 
509	    	$('#footer').removeClass('fixed'); 
510		}else{
511			$('#footer').addClass('fixed'); 
512		}
513	}
514
515	btnRecommended.click(function(){
516		if($(this).hasClass('isHidden')){
517			$(this).addClass('isShown');
518			recommendedModule.removeClass('isShown');
519		}else{
520			$(this).removeClass('isShown');
521			recommendedModule.addClass('isShown');
522			setTimeout(function(){
523				btnRecommended.addClass('isShown');
524				recommendedModule.removeClass('isShown');
525				recommendedModule.addClass('locked');
526			},6000);
527		}
528	});
529
530	btnCloseRecommendedModule.click(function(){
531		btnRecommended.addClass('isShown');
532		recommendedModule.removeClass('isShown');
533		recommendedModule.addClass('locked');
534	});
535
536	btnFollow.click(function(e){
537		e.preventDefault();
538		if($(this).hasClass('opened')){
539			socialNav.slideUp();
540			mainHeader.removeClass('socialNavOpened');
541			mainCnt.removeClass('socialNavOpened');
542			$(this).removeClass('opened');
543		}else{
544			socialNav.slideDown();
545			mainHeader.addClass('socialNavOpened');
546			if(mainCnt.hasClass('topGap')){
547				mainCnt.addClass('socialNavOpened');
548			}
549			$(this).addClass('opened');
550		}
551	});
552
553	/*Page scrolls up when keyboard is invoked on mobile devices*/
554
555	let initialOffset = $('body').scrollTop();
556
557	$('input').focus(function(e) {
558		//console.log('focus');
559		if(isMobile){
560			let offset = $(e.target).offset();
561			initialOffset = $('body').scrollTop();
562			$('html, body').scrollTop(offset.top-100);
563		}
564	});
565	$('input').blur(function(e) {
566		//console.log('blur');
567		if(isMobile){
568			$('body').scrollTop(initialOffset);
569		}
570	});
571
572	$('[data-fancybox]').fancybox({
573		protect: true,
574		loop: true,
575		afterShow: function(previous, current) {
576					if(previous.prevIndex!=current.index){
577			            //console.log(previous.group.length,previous.prevIndex,current.index);
578			            //console.log('next&prev click');
579			            add_theme_ga_tracking('文章', 'GalleryImageClickNext', '', '', 0);
580			            add_themes_ga4_tracking('article_gallery_nav_click',{'item_type':'next_image_button'});
581		          	}   
582	    },
583	    afterClose:function () {
584	    	//console.log("close");
585	    	add_theme_ga_tracking('文章', 'GalleryImageClickClose', '', '', 0);
586	    	add_themes_ga4_tracking('article_gallery_nav_click',{'item_type':'close_image_button'});
587	    },
588		buttons:[
589			"thumbs",
590			"close"
591		]
592	});
593
594	/*Slick - Recommended readings*/
595	$('.slideRecommendedReadingsMobile').slick({
596		slidesToShow: 1,
597		infinite: true,
598	  	slidesToScroll: 1,
599	  	arrows:false,
600	  	dots: true,
601	  	autoplay: true,
602	  	autoplaySpeed: 3800,
603	  	adaptiveHeight: true,
604	  	pauseOnHover: true,
605	  	variableWidth: false
606	});
607
608	/*Slick - */
609	$('.shopThePostModuleItems').slick({
610		slidesToShow: 2,
611		lazyLoad: 'ondemand',
612		infinite: true,
613	  	slidesToScroll: 2,
614	  	arrows:true,
615	  	dots: true,
616	  	autoplay: true,
617	  	autoplaySpeed: 3800,
618	  	adaptiveHeight: true,
619	  	pauseOnHover: true,
620	  	variableWidth: false
621	});
622
623})(jQuery);
624
625
626function add_ga_checking(category,action,label,postUrl,id){
627
628	var ua = navigator.userAgent;
629	var is_mobile = ua.match(/mobile/i);
630	
631	if(is_mobile===null){
632		label=label+"_Desktop";
633	}else{
634		label=label+"_Mobile";
635	}
636
637	console.log(action);
638
639     var event = action;
640
641      if (typeof(gtag) != 'undefined') {
642          gtag('event', action, {
643            'event_category': category,
644            'event_label': label,
645            'value': id
646          });
647          window.location.href = postUrl; 
648          return;
649      }
650
651      if (typeof(_gaq) != 'undefined') {
652        _gaq.push(['_trackEvent', category, action, label, id]);
653        window.location.href = postUrl; 
654        return;
655      }
656      if (typeof(__gaTracker) != 'undefined') {
657        __gaTracker('send','event', category, action, label, id);
658        window.location.href = postUrl; 
659        return;
660      }     
661
662         // if(typeof(dataLayer) != 'undefined'){
663         //           dataLayer.push({
664         //                'category': category,
665         //                'action': action,
666         //                'label': label,
667         //                'event': event
668         //            });
669
670         //        }
671                
672      if(typeof(_gaq) == 'undefined' && typeof(__gaTracker) == 'undefined' && typeof(gtag) == 'undefined'){
673        window.location.href = postUrl; 
674        return;
675      }
676  
677}
678
679
680function ShareBar(url,type,Title,location,message){
681      var link, utm,Title;
682      //Title = decodeURIComponent(Title);
683
684      if(url=='' ){
685        if(post_id!=0){
686           url = jQuery("#share-post-"+post_id).attr('data-url');
687        }else{
688          url = document.URL; 
689        }
690      }
691
692      if(Title=='' ){
693        
694        if(post_id!=0){
695           Title = jQuery("#share-post-"+post_id).attr('data-title');
696        }else{
697           Title = document.title; 
698        }
699      }
700
701      //https://www.edigest.hk/?p=202500&utm_campaign={BU}_Sharing&utm_medium=Message_{bu}&utm_source=WhatsApp(Line/Telegram/Wechat……)
702      var utm = '&utm_campaign=MF_Sharing&utm_medium=Message_MF&utm_source=';
703      if(type == 'url'){
704         //utm = '&utm_campaign=Sharing&utm_medium=cpoy_url&utm_source=cpoy_url'; 
705         utm += 'Copy_link';
706         link = url+utm;   
707         copyUrl(link);
708       }
709
710      if(type == 'FaceBook'){
711         //utm = '&utm_campaign=Sharing&utm_medium=Facebook_Post&utm_source=Facebook';
712         utm += 'Facebook';
713         link = 'http://www.facebook.com/sharer.php?u='+ encodeURIComponent(url+utm); 
714         if(typeof message !== "undefined" && message != ''){
715              link = link + ' %0A'+message;
716           }     
717       }else if(type == 'GooglePlus'){
718           //utm = '&utm_campaign=Sharing&utm_medium=Google_Post&utm_source=Google';
719           utm += 'Google';
720           link = 'https://plus.google.com/share?url='+ encodeURIComponent(url+utm);      
721           if(typeof message !== "undefined" && message != ''){
722              link = link + ' %0A'+message;
723           }
724       }else if(type == 'Twitter'){        
725           //utm = '&utm_campaign=Sharing&utm_medium=Twitter_Post&utm_source=Twitter';
726           utm += 'Twitter';
727           link = 'https://twitter.com/home/?status='+Title+ ' %0A'+ encodeURIComponent(url+utm) ;
728           if(typeof message !== "undefined" && message != ''){
729              link = link + ' %0A'+message;
730           }
731       }else if(type == 'Whatsapp'){        
732           //utm = '&utm_campaign=Sharing&utm_medium=Whatsapp_Msg&utm_source=Whatsapp';
733           utm += 'Whatsapp';
734           link = 'https://api.whatsapp.com/send?phone=&text='+Title+ ' %0A'+  encodeURIComponent(url+utm);
735           if(typeof message !== "undefined" && message != ''){
736              link = link + ' %0A'+message;
737           }
738       }else if(type == 'telegram'){        
739           //utm = '&utm_campaign=Sharing&utm_medium=telegram_Msg&utm_source=telegram';
740           utm += 'Telegram';
741           link = 'https://telegram.me/share/url?url='+Title+ ' %0A'+  encodeURIComponent(url+utm);
742            if(typeof message !== "undefined" && message != ''){
743              link = link + ' %0A'+message;
744           }
745       }else if(type == 'messenger'){
746           //utm = '&utm_campaign=Sharing&utm_medium=messenger_Msg&utm_source=messenger';
747           utm += 'Messenger';
748           link = 'https://www.facebook.com/dialog/send?app_id=5303202981&display=popup&link='+ encodeURIComponent(url+utm)+'&redirect_uri=https://static.addtoany.com/menu/thanks.html#url='+encodeURIComponent(url);
749           if(typeof message !== "undefined" && message != ''){
750              link = link + ' %0A'+message;
751           }   
752       }else if(type == 'line'){
753           //utm = '&utm_campaign=Sharing&utm_medium=line_Msg&utm_source=line';
754           utm += 'Line';
755           link = 'https://timeline.line.me/social-plugin/share?url='+ encodeURIComponent(url+utm);
756           if(typeof message !== "undefined" && message != ''){
757              link = link + ' %0A'+message;
758           }   
759       }else if(type == 'linkedin'){
760           //utm = '&utm_campaign=Sharing&utm_medium=linkedin_Msg&utm_source=linkedin';
761           utm += 'Linkedin';
762           //link = 'https://www.linkedin.com/sharing/share-offsite/?url='+ encodeURIComponent(url+utm);
763           //link = 'https://www.linkedin.com/shareArticle?mini=true&url='+ encodeURIComponent(url+utm);
764           link = 'https://www.addtoany.com/add_to/linkedin?linkurl='+ encodeURIComponent(url+utm);
765           if(typeof message !== "undefined" && message != ''){
766              link = link + ' %0A'+message;
767           }   
768           console.log(link);
769       }else if(type == 'wechat'){
770           //utm = '&utm_campaign=Sharing&utm_medium=wechat_Msg&utm_source=wechat';
771           utm += 'Wechat';
772           link = 'https://api.addthis.com/oexchange/0.8/forward/wechat/offer?url='+ encodeURIComponent(url+utm);
773           if(typeof message !== "undefined" && message != ''){
774              link = link + ' %0A'+message;
775           }   
776       }else if(type == 'mail'){
777           //utm = '&utm_campaign=Sharing&utm_medium=mail_Msg&utm_source=mail';
778           utm += 'Mail';
779           link = 'mailto:?subject='+' '+'&body='+ encodeURIComponent(url+utm)+ ' ';
780           if(typeof message !== "undefined" && message != ''){
781              link = link + ' %0A'+message;
782           }   
783       }
784
785      var postUrl = link 
786      //console.log(postUrl);   
787
788      var ua = navigator.userAgent;
789      var is_mobile = ua.match(/mobile/i);
790      var label = '';   
791      if(is_mobile===null){
792        label="Desktop_"+location+'_'+type;
793      }else{
794        label="Mobile_"+location+'_'+type;
795      }
796      if (typeof _gaq != 'undefined') {
797          _gaq.push(['_trackEvent', '文章', 'Menu_ShareButtonClick', label]);
798          if(type == 'url'){
799            return;
800          }
801          NMGShareBar.openPopup(postUrl); 
802          return;
803      }
804      if (typeof __gaTracker != 'undefined') {
805          __gaTracker('send', 'event','文章','Menu_ShareButtonClick',label);
806          if(type == 'url'){
807            return;
808          }
809          NMGShareBar.openPopup(postUrl);  
810          return;
811      }
812
813      if (typeof(gtag) != 'undefined') {
814          gtag('event', 'Menu_ShareButtonClick', {
815            'event_category': '文章',
816            'event_label': label
817          });
818          if(type == 'url'){
819            return;
820          }
821          NMGShareBar.openPopup(postUrl); 
822          return;
823      }
824
825      if(typeof(dataLayer) != 'undefined'){
826           dataLayer.push({
827                'category': '文章',
828                'action': 'Menu_ShareButtonClick',
829                'label': label,
830                'event': 'Menu_ShareButtonClick'
831            });
832           if(type == 'url'){
833            return;
834          }
835           NMGShareBar.openPopup(postUrl); 
836           return;
837      }
838      
839      if(type == 'url'){
840            return;
841      }
842
843      if(typeof(_gaq) == 'undefined' && typeof(__gaTracker) == 'undefined' && typeof(gtag) == 'undefined' && typeof(dataLayer) == 'undefined'){
844         NMGShareBar.openPopup(postUrl);
845        return;
846      }
847
848}
849
850    (function($) {
851
852    function NMGShareBar() {
853        var the = this,
854            defaults = {
855                sideSeletor: '.share_bar',
856                bottomSeletor: '.footer_fixed',
857                titleSeletor:'.share_box'
858            };        
859        NMGShareBar.defaults = defaults;
860        $(function() {
861            NMGShareBar.bind();
862        });
863    };
864
865    NMGShareBar.defaults = null;
866
867    NMGShareBar.openPopup = function(url) {
868        var popupWidth = 550,
869            popupHeight = 450,
870            iTop = (window.screen.availHeight - 30 - popupHeight) / 2,
871            iLeft = (window.screen.availWidth - 10 - popupWidth) / 2;
872        window.open(url, '_blank', 'toolbar=0,personalbar=0,resizable,scrollbars,status,width=' + popupWidth + ',height=' + popupHeight + ',top=' + iTop + ',left=' + iLeft);
873    }
874    if (typeof (window.NMGShareBar) == 'undefined') {
875        window.NMGShareBar = NMGShareBar;
876        new NMGShareBar();
877    }
878
879}(jQuery));
880
881function add_theme_ga_tracking(category, action, label, postUrl, id, type){
882    var ua = navigator.userAgent;
883    var is_mobile = ua.match(/mobile/i);
884    
885    if(is_mobile === null){
886        action = action+"_Desktop";
887    }else{
888        action = action+"_Mobile";
889    }
890    if(id == ''){
891    	id=0;
892    }
893
894    if(!type){ type = 'action'; }
895    
896    console.log('type: '+type+'--'+'action: '+action);
897
898
899    //////////  GA4 for Page eg:[Chanel-No-5-Hub-Page/VnA-CSS-Hub-Page/Roger-Vivier-Hub-Page/Watches-Wonder-Hub-Page]///////////////
900   	if( category.indexOf("Page") >= 0 || category.indexOf("page") >= 0){
901   		if(typeof(dataLayer) != 'undefined'){
902		    dataLayer.push({
903				'event': 'ga4_event_trigger',
904				'ga4_event': action, // action
905				'ga4_event_item_name': label, //label
906			});
907		}
908	}
909
910    
911    if (typeof(gtag) != 'undefined') {
912    	var gtag_param = {"event_category" : category, "event_label" : label, "value" : id};
913    	if(type == 'not_action'){
914    		gtag_param = {"event_category" : category, "event_label" : label, "value" : id, "non_interaction" : true};
915    	}
916        gtag('event', action, gtag_param);
917        if(postUrl != ''){
918            window.location.href = postUrl; 
919        }   
920        return;
921    }
922
923    if (typeof(_gaq) != 'undefined') {
924    	var _gaq_param = ['_trackEvent', category, action, label, id];
925    	if(type == 'not_action'){
926    		_gaq_param = ['_trackEvent', category, action, label, id, true];
927    	}
928        _gaq.push(_gaq_param);
929        if(postUrl != ''){
930            window.location.href = postUrl; 
931        }   
932        return;
933    }
934    if (typeof(__gaTracker) != 'undefined') {
935        console.log('__gaTracker GA...');
936    	if( type == 'not_action'){
937    		 __gaTracker('send','event', category, action, label, id, {nonInteraction:true});
938    	}else{
939    		 __gaTracker('send','event', category, action, label, id);
940    	}
941        if(postUrl != ''){
942            window.location.href = postUrl; 
943        }
944        return;
945    }
946
947    if(typeof(dataLayer) != 'undefined'){
948        dataLayer.push({
949            'category': category,
950            'action': action,
951            'label': label,
952            'event': action
953        });
954       if(postUrl != ''){
955            window.location.href = postUrl; 
956        }
957       return;
958    }
959
960    if(typeof(_gaq) == 'undefined' && typeof(__gaTracker) == 'undefined' && typeof(gtag) == 'undefined' && typeof(dataLayer) == 'undefined'){
961        if(postUrl != ''){
962            window.location.href = postUrl; 
963        }
964        return;
965    }
966}
967
968/*
969 *  GA4 function
970 *  arguments : object (item_name/item_type/method/item_id/item_url/search_term/item_list_name)
971*/
972function add_themes_ga4_tracking( action, arguments ){
973    var ga4_arguments = {};
974    ga4_arguments['event'] = 'ga4_event_trigger';
975    ga4_arguments['ga4_event'] = action;
976    ga4_arguments['ga4_event_content_type'] = undefined;
977    ga4_arguments['ga4_event_item_name'] = undefined;
978    ga4_arguments['ga4_event_item_type'] = undefined;
979    ga4_arguments['ga4_event_item_id'] = undefined;
980    ga4_arguments['ga4_event_item_url'] = undefined;
981    ga4_arguments['ga4_event_method'] = undefined;
982    ga4_arguments['ga4_event_search_term'] = undefined;
983    ga4_arguments['ga4_event_item_list_name'] = undefined;
984
985    // for plugin: seo-automated-link-building
986    ga4_arguments['ga4_event_link_url'] = undefined;
987    ga4_arguments['ga4_event_link_text'] = undefined;
988    ga4_arguments['ga4_event_link_classes'] = undefined;
989    ga4_arguments['ga4_event_link_id'] = undefined;
990    ga4_arguments['ga4_event_link_domain'] = undefined;
991
992    if(jQuery.isEmptyObject(arguments) == false){ 	
993    	jQuery.each(arguments, function(i, e) {
994    		if(e != ''){
995    			var key = 'ga4_event_'+i;
996    			ga4_arguments[key] = e;
997    		}
998		});		
999    }
1000
1001    if(custom_common_ga4_post_id != ''){
1002    	setTimeout(function() {
1003			var ga4_gaq_push_arr = jQuery(document).find('#ga4_gaq_push_arr_'+custom_common_ga4_post_id).val();
1004			if(ga4_gaq_push_arr != null){
1005		        var ga4_gaq_push_obj = JSON.parse(ga4_gaq_push_arr);             
1006		        if(jQuery.isEmptyObject(ga4_gaq_push_obj) == false){
1007		            jQuery.each(ga4_gaq_push_obj, function(j, k) {
1008			    		if((j != 'event') && (j != 'ga4_event')){
1009			    			 ga4_arguments[j] = k;
1010			    		}
1011					});
1012		        }
1013		    }	    
1014	 	}, 500);
1015	}
1016    if(typeof(dataLayer) != 'undefined'){
1017	    dataLayer.push(ga4_arguments); 	    
1018	}
1019	console.log(ga4_arguments)
1020
1021	if(action.indexOf('impression') == -1){
1022		if( ga4_arguments['ga4_event_link_url'] != undefined){
1023	        window.location.href = ga4_arguments['ga4_event_link_url'];
1024	        return; 
1025    	}
1026	}
1027}

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.