PageSourceSearch

https://picodojaragua.com/content-wp/plugins/easy-modal/assets/scr…&ver=2'%20defer='defer'%20defer='defer

js picodojaragua.com collected 2026-10-09 16:55:22 UTC 22,358 bytes, 782 lines download raw bytes

1(function (jQuery) {
2	if (!jQuery.isFunction(jQuery.fn.on)) {
3		jQuery.fn.on = function(types, sel, fn) {
4			return this.delegate(sel, types, fn);
5		};
6		jQuery.fn.off = function(types, sel, fn) {
7			return this.undelegate(sel, types, fn);
8		};
9	}
10
11	if (!jQuery.support.transition)
12		jQuery.fn.transition = jQuery.fn.animate;
13
14	jQuery.fn.emodal = function (method) {
15		// Method calling logic
16		if (jQuery.fn.emodal.methods[method]) {
17			return jQuery.fn.emodal.methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
18		} else if (typeof method === 'object' || !method) {
19			return jQuery.fn.emodal.methods.init.apply(this, arguments);
20		} else {
21			jQuery.error('Method ' + method + ' does not exist on jQuery.fn.emodal');
22		}
23	};
24	jQuery.fn.emodal.methods = {
25		init: function (options) {
26			return this.each(function () {
27				var $this = jQuery(this);
28				var settings = jQuery.extend(true, {}, jQuery.fn.emodal.defaults, $this.data('emodal'), options);
29
30				if (!$this.parent().is('body'))
31					$this.appendTo('body');
32
33				if (!jQuery('#' + settings.overlay.attr.id).length)
34					jQuery('<div>').attr(settings.overlay.attr).appendTo('body');
35
36				jQuery(window).on('resize', function () {
37					if ($this.hasClass('active'))
38						jQuery.fn.emodal.utilities.throttle(setTimeout(function () {
39							$this.emodal('reposition');
40						}, 25), 500, false);
41				});
42
43				$this
44					.data('emodal', settings)
45					.on('emodalBeforeOpen.hide_modal', function (e) {
46						jQuery(this)
47							.css({ visibility: "visible" })
48							.hide()
49							.addClass(settings.container.active_class);
50
51						if(!settings.meta.display.stackable) {
52							$this.emodal('close_all');
53						}
54					})
55					.on('emodalAfterClose.close_overlay', function (e) {
56						$overlay = jQuery('#' + settings.overlay.attr.id);
57						if ($overlay.length && $overlay.is(":visible")) {
58							$overlay.fadeOut(settings.close.close_speed);
59						}
60					})
61					.on('emodalAfterClose.reset_videos', function (e) {
62						jQuery('iframe', $this).filter('[src*="youtube"],[src*="vimeo"]').each(function () {
63							var src = jQuery(this).attr('src');
64							jQuery(this).attr('src', '').attr('src', src);
65						});
66					})
67					.on('emodalBeforeOpen.setup_close', function () {
68						$this.emodal('setup_close');
69					})
70					.on('emodalBeforeOpen.retheme', function () {
71						$this.emodal('retheme');
72					})
73					.on('emodalBeforeOpen.reposition', function () {
74						$this.emodal('reposition');
75					})
76					.trigger('emodalInit');
77				return this;
78			});
79		},
80		setup_close: function () {
81			var $this = jQuery(this),
82				settings = $this.data('emodal'),
83				$overlay = jQuery('#' + settings.overlay.attr.id),
84				$close = jQuery('.' + settings.close.attr.class, $this);
85
86			$close
87				.off('click.emodal')
88				.on("click.emodal", function (e) {
89					e.preventDefault();
90					e.stopPropagation();
91					$this.emodal('close');
92					
93				});
94			if (settings.meta.close.esc_press)
95				jQuery(window)
96				.off('keyup.emodal')
97				.on('keyup.emodal', function (e) {
98					if (e.keyCode == 27)
99						$this.emodal('close');
100				});
101
102			if (settings.meta.close.overlay_click)
103				$overlay
104				.off('click.emodal')
105				.on('click.emodal', function (e) {
106					e.preventDefault();
107					e.stopPropagation();
108					$this.emodal('close');
109				});
110
111			$this
112				.on('emodalAfterClose', function () {
113					jQuery(window).off('keyup.emodal');
114					$overlay.off('click.emodal');
115					$close.off('click.emodal');
116				})
117				.trigger('emodalSetupClose');
118		},
119		open: function (callback) {
120			var $this = jQuery(this);
121			var settings = $this.data('emodal');
122
123		   $this
124				.trigger('emodalBeforeOpen')
125				.emodal('animate', settings.meta.display.animation.type, function() {
126					$this.trigger('emodalAfterOpen');
127					if(callback !== undefined) callback();
128				});				
129			return this;
130		},
131		close: function () {
132			return this.each(function () {
133				var $this = jQuery(this),
134					settings = $this.data('emodal');
135				$this
136					.trigger('emodalBeforeClose')
137					.removeClass('active')
138					.fadeOut(settings.close.close_speed, function () {
139						$this.trigger('emodalAfterClose');
140					});
141				return this;
142			});
143		},
144		close_all: function () {
145			var settings = jQuery(this).data('emodal');
146			jQuery('.' + settings.container.attr.class).removeClass('active').hide(0);
147			return this;
148		},
149		reposition: function (callback) {
150			var $this = jQuery(this);
151			$this.trigger('emodalBeforeReposition');
152			var settings = $this.data('emodal');
153			var location = settings.meta.display.location;
154			var position = settings.meta.display.position;
155
156			var reposition = {
157				my: "",
158				at: ""
159			};
160
161			if (location.indexOf('left') >= 0) reposition = {
162				my: reposition.my + " left" + (position.left !== 0 ? "+" + position.left : ""),
163				at: reposition.at + " left"
164			};
165			if (location.indexOf('right') >= 0) reposition = {
166				my: reposition.my + " right" + (position.right !== 0 ? "-" + position.right : ""),
167				at: reposition.at + " right"
168			};
169
170			if (location.indexOf('center') >= 0)
171			{
172				if (location == 'center') reposition = {
173					my: "center",
174					at: "center"
175				};
176				else reposition = {
177					my: reposition.my + " center",
178					at: reposition.at + " center"
179				};
180			}
181
182			if (location.indexOf('top') >= 0) reposition = {
183				my: reposition.my + " top" + (position.top !== 0 ? "+" + position.top : ""),
184				at: reposition.at + " top"
185			};
186			if (location.indexOf('bottom') >= 0) reposition = {
187				my: reposition.my + " bottom" + (position.bottom !== 0 ? "-" + position.bottom : ""),
188				at: reposition.at + " bottom"
189			};
190
191
192			reposition.my = jQuery.trim(reposition.my);
193			reposition.at = jQuery.trim(reposition.at);
194			reposition.of = window;
195			reposition.collision = 'fit';
196			reposition.using = typeof (callback) == "function" ? callback : jQuery.fn.emodal.callbacks.reposition_using;
197			var opacity = false;
198			if ($this.is(':hidden')) {
199				opacity = $this.css("opacity");
200				$this.css({
201					opacity: 0
202				}).show();
203			}
204
205			if (position.fixed)
206				$this.addClass('fixed');
207			else
208				$this.removeClass('fixed');
209
210			if (settings.meta.display.size == 'custom') {
211				$this.css({
212					width: settings.meta.display.custom_width + settings.meta.display.custom_width_unit,
213					height: settings.meta.display.custom_height_auto ? 'auto' : settings.meta.display.custom_height + settings.meta.display.custom_height_unit
214				});
215			}
216
217			$this
218				.addClass('custom-position')
219				.position(reposition)
220				.trigger('emodalAfterReposition');
221
222			if (opacity) {
223				$this.css({
224					opacity: opacity
225				}).hide();
226			}
227			return this;
228		},
229		retheme: function (theme) {
230			var $this = jQuery(this);
231			$this.trigger('emodalBeforeRetheme');
232			var settings = $this.data('emodal'),
233				$overlay = jQuery('#' + settings.overlay.attr.id),
234				$container = $this,
235				$title = jQuery('> .' + settings.title.attr.class, $container),
236				$content = jQuery('> .' + settings.content.attr.class, $container),
237				$close = jQuery('> .' + settings.close.attr.class, $container);
238
239			if (theme === undefined) {
240				theme = jQuery.fn.emodal.themes[settings.theme_id];
241				if (theme === undefined) {
242					theme = jQuery.fn.emodal.themes[1];
243				}
244			}
245
246			$overlay.removeAttr('style').css({
247				backgroundColor: jQuery.fn.emodal.utilities.convert_hex(theme.overlay.background.color, theme.overlay.background.opacity)
248			});
249			var container_inset = theme.container.boxshadow.inset == 'yes' ? 'inset ' : '';
250			$container.css({
251				padding: theme.container.padding + 'px',
252				backgroundColor: jQuery.fn.emodal.utilities.convert_hex(theme.container.background.color, theme.container.background.opacity),
253				borderStyle: theme.container.border.style,
254				borderColor: theme.container.border.color,
255				borderWidth: theme.container.border.width + 'px',
256				borderRadius: theme.container.border.radius + 'px',
257				boxShadow: container_inset + theme.container.boxshadow.horizontal + 'px ' + theme.container.boxshadow.vertical + 'px ' + theme.container.boxshadow.blur + 'px ' + theme.container.boxshadow.spread + 'px ' + jQuery.fn.emodal.utilities.convert_hex(theme.container.boxshadow.color, theme.container.boxshadow.opacity)
258			});
259			$title.css({
260				color: theme.title.font.color,
261				fontSize: theme.title.font.size + 'px',
262				fontFamily: theme.title.font.family,
263				textAlign: theme.title.text.align,
264				textShadow: theme.title.textshadow.horizontal + 'px ' + theme.title.textshadow.vertical + 'px ' + theme.title.textshadow.blur + 'px ' + jQuery.fn.emodal.utilities.convert_hex(theme.title.textshadow.color, theme.title.textshadow.opacity)
265			});
266			$content.css({
267				color: theme.content.font.color,
268				//fontSize: theme.content.font.size+'px',
269				fontFamily: theme.content.font.family
270			});
271			jQuery('p, label', $content).css({
272				color: theme.content.font.color,
273				//fontSize: theme.content.font.size+'px',
274				fontFamily: theme.content.font.family
275			});
276			var close_inset = theme.close.boxshadow.inset == 'yes' ? 'inset ' : '';
277			$close.html(theme.close.text).css({
278				padding: theme.close.padding + 'px',
279				backgroundColor: jQuery.fn.emodal.utilities.convert_hex(theme.close.background.color, theme.close.background.opacity),
280				color: theme.close.font.color,
281				fontSize: theme.close.font.size + 'px',
282				fontFamily: theme.close.font.family,
283				borderStyle: theme.close.border.style,
284				borderColor: theme.close.border.color,
285				borderWidth: theme.close.border.width + 'px',
286				borderRadius: theme.close.border.radius + 'px',
287				boxShadow: close_inset + theme.close.boxshadow.horizontal + 'px ' + theme.close.boxshadow.vertical + 'px ' + theme.close.boxshadow.blur + 'px ' + theme.close.boxshadow.spread + 'px ' + jQuery.fn.emodal.utilities.convert_hex(theme.close.boxshadow.color, theme.close.boxshadow.opacity),
288				textShadow: theme.close.textshadow.horizontal + 'px ' + theme.close.textshadow.vertical + 'px ' + theme.close.textshadow.blur + 'px ' + jQuery.fn.emodal.utilities.convert_hex(theme.close.textshadow.color, theme.close.textshadow.opacity)
289			});
290			switch (theme.close.location) {
291			case "topleft":
292				$close.css({
293					top: theme.close.position.top + 'px',
294					left: theme.close.position.left + 'px'
295				});
296				break;
297			case "topright":
298				$close.css({
299					top: theme.close.position.top + 'px',
300					right: theme.close.position.right + 'px'
301				});
302				break;
303			case "bottomleft":
304				$close.css({
305					bottom: theme.close.position.bottom + 'px',
306					left: theme.close.position.left + 'px'
307				});
308				break;
309			case "bottomright":
310				$close.css({
311					bottom: theme.close.position.bottom + 'px',
312					right: theme.close.position.right + 'px'
313				});
314				break;
315			}
316			$this.trigger('emodalAfterRetheme', [theme]);
317			return this;
318		},
319		animate_overlay: function (style, duration, callback) {
320			// Method calling logic
321			var $this = jQuery(this);
322			var settings = $this.data('emodal');
323			if(settings.meta.display.overlay_disabled)
324			{
325				callback();
326			}
327			else
328			{
329			   if (jQuery.fn.emodal.overlay_animations[style])
330					return jQuery.fn.emodal.overlay_animations[style].apply(this, Array.prototype.slice.call(arguments, 1));
331				else
332					jQuery.error('Animation style ' + jQuery.fn.emodal.overlay_animations + ' does not exist.');
333			}
334			return this;
335		},
336		animate: function (style, callback) {
337			// Method calling logic
338			if (jQuery.fn.emodal.animations[style])
339				return jQuery.fn.emodal.animations[style].apply(this, Array.prototype.slice.call(arguments, 1));
340			else
341				jQuery.error('Animation style ' + jQuery.fn.emodal.animations + ' does not exist.');
342			return this;
343		}
344	};
345
346	jQuery.fn.emodal.callbacks = {
347		reposition_using: function (position) {
348			jQuery(this).css(position);
349		}
350	};
351
352	jQuery.fn.emodal.utilities = {
353		convert_hex: function (hex, opacity) {
354			hex = hex.replace('#', '');
355			r = parseInt(hex.substring(0, 2), 16);
356			g = parseInt(hex.substring(2, 4), 16);
357			b = parseInt(hex.substring(4, 6), 16);
358			result = 'rgba(' + r + ',' + g + ',' + b + ',' + opacity / 100 + ')';
359			return result;
360		},
361	    debounce: function (callback, threshold) {
362	        var timeout;
363	        return function() {
364	            var context = this, params = arguments;
365	            window.clearTimeout(timeout);
366	            timeout = window.setTimeout(function() {
367	                callback.apply(context, params);
368	            }, threshold);
369	        };
370	    },
371	    throttle: function (callback, threshold) {
372	        var suppress = false;
373	        var clear = function() {
374	            suppress = false;
375	        };
376	        return function() {
377	            if (!suppress) {
378	                callback.apply(this, arguments);
379	                window.setTimeout(clear, threshold);
380	                suppress = true;
381	            };
382	        }
383	    }
384	};
385	// Deprecated fix. utilies was renamed because of typo.
386	jQuery.fn.emodal.utilies = jQuery.fn.emodal.utilities;
387
388	jQuery.fn.emodal.defaults = {
389
390		meta: {
391			display: {
392				stackable: 0,
393				overlay_disabled: 0,
394				size: 'medium',
395				custom_width: '',
396				custom_width_unit: '%',
397				custom_height: '',
398				custom_height_unit: 'em',
399				custom_height_auto: 1,
400				location: 'center top',
401				position: {
402					top: 100,
403					left: 0,
404					bottom: 0,
405					right: 0,
406					fixed: 0
407				},
408				animation: {
409					type: 'fade',
410					speed: 350,
411					origin: 'center top'
412				}
413			},
414			close: {
415				overlay_click: 0,
416				esc_press: 1
417			}
418		},
419
420
421		container: {
422			active_class: 'active',
423			attr: {
424				class: "emodal"
425			}
426		},
427		title: {
428			attr: {
429				class: "emodal-title"
430			}
431		},
432		content: {
433			attr: {
434				class: "emodal-content"
435			}
436		},
437		close: {
438			close_speed: 0,
439			attr: {
440				class: "emodal-close"
441			}
442		},
443		overlay: {
444			attr: {
445				id: "emodal-overlay",
446				class: "emodal-overlay"
447			}
448		}
449	};
450
451	jQuery.fn.emodal.themes = emodal_themes;
452
453	jQuery.fn.emodal.overlay_animations = {
454		none: function (duration, callback) {
455			var $this = jQuery(this);
456			var settings = $this.data('emodal');
457			jQuery('#' + settings.overlay.attr.id).show(duration, callback);
458		},
459		fade: function (duration, callback) {
460			var $this = jQuery(this);
461			var settings = $this.data('emodal');
462			jQuery('#' + settings.overlay.attr.id).fadeIn(duration, callback);
463	   },
464		slide: function (duration, callback) {
465			var $this = jQuery(this);
466			var settings = $this.data('emodal');
467			jQuery('#' + settings.overlay.attr.id).slideDown(duration, callback);
468	   }
469	};
470
471	jQuery.fn.emodal.animations = {
472		none: function (callback) {
473			var $this = jQuery(this);
474			var settings = $this.data('emodal');
475			$this.emodal('animate_overlay', 'none', 0, function(){
476				 $this.show();
477				 if(callback !== undefined) callback();
478			});
479			return this;
480		},
481		slide: function (callback) {
482			var $this = jQuery(this).show(0).css({
483				opacity: 0
484			});
485			var settings = $this.data('emodal');
486			var speed = settings.meta.display.animation.speed;
487			var origin = settings.meta.display.animation.origin;
488			var start = {
489				my: "",
490				at: ""
491			};
492			switch (origin) {
493			case 'top':
494				start = {
495					my: "left+" + $this.offset().left + " bottom",
496					at: "left top"
497				};
498				break;
499			case 'bottom':
500				start = {
501					my: "left+" + $this.offset().left + " top",
502					at: "left bottom"
503				};
504				break;
505			case 'left':
506				start = {
507					my: "right top+" + $this.offset().top,
508					at: "left top"
509				};
510				break;
511			case 'right':
512				start = {
513					my: "left top+" + $this.offset().top,
514					at: "right top"
515				};
516				break;
517			default:
518				if (origin.indexOf('left') >= 0) start = {
519					my: start.my + " right",
520					at: start.at + " left"
521				};
522				if (origin.indexOf('right') >= 0) start = {
523					my: start.my + " left",
524					at: start.at + " right"
525				};
526				if (origin.indexOf('center') >= 0) start = {
527					my: start.my + " center",
528					at: start.at + " center"
529				};
530				if (origin.indexOf('top') >= 0) start = {
531					my: start.my + " bottom",
532					at: start.at + " top"
533				};
534				if (origin.indexOf('bottom') >= 0) start = {
535					my: start.my + " top",
536					at: start.at + " bottom"
537				};
538				start.my = jQuery.trim(start.my);
539				start.at = jQuery.trim(start.at);
540				break;
541			}
542			start.of = window;
543			start.collision = 'none';
544			jQuery('html').css('overflow-x', 'hidden');
545			$this.position(start).css({
546				opacity: 1
547			});
548
549			$this.emodal('animate_overlay', 'fade', speed * 0.25, function () {
550				$this.emodal('reposition', function (position) {
551					position.opacity = 1;
552					$this.transition(position, speed * 0.75, function () {
553						jQuery('html').css('overflow-x', 'inherit');
554						if(callback !== undefined) callback();
555					});
556				});
557			});
558			return this;
559		},
560		fade: function (callback) {
561			var $this = jQuery(this);
562			var settings = $this.data('emodal');
563			var speed = settings.meta.display.animation.speed / 2;
564			$this.emodal('animate_overlay', 'fade', speed, function () {
565				$this.fadeIn(speed, function(){
566					if(callback !== undefined) callback();
567				});
568			});
569			return this;
570		},
571		fadeAndSlide: function (callback) {
572			var $this = jQuery(this).show(0).css({
573				opacity: 0
574			});
575			var settings = $this.data('emodal');
576			var speed = settings.meta.display.animation.speed;
577			var origin = settings.meta.display.animation.origin;
578			var start = {
579				my: "",
580				at: ""
581			};
582			switch (origin) {
583			case 'top':
584				start = {
585					my: "left+" + $this.offset().left + " bottom",
586					at: "left top"
587				};
588				break;
589
590			case 'bottom':
591				start = {
592					my: "left+" + $this.offset().left + " top",
593					at: "left bottom"
594				};
595				break;
596
597			case 'left':
598				start = {
599					my: "right top+" + $this.offset().top,
600					at: "left top"
601				};
602				break;
603
604			case 'right':
605				start = {
606					my: "left top+" + $this.offset().top,
607					at: "right top"
608				};
609				break;
610
611			default:
612				if (origin.indexOf('left') >= 0) start = {
613					my: start.my + " right",
614					at: start.at + " left"
615				};
616				if (origin.indexOf('right') >= 0) start = {
617					my: start.my + " left",
618					at: start.at + " right"
619				};
620				if (origin.indexOf('center') >= 0) start = {
621					my: start.my + " center",
622					at: start.at + " center"
623				};
624				if (origin.indexOf('top') >= 0) start = {
625					my: start.my + " bottom",
626					at: start.at + " top"
627				};
628				if (origin.indexOf('bottom') >= 0) start = {
629					my: start.my + " top",
630					at: start.at + " bottom"
631				};
632				start.my = jQuery.trim(start.my);
633				start.at = jQuery.trim(start.at);
634				break;
635			}
636			start.of = window;
637			start.collision = 'none';
638			jQuery('html').css('overflow-x', 'hidden');
639			$this.position(start);
640			$this.emodal('animate_overlay', 'fade', speed * 0.25, function () {
641				$this.emodal('reposition', function (position) {
642					position.opacity = 1;
643					$this.transition(position, speed * 0.75, function () {
644						jQuery('html').css('overflow-x', 'inherit');
645						if(callback !== undefined) callback();
646					});
647				});
648			});
649			return this;
650		},
651		grow: function (callback) {
652			var $this = jQuery(this);
653			var settings = $this.data('emodal');
654			var speed = settings.meta.display.animation.speed;
655			var origin = settings.meta.display.animation.origin;
656
657			// Set css for animation start.
658			$this.css({
659				transformOrigin: origin,
660				opacity: 0
661			}).show();
662
663			// Begin Animation with overlay fade in then grow animation.
664			$this.emodal('animate_overlay', 'fade', speed * 0.25, function () {
665				// Reposition with callback. position returns default positioning.
666				$this.emodal('reposition', function (position) {
667					position.scale = 1;
668					position.duration = speed * 0.75;
669					$this
670						.css({
671							scale: 0,
672							opacity: 1
673						})
674						.transition(position);
675					if(callback !== undefined) callback();
676				});
677			});
678			return this;
679		},
680		growAndSlide: function (callback) {
681			var $this = jQuery(this).css({
682				opacity: 0
683			}).show();
684			var settings = $this.data('emodal');
685			var speed = settings.meta.display.animation.speed;
686			var origin = settings.meta.display.animation.origin;
687			var start = {
688				my: "",
689				at: ""
690			};
691			switch (origin) {
692			case 'top':
693				start = {
694					my: "left+" + $this.offset().left + " bottom",
695					at: "left top"
696				};
697				break;
698			case 'bottom':
699				start = {
700					my: "left+" + $this.offset().left + " top",
701					at: "left bottom"
702				};
703				break;
704			case 'left':
705				start = {
706					my: "right top+" + $this.offset().top,
707					at: "left top"
708				};
709				break;
710			case 'right':
711				start = {
712					my: "left top+" + $this.offset().top,
713					at: "right top"
714				};
715				break;
716			default:
717				if (origin.indexOf('left') >= 0) start = {
718					my: start.my + " right",
719					at: start.at + " left"
720				};
721				if (origin.indexOf('right') >= 0) start = {
722					my: start.my + " left",
723					at: start.at + " right"
724				};
725				if (origin.indexOf('center') >= 0) start = {
726					my: start.my + " center",
727					at: start.at + " center"
728				};
729				if (origin.indexOf('top') >= 0) start = {
730					my: start.my + " bottom",
731					at: start.at + " top"
732				};
733				if (origin.indexOf('bottom') >= 0) start = {
734					my: start.my + " top",
735					at: start.at + " bottom"
736				};
737				start.my = jQuery.trim(start.my);
738				start.at = jQuery.trim(start.at);
739				break;
740			}
741			start.of = window;
742			start.collision = 'none';
743			jQuery('html').css('overflow-x', 'hidden');
744			$this.position(start)
745				.css({
746					opacity: origin == 'center center' ? 0 : 1,
747					transformOrigin: origin
748				});
749			$this.emodal('animate_overlay', 'fade', speed * 0.25, function () {
750				$this.emodal('reposition', function (position) {
751					position.scale = 1;
752					position.opacity = 1;
753					position.duration = speed * 0.75;
754					$this.css({
755							scale: 0
756						})
757						.transition(position, function () {
758							jQuery('html').css('overflow-x', 'inherit');
759						});
760					if(callback !== undefined) callback();
761				});
762			});
763			return this;
764		}
765	};
766
767	jQuery('.emodal').css({ visibility: "visible" }).hide();
768
769	jQuery(document).ready(function () {
770		jQuery('.emodal')
771			.emodal()
772			.each(function () {
773				var $this = jQuery(this);
774				jQuery(document).on('click', '.' + $this.attr('id'), function (e) {
775					e.preventDefault();
776					e.stopPropagation();
777					$this.emodal('open');
778				});
779				jQuery('.' + $this.attr('id')).css('cursor', 'pointer');
780			});
781	});
782}(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.