PageSourceSearch

https://www.americanrivers.org/wp-content/plugins/popup-maker-popu…/assets/js/scripts.min.js?defer&ver=1.2.2

js americanrivers.org collected 2026-10-01 09:11:41 UTC 9,152 bytes, 243 lines download raw bytes

1/**
2 * Popup Maker Popup Analytics v1.1
3 */
4 (function ($, document, undefined) {
5    "use strict";
6
7    $.fn.popmake.conversion_trigger = null;
8
9    function trackForms(popup) {
10        var $popup = $(popup),
11            settings = PUM.getSettings(popup),
12            $forms = $('form, .nf-form-cont', $popup);
13
14        $forms.each(function () {
15                var $form = $(this),
16                    type;
17
18                if ($('[name="popmake_pa_conversion_check"]', $form).length) {
19                    return;
20                }
21
22                if ($form.hasClass('pum_sub_form')) {
23                    type = 'pum';
24                } else if ($form.find('.gform_body').length) {
25                    type = 'gravityforms';
26                } else if ($form.hasClass('ninja-forms-form')) {
27                    type = 'ninjaforms_v2';
28                } else if ($form.hasClass('nf-form-cont') || $form.parents('.nf-form-wrap').length) {
29                    type = 'ninjaforms_v3';
30                } else if ($form.hasClass('wpcf7-form')) {
31                    type = 'contactform7';
32                }
33
34                switch (type) {
35                case 'ninjaforms_v3':
36                    if (typeof Marionette !== 'undefined' && typeof nfRadio !== "undefined") {
37                        var formID = $form.attr('id').replace('nf-form-', '').replace('-cont', '');
38
39                        $form.find('form').addClass('popmake_pa');
40
41                        $popup
42                            .on('pumAfterOpen', function () {
43                                $form.find('form').addClass('popmake_pa');
44                                nfRadio.channel('form-' + formID).request('add:extra', 'pum_popup_id', settings.id);
45                                // nfRadio.channel('form-' + formID).request('add:extra', 'pum_open_event_id', '');
46                            })
47                            .on('pumOpenEventIdChanged', function (event, event_id) {
48                                nfRadio.channel('form-' + formID).request('add:extra', 'pum_open_event_id', event_id.toString());
49                            });
50                    }
51
52                    break;
53
54                case 'pum':
55                case 'contactform7':
56                case 'ninjaforms_v2':
57                case 'gravityforms':
58                    $popup
59                        .on('pumAfterOpen', function () {
60                            $form.append('<input type="hidden" name="_popmake_pa_conversion_check" value="' + settings.id + '"/>');
61                            $form.append('<input type="hidden" name="_popmake_pa_open_event_id" value=""/>');
62                        })
63                        .on('pumOpenEventIdChanged', function (event, event_id) {
64                            $('[name="_popmake_pa_open_event_id"]', $form).val(event_id);
65                        });
66
67                    $form
68                        .addClass('popmake_pa')
69                        .bindFirst('submit', function () {
70                            $.fn.popmake.conversion_trigger = $form.attr('id') || $.fn.popmake.utilities.getXPath($form);
71                        });
72                    break;
73                }
74            }
75        );
76
77    }
78
79    function trackConversion() {
80        $(document).trigger('pumConversion');
81    }
82
83    if ($.fn.bindFirst === undefined) {
84        $.fn.bindFirst = function (which, handler) {
85            var $el = $(this),
86                events,
87                registered;
88
89            $el.unbind(which, handler);
90            $el.bind(which, handler);
91
92            events = $._data($el[0]).events;
93            registered = events[which];
94            registered.unshift(registered.pop());
95
96            events[which] = registered;
97        };
98    }
99
100    if ($.fn.outerHtml === undefined) {
101        $.fn.outerHtml = function () {
102            var $el = $(this).clone(),
103                $temp = $('<div/>').append($el);
104
105            return $temp.html();
106        };
107    }
108
109    $(document)
110        .on('pumConversion', function () {
111            var $popup = PUM.getPopup($.fn.popmake.last_open_popup),
112                ajaxData = {
113                    'action': 'popmake_pa', // Calls our wp_ajax_nopriv_popmake_pa
114                    'popup_id': $popup.data('popmake').id,
115                    'event_type': 'conversion',
116                    'open_event_id': $popup.data('open-event-id'),
117                    'trigger': $.fn.popmake.conversion_trigger,
118                    '_ajax_nonce': popmake_pa.nonce
119                };
120
121            $.ajax({
122                type: 'POST',
123                dataType: 'json',
124                url: ajaxurl,
125                async: false,
126                data: ajaxData
127            });
128        });
129
130    $('.pum')
131        .on('pumInit', function () {
132            var $popup = PUM.getPopup(this),
133                settings = $popup.data('popmake'),
134                convert_on = settings.meta.convert_on;
135
136            trackForms(this);
137
138            if (convert_on !== undefined && convert_on !== '') {
139                switch (convert_on) {
140                case 'form_submit':
141                    $popup.find('form').filter(':not(.popmake_pa)').on('submit.popmake_pa', function () {
142                        $.fn.popmake.conversion_trigger = $(this).attr('id') || 'Form Submit';
143                        trackConversion();
144                        $(this).off('submit.popmake_pa');
145                    });
146                    break;
147                case 'button_click':
148                    $popup.find('button, .button, .btn').on('click', function () {
149                        console.log($(this));
150                        $.fn.popmake.conversion_trigger = $(this).attr('id') || 'Button Click';
151                        trackConversion();
152                    });
153                    break;
154                case 'link_click':
155                    $popup.find('a').on('click', function () {
156                        $.fn.popmake.conversion_trigger = $(this).attr('id') || 'Link Click';
157                        trackConversion();
158                    });
159                    break;
160                }
161            }
162
163        })
164        .on('pumBeforeOpen.analytics', function () {
165            var $popup = PUM.getPopup(this),
166                ajaxData = {
167                    'action': 'popmake_pa', // Calls our wp_ajax_nopriv_popmake_pa
168                    'popup_id': $popup.data('popmake').id,
169                    'event_type': 'open',
170                    'trigger': null,
171                    '_ajax_nonce': popmake_pa.nonce
172                },
173                $last_trigger = null;
174
175            try {
176                $last_trigger = $($.fn.popmake.last_open_trigger);
177            } catch (error) {
178                $last_trigger = $();
179            }
180
181            if ($last_trigger.length) {
182                ajaxData.trigger = $last_trigger.eq(0).outerHtml();
183            } else if ($.fn.popmake.last_open_trigger !== null) {
184                ajaxData.trigger = $.fn.popmake.last_open_trigger.toString();
185            }
186
187            $.ajax({
188                type: 'POST',
189                dataType: 'json',
190                url: ajaxurl,
191                data: ajaxData,
192                success: function (data) {
193                    if (data.success && data.event_id > 0) {
194                        $popup.data('open-event-id', data.event_id);
195                        $popup.trigger('pumOpenEventIdChanged', [data.event_id]);
196                    } else {
197                        $popup.data('open-event-id', null);
198                    }
199                }
200            });
201
202            //  TODO experiment with $(window).on('beforeunload' over $window.on('unload'
203            $(window).one('unload.popmake_pa', function () {
204                ajaxData = {
205                    'action': 'popmake_pa', // Calls our wp_ajax_nopriv_popmake_pa
206                    'popup_id': $popup.data('popmake').id,
207                    'event_type': 'close',
208                    'open_event_id': $popup.data('open-event-id'),
209                    'trigger': 'Browser Closed',
210                    '_ajax_nonce': popmake_pa.nonce
211                };
212
213                $.ajax({
214                    type: 'POST',
215                    dataType: 'json',
216                    url: ajaxurl,
217                    async: false,
218                    data: ajaxData
219                });
220            });
221
222        })
223        .on('pumBeforeClose.analytics', function () {
224            var $popup = PUM.getPopup(this),
225                ajaxData = {
226                    'action': 'popmake_pa', // Calls our wp_ajax_nopriv_popmake_pa
227                    'popup_id': $popup.data('popmake').id,
228                    'event_type': 'close',
229                    'open_event_id': $popup.data('open-event-id'),
230                    'trigger': $.fn.popmake.last_close_trigger,
231                    '_ajax_nonce': popmake_pa.nonce
232                };
233
234            $(window).off('unload.popmake_pa');
235
236            $.ajax({
237                type: 'POST',
238                dataType: 'json',
239                url: ajaxurl,
240                data: ajaxData
241            });
242        });
243}(jQuery, document));

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.