// source --> https://papadoux.com/wp-content/plugins/responsive-lightbox/js/front.js?ver=2.5.2 
( function( $ ) {

	// parse query string
	var parseQueryString = function( name, str ) {
		var regex = new RegExp( '[?&]' + name.replace( /[\[\]]/g, '\\$&' ) + '(=([^&#]*)|&|#|$)' );
		var results = regex.exec( '&' + str );

		return ( ! results || ! results[2] ? '' : decodeURIComponent( results[2].replace( /\+/g, ' ' ) ) );
	}

	// observe DOM changes
	var observeContentChanges = function( el, onlyAdded, callback ) {
		if ( typeof MutationObserver !== 'undefined' ) {
			// define a new observer
			var observer = new MutationObserver( function( mutations, observer ) {
				if ( onlyAdded ) {
					if ( mutations[0].addedNodes.length )
						callback();
				} else {
					if ( mutations[0].addedNodes.length || mutations[0].removedNodes.length )
						callback();
				}
			} );

			// have the observer observe for changes in children
			observer.observe( el, { childList: true, subtree: true } );
		}
	};

	// ready event
	$( function() {
		initPlugin();
	} );

	// custom events trigger
	$( document ).on( rlArgs.customEvents, function() {
		initPlugin();
	} );

	function initPlugin() {
		var containers = [];

		// check for infinite galleries
		$( '.rl-gallery-container' ).each( function() {
			var container = $( this );

			// is it ifinite scroll gallery?
			if ( container.hasClass( 'rl-pagination-infinite' ) )
				containers.push( container );
			// remove loading class
			else
				container.removeClass( 'rl-loading' );
		} );

		// any infinite galleries?
		if ( containers.length > 0 ) {
			var infArgs = [];

			for ( var i = 0; i < containers.length; i++ ) {
				var container = containers[i];
				var gallery = container.find( '.rl-gallery' );
				var galleryId = parseInt( container.data( 'gallery_id' ) );
				var galleryScrollType = container.find( '.rl-pagination-bottom' ).data( 'button' );
				var galleryButton = typeof galleryScrollType !== 'undefined' && galleryScrollType === 'manually';

				infArgs[i] = {
					container: container,
					gallery: gallery,
					galleryId: galleryId,
					galleryButton: galleryButton
				};

				// initialize infinite scroll
				infArgs[i].gallery.infiniteScroll( {
					path: '.rl-gallery-container[data-gallery_id="' + infArgs[i].galleryId + '"] .rl-pagination-bottom .next',
					append: '.rl-gallery-container[data-gallery_id="' + infArgs[i].galleryId + '"] .rl-gallery-item',
					status: false,
					hideNav: '.rl-gallery-container[data-gallery_id="' + infArgs[i].galleryId + '"] .rl-pagination-bottom',
					prefill: ! infArgs[i].galleryButton,
					loadOnScroll: true,
					scrollThreshold: infArgs[i].galleryButton ? false : 400,
					button: infArgs[i].galleryButton ? '.rl-gallery-container[data-gallery_id="' + infArgs[i].galleryId + '"] .rl-load-more' : false,
					debug: false,
					history: false,
					responseBody: 'text',
					onInit: function() {
						// get current arguments
						var args = infArgs[i];

						// infinite with button?
						if ( args.container.hasClass( 'rl-pagination-infinite' ) && args.galleryButton ) {
							// remove loading class
							args.container.removeClass( 'rl-loading' );
						}

						// request event
						this.on( 'request', function() {
							// add loading class
							args.container.addClass( 'rl-loading' );
						} );

						// append event
						this.on( 'append', function( body, path, items, response ) {
							// remove loading class
							args.container.removeClass( 'rl-loading' );

							$.event.trigger( {
								type: 'doResponsiveLightbox',
								script: rlArgs.script,
								selector: rlArgs.selector,
								args: rlArgs,
								pagination_type: 'infinite',
								gallery_id: args.galleryId,
								masonry: args.gallery.hasClass( 'rl-masonry-gallery' ) || args.gallery.hasClass( 'rl-basicmasonry-gallery' ),
								delayLightbox: args.gallery.hasClass( 'rl-expander-gallery' ),
								infinite: {
									gallery: args.gallery,
									body: body,
									items: items,
									response: response
								}
							} );
						} );
					}
				} );
			}
		}

		// initialize event
		$.event.trigger( {
			type: 'doResponsiveLightbox',
			script: rlArgs.script,
			selector: rlArgs.selector,
			args: rlArgs
		} );
	}

	// pagination
	$( document ).on( 'click', '.rl-pagination a.page-numbers', function( e ) {
		var link = $( this );
		var container = link.closest( '.rl-gallery-container' );

		// ajax type pagination?
		if ( container.hasClass( 'rl-pagination-ajax' ) ) {
			e.preventDefault();
			e.stopPropagation();

			var galleryId = container.data( 'gallery_id' );
			var galleryNo = container.find( '.rl-gallery' ).data( 'gallery_no' );

			// add loading class
			container.addClass( 'rl-loading' );

			$.post( rlArgs.ajaxurl, {
				action: 'rl-get-gallery-page-content',
				gallery_id: galleryId,
				gallery_no: galleryNo,
				post_id: rlArgs.postId,
				page: parseQueryString( 'rl_page', link.prop( 'href' ) ),
				nonce: rlArgs.nonce,
				preview: rlArgs.preview ? 'true' : 'false',
				lightbox: rlArgs.script
			} ).done( function( response ) {
				// replace container with new content
				container.replaceWith( $( response ).removeClass( 'rl-loading' ) );

				// trigger main event
				$.event.trigger( {
					type: 'doResponsiveLightbox',
					script: rlArgs.script,
					selector: rlArgs.selector,
					args: rlArgs,
					pagination_type: 'ajax',
					gallery_id: galleryId,
					gallery_no: galleryNo
				} );
			} ).always( function() {
				container.removeClass( 'rl-loading' );
			} );

			return false;
		}
	} );

	// this is similar to the WP function add_action();
	$( document ).on( 'doResponsiveLightbox', function( event ) {
		if ( typeof event.masonry !== 'undefined' && event.masonry === true )
			return false;

		var script = event.script;
		var selector = event.selector;

		if ( typeof script === 'undefined' || typeof selector === 'undefined' )
			return false;

		var args = event.args;
		var delayLightbox = false;

		if ( typeof event.delayLightbox !== 'undefined' && event.delayLightbox === true )
			delayLightbox = true;

		rl_view_image = function( script, url ) {
			$.event.trigger( {
				type: 'doLightboxViewImage',
				script: script,
				url: url
			} );
		}

		rl_hide_image = function( script, url ) {
			$.event.trigger( {
				type: 'doLightboxHideImage',
				script: script,
				url: url
			} );
		}

		// WooCommerce 3.0+ compatibility
		setTimeout( function() {
			var flex = $( '.flex-viewport' );

			if ( args.woocommerce_gallery ) {
				var gallery = $( '.woocommerce-product-gallery' );

				if ( gallery.find( '.woocommerce-product-gallery__trigger' ).length === 0 ) {
					gallery.prepend( '<a href="#" class="woocommerce-product-gallery__trigger">🔍</a>' );

					gallery.on( 'click', '.woocommerce-product-gallery__trigger', function( e ) {
						e.preventDefault();
						e.stopPropagation();

						if ( script === 'lightgallery' ) {
							if ( flex.length ) {
								var image = flex.find( '.flex-active-slide a[data-rel] img' );
								var linkId = flex.find( '.flex-active-slide a[data-rel]' ).data( 'lg-id' );

								image.trigger( 'click.lgcustom-item-' + linkId );
							} else {
								var link = gallery.find( 'a[data-rel]' ).first();
								var image = link.find( 'img' );

								image.trigger( 'click.lgcustom-item-' + link.data( 'lg-id' ) );
							}
						} else if ( script === 'fancybox_pro' ) {
							if ( flex.length ) {
								var index = flex.find( '.flex-active-slide' ).index();
								var imageId = flex.find( '.flex-active-slide a[data-rel]' ).data( 'fancybox' );

								Fancybox.fromOpener( '[data-fancybox="' + imageId + '"]', {
									startIndex: index
								} );
							} else {
								var link = gallery.find( 'a[data-rel]' ).first();

								Fancybox.fromOpener( '[data-fancybox="' + link.data( 'fancybox' ) + '"]', {
									startIndex: 0
								} );
							}
						} else {
							if ( flex.length )
								flex.find( '.flex-active-slide a[data-rel]' ).trigger( 'click' );
							else
								gallery.find( 'a[data-rel]' ).first().trigger( 'click' );
						}
					} );
				}
			}
		}, 10 );

		if ( delayLightbox ) {
			setTimeout( function() {
				initLightbox( event );
			}, 0 );
		} else
			initLightbox( event );
	} );

	/**
	 * Initialize lightbox script.
	 */
	function initLightbox( event ) {
		var script = event.script;
		var selector = event.selector;
		var args = event.args;

		switch ( script ) {
			case 'swipebox':
				var slide = $( '#swipebox-overlay' ).find( '.slide.current' );
				var imageSource = '';
				var allowHide = false;
				var closeExecuted = false;

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).swipebox( {
					useCSS: args.animation,
					useSVG: args.useSVG,
					hideCloseButtonOnMobile: args.hideCloseButtonOnMobile,
					removeBarsOnMobile: args.removeBarsOnMobile,
					hideBarsDelay: args.hideBars ? parseInt( args.hideBarsDelay ) : 0,
					videoMaxWidth: parseInt( args.videoMaxWidth ),
					loopAtEnd: args.loopAtEnd,
					afterOpen: function() {
						closeExecuted = false;

						// update current slide container
						slide = $( '#swipebox-overlay' ).find( '.slide.current' );

						// get image source
						var image = slide.find( 'img' ).attr( 'src' );

						// valid image source?
						if ( typeof image !== 'undefined' ) {
							imageSource = image;

							// trigger image view
							rl_view_image( script, imageSource );
						} else
							imageSource = '';

						// add current slide observer
						observeContentChanges( document.getElementById( 'swipebox-slider' ), false, function() {
							if ( imageSource === '' ) {
								// get image source
								var image = slide.find( 'img' ).attr( 'src' );

								// valid image source?
								if ( typeof image !== 'undefined' ) {
									imageSource = image;

									// trigger image view
									rl_view_image( script, imageSource );
								} else
									imageSource = '';
							}
						} );
					},
					nextSlide: function() {
						// update current slide container
						slide = $( '#swipebox-overlay' ).find( '.slide.current' );

						// get image source
						var image = slide.find( 'img' ).attr( 'src' );

						// valid image source?
						if ( typeof image !== 'undefined' ) {
							imageSource = image;

							// trigger image view
							rl_view_image( script, imageSource );
						} else
							imageSource = '';
					},
					prevSlide: function() {
						// update current slide container
						slide = $( '#swipebox-overlay' ).find( '.slide.current' );

						// get image source
						var image = slide.find( 'img' ).attr( 'src' );

						// valid image source?
						if ( typeof image !== 'undefined' ) {
							imageSource = image;

							// trigger image view
							rl_view_image( script, imageSource );
						} else
							imageSource = '';
					},
					afterClose: function() {
						// afterClose event executed
						closeExecuted = true;

						// allow to hide image?
						if ( allowHide ) {
							// trigger image hide
							rl_hide_image( script, imageSource );

							allowHide = false;
						}
					}
				} );

				// additional event to prevent rl_hide_image to execure while opening modal
				$( window ).on( 'resize', function() {
					if ( ! closeExecuted ) {
						allowHide = true;
					}
				} );
				break;

			case 'prettyphoto':
				var viewDisabled = false;
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).each( function() {
					var el = $( this );
					var title = el.data( 'rl_title' );
					var caption = el.data( 'rl_caption' );

					if ( ! title )
						title = '';
					else {
						title = title.replace( /[^]/g, function( c ) {
							return '&#' + c.charCodeAt( 0 ) + ';';
						} );
					}

					if ( ! caption )
						caption = '';
					else {
						caption = caption.replace( /[^]/g, function( c ) {
							return '&#' + c.charCodeAt( 0 ) + ';';
						} );
					}

					// set description
					el.attr( 'title', caption );

					// set title
					el.find( 'img' ).attr( 'alt', title );
				} );

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).prettyPhoto( {
					hook: 'data-rel',
					animation_speed: args.animationSpeed,
					slideshow: args.slideshow ? parseInt( args.slideshowDelay ) : false,
					autoplay_slideshow: args.slideshowAutoplay,
					opacity: args.opacity,
					show_title: args.showTitle,
					allow_resize: args.allowResize,
					allow_expand: args.allowExpand,
					default_width: parseInt( args.width ),
					default_height: parseInt( args.height ),
					counter_separator_label: args.separator,
					theme: args.theme,
					horizontal_padding: parseInt( args.horizontalPadding ),
					hideflash: args.hideFlash,
					wmode: args.wmode,
					autoplay: args.videoAutoplay,
					modal: args.modal,
					deeplinking: args.deeplinking,
					overlay_gallery: args.overlayGallery,
					keyboard_shortcuts: args.keyboardShortcuts,
					social_tools: args.social ? '<div class="pp_social"><div class="twitter"><a href="//twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href=' + location.href + '&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div></div>' : '',
					ie6_fallback: true,
					changepicturecallback: function() {
						// is view disabled?
						if ( viewDisabled ) {
							// enable view
							viewDisabled = false;

							return;
						}

						lastImage = $( '#pp_full_res' ).find( 'img' ).attr( 'src' );

						// trigger image view
						rl_view_image( script, lastImage );

						// is expanding allowed?
						if ( args.allowExpand ) {
							// disable changepicturecallback event after expanding
							$( 'a.pp_expand' ).on( 'click', function() {
								viewDisabled = true;
							} );
						}
					},
					callback: function() {
						// trigger image hide
						rl_hide_image( script, lastImage );
					}
				} );
				break;

			case 'nivo':
				$.each( $( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ), function() {
					var attr = $( this ).attr( 'data-rel' );

					// check data-rel attribute first
					if ( typeof attr === 'undefined' || attr == false ) {
						// if not found then try to check rel attribute for backward compatibility
						attr = $( this ).attr( 'rel' );
					}

					// for some browsers, `attr` is undefined; for others, `attr` is false. Check for both.
					if ( typeof attr !== 'undefined' && attr !== false ) {
						var match = attr.match( new RegExp( selector + '\\-(gallery\\-(?:[\\da-z]{1,4}))', 'ig' ) );

						if ( match !== null )
							$( this ).attr( 'data-lightbox-gallery', match[0] );
					}
				} );

				var observerInitialized = false;
				var changeAllowed = true;
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).nivoLightbox( {
					effect: args.effect,
					clickOverlayToClose: args.clickOverlayToClose,
					keyboardNav: args.keyboardNav,
					errorMessage: args.errorMessage,
					afterShowLightbox: function( lightbox ) {
						var content = $( lightbox )[0].find( '.nivo-lightbox-content' );

						// is observer initialized?
						if ( ! observerInitialized ) {
							// turn it off
							observerInitialized = true;

							// add content observer
							observeContentChanges( document.getElementsByClassName( 'nivo-lightbox-content' )[0], true, function() {
								if ( changeAllowed ) {
									lastImage = content.find( '.nivo-lightbox-image img' ).attr( 'src' );

									// trigger image view
									rl_view_image( script, lastImage );

									// disallow observer changes
									changeAllowed = false;
								}
							} );
						}
					},
					afterHideLightbox: function() {
						// allow observer changes
						changeAllowed = true;

						// trigger image hide
						rl_hide_image( script, lastImage );
					},
					onPrev: function( element ) {
						// disallow observer changes
						changeAllowed = false;

						lastImage = element[0].attr( 'href' );

						// trigger image view
						rl_view_image( script, lastImage );
					},
					onNext: function( element ) {
						// disallow observer changes
						changeAllowed = false;

						lastImage = element[0].attr( 'href' );

						// trigger image view
						rl_view_image( script, lastImage );
					}
				} );
				break;

			case 'imagelightbox':
				var selectors = [];
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).each( function( i, item ) {
					var attr = $( item ).attr( 'data-rel' );

					// check data-rel attribute first
					if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
						selectors.push( attr );
					// if not found then try to check rel attribute for backward compatibility
					else {
						attr = $( item ).attr( 'rel' );

						if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
							selectors.push( attr );
					}
				} );

				if ( selectors.length > 0 ) {
					// make unique
					selectors = _.uniq( selectors );

					$( selectors ).each( function( i, item ) {
						if ( typeof event.pagination_type !== 'undefined' ) {
							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).each( function() {
								$( this ).off( 'click.imageLightbox' );
							} );
						}

						$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).imageLightbox( {
							animationSpeed: parseInt( args.animationSpeed ),
							preloadNext: args.preloadNext,
							enableKeyboard: args.enableKeyboard,
							quitOnEnd: args.quitOnEnd,
							quitOnImgClick: args.quitOnImageClick,
							quitOnDocClick: args.quitOnDocumentClick,
							onLoadEnd: function() {
								lastImage = $( '#imagelightbox' ).attr( 'src' );

								// trigger image view
								rl_view_image( script, lastImage );
							},
							onEnd: function() {
								// trigger image hide
								rl_hide_image( script, lastImage );
							}
						} );
					} );
				}
				break;

			case 'tosrus':
				var selectors = [];
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).each( function( i, item ) {
					var attr = $( item ).attr( 'data-rel' );

					// check data-rel attribute first
					if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
						selectors.push( attr );
					// if not found then try to check rel attribute for backward compatibility
					else {
						attr = $( item ).attr( 'rel' );

						if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
							selectors.push( attr );
					}
				} );

				if ( selectors.length > 0 ) {
					// make unique
					selectors = _.uniq( selectors );

					$( selectors ).each( function( i, item ) {
						if ( typeof event.pagination_type !== 'undefined' ) {
							$( 'body' ).find( '.tosrus-' + item ).remove();

							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).each( function() {
								$( this ).off( 'click.tos' );
							} );
						}

						var tos = $( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).tosrus( {
							infinite: args.infinite,
							autoplay: {
								play: args.autoplay,
								pauseOnHover: args.pauseOnHover,
								timeout: args.timeout
							},
							effect: args.effect,
							keys: {
								prev: args.keys,
								next: args.keys,
								close: args.keys
							},
							pagination: {
								add: args.pagination,
								type: args.paginationType
							},
							// forced
							show: false,
							buttons: true,
							caption: {
								add: true,
								attributes: [ "title" ]
							},
							wrapper: {
								classes: 'tosrus-' + item,
								onClick: args.closeOnClick ? 'close' : 'toggleUI'
							}
						} );

						tos.on( 'sliding.tos', function( event, number ) {
							lastImage = $( $( event.target ).find( '.tos-slider .tos-slide' )[number] ).find( 'img' ).attr( 'src' );

							// trigger image view
							rl_view_image( script, lastImage );
						} );

						tos.on( 'closing.tos', function() {
							// trigger image hide
							rl_hide_image( script, lastImage );
						} );
					} );
				}
				break;

			case 'featherlight':
				delete $.featherlight.contentFilters.jquery;

				$.extend( $.featherlight.contentFilters, {
					html: {
						regex: /[^]/, // it will also handle jquery and any unspecified content type
						process: function( html ) {
							return $( '<div>', { text: html } );
						}
					}
				} );

				var selectors = [];
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).each( function( i, item ) {
					var attr = $( item ).attr( 'data-rel' );

					// check data-rel attribute first
					if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
						selectors.push( attr );
					// if not found then try to check rel attribute for backward compatibility
					else {
						attr = $( item ).attr( 'rel' );

						if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
							selectors.push( attr );
					}
				} );

				if ( selectors.length > 0 ) {
					// make unique
					selectors = _.uniq( selectors );

					// set defaults
					$.extend( $.featherlight.defaults, {
						contentFilters: ['image', 'html', 'ajax', 'iframe', 'text'],
						openSpeed: parseInt( args.openSpeed ),
						closeSpeed: parseInt( args.closeSpeed ),
						closeOnClick: args.closeOnClick,
						closeOnEsc: args.closeOnEsc,
						afterOpen: function( event ) {
							lastImage = event.currentTarget.href;

							// trigger image view
							rl_view_image( script, lastImage );
						},
						afterClose: function() {
							// trigger image hide
							rl_hide_image( script, lastImage );
						}
					} );

					$( selectors ).each( function( i, item ) {
						if ( typeof event.pagination_type !== 'undefined' ) {
							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).each( function() {
								$( this ).off( 'click.featherlight' );
							} );
						}

						// gallery?
						if ( /-gallery-/.test( item ) ) {
							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).featherlightGallery( {
								galleryFadeIn: parseInt( args.galleryFadeIn ),
								galleryFadeOut: parseInt( args.galleryFadeOut ),
								previousIcon: '&#10094;',
								nextIcon: '&#10095;'
							} );
						// video?
						} else if ( /-video-/.test( item ) ) {
							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).featherlight();
						// single image?
						} else {
							$( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' ).featherlight();
						}
					} );
				}
				break;

			case 'magnific':
				var selectors = [];
				var lastImage = '';

				$( 'a[rel*="' + selector + '"], a[data-rel*="' + selector + '"]' ).each( function( i, item ) {
					var attr = $( item ).attr( 'data-rel' );

					// check data-rel attribute first
					if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
						selectors.push( attr );
					// if not found then try to check rel attribute for backward compatibility
					else {
						attr = $( item ).attr( 'rel' );

						if ( typeof attr !== 'undefined' && attr !== false && attr !== 'norl' )
							selectors.push( attr );
					}
				} );

				if ( selectors.length > 0 ) {
					// make unique
					selectors = _.uniq( selectors );

					$( selectors ).each( function( i, item ) {
						var subselector = $( 'a[data-rel="' + item + '"], a[rel="' + item + '"]' );
						var element = $( subselector[0] );
						var media_type = element.data( 'magnific_type' );
						var content_type = element.data( 'rl_content' );

						// check content type first
						if ( typeof content_type !== 'undefined' )
							media_type = content_type;

						// then media type if needed
						if ( typeof media_type === 'undefined' )
							media_type = 'image';

						var fixedContentPos = 'auto';
						var fixedBgPos = 'auto';

						if ( args.fixedContentPos === 'true' )
							fixedContentPos = true;
						else if ( args.fixedContentPos === 'false' )
							fixedContentPos = false;

						if ( args.fixedBgPos === 'true' )
							fixedBgPos = true;
						else if ( args.fixedBgPos === 'false' )
							fixedBgPos = false;

						subselector.magnificPopup( {
							allowHTMLInStatusIndicator: false,
							allowHTMLInTemplate: true,
							type: media_type === 'gallery' ? 'image' : ( media_type === 'video' ? 'iframe' : media_type ),
							disableOn: args.disableOn,
							midClick: args.midClick,
							preloader: args.preloader,
							closeOnContentClick: args.closeOnContentClick,
							closeOnBgClick: args.closeOnBgClick,
							closeBtnInside: args.closeBtnInside,
							showCloseBtn: args.showCloseBtn,
							enableEscapeKey: args.enableEscapeKey,
							alignTop: args.alignTop,
							autoFocusLast: args.autoFocusLast,
							fixedContentPos: fixedContentPos,
							fixedBgPos: fixedBgPos,
							image: {
								titleSrc: function( item ) {
									var title = item.el.data( 'rl_title' );
									var caption = item.el.data( 'rl_caption' );

									if ( ! title )
										title = '';
									else {
										title = title.replace( /[^]/g, function( c ) {
											return '&#' + c.charCodeAt( 0 ) + ';';
										} );
									}

									if ( ! caption )
										caption = '';
									else {
										caption = caption.replace( /[^]/g, function( c ) {
											return '&#' + c.charCodeAt( 0 ) + ';';
										} );
									}

									return title + '<small>' + caption + '</small>';
								}
							},
							gallery: {
								enabled: subselector.length > 1 && media_type === 'gallery',
								navigateByImgClick: true,
								preload: [0,1]
							},
							callbacks: {
								close: function() {
									rl_hide_image( script, this.currItem.src );
								},
								imageLoadComplete: function() {
									// trigger image view
									rl_view_image( script, this.currItem.src );
								},
								elementParse: function( item ) {
									if ( item.src.trim().includes( '<' ) ) {
										if ( item.type === 'inline' )
											item.src = '<div>HTML is disallowed.</div>';
										else if ( item.type === 'iframe' || item.type === 'ajax' )
											item.src = '';
									}
								}
							}
						} );
					} );
				}
				break;
		}
	}

} )( jQuery );
// source --> https://papadoux.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.10.6.2 
/*!
 * jQuery blockUI plugin
 * Version 2.70.0-2014.11.23
 * Requires jQuery v1.7 or later
 *
 * Examples at: http://malsup.com/jquery/block/
 * Copyright (c) 2007-2013 M. Alsup
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Thanks to Amir-Hossein Sobhi for some excellent contributions!
 */
!function(){"use strict";function e(e){e.fn._fadeIn=e.fn.fadeIn;var t=e.noop||function(){},o=/MSIE/.test(navigator.userAgent),n=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),i=(document.documentMode,"function"==typeof document.createElement("div").style.setExpression&&document.createElement("div").style.setExpression);e.blockUI=function(e){d(window,e)},e.unblockUI=function(e){a(window,e)},e.growlUI=function(t,o,n,i){var s=e('<div class="growlUI"></div>');t&&s.append("<h1>"+t+"</h1>"),o&&s.append("<h2>"+o+"</h2>"),n===undefined&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.on("mouseover",function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).on("mouseout",function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(t){if(this[0]===window)return e.blockUI(t),this;var o=e.extend({},e.blockUI.defaults,t||{});return this.each(function(){var t=e(this);o.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,d(this,t)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){a(this,t)})},e.blockUI.version=2.7,e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var s=null,l=[];function d(d,c){var u,b,h=d==window,k=c&&c.message!==undefined?c.message:undefined;if(!(c=e.extend({},e.blockUI.defaults,c||{})).ignoreIfBlocked||!e(d).data("blockUI.isBlocked")){if(c.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,c.overlayCSS||{}),u=e.extend({},e.blockUI.defaults.css,c.css||{}),c.onOverlayClick&&(c.overlayCSS.cursor="pointer"),b=e.extend({},e.blockUI.defaults.themedCSS,c.themedCSS||{}),k=k===undefined?c.message:k,h&&s&&a(window,{fadeOut:0}),k&&"string"!=typeof k&&(k.parentNode||k.jquery)){var y=k.jquery?k[0]:k,m={};e(d).data("blockUI.history",m),m.el=y,m.parent=y.parentNode,m.display=y.style.display,m.position=y.style.position,m.parent&&m.parent.removeChild(y)}e(d).data("blockUI.onUnblock",c.onUnblock);var g,v,I,w,U=c.baseZ;g=o||c.forceIframe?e('<iframe class="blockUI" style="z-index:'+U+++';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+c.iframeSrc+'"></iframe>'):e('<div class="blockUI" style="display:none"></div>'),v=c.theme?e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+U+++';display:none"></div>'):e('<div class="blockUI blockOverlay" style="z-index:'+U+++';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),c.theme&&h?(w='<div class="blockUI '+c.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(U+10)+';display:none;position:fixed">',c.title&&(w+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(c.title||"&nbsp;")+"</div>"),w+='<div class="ui-widget-content ui-dialog-content"></div>',w+="</div>"):c.theme?(w='<div class="blockUI '+c.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(U+10)+';display:none;position:absolute">',c.title&&(w+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(c.title||"&nbsp;")+"</div>"),w+='<div class="ui-widget-content ui-dialog-content"></div>',w+="</div>"):w=h?'<div class="blockUI '+c.blockMsgClass+' blockPage" style="z-index:'+(U+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+c.blockMsgClass+' blockElement" style="z-index:'+(U+10)+';display:none;position:absolute"></div>',I=e(w),k&&(c.theme?(I.css(b),I.addClass("ui-widget-content")):I.css(u)),c.theme||v.css(c.overlayCSS),v.css("position",h?"fixed":"absolute"),(o||c.forceIframe)&&g.css("opacity",0);var x=[g,v,I],C=e(h?"body":d);e.each(x,function(){this.appendTo(C)}),c.theme&&c.draggable&&e.fn.draggable&&I.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var S=i&&(!e.support.boxModel||e("object,embed",h?null:d).length>0);if(n||S){if(h&&c.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(n||!e.support.boxModel)&&!h)var E=p(d,"borderTopWidth"),O=p(d,"borderLeftWidth"),T=E?"(0 - "+E+")":0,M=O?"(0 - "+O+")":0;e.each(x,function(e,t){var o=t[0].style;if(o.position="absolute",e<2)h?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+c.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),h?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),M&&o.setExpression("left",M),T&&o.setExpression("top",T);else if(c.centerY)h&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!c.centerY&&h){var n="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+(c.css&&c.css.top?parseInt(c.css.top,10):0)+') + "px"';o.setExpression("top",n)}})}if(k&&(c.theme?I.find(".ui-widget-content").append(k):I.append(k),(k.jquery||k.nodeType)&&e(k).show()),(o||c.forceIframe)&&c.showOverlay&&g.show(),c.fadeIn){var B=c.onBlock?c.onBlock:t,j=c.showOverlay&&!k?B:t,H=k?B:t;c.showOverlay&&v._fadeIn(c.fadeIn,j),k&&I._fadeIn(c.fadeIn,H)}else c.showOverlay&&v.show(),k&&I.show(),c.onBlock&&c.onBlock.bind(I)();if(r(1,d,c),h?(s=I[0],l=e(c.focusableElements,s),c.focusInput&&setTimeout(f,20)):function(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-p(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-p(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0");o&&(i.top=l>0?l+"px":"0")}(I[0],c.centerX,c.centerY),c.timeout){var z=setTimeout(function(){h?e.unblockUI(c):e(d).unblock(c)},c.timeout);e(d).data("blockUI.timeout",z)}}}function a(t,o){var n,i,d=t==window,a=e(t),u=a.data("blockUI.history"),f=a.data("blockUI.timeout");f&&(clearTimeout(f),a.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),r(0,t,o),null===o.onUnblock&&(o.onUnblock=a.data("blockUI.onUnblock"),a.removeData("blockUI.onUnblock")),i=d?e(document.body).children().filter(".blockUI").add("body > .blockUI"):a.find(">.blockUI"),o.cursorReset&&(i.length>1&&(i[1].style.cursor=o.cursorReset),i.length>2&&(i[2].style.cursor=o.cursorReset)),d&&(s=l=null),o.fadeOut?(n=i.length,i.stop().fadeOut(o.fadeOut,function(){0==--n&&c(i,u,o,t)})):c(i,u,o,t)}function c(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.el.style.cursor="default",o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),d=l.width(),a=l[0].style.width;l.width(d-1).width(d),l[0].style.width=a}}function r(t,o,n){var i=o==window,l=e(o);if((t||(!i||s)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var d="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).on(d,n,u):e(document).off(d,u)}}function u(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&s&&t.data.constrainTabKey){var o=l,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){f(i)},10),!1}var d=t.data,a=e(t.target);return a.hasClass("blockOverlay")&&d.onOverlayClick&&d.onOverlayClick(t),a.parents("div."+d.blockMsgClass).length>0||0===a.parents().children().filter("div.blockUI").length}function f(e){if(l){var t=l[!0===e?l.length-1:0];t&&t.trigger("focus")}}function p(t,o){return parseInt(e.css(t,o),10)||0}}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}();