PageSourceSearch

https://pahpartners.com/wp-content/plugins/divi-overlays/overlay-effects/js/custom.js?ver=7.0.5

js pahpartners.com collected 2026-10-06 20:17:08 UTC 21,474 bytes, 806 lines download raw bytes

1jQuery( function ( $ ) {
2	
3	if ( $('div.overlay-container').length ) {
4		
5		function togglePlayableTags( overlay_id ) {
6			
7			if ( !overlay_id  ) {
8				
9				overlay_id = '';
10			}
11			
12			/* Prevent playable tags load content before overlay call */
13			$( overlay_id + '.overlay').find("iframe").each(function() { 
14				var src = $(this).attr('src');
15				$(this).attr('data-src', src);
16				$(this).attr('src', 'about:blank');  
17			});
18			
19			$( overlay_id + '.overlay').find("video").each(function() {
20				$(this).get(0).pause();
21			});
22			
23			$( overlay_id + '.overlay').find('audio').each(function() {
24				
25				this.pause();
26				this.currentTime = 0;
27			});
28		}
29		
30		togglePlayableTags();
31		
32		// Find all iframes inside the overlays
33		var $doviframes = $( "#sidebar-overlay .overlay iframe" );
34		
35		setTimeout( function() { 
36		
37			$doviframes.each( function() {
38				
39				var iframeHeight = this.height;
40				
41				if ( iframeHeight == '' ) {
42					
43					iframeHeight = $( this ).height();
44				}
45				
46				iframeWidth = this.width;
47				
48				if ( iframeWidth == '' ) {
49					
50					iframeWidth = $( this ).width();
51				}
52				
53				iframeHeight = parseInt( iframeHeight );
54				iframeWidth = parseInt( iframeWidth );
55				
56				var ratio = iframeHeight / iframeWidth;
57				
58				$( this ).attr( "data-ratio", ratio )
59				// Remove the hardcoded width & height attributes
60				.removeAttr( "width" )
61				.removeAttr( "height" );
62				
63				// Get the parent container's width
64				var width = $( this ).parent().width();
65				
66				$( this ).width( width ).height( width * ratio );
67			});
68			
69		}, 200);
70		
71		// Resize the iframes when the window is resized
72		$( window ).resize( function () {
73		  $doviframes.each( function() {
74			// Get the parent container's width
75			var width = $( this ).parent().width();
76			$( this ).width( width )
77			  .height( width * $( this ).data( "ratio" ) );
78		  });
79		});
80		
81		// Divi Cascade Fix
82		if ( $('#et-builder-module-design-cached-inline-styles').length && !$('#cloned-et-builder-module-design-cached-inline-styles').length ) {
83			
84			// Divi Cached Inline Styles
85			var divicachedcss = $( '#et-builder-module-design-cached-inline-styles' );
86			var divicachedcsscontent = divicachedcss.html();
87			
88			// Remove #page-container from Divi Cached Inline Styles tag and cloning it to prevent issues
89			divicachedcsscontent = divicachedcsscontent.replace(/\#page-container/g, ' ');
90			
91			$( divicachedcss ).after( '<style id="cloned-et-builder-module-design-cached-inline-styles">' + divicachedcsscontent + '</style>' );
92		}
93		
94		$(document).keyup(function(e) {
95			
96			if (e.keyCode == 27) {
97				
98				closeActiveOverlay();
99			}
100		});
101		
102		$(window).load(function() {
103			
104			if ( window.location.hash ) {
105				
106				var hash = window.location.hash.substring( 1 );
107				var idx_overlay = hash.indexOf('overlay'); 
108				
109				if ( idx_overlay !== -1 ) {
110					
111					var idx_overlayArr = hash.split('-');
112					
113					if ( idx_overlayArr.length > 1 ) {
114						
115						var overlay_id = idx_overlayArr[1];
116						
117						showOverlay( overlay_id );
118					}
119				}
120			}
121		});
122		
123		var overlay_container = $( 'div.overlay-container' );
124		var container = $( 'div#page-container' );
125		
126		// Remove any duplicated overlay
127		$( overlay_container ).each(function () {
128			$('[id="' + this.id + '"]:gt(0)').remove();
129		});
130		
131		$('body [id^="overlay_"]').on('click', function () {
132			
133			var overlayArr = $(this).attr('id').split('_');
134			var overlay_id = overlayArr[3];
135			
136			showOverlay( overlay_id );
137		});
138		
139		$('body [rel^="unique_overlay_"]').on('click', function () {
140			
141			var overlayArr = $(this).attr('rel').split('_');
142			var overlay_id = overlayArr[4];
143			
144			showOverlay( overlay_id );
145		});
146		
147		$('body [class*="divioverlay-"], body [class*="overlay-"]').on('click', function () {
148			
149			var overlayArr = $(this).attr('class').split(' ');
150			
151			$( overlayArr ).each(function( index,value ) {
152				
153				idx_overlay = value.indexOf('overlay');
154				
155				if ( idx_overlay !== -1 ) {
156					
157					var idx_overlayArr = value.split('-');
158					
159					if ( idx_overlayArr.length > 1 ) {
160						
161						var overlay_id = idx_overlayArr[1];
162						
163						showOverlay( overlay_id );
164					}
165				}
166			});
167		});
168		
169		if (typeof overlays_with_css_trigger !== 'undefined') {
170			
171			if ( $( overlays_with_css_trigger ).length > 0 ) {
172				
173				$.each( overlays_with_css_trigger, function( overlay_id, selector ) {
174					
175					$( selector ).on('click', function () {
176						
177						showOverlay( overlay_id );
178					});
179				});
180			}
181		}
182		
183		if (typeof overlays_with_automatic_trigger !== 'undefined') {
184			
185			if ( $( overlays_with_automatic_trigger ).length > 0 ) {
186				
187				$.each( overlays_with_automatic_trigger, function( overlay_id, at_settings ) {
188					
189					var at_settings_parsed = jQuery.parseJSON( at_settings );
190					var at_type_value = at_settings_parsed.at_type;
191					var at_onceperload = at_settings_parsed.at_onceperload;
192					
193					if ( at_onceperload == 1 ) {
194						
195						showOverlayOnce( overlay_id );
196					}
197					
198					if ( at_type_value == 'overlay-timed' ) {
199						
200						var time_delayed = at_settings_parsed.at_value * 1000;
201						
202						setTimeout( function() {
203							
204							showOverlay( overlay_id );
205							
206						}, time_delayed);
207					}
208					
209					
210					if ( at_type_value == 'overlay-scroll' ) {
211						
212						var overlayScroll = at_settings_parsed.at_value, refScroll;
213						
214						if ( overlayScroll.indexOf('%') || overlayScroll.indexOf('px') ) {
215							
216							if ( overlayScroll.indexOf('%') ) {
217								
218								overlayScroll = overlayScroll.replace(/%/g, '');
219								refScroll = '%';
220							}
221							
222							if ( overlayScroll.indexOf('px') ) {
223								
224								overlayScroll = overlayScroll.replace(/px/g, '');
225								refScroll = 'px';
226							}
227							
228							overlayScroll = overlayScroll.split(':');
229							var overlayScrollFrom = overlayScroll[0];
230							var overlayScrollTo = overlayScroll[1];
231							
232							$(window).scroll(function(e) {
233							
234								var s = getScrollTop(),
235									d = $(document).height(),
236									c = $(window).height();
237								
238								if ( refScroll == '%' ) {
239									
240									wScroll = (s / (d-c)) * 100;
241								
242								} else if ( refScroll == 'px' ) {
243									
244									wScroll = s;
245									
246								} else {
247									
248									return;
249								}
250								
251								if ( overlayScrollFrom > 0 && overlayScrollTo > 0 ) {
252									
253									if ( overlayScrollFrom <= wScroll && overlayScrollTo >= wScroll ) {
254										
255										if ( !isActiveOverlay( overlay_id ) ) {
256											
257											showOverlay( overlay_id );
258										}
259									}
260									else if ( isActiveOverlay( overlay_id ) ) {
261										
262										closeActiveOverlay( overlay_id );
263									}
264								}
265								
266								if ( overlayScrollFrom > 0 && overlayScrollTo == '' ) {
267									
268									if ( overlayScrollFrom <= wScroll ) {
269										
270										if ( !isActiveOverlay( overlay_id ) ) {
271											
272											showOverlay( overlay_id );
273										}
274									}
275									else if ( isActiveOverlay( overlay_id ) ) {
276										
277										closeActiveOverlay( overlay_id );
278									}
279								}
280								
281								if ( overlayScrollFrom == '' && overlayScrollTo > 0 ) {
282									
283									if ( overlayScrollTo >= wScroll ) {
284										
285										if ( !isActiveOverlay( overlay_id ) ) {
286											
287											showOverlay( overlay_id );
288										}
289									}
290									else if ( isActiveOverlay( overlay_id ) ) {
291									
292										closeActiveOverlay( overlay_id );
293									}
294								}
295							});
296						}
297					}
298					
299					
300					if ( at_type_value == 'overlay-exit' ) {
301						
302						$.exitIntent('enable', { 'sensitivity': 100 });
303						
304						$(document).bind('exitintent',
305							function() {
306								
307								if ( !isActiveOverlay( overlay_id ) ) {
308									
309									showOverlay( overlay_id );
310								}
311							});
312					}
313				});
314			}
315		}
316		
317		
318		$('.nav a, .mobile_nav a').each(function( index,value ) {
319			
320			href = $( value ).attr('href');
321			
322			if ( href !== undefined ) {
323			
324				idx_overlay = href.indexOf('overlay');
325				
326				if ( idx_overlay !== -1 ) {
327					
328					var idx_overlayArr = href.split('-');
329					
330					if ( idx_overlayArr.length > 1 ) {
331						
332						var overlay_id = idx_overlayArr[1];
333						
334						$(this).attr('data-overlayid', overlay_id);
335						
336						$(this).on('click', function () {
337							
338							overlay_id = $(this).data('overlayid');
339							
340							showOverlay( overlay_id );
341						});
342					}
343				}
344			}
345		});
346		
347		transEndEventNames = {
348			'WebkitTransition': 'webkitTransitionEnd',
349			'MozTransition': 'transitionend',
350			'OTransition': 'oTransitionEnd',
351			'msTransition': 'MSTransitionEnd',
352			'transition': 'transitionend'
353		},
354		transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
355		support = { transitions : Modernizr.csstransitions };
356		
357		function shuffle(array) {
358			var currentIndex = array.length
359			, temporaryValue
360			, randomIndex
361			;
362
363			// While there remain elements to shuffle...
364			while (0 !== currentIndex) {
365				// Pick a remaining element...
366				randomIndex = Math.floor(Math.random() * currentIndex);
367				currentIndex -= 1;
368				// And swap it with the current element.
369				temporaryValue = array[currentIndex];
370				array[currentIndex] = array[randomIndex];
371				array[randomIndex] = temporaryValue;
372			}
373			return array;
374		}
375		
376		function toggleOverlay( overlay_id ) {
377			
378			var overlay_selector = '#overlay-' + overlay_id;
379			var overlay_cache_selector = '#overlay-' + overlay_id;
380			var overlay_container = '#divi-overlay-container-' + overlay_id;
381			var overlay = $('body').find( overlay_cache_selector );
382			var oid = overlay.attr('id');
383			var prevent_mainpage_scroll = overlay.data('preventscroll');
384			var displayonceperload = overlay.data('displayonceperload');
385			var overlay_active_selector = 'div.overlay-container div.overlay-body';
386			var preventOpen = overlay.attr('data-preventopen');
387			
388			if ( $( overlay_cache_selector ).hasClass("overlay-cornershape") ) {
389				
390				var s = Snap( document.querySelector( overlay_cache_selector ).querySelector( 'svg' ) );
391				var original_s = Snap( document.querySelector( overlay_selector ).querySelector( 'svg' ) );
392				
393				var path = s.select( 'path' );
394				var original_path = original_s.select( 'path' );
395				
396				var pathConfig = {
397					from : original_path.attr( 'd' ),
398					to : document.querySelector( overlay_cache_selector ).getAttribute( 'data-path-to' )
399				};
400			}
401			
402			if ( $( overlay_cache_selector ).hasClass("overlay-boxes") ) {
403				
404				paths = [].slice.call( document.querySelector( overlay_cache_selector ).querySelectorAll( 'svg > path' ) ),
405				pathsTotal = paths.length;
406			}
407			
408			if ( $( overlay_cache_selector ).hasClass("overlay-genie") ) {
409				
410				var s1 = Snap( document.querySelector( overlay_cache_selector ).querySelector( 'svg' ) ), 
411				path1 = s1.select( 'path' ),
412				steps = document.querySelector( overlay_cache_selector ).getAttribute( 'data-steps' ).split(';'),
413				stepsTotal = steps.length;
414			}
415			
416			if ( $( overlay_cache_selector ).hasClass('overlay-boxes') ) {
417				
418				var cnt = 0;
419				
420				shuffle( paths );
421			}
422			
423			if ( $( overlay ).hasClass('open') ) {
424				
425				$( overlay ).removeClass('open');
426				$( overlay ).addClass('close');
427				
428				if ( $( overlay_cache_selector ).hasClass('overlay-hugeinc') 
429					|| $( overlay_cache_selector ).hasClass('overlay-corner') 
430					|| $( overlay_cache_selector ).hasClass('overlay-scale') ) {
431						
432					$( overlay_cache_selector ).css('opacity',0);
433				}
434				
435				if ( $( overlay_cache_selector ).hasClass('overlay-contentpush') ) {
436					
437					$( container ).removeClass('overlay-contentpush-open');
438					
439					setTimeout( function() { 
440					
441						$( container ).removeClass( 'container2' );
442						$("html,body").removeAttr('style'); 
443						
444					}, 1000);
445				}
446				
447				if ( $( overlay_cache_selector).hasClass('overlay-contentscale') ) {
448					
449					$( container ).removeClass('overlay-contentscale-open');
450					
451					setTimeout( function() {
452						
453						$( container ).removeClass( 'container3' );
454						
455					}, 1000);
456				}
457				
458				if ( $( overlay_cache_selector ).hasClass('overlay-cornershape') ) {
459					
460					var onEndTransitionFn = function( ev ) {
461						
462						$( overlay ).removeClass( 'close' );
463					};
464					path.animate( { 'path' : pathConfig.from }, 400, mina.linear, onEndTransitionFn );
465				}
466				else if ( $( overlay_cache_selector ).hasClass('overlay-boxes') ) {
467					
468					paths.forEach( function( p, i ) {
469						setTimeout( function() {
470							++cnt;
471							p.style.display = 'none';
472							if( cnt === pathsTotal ) {
473								
474								$( overlay ).removeClass( 'close' );
475							}
476						}, i * 30 );
477					});
478				}
479				else if ( $(  overlay_cache_selector ).hasClass('overlay-genie') ) {
480					
481					var pos = stepsTotal-1;
482					var onEndTransitionFn = function( ev ) {
483						
484						$( overlay ).removeClass( 'close' );
485					},
486					nextStep = function( pos ) {
487						pos--;
488						if( pos < 0 ) return;
489						path1.animate( { 'path' : steps[pos] }, 60, mina.linear, function() { 
490							if( pos === 0 ) {
491								onEndTransitionFn();
492							}
493							nextStep( pos );
494						} );
495					};
496
497					nextStep( pos );
498				}
499				else {
500					
501					overlay = document.querySelector( overlay_cache_selector );
502					
503					var onEndTransitionFn = function( ev ) {
504						if( support.transitions ) {
505							if( ev.propertyName !== 'visibility' ) return;
506							this.removeEventListener( transEndEventName, onEndTransitionFn );
507						}
508						
509						$( overlay ).removeClass( 'close' );
510					};
511					
512					if ( support.transitions ) {
513						
514						overlay.addEventListener( transEndEventName, onEndTransitionFn );
515					}
516					else {
517						
518						onEndTransitionFn();
519					}
520				}
521				
522				if ( prevent_mainpage_scroll ) {
523					
524					$( 'html,body' ).removeClass('prevent_mainpage_scroll');
525					$( 'body' ).removeClass('prevent_mainpage_scroll_mobile');
526					$( '#page-container' ).removeClass('prevent_content_scroll');
527					$('html, body').scrollTop( $( overlay ).attr('data-scrolltop') );
528					$( overlay ).attr('data-scrolltop', '' );
529				}
530				
531				setTimeout( function() {
532					
533					$( overlay_cache_selector ).removeAttr('style');
534					$( overlay_cache_selector + ' path' ).removeAttr('style');
535					
536					if ( !isActiveOverlay() ) {
537						
538						$( "#page-container .container" ).css('z-index','1');
539						$( "#page-container #main-header" ).css('z-index','99989');
540						$( "#sidebar-overlay" ).css('z-index','-15');
541					}
542					
543					if ( displayonceperload ) {
544						
545						$( overlay_container ).remove();
546					}
547					else {
548						
549						togglePlayableTags( '#overlay-' + overlay_id );
550					}
551					
552				}, 500);
553			}
554			else if( !$( overlay ).hasClass('close') && !preventOpen ) {
555				
556				if ( displayonceperload ) {
557					
558					overlay.attr('data-preventopen', 1);
559				}
560				
561				overlay.attr('data-scrolltop', getScrollTop() );
562				
563				$( "#page-container .container" ).css('z-index','0');
564				$( "#page-container #main-header" ).css('z-index','-1');
565				$( "#sidebar-overlay" ).css('z-index','16777271');
566				
567				setTimeout( function() {
568					
569					$( overlay ).addClass('open');
570					
571					if ( overlay.attr('data-bgcolor') != "") {
572						$( overlay_cache_selector ).css( { 'background-color': overlay.attr('data-bgcolor') } );
573					}
574					
575					if ( overlay.attr('data-fontcolor') != "") {
576						$( overlay_cache_selector ).css( 'color', overlay.attr('data-fontcolor') );
577					}
578					
579					if ( $( overlay_cache_selector ).hasClass('overlay-contentpush') ) {
580						
581						$( "html,body" ).css('overflow-x','hidden');
582						
583						$( overlay_cache_selector ).css('opacity',1);
584						
585						container.attr('class', 'container2');
586						
587						$( container ).addClass( 'overlay-contentpush-open' );
588					}
589					
590					if ( $( overlay_cache_selector ).hasClass('overlay-contentscale')) {
591						
592						container.attr('class', 'container3');
593						
594						$( container ).addClass('overlay-contentscale-open');
595					}
596					
597					if ( $( overlay_cache_selector ).hasClass('overlay-cornershape')) {
598						
599						$( overlay_cache_selector ).css({"background":"transparent none repeat scroll 0 0"});
600						
601						path.animate( { 'path' : pathConfig.to }, 400, mina.linear );
602						$( overlay_cache_selector + ' .overlay-path' ).css({"fill": overlay.attr('data-bgcolor')});
603					}
604					
605					if ( $(  overlay_cache_selector ).hasClass('overlay-boxes') ) {
606						
607						$( overlay_cache_selector ).css({"background":"transparent none repeat scroll 0 0"});
608						paths.forEach( function( p, i ) {
609							setTimeout( function() {
610								p.style.display = 'block';
611								p.style.fill = overlay.attr('data-bgcolor');
612							}, i * 30 );
613						});
614					}
615					
616					if ( $( overlay_cache_selector ).hasClass('overlay-genie') ) {
617						
618						$( overlay_cache_selector ).css({"background":"transparent none repeat scroll 0 0"});
619						
620						var pos = 0;
621						
622						$( overlay ).addClass( 'open' );
623						
624						var nextStep = function( pos ) {
625							pos++;
626							if( pos > stepsTotal - 1 ) return;
627							path1.animate( { 'path' : steps[pos] }, 60, mina.linear, function() { nextStep(pos); } );
628							
629							$( overlay_cache_selector + ' .overlay-path' ).css({"fill": overlay.attr('data-bgcolor')});
630						};
631						
632						nextStep(pos);
633					}
634					
635					if ( prevent_mainpage_scroll ) {
636						
637						$( 'html,body' ).addClass('prevent_mainpage_scroll');
638						$( 'body' ).addClass('prevent_mainpage_scroll_mobile');
639						$( '#page-container' ).addClass('prevent_content_scroll');
640					}
641					
642				}, 200);
643			}
644		}
645		
646		
647		function getScrollTop() {
648			
649			if ( typeof pageYOffset!= 'undefined' ) {
650				
651				// most browsers except IE before #9
652				return pageYOffset;
653			}
654			else {
655				
656				var B = document.body; // IE 'quirks'
657				var D = document.documentElement; // IE with doctype
658				D = ( D.clientHeight ) ? D: B;
659				
660				return D.scrollTop;
661			}
662		}
663		
664		
665		function showOverlay( overlay_id ) {
666			
667			if ( !DovisInt( overlay_id ) )
668				return;
669			
670			var data = {
671				action: 'divioverlay_content',
672				overlay_id: overlay_id
673			};
674			
675			divi_overlay_container_selector = '#divi-overlay-container-' + overlay_id;
676			
677			if ( $( divi_overlay_container_selector ).length ) {
678			
679				overlay_body = $( divi_overlay_container_selector ).find( '.overlay' );
680				
681				toggleSrcInPlayableTags( overlay_body );
682				
683				toggleOverlay( overlay_id );
684			}
685		}
686		
687		function showOverlayOnce( overlay_id ) {
688			
689			if ( !DovisInt( overlay_id ) )
690				return;
691			
692			overlay = '#overlay-' + overlay_id;
693			
694			$( overlay ).attr( 'data-displayonceperload', 1 );
695		}
696		
697		function toggleSrcInPlayableTags( str ) {
698			
699			str.find("iframe").each(function() { 
700				var src = $(this).data('src');
701				$(this).attr('src', src);  
702			});
703			
704			return str;
705		}
706		
707		$('body').on('click', '.overlay.open, .overlay-close, .overlay-close span, .close-divi-overlay', function(e) {
708			
709			if ( e.target !== e.currentTarget ) return;
710			
711			closeActiveOverlay();
712		});
713		
714		function closeActiveOverlay( overlay_id ) {
715			
716			// find active overlay
717			var overlay = $( 'body' ).find( '.overlay.open' );
718			var displayonceperload = overlay.data('displayonceperload');
719			
720			if ( overlay.length ) {
721				
722				if ( overlay_id == null ) {
723					
724					var overlayArr = overlay.attr('id').split('-');
725					overlay_id = overlayArr[1];
726				}
727				
728				showOverlay( overlay_id );
729			}
730		}
731		
732		function getActiveOverlay( onlyNumber ) {
733			
734			// find active overlay
735			overlay = $( 'body' ).find( '.overlay.active' );
736			overlay_id = null;
737			
738			if ( overlay.length ) {
739				
740				var overlayArr = overlay.attr('id').split('-');
741				var overlay_id = overlayArr[1];
742			}
743			
744			return overlay_id;
745		}
746		
747		function isOpeningOverlay( overlay_id ) {
748			
749			if ( !overlay_id ) {
750				
751				return null;
752			}
753			
754			var overlay = $( '#overlay-' + overlay_id );
755			
756			if ( $( overlay ).css('opacity') < 1 ) {
757				
758				return true;
759			}
760			
761			return false;
762		}
763		
764		function isClosingOverlay( overlay_id ) {
765			
766			if ( !overlay_id ) {
767				
768				return null;
769			}
770			
771			var overlay = $( '#overlay-' + overlay_id );
772			
773			if ( $( overlay ).hasClass('close') ) {
774				
775				return false;
776			}
777			
778			return true;
779		}
780		
781		function isActiveOverlay( overlay_id ) {
782			
783			if ( !overlay_id ) {
784				
785				var overlay = $( '.overlay.open' );
786			}
787			else {
788				
789				var overlay = $( '#overlay-' + overlay_id );
790			}
791			
792			if ( $( overlay ).hasClass('open') ) {
793				
794				return true;
795			}
796			
797			return false;
798		}
799	}
800});
801
802
803function DovisInt(value) {
804    var x;
805    return isNaN(value) ? !1 : (x = parseFloat(value), (0 | x) === x);
806}

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.