PageSourceSearch

https://muaythaiontario.org/wp-content/plugins/gp-multi-page-navig…/js/gp-multi-page-navigation.js?ver=6.3.11

js muaythaiontario.org collected 2026-10-04 05:23:34 UTC 8,237 bytes, 205 lines download raw bytes

1(function($){
2
3    window.GPMultiPageNavigation = function( args ) {
4
5        var self = this;
6
7        self.formId    = args.formId;
8        self.$formElem = $( 'form#gform_' + self.formId );
9
10        self.lastPage           = args.lastPage;
11        self.activationType     = args.activationType;
12        self.labels             = args.labels;
13        self.enableSubmissionFromLastPageWithErrors = args.enableSubmissionFromLastPageWithErrors;
14
15        self.init = function() {
16
17            if( self.$formElem.length <= 0 ) {
18                self.$formElem = $( '#gform_wrapper_' + self.formId );
19            }
20
21            // set page specific elements
22            self.$footer                = $( '#gform_page_' + self.formId + '_' + self.getCurrentPage() + ' .gform_page_footer' );
23            self.$saveAndContinueButton = self.$footer.find( 'a.gform_save_link' );
24
25            if( self.activationType == 'last_page' && ! self.isLastPageReached() ) {
26                return;
27            }
28
29            var $steps = self.$formElem.find( '.gf_step' );
30
31            $steps.each( function() {
32
33                var stepNumber = parseInt( $( this ).find( 'span.gf_step_number' ).text() );
34
35                if( self.activationType == 'progression' && stepNumber > self.getPageProgression() ) {
36                    return;
37                }
38
39                if( stepNumber != self.getCurrentPage() ) {
40                    $( this ).html( self.getPageLinkMarkup( stepNumber, $( this ).html() ) ).addClass( 'gpmpn-step-linked' );
41                } else {
42                    $( this ).addClass( 'gpmpn-step-current' );
43                }
44
45            } );
46
47            if( self.activationType == 'last_page' && ! self.isLastPage() && self.isLastPageReached() ) {
48                self.addBackToLastPageButton();
49            } else if( self.activationType == 'progression' && self.getCurrentPage() < self.getPageProgression() ) {
50                self.addBackToLastPageButton( self.getPageProgression() );
51            } else if( self.activationType == 'first_page' && ! self.isLastPage() && self.wasFinalSubmissionAttempted() ) {
52                self.addNextPageWithErrorsButton();
53            }
54
55            var pageLinksSelector = 'a.gpmpn-page-link, a.gwmpn-page-link, .gpmpn-page-link a';
56
57            $( document ).on( 'click', pageLinksSelector, function( event ) {
58                event.preventDefault();
59
60                var hrefArray = $( this ).attr( 'href' ).split( '#' );
61
62                if( hrefArray.length >= 2 ) {
63
64                    var $parentForm      = $( this ).parents( 'form' ),
65                        $formElem        = $parentForm.length > 0 ? $parentForm : $( '.gform_wrapper form' ),
66                        // Get form element for WC GF Add-on.
67                        $formElem        = $formElem.length > 0 ? $formElem : $( '.gform_wrapper' ).parent( 'form' ),
68                        formId           = $formElem.attr( 'id' ).split( '_' )[1],
69                        pageNumber       = hrefArray.pop();
70
71                    GPMultiPageNavigation.postToPage( pageNumber, formId, true );
72
73                }
74
75            } );
76
77            self.$formElem.data( 'GPMultiPageNavigation', self );
78
79            window[ 'gpmpn_' + self.formId ] = self;
80
81        };
82
83        self.getPageLinkMarkup = function( stepNumber, content ) {
84            return '<a href="#' + stepNumber + '" class="gwmpn-page-link gwmpn-default gpmpn-page-link gpmpn-default">' + content + '</a>';
85        };
86
87        self.addBackToLastPageButton = function( page ) {
88
89            var page    = typeof page == 'undefined' ? self.lastPage : page,
90                $button = '<input type="button" onclick="GPMultiPageNavigation.postToPage( ' + page + ', ' + self.formId + ' );" value="' + self.labels.backToLastPage + '" class="button gform_button gform_last_page_button">';
91
92            self.insertButton( $button );
93
94        };
95
96        self.addNextPageWithErrorsButton = function() {
97
98            var page     = 0,
99                label    = self.getErrorPagesCount() > 1 ? self.labels.nextPageWithErrors : self.labels.submit,
100                cssClass = self.getErrorPagesCount() > 1 ? 'gform_next_page_errors_button' : 'gform_resubmit_button',
101                $button  = '<input type="button" onclick="GPMultiPageNavigation.postToPage( ' + page + ', ' + self.formId + ' );" value="' + label + '" class="button gform_button ' + cssClass + '">';
102
103            if( self.getErrorPagesCount() <= 1 && ! self.enableSubmissionFromLastPageWithErrors ) {
104                self.addBackToLastPageButton();
105            } else {
106                self.insertButton( $button );
107            }
108
109        };
110
111        self.insertButton = function( $button ) {
112            if( self.$saveAndContinueButton.length > 0 ) {
113                self.$saveAndContinueButton.before( $button );
114            } else {
115                self.$footer.append( $button );
116            }
117        };
118
119        self.getCurrentPage = function() {
120
121            if( ! self.currentPage ) {
122                self.currentPage = self.$formElem.find( 'input#gform_source_page_number_' + self.formId ).val();
123            }
124
125            return self.currentPage;
126        };
127
128        self.getPageProgression = function() {
129            return parseInt( $( 'input#gw_page_progression' ).val() );
130        };
131
132        self.getErrorPagesCount = function() {
133
134            if( ! self.errorPagesCount ) {
135                self.errorPagesCount = self.$formElem.find( 'input#gw_error_pages_count' ).val();
136            }
137
138            return self.errorPagesCount;
139        };
140
141        self.isLastPage = function() {
142            return self.getCurrentPage() >= self.lastPage;
143        };
144
145        self.isLastPageReached = function() {
146            return self.isLastPage() || self.$formElem.find( 'input#gw_last_page_reached' ).val() == true;
147        };
148
149        self.wasFinalSubmissionAttempted = function() {
150            return self.$formElem.find( 'input#gw_final_submission_attempted' ).val() == true
151        };
152
153        GPMultiPageNavigation.postToPage = function( page, formId, bypassValidation ) {
154
155            var $form = $( 'form#gform_' + formId ),
156                $targetPageInput = $form.find( 'input#gform_target_page_number_' + formId );
157
158            $targetPageInput.val( page );
159
160            if( bypassValidation ) {
161                var $bypassValidationInput = $( '<input type="hidden" name="gw_bypass_validation" id="gw_bypass_validation" value="1" />' );
162                $form.append( $bypassValidationInput );
163            }
164
165            /**
166             * If submit buttons are hidden via conditional logic (next/prev/submit), form will not be able to submit; this code finds
167             * all hidden submit inputs and hides them in a way that will still enable submission.
168             */
169            $form.find( '.gform_page_footer:visible' ).find( 'input[type="submit"], input[type="button"]' ).not( ':visible' ).css( { display: 'block', visibility: 'hidden', position: 'absolute' } );
170
171	        /**
172	         * If attempting to submit the form (page = 0, happens w/ "Next Page with Errors" button), move the Submit
173	         * button to the current page so Gravity Forms will not abort the submission.
174	         */
175	        $( '#gform_submit_button_' + formId ).appendTo( '.gform_page_footer:visible' ).css( { display: 'block', visibility: 'hidden', position: 'absolute' } );
176
177            $form.submit();
178
179        };
180
181        self.init();
182
183    }
184
185})(jQuery);
186
187/**
188 * Take over Gravity Forms gformInitSpinner function which allows us to append the spinner after other custom buttons
189 */
190window.gformOrigInitSpinner = window.gformInitSpinner;
191window.gformInitSpinner = function( formId, spinnerUrl ) {
192
193    if( typeof spinnerUrl == 'undefined' || ! spinnerUrl ) {
194        spinnerUrl = gform.applyFilters( 'gform_spinner_url', gf_global.spinnerUrl, formId );
195    }
196
197    var $form = jQuery( '#gform_' + formId );
198
199    $form.submit( function() {
200        if( jQuery( '#gform_ajax_spinner_' + formId ).length == 0 ) {
201            $form.find( '.gform_page_footer' ).append( '<img id="gform_ajax_spinner_' + formId + '"  class="gform_ajax_spinner" src="' + spinnerUrl + '" alt="" />' );
202        }
203    } );
204
205};

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.