PageSourceSearch

https://mathuravrindavantour.com/blog/wp-content/plugins/easy-shar…/js/jquery.popupoverlay.js?ver=1.7.10

js mathuravrindavantour.com collected 2026-10-02 11:11:19 UTC 30,490 bytes, 836 lines download raw bytes

1/*!
2 * jQuery Popup Overlay
3 *
4 * @version 1.7.10
5 * @requires jQuery v1.7.1+
6 * @link http://vast-engineering.github.com/jquery-popup-overlay/
7 */
8;(function ($) {
9
10    var $window = $(window);
11    var options = {};
12    var zindexvalues = [];
13    var lastclicked = [];
14    var scrollbarwidth;
15    var bodymarginright = null;
16    var opensuffix = '_open';
17    var closesuffix = '_close';
18    var visiblePopupsArray = [];
19    var transitionsupport = null;
20    var opentimer;
21    var iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
22    var focusableElementsString = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]";
23
24    var methods = {
25
26        _init: function (el) {
27            var $el = $(el);
28            var options = $el.data('popupoptions');
29            lastclicked[el.id] = false;
30            zindexvalues[el.id] = 0;
31
32            if (!$el.data('popup-initialized')) {
33                $el.attr('data-popup-initialized', 'true');
34                methods._initonce(el);
35            }
36
37            if (options.autoopen) {
38                setTimeout(function() {
39                    methods.show(el, 0);
40                }, 0);
41            }
42        },
43
44        _initonce: function (el) {
45            var $el = $(el);
46            var $body = $('body');
47            var $wrapper;
48            var options = $el.data('popupoptions');
49            var css;
50
51            bodymarginright = parseInt($body.css('margin-right'), 10);
52            transitionsupport = document.body.style.webkitTransition !== undefined ||
53                                document.body.style.MozTransition !== undefined ||
54                                document.body.style.msTransition !== undefined ||
55                                document.body.style.OTransition !== undefined ||
56                                document.body.style.transition !== undefined;
57
58            if (options.type == 'tooltip') {
59                options.background = false;
60                options.scrolllock = false;
61            }
62
63            if (options.backgroundactive) {
64                options.background = false;
65                options.blur = false;
66                options.scrolllock = false;
67            }
68
69            if (options.scrolllock) {
70                // Calculate the browser's scrollbar width dynamically
71                var parent;
72                var child;
73                if (typeof scrollbarwidth === 'undefined') {
74                    parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body');
75                    child = parent.children();
76                    scrollbarwidth = child.innerWidth() - child.height(99).innerWidth();
77                    parent.remove();
78                }
79            }
80
81            if (!$el.attr('id')) {
82                $el.attr('id', 'j-popup-' + parseInt((Math.random() * 100000000), 10));
83            }
84
85            $el.addClass('popup_content');
86
87            $body.prepend(el);
88
89            $el.wrap('<div id="' + el.id + '_wrapper" class="popup_wrapper" />');
90
91            $wrapper = $('#' + el.id + '_wrapper');
92
93            $wrapper.css({
94                opacity: 0,
95                visibility: 'hidden',
96                position: 'absolute'
97            });
98
99            // Make div clickable in iOS
100            if (iOS) {
101                $wrapper.css('cursor', 'pointer');
102            }
103
104            if (options.type == 'overlay') {
105                $wrapper.css('overflow','auto');
106            }
107
108            $el.css({
109                opacity: 0,
110                visibility: 'hidden',
111                display: 'inline-block'
112            });
113
114            if (options.setzindex && !options.autozindex) {
115                $wrapper.css('z-index', '100001');
116            }
117
118            if (!options.outline) {
119                $el.css('outline', 'none');
120            }
121
122            if (options.transition) {
123                $el.css('transition', options.transition);
124                $wrapper.css('transition', options.transition);
125            }
126
127            // Hide popup content from screen readers initially
128            $el.attr('aria-hidden', true);
129
130            if ((options.background) && (!$('#' + el.id + '_background').length)) {
131
132                $body.prepend('<div id="' + el.id + '_background" class="popup_background"></div>');
133
134                var $background = $('#' + el.id + '_background');
135
136                $background.css({
137                    opacity: 0,
138                    visibility: 'hidden',
139                    backgroundColor: options.color,
140                    position: 'fixed',
141                    top: 0,
142                    right: 0,
143                    bottom: 0,
144                    left: 0
145                });
146
147                if (options.setzindex && !options.autozindex) {
148                    $background.css('z-index', '100000');
149                }
150
151                if (options.transition) {
152                    $background.css('transition', options.transition);
153                }
154            }
155
156            if (options.type == 'overlay') {
157                $el.css({
158                    textAlign: 'left',
159                    position: 'relative',
160                    verticalAlign: 'middle'
161                });
162
163                css = {
164                    position: 'fixed',
165                    width: '100%',
166                    height: '100%',
167                    top: 0,
168                    left: 0,
169                    textAlign: 'center'
170                };
171
172                if(options.backgroundactive){
173                    css.position = 'relative';
174                    css.height = '0';
175                    css.overflow = 'visible';
176                }
177
178                $wrapper.css(css);
179
180                // CSS vertical align helper
181                $wrapper.append('<div class="popup_align" />');
182
183                $('.popup_align').css({
184                    display: 'inline-block',
185                    verticalAlign: 'middle',
186                    height: '100%'
187                });
188            }
189
190            // Add WAI ARIA role to announce dialog to screen readers
191            $el.attr('role', 'dialog');
192
193            var openelement =  (options.openelement) ? options.openelement : ('.' + el.id + opensuffix);
194
195            $(openelement).each(function (i, item) {
196                $(item).attr('data-popup-ordinal', i);
197
198                if (!item.id) {
199                    $(item).attr('id', 'open_' + parseInt((Math.random() * 100000000), 10));
200                }
201            });
202
203            // Set aria-labelledby (if aria-label or aria-labelledby is not set in html)
204            if (!($el.attr('aria-labelledby') || $el.attr('aria-label'))) {
205                $el.attr('aria-labelledby', $(openelement).attr('id'));
206            }
207
208            // Show and hide tooltips on hover
209            if(options.action == 'hover'){
210                options.keepfocus = false;
211
212                // Handler: mouseenter, focusin
213                $(openelement).on('mouseenter', function (event) {
214                    methods.show(el, $(this).data('popup-ordinal'));
215                });
216
217                // Handler: mouseleave, focusout
218                $(openelement).on('mouseleave', function (event) {
219                    methods.hide(el);
220                });
221
222            } else {
223
224                // Handler: Show popup when clicked on `open` element
225                $(document).on('click', openelement, function (event) {
226                    event.preventDefault();
227
228                    var ord = $(this).data('popup-ordinal');
229                    setTimeout(function() { // setTimeout is to allow `close` method to finish (for issues with multiple tooltips)
230                        methods.show(el, ord);
231                    }, 0);
232                });
233            }
234
235            if (options.closebutton) {
236                methods.addclosebutton(el);
237            }
238
239            if (options.detach) {
240                $el.hide().detach();
241            } else {
242                $wrapper.hide();
243            }
244        },
245
246        /**
247         * Show method
248         *
249         * @param {object} el - popup instance DOM node
250         * @param {number} ordinal - order number of an `open` element
251         */
252        show: function (el, ordinal) {
253            var $el = $(el);
254
255            if ($el.data('popup-visible')) return;
256
257            // Initialize if not initialized. Required for: $('#popup').popup('show')
258            if (!$el.data('popup-initialized')) {
259                methods._init(el);
260            }
261            $el.attr('data-popup-initialized', 'true');
262
263            var $body = $('body');
264            var options = $el.data('popupoptions');
265            var $wrapper = $('#' + el.id + '_wrapper');
266            var $background = $('#' + el.id + '_background');
267
268            // `beforeopen` callback event
269            callback(el, ordinal, options.beforeopen);
270
271            // Remember last clicked place
272            lastclicked[el.id] = ordinal;
273
274            // Add popup id to visiblePopupsArray
275            setTimeout(function() {
276                visiblePopupsArray.push(el.id);
277            }, 0);
278
279            // Calculating maximum z-index
280            if (options.autozindex) {
281
282                var elements = document.getElementsByTagName('*');
283                var len = elements.length;
284                var maxzindex = 0;
285
286                for(var i=0; i<len; i++){
287
288                    var elementzindex = $(elements[i]).css('z-index');
289
290                    if(elementzindex !== 'auto'){
291
292                      elementzindex = parseInt(elementzindex, 10);
293
294                      if(maxzindex < elementzindex){
295                        maxzindex = elementzindex;
296                      }
297                    }
298                }
299
300                zindexvalues[el.id] = maxzindex;
301
302                // Add z-index to the background
303                if (options.background) {
304                    if (zindexvalues[el.id] > 0) {
305                        $('#' + el.id + '_background').css({
306                            zIndex: (zindexvalues[el.id] + 1)
307                        });
308                    }
309                }
310
311                // Add z-index to the wrapper
312                if (zindexvalues[el.id] > 0) {
313                    $wrapper.css({
314                        zIndex: (zindexvalues[el.id] + 2)
315                    });
316                }
317            }
318
319            if (options.detach) {
320                $wrapper.prepend(el);
321                $el.show();
322            } else {
323                $wrapper.show();
324            }
325
326            opentimer = setTimeout(function() {
327                $wrapper.css({
328                    visibility: 'visible',
329                    opacity: 1
330                });
331
332                $('html').addClass('popup_visible').addClass('popup_visible_' + el.id);
333                $wrapper.addClass('popup_wrapper_visible');
334            }, 20); // 20ms required for opening animation to occur in FF
335
336            // Disable background layer scrolling when popup is opened
337            if (options.scrolllock) {
338                $body.css('overflow', 'hidden');
339                if ($body.height() > $window.height()) {
340                    $body.css('margin-right', bodymarginright + scrollbarwidth);
341                }
342            }
343
344            if(options.backgroundactive){
345                //calculates the vertical align
346                $el.css({
347                    top:(
348                        $window.height() - (
349                            $el.get(0).offsetHeight +
350                            parseInt($el.css('margin-top'), 10) +
351                            parseInt($el.css('margin-bottom'), 10)
352                        )
353                    )/2 +'px'
354                });
355            }
356
357            $el.css({
358                'visibility': 'visible',
359                'opacity': 1
360            });
361
362            // Show background
363            if (options.background) {
364                $background.css({
365                    'visibility': 'visible',
366                    'opacity': options.opacity
367                });
368
369                // Fix IE8 issue with background not appearing
370                setTimeout(function() {
371                    $background.css({
372                        'opacity': options.opacity
373                    });
374                }, 0);
375            }
376
377            $el.data('popup-visible', true);
378
379            // Position popup
380            methods.reposition(el, ordinal);
381
382            // Remember which element had focus before opening a popup
383            $el.data('focusedelementbeforepopup', document.activeElement);
384
385            // Handler: Keep focus inside dialog box
386            if (options.keepfocus) {
387                // Make holder div focusable
388                $el.attr('tabindex', -1);
389
390                // Focus popup or user specified element.
391                // Initial timeout of 50ms is set to give some time to popup to show after clicking on
392                // `open` element, and after animation is complete to prevent background scrolling.
393                setTimeout(function() {
394                    if (options.focuselement === 'closebutton') {
395                        $('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();
396                    } else if (options.focuselement) {
397                        $(options.focuselement).focus();
398                    } else {
399                        $el.focus();
400                    }
401                }, options.focusdelay);
402
403            }
404
405            // Hide main content from screen readers
406            $(options.pagecontainer).attr('aria-hidden', true);
407
408            // Reveal popup content to screen readers
409            $el.attr('aria-hidden', false);
410
411            callback(el, ordinal, options.onopen);
412
413            if (transitionsupport) {
414                $wrapper.one('transitionend', function() {
415                    callback(el, ordinal, options.opentransitionend);
416                });
417            } else {
418                callback(el, ordinal, options.opentransitionend);
419            }
420        },
421
422        /**
423         * Hide method
424         *
425         * @param object el - popup instance DOM node
426         * @param boolean outerClick - click on the outer content below popup
427         */
428        hide: function (el, outerClick) {
429            // Get index of popup ID inside of visiblePopupsArray
430            var popupIdIndex = $.inArray(el.id, visiblePopupsArray);
431
432            // If popup is not opened, ignore the rest of the function
433            if (popupIdIndex === -1) {
434                return;
435            }
436
437            if(opentimer) clearTimeout(opentimer);
438
439            var $body = $('body');
440            var $el = $(el);
441            var options = $el.data('popupoptions');
442            var $wrapper = $('#' + el.id + '_wrapper');
443            var $background = $('#' + el.id + '_background');
444
445            $el.data('popup-visible', false);
446
447            if (visiblePopupsArray.length === 1) {
448                $('html').removeClass('popup_visible').removeClass('popup_visible_' + el.id);
449            } else {
450                if($('html').hasClass('popup_visible_' + el.id)) {
451                    $('html').removeClass('popup_visible_' + el.id);
452                }
453            }
454
455            // Remove popup from the visiblePopupsArray
456            visiblePopupsArray.splice(popupIdIndex, 1);
457
458            if($wrapper.hasClass('popup_wrapper_visible')) {
459                $wrapper.removeClass('popup_wrapper_visible');
460            }
461
462            // Focus back on saved element
463            if (options.keepfocus && !outerClick) {
464                setTimeout(function() {
465                    if ($($el.data('focusedelementbeforepopup')).is(':visible')) {
466                        $el.data('focusedelementbeforepopup').focus();
467                    }
468                }, 0);
469            }
470
471            // Hide popup
472            $wrapper.css({
473                'visibility': 'hidden',
474                'opacity': 0
475            });
476            $el.css({
477                'visibility': 'hidden',
478                'opacity': 0
479            });
480
481            // Hide background
482            if (options.background) {
483                $background.css({
484                    'visibility': 'hidden',
485                    'opacity': 0
486                });
487            }
488
489            // Reveal main content to screen readers
490            $(options.pagecontainer).attr('aria-hidden', false);
491
492            // Hide popup content from screen readers
493            $el.attr('aria-hidden', true);
494
495            // `onclose` callback event
496            callback(el, lastclicked[el.id], options.onclose);
497
498            if (transitionsupport && $el.css('transition-duration') !== '0s') {
499                $el.one('transitionend', function(e) {
500
501                    if (!($el.data('popup-visible'))) {
502                        if (options.detach) {
503                            $el.hide().detach();
504                        } else {
505                            $wrapper.hide();
506                        }
507                    }
508
509                    // Re-enable scrolling of background layer
510                    if (options.scrolllock) {
511                        setTimeout(function() {
512                            $body.css({
513                                overflow: 'visible',
514                                'margin-right': bodymarginright
515                            });
516                        }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
517                    }
518
519                    callback(el, lastclicked[el.id], options.closetransitionend);
520                });
521            } else {
522                if (options.detach) {
523                    $el.hide().detach();
524                } else {
525                    $wrapper.hide();
526                }
527
528                // Re-enable scrolling of background layer
529                if (options.scrolllock) {
530                    setTimeout(function() {
531                        $body.css({
532                            overflow: 'visible',
533                            'margin-right': bodymarginright
534                        });
535                    }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
536                }
537
538                callback(el, lastclicked[el.id], options.closetransitionend);
539            }
540
541        },
542
543        /**
544         * Toggle method
545         *
546         * @param {object} el - popup instance DOM node
547         * @param {number} ordinal - order number of an `open` element
548         */
549        toggle: function (el, ordinal) {
550            if ($(el).data('popup-visible')) {
551                methods.hide(el);
552            } else {
553                setTimeout(function() {
554                    methods.show(el, ordinal);
555                }, 0);
556            }
557        },
558
559        /**
560         * Reposition method
561         *
562         * @param {object} el - popup instance DOM node
563         * @param {number} ordinal - order number of an `open` element
564         */
565        reposition: function (el, ordinal) {
566            var $el = $(el);
567            var options = $el.data('popupoptions');
568            var $wrapper = $('#' + el.id + '_wrapper');
569            var $background = $('#' + el.id + '_background');
570
571            ordinal = ordinal || 0;
572
573            // Tooltip type
574            if (options.type == 'tooltip') {
575                $wrapper.css({
576                    'position': 'absolute'
577                });
578
579                var $tooltipanchor;
580                if (options.tooltipanchor) {
581                    $tooltipanchor = $(options.tooltipanchor);
582                } else if (options.openelement) {
583                    $tooltipanchor = $(options.openelement).filter('[data-popup-ordinal="' + ordinal + '"]');
584                } else {
585                    $tooltipanchor = $('.' + el.id + opensuffix + '[data-popup-ordinal="' + ordinal + '"]');
586                }
587
588                var linkOffset = $tooltipanchor.offset();
589
590                // Horizontal position for tooltip
591                if (options.horizontal == 'right') {
592                    $wrapper.css('left', linkOffset.left + $tooltipanchor.outerWidth() + options.offsetleft);
593                } else if (options.horizontal == 'leftedge') {
594                    $wrapper.css('left', linkOffset.left + $tooltipanchor.outerWidth() - $tooltipanchor.outerWidth() +  options.offsetleft);
595                } else if (options.horizontal == 'left') {
596                    $wrapper.css('right', $window.width() - linkOffset.left  - options.offsetleft);
597                } else if (options.horizontal == 'rightedge') {
598                    $wrapper.css('right', $window.width()  - linkOffset.left - $tooltipanchor.outerWidth() - options.offsetleft);
599                } else {
600                    $wrapper.css('left', linkOffset.left + ($tooltipanchor.outerWidth() / 2) - ($el.outerWidth() / 2) - parseFloat($el.css('marginLeft')) + options.offsetleft);
601                }
602
603                // Vertical position for tooltip
604                if (options.vertical == 'bottom') {
605                    $wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() + options.offsettop);
606                } else if (options.vertical == 'bottomedge') {
607                    $wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() - $el.outerHeight() + options.offsettop);
608                }
608 else if (options.vertical == 'top') {
609                    $wrapper.css('bottom', $window.height() - linkOffset.top - options.offsettop);
610                } else if (options.vertical == 'topedge') {
611                    $wrapper.css('bottom', $window.height() - linkOffset.top - $el.outerHeight() - options.offsettop);
612                } else {
613                    $wrapper.css('top', linkOffset.top + ($tooltipanchor.outerHeight() / 2) - ($el.outerHeight() / 2) - parseFloat($el.css('marginTop')) + options.offsettop);
614                }
615
616            // Overlay type
617            } else if (options.type == 'overlay') {
618
619                // Horizontal position for overlay
620                if (options.horizontal) {
621                    $wrapper.css('text-align', options.horizontal);
622                } else {
623                    $wrapper.css('text-align', 'center');
624                }
625
626                // Vertical position for overlay
627                if (options.vertical) {
628                    $el.css('vertical-align', options.vertical);
629                } else {
630                    $el.css('vertical-align', 'middle');
631                }
632            }
633        },
634
635        /**
636         * Add-close-button method
637         *
638         * @param {object} el - popup instance DOM node
639         */
640        addclosebutton: function (el) {
641            var genericCloseButton;
642
643            if ($(el).data('popupoptions').closebuttonmarkup) {
644                genericCloseButton = $(options.closebuttonmarkup).addClass(el.id + '_close');
645            } else {
646                genericCloseButton = '<button class="popup_close ' + el.id + '_close" title="Close" aria-label="Close"><span aria-hidden="true">×</span></button>';
647            }
648
649            if ($el.data('popup-initialized')){
650                $el.append(genericCloseButton);
651            }
652
653        }
654
655    };
656
657    /**
658     * Callback event calls
659     *
660     * @param {object} el - popup instance DOM node
661     * @param {number} ordinal - order number of an `open` element
662     * @param {function} func - callback function
663     */
664    var callback = function (el, ordinal, func) {
665        var options = $(el).data('popupoptions');
666        var openelement =  (options.openelement) ? options.openelement : ('.' + el.id + opensuffix);
667        var elementclicked = $(openelement + '[data-popup-ordinal="' + ordinal + '"]');
668        if (typeof func == 'function') {
669            func.call($(el), el, elementclicked);
670        }
671    };
672
673    // Hide popup if ESC key is pressed
674    $(document).on('keydown', function (event) {
675        if(visiblePopupsArray.length) {
676            var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];
677            var el = document.getElementById(elementId);
678
679            if ($(el).data('popupoptions').escape && event.keyCode == 27) {
680                methods.hide(el);
681            }
682        }
683    });
684
685    // Hide popup on click
686    $(document).on('click', function (event) {
687        if(visiblePopupsArray.length) {
688            var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];
689            var el = document.getElementById(elementId);
690            var closeButton = ($(el).data('popupoptions').closeelement) ? $(el).data('popupoptions').closeelement : ('.' + el.id + closesuffix);
691
692            // If Close button clicked
693            if ($(event.target).closest(closeButton).length) {
694                event.preventDefault();
695                methods.hide(el);
696            }
697
698            // If clicked outside of popup
699            if ($(el).data('popupoptions').blur && !$(event.target).closest('#' + elementId).length && event.which !== 2 && $(event.target).is(':visible')) {
700
701                if ($(el).data('popupoptions').background) {
702                    // If clicked on popup cover
703                    methods.hide(el);
704
705                    // Older iOS/Safari will trigger a click on the elements below the cover,
706                    // when tapping on the cover, so the default action needs to be prevented.
707                    event.preventDefault();
708
709                } else {
710                    // If clicked on outer content
711                    methods.hide(el, true);
712                }
713            }
714        }
715    });
716
717    // Keep keyboard focus inside of popup
718    $(document).on('keydown', function(event) {
719        if(visiblePopupsArray.length && event.which == 9) {
720
721            // If tab or shift-tab pressed
722            var elementId = visiblePopupsArray[visiblePopupsArray.length - 1];
723            var el = document.getElementById(elementId);
724
725            // Get list of all children elements in given object
726            var popupItems = $(el).find('*');
727
728            // Get list of focusable items
729            var focusableItems = popupItems.filter(focusableElementsString).filter(':visible');
730
731            // Get currently focused item
732            var focusedItem = $(':focus');
733
734            // Get the number of focusable items
735            var numberOfFocusableItems = focusableItems.length;
736
737            // Get the index of the currently focused item
738            var focusedItemIndex = focusableItems.index(focusedItem);
739
740            // If popup doesn't contain focusable elements, focus popup itself
741            if (numberOfFocusableItems === 0) {
742                $(el).focus();
743                event.preventDefault();
744            } else {
745                if (event.shiftKey) {
746                    // Back tab
747                    // If focused on first item and user preses back-tab, go to the last focusable item
748                    if (focusedItemIndex === 0) {
749                        focusableItems.get(numberOfFocusableItems - 1).focus();
750                        event.preventDefault();
751                    }
752
753                } else {
754                    // Forward tab
755                    // If focused on the last item and user preses tab, go to the first focusable item
756                    if (focusedItemIndex == numberOfFocusableItems - 1) {
757                        focusableItems.get(0).focus();
758                        event.preventDefault();
759                    }
760                }
761            }
762        }
763    });
764
765    /**
766     * Plugin API
767     */
768    $.fn.popup = function (customoptions) {
769        return this.each(function () {
770
771            var $el = $(this);
772
773            if (typeof customoptions === 'object') {  // e.g. $('#popup').popup({'color':'blue'})
774                var opt = $.extend({}, $.fn.popup.defaults, customoptions, $el.data('popupoptions'));
775                $el.data('popupoptions', opt);
776                options = $el.data('popupoptions');
777
778                methods._init(this);
779
780            } else if (typeof customoptions === 'string') { // e.g. $('#popup').popup('hide')
781                if (!($el.data('popupoptions'))) {
782                    $el.data('popupoptions', $.fn.popup.defaults);
783                    options = $el.data('popupoptions');
784                }
785
786                methods[customoptions].call(this, this);
787
788            } else { // e.g. $('#popup').popup()
789                if (!($el.data('popupoptions'))) {
790                    $el.data('popupoptions', $.fn.popup.defaults);
791                    options = $el.data('popupoptions');
792                }
793
794                methods._init(this);
795
796            }
797
798        });
799    };
800
801    $.fn.popup.defaults = {
802        type: 'overlay',
803        autoopen: false,
804        background: true,
805        backgroundactive: false,
806        color: 'black',
807        opacity: '0.5',
808        horizontal: 'center',
809        vertical: 'middle',
810        offsettop: 0,
811        offsetleft: 0,
812        escape: true,
813        blur: true,
814        setzindex: true,
815        autozindex: false,
816        scrolllock: false,
817        closebutton: false,
818        closebuttonmarkup: null,
819        keepfocus: true,
820        focuselement: null,
821        focusdelay: 50,
822        outline: false,
823        pagecontainer: null,
824        detach: false,
825        openelement: null,
826        closeelement: null,
827        transition: null,
828        tooltipanchor: null,
829        beforeopen: null,
830        onclose: null,
831        onopen: null,
832        opentransitionend: null,
833        closetransitionend: null
834    };
835
836})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.