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 +100 -72 1.8.02.0.2 View file →
@@ -1,36 +1,59 @@
1 +/* jshint asi: true */
1 2
2 -jQuery( document ).ready(function(){
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 + }
3 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 + "=" )
4 23
5 - jQuery( document ).on( 'submit', '.fca_eoi_form', function (e) {
24 + if ( parts.length === 2 ) {
25 + return parts.pop().split(";").shift()
26 + } else {
27 + return false
28 + }
29 + }
6 30
7 - e.preventDefault();
31 + $( document ).on( 'submit', '.fca_eoi_form', function (e) {
8 32
9 - var $this = jQuery( this );
10 - var $email_field = jQuery( '[name=email]', $this );
11 - var $name_field = jQuery( '[name=name]:visible', $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;
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
20 43 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 subscribe_msg = $this.data( 'fca_eoi_sub_msg' );
24 - var has_error = false;
25 - var form_id = jQuery( '[name=fca_eoi_form_id]', $this ).val();
26 -
27 -
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 +
28 51 // Attach tooltips
29 - jQuery( '[name=email], [name=name]', $this ).each( function() {
52 + $( '[name=email], [name=name]', $this ).not('.tooltipstered').each( function() {
30 53
31 - var $this = jQuery( this );
32 - var tooltipWidth = $this.width() * .8;
54 + var $this = $( this )
55 + var tooltipWidth = $this.width() * .8
33 56
34 57 $this.tooltipster( {
35 58 contentAsHTML: true,
36 59 fixedWidth: tooltipWidth,
@@ -41,28 +64,28 @@
41 64 } )
42 65 } )
43 66
44 67 // Remove tooltip and tick on focus
45 - jQuery( '[name=email], [name=name]', jQuery( this ) ).focus( function() {
46 - var $this = jQuery( this );
47 - var $button = jQuery( '[type=submit]', $this.closest( '.fca_eoi_form' ) );
48 - var button_initial_val = $button.data( 'fca_eoi_initial_val' );
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' )
49 72
50 73 // Remove any previous icon
51 74 if( 'undefined' !== typeof( button_initial_val ) ) {
52 - $button.val( button_initial_val );
75 + $button.val( button_initial_val )
53 76 }
54 77
55 78 // Hide tooltip
56 - jQuery( this ).tooltipster( 'hide' );
57 - } );
79 + $( this ).tooltipster( 'hide' )
80 + } )
58 81
59 82 // Save or save and get initial button value
60 83 if( $button.data( 'fca_eoi_initial_val' ) ) {
61 - button_initial_val = $button.data( 'fca_eoi_initial_val' );
84 + button_initial_val = $button.data( 'fca_eoi_initial_val' )
62 85 } else {
63 - button_initial_val = $button.val();
64 - $button.data( 'fca_eoi_initial_val', button_initial_val );
86 + button_initial_val = $button.val()
87 + $button.data( 'fca_eoi_initial_val', button_initial_val )
65 88 }
66 89
67 90 // Remove any previous icon
68 91 $button.val( button_initial_val );
@@ -67,16 +90,14 @@
67 90 // Remove any previous icon
68 91 $button.val( button_initial_val );
69 92
70 93 // Get Error Messages from hidden fields
71 - fca_eoi.invalid_email = $this.find('.fca_eoi_error_texts_email').val();
72 - fca_eoi.field_required = $this.find('.fca_eoi_error_texts_required').val();
94 + fcaEoiScriptData.invalid_email = $this.find('.fca_eoi_error_texts_email').val()
95 + fcaEoiScriptData.field_required = $this.find('.fca_eoi_error_texts_required').val()
73 96
74 -
75 97 // Check email address
76 98 if( ! email || ! is_email( email ) ) {
77 -
78 - $email_field.tooltipster( 'content', email ? fca_eoi.invalid_email : fca_eoi.field_required );
99 + $email_field.tooltipster( 'content', email ? fcaEoiScriptData.invalid_email : fcaEoiScriptData.field_required )
79 100 $email_field.tooltipster( 'show' );
80 101 $button.val( '✗ ' + button_initial_val );
81 102 has_error = true;
82 103 }
@@ -82,10 +103,9 @@
82 103 }
83 104
84 105 // Check name
85 106 if( $name_field.length && ! name ) {
86 -
87 - $name_field.tooltipster( 'content', fca_eoi.field_required );
107 + $name_field.tooltipster( 'content', fcaEoiScriptData.field_required );
88 108 $name_field.tooltipster( 'show' );
89 109 $button.val( '✗ ' + button_initial_val );
90 110 has_error = true;
91 111 }
@@ -101,29 +121,43 @@
101 121 });
102 122
103 123
104 124 $button.attr('style', 'cursor: default' );
105 -
106 - jQuery.ajax({
107 - url: fca_eoi.ajax_url,
108 - data: { 'email': email, 'name': name, 'action': 'fca_eoi_subscribe', 'list_id': list_id ,'form_id': form_id, 'nonce': fca_eoi.nonce },
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() },
109 130 type: 'POST',
110 131 datatype: 'text',
111 132 timeout: 15000
112 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 + }
113 155
114 - if ( thank_you_mode == 'ajax' ) {
115 -
116 - // Stop highlighting and add an icon for success/failure
117 - if ( data === '✓' ) {
118 - $button.val( data + ' ' + button_initial_val );
119 - } else {
120 - $button.val( data );
121 - }
122 -
123 - clearInterval( highlight_interval );
156 + if ( thank_you_mode === 'ajax' && data === '✓' ) {
157 + clearInterval( highlight_interval )
124 158 if ( thank_you_page && '✓' === data ) {
125 - tooltipWidth = $button.width();
159 + tooltipWidth = $button.width()
126 160 $button.tooltipster( {
127 161 contentAsHTML: true,
128 162 trigger: 'none',
129 163 fixedWidth: tooltipWidth,
@@ -132,23 +166,17 @@
132 166 arrow: false,
133 167 theme: ['tooltipster-borderless', 'tooltipster-optin-cat']
134 168 } );
135 169
136 - $button.tooltipster( 'content', thank_you_page );
137 - $button.tooltipster( 'show' );
138 - $email_field.prop('disabled', true);
139 - $name_field.prop('disabled', true);
170 + $button.tooltipster( 'content', thank_you_page )
171 + $button.tooltipster( 'show' )
172 + $email_field.prop('disabled', true)
173 + $name_field.prop('disabled', true)
140 174
141 - jQuery('.tooltipster-content').css("background-color", "#148544");
142 -
175 + $('.tooltipster-content').css("background-color", "#148544")
143 176 }
144 - } else {
145 - window.location.href = thank_you_page;
177 + } else if ( data === '✓' ) {
178 + window.location.href = thank_you_page
146 179 }
147 - });
148 - });
149 -});
150 -
151 -function is_email( email ) {
152 - var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
153 - return regex.test(email);
154 -}
180 + })
181 + })
182 +})