PluginProbe
GetResponse Forms by Optin Cat / 2.0.2
GetResponse Forms by Optin Cat v2.0.2
1.3.4 1.3.5 1.3.6 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 2.0.0 All 36 releases
← All changes | assets/script.js +182 -202 1.5.82.0.2 View file →
@@ -1,202 +1,182 @@
1 -
2 -jQuery( document ).ready(function(){
3 -
4 -
5 - jQuery( document ).on( 'submit', '.fca_eoi_form', function (e) {
6 -
7 - e.preventDefault();
8 -
9 - var $this = jQuery( this );
10 - var $email_field = jQuery( '[name=email]', $this );
11 - var $name_field = jQuery( '[name=name]', $this );
12 - var name = $name_field.val();
13 - var email = $email_field.val();
14 - var list_id = $this.data( 'fca_eoi_list_id' );
15 - var $button = jQuery( '[type=submit]', $this );
16 - var $input_div = jQuery( '.fca_eoi_layout_submit_button_wrapper', $this );
17 - var $spinner = jQuery( '.fca_eoi_loading_spinner', $this );
18 - var $div = jQuery( '.fca_eoi_spiner_div', $this );
19 - var button_initial_val;
20 - var highlight_interval = false;
21 - var thank_you_mode = $this.data( 'fca_eoi_thank_you_mode' );
22 - var thank_you_page = $this.data( 'fca_eoi_thank_you_page' );
23 - var has_error = false;
24 - var form_id = jQuery( '[name=fca_eoi_form_id]', $this ).val();
25 - var nonceValue = jQuery( '#fca_eoi_nonce' ).val();
26 -
27 - // Attach tooltips
28 - jQuery( '[name=email], [name=name]', jQuery( this ) ).each( function() {
29 -
30 - var $this = jQuery( this );
31 - var tooltipWidth = $this.width() * .8;
32 -
33 - $this.tooltipster( {
34 - contentAsHTML: true
35 - , fixedWidth: tooltipWidth
36 - , minWidth: tooltipWidth
37 - , maxWidth: tooltipWidth
38 - , trigger: 'none'
39 - } );
40 - } );
41 -
42 - // Remove tooltip and tick on focus
43 - jQuery( '[name=email], [name=name]', jQuery( this ) ).focus( function() {
44 - var $this = jQuery( this );
45 - var $button = jQuery( '[type=submit]', $this.closest( '.fca_eoi_form' ) );
46 - var button_initial_val = $button.data( 'fca_eoi_initial_val' );
47 -
48 - // Remove any previous icon
49 - if( 'undefined' !== typeof( button_initial_val ) ) {
50 - $button.val( button_initial_val );
51 - }
52 -
53 - // Hide tooltip
54 - jQuery( this ).tooltipster( 'hide' );
55 - } );
56 -
57 - // Save or save and get initial button value
58 - if( $button.data( 'fca_eoi_initial_val' ) ) {
59 - button_initial_val = $button.data( 'fca_eoi_initial_val' );
60 - } else {
61 - button_initial_val = $button.val();
62 - $button.data( 'fca_eoi_initial_val', button_initial_val );
63 - }
64 -
65 - // Remove any previous icon
66 - $button.val( button_initial_val );
67 -
68 - // Get Error Messages from hidden fields
69 - fca_eoi.invalid_email = $this.find('.fca_eoi_error_texts_email').val();
70 - fca_eoi.field_required = $this.find('.fca_eoi_error_texts_required').val();
71 -
72 -
73 - // Check email address
74 - if( ! email || ! is_email( email ) ) {
75 -
76 - $email_field.tooltipster( 'content', email ? fca_eoi.invalid_email : fca_eoi.field_required );
77 - $email_field.tooltipster( 'show' );
78 - $button.val( '✗ ' + button_initial_val );
79 - has_error = true;
80 - }
81 -
82 - // Check name
83 - if( $name_field.length && ! name ) {
84 -
85 - $name_field.tooltipster( 'content', fca_eoi.field_required );
86 - $name_field.tooltipster( 'show' );
87 - $button.val( '✗ ' + button_initial_val );
88 - has_error = true;
89 - }
90 -
91 - // Exit if there is any error
92 - if( has_error ) {
93 - return false;
94 - }
95 -
96 - //DISABLE BUTTON CLICK EVENT
97 - $button.click(function(event) {
98 - event.preventDefault();
99 - });
100 -
101 -
102 -
103 - if ( $button.closest('.fca_eoi_form').hasClass('fca_eoi_layout_1') ) {
104 - //without extra border
105 - scaleSpinnerDiv($button, $div);
106 -
107 - } else {
108 - //width extra border
109 - scaleSpinnerDiv($input_div, $div);
110 - }
111 - scaleSpinnerSize($button, $spinner);
112 -
113 - //animate out the button and in the spinner div
114 -
115 - $div.animate({ width: '100%'});
116 -
117 - $spinner.css("display", "block");
118 - $button.attr('style', 'cursor: default' );
119 -
120 - jQuery.ajax( {
121 -
122 - url: fca_eoi.ajax_url,
123 - data: { 'email': email, 'name': name, 'action': 'fca_eoi_subscribe', 'list_id': list_id ,'form_id': form_id, 'nonce': nonceValue },
124 - type: 'POST',
125 - datatype: 'text',
126 - timeout: 15000
127 - }).done( function( data ) {
128 -
129 - if ( thank_you_mode == 'ajax' ) {
130 -
131 - // Stop highlighting and add an icon for success/failure
132 - if ( data === '✓' ) {
133 - $button.val( data + ' ' + button_initial_val );
134 - } else {
135 - $button.val( data );
136 - }
137 -
138 -
139 - $spinner.css("display", "none");
140 - $div.animate({ width: '0', padding: '0', left: '100%' });
141 -
142 -
143 - clearInterval( highlight_interval );
144 - if ( thank_you_page && '✓' === data ) {
145 - tooltipWidth = $button.width();
146 - $button.tooltipster( {
147 - contentAsHTML: true,
148 - trigger: 'none',
149 - fixedWidth: tooltipWidth,
150 - minWidth: tooltipWidth,
151 - maxWidth: tooltipWidth,
152 - arrowColor: '#148544'
153 - } );
154 -
155 - $button.tooltipster( 'content', thank_you_page );
156 - $button.tooltipster( 'show' );
157 - $email_field.prop('disabled', true);
158 - $name_field.prop('disabled', true);
159 -
160 - jQuery('.tooltipster-content').css("background-color", "#148544");
161 -
162 -
163 - }
164 - } else {
165 - window.location.href = thank_you_page;
166 - }
167 - });
168 - });
169 -} );
170 -
171 -
172 -//set height, top and (-)margin top to same size as the fca_eoi_layout_submit_button_wrapper height
173 -
174 -function scaleSpinnerDiv ($button, $div){
175 -
176 - var h = $button.outerHeight();
177 -
178 - $div.css('height', h + 'px');
179 - $div.css('top', h + 'px');
180 - $div.css('margin-top', '-' + h + 'px');
181 - $div.css('z-index', '1');
182 -
183 -}
184 -
185 -
186 -function scaleSpinnerSize( $button, $spinner ) {
187 - var h = $button.outerHeight();
188 - var w = $button.outerWidth();
189 - h = h - 8; //account for borders
190 -
191 - var newWidth = ( w / 2 ) - ( h / 2);
192 -
193 - $spinner.css('margin-left', newWidth + 'px' );
194 - $spinner.css('height', h + 'px');
195 - $spinner.css('width', h + 'px');
196 -
197 -}
198 -
199 -function is_email( email ) {
200 - var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
201 - return regex.test(email);
202 -}
1 +/* jshint asi: true */
2 +
3 +jQuery( document ).ready(function($){
4 +
5 + function is_email( email ) {
6 + var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/
7 + return regex.test(email)
8 + }
9 +
10 + function set_cookie( name, value, exdays ) {
11 + if ( exdays === 0 ) {
12 + document.cookie = name + "=" + value + "" + ";" + "path=/;"
13 + } else {
14 + var d = new Date()
15 + d.setTime( d.getTime() + ( exdays*24*60*60*1000 ) )
16 + document.cookie = name + "=" + value + "" + ";" + "path=/;" + "expires=" + d.toUTCString()
17 + }
18 + }
19 +
20 + function get_cookie( name ) {
21 + var value = "; " + document.cookie
22 + var parts = value.split( "; " + name + "=" )
23 +
24 + if ( parts.length === 2 ) {
25 + return parts.pop().split(";").shift()
26 + } else {
27 + return false
28 + }
29 + }
30 +
31 + $( document ).on( 'submit', '.fca_eoi_form', function (e) {
32 +
33 + e.preventDefault()
34 +
35 + var $this = $( this )
36 + var $email_field = $( '[name=email]', $this )
37 + var $name_field = $( '[name=name]:visible', $this )
38 + var name = $name_field.val()
39 + var email = $email_field.val()
40 + var list_id = $this.data( 'fca_eoi_list_id' )
41 + var $button = $( '[type=submit]', $this )
42 + var button_initial_val
43 + var highlight_interval = false;
44 + var thank_you_mode = $this.data( 'fca_eoi_thank_you_mode' )
45 + var thank_you_page = $this.data( 'fca_eoi_thank_you_page' )
46 + var cookie_duration = $this.data( 'fca_eoi_success_cookie_duration' )
47 + var subscribe_msg = $this.data( 'fca_eoi_sub_msg' )
48 + var has_error = false
49 + var form_id = $( '[name=fca_eoi_form_id]', $this ).val()
50 +
51 + // Attach tooltips
52 + $( '[name=email], [name=name]', $this ).not('.tooltipstered').each( function() {
53 +
54 + var $this = $( this )
55 + var tooltipWidth = $this.width() * .8
56 +
57 + $this.tooltipster( {
58 + contentAsHTML: true,
59 + fixedWidth: tooltipWidth,
60 + minWidth: tooltipWidth,
61 + maxWidth: tooltipWidth,
62 + trigger: 'none',
63 + theme: ['tooltipster-borderless', 'tooltipster-optin-cat']
64 + } )
65 + } )
66 +
67 + // Remove tooltip and tick on focus
68 + $( '[name=email], [name=name]', $( this ) ).focus( function() {
69 + var $this = $( this )
70 + var $button = $( '[type=submit]', $this.closest( '.fca_eoi_form' ) )
71 + var button_initial_val = $button.data( 'fca_eoi_initial_val' )
72 +
73 + // Remove any previous icon
74 + if( 'undefined' !== typeof( button_initial_val ) ) {
75 + $button.val( button_initial_val )
76 + }
77 +
78 + // Hide tooltip
79 + $( this ).tooltipster( 'hide' )
80 + } )
81 +
82 + // Save or save and get initial button value
83 + if( $button.data( 'fca_eoi_initial_val' ) ) {
84 + button_initial_val = $button.data( 'fca_eoi_initial_val' )
85 + } else {
86 + button_initial_val = $button.val()
87 + $button.data( 'fca_eoi_initial_val', button_initial_val )
88 + }
89 +
90 + // Remove any previous icon
91 + $button.val( button_initial_val );
92 +
93 + // Get Error Messages from hidden fields
94 + fcaEoiScriptData.invalid_email = $this.find('.fca_eoi_error_texts_email').val()
95 + fcaEoiScriptData.field_required = $this.find('.fca_eoi_error_texts_required').val()
96 +
97 + // Check email address
98 + if( ! email || ! is_email( email ) ) {
99 + $email_field.tooltipster( 'content', email ? fcaEoiScriptData.invalid_email : fcaEoiScriptData.field_required )
100 + $email_field.tooltipster( 'show' );
101 + $button.val( '✗ ' + button_initial_val );
102 + has_error = true;
103 + }
104 +
105 + // Check name
106 + if( $name_field.length && ! name ) {
107 + $name_field.tooltipster( 'content', fcaEoiScriptData.field_required );
108 + $name_field.tooltipster( 'show' );
109 + $button.val( '✗ ' + button_initial_val );
110 + has_error = true;
111 + }
112 +
113 + // Exit if there is any error
114 + if( has_error ) {
115 + return false;
116 + }
117 + $button.val( subscribe_msg );
118 + //DISABLE BUTTON CLICK EVENT
119 + $button.click(function(event) {
120 + event.preventDefault();
121 + });
122 +
123 +
124 + $button.attr('style', 'cursor: default' );
125 + var tz = jstz.determine()
126 +
127 + $.ajax({
128 + url: fcaEoiScriptData.ajax_url,
129 + data: { 'email': email, 'name': name, 'action': 'fca_eoi_subscribe', 'list_id': list_id ,'form_id': form_id, 'nonce': fcaEoiScriptData.nonce, 'timezone' : tz.name() },
130 + type: 'POST',
131 + datatype: 'text',
132 + timeout: 15000
133 + }).done( function( data ) {
134 +
135 + // Stop highlighting and add an icon for success/failure
136 + if ( data === '✓' ) {
137 + $button.val( data + ' ' + button_initial_val );
138 +
139 + set_cookie( 'fca_eoi_success_' + form_id, Math.floor(Date.now() / 1000), cookie_duration )
140 +
141 + //REMOVE FROM ACTIVE
142 + var activeOptins = JSON.parse( get_cookie( 'fca_eoi_active_optins' ) )
143 + if ( !Array.isArray( activeOptins ) ) {
144 + activeOptins = []
145 + }
146 + var index = activeOptins.indexOf( form_id )
147 + if ( index !== -1 ) {
148 + activeOptins.splice( index, 1 )
149 + }
150 + set_cookie ( 'fca_eoi_active_optins', JSON.stringify ( activeOptins ) )
151 +
152 + } else {
153 + $button.val( data );
154 + }
155 +
156 + if ( thank_you_mode === 'ajax' && data === '✓' ) {
157 + clearInterval( highlight_interval )
158 + if ( thank_you_page && '✓' === data ) {
159 + tooltipWidth = $button.width()
160 + $button.tooltipster( {
161 + contentAsHTML: true,
162 + trigger: 'none',
163 + fixedWidth: tooltipWidth,
164 + minWidth: tooltipWidth,
165 + maxWidth: tooltipWidth,
166 + arrow: false,
167 + theme: ['tooltipster-borderless', 'tooltipster-optin-cat']
168 + } );
169 +
170 + $button.tooltipster( 'content', thank_you_page )
171 + $button.tooltipster( 'show' )
172 + $email_field.prop('disabled', true)
173 + $name_field.prop('disabled', true)
174 +
175 + $('.tooltipster-content').css("background-color", "#148544")
176 + }
177 + } else if ( data === '✓' ) {
178 + window.location.href = thank_you_page
179 + }
180 + })
181 + })
182 +})