// source --> http://www.kidsbangna.ru.ac.th/wp-content/plugins/popup-builder/public/js/PopupBuilder.js?ver=3.84 function sgAddEvent(element, eventName, fn) { if (element.addEventListener) element.addEventListener(eventName, fn, false); else if (element.attachEvent) element.attachEvent('on' + eventName, fn); } /*Popup order count*/ window.SGPB_ORDER = 0; function SGPBPopup() { this.id = null; this.eventName = ''; this.popupData = null; this.additionalPopupData = {}; this.popupConfig = {}; this.popupObj = null; this.onceListener(); this.initialsListeners(); this.countPopupOpen = true; this.closeButtonDefaultPositions = {}; this.closeButtonDefaultPositions[1] = { 'left': 9, 'right': 9, 'bottom': 9 }; this.closeButtonDefaultPositions[2] = { 'left': 0, 'right': 0, 'top': parseInt('-20'), 'bottom': parseInt('-20') }; this.closeButtonDefaultPositions[3] = { 'right': 4, 'bottom': 4, 'left': 4, 'top': 4 }; this.closeButtonDefaultPositions[4] = { 'left': 12, 'right': 12, 'bottom': 9 }; this.closeButtonDefaultPositions[5] = { 'left': 8, 'right': 8, 'bottom': 8 }; this.closeButtonDefaultPositions[6] = { 'left': parseInt('-18.5'), 'right': parseInt('-18.5'), 'bottom': parseInt('-18.5'), 'top': parseInt('-18.5') }; } SGPBPopup.htmlCustomButton = function() { var buttons = jQuery('.sgpb-html-custom-button'); var buttonActionBehaviors = function(button, settings) { button.bind('click', function() { var behavior = settings['sgpb-custom-button']; if (behavior === 'redirectToURL') { if (settings['sgpb-custom-button-redirect-new-tab']) { window.open(settings['sgpb-custom-button-redirect-URL']); } else { window.location.href = settings['sgpb-custom-button-redirect-URL']; } } if (behavior === 'hidePopup') { SGPBPopup.closePopup(); } if (behavior === 'copyToClipBoard') { var tempInputId = 1; var value = settings['sgpb-custom-button-copy-to-clipboard-text']; var tempInput = document.createElement("input"); tempInput.id = tempInputId; tempInput.value = value; tempInput.style = 'position: absolute; right: -10000px'; if (!document.getElementById(tempInputId)) { document.body.appendChild(tempInput); } tempInput.select(); document.execCommand("copy"); if (settings['sgpb-copy-to-clipboard-close-popup']) { SGPBPopup.closePopup(); } if (settings['sgpb-custom-button-copy-to-clipboard-alert']) { alert(settings['sgpb-custom-button-copy-to-clipboard-message']); } } }); }; buttons.each(function() { var settings = jQuery.parseJSON(decodeURIComponent(jQuery(this).attr('data-options'))); buttonActionBehaviors(jQuery(this), settings); }); }; SGPBPopup.listeners = function () { var that = this; sgAddEvent(window, 'sgpbPopupBuilderAdditionalDimensionSettings', function(e) { SGPBPopup.mobileSafariAdditionalSettings(e); }); sgAddEvent(window, 'sgpbDidOpen', function(e) { /*for mobile landscape issue*/ if (typeof (Event) === 'function') { var event = new CustomEvent('resize', { bubbles: true, cancelable: true }); } else { if (SGPBPopup.isIE()) { var event = document.createEvent('Event'); event.initEvent('resize', true, true); } else { var event = new CustomEvent('resize', { bubbles: true, cancelable: true }); } } window.dispatchEvent(event); SGPBPopup.mobileSafariAdditionalSettings(e); var args = e.detail; var popupOptions = args.popupData; var obj = e.detail.currentObj.sgpbPopupObj; /* if no analytics extension */ if (typeof SGPB_ANALYTICS_PARAMS === 'undefined') { if (obj.getCountPopupOpen()) { obj.addToCounter(popupOptions); } } if (popupOptions['sgpb-show-popup-same-user']) { obj.setPopupLimitationCookie(popupOptions); } SGPBPopup.htmlCustomButton(); }); setInterval(function() { var openedPopups = window.sgpbOpenedPopup || {}; if (!Object.keys(openedPopups).length) { return false; } var params = {}; params.popupsIdCollection = window.sgpbOpenedPopup; var data = { action: 'sgpb_send_to_open_counter', nonce: SGPB_JS_PARAMS.nonce, params: params }; window.sgpbOpenedPopup = {}; jQuery.post(SGPB_JS_PARAMS.ajaxUrl, data, function(res) { }); }, 600); }; SGPBPopup.mobileSafariAdditionalSettings = function(e) { if (typeof e === 'undefined') { var args = SGPBPopup.prototype.getAdditionalPopupData(); if (typeof args === 'undefined') { return false; } var popupOptions = args.popupData; var popupId = parseInt(args.popupId); } else { var args = e.detail; var alreadySavedArgs = SGPBPopup.prototype.getAdditionalPopupData(); if (jQuery.isEmptyObject(alreadySavedArgs)) { SGPBPopup.prototype.setAdditionalPopupData(args); } var popupOptions = args.popupData; var popupId = parseInt(args.popupId); } var userAgent = window.navigator.userAgent; if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) { if (typeof popupOptions['sgpb-popup-dimension-mode'] !== 'undefined' && popupOptions['sgpb-popup-dimension-mode'] === 'responsiveMode') { var openedPopupWidth = parseInt(window.innerHeight-100); if (jQuery('.sgpb-popup-builder-content-'+popupId +' iframe').length) { jQuery('.sgpb-popup-builder-content-'+popupId).attr('style', 'height:'+openedPopupWidth+'px !important;'); } } } }; SGPBPopup.prototype.setAdditionalPopupData = function(additionalPopupData) { this.additionalPopupData = additionalPopupData; }; SGPBPopup.prototype.getAdditionalPopupData = function() { return this.additionalPopupData; }; SGPBPopup.prototype.setCountPopupOpen = function(countPopupOpen) { this.countPopupOpen = countPopupOpen; }; SGPBPopup.prototype.getCountPopupOpen = function() { return this.countPopupOpen; }; SGPBPopup.playMusic = function(e) { var args = e.detail; var popupId = parseInt(args.popupId); var options = SGPBPopup.getPopupOptionsById(popupId); var soundUrl = options['sgpb-sound-url']; var soundStatus = options['sgpb-open-sound']; if (soundStatus && soundUrl && !window.SGPB_SOUND[popupId]) { var audio = new Audio(soundUrl); audio.play(); window.SGPB_SOUND[popupId] = audio; } }; SGPBPopup.floatingButton = function (e) { SGPBPopup.showFloatingButton(e); jQuery(window).on('sgpbFormSuccess', function (e){ SGPBPopup.hideFloatingButton(); }); }; SGPBPopup.showFloatingButton = function (e) { var popupObj = e || {}; var popupId = 0; var shouldShowFloatingButton = true; /* if argument e is event reference the popup object is wrapped inside e.detail.currentObj.sgpbPopupObj */ if (e.hasOwnProperty('sgpbPopupObj')) { popupObj = e.detail.currentObj.sgpbPopupObj; } if (popupObj instanceof SGPBPopup) { popupId = parseInt(popupObj.id); shouldShowFloatingButton = popupObj.forceCheckCurrentPopupType(popupObj); } /* If there is no cookie which will prevent popup opening we will show floating button */ if (shouldShowFloatingButton) { /* if we have popup id we detect exact button */ if (popupId) { jQuery('.sgpb-floating-button.sg-popup-id-' + popupId).show(); } else { jQuery('.sgpb-floating-button').show(); } } }; SGPBPopup.hideFloatingButton = function (popupId) { /* if we have popup id we detect exact button */ if (popupId) { jQuery('.sgpb-floating-button.sg-popup-id-' + popupId).fadeOut(); } else { jQuery('.sgpb-floating-button').fadeOut(); } }; SGPBPopup.prototype.initialsListeners = function() { /* one time calling events (sgpbDidOpen, sgpbDidClose ...) */ var that = this; sgAddEvent(window, 'sgpbDidOpen', function(e) { jQuery('.sg-popup-close').unbind('click').bind('click',function(){ var currentPopupId = jQuery(this).parents('.sg-popup-builder-content').attr('data-id'); SGPBPopup.closePopupById(currentPopupId); }); }); sgAddEvent(window, 'sgpbDidClose', function(e) { var args = e.detail; var popupId = parseInt(args.popupId); that.htmlIframeFilterForOpen(popupId, 'close'); }); }; SGPBPopup.prototype.onceListener = function() { var that = this; sgAddEvent(window, 'sgpbDidOpen', function(e) { document.onkeydown = function(e) { e = e || window.event; if (e.keyCode === 27) { /*esc pressed*/ var currentPopup = that.getPopupIdForNextEsc(); if (!currentPopup) { return false; } var lastPopupId = parseInt(currentPopup['popupId']); SGPBPopup.closePopupById(lastPopupId); } }; }); sgAddEvent(window, 'sgpbDidClose', function(e) { if (window.sgPopupBuilder.length !== 0) { var popups = [].concat(window.sgPopupBuilder).reverse(); for (var i in popups) { var nextIndex = ++i; var nextObj = popups[nextIndex]; if (typeof nextObj === 'undefined') { jQuery('html').removeClass('sgpb-overflow-hidden'); jQuery('body').removeClass('sgpb-overflow-hidden-body'); break; } if (nextObj.isOpen === false) { continue; } var options = SGPBPopup.getPopupOptionsById(nextObj.popupId); if (typeof options['sgpb-disable-page-scrolling'] === 'undefined') { jQuery('html').removeClass('sgpb-overflow-hidden'); jQuery('body').removeClass('sgpb-overflow-hidden-body'); } else { jQuery('html').addClass('sgpb-overflow-hidden'); jQuery('body').addClass('sgpb-overflow-hidden-body'); } break; } } else { jQuery('html').addClass('sgpb-overflow-hidden'); jQuery('body').addClass('sgpb-overflow-hidden-body'); } }); }; SGPBPopup.prototype.getPopupIdForNextEsc = function() { var popups = window.sgPopupBuilder; var popup = false; if (!popups.length) { return popup; } var searchPopups = [].concat(popups).reverse(); for (var i in searchPopups) { var popupData = searchPopups[i]; if (popupData.isOpen) { var popupId = parseInt(popupData['popupId']); var popupOptions = SGPBPopup.getPopupOptionsById(popupId); if (!popupOptions['sgpb-disable-popup-closing'] && popupOptions['sgpb-esc-key']) { popup = popupData; break; } } } return popup; }; SGPBPopup.prototype.setPopupId = function(popupId) { this.id = parseInt(popupId); }; SGPBPopup.prototype.getPopupId = function() { return this.id; }; SGPBPopup.prototype.setPopupObj = function(popupObj) { this.popupObj = popupObj; }; SGPBPopup.prototype.getPopupObj = function() { return this.popupObj; }; SGPBPopup.prototype.setPopupData = function(popupData) { if (typeof popupData == 'string') { var popupData = SGPBPopup.unserialize(popupData); } this.popupData = popupData; }; SGPBPopup.prototype.getPopupData = function() { return this.popupData; }; SGPBPopup.prototype.setPopupConfig = function(config) { this.popupConfig = config; }; SGPBPopup.prototype.getPopupConfig = function() { return this.popupConfig; }; SGPBPopup.prototype.setUpPopupConfig = function() { var popupConfig = new PopupConfig(); this.setPopupConfig(popupConfig); }; SGPBPopup.createPopupObjById = function(popupId) { var options = SGPBPopup.getPopupOptionsById(popupId); if (!options) { return false; } var popupObj = new SGPBPopup(); popupObj.setPopupId(popupId); popupObj.setPopupData(options); return popupObj; }; SGPBPopup.getPopupOptionsById = function(popupId) { var popupDataDiv = jQuery('#sg-popup-content-wrapper-'+popupId); if (!popupDataDiv.length) { return false; } var options = popupDataDiv.attr('data-options'); return SGPBPopup.unserialize(options); }; SGPBPopup.prototype.getCompatibleZiIndex = function(popupZIndex) { /*2147483647 it's maximal z index value*/ if (popupZIndex > 2147483647) { return 2147483627; } return popupZIndex; }; SGPBPopup.prototype.prepareOpen = function() { var popupId = this.getPopupId(); var popupData = this.getPopupData(); var popupZIndex = this.getCompatibleZiIndex(popupData['sgpb-popup-z-index']); var popupType = this.popupData['sgpb-type']; this.setUpPopupConfig(); var that = this; var popupConfig = this.getPopupConfig(); function decodeEntities(encodedString) { if (typeof encodedString == 'undefined') { return ''; } var suspiciousStrings = ['document.createElement', 'createElement', 'String.fromCharCode', 'fromCharCode']; for (var i in suspiciousStrings) { if (encodedString.indexOf(suspiciousStrings[i]) > 0) { return ''; } } var textArea = document.createElement('textarea'); textArea.innerHTML = encodedString; return textArea.value; } popupConfig.customShouldOpen = function() { var instructions = popupData['sgpb-ShouldOpen']; instructions = decodeEntities(instructions); var F = new Function (instructions); return(F()); }; popupConfig.customShouldClose = function() { var instructions = popupData['sgpb-ShouldClose']; instructions = decodeEntities(instructions); var F = new Function (instructions); return(F()); }; this.setPopupDimensions(); if (popupData['sgpb-disable-popup-closing'] == 'on') { popupData['sgpb-enable-close-button'] = ''; popupData['sgpb-esc-key'] = ''; popupData['sgpb-overlay-click'] = ''; } /*used in the analytics*/ popupData['eventName'] = this.eventName; if (SGPBPopup.varToBool(popupData['sgpb-enable-close-button'])) { popupConfig.magicCall('setCloseButtonDelay', parseInt(popupData['sgpb-close-button-delay'])); } popupConfig.magicCall('setShowButton', SGPBPopup.varToBool(popupData['sgpb-enable-close-button'])); /* Convert seconds to micro seconds */ var openAnimationSpeed = parseFloat(popupData['sgpb-open-animation-speed'])*1000; var closeAnimationSpeed = parseFloat(popupData['sgpb-close-animation-speed'])*1000; popupConfig.magicCall('setOpenAnimationEffect', popupData['sgpb-open-animation-effect']); popupConfig.magicCall('setCloseAnimationEffect', popupData['sgpb-close-animation-effect']); popupConfig.magicCall('setOpenAnimationSpeed', openAnimationSpeed); popupConfig.magicCall('setCloseAnimationSpeed', closeAnimationSpeed); popupConfig.magicCall('setOpenAnimationStatus', popupData['sgpb-open-animation']); popupConfig.magicCall('setCloseAnimationStatus', popupData['sgpb-close-animation']); popupConfig.magicCall('setContentPadding', popupData['sgpb-content-padding']); if (typeof SgpbRecentSalesPopupType != 'undefined') { if (popupType == SgpbRecentSalesPopupType) { /* set max z index for recent sales popup */ popupZIndex = 2147483647; popupConfig.magicCall('setCloseAnimationEffect', 'fade'); popupConfig.magicCall('setCloseAnimationSpeed', 1000); popupConfig.magicCall('setCloseAnimationStatus', 'on'); } } popupConfig.magicCall('setZIndex', popupZIndex); popupConfig.magicCall('setCloseButtonWidth', popupData['sgpb-button-image-width']); popupConfig.magicCall('setCloseButtonHeight', popupData['sgpb-button-image-height']); popupConfig.magicCall('setPopupId', popupId); popupConfig.magicCall('setPopupData', popupData); popupConfig.magicCall('setAllowed', !SGPBPopup.varToBool(popupData['sgpb-disable-popup-closing'])); if (popupData['sgpb-type'] == SGPB_POPUP_PARAMS.popupTypeAgeRestriction) { popupConfig.magicCall('setAllowed', false); } popupConfig.magicCall('setEscShouldClose', SGPBPopup.varToBool(popupData['sgpb-esc-key'])); popupConfig.magicCall('setOverlayShouldClose', SGPBPopup.varToBool(popupData['sgpb-overlay-click'])); popupConfig.magicCall('setScrollingEnabled', SGPBPopup.varToBool(popupData['sgpb-enable-content-scrolling'])); if (SGPBPopup.varToBool(popupData['sgpb-content-click'])) { this.contentCloseBehavior(); } sgAddEvent(window, 'sgpbWillOpen', function(e) { if (popupId != e.detail.popupId || e.detail.popupData['sgpb-content-click'] == 'undefined') { return false; } /* triggering any popup content click (analytics) */ that.popupContentClick(e); }); if (SGPBPopup.varToBool(popupData['sgpb-popup-fixed'])) { this.addFixedPosition(); } /*ThemeCreator*/ this.themeCreator(); this.themeCustomizations(); popupConfig.magicCall('setContents', document.getElementById('sg-popup-content-wrapper-'+popupId)); popupConfig.magicCall('setPopupType', popupType); this.setPopupConfig(popupConfig); this.popupTriggeringListeners(); /* check popup type, then check if popup can be opened by popup type */ var allowToOpen = this.checkCurrentPopupType(); if (allowToOpen) { this.open(); } }; SGPBPopup.prototype.popupContentClick = function(e) { var args = e.detail; var popupId = parseInt(args['popupId']); jQuery('.sgpb-content-' + popupId).on('click', function(event) { var settings = { popupId: popupId, eventName: 'sgpbPopupContentclick' }; jQuery(window).trigger('sgpbPopupContentclick', settings); }); }; SGPBPopup.prototype.forceCheckCurrentPopupType = function(popupObj) { var allowToOpen = true; var popupConfig = new PopupConfig(); var className = popupObj.popupData['sgpb-type']; if (typeof className == 'undefined' || className == 'undefined') { return false; } if (typeof SGPB_POPUP_PARAMS.conditionalJsClasses != 'undefined' && SGPB_POPUP_PARAMS.conditionalJsClasses.length) { var isAllowConditions = this.forceIsAllowJsConditions(popupObj); if (!isAllowConditions) { return false; } } var popupConfig = new PopupConfig(); var className = this.popupData['sgpb-type']; /* make the first letter of a string uppercase, then concat prefix (uppercase all prefix string) */ className = popupConfig.prefix.toUpperCase() + PopupConfig.firstToUpperCase(className); /* hasOwnProperty returns boolean value */ if (window.hasOwnProperty(className)) { className = eval(className); /* create current popup type object */ var obj = new className; /* call allowToOpen function if exists */ if (typeof obj.allowToOpen === 'function') { allowToOpen = obj.allowToOpen(this.id); if (!allowToOpen) { isAllow = allowToOpen; } } } var allowToOpen = this.checkCurrentPopupType(); if (!allowToOpen) { return false; } return allowToOpen; }; SGPBPopup.prototype.checkCurrentPopupType = function() { var allowToOpen = true; var popupConfig = new PopupConfig(); var isPreview = parseInt(this.popupData['sgpb-is-preview']); if (!isNaN(isPreview) && isPreview == 1) { return allowToOpen; } var popupHasLimit = this.isSatistfyForShowingLimitation(this.popupData); if (!popupHasLimit) { return false; } var dontShowPopupCookieName = 'sgDontShowPopup' + this.popupData['sgpb-post-id']; var dontShowPopup = SGPopup.getCookie(dontShowPopupCookieName); if (dontShowPopup != '') { return false; } var className = this.popupData['sgpb-type']; if (typeof className == 'undefined' || className == 'undefined') { return false; } if (typeof SGPB_POPUP_PARAMS.conditionalJsClasses != 'undefined' && SGPB_POPUP_PARAMS.conditionalJsClasses.length) { var isAllowConditions = this.isAllowJsConditions(); if (!isAllowConditions) { return false; } } /* make the first letter of a string uppercase, then concat prefix (uppercase all prefix string) */ className = popupConfig.prefix.toUpperCase() + PopupConfig.firstToUpperCase(className); /* hasOwnProperty returns boolean value */ if (window.hasOwnProperty(className)) { className = eval(className); /* create current popup type object */ var obj = new className; /* call allowToOpen function if exists */ if (typeof obj.allowToOpen === 'function') { allowToOpen = obj.allowToOpen(this.id); } } return allowToOpen; }; SGPBPopup.prototype.forceIsAllowJsConditions = function(popupObj) { var conditions = SGPB_POPUP_PARAMS.conditionalJsClasses; var isAllow = true; for (var i in conditions) { if (!conditions.hasOwnProperty(i)) { break; } try { var className = eval(conditions[i]); } catch (e) { continue; } var obj = new className; /* call allowToOpen function if exists */ if (typeof obj.forceAllowToOpen === 'function') { var popupData = this.getPopupData(); var allowToOpen = obj.forceAllowToOpen(popupObj.id, popupObj); if (!allowToOpen) { isAllow = allowToOpen; break; } } } return isAllow; }; SGPBPopup.prototype.isAllowJsConditions = function() { var conditions = SGPB_POPUP_PARAMS.conditionalJsClasses; var isAllow = true; for (var i in conditions) { if (!conditions.hasOwnProperty(i)) { break; } try { var className = eval(conditions[i]); } catch (e) { continue; } var obj = new className; /* call allowToOpen function if exists */ if (typeof obj.allowToOpen === 'function') { var allowToOpen = obj.allowToOpen(this.id, this); if (!allowToOpen) { isAllow = allowToOpen; break; } } } return isAllow; }; SGPBPopup.prototype.setPopupLimitationCookie = function(popupData) { var cookieData = this.getPopupShowLimitationCookie(popupData); var cookie = cookieData.cookie || {}; var openingCount = cookie.openingCount || 0; var currentUrl = window.location.href; if (!popupData['sgpb-show-popup-same-user-page-level']) { currentUrl = ''; } cookie.openingCount = openingCount + 1; cookie.openingPage = currentUrl; var popupShowingLimitExpiry = parseInt(popupData['sgpb-show-popup-same-user-expiry']); SGPBPopup.setCookie(cookieData.cookieName, JSON.stringify(cookie), popupShowingLimitExpiry, currentUrl); }; SGPBPopup.prototype.isSatistfyForShowingLimitation = function(popupData) { /*enable||disable*/ var popupLimitation = popupData['sgpb-show-popup-same-user']; /*if this option unchecked popup must be show*/ if (!popupLimitation) { return true; } var cookieData = this.getPopupShowLimitationCookie(popupData); /*when there is not*/ if (!cookieData.cookie) { return true; } return popupData['sgpb-show-popup-same-user-count'] > cookieData.cookie.openingCount; }; SGPBPopup.prototype.getPopupShowLimitationCookie = function(popupData) { var savedCookie = this.getPopupShowLimitationCookieDetails(popupData); var savedCookie = this.filterPopupLimitationCookie(savedCookie); return savedCookie; }; SGPBPopup.prototype.filterPopupLimitationCookie = function(cookie) { var result = {}; result.cookie = ''; if (cookie.isPageLevel) { result.cookieName = cookie.pageLevelCookieName; if (cookie.pageLevelCookie) { result.cookie = jQuery.parseJSON(cookie.pageLevelCookie); } SGPBPopup.deleteCookie(cookie.domainLevelCookieName); return result; } result.cookieName = cookie.domainLevelCookieName; if (cookie.domainLevelCookie) { result.cookie = jQuery.parseJSON(cookie.domainLevelCookie); } var currentUrl = window.location.href; SGPBPopup.deleteCookie(cookie.pageLevelCookieName, currentUrl); return result; }; SGPBPopup.prototype.getPopupShowLimitationCookieDetails = function(popupData) { var result = false; var currentUrl = window.location.href; var currentPopupId = popupData['sgpb-post-id']; /*Cookie names*/ var popupLimitationCookieHomePageLevelName = 'SGPBShowingLimitationHomePage' + currentPopupId; var popupLimitationCookiePageLevelName = 'SGPBShowingLimitationPage' + currentPopupId; var popupLimitationCookieDomainName = 'SGPBShowingLimitationDomain' + currentPopupId; var pageLevelCookie = popupData['sgpb-show-popup-same-user-page-level'] || false; /*check if current url is home page*/ if (currentUrl == SGPB_POPUP_PARAMS.homePageUrl) { popupLimitationCookiePageLevelName = popupLimitationCookieHomePageLevelName; } var popupLimitationPageLevelCookie = SGPopup.getCookie(popupLimitationCookiePageLevelName); var popupLimitationDomainCookie = SGPopup.getCookie(popupLimitationCookieDomainName); result = { 'pageLevelCookieName': popupLimitationCookiePageLevelName, 'domainLevelCookieName': popupLimitationCookieDomainName, 'pageLevelCookie': popupLimitationPageLevelCookie, 'domainLevelCookie': popupLimitationDomainCookie, 'isPageLevel': pageLevelCookie }; return result; }; SGPBPopup.prototype.themeCreator = function() { var noPositionSelected = false; var popupData = this.getPopupData(); var popupId = this.getPopupId(); var popupConfig = this.getPopupConfig(); var forceRtlClass = ''; var forceRtl = SGPBPopup.varToBool(popupData['sgpb-force-rtl']); var popupTheme = popupData['sgpb-popup-themes']; var popupType = popupData['sgpb-type']; var closeButtonWidth = popupData['sgpb-button-image-width']; var closeButtonHeight = popupData['sgpb-button-image-height']; var contentPadding = parseInt(popupData['sgpb-content-padding']); /* close button position */ var top = parseInt(popupData['sgpb-button-position-top']); var right = parseInt(popupData['sgpb-button-position-right']); var bottom = parseInt(popupData['sgpb-button-position-bottom']); var left = parseInt(popupData['sgpb-button-position-left']); var contentClass = popupData['sgpb-content-custom-class']; /* for the 2-nd and 3-rd themes only */ var popupBorder = SGPBPopup.varToBool(popupData['sgpb-disable-border']); var closeButtonImage = popupConfig.closeButtonImage; var themeNumber = 1; var backgroundColor = 'black'; var borderColor = 'inherit'; var recentSalesPopup = false; if (typeof SgpbRecentSalesPopupType != 'undefined') { if (popupType == SgpbRecentSalesPopupType) { recentSalesPopup = true; popupTheme = 'sgpb-theme-2'; closeButtonPosition = 'topRight'; backgroundColor = 'white'; borderColor = '#ececec'; top = '-10'; right = '-10'; popupConfig.magicCall('setShadowSpread', 1); popupConfig.magicCall('setContentShadowBlur', 5); popupConfig.magicCall('setOverlayVisible', false); popupConfig.magicCall('setContentShadowColor', '#000000b3'); popupConfig.magicCall('setContentBorderRadius', '5px'); } } var themeIndexNum = popupTheme[popupTheme.length -1]; if (isNaN(top)) { top = this.closeButtonDefaultPositions[themeIndexNum].top; } if (isNaN(right)) { right = this.closeButtonDefaultPositions[themeIndexNum].right; } if (isNaN(bottom)) { bottom = this.closeButtonDefaultPositions[themeIndexNum].bottom; } if (isNaN(left)) { left = this.closeButtonDefaultPositions[themeIndexNum].left; } if (forceRtl) { forceRtlClass = ' sgpb-popup-content-direction-right'; } if (popupData['sgpb-type'] == 'countdown') { popupConfig.magicCall('setMinWidth', 300); } popupConfig.magicCall('setContentPadding', contentPadding); popupConfig.magicCall('setOverlayAddClass', popupTheme+'-overlay sgpb-popup-overlay-' + popupId); popupConfig.magicCall('setContentAddClass', 'sgpb-content sgpb-content-'+popupId+' ' + popupTheme+'-content ' + contentClass + forceRtlClass); if (typeof popupData['sgpb-close-button-position'] == 'undefined' || popupData['sgpb-close-button-position'] == '') { /* * in the old version we don't have close button position option * and if noPositionSelected is true, the popup was not edited */ var noPositionSelected = true; } else { var closeButtonPosition = popupData['sgpb-close-button-position']; popupConfig.magicCall('setButtonPosition', closeButtonPosition); } if (popupTheme == 'sgpb-theme-1') { themeNumber = 1; popupConfig.magicCall('setShadowSpread', 14); /* 9px theme default close button position for all cases */ if (noPositionSelected || closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } else { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } } else if (popupTheme == 'sgpb-theme-2') { themeNumber = 2; popupConfig.magicCall('setButtonInside', false); popupConfig.magicCall('setContentBorderWidth', 1); popupConfig.magicCall('setContentBackgroundColor', backgroundColor); popupConfig.magicCall('setContentBorderColor', borderColor); popupConfig.magicCall('setOverlayColor', 'white'); var rightPosition = '0'; var topPosition = '-' + closeButtonHeight + 'px'; if (recentSalesPopup) { rightPosition = '-' + (closeButtonWidth / 2) + 'px'; topPosition = '-' + (closeButtonHeight / 2) + 'px'; themeNumber = 6; } if (noPositionSelected || closeButtonPosition == 'topRight') { /* this theme has 1px border */ popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else { if (closeButtonPosition == 'topLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else if (closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } else if (closeButtonPosition == 'bottomLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } } if (popupBorder) { popupConfig.magicCall('setContentBorderWidth', 0); } } else if (popupTheme == 'sgpb-theme-3') { themeNumber = 3; popupConfig.magicCall('setContentBorderWidth', 5); popupConfig.magicCall('setContentBorderRadius', popupData['sgpb-border-radius']); popupConfig.magicCall('setContentBorderRadiusType', popupData['sgpb-border-radius-type']); popupConfig.magicCall('setContentBorderColor', popupData['sgpb-border-color']); var closeButtonPositionPx = '4px'; if (popupBorder) { popupConfig.magicCall('setContentBorderWidth', 0); closeButtonPositionPx = '0px'; } if (noPositionSelected) { popupConfig.magicCall('setCloseButtonWidth', 38); popupConfig.magicCall('setCloseButtonHeight', 19); popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else { if (closeButtonPosition == 'topRight') { popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else if (closeButtonPosition == 'topLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else if (closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionLeft', right+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } else if (closeButtonPosition == 'bottomLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } } } else if (popupTheme == 'sgpb-theme-4') { /* in theme-4 close button type is button,not image, * then set type to button, default is image and * set text */ themeNumber = 4; popupConfig.magicCall('setButtonImage', popupData['sgpb-button-text']); popupConfig.magicCall('setCloseButtonType', 'button'); popupConfig.magicCall('setCloseButtonText', popupData['sgpb-button-text']); popupConfig.magicCall('setContentBorderWidth', 0); popupConfig.magicCall('setContentBackgroundColor', 'white'); popupConfig.magicCall('setContentBorderColor', 'white'); popupConfig.magicCall('setOverlayColor', 'white'); popupConfig.magicCall('setShadowSpread', 4); popupConfig.magicCall('setContentShadowBlur', 8); /* 8px/12px theme default close button position for all cases */ if (noPositionSelected || closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } else { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } } else if (popupTheme == 'sgpb-theme-5') { themeNumber = 5; popupConfig.magicCall('setBoxBorderWidth', 10); popupConfig.magicCall('setContentBorderColor', '#4B4B4B'); if (noPositionSelected || closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } else { popupConfig.magicCall('setCloseButtonPositionLeft', left+'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom+'px'); } } else if (popupTheme == 'sgpb-theme-6') { themeNumber = 6; popupConfig.magicCall('setButtonInside', false); popupConfig.magicCall('setContentBorderRadius', 7); popupConfig.magicCall('setContentBorderRadiusType', 'px'); if (noPositionSelected) { popupConfig.magicCall('setCloseButtonWidth', 37); popupConfig.magicCall('setCloseButtonHeight', 37); popupConfig.magicCall('setCloseButtonPositionRight', right+'px'); popupConfig.magicCall('setCloseButtonPositionTop', top+'px'); } else { if (typeof popupData['sgpb-button-position-right'] == 'undefined') { right = '-' + (closeButtonWidth / 2); top = '-' + (closeButtonHeight / 2); left = '-' + (closeButtonWidth / 2); bottom = '-' + (closeButtonHeight / 2); } if (closeButtonPosition == 'topRight') { popupConfig.magicCall('setCloseButtonPositionRight', right + 'px'); popupConfig.magicCall('setCloseButtonPositionTop', top + 'px'); } else if (closeButtonPosition == 'topLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left + 'px'); popupConfig.magicCall('setCloseButtonPositionTop', top + 'px'); } else if (closeButtonPosition == 'bottomRight') { popupConfig.magicCall('setCloseButtonPositionRight', right + 'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom + 'px'); } else if (closeButtonPosition == 'bottomLeft') { popupConfig.magicCall('setCloseButtonPositionLeft', left + 'px'); popupConfig.magicCall('setCloseButtonPositionBottom', bottom + 'px'); } } } popupConfig.magicCall('setPopupTheme', themeNumber); if (!popupData['sgpb-button-image']) { closeButtonImage = SGPB_POPUP_PARAMS.defaultThemeImages[themeNumber]; if (typeof closeButtonImage != 'undefined') { popupConfig.magicCall('setButtonImage', closeButtonImage); } } else { popupConfig.magicCall('setButtonImage', 'data:image/png;base64,'+popupData['sgpb-button-image-data']); if (popupData['sgpb-button-image-data'] == '' || popupData['sgpb-button-image-data'].indexOf('http') != -1) { popupConfig.magicCall('setButtonImage', popupData['sgpb-button-image']); } } }; SGPBPopup.prototype.themeCustomizations = function() { var popupId = this.getPopupId(); var popupData = this.getPopupData(); var popupConfig = this.getPopupConfig(); var contentOpacity = popupData['sgpb-content-opacity']; var contentBgColor = popupData['sgpb-background-color']; if (popupData['sgpb-background-image-data']) { var contentBgImage = 'data:image/png;base64,'+popupData['sgpb-background-image-data']; } else { var contentBgImage = popupData['sgpb-background-image']; } var showContentBackground = popupData['sgpb-show-background']; var contentBgImageMode = popupData['sgpb-background-image-mode']; var overlayColor = popupData['sgpb-overlay-color']; var popupTheme = popupData['sgpb-popup-themes']; var popupType = popupData['sgpb-type']; if (typeof popupData['sgpb-overlay-custom-class'] == 'undefined') { popupData['sgpb-overlay-custom-class'] = 'sgpb-popup-overlay'; } if (typeof popupData['sgpb-popup-themes'] == 'undefined') { popupTheme = 'sgpb-theme-2'; } if (typeof showContentBackground == 'undefined') { contentBgColor = ''; contentBgImage = ''; contentBgImageMode = ''; } if (typeof SgpbRecentSalesPopupType != 'undefined') { if (popupType == SgpbRecentSalesPopupType) { showContentBackground = 'on'; contentBgColor = popupData['sgpb-background-color']; contentOpacity = popupData['sgpb-content-opacity']; } } if (contentOpacity) { popupConfig.magicCall('setContentBackgroundOpacity', contentOpacity); } if (contentBgImageMode) { popupConfig.magicCall('setContentBackgroundMode', contentBgImageMode); } if (contentBgImage) { popupConfig.magicCall('setContentBackgroundImage', contentBgImage); } if (contentBgColor) { contentBgColor = SGPBPopup.hexToRgba(contentBgColor, contentOpacity); popupConfig.magicCall('setContentBackgroundColor', contentBgColor); } if (overlayColor) { popupConfig.magicCall('setOverlayColor', overlayColor); } var overlayClasses = popupTheme+'-overlay sgpb-popup-overlay-'+popupId; if (SGPB_JS_PACKAGES.extensions['advanced-closing']) { if (typeof popupData['sgpb-enable-popup-overlay'] != 'undefined' && popupData['sgpb-enable-popup-overlay'] == 'on') { popupData['sgpb-enable-popup-overlay'] = true; } else if (typeof popupData['sgpb-enable-popup-overlay'] == 'undefined') { popupData['sgpb-enable-popup-overlay'] = false; } } else { popupData['sgpb-enable-popup-overlay'] = true; } popupConfig.magicCall('setOverlayVisible', SGPBPopup.varToBool(popupData['sgpb-enable-popup-overlay'])); if (typeof SgpbRecentSalesPopupType != 'undefined') { popupConfig.magicCall('setOverlayVisible', false); } if (SGPBPopup.varToBool(popupData['sgpb-enable-popup-overlay'])) { popupConfig.magicCall('setOverlayAddClass', overlayClasses + ' ' + popupData['sgpb-overlay-custom-class']); var overlayOpacity = popupData['sgpb-overlay-opacity'] || 0.8; popupConfig.magicCall('setOverlayOpacity', overlayOpacity * 100); } }; SGPBPopup.prototype.formSubmissionDetection = function(args) { if (args.length) { return false; } var popupId = args.popupId; var options = SGPBPopup.getPopupOptionsById(popupId); if (!options['sgpb-reopen-after-form-submission']) { return false; } jQuery('.sgpb-popup-builder-content-' + popupId + ' form').submit(function() { SGPBPopup.setCookie('SGPBSubmissionReloadPopup', popupId); }); }; SGPBPopup.prototype.htmlIframeFilterForOpen = function(popupId, popupEventName) { var popupContent = jQuery('.sgpb-content-' + popupId); if (!popupContent.length) { return false; } popupContent.find('iframe').each(function() { if (popupEventName != 'open') { /* for do not affect facebook type buttons iframe only */ if (jQuery(this).closest('.fb_iframe_widget').length) { return true; } /*close*/ if (typeof jQuery(this).attr('data-attr-src') == 'undefined') { var src = jQuery(this).attr('src'); if (src != '') { jQuery(this).attr('data-attr-src', src); jQuery(this).attr('src', ''); } return true; } else { var src = jQuery(this).attr('src'); if (src != '') { jQuery(this).attr('data-attr-src', src); jQuery(this).attr('src', ''); } return true; } } else { /*open*/ if (typeof jQuery(this).attr('data-attr-src') == 'undefined') { var src = jQuery(this).attr('src'); if (src != '') { jQuery(this).attr('data-attr-src', src); } return true; } else { var src = jQuery(this).attr('data-attr-src'); if (src != '') { jQuery(this).attr('src', src); jQuery(this).attr('data-attr-src', src); } return true; } } }); }; SGPBPopup.prototype.iframeSizesInHtml = function(args) { var popupId = args['popupId']; var popupOptions = args.popupData; var popupContent = jQuery('.sgpb-content-' + popupId); if (!popupContent.length) { return false; } popupContent.find('iframe').each(function() { if (typeof jQuery(this) == 'undefined') { return false; } if (popupOptions['sgpb-popup-dimension-mode'] == 'customMode') { if (typeof jQuery(this).attr('width') == 'undefined' && typeof popupContent.attr('height') == 'undefined') { jQuery(this).css({'width': popupOptions['sgpb-width'], 'height': popupOptions['sgpb-height']}); } } }); }; SGPBPopup.prototype.getSearchDataFromContent = function(content) { var pattern = /\[(\[?)(pbvariable)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]\*+(?:\[(?!\/\2\])[^\[]\*+)\*+)\[\/\2\])?)(\]?)/gi; var match; var collectedData = []; while (match = pattern.exec(content)) { var currentSearchData = []; var attributes; var attributesKeyValue = []; var parseAttributes = /\s(\w+?)="(.+?)"/g; currentSearchData['replaceString'] = this.htmlDecode(match[0]); while (attributes = parseAttributes.exec(match[3])) { attributesKeyValue[attributes[1]] = this.htmlDecode(attributes[2]); } currentSearchData['searchData'] = attributesKeyValue; collectedData.push(currentSearchData); } return collectedData; }; SGPBPopup.prototype.replaceWithCustomShortcode = function(popupId) { var currentHtmlContent = jQuery('.sgpb-content-'+popupId).html(); var searchData = this.getSearchDataFromContent(currentHtmlContent); var that = this; if (!searchData.length) { return false; } for (var index in searchData) { var currentSearchData = searchData[index]; var searchAttributes = currentSearchData['searchData']; if (typeof searchAttributes['selector'] == 'undefined' || typeof searchAttributes['attribute'] == 'undefined') { that.replaceShortCode(currentSearchData['replaceString'], '', popupId); continue; } try { if (!jQuery(searchAttributes['selector']).length) { that.replaceShortCode(currentSearchData['replaceString'], '', popupId); continue; } } catch (e) { that.replaceShortCode(currentSearchData['replaceString'], '', popupId); continue; } if (searchAttributes['attribute'] == 'text') { var replaceName = jQuery(searchAttributes['selector']).text(); } else { var replaceName = jQuery(searchAttributes['selector']).attr(searchAttributes['attribute']); } if (typeof replaceName == 'undefined') { that.replaceShortCode(currentSearchData['replaceString'], '', popupId); continue; } that.replaceShortCode(currentSearchData['replaceString'], replaceName, popupId); } }; SGPBPopup.prototype.replaceShortCode = function(shortCode, replaceText, popupId) { var popupId = parseInt(popupId); if (!popupId) { return false; } var popupContentWrapper = jQuery('.sgpb-content-' + popupId); if (!popupContentWrapper.length) { return false; } popupContentWrapper.find('div').each(function() { var currentHtmlContent = jQuery(this).contents(); if (!currentHtmlContent.length) { return false; } currentHtmlContent.html(function(i, v) { if (typeof v != 'undefined') { return v.replace(shortCode, replaceText); } }); }); return true; }; SGPBPopup.prototype.popupTriggeringListeners = function() { var that = this; var popupData = this.getPopupData(); var popupConfig = this.getPopupConfig(); sgAddEvent(window, 'sgpbDidOpen', function(e) { var args = e.detail; that.iframeSizesInHtml(args); that.formSubmissionDetection(args); var popupOptions = args.popupData; var closeButtonDelay = parseInt(popupOptions['sgpb-close-button-delay']); if (closeButtonDelay) { that.closeButtonDisplay(popupOptions['sgpb-post-id'], 'show', closeButtonDelay); } var disablePageScrolling = popupOptions['sgpb-disable-page-scrolling']; if (popupOptions['sgpb-overlay-color']) { jQuery('.sgpb-theme-1-overlay').css({'background-image': 'none'}); } if (SGPBPopup.varToBool(disablePageScrolling)) { jQuery('html').addClass('sgpb-overflow-hidden'); jQuery('body').addClass('sgpb-overflow-hidden-body'); } }); sgAddEvent(window, 'sgpbWillOpen', function(e) { var args = e.detail; var popupId = parseInt(args['popupId']); that.htmlIframeFilterForOpen(args.popupId, 'open'); that.replaceWithCustomShortcode(popupId); that.sgpbDontShowPopup(popupId); var closeButtonDelay = parseInt(popupData['sgpb-close-button-delay']); if (closeButtonDelay) { that.closeButtonDisplay(popupData['sgpb-post-id'], 'hide'); } /* extra checker for analytics */ var settings = { popupId: popupData['sgpb-post-id'], disabledAnalytics: popupData['sgpb-popup-counting-disabled'], disabledInGeneral: SGPB_POPUP_PARAMS.disableAnalyticsGeneral }; jQuery(window).trigger('sgpbDisableAnalytics', settings); }); sgAddEvent(window, 'sgpbShouldClose', function(e) { }); sgAddEvent(window, 'sgpbWillClose', function(e) { var args = e.detail; SGPBPopup.offPopup(e.detail.currentObj); }); }; SGPBPopup.prototype.sgpbDontShowPopup = function(popupId) { var dontShowPopup = jQuery('.sgpb-content-' + popupId).parent().find('[class*="sg-popup-dont-show"]'); if (!dontShowPopup.length) { return false; } dontShowPopup.each(function() { jQuery(this).bind('click', function(e) { e.preventDefault(); var expireTime = SGPB_POPUP_PARAMS.dontShowPopupExpireTime; var cookieName = 'sgDontShowPopup' + popupId; var classNameSearch = jQuery(this).attr('class').match(/sg-popup-dont-show/); var className = classNameSearch['input']; var customExpireTime = className.match(/sg-popup-dont-show-(\d+$)/); if (customExpireTime) { expireTime = parseInt(customExpireTime[1]); } SGPBPopup.setCookie(cookieName, expireTime, expireTime); SGPBPopup.closePopupById(popupId); }); }); }; SGPBPopup.prototype.addToCounter = function(popupOptions) { if (SGPB_POPUP_PARAMS.isPreview || (typeof popupOptions['sgpb-popup-counting-disabled'] != 'undefined')) { return false; } var that = this; var openedPopups = window.sgpbOpenedPopup || {}; var popupId = parseInt(popupOptions['sgpb-post-id']); if (typeof openedPopups[popupId] == 'undefined') { openedPopups[popupId] = 1; } else { openedPopups[popupId] += 1; } window.sgpbOpenedPopup = openedPopups; }; /* * closeButtonDisplay() * close or hide close button * @param popupId * @param display * @param delay */ SGPBPopup.prototype.closeButtonDisplay = function(popupId, display, delay) { if (display == 'show') { setTimeout(function() { jQuery('.sgpb-content-' + popupId).prev().show(); }, delay * 1000 /* received values covert to milliseconds */ ); } else if (display == 'hide') { jQuery('.sgpb-content-' + popupId).prev().hide(); } }; SGPBPopup.prototype.open = function(args) { var customEvent = this.customEvent; var config = this.getPopupConfig(); var popupId = this.getPopupId(); var eventName = this.eventName; if (typeof window.sgPopupBuilder == 'undefined') { window.sgPopupBuilder = []; } var popupData = SGPBPopup.getPopupWindowDataById(popupId); if (!popupData) { window.SGPB_ORDER += 1; var currentObj = { 'eventName': eventName, 'popupId': popupId, 'order': window.SGPB_ORDER, 'isOpen': true, 'sgpbPopupObj': this }; config.currentObj = currentObj; var popupConfig = config.combineConfigObj(); var popup = new SGPopup(popupConfig); currentObj.popup = popup; window.sgPopupBuilder.push(currentObj); } else { popup = popupData['popup']; popupData['isOpen'] = true; } if (typeof args != 'undefined' && !args['countPopupOpen']) { /* don't allow to count popup opening */ this.setCountPopupOpen(false); } popup.customEvent = customEvent; popup.open(); this.setPopupObj(popup); /* contact form 7 form submission * TODO: this must be moved to a better place in the future * I'm leaving it here for now, since sgpbDidOpen() gets called way too much! */ var options = SGPBPopup.getPopupOptionsById(popupId); SgpbEventListener.CF7EventListener(popupId, options); if (typeof options['sgpb-behavior-after-special-events'] != 'undefined') { if (options['sgpb-behavior-after-special-events'].length) { options = options['sgpb-behavior-after-special-events'][0][0]; if (options['param'] == 'contact-form-7') { SgpbEventListener.processCF7MailSent(popupId, options); } } } }; SGPBPopup.varToBool = function(optionName) { var returnValue = optionName ? true : false; return returnValue; }; SGPBPopup.hexToRgba = function(hex, opacity) { var c; if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){ c = hex.substring(1).split(''); if (c.length == 3){ c= [c[0], c[0], c[1], c[1], c[2], c[2]]; } c = '0x'+c.join(''); return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+','+opacity+')'; } throw new Error('Bad Hex'); }; SGPBPopup.prototype.contentCopyToClick = function() { var popupData = this.getPopupData(); var popupId = this.getPopupId(); var tempInputId = 'content-copy-to-click-'+popupId; var value = this.htmlDecode(popupData['sgpb-copy-to-clipboard-text']); var tempInput = document.createElement("input"); tempInput.id = tempInputId; tempInput.value = value; tempInput.style = 'position: absolute; right: -10000px'; if (!document.getElementById(tempInputId)) { document.body.appendChild(tempInput); } tempInput.select(); document.execCommand("copy"); document.body.removeChild(tempInput); }; SGPBPopup.prototype.htmlDecode = function(value) { return jQuery('<textarea/>').html(value).text(); }; SGPBPopup.prototype.findTargetInsideExceptionsList = function(targetName, exceptionList) { var status = false; var popupContentMainDiv = document.getElementById('sgpb-popup-dialog-main-div'); while (targetName.parentNode) { targetName = targetName.parentNode; if (typeof targetName.tagName == 'undefined') { continue; } var tagName = targetName.tagName.toLowerCase(); if (targetName === popupContentMainDiv) { break; } if (exceptionList.indexOf(tagName) != -1) { status = true; break; } } return status; }; SGPBPopup.prototype.contentCloseBehavior = function() { var that = this; var popupData = this.getPopupData(); var popupId = this.getPopupId(); var redirectUrl = popupData['sgpb-click-redirect-to-url']; var contentClickBehavior = popupData['sgpb-content-click-behavior']; var redirectToNewTab = SGPBPopup.varToBool(popupData['sgpb-redirect-to-new-tab']); var closePopupAfterCopy = SGPBPopup.varToBool(popupData['sgpb-copy-to-clipboard-close-popup']); var clipboardAlert = SGPBPopup.varToBool(popupData['sgpb-copy-to-clipboard-alert']); var separators = ['&', '/&/g']; for (var i in separators) { redirectUrl = redirectUrl.split(separators[i]).join('&'); } sgAddEvent(window, 'sgpbDidOpen', function(e) { }); sgAddEvent(window, 'sgpbWillOpen', function(e) { if (popupId != e.detail.popupId || e.detail.popupData['sgpb-content-click'] == 'undefined') { return false; } if (contentClickBehavior == 'redirect') { jQuery('.sgpb-content-'+popupId).addClass('sgpb-cursor-pointer'); } jQuery('.sgpb-content-'+e.detail.popupId).on('click', function(event) { /* we need this settings in analytics */ var settings = { popupId: popupId, eventName: 'sgpbPopupContentClick' }; jQuery(window).trigger('sgpbPopupContentClick', settings); if (contentClickBehavior == 'redirect') { if (redirectToNewTab) { window.open(redirectUrl); SGPBPopup.closePopupById(that.getPopupId()); return; } window.location = redirectUrl; SGPBPopup.closePopupById(that.getPopupId()); } else if (contentClickBehavior == 'copy') { var exceptionList = ['input', 'textarea', 'select', 'button', 'a']; var targetName = event.target.tagName.toLowerCase(); var parentTagName = event.target.parentNode.tagName.toLowerCase(); var parentsIsInExceptionsList = that.findTargetInsideExceptionsList(event.target, exceptionList); /*for do not copy when user click to any input element*/ if (exceptionList.indexOf(targetName) == -1 && !parentsIsInExceptionsList) { that.contentCopyToClick(); if (closePopupAfterCopy) { SGPBPopup.closePopupById(that.getPopupId()); } if (clipboardAlert) { alert(popupData['sgpb-copy-to-clipboard-message']) } } } else if (popupData['sgpb-disable-popup-closing'] != 'on') { SGPBPopup.closePopupById(that.getPopupId()); } }); }); sgAddEvent(window, 'sgpbDidClose', function(e) { }); }; SGPBPopup.prototype.addFixedPosition = function() { var popupData = this.getPopupData(); var popupId = this.getPopupId(); var popupConfig = this.getPopupConfig(); var fixedPosition = popupData['sgpb-popup-fixed-position']; var positionRight = ''; var positionTop = ''; var positionBottom = ''; var positionLeft = ''; if (fixedPosition == 1) { positionTop = 40; positionLeft = 20; } else if (fixedPosition == 2) { positionLeft = 'center'; positionTop = 40; } else if (fixedPosition == 3) { positionTop = 40; positionRight = 20; } else if (fixedPosition == 4) { positionTop = 'center'; positionLeft = 20; } else if (fixedPosition == 6) { positionTop = 'center'; positionRight = 20; } else if (fixedPosition == 7) { positionLeft = 20; positionBottom = 2; } else if (fixedPosition == 8) { positionLeft = 'center'; positionBottom = 2; } else if (fixedPosition == 9) { positionRight = 20; positionBottom = 2; } if (typeof SgpbRecentSalesPopupType != 'undefined') { if (popupData['sgpb-type'] == SgpbRecentSalesPopupType) { if (positionTop != '') { positionTop = parseInt(positionTop+10); } else if (positionBottom != '') { positionBottom = parseInt(positionBottom+10); } } } popupConfig.magicCall('setPositionTop', positionTop); popupConfig.magicCall('setPositionRight', positionRight); popupConfig.magicCall('setPositionBottom', positionBottom); popupConfig.magicCall('setPositionLeft', positionLeft); }; SGPBPopup.prototype.setPopupDimensions = function() { var popupData = this.getPopupData(); var popupConfig = this.getPopupConfig(); var popupId = this.getPopupId(); var dimensionData = popupData['sgpb-popup-dimension-mode']; var maxWidth = popupData['sgpb-max-width']; var maxHeight = popupData['sgpb-max-height']; var minWidth = popupData['sgpb-min-width']; var minHeight = popupData['sgpb-min-height']; var contentPadding = popupData['sgpb-content-padding']; var popupType = popupData['sgpb-type']; popupConfig.magicCall('setMaxWidth', maxWidth); popupConfig.magicCall('setMaxHeight', maxHeight); popupConfig.magicCall('setMinWidth', minWidth); popupConfig.magicCall('setMinHeight', minHeight); if (popupType == 'image') { popupConfig.magicCall('setContentBackgroundImage', popupData['sgpb-image-url']); popupConfig.magicCall('setContentBackgroundMode', 'contain'); if (dimensionData == 'customMode') { popupConfig.magicCall('setContentBackgroundPosition', 'center center'); } } if (dimensionData == 'responsiveMode') { var dimensionMeasure = popupData['sgpb-responsive-dimension-measure']; /* for image popup type and responsive mode, set background image to fit */ if (popupType == 'image' && dimensionMeasure != 'fullScreen') { popupConfig.magicCall('setContentBackgroundMode', 'fit'); this.setMaxWidthForResponsiveImage(); } var popupConfig = this.getPopupConfig(); if (dimensionMeasure != 'auto') { popupConfig.magicCall('setWidth', dimensionMeasure+'%'); popupConfig.magicCall('setContentBackgroundPosition', 'center'); } else { var widthToSet = jQuery('.sgpb-popup-builder-content-'+popupId).width() + (contentPadding*2); if (isNaN(widthToSet)) { widthToSet = 'auto'; } else { popupConfig.magicCall('setContentBackgroundPosition', 'center center'); widthToSet += 'px'; } popupConfig.magicCall('setWidth', widthToSet); if (dimensionMeasure == 'fullScreen') { popupConfig.magicCall('setHeight', widthToSet); } } return popupConfig; } var popupWidth = popupData['sgpb-width']; var popupHeight = popupData['sgpb-height']; popupConfig.magicCall('setWidth', popupWidth); popupConfig.magicCall('setHeight', popupHeight); return popupConfig; }; SGPBPopup.prototype.setMaxWidthForResponsiveImage = function() { var popupData = this.getPopupData(); var popupConfig = this.getPopupConfig(); var dimensionMeasure = popupData['sgpb-responsive-dimension-measure']; if (dimensionMeasure != 'auto') { var maxWidth = popupData['sgpb-max-width']; if (maxWidth == '') { popupConfig.magicCall('setMaxWidth', dimensionMeasure+'%'); return true; } popupConfig.magicCall('setMaxWidth', dimensionMeasure+'%'); if (maxWidth.indexOf('%') != '-1') { if (parseInt(maxWidth) < dimensionMeasure) { popupConfig.magicCall('setMaxWidth', maxWidth); } } else { var responsiveMeasureInPx = (dimensionMeasure*window.innerWidth)/100; if (maxWidth < responsiveMeasureInPx) { popupConfig.magicCall('setMaxWidth', maxWidth); } } } }; SGPBPopup.b64DecodeUnicode = function(str) { var Base64 = { /* private property */ _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", /* public method for decoding */ decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output += String.fromCharCode(chr1); if (enc3 != 64) { output += String.fromCharCode(chr2); } if (enc4 != 64) { output += String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, /* private method for UTF-8 decoding */ _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } }; return Base64.decode(str); }; SGPBPopup.unserialize = function(data) { data = SGPBPopup.b64DecodeUnicode(data); var $global = (typeof window !== 'undefined' ? window : global); var utf8Overhead = function(str) { var s = str.length; for (var i = str.length - 1; i >= 0; i--) { var code = str.charCodeAt(i); if (code > 0x7f && code <= 0x7ff) { s++; } else if (code > 0x7ff && code <= 0xffff) { s += 2; } /* trail surrogate */ if (code >= 0xDC00 && code <= 0xDFFF) { i--; } } return s - 1; }; var error = function(type, msg, filename, line) { throw new $global[type](msg, filename, line); }; var readUntil = function(data, offset, stopchr) { var i = 2; var buf = []; var chr = data.slice(offset, offset + 1); while (chr !== stopchr) { if ((i + offset) > data.length) { error('Error', 'Invalid'); } buf.push(chr); chr = data.slice(offset + (i - 1), offset + i); i += 1; } return [buf.length, buf.join('')]; }; var readChrs = function(data, offset, length) { var i, chr, buf; buf = []; for (i = 0; i < length; i++) { chr = data.slice(offset + (i - 1), offset + i); buf.push(chr); length -= utf8Overhead(chr); } return [buf.length, buf.join('')]; }; function _unserialize(data, offset) { var dtype; var dataoffset; var keyandchrs; var keys; var contig; var length; var array; var readdata; var readData; var ccount; var stringlength; var i; var key; var kprops; var kchrs; var vprops; var vchrs; var value; var chrs = 0; var typeconvert = function(x) { return x }; if (!offset) { offset = 0 } dtype = (data.slice(offset, offset + 1)).toLowerCase(); dataoffset = offset + 2; switch (dtype) { case 'i': typeconvert = function(x) { return parseInt(x, 10); }; readData = readUntil(data, dataoffset, ';'); chrs = readData[0]; readdata = readData[1]; dataoffset += chrs + 1; break; case 'b': typeconvert = function(x) { return parseInt(x, 10) !== 0; }; readData = readUntil(data, dataoffset, ';'); chrs = readData[0]; readdata = readData[1]; dataoffset += chrs + 1; break; case 'd': typeconvert = function(x) { return parseFloat(x); }; readData = readUntil(data, dataoffset, ';'); chrs = readData[0]; readdata = readData[1]; dataoffset += chrs + 1; break; case 'n': readdata = null; break; case 's': ccount = readUntil(data, dataoffset, ':'); chrs = ccount[0]; stringlength = ccount[1]; dataoffset += chrs + 2; readData = readChrs(data, dataoffset + 1, parseInt(stringlength, 10)); chrs = readData[0]; readdata = readData[1]; dataoffset += chrs + 2; if (chrs !== parseInt(stringlength, 10) && chrs !== readdata.length) { error('SyntaxError', 'String length mismatch') } break; case 'a': readdata = {}; keyandchrs = readUntil(data, dataoffset, ':'); chrs = keyandchrs[0]; keys = keyandchrs[1]; dataoffset += chrs + 2; length = parseInt(keys, 10); contig = true; for (i = 0; i < length; i++) { kprops = _unserialize(data, dataoffset); kchrs = kprops[1]; key = kprops[2]; dataoffset += kchrs; vprops = _unserialize(data, dataoffset); vchrs = vprops[1]; value = vprops[2]; dataoffset += vchrs; if (key !== i) { contig = false; } readdata[key] = value; } if (contig) { array = new Array(length); for (i = 0; i < length; i++) { array[i] = readdata[i]; } readdata = array; } dataoffset += 1; break; default: error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype); break; } return [dtype, dataoffset - offset, typeconvert(readdata)] } return _unserialize((data + ''), 0)[2]; }; SGPBPopup.closePopup = function() { var popupObjs = window.sgPopupBuilder; var lastPopupObj = this.getLastPopup(); if (typeof lastPopupObj == 'undefined') { return false; } var popupId = lastPopupObj.popupId; SGPBPopup.closePopupById(popupId); }; SGPBPopup.closePopupById = function(popupId) { var popupObjs = window.sgPopupBuilder; if (!popupObjs.length) { return; } for (var i in popupObjs) { var currentObj = popupObjs[i]; if (currentObj.popupId == popupId) { var popupObj = popupObjs[i]['popup']; if (popupObj) { /*Send true argument to don’t count disable popup option*/ popupObj.close(true); } } } }; SGPBPopup.getPopupWindowDataById = function(popupId) { var popups = window.sgPopupBuilder; var popup = false; if (typeof popups == 'undefined' || !popups.length) { return popup; } for (var i in popups) { var popupData = popups[i]; if (popupData.popupId == popupId) { popup = popupData; break; } } return popup; }; SGPBPopup.findPopupObjById = function(popupId) { var popup = false; var popupData = SGPBPopup.getPopupWindowDataById(popupId); if (popupData) { popup = popupData['popup']; } return popup; }; SGPBPopup.getLastPopup = function() { var popups = window.sgPopupBuilder; var popup = false; if (!popups.length) { return popup; } var searchPopups = [].concat(popups); for (var i in searchPopups) { var popupData = searchPopups[i]; if (popupData.isOpen) { popup = popupData; break; } } return popup; }; SGPBPopup.offPopup = function(currentPopup) { var popups = window.sgPopupBuilder; if (!popups.length) { return false; } for (var i in popups) { var popupData = popups[i]; if (popupData.order == currentPopup.order && popupData.eventName == currentPopup.eventName) { popups[i]['isOpen'] = false; break; } } return true; }; SGPBPopup.capitalizeFirstLetter = function(string) { return string.charAt(0).toUpperCase() + string.slice(1); }; SGPBPopup.getParamFromUrl = function(param) { var url = window.location.href; param = param.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + param + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) { return null; } if (!results[2]) { return ''; } return decodeURIComponent(results[2].replace(/\+/g, " ")); }; /* * * SGPBPopup Cookies' settings * */ SGPBPopup.setCookie = function(cName, cValue, exDays, cPageLevel) { var sameSite = 'Lax'; var isPreview = SGPBPopup.getParamFromUrl('preview'); if (isPreview) { return false; } var expirationDate = new Date(); var cookiePageLevel = ''; var cookieExpirationData = 1; if (!exDays || isNaN(exDays)) { if (!exDays && exDays === 0) { exDays = 'session'; } else { exDays = 365*50; } } if (!Boolean(cPageLevel)) { cookiePageLevel = 'path=/;'; } if (exDays == 'session') { cookieExpirationData = 0; } else { expirationDate.setDate(parseInt(expirationDate.getDate() + parseInt(exDays))); cookieExpirationData = expirationDate.toUTCString(); } var expires = 'expires='+cookieExpirationData; if (exDays == -1) { expires = ''; } if (!cookieExpirationData) { expires = ''; } /* in IE there is no need to specify the path */ if (SGPBPopup.isIE()) { cookiePageLevel = ''; } var value = cValue+((exDays == null) ? ';' : '; '+expires+';'+cookiePageLevel+'; SameSite=' + sameSite); document.cookie = cName + '=' + value; }; SGPBPopup.isIE = function() { ua = navigator.userAgent; /* MSIE used to detect old browsers and Trident used to newer ones*/ var isIe = ua.indexOf('MSIE ') > -1 || ua.indexOf('Trident/') > -1; return isIe; }; SGPBPopup.getCookie = function(cName) { var name = cName + '='; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ''; }; /* * * Delete the cookie by expiring it * */ SGPBPopup.deleteCookie = function(cName, cPath) { if (!cPath) { cPath = 'path=/;'; } document.cookie = cName + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;' + cPath; }; /** * * @SgpbEventListener listen Events and call corresponding events * */ function SgpbEventListener() { this.evenets = null; this.popupObj = {}; } SgpbEventListener.inactivityIdicator = 0; SgpbEventListener.prototype.setEvents = function(events) { this.evenets = events; }; SgpbEventListener.prototype.getEvents = function() { return this.evenets; }; SgpbEventListener.prototype.setPopupObj = function(popupObj) { this.popupObj = popupObj; }; SgpbEventListener.prototype.getPopupObj = function() { return this.popupObj; }; SgpbEventListener.eventsListenerAfterDocumentReady = function() { window.SGPB_SOUND = []; sgAddEvent(window, 'sgpbDidOpen', function(e) { SGPBPopup.playMusic(e); }); sgAddEvent(window, 'sgpbDidClose', function(e) { var args = e.detail; var popupId = parseInt(args.popupId); if (typeof window.SGPB_SOUND[popupId] && window.SGPB_SOUND[popupId]) { window.SGPB_SOUND[popupId].pause(); delete window.SGPB_SOUND[popupId]; } }); }; SgpbEventListener.init = function() { SgpbEventListener.eventsListenerAfterDocumentReady(); var popupsData = jQuery('.sg-popup-builder-content'); if (!popupsData) { return ''; } var that = this; popupsData.each(function() { var popupObj = that.popupObjCreator(jQuery(this)); SGPBPopup.floatingButton(popupObj); }); }; SgpbEventListener.popupObjCreator = function(currentData) { var popupId = currentData.data('id'); var popupData = currentData.data('options'); var events = currentData.attr('data-events'); events = jQuery.parseJSON(events); SgpbEventListener.reopenAfterFormSubmission(popupData); var popupObj = new SGPBPopup(); popupObj.setPopupId(popupId); popupObj.setPopupData(popupData); for (var i in events) { var obj = new this; obj.setPopupObj(popupObj); obj.eventListener(events[i]); } return popupObj; }; SgpbEventListener.prototype.eventListener = function(eventData) { if (eventData == null) { return ''; } var event = ''; if (typeof eventData == 'string') { event = eventData; } else if (typeof eventData.param != 'undefined') { event = eventData.param; } if (!event) { return false; } var popupObj = this.getPopupObj(); var popupData = popupObj.getPopupData(); if (eventData.value == '') { eventData.value = popupData['sgpb-popup-delay']; } var eventName = SGPBPopup.capitalizeFirstLetter(event); eventName = 'sgpb'+eventName; popupObj.eventName = eventName; var allowToOpen = popupObj.forceCheckCurrentPopupType(popupObj); if (!allowToOpen) { return false; } try { eval('this.'+eventName)(this, eventData); } catch (err) { console.log(err) } }; SgpbEventListener.reopenAfterFormSubmission = function(eventData) { var popupId = SGPBPopup.getCookie('SGPBSubmissionReloadPopup'); popupId = parseInt(popupId); if (!popupId) { return false; } var popupObj = SGPBPopup.createPopupObjById(popupId); if (!popupObj) { return false; } var options = popupObj.getPopupData(); if (!options['sgpb-reopen-after-form-submission']) { return false; } popupObj.prepareOpen(); SGPBPopup.deleteCookie('SGPBSubmissionReloadPopup'); }; SgpbEventListener.prototype.sgpbLoad = function(listenerObj, eventData) { var timeout = parseInt(eventData.value); var popupObj = listenerObj.getPopupObj(); var popupOptions = popupObj.getPopupData(); timeout *= 1000; var timerId, repetitiveTimeout = null; /* same as checkCurrentPopupType(), but it fires ignoring any delay (etc. onload delay) */ popupObj.forceCheckCurrentPopupType(popupObj); var openOnLoadPopup = function() { setTimeout(function() { jQuery(window).trigger('sgpbLoadEvent', popupOptions); popupObj.prepareOpen(); }, timeout); }; sgAddEvent(window, 'load', openOnLoadPopup(timeout, popupObj)); sgAddEvent(window, 'sgpbDidOpen', function(e) { var args = e.detail; clearInterval(repetitiveTimeout); }); sgAddEvent(window, 'sgpbDidClose', function(e) { var args = e.detail; var options = popupObj.getPopupData(); if (SGPBPopup.varToBool(eventData['repetitive'])) { var intervalTime = parseInt(eventData['value'])*1000; repetitiveTimeout = setInterval(function() { popupObj.prepareOpen(); }, intervalTime); } }); }; SgpbEventListener.prototype.timerIncrement = function(listenerObj , idleInterval) { var lastActivity = SgpbEventListener.inactivityIdicator; if (lastActivity == 0) { clearInterval(idleInterval); listenerObj.getPopupObj().prepareOpen(); } SgpbEventListener.inactivityIdicator = 0; }; SgpbEventListener.prototype.sgpbInsideclick = function(listenerObj, eventData) { sgAddEvent(window, 'sgpbDidOpen', function(e) { var args = e.detail; var that = listenerObj; var popupObj = that.getPopupObj(); var popupId = parseInt(popupObj.id); var targetClick = jQuery('.sgpb-content .sgpb-popup-id-'+popupId); if (!targetClick.length) { return false; } targetClick.each(function() { jQuery(this).unbind('click').bind('click', function() { var dontCloseCurrentPopup = jQuery(this).attr('dontCloseCurrentPopup'); if (typeof dontCloseCurrentPopup == 'undefined' || dontCloseCurrentPopup != 'on') { SGPBPopup.closePopup(); } popupObj.prepareOpen(); }); }); }); }; SgpbEventListener.prototype.sgpbClick = function(listenerObj, eventData) { var that = listenerObj; var popupIds = []; var popupObj = that.getPopupObj(); var popupOptions = popupObj.getPopupData(); var popupId = parseInt(popupObj.id); popupIds.push(popupId); var mapId = listenerObj.filterPopupId(popupId); popupIds.push(mapId); if (jQuery.inArray(mapId, popupIds) === -1) { popupIds.push(mapId); } for(var key in popupIds) { var popupId = popupIds[key]; if (!popupIds.hasOwnProperty(key)) { return false; } var targetClick = jQuery('a[href*="#sg-popup-id-' + popupId + '"], .sg-popup-id-' + popupId + ', .sgpb-popup-id-' + popupId); if (typeof eventData.operator != 'undefined' && eventData.operator == 'clickActionCustomClass') { targetClick = jQuery('a[href*="#sg-popup-id-' + popupId + '"], .sg-popup-id-' + popupId + ', .sgpb-popup-id-' + popupId+', .'+eventData.value); } if (!targetClick.length) { continue; } var delay = parseInt(popupOptions['sgpb-popup-delay']) * 1000; var clickCount = 1; targetClick.each(function() { if (!jQuery(this).attr('data-popup-id')) { jQuery(this).attr('data-popup-id', popupId); } var currentTarget = jQuery(this); currentTarget.bind('click', function(e) { if (clickCount > 1) { return true; } var allowToOpen = popupObj.forceCheckCurrentPopupType(popupObj); if (!allowToOpen) { return true; } ++clickCount; jQuery(window).trigger('sgpbClickEvent', popupOptions); var popupId = jQuery(this).data('popup-id'); setTimeout(function() { var popupObj = SGPBPopup.createPopupObjById(popupId); if (!popupObj) { var mapId = listenerObj.filterPopupId(popupId); popupObj = SGPBPopup.createPopupObjById(mapId); } popupObj.customEvent = 'Click'; popupObj.prepareOpen(); clickCount = 1; }, delay); return false; }); }); } }; SgpbEventListener.prototype.sgpbHover = function(listenerObj, eventData) { var that = listenerObj; var popupObj = that.getPopupObj(); if (!popupObj) { return false; } var popupIds = []; var popupOptions = popupObj.getPopupData(); var popupId = parseInt(popupObj.id); popupIds.push(popupId); var mapId = listenerObj.filterPopupId(popupId); if (jQuery.inArray(mapId, popupIds) === -1) { popupIds.push(mapId); } for(var key in popupIds) { var popupId = popupIds[key]; if (!popupIds.hasOwnProperty(key)) { return false; } var hoverSelector = jQuery('.sg-popup-hover-' + popupId + ', .sgpb-popup-id-' + popupId + '[data-popup-event="hover"]'); if (typeof eventData.operator != 'undefined' && eventData.operator == 'hoverActionCustomClass') { hoverSelector = jQuery('.sg-popup-hover-' + popupId + ', .sgpb-popup-id-' + popupId + '[data-popup-event="hover"]'+', .'+eventData.value); } if (!hoverSelector) { return false; } var hoverCount = 1; var delay = parseInt(popupOptions['sgpb-popup-delay']) * 1000; hoverSelector.each(function () { if (!jQuery(this).attr('data-popup-id')) { jQuery(this).attr('data-popup-id', popupId); } jQuery(this).bind('mouseenter', function() { if (hoverCount > 1) { return false; } ++hoverCount; var popupId = jQuery(this).data('popup-id'); jQuery(window).trigger('sgpbHoverEvent', popupOptions); setTimeout(function() { var popupObj = SGPBPopup.createPopupObjById(popupId); if (!popupObj) { var mapId = listenerObj.filterPopupId(popupId); popupObj = SGPBPopup.createPopupObjById(mapId); } popupObj.customEvent = 'Hover'; popupObj.prepareOpen(); hoverCount = 1; }, delay); }); }); } }; SgpbEventListener.prototype.sgpbConfirm = function(listenerObj, eventData) { var that = listenerObj; var popupObj = that.getPopupObj(); if (!popupObj) { return false; } var popupIds = []; var popupOptions = popupObj.getPopupData(); var popupId = parseInt(popupObj.id); popupIds.push(popupId); var mapId = listenerObj.filterPopupId(popupId); popupIds.push(mapId); for(var key in popupIds) { var popupId = popupIds[key]; if (!popupIds.hasOwnProperty(key)) { return false; } var confirmSelector = jQuery('.sg-confirm-popup-' + popupId); if (!confirmSelector) { return false; } var confirmCount = 1; confirmSelector.bind('click', function(e) { if (confirmCount > 1) { return false; } ++confirmCount; var allowToOpen = popupObj.forceCheckCurrentPopupType(popupObj); if (!allowToOpen) { return true; } jQuery(window).trigger('sgpbConfirmEvent', popupOptions); var target = jQuery(this).attr('target'); if (typeof target == 'undefined') { target = 'self'; } var href = jQuery(this).attr('href'); var delay = parseInt(popupOptions['sgpb-popup-delay']) * 1000; setTimeout(function() { if (typeof href != 'undefined') { popupOptions['sgpb-confirm-' + popupId] = {'target' : target, 'href' : href}; popupObj.setPopupData(popupOptions); } popupObj.prepareOpen(); confirmCount = 1; }, delay); return false; }); sgAddEvent(window, 'sgpbDidClose', function(e) { var args = e.detail; var popupId = parseInt(args.popupId); var popupOptions = args.popupData; if (typeof popupOptions['sgpb-confirm-' + popupId] != 'undefined') { var confirmAgrs = popupOptions['sgpb-confirm-' + popupId]; if (confirmAgrs['target'] == '_blank') { window.open(confirmAgrs['href']); } else { window.location.href = confirmAgrs['href']; } delete popupOptions['sgpb-confirm-' + popupId]; popupObj.setPopupData(popupOptions); } }); } }; SgpbEventListener.prototype.sgpbAttronload = function(listenerObj, eventData) { var that = listenerObj; var popupObj = that.getPopupObj(); var popupId = parseInt(popupObj.id); popupId = listenerObj.filterPopupId(popupId); var popupOptions = popupObj.getPopupData(); var delay = parseInt(popupOptions['sgpb-popup-delay']) * 1000; jQuery(window).trigger('sgpbAttronloadEvent', popupOptions); setTimeout(function() { popupObj.prepareOpen(); }, delay); }; /*for the old popups*/ SgpbEventListener.prototype.filterPopupId = function(popupId) { var convertedIds = SGPB_POPUP_PARAMS.convertedIdsReverse; var popupNewId = popupId; if (convertedIds[popupId]) { return convertedIds[popupId]; } else { for(var i in convertedIds) { if (popupId == convertedIds[i]) { popupNewId = parseInt(i); break; } } } return popupNewId; }; SgpbEventListener.findCF7InPopup = function(popupId) { return document.querySelector('#sg-popup-content-wrapper-'+popupId+' .wpcf7'); }; SgpbEventListener.CF7EventListener = function(popupId, options) { var wpcf7Elm = SgpbEventListener.findCF7InPopup(popupId); if (wpcf7Elm) { wpcf7Elm.addEventListener('wpcf7mailsent', function(event) { var settings = { popupId: popupId, eventName: 'sgpbCF7Success' }; jQuery(window).trigger('sgpbCF7Success', settings); }); } }; SgpbEventListener.processCF7MailSent = function(popupId, options) { var wpcf7Elm = SgpbEventListener.findCF7InPopup(popupId); if (wpcf7Elm) { wpcf7Elm.addEventListener('wpcf7mailsent', function(event) { if (typeof options['operator'] == 'undefined') { return; } if (options['operator'] == 'close-popup') { setTimeout(function() { SGPBPopup.closePopupById(popupId); }, parseInt(options['value'])*1000); } else if (options['operator'] == 'redirect-url') { window.location.href = options['value']; } else if (options['operator'] == 'open-popup') { SGPBPopup.closePopupById(popupId); var popupObj = SGPBPopup.createPopupObjById(Object.keys(options['value'])[0]); popupObj.prepareOpen(); } }, false); } }; jQuery(document).ready(function(e) { setTimeout(function(){ SgpbEventListener.init(); SGPBPopup.listeners(); }, 1); }); // source --> http://www.kidsbangna.ru.ac.th/wp-content/plugins/responsive-lightbox/assets/swipebox/jquery.swipebox.min.js?ver=2.3.2 !function(c,b,f,u){f.swipebox=function(s,e){f(s).addClass("swipebox");var n,o,t={useCSS:!0,useSVG:!0,initialIndexOnArray:0,removeBarsOnMobile:!0,hideCloseButtonOnMobile:!1,hideBarsDelay:3e3,videoMaxWidth:1140,vimeoColor:"cccccc",beforeOpen:null,afterOpen:null,afterClose:null,afterMedia:null,nextSlide:null,prevSlide:null,loopAtEnd:!1,autoplayVideos:!1,queryStringData:{},toggleClassOnLoad:""},r=this,h=[],a=".swipebox",i=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i),l=null!==i||b.createTouch!==u||"ontouchstart"in c||"onmsgesturechange"in c||navigator.msMaxTouchPoints,d=!!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,g=c.innerWidth||f(c).width(),p=c.innerHeight||f(c).height(),w=0;r.settings={},f.swipebox.close=function(){n.closeSlide()},f.swipebox.extend=function(){return n},r.init=function(){r.settings=f.extend({},t,e),Array.isArray(s)?(h=s,n.target=f(c),n.init(r.settings.initialIndexOnArray)):f(b).on("click",a,function(e){return"slide current"!==e.target.parentNode.className&&(Array.isArray(s)||(n.destroy(),o=f(a),n.actions()),h=[],i||(t="data-rel",i=f(this).attr(t)),i||(t="rel",i=f(this).attr(t)),(o=i&&""!==i&&"nofollow"!==i?f(a).filter("["+t+'="'+i+'"]'):f(a)).each(function(){var e=null,t=null;f(this).attr("title")&&(e=f(this).attr("title")),f(this).attr("href")&&(t=f(this).attr("href")),h.push({href:t,title:e})}),i=o.index(f(this)),e.preventDefault(),e.stopPropagation(),n.target=f(e.target),void n.init(i));var t,i})},n={init:function(e){r.settings.beforeOpen&&r.settings.beforeOpen(),this.target.trigger("swipebox-start"),f.swipebox.isOpen=!0,this.build(),this.openSlide(e),this.openMedia(e),this.preloadMedia(e+1),this.preloadMedia(e-1),r.settings.afterOpen&&r.settings.afterOpen(e)},build:function(){var e,t=this;f("body").append('<div id="swipebox-overlay">\t\t\t\t\t<div id="swipebox-container">\t\t\t\t\t\t<div id="swipebox-slider"></div>\t\t\t\t\t\t<div id="swipebox-top-bar">\t\t\t\t\t\t\t<div id="swipebox-title"></div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="swipebox-bottom-bar">\t\t\t\t\t\t\t<div id="swipebox-arrows">\t\t\t\t\t\t\t\t<a id="swipebox-prev"></a>\t\t\t\t\t\t\t\t<a id="swipebox-next"></a>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<a id="swipebox-close"></a>\t\t\t\t\t</div>\t\t\t</div>'),d&&!0===r.settings.useSVG&&(e=(e=f("#swipebox-close").css("background-image")).replace("png","svg"),f("#swipebox-prev, #swipebox-next, #swipebox-close").css({"background-image":e})),i&&r.settings.removeBarsOnMobile&&f("#swipebox-bottom-bar, #swipebox-top-bar").remove(),f.each(h,function(){f("#swipebox-slider").append('<div class="slide"></div>')}),t.setDim(),t.actions(),l&&t.gesture(),t.keyboard(),t.animBars(),t.resize()},setDim:function(){var e,t,i;"onorientationchange"in c?c.addEventListener("orientationchange",function(){0===c.orientation?(e=g,t=p):90!==c.orientation&&-90!==c.orientation||(e=p,t=g)},!1):(e=c.innerWidth||f(c).width(),t=c.innerHeight||f(c).height()),i={width:e,height:t},f("#swipebox-overlay").css(i)},resize:function(){var e=this;f(c).on("resize",function(){e.setDim()}).trigger("resize")},supportTransition:function(){for(var e="transition WebkitTransition MozTransition OTransition msTransition KhtmlTransition".split(" "),t=0;t<e.length;t++)if(b.createElement("div").style[e[t]]!==u)return e[t];return!1},doCssTrans:function(){if(r.settings.useCSS&&this.supportTransition())return!0},gesture:function(){var t,i,s,o,a,n,r=this,l=!1,d=!1,p={},c={},b=f("#swipebox-top-bar, #swipebox-bottom-bar"),u=f("#swipebox-slider");b.addClass("visible-bars"),r.setTimeout(),f("body").on("touchstart",function(e){return f(this).addClass("touching"),t=f("#swipebox-slider .slide").index(f("#swipebox-slider .slide.current")),c=e.originalEvent.targetTouches[0],p.pageX=e.originalEvent.targetTouches[0].pageX,p.pageY=e.originalEvent.targetTouches[0].pageY,f("#swipebox-slider").css({"-webkit-transform":"translate3d("+w+"%, 0, 0)",transform:"translate3d("+w+"%, 0, 0)"}),f(".touching").on("touchmove",function(e){e.preventDefault(),e.stopPropagation(),c=e.originalEvent.targetTouches[0],d||(a=s,s=c.pageY-p.pageY,(50<=Math.abs(s)||l)&&(e=.75-Math.abs(s)/u.height(),u.css({top:s+"px"}),u.css({opacity:e}),l=!0)),o=i,i=c.pageX-p.pageX,n=100*i/g,!d&&!l&&10<=Math.abs(i)&&(f("#swipebox-slider").css({"-webkit-transition":"",transition:""}),d=!0),d&&(0<i?0===t?f("#swipebox-overlay").addClass("leftSpringTouch"):(f("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),f("#swipebox-slider").css({"-webkit-transform":"translate3d("+(w+n)+"%, 0, 0)",transform:"translate3d("+(w+n)+"%, 0, 0)"})):i<0&&(h.length===t+1?f("#swipebox-overlay").addClass("rightSpringTouch"):(f("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),f("#swipebox-slider").css({"-webkit-transform":"translate3d("+(w+n)+"%, 0, 0)",transform:"translate3d("+(w+n)+"%, 0, 0)"}))))}),!1}).on("touchend",function(e){e.preventDefault(),e.stopPropagation(),f("#swipebox-slider").css({"-webkit-transition":"-webkit-transform 0.4s ease",transition:"transform 0.4s ease"}),s=c.pageY-p.pageY,i=c.pageX-p.pageX,n=100*i/g,l?(l=!1,100<=Math.abs(s)&&Math.abs(s)>Math.abs(a)?(e=0<s?u.height():-u.height(),u.animate({top:e+"px",opacity:0},300,function(){r.closeSlide()})):u.animate({top:0,opacity:1},300)):d?(d=!1,10<=i&&o<=i?r.getPrev():i<=-10&&i<=o&&r.getNext()):b.hasClass("visible-bars")?(r.clearTimeout(),r.hideBars()):(r.showBars(),r.setTimeout()),f("#swipebox-slider").css({"-webkit-transform":"translate3d("+w+"%, 0, 0)",transform:"translate3d("+w+"%, 0, 0)"}),f("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),f(".touching").off("touchmove").removeClass("touching")})},setTimeout:function(){var e;0<r.settings.hideBarsDelay&&((e=this).clearTimeout(),e.timeout=c.setTimeout(function(){e.hideBars()},r.settings.hideBarsDelay))},clearTimeout:function(){c.clearTimeout(this.timeout),this.timeout=null},showBars:function(){var e=f("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?e.addClass("visible-bars"):(f("#swipebox-top-bar").animate({top:0},500),f("#swipebox-bottom-bar").animate({bottom:0},500),setTimeout(function(){e.addClass("visible-bars")},1e3))},hideBars:function(){var e=f("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?e.removeClass("visible-bars"):(f("#swipebox-top-bar").animate({top:"-50px"},500),f("#swipebox-bottom-bar").animate({bottom:"-50px"},500),setTimeout(function(){e.removeClass("visible-bars")},1e3))},animBars:function(){var e=this,t=f("#swipebox-top-bar, #swipebox-bottom-bar");t.addClass("visible-bars"),e.setTimeout(),f("#swipebox-slider").on("click",function(){t.hasClass("visible-bars")||(e.showBars(),e.setTimeout())}),f("#swipebox-bottom-bar").on("mouseenter",function(){e.showBars(),t.addClass("visible-bars"),e.clearTimeout()}).on("mouseleave",function(){0<r.settings.hideBarsDelay&&(t.removeClass("visible-bars"),e.setTimeout())})},keyboard:function(){var t=this;f(c).on("keyup",function(e){e.preventDefault(),e.stopPropagation(),37===e.keyCode?t.getPrev():39===e.keyCode?t.getNext():27===e.keyCode&&t.closeSlide()})},actions:function(){var t=this,e="touchend click";h.length<2?(f("#swipebox-bottom-bar").hide(),u===h[1]&&f("#swipebox-top-bar").hide()):(f("#swipebox-prev").on(e,function(e){e.preventDefault(),e.stopPropagation(),t.getPrev(),t.setTimeout()}),f("#swipebox-next").on(e,function(e){e.preventDefault(),e.stopPropagation(),t.getNext(),t.setTimeout()})),f("#swipebox-close").on(e,function(e){e.preventDefault(),e.stopPropagation(),t.closeSlide()})},setSlide:function(e,t){t=t||!1;var i=f("#swipebox-slider");w=100*-e,this.doCssTrans()?i.css({"-webkit-transform":"translate3d("+100*-e+"%, 0, 0)",transform:"translate3d("+100*-e+"%, 0, 0)"}):i.animate({left:100*-e+"%"}),f("#swipebox-slider .slide").removeClass("current"),f("#swipebox-slider .slide").eq(e).addClass("current"),this.setTitle(e),t&&i.fadeIn(),f("#swipebox-prev, #swipebox-next").removeClass("disabled"),0===e?f("#swipebox-prev").addClass("disabled"):e===h.length-1&&!0!==r.settings.loopAtEnd&&f("#swipebox-next").addClass("disabled")},openSlide:function(e){f("html").addClass("swipebox-html"),l?(f("html").addClass("swipebox-touch"),r.settings.hideCloseButtonOnMobile&&f("html").addClass("swipebox-no-close-button")):f("html").addClass("swipebox-no-touch"),f(c).trigger("resize"),this.setSlide(e,!0)},preloadMedia:function(e){var t=this,i=null;h[e]!==u&&(i=h[e].href),t.isVideo(i)?t.openMedia(e):setTimeout(function(){t.openMedia(e)},1e3)},openMedia:function(e){var t,i;if(h[e]!==u&&(t=h[e].href),e<0||e>=h.length)return!1;i=f("#swipebox-slider .slide").eq(e),this.isVideo(t)?(i.html(this.getVideo(t)),r.settings.afterMedia&&r.settings.afterMedia(e)):(i.addClass("slide-loading"),this.loadMedia(t,function(){i.removeClass("slide-loading"),i.html(this),r.settings.afterMedia&&r.settings.afterMedia(e)}))},setTitle:function(e){var t=null;f("#swipebox-title").empty(),h[e]!==u&&(t=h[e].title),t?(f("#swipebox-top-bar").show(),f("#swipebox-title").append(t)):f("#swipebox-top-bar").hide()},isVideo:function(e){if(e)return!!(e.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/)||e.match(/vimeo\.com\/([0-9]*)/)||e.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/))||(0<=e.toLowerCase().indexOf("swipeboxvideo=1")||void 0)},parseUri:function(e,t){var i=b.createElement("a"),s={};return i.href=decodeURIComponent(e),i.search&&(s=JSON.parse('{"'+i.search.toLowerCase().replace("?","").replace(/&/g,'","').replace(/=/g,'":"')+'"}')),f.isPlainObject(t)&&(s=f.extend(s,t,r.settings.queryStringData)),f.map(s,function(e,t){if(e&&""<e)return encodeURIComponent(t)+"="+encodeURIComponent(e)}).join("&")},getVideo:function(e){var t="",i=e.match(/((?:www\.)?youtube\.com|(?:www\.)?youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/),s=e.match(/(?:www\.)?youtu\.be\/([a-zA-Z0-9\-_]+)/),o=e.match(/(?:www\.)?vimeo\.com\/([0-9]*)/),a="",t=i||s?(s&&(i=s),a=n.parseUri(e,{autoplay:r.settings.autoplayVideos?"1":"0",v:""}),'<iframe width="560" height="315" src="https://'+i[1]+"/embed/"+i[2]+"?"+a+'" frameborder="0" allowfullscreen></iframe>'):o?(a=n.parseUri(e,{autoplay:r.settings.autoplayVideos?"1":"0",byline:"0",portrait:"0",color:r.settings.vimeoColor}),'<iframe width="560" height="315" src="//player.vimeo.com/video/'+o[1]+"?"+a+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'):'<iframe width="560" height="315" src="'+e+'" frameborder="0" allowfullscreen></iframe>';return'<div class="swipebox-video-container" style="max-width:'+r.settings.videoMaxWidth+'px"><div class="swipebox-video">'+t+"</div></div>"},loadMedia:function(e,t){var i;0===e.trim().indexOf("#")?t.call(f("<div>",{class:"swipebox-inline-container"}).append(f(e).clone().toggleClass(r.settings.toggleClassOnLoad))):this.isVideo(e)||(i=f("<img>").on("load",function(){t.call(i)})).attr("src",e)},getNext:function(){var e,t=this,i=f("#swipebox-slider .slide").index(f("#swipebox-slider .slide.current"));i+1<h.length?(e=f("#swipebox-slider .slide").eq(i).contents().find("iframe").attr("src"),f("#swipebox-slider .slide").eq(i).contents().find("iframe").attr("src",e),i++,t.setSlide(i),t.preloadMedia(i+1),r.settings.nextSlide&&r.settings.nextSlide(i)):!0===r.settings.loopAtEnd?(e=f("#swipebox-slider .slide").eq(i).contents().find("iframe").attr("src"),f("#swipebox-slider .slide").eq(i).contents().find("iframe").attr("src",e),i=0,t.preloadMedia(i),t.setSlide(i),t.preloadMedia(i+1),r.settings.nextSlide&&r.settings.nextSlide(i)):(f("#swipebox-overlay").addClass("rightSpring"),setTimeout(function(){f("#swipebox-overlay").removeClass("rightSpring")},500))},getPrev:function(){var e,t=f("#swipebox-slider .slide").index(f("#swipebox-slider .slide.current"));0<t?(e=f("#swipebox-slider .slide").eq(t).contents().find("iframe").attr("src"),f("#swipebox-slider .slide").eq(t).contents().find("iframe").attr("src",e),t--,this.setSlide(t),this.preloadMedia(t-1),r.settings.prevSlide&&r.settings.prevSlide(t)):(f("#swipebox-overlay").addClass("leftSpring"),setTimeout(function(){f("#swipebox-overlay").removeClass("leftSpring")},500))},nextSlide:function(e){},prevSlide:function(e){},closeSlide:function(){f("html").removeClass("swipebox-html"),f("html").removeClass("swipebox-touch"),f(c).trigger("resize"),this.destroy()},destroy:function(){f(c).off("keyup"),f("body").off("touchstart"),f("body").off("touchmove"),f("body").off("touchend"),f("#swipebox-slider").off(),f("#swipebox-overlay").remove(),Array.isArray(s)||s.removeData("_swipebox"),this.target&&this.target.trigger("swipebox-destroy"),f.swipebox.isOpen=!1,r.settings.afterClose&&r.settings.afterClose()}},r.init()},f.fn.swipebox=function(e){return f.data(this,"_swipebox")||(e=new f.swipebox(this,e),this.data("_swipebox",e)),this.data("_swipebox")}}(window,document,jQuery); // source --> http://www.kidsbangna.ru.ac.th/wp-includes/js/underscore.min.js?ver=1.13.1 /*! This file is auto-generated */ !function(n,r){var t,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,t=n._,(e=n._=r()).noConflict=function(){return n._=t,e})}(this,function(){var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},e=Array.prototype,o=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,u=e.push,a=e.slice,p=o.toString,t=o.hasOwnProperty,i="undefined"!=typeof ArrayBuffer,f="undefined"!=typeof DataView,c=Array.isArray,l=Object.keys,h=Object.create,v=i&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(u,i){return i=null==i?u.length-1:+i,function(){for(var n=Math.max(arguments.length-i,0),r=Array(n),t=0;t<n;t++)r[t]=arguments[t+i];switch(i){case 0:return u.call(this,r);case 1:return u.call(this,arguments[0],r);case 2:return u.call(this,arguments[0],arguments[1],r)}for(var e=Array(i+1),t=0;t<i;t++)e[t]=arguments[t];return e[i]=r,u.apply(this,e)}}function _(n){var r=typeof n;return"function"==r||"object"==r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===p.call(n)}function x(n){var r="[object "+n+"]";return function(n){return p.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes,D=T="function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k?function(n){return"function"==typeof n||!1}:T,R=x("Object"),F=f&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=c||x("Array");function W(n,r){return null!=n&&t.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(r){return function(n){n=r(n);return"number"==typeof n&&0<=n&&n<=m}}function J(r){return function(n){return null==n?void 0:n[r]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=i?function(n){return v?v(n)&&!q(n):H(n)&&Q.test(p.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(r){for(var t={},n=r.length,e=0;e<n;++e)t[r[e]]=!0;return{contains:function(n){return t[n]},push:function(n){return t[n]=!0,r.push(n)}}}(r);var t=b.length,e=n.constructor,u=D(e)&&e.prototype||o,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==u[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(l)return l(n);var r,t=[];for(r in n)W(n,r)&&t.push(r);return g&&Z(n,t),t}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),i=0;i<e;i++){var o=t[i];if(r[o]!==u[o]||!(o in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value=function(){return this._wrapped},tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var u=typeof n;return("function"==u||"object"==u||"object"==typeof r)&&function n(r,t,e,u){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=p.call(r);if(i!==p.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return s.valueOf.call(r)===s.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,u)}var o="[object Array]"===i;if(!o&&X(r)){var f=G(r);if(f!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;o=!0}if(!o){if("object"!=typeof r||"object"!=typeof t)return!1;i=r.constructor,f=t.constructor;if(i!==f&&!(D(i)&&i instanceof i&&D(f)&&f instanceof f)&&"constructor"in r&&"constructor"in t)return!1}e=e||[];u=u||[];var a=e.length;for(;a--;)if(e[a]===r)return u[a]===t;e.push(r);u.push(t);if(o){if((a=r.length)!==t.length)return!1;for(;a--;)if(!on(r[a],t[a],e,u))return!1}else{var c,l=nn(r);if(a=l.length,nn(t).length!==a)return!1;for(;a--;)if(c=l[a],!W(t,c)||!on(r[c],t[c],e,u))return!1}e.pop();u.pop();return!0}(n,r,t,e)}function fn(n){if(!_(n))return[];var r,t=[];for(r in n)t.push(r);return g&&Z(n,t),t}function an(e){var u=Y(e);return function(n){if(null==n)return!1;var r=fn(n);if(Y(r))return!1;for(var t=0;t<u;t++)if(!D(n[e[t]]))return!1;return e!==hn||!D(n[cn])}}var cn="forEach",ln=["clear","delete"],sn=["get","has","set"],pn=ln.concat(cn,sn),hn=ln.concat(sn),vn=["add"].concat(ln,cn,"has"),yn=V?an(pn):x("Map"),dn=V?an(hn):x("WeakMap"),gn=V?an(vn):x("Set"),bn=x("WeakSet");function mn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function jn(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function _n(n){var r,t=[];for(r in n)D(n[r])&&t.push(r);return t.sort()}function wn(a,c){return function(n){var r=arguments.length;if(c&&(n=Object(n)),r<2||null==n)return n;for(var t=1;t<r;t++)for(var e=arguments[t],u=a(e),i=u.length,o=0;o<i;o++){var f=u[o];c&&void 0!==n[f]||(n[f]=e[f])}return n}}var An=wn(fn),xn=wn(nn),Sn=wn(fn,!0);function On(n){if(!_(n))return{};if(h)return h(n);var r=function(){};r.prototype=n;n=new r;return r.prototype=null,n}function Mn(n){return _(n)?U(n)?n.slice():An({},n):n}function En(n){return U(n)?n:[n]}function Bn(n){return tn.toPath(n)}function Nn(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function In(n,r,t){r=Nn(n,Bn(r));return w(r)?t:r}function Tn(n){return n}function kn(r){return r=xn({},r),function(n){return rn(n,r)}}function Dn(r){return r=Bn(r),function(n){return Nn(n,r)}}function Rn(u,i,n){if(void 0===i)return u;switch(null==n?3:n){case 1:return function(n){return u.call(i,n)};case 3:return function(n,r,t){return u.call(i,n,r,t)};case 4:return function(n,r,t,e){return u.call(i,n,r,t,e)}}return function(){return u.apply(i,arguments)}}function Fn(n,r,t){return null==n?Tn:D(n)?Rn(n,r,t):(_(n)&&!U(n)?kn:Dn)(n)}function Vn(n,r){return Fn(n,r,1/0)}function Pn(n,r,t){return tn.iteratee!==Vn?tn.iteratee(n,r):Fn(n,r,t)}function qn(){}function Un(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=En,tn.iteratee=Vn;var Wn=Date.now||function(){return(new Date).getTime()};function zn(r){function t(n){return r[n]}var n="(?:"+nn(r).join("|")+")",e=RegExp(n),u=RegExp(n,"g");return function(n){return e.test(n=null==n?"":""+n)?n.replace(u,t):n}}var Ln={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},$n=zn(Ln),Cn=zn(jn(Ln)),Kn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Jn=/(.)^/,Gn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Hn=/\\|'|\r|\n|\u2028|\u2029/g;function Qn(n){return"\\"+Gn[n]}var Xn=/^\s*(\w|\$)+\s*$/;var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);t=On(n.prototype),u=n.apply(t,u);return _(u)?u:t}var nr=j(function(u,i){var o=nr.placeholder,f=function(){for(var n=0,r=i.length,t=Array(r),e=0;e<r;e++)t[e]=i[e]===o?arguments[n++]:i[e];for(;n<arguments.length;)t.push(arguments[n++]);return Zn(u,f,this,this,t)};return f});nr.placeholder=tn;var rr=j(function(r,t,e){if(!D(r))throw new TypeError("Bind must be called on a function");var u=j(function(n){return Zn(r,u,t,this,e.concat(n))});return u}),tr=K(Y);function er(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,i=0,o=Y(n);i<o;i++){var f=n[i];if(tr(f)&&(U(f)||L(f)))if(1<r)er(f,r-1,t,e),u=e.length;else for(var a=0,c=f.length;a<c;)e[u++]=f[a++];else t||(e[u++]=f)}return e}var ur=j(function(n,r){var t=(r=er(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=rr(n[e],n)}return n});var ir=j(function(n,r,t){return setTimeout(function(){return n.apply(null,t)},r)}),or=nr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function ar(n,r){var t;return function(){return 0<--n&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}r=nr(ar,2);function cr(n,r,t){r=Pn(r,t);for(var e,u=nn(n),i=0,o=u.length;i<o;i++)if(r(n[e=u[i]],e,n))return e}function lr(i){return function(n,r,t){r=Pn(r,t);for(var e=Y(n),u=0<i?0:e-1;0<=u&&u<e;u+=i)if(r(n[u],u,n))return u;return-1}}var sr=lr(1),k=lr(-1);function pr(n,r,t,e){for(var u=(t=Pn(t,e,1))(r),i=0,o=Y(n);i<o;){var f=Math.floor((i+o)/2);t(n[f])<u?i=f+1:o=f}return i}function hr(i,o,f){return function(n,r,t){var e=0,u=Y(n);if("number"==typeof t)0<i?e=0<=t?t:Math.max(t+u,e):u=0<=t?Math.min(t+1,u):t+u+1;else if(f&&t&&u)return n[t=f(n,r)]===r?t:-1;if(r!=r)return 0<=(t=o(a.call(n,e,u),$))?t+e:-1;for(t=0<i?e:u-1;0<=t&&t<u;t+=i)if(n[t]===r)return t;return-1}}var vr=hr(1,sr,pr),T=hr(-1,k);function yr(n,r,t){t=(tr(n)?sr:cr)(n,r,t);if(void 0!==t&&-1!==t)return n[t]}function dr(n,r,t){if(r=Rn(r,t),tr(n))for(u=0,i=n.length;u<i;u++)r(n[u],u,n);else for(var e=nn(n),u=0,i=e.length;u<i;u++)r(n[e[u]],e[u],n);return n}function gr(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,i=Array(u),o=0;o<u;o++){var f=e?e[o]:o;i[o]=r(n[f],f,n)}return i}function br(a){return function(n,r,t,e){var u=3<=arguments.length;return function(n,r,t,e){var u=!tr(n)&&nn(n),i=(u||n).length,o=0<a?0:i-1;for(e||(t=n[u?u[o]:o],o+=a);0<=o&&o<i;o+=a){var f=u?u[o]:o;t=r(t,n[f],f,n)}return t}(n,Rn(r,e,4),t,u)}}f=br(1),R=br(-1);function mr(n,e,r){var u=[];return e=Pn(e,r),dr(n,function(n,r,t){e(n,r,t)&&u.push(n)}),u}function jr(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(!r(n[o],o,n))return!1}return!0}function _r(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(r(n[o],o,n))return!0}return!1}function wr(n,r,t,e){return tr(n)||(n=mn(n)),0<=vr(n,r,t="number"!=typeof t||e?0:t)}P=j(function(n,t,e){var u,i;return D(t)?i=t:(t=Bn(t),u=t.slice(0,-1),t=t[t.length-1]),gr(n,function(n){var r=i;if(!r){if(null==(n=u&&u.length?Nn(n,u):n))return;r=n[t]}return null==r?r:r.apply(n,e)})});function Ar(n,r){return gr(n,Dn(r))}function xr(n,e,r){var t,u,i=-1/0,o=-1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var f=0,a=(n=tr(n)?n:mn(n)).length;f<a;f++)null!=(t=n[f])&&i<t&&(i=t);else e=Pn(e,r),dr(n,function(n,r,t){u=e(n,r,t),(o<u||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i}function Sr(n,r,t){if(null==r||t)return(n=!tr(n)?mn(n):n)[Un(n.length-1)];var e=(tr(n)?Mn:mn)(n),n=Y(e);r=Math.max(Math.min(r,n),0);for(var u=n-1,i=0;i<r;i++){var o=Un(i,u),f=e[i];e[i]=e[o],e[o]=f}return e.slice(0,r)}function Or(i,r){return function(t,e,n){var u=r?[[],[]]:{};return e=Pn(e,n),dr(t,function(n,r){r=e(n,r,t);i(u,n,r)}),u}}var c=Or(function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]}),i=Or(function(n,r,t){n[t]=r}),sn=Or(function(n,r,t){W(n,t)?n[t]++:n[t]=1}),ln=Or(function(n,r,t){n[t?0:1].push(r)},!0),Mr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function Er(n,r,t){return r in t}var Br=j(function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(1<r.length&&(e=Rn(e,r[1])),r=fn(n)):(e=Er,r=er(r,!1,!1),n=Object(n));for(var u=0,i=r.length;u<i;u++){var o=r[u],f=n[o];e(f,o,n)&&(t[o]=f)}return t}),pn=j(function(n,t){var r,e=t[0];return D(e)?(e=fr(e),1<t.length&&(r=t[1])):(t=gr(er(t,!1,!1),String),e=function(n,r){return!wr(t,r)}),Br(n,e,r)});function Nr(n,r,t){return a.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Ir(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:Nr(n,n.length-r)}function Tr(n,r,t){return a.call(n,null==r||t?1:r)}var kr=j(function(n,r){return r=er(r,!0,!0),mr(n,function(n){return!wr(r,n)})}),V=j(function(n,r){return kr(n,r)});function Dr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=Pn(t,e));for(var u=[],i=[],o=0,f=Y(n);o<f;o++){var a=n[o],c=t?t(a,o,n):a;r&&!t?(o&&i===c||u.push(a),i=c):t?wr(i,c)||(i.push(c),u.push(a)):wr(u,a)||u.push(a)}return u}vn=j(function(n){return Dr(er(n,!0,!0))});function Rr(n){for(var r=n&&xr(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Ar(n,e);return t}Ln=j(Rr);function Fr(n,r){return n._chain?tn(r).chain():r}function Vr(t){return dr(_n(t),function(n){var r=tn[n]=t[n];tn.prototype[n]=function(){var n=[this._wrapped];return u.apply(n,arguments),Fr(this,r.apply(tn,n))}}),tn}dr(["pop","push","reverse","shift","sort","splice","unshift"],function(r){var t=e[r];tn.prototype[r]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==r&&"splice"!==r||0!==n.length||delete n[0]),Fr(this,n)}}),dr(["concat","join","slice"],function(n){var r=e[n];tn.prototype[n]=function(){var n=this._wrapped;return Fr(this,n=null!=n?r.apply(n,arguments):n)}});Ln=Vr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:yn,isWeakMap:dn,isSet:gn,isWeakSet:bn,keys:nn,allKeys:fn,values:mn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:jn,functions:_n,methods:_n,extend:An,extendOwn:xn,assign:xn,defaults:Sn,create:function(n,r){return n=On(n),r&&xn(n,r),n},clone:Mn,tap:function(n,r){return r(n),n},get:In,has:function(n,r){for(var t=(r=Bn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=Pn(r,t);for(var e=nn(n),u=e.length,i={},o=0;o<u;o++){var f=e[o];i[f]=r(n[f],f,n)}return i},identity:Tn,constant:C,noop:qn,toPath:En,property:Dn,propertyOf:function(r){return null==r?qn:function(n){return In(r,n)}},matcher:kn,matches:kn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Rn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Un,now:Wn,escape:$n,unescape:Cn,templateSettings:Kn,template:function(i,n,r){n=Sn({},n=!n&&r?r:n,tn.templateSettings);var t,r=RegExp([(n.escape||Jn).source,(n.interpolate||Jn).source,(n.evaluate||Jn).source].join("|")+"|$","g"),o=0,f="__p+='";if(i.replace(r,function(n,r,t,e,u){return f+=i.slice(o,u).replace(Hn,Qn),o=u+n.length,r?f+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":t?f+="'+\n((__t=("+t+"))==null?'':__t)+\n'":e&&(f+="';\n"+e+"\n__p+='"),n}),f+="';\n",r=n.variable){if(!Xn.test(r))throw new Error("variable is not a bare identifier: "+r)}else f="with(obj||{}){\n"+f+"}\n",r="obj";f="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+f+"return __p;\n";try{t=new Function(r,"_",f)}catch(n){throw n.source=f,n}return(n=function(n){return t.call(this,n,tn)}).source="function("+r+"){\n"+f+"}",n},result:function(n,r,t){var e=(r=Bn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var i=null==n?void 0:n[r[u]];void 0===i&&(i=t,u=e),n=D(i)?i.call(n):i}return n},uniqueId:function(n){var r=++Yn+"";return n?n+r:r},chain:function(n){return(n=tn(n))._chain=!0,n},iteratee:Vn,partial:nr,bind:rr,bindAll:ur,memoize:function(e,u){var i=function(n){var r=i.cache,t=""+(u?u.apply(this,arguments):n);return W(r,t)||(r[t]=e.apply(this,arguments)),r[t]};return i.cache={},i},delay:ir,defer:or,throttle:function(t,e,u){var i,o,f,a,c=0;function l(){c=!1===u.leading?0:Wn(),i=null,a=t.apply(o,f),i||(o=f=null)}function n(){var n=Wn();c||!1!==u.leading||(c=n);var r=e-(n-c);return o=this,f=arguments,r<=0||e<r?(i&&(clearTimeout(i),i=null),c=n,a=t.apply(o,f),i||(o=f=null)):i||!1===u.trailing||(i=setTimeout(l,r)),a}return u=u||{},n.cancel=function(){clearTimeout(i),c=0,i=o=f=null},n},debounce:function(r,t,e){var u,i,o,f,a,c=function(){var n=Wn()-i;n<t?u=setTimeout(c,t-n):(u=null,e||(f=r.apply(a,o)),u||(o=a=null))},n=j(function(n){return a=this,o=n,i=Wn(),u||(u=setTimeout(c,t),e&&(f=r.apply(a,o))),f});return n.cancel=function(){clearTimeout(u),u=o=a=null},n},wrap:function(n,r){return nr(r,n)},negate:fr,compose:function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:ar,once:r,findKey:cr,findIndex:sr,findLastIndex:k,sortedIndex:pr,indexOf:vr,lastIndexOf:T,find:yr,detect:yr,findWhere:function(n,r){return yr(n,kn(r))},each:dr,forEach:dr,map:gr,collect:gr,reduce:f,foldl:f,inject:f,reduceRight:R,foldr:R,filter:mr,select:mr,reject:function(n,r,t){return mr(n,fr(Pn(r)),t)},every:jr,all:jr,some:_r,any:_r,contains:wr,includes:wr,include:wr,invoke:P,pluck:Ar,where:function(n,r){return mr(n,kn(r))},max:xr,min:function(n,e,r){var t,u,i=1/0,o=1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var f=0,a=(n=tr(n)?n:mn(n)).length;f<a;f++)null!=(t=n[f])&&t<i&&(i=t);else e=Pn(e,r),dr(n,function(n,r,t){((u=e(n,r,t))<o||u===1/0&&i===1/0)&&(i=n,o=u)});return i},shuffle:function(n){return Sr(n,1/0)},sample:Sr,sortBy:function(n,e,r){var u=0;return e=Pn(e,r),Ar(gr(n,function(n,r,t){return{value:n,index:u++,criteria:e(n,r,t)}}).sort(function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(e<t||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index}),"value")},groupBy:c,indexBy:i,countBy:sn,partition:ln,toArray:function(n){return n?U(n)?a.call(n):S(n)?n.match(Mr):tr(n)?gr(n,Tn):mn(n):[]},size:function(n){return null==n?0:(tr(n)?n:nn(n)).length},pick:Br,omit:pn,first:Ir,head:Ir,take:Ir,initial:Nr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:Tr(n,Math.max(0,n.length-r))},rest:Tr,tail:Tr,drop:Tr,compact:function(n){return mr(n,Boolean)},flatten:function(n,r){return er(n,r,!1)},without:V,uniq:Dr,unique:Dr,union:vn,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var i=n[e];if(!wr(r,i)){for(var o=1;o<t&&wr(arguments[o],i);o++);o===t&&r.push(i)}}return r},difference:kr,unzip:Rr,transpose:Rr,zip:Ln,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t=t||(r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),i=0;i<e;i++,n+=t)u[i]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(a.call(n,e,e+=r));return t},mixin:Vr,default:tn});return Ln._=Ln}); // source --> http://www.kidsbangna.ru.ac.th/wp-content/plugins/responsive-lightbox/assets/infinitescroll/infinite-scroll.pkgd.min.js?ver=5.8.1 /*! * Infinite Scroll PACKAGED v3.0.6 * Automatically add next page * * Licensed GPLv3 for open source use * or Infinite Scroll Commercial License for commercial use * * https://infinite-scroll.com * Copyright 2018 Metafizzy */ !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,l){function a(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,a){var h=l.data(a,i);if(!h)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var c=h[e];if(!c||"_"==e.charAt(0))return void s(r+" is not a valid method");var u=c.apply(h,n);o=void 0===o?u:o}),void 0!==o?o:t}function h(t,e){t.each(function(t,n){var o=l.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),l.data(n,i,o))})}l=l||e||t.jQuery,l&&(r.prototype.option||(r.prototype.option=function(t){l.isPlainObject(t)&&(this.options=l.extend(!0,this.options,t))}),l.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return a(this,t,e)}return h(this,t),this},n(l))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return n.indexOf(e)==-1&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return n!=-1&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,l=document.querySelectorAll("["+s+"]"),a=document.querySelectorAll(".js-"+r),h=i.makeArray(l).concat(i.makeArray(a)),c=s+"-options",u=t.jQuery;h.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(c);try{i=r&&JSON.parse(r)}catch(l){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+l))}var a=new e(t,i);u&&u.data(t,n,a)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/core",["ev-emitter/ev-emitter","fizzy-ui-utils/utils"],function(i,n){return e(t,i,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("fizzy-ui-utils")):t.InfiniteScroll=e(t,t.EvEmitter,t.fizzyUIUtils)}(window,function(t,e,i){function n(t,e){var s=i.getQueryElement(t);if(!s)return void console.error("Bad element for InfiniteScroll: "+(s||t));if(t=s,t.infiniteScrollGUID){var l=r[t.infiniteScrollGUID];return l.option(e),l}this.element=t,this.options=i.extend({},n.defaults),this.option(e),o&&(this.$element=o(this.element)),this.create()}var o=t.jQuery,r={};n.defaults={},n.create={},n.destroy={};var s=n.prototype;i.extend(s,e.prototype);var l=0;s.create=function(){var t=this.guid=++l;this.element.infiniteScrollGUID=t,r[t]=this,this.pageIndex=1,this.loadCount=0,this.updateGetPath();var e=this.getPath&&this.getPath();if(!e)return void console.error("Disabling InfiniteScroll");this.updateGetAbsolutePath(),this.log("initialized",[this.element.className]),this.callOnInit();for(var i in n.create)n.create[i].call(this)},s.option=function(t){i.extend(this.options,t)},s.callOnInit=function(){var t=this.options.onInit;t&&t.call(this,this)},s.dispatchEvent=function(t,e,i){this.log(t,i);var n=e?[e].concat(i):i;if(this.emitEvent(t,n),o&&this.$element){t+=".infiniteScroll";var r=t;if(e){var s=o.Event(e);s.type=t,r=s}this.$element.trigger(r,i)}};var a={initialized:function(t){return"on "+t},request:function(t){return"URL: "+t},load:function(t,e){return(t.title||"")+". URL: "+e},error:function(t,e){return t+". URL: "+e},append:function(t,e,i){return i.length+" items. URL: "+e},last:function(t,e){return"URL: "+e},history:function(t,e){return"URL: "+e},pageIndex:function(t,e){return"current page determined to be: "+t+" from "+e}};s.log=function(t,e){if(this.options.debug){var i="[InfiniteScroll] "+t,n=a[t];n&&(i+=". "+n.apply(this,e)),console.log(i)}},s.updateMeasurements=function(){this.windowHeight=t.innerHeight;var e=this.element.getBoundingClientRect();this.top=e.top+t.pageYOffset},s.updateScroller=function(){var e=this.options.elementScroll;if(!e)return void(this.scroller=t);if(this.scroller=e===!0?this.element:i.getQueryElement(e),!this.scroller)throw"Unable to find elementScroll: "+e},s.updateGetPath=function(){var t=this.options.path;if(!t)return void console.error("InfiniteScroll path option required. Set as: "+t);var e=typeof t;if("function"==e)return void(this.getPath=t);var i="string"==e&&t.match("{{#}}");return i?void this.updateGetPathTemplate(t):void this.updateGetPathSelector(t)},s.updateGetPathTemplate=function(t){this.getPath=function(){var e=this.pageIndex+1;return t.replace("{{#}}",e)}.bind(this);var e=t.replace(/(\\\?|\?)/,"\\?").replace("{{#}}","(\\d\\d?\\d?)"),i=new RegExp(e),n=location.href.match(i);n&&(this.pageIndex=parseInt(n[1],10),this.log("pageIndex",[this.pageIndex,"template string"]))};var h=[/^(.*?\/?page\/?)(\d\d?\d?)(.*?$)/,/^(.*?\/?\?page=)(\d\d?\d?)(.*?$)/,/(.*?)(\d\d?\d?)(?!.*\d)(.*?$)/];return s.updateGetPathSelector=function(t){var e=document.querySelector(t);if(!e)return void console.error("Bad InfiniteScroll path option. Next link not found: "+t);for(var i,n,o=e.getAttribute("href"),r=0;o&&r<h.length;r++){n=h[r];var s=o.match(n);if(s){i=s.slice(1);break}}return i?(this.isPathSelector=!0,this.getPath=function(){var t=this.pageIndex+1;return i[0]+t+i[2]}.bind(this),this.pageIndex=parseInt(i[1],10)-1,void this.log("pageIndex",[this.pageIndex,"next link"])):void console.error("InfiniteScroll unable to parse next link href: "+o)},s.updateGetAbsolutePath=function(){var t=this.getPath(),e=t.match(/^http/)||t.match(/^\//);if(e)return void(this.getAbsolutePath=this.getPath);var i=location.pathname,n=t.match(/^\?/);if(n)return void(this.getAbsolutePath=function(){return i+this.getPath()});var o=i.substring(0,i.lastIndexOf("/"));this.getAbsolutePath=function(){return o+"/"+this.getPath()}},n.create.hideNav=function(){var t=i.getQueryElement(this.options.hideNav);t&&(t.style.display="none",this.nav=t)},n.destroy.hideNav=function(){this.nav&&(this.nav.style.display="")},s.destroy=function(){this.allOff();for(var t in n.destroy)n.destroy[t].call(this);delete this.element.infiniteScrollGUID,delete r[this.guid],o&&this.$element&&o.removeData(this.element,"infiniteScroll")},n.throttle=function(t,e){e=e||200;var i,n;return function(){var o=+new Date,r=arguments,s=function(){i=o,t.apply(this,r)}.bind(this);i&&o<i+e?(clearTimeout(n),n=setTimeout(s,e)):s()}},n.data=function(t){t=i.getQueryElement(t);var e=t&&t.infiniteScrollGUID;return e&&r[e]},n.setJQuery=function(t){o=t},i.htmlInit(n,"infinite-scroll"),s._init=function(){},o&&o.bridget&&o.bridget("infiniteScroll",n),n}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/page-load",["./core"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("./core")):e(t,t.InfiniteScroll)}(window,function(t,e){function i(t){for(var e=document.createDocumentFragment(),i=0;t&&i<t.length;i++)e.appendChild(t[i]);return e}function n(t){for(var e=t.querySelectorAll("script"),i=0;i<e.length;i++){var n=e[i],r=document.createElement("script");o(n,r),r.innerHTML=n.innerHTML,n.parentNode.replaceChild(r,n)}}function o(t,e){for(var i=t.attributes,n=0;n<i.length;n++){var o=i[n];e.setAttribute(o.name,o.value)}}function r(t,e,i,n,o){var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType=e||"",r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.onload=function(){if(200==r.status)i(r.response);else if(204==r.status)o(r.response);else{var t=new Error(r.statusText);n(t)}},r.onerror=function(){var e=new Error("Network error requesting "+t);n(e)},r.send()}var s=e.prototype;return e.defaults.loadOnScroll=!0,e.defaults.checkLastPage=!0,e.defaults.responseType="document",e.create.pageLoad=function(){this.canLoad=!0,this.on("scrollThreshold",this.onScrollThresholdLoad),this.on("load",this.checkLastPage),this.options.outlayer&&this.on("append",this.onAppendOutlayer)},s.onScrollThresholdLoad=function(){this.options.loadOnScroll&&this.loadNextPage()},s.loadNextPage=function(){if(!this.isLoading&&this.canLoad){var t=this.getAbsolutePath();this.isLoading=!0;var e=function(e){this.onPageLoad(e,t)}.bind(this),i=function(e){this.onPageError(e,t)}.bind(this),n=function(e){this.lastPageReached(e,t)}.bind(this);r(t,this.options.responseType,e,i,n),this.dispatchEvent("request",null,[t])}},s.onPageLoad=function(t,e){return this.options.append||(this.isLoading=!1),this.pageIndex++,this.loadCount++,this.dispatchEvent("load",null,[t,e]),this.appendNextPage(t,e),t},s.appendNextPage=function(t,e){var n=this.options.append,o="document"==this.options.responseType;if(o&&n){var r=t.querySelectorAll(n),s=i(r),l=function(){this.appendItems(r,s),this.isLoading=!1,this.dispatchEvent("append",null,[t,e,r])}.bind(this);this.options.outlayer?this.appendOutlayerItems(s,l):l()}},s.appendItems=function(t,e){t&&t.length&&(e=e||i(t),n(e),this.element.appendChild(e))},s.appendOutlayerItems=function(i,n){var o=e.imagesLoaded||t.imagesLoaded;return o?void o(i,n):(console.error("[InfiniteScroll] imagesLoaded required for outlayer option"),void(this.isLoading=!1))},s.onAppendOutlayer=function(t,e,i){this.options.outlayer.appended(i)},s.checkLastPage=function(t,e){var i=this.options.checkLastPage;if(i){var n=this.options.path;if("function"==typeof n){var o=this.getPath();if(!o)return void this.lastPageReached(t,e)}var r;if("string"==typeof i?r=i:this.isPathSelector&&(r=n),r&&t.querySelector){var s=t.querySelector(r);s||this.lastPageReached(t,e)}}},s.lastPageReached=function(t,e){this.canLoad=!1,this.dispatchEvent("last",null,[t,e])},s.onPageError=function(t,e){return this.isLoading=!1,this.canLoad=!1,this.dispatchEvent("error",null,[t,e]),t},e.create.prefill=function(){if(this.options.prefill){var t=this.options.append;if(!t)return void console.error("append option required for prefill. Set as :"+t);this.updateMeasurements(),this.updateScroller(),this.isPrefilling=!0,this.on("append",this.prefill),this.once("error",this.stopPrefill),this.once("last",this.stopPrefill),this.prefill()}},s.prefill=function(){var t=this.getPrefillDistance();this.isPrefilling=t>=0,this.isPrefilling?(this.log("prefill"),this.loadNextPage()):this.stopPrefill()},s.getPrefillDistance=function(){return this.options.elementScroll?this.scroller.clientHeight-this.scroller.scrollHeight:this.windowHeight-this.element.clientHeight},s.stopPrefill=function(){this.log("stopPrefill"),this.off("append",this.prefill)},e}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/scroll-watch",["./core","fizzy-ui-utils/utils"],function(i,n){return e(t,i,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,function(t,e,i){var n=e.prototype;return e.defaults.scrollThreshold=400,e.create.scrollWatch=function(){this.pageScrollHandler=this.onPageScroll.bind(this),this.resizeHandler=this.onResize.bind(this);var t=this.options.scrollThreshold,e=t||0===t;e&&this.enableScrollWatch()},e.destroy.scrollWatch=function(){this.disableScrollWatch()},n.enableScrollWatch=function(){this.isScrollWatching||(this.isScrollWatching=!0,this.updateMeasurements(),this.updateScroller(),this.on("last",this.disableScrollWatch),this.bindScrollWatchEvents(!0))},n.disableScrollWatch=function(){this.isScrollWatching&&(this.bindScrollWatchEvents(!1),delete this.isScrollWatching)},n.bindScrollWatchEvents=function(e){var i=e?"addEventListener":"removeEventListener";this.scroller[i]("scroll",this.pageScrollHandler),t[i]("resize",this.resizeHandler)},n.onPageScroll=e.throttle(function(){var t=this.getBottomDistance();t<=this.options.scrollThreshold&&this.dispatchEvent("scrollThreshold")}),n.getBottomDistance=function(){return this.options.elementScroll?this.getElementBottomDistance():this.getWindowBottomDistance()},n.getWindowBottomDistance=function(){var e=this.top+this.element.clientHeight,i=t.pageYOffset+this.windowHeight;return e-i},n.getElementBottomDistance=function(){var t=this.scroller.scrollHeight,e=this.scroller.scrollTop+this.scroller.clientHeight;return t-e},n.onResize=function(){this.updateMeasurements()},i.debounceMethod(e,"onResize",150),e}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/history",["./core","fizzy-ui-utils/utils"],function(i,n){return e(t,i,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,function(t,e,i){var n=e.prototype;e.defaults.history="replace";var o=document.createElement("a");return e.create.history=function(){if(this.options.history){o.href=this.getAbsolutePath();var t=o.origin||o.protocol+"//"+o.host,e=t==location.origin;return e?void(this.options.append?this.createHistoryAppend():this.createHistoryPageLoad()):void console.error("[InfiniteScroll] cannot set history with different origin: "+o.origin+" on "+location.origin+" . History behavior disabled.")}},n.createHistoryAppend=function(){this.updateMeasurements(),this.updateScroller(),this.scrollPages=[{top:0,path:location.href,title:document.title}],this.scrollPageIndex=0,this.scrollHistoryHandler=this.onScrollHistory.bind(this),this.unloadHandler=this.onUnload.bind(this),this.scroller.addEventListener("scroll",this.scrollHistoryHandler),this.on("append",this.onAppendHistory),this.bindHistoryAppendEvents(!0)},n.bindHistoryAppendEvents=function(e){var i=e?"addEventListener":"removeEventListener";this.scroller[i]("scroll",this.scrollHistoryHandler),t[i]("unload",this.unloadHandler)},n.createHistoryPageLoad=function(){this.on("load",this.onPageLoadHistory)},e.destroy.history=n.destroyHistory=function(){var t=this.options.history&&this.options.append;t&&this.bindHistoryAppendEvents(!1)},n.onAppendHistory=function(t,e,i){if(i&&i.length){var n=i[0],r=this.getElementScrollY(n);o.href=e,this.scrollPages.push({top:r,path:o.href,title:t.title})}},n.getElementScrollY=function(t){return this.options.elementScroll?this.getElementElementScrollY(t):this.getElementWindowScrollY(t)},n.getElementWindowScrollY=function(e){var i=e.getBoundingClientRect();return i.top+t.pageYOffset},n.getElementElementScrollY=function(t){return t.offsetTop-this.top},n.onScrollHistory=function(){for(var t,e,i=this.getScrollViewY(),n=0;n<this.scrollPages.length;n++){var o=this.scrollPages[n];if(o.top>=i)break;t=n,e=o}t!=this.scrollPageIndex&&(this.scrollPageIndex=t,this.setHistory(e.title,e.path))},i.debounceMethod(e,"onScrollHistory",150),n.getScrollViewY=function(){return this.options.elementScroll?this.scroller.scrollTop+this.scroller.clientHeight/2:t.pageYOffset+this.windowHeight/2},n.setHistory=function(t,e){var i=this.options.history,n=i&&history[i+"State"];n&&(history[i+"State"](null,t,e),this.options.historyTitle&&(document.title=t),this.dispatchEvent("history",null,[t,e]))},n.onUnload=function(){var e=this.scrollPageIndex;if(0!==e){var i=this.scrollPages[e],n=t.pageYOffset-i.top+this.top;this.destroyHistory(),scrollTo(0,n)}},n.onPageLoadHistory=function(t,e){this.setHistory(t.title,e)},e}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/button",["./core","fizzy-ui-utils/utils"],function(i,n){return e(t,i,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,function(t,e,i){function n(t,e){this.element=t,this.infScroll=e,this.clickHandler=this.onClick.bind(this),this.element.addEventListener("click",this.clickHandler),e.on("request",this.disable.bind(this)),e.on("load",this.enable.bind(this)),e.on("error",this.hide.bind(this)),e.on("last",this.hide.bind(this))}return e.create.button=function(){var t=i.getQueryElement(this.options.button);if(t)return void(this.button=new n(t,this))},e.destroy.button=function(){this.button&&this.button.destroy()},n.prototype.onClick=function(t){t.preventDefault(),this.infScroll.loadNextPage()},n.prototype.enable=function(){this.element.removeAttribute("disabled")},n.prototype.disable=function(){this.element.disabled="disabled"},n.prototype.hide=function(){this.element.style.display="none"},n.prototype.destroy=function(){this.element.removeEventListener("click",this.clickHandler)},e.Button=n,e}),function(t,e){"function"==typeof define&&define.amd?define("infinite-scroll/js/status",["./core","fizzy-ui-utils/utils"],function(i,n){return e(t,i,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,function(t,e,i){function n(t){r(t,"none")}function o(t){r(t,"block")}function r(t,e){t&&(t.style.display=e)}var s=e.prototype;return e.create.status=function(){var t=i.getQueryElement(this.options.status);t&&(this.statusElement=t,this.statusEventElements={request:t.querySelector(".infinite-scroll-request"),error:t.querySelector(".infinite-scroll-error"),last:t.querySelector(".infinite-scroll-last")},this.on("request",this.showRequestStatus),this.on("error",this.showErrorStatus),this.on("last",this.showLastStatus),this.bindHideStatus("on"))},s.bindHideStatus=function(t){var e=this.options.append?"append":"load";this[t](e,this.hideAllStatus)},s.showRequestStatus=function(){this.showStatus("request")},s.showErrorStatus=function(){this.showStatus("error")},s.showLastStatus=function(){this.showStatus("last"),this.bindHideStatus("off")},s.showStatus=function(t){o(this.statusElement),this.hideStatusEventElements();var e=this.statusEventElements[t];o(e)},s.hideAllStatus=function(){n(this.statusElement),this.hideStatusEventElements()},s.hideStatusEventElements=function(){for(var t in this.statusEventElements){var e=this.statusEventElements[t];n(e)}},e}),function(t,e){"function"==typeof define&&define.amd?define(["infinite-scroll/js/core","infinite-scroll/js/page-load","infinite-scroll/js/scroll-watch","infinite-scroll/js/history","infinite-scroll/js/button","infinite-scroll/js/status"],e):"object"==typeof module&&module.exports&&(module.exports=e(require("./core"),require("./page-load"),require("./scroll-watch"),require("./history"),require("./button"),require("./status")))}(window,function(t){return t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){if(Array.isArray(t))return t;var e="object"==typeof t&&"number"==typeof t.length;return e?h.call(t):[t]}function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);var s=t;return"string"==typeof t&&(s=document.querySelectorAll(t)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof e?r=e:i(this.options,e),r&&this.on("always",r),this.getImages(),l&&(this.jqDeferred=new l.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||t))}function r(t){this.img=t}function s(t,e){this.url=t,this.element=e,this.img=new Image}var l=t.jQuery,a=t.console,h=Array.prototype.slice;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),this.options.background===!0&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&c[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var c={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var i=new s(t,e);this.images.push(i)},o.prototype.check=function(){function t(t,i,n){setTimeout(function(){e.progress(t,i,n)})}var e=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},o.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();return t?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(l=e,l.fn.imagesLoaded=function(t,e){var i=new o(this,t,e);return i.jqDeferred.promise(l(this))})},o.makeJQueryPlugin(),o});