/*! * jQuery Popup Overlay * * @requires jQuery v1.7.1+ * @link https://vast-engineering.github.com/jquery-popup-overlay/ */ ;(function ($) { /* eslint-disable-line */ var $window = $(window); var options = {}; var zindexvalues = []; var lastclicked = []; var scrollbarwidth; var bodymarginright = null; var opensuffix = '_open'; var closesuffix = '_close'; var visiblePopupsArray = []; var transitionsupport = null; var opentimer; var iOS = /(iPad|iPhone|iPod)/.test(navigator.userAgent); var focusableElementsString = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"; var methods = { _init: function (el) { var $el = $(el); var options = $el.data('popupoptions'); lastclicked[el.id] = false; zindexvalues[el.id] = 0; if (!$el.data('popup-initialized')) { $el.attr('data-popup-initialized', 'true'); methods._initonce(el); } if (options.autoopen) { setTimeout(function() { methods.show(el, 0); }, 0); } }, _initonce: function (el) { var $el = $(el); var $body = $('body'); var $wrapper; var options = $el.data('popupoptions'); bodymarginright = parseInt($body.css('margin-right'), 10); transitionsupport = document.body.style.webkitTransition !== undefined || document.body.style.MozTransition !== undefined || document.body.style.msTransition !== undefined || document.body.style.OTransition !== undefined || document.body.style.transition !== undefined; if (options.scrolllock) { // Calculate the browser's scrollbar width dynamically var parent; var child; if (typeof scrollbarwidth === 'undefined') { parent = $('
').appendTo('body'); child = parent.children(); scrollbarwidth = child.innerWidth() - child.height(99).innerWidth(); parent.remove(); } } if (!$el.attr('id')) { $el.attr('id', 'j-popup-' + parseInt((Math.random() * 100000000), 10)); } $el.addClass('popup_content'); if ((options.background) && (!$('#' + el.id + '_background').length)) { $body.append(''); var $background = $('#' + el.id + '_background'); $background.css({ opacity: 0, visibility: 'hidden', backgroundColor: options.color, position: 'fixed', top: 0, right: 0, bottom: 0, left: 0 }); if (options.setzindex && !options.autozindex) { $background.css('z-index', '100000'); } if (options.transition) { $background.css('transition', options.transition); } } $body.append(el); $el.wrap('