Formidable Forms – Form Builder for WordPress - Version 2.02.08

Version Description

  • Fix recaptcha error (change default to normal)
  • Prevent double submit clicks
  • Make sure recaptcha English language setting applies
  • Add placeholder color CSS
  • Add frm_after_import_form action hook
  • Add frm_send_email hook for stopping the email
  • Add frm_upgrade_page hook
  • Include field object in frm_prepare_data_before_db hook
  • Fix nav errors when trying to edit form that doesn't exist
  • Replace specific cache key deletion with group cache delete for more cache clearing fixes
  • Added Norwegian (Bokml) translation
  • Pro Features *
  • Added pretty URLs to views
  • Added month and year labels in credit card dropdowns
  • Show user options for admin when editing user-limited dynamic field
  • Added frm_load_dropzone hook for disabling dropzone
  • Added frm_dynamic_field_user hook for dynamic fields.
  • Load pro translations in plugin instead of allowing translations from wp.org to trump
  • Fix error when editing a multi-page form with blank repeating section on separate page
  • Add space next to collapsible section icons
  • Fix required file error when file is present
  • Fix clearing dependent autocomplete dropdown in repeating sections
  • Update EDD updater
Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 2.02.08
Comparing to
See all releases

Code changes from version 2.02.07 to 2.02.08

Files changed (40) hide show
  1. classes/controllers/FrmAppController.php +20 -19
  2. classes/helpers/FrmAppHelper.php +1 -1
  3. classes/helpers/FrmCSVExportHelper.php +2 -1
  4. classes/helpers/FrmFieldsHelper.php +6 -3
  5. classes/helpers/FrmXMLHelper.php +6 -4
  6. classes/models/FrmAddon.php +79 -26
  7. classes/models/FrmCreateFile.php +1 -1
  8. classes/models/FrmEDD_SL_Plugin_Updater.php +183 -180
  9. classes/models/FrmEntryMeta.php +7 -2
  10. classes/models/FrmFormAction.php +1 -1
  11. classes/models/FrmNotification.php +10 -0
  12. classes/models/FrmPointers.php +1 -1
  13. classes/models/FrmSettings.php +2 -2
  14. classes/views/addons/upgrade_to_pro.php +3 -1
  15. classes/views/frm-fields/back-end/dropdown-field.php +1 -1
  16. classes/views/frm-fields/front-end/dropdown-field.php +1 -1
  17. classes/views/frm-forms/add_field.php +1 -1
  18. classes/views/frm-settings/form.php +1 -0
  19. classes/views/styles/_sample_form.php +1 -1
  20. css/_single_theme.css.php +16 -0
  21. css/font_icons.css +4 -0
  22. formidable.php +1 -1
  23. js/formidable.js +13 -10
  24. js/formidable.min.js +56 -56
  25. languages/formidable-az_AZ.mo +0 -0
  26. languages/formidable-az_AZ.po +404 -397
  27. languages/formidable-de_DE.mo +0 -0
  28. languages/formidable-de_DE.po +425 -416
  29. languages/formidable-es_ES.mo +0 -0
  30. languages/formidable-es_ES.po +412 -405
  31. languages/formidable-fa_IR.mo +0 -0
  32. languages/formidable-fa_IR.po +7639 -0
  33. languages/formidable-it_IT.mo +0 -0
  34. languages/formidable-it_IT.po +7846 -0
  35. languages/formidable-ja_JP.mo +0 -0
  36. languages/formidable-ja_JP.po +405 -398
  37. languages/formidable-ko_KR.mo +0 -0
  38. languages/formidable-ko_KR.po +7637 -0
  39. languages/formidable-nb_NO.mo +0 -0
  40. languages/formidable-nb_NO.po +6 -242
classes/controllers/FrmAppController.php CHANGED
@@ -24,37 +24,38 @@ class FrmAppController {
24
  }
25
 
26
  public static function get_form_nav( $form, $show_nav = false, $title = 'show' ) {
27
- global $pagenow, $frm_vars;
28
-
29
  $show_nav = FrmAppHelper::get_param( 'show_nav', $show_nav, 'get', 'absint' );
30
- if ( empty( $show_nav ) ) {
31
  return;
32
  }
33
 
34
- $current_page = isset( $_GET['page'] ) ? FrmAppHelper::simple_get( 'page', 'sanitize_title' ) : FrmAppHelper::simple_get( 'post_type', 'sanitize_title', 'None' );
35
- if ( $pagenow == 'post.php' || $pagenow == 'post-new.php' ) {
36
- $current_page = 'frm_display';
37
  }
38
 
39
- if ( $form ) {
40
- FrmForm::maybe_get_form( $form );
 
41
 
42
- if ( is_object( $form ) ) {
43
- $id = $form->id;
44
- }
45
- }
46
 
47
- if ( ! isset( $id ) ) {
48
- $form = $id = false;
49
- }
50
 
51
- $nav_items = self::get_form_nav_items( $form );
 
 
 
 
 
52
 
53
- include( FrmAppHelper::plugin_path() . '/classes/views/shared/form-nav.php' );
54
- }
55
 
56
  private static function get_form_nav_items( $form ) {
57
- $id = ( $form && $form->parent_form_id ) ? $form->parent_form_id : $form->id;
58
 
59
  $nav_items = array(
60
  array(
24
  }
25
 
26
  public static function get_form_nav( $form, $show_nav = false, $title = 'show' ) {
 
 
27
  $show_nav = FrmAppHelper::get_param( 'show_nav', $show_nav, 'get', 'absint' );
28
+ if ( empty( $show_nav ) || ! $form ) {
29
  return;
30
  }
31
 
32
+ FrmForm::maybe_get_form( $form );
33
+ if ( ! is_object( $form ) ) {
34
+ return;
35
  }
36
 
37
+ $id = $form->id;
38
+ $current_page = self::get_current_page();
39
+ $nav_items = self::get_form_nav_items( $form );
40
 
41
+ include( FrmAppHelper::plugin_path() . '/classes/views/shared/form-nav.php' );
42
+ }
 
 
43
 
44
+ private static function get_current_page() {
45
+ global $pagenow;
 
46
 
47
+ $page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
48
+ $post_type = FrmAppHelper::simple_get( 'post_type', 'sanitize_title', 'None' );
49
+ $current_page = isset( $_GET['page'] ) ? $page : $post_type;
50
+ if ( $pagenow == 'post.php' || $pagenow == 'post-new.php' ) {
51
+ $current_page = 'frm_display';
52
+ }
53
 
54
+ return $current_page;
55
+ }
56
 
57
  private static function get_form_nav_items( $form ) {
58
+ $id = $form->parent_form_id ? $form->parent_form_id : $form->id;
59
 
60
  $nav_items = array(
61
  array(
classes/helpers/FrmAppHelper.php CHANGED
@@ -10,7 +10,7 @@ class FrmAppHelper {
10
  /**
11
  * @since 2.0
12
  */
13
- public static $plug_version = '2.02.07';
14
 
15
  /**
16
  * @since 1.07.02
10
  /**
11
  * @since 2.0
12
  */
13
+ public static $plug_version = '2.02.08';
14
 
15
  /**
16
  * @since 1.07.02
classes/helpers/FrmCSVExportHelper.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
- class FrmCSVExportHelper{
 
4
  protected static $separator = ', ';
5
  protected static $column_separator = ',';
6
  protected static $line_break = 'return';
1
  <?php
2
 
3
+ class FrmCSVExportHelper {
4
+
5
  protected static $separator = ', ';
6
  protected static $column_separator = ',';
7
  protected static $line_break = 'return';
classes/helpers/FrmFieldsHelper.php CHANGED
@@ -122,7 +122,7 @@ class FrmFieldsHelper {
122
  'size' => '', 'max' => '', 'label' => '', 'blank' => '',
123
  'required_indicator' => '*', 'invalid' => '', 'separate_value' => 0,
124
  'clear_on_focus' => 0, 'default_blank' => 0, 'classes' => '',
125
- 'custom_html' => '', 'captcha_size' => 'default', 'captcha_theme' => 'light',
126
  );
127
 
128
  if ( $limit ) {
@@ -473,14 +473,17 @@ DEFAULT_HTML;
473
  $class_prefix = 'frm-';
474
  }
475
 
476
- if ( $lang != 'en' ) {
477
  $api_js_url .= '&hl=' . $lang;
478
- }
479
  $api_js_url = apply_filters( 'frm_recaptcha_js_url', $api_js_url );
480
 
481
  wp_register_script( 'recaptcha-api', $api_js_url, '', true );
482
  wp_enqueue_script( 'recaptcha-api' );
483
 
 
 
 
484
  ?>
485
  <div id="field_<?php echo esc_attr( $field['field_key'] ) ?>" class="<?php echo esc_attr( $class_prefix ) ?>g-recaptcha" data-sitekey="<?php echo esc_attr( $frm_settings->pubkey ) ?>" data-size="<?php echo esc_attr( $field['captcha_size'] ) ?>" data-theme="<?php echo esc_attr( $field['captcha_theme'] ) ?>"></div>
486
  <?php
122
  'size' => '', 'max' => '', 'label' => '', 'blank' => '',
123
  'required_indicator' => '*', 'invalid' => '', 'separate_value' => 0,
124
  'clear_on_focus' => 0, 'default_blank' => 0, 'classes' => '',
125
+ 'custom_html' => '', 'captcha_size' => 'normal', 'captcha_theme' => 'light',
126
  );
127
 
128
  if ( $limit ) {
473
  $class_prefix = 'frm-';
474
  }
475
 
476
+ if ( ! empty( $lang ) ) {
477
  $api_js_url .= '&hl=' . $lang;
478
+ }
479
  $api_js_url = apply_filters( 'frm_recaptcha_js_url', $api_js_url );
480
 
481
  wp_register_script( 'recaptcha-api', $api_js_url, '', true );
482
  wp_enqueue_script( 'recaptcha-api' );
483
 
484
+ // for reverse compatability
485
+ $field['captcha_size'] = ( $field['captcha_size'] == 'default' ) ? 'normal' : $field['captcha_size'];
486
+
487
  ?>
488
  <div id="field_<?php echo esc_attr( $field['field_key'] ) ?>" class="<?php echo esc_attr( $class_prefix ) ?>g-recaptcha" data-sitekey="<?php echo esc_attr( $frm_settings->pubkey ) ?>" data-size="<?php echo esc_attr( $field['captcha_size'] ) ?>" data-theme="<?php echo esc_attr( $field['captcha_theme'] ) ?>"></div>
489
  <?php
classes/helpers/FrmXMLHelper.php CHANGED
@@ -81,7 +81,7 @@ class FrmXMLHelper {
81
 
82
  public static function import_xml_terms( $terms, $imported ) {
83
  foreach ( $terms as $t ) {
84
- if ( term_exists((string) $t->term_slug, (string) $t->term_taxonomy) ) {
85
  continue;
86
  }
87
 
@@ -139,7 +139,7 @@ class FrmXMLHelper {
139
  'editable' => (int) $item->editable,
140
  'status' => (string) $item->status,
141
  'parent_form_id' => isset($item->parent_form_id) ? (int) $item->parent_form_id : 0,
142
- 'created_at' => date('Y-m-d H:i:s', strtotime((string) $item->created_at)),
143
  );
144
 
145
  $form['options'] = FrmAppHelper::maybe_json_decode($form['options']);
@@ -206,6 +206,8 @@ class FrmXMLHelper {
206
  // Send pre 2.0 form options through function that creates actions
207
  self::migrate_form_settings_to_actions( $form['options'], $form_id, $imported, $switch = true );
208
 
 
 
209
  unset($form, $item);
210
  }
211
 
@@ -506,8 +508,8 @@ class FrmXMLHelper {
506
  'post_id' => (int) $item->post_id,
507
  'post_parent' => (int) $item->post_parent,
508
  'menu_order' => (int) $item->menu_order,
509
- 'post_content' => FrmFieldsHelper::switch_field_ids((string) $item->content),
510
- 'post_excerpt' => FrmFieldsHelper::switch_field_ids((string) $item->excerpt),
511
  'is_sticky' => (string) $item->is_sticky,
512
  'comment_status' => (string) $item->comment_status,
513
  'post_date' => (string) $item->post_date,
81
 
82
  public static function import_xml_terms( $terms, $imported ) {
83
  foreach ( $terms as $t ) {
84
+ if ( term_exists( (string) $t->term_slug, (string) $t->term_taxonomy ) ) {
85
  continue;
86
  }
87
 
139
  'editable' => (int) $item->editable,
140
  'status' => (string) $item->status,
141
  'parent_form_id' => isset($item->parent_form_id) ? (int) $item->parent_form_id : 0,
142
+ 'created_at' => date( 'Y-m-d H:i:s', strtotime( (string) $item->created_at ) ),
143
  );
144
 
145
  $form['options'] = FrmAppHelper::maybe_json_decode($form['options']);
206
  // Send pre 2.0 form options through function that creates actions
207
  self::migrate_form_settings_to_actions( $form['options'], $form_id, $imported, $switch = true );
208
 
209
+ do_action( 'frm_after_import_form', $form_id, $form );
210
+
211
  unset($form, $item);
212
  }
213
 
508
  'post_id' => (int) $item->post_id,
509
  'post_parent' => (int) $item->post_parent,
510
  'menu_order' => (int) $item->menu_order,
511
+ 'post_content' => FrmFieldsHelper::switch_field_ids( (string) $item->content ),
512
+ 'post_excerpt' => FrmFieldsHelper::switch_field_ids( (string) $item->excerpt ),
513
  'is_sticky' => (string) $item->is_sticky,
514
  'comment_status' => (string) $item->comment_status,
515
  'post_date' => (string) $item->post_date,
classes/models/FrmAddon.php CHANGED
@@ -53,6 +53,7 @@ class FrmAddon {
53
 
54
  public function edd_plugin_updater() {
55
 
 
56
  $license = $this->license;
57
 
58
  if ( empty( $license ) ) {
@@ -89,6 +90,7 @@ class FrmAddon {
89
  public function clear_license() {
90
  delete_option( $this->option_name . 'active' );
91
  delete_option( $this->option_name . 'key' );
 
92
  }
93
 
94
  public function set_active( $is_active ) {
@@ -163,6 +165,26 @@ class FrmAddon {
163
  update_option( 'frm_last_cleared', date('Y-m-d H:i:s') );
164
  }
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  public static function activate() {
167
  FrmAppHelper::permission_check('frm_change_settings');
168
  check_ajax_referer( 'frm_ajax', 'nonce' );
@@ -175,40 +197,70 @@ class FrmAddon {
175
  $plugin_slug = sanitize_text_field( $_POST['plugin'] );
176
  $this_plugin = self::get_addon( $plugin_slug );
177
  $this_plugin->set_license( $license );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
 
179
- $response = array( 'success' => false, 'message' => '' );
180
  try {
181
- $license_data = $this_plugin->send_mothership_request( 'activate_license', $license );
 
182
 
183
  // $license_data->license will be either "valid" or "invalid"
184
- $is_valid = 'invalid';
185
  if ( is_array( $license_data ) ) {
186
- if ( $license_data['license'] == 'valid' ) {
187
- $is_valid = $license_data['license'];
188
- $response['message'] = __( 'Your license has been activated. Enjoy!', 'formidable' );
189
- $response['success'] = true;
190
- } else if ( $license_data['license'] == 'invalid' ) {
191
- $response['message'] = __( 'That license key is invalid', 'formidable' );
192
  }
193
- } else if ( $license_data == 'expired' ) {
194
- $response['message'] = __( 'That license is expired', 'formidable' );
195
- } else if ( $license_data == 'no_activations_left' ) {
196
- $response['message'] = __( 'That license has been used on too many sites', 'formidable' );
197
- } else if ( $license_data == 'invalid_item_id' ) {
198
- $response['message'] = __( 'Oops! That is the wrong license key for this plugin.', 'formidable' );
199
- } else if ( $license_data == 'missing' ) {
200
- $response['message'] = __( 'That license key is invalid', 'formidable' );
201
  } else {
202
- $response['message'] = FrmAppHelper::kses( $license_data, array( 'a' ) );
203
  }
204
-
205
- $this_plugin->set_active( $is_valid );
206
  } catch ( Exception $e ) {
207
- $response['message'] = $e->getMessage();
208
  }
209
 
210
- echo json_encode( $response );
211
- wp_die();
 
 
 
 
 
 
 
 
 
 
 
212
  }
213
 
214
  public static function deactivate() {
@@ -218,11 +270,12 @@ class FrmAddon {
218
  $plugin_slug = sanitize_text_field( $_POST['plugin'] );
219
  $this_plugin = self::get_addon( $plugin_slug );
220
  $license = $this_plugin->get_license();
 
221
 
222
  $response = array( 'success' => false, 'message' => '' );
223
  try {
224
  // $license_data->license will be either "deactivated" or "failed"
225
- $license_data = $this_plugin->send_mothership_request( 'deactivate_license', $license );
226
  if ( is_array( $license_data ) && $license_data['license'] == 'deactivated' ) {
227
  $response['success'] = true;
228
  $response['message'] = __( 'That license was removed successfully', 'formidable' );
@@ -239,10 +292,10 @@ class FrmAddon {
239
  wp_die();
240
  }
241
 
242
- public function send_mothership_request( $action, $license ) {
243
  $api_params = array(
244
  'edd_action' => $action,
245
- 'license' => $license,
246
  'item_name' => urlencode( $this->plugin_name ),
247
  'url' => home_url(),
248
  );
53
 
54
  public function edd_plugin_updater() {
55
 
56
+ $this->is_license_revoked();
57
  $license = $this->license;
58
 
59
  if ( empty( $license ) ) {
90
  public function clear_license() {
91
  delete_option( $this->option_name . 'active' );
92
  delete_option( $this->option_name . 'key' );
93
+ delete_site_transient( $this->transient_key() );
94
  }
95
 
96
  public function set_active( $is_active ) {
165
  update_option( 'frm_last_cleared', date('Y-m-d H:i:s') );
166
  }
167
 
168
+ private function is_license_revoked() {
169
+ if ( empty( $this->license ) || empty( $this->plugin_slug ) || isset( $_POST['license'] ) ) {
170
+ return;
171
+ }
172
+
173
+ $license_status = get_site_transient( $this->transient_key() );
174
+
175
+ if ( $license_status === false ) {
176
+ $response = $this->get_license_status();
177
+ set_site_transient( $this->transient_key(), $response, DAY_IN_SECONDS );
178
+ if ( $response['status'] == 'revoked' ) {
179
+ $this->clear_license();
180
+ }
181
+ }
182
+ }
183
+
184
+ private function transient_key() {
185
+ return 'frm_' . md5( sanitize_key( $this->license . '_' . $this->plugin_slug ) );
186
+ }
187
+
188
  public static function activate() {
189
  FrmAppHelper::permission_check('frm_change_settings');
190
  check_ajax_referer( 'frm_ajax', 'nonce' );
197
  $plugin_slug = sanitize_text_field( $_POST['plugin'] );
198
  $this_plugin = self::get_addon( $plugin_slug );
199
  $this_plugin->set_license( $license );
200
+ $this_plugin->license = $license;
201
+
202
+ $response = $this_plugin->get_license_status();
203
+ $response['message'] = '';
204
+ $response['success'] = false;
205
+
206
+ if ( $response['error'] ) {
207
+ $response['message'] = $response['status'];
208
+ } else {
209
+ $messages = $this_plugin->get_messages();
210
+ if ( is_string( $response['status'] ) && isset( $messages[ $response['status'] ] ) ) {
211
+ $response['message'] = $messages[ $response['status'] ];
212
+ } else {
213
+ $response['message'] = FrmAppHelper::kses( $response['status'], array( 'a' ) );
214
+ }
215
+
216
+ $is_valid = false;
217
+ if ( $response['status'] == 'valid' ) {
218
+ $is_valid = 'valid';
219
+ $response['success'] = true;
220
+ }
221
+ $this_plugin->set_active( $is_valid );
222
+ }
223
+
224
+ echo json_encode( $response );
225
+ wp_die();
226
+ }
227
+
228
+ private function get_license_status() {
229
+ $response = array( 'status' => 'missing', 'error' => true );
230
+ if ( empty( $this->license ) ) {
231
+ $response['error'] = false;
232
+ return $response;
233
+ }
234
 
 
235
  try {
236
+ $response['error'] = false;
237
+ $license_data = $this->send_mothership_request( 'activate_license' );
238
 
239
  // $license_data->license will be either "valid" or "invalid"
 
240
  if ( is_array( $license_data ) ) {
241
+ if ( in_array( $license_data['license'], array( 'valid', 'invalid' ) ) ) {
242
+ $response['status'] = $license_data['license'];
 
 
 
 
243
  }
 
 
 
 
 
 
 
 
244
  } else {
245
+ $response['status'] = $license_data;
246
  }
 
 
247
  } catch ( Exception $e ) {
248
+ $response['status'] = $e->getMessage();
249
  }
250
 
251
+ return $response;
252
+ }
253
+
254
+ private function get_messages() {
255
+ return array(
256
+ 'valid' => __( 'Your license has been activated. Enjoy!', 'formidable' ),
257
+ 'invalid' => __( 'That license key is invalid', 'formidable' ),
258
+ 'expired' => __( 'That license is expired', 'formidable' ),
259
+ 'revoked' => __( 'That license has been refunded', 'formidable' ),
260
+ 'no_activations_left' => __( 'That license has been used on too many sites', 'formidable' ),
261
+ 'invalid_item_id' => __( 'Oops! That is the wrong license key for this plugin.', 'formidable' ),
262
+ 'missing' => __( 'That license key is invalid', 'formidable' ),
263
+ );
264
  }
265
 
266
  public static function deactivate() {
270
  $plugin_slug = sanitize_text_field( $_POST['plugin'] );
271
  $this_plugin = self::get_addon( $plugin_slug );
272
  $license = $this_plugin->get_license();
273
+ $this_plugin->license = $license;
274
 
275
  $response = array( 'success' => false, 'message' => '' );
276
  try {
277
  // $license_data->license will be either "deactivated" or "failed"
278
+ $license_data = $this_plugin->send_mothership_request( 'deactivate_license' );
279
  if ( is_array( $license_data ) && $license_data['license'] == 'deactivated' ) {
280
  $response['success'] = true;
281
  $response['message'] = __( 'That license was removed successfully', 'formidable' );
292
  wp_die();
293
  }
294
 
295
+ public function send_mothership_request( $action ) {
296
  $api_params = array(
297
  'edd_action' => $action,
298
+ 'license' => $this->license,
299
  'item_name' => urlencode( $this->plugin_name ),
300
  'url' => home_url(),
301
  );
classes/models/FrmCreateFile.php CHANGED
@@ -37,7 +37,7 @@ class FrmCreateFile {
37
  // only write the file if the folders exist
38
  if ( $dirs_exist ) {
39
  global $wp_filesystem;
40
-
41
  $new_file = $this->uploads['basedir'] . '/' . $this->folder_name . '/' . $this->file_name;
42
  $wp_filesystem->put_contents( $new_file, $file_content, $this->chmod_file );
43
  }
37
  // only write the file if the folders exist
38
  if ( $dirs_exist ) {
39
  global $wp_filesystem;
40
+
41
  $new_file = $this->uploads['basedir'] . '/' . $this->folder_name . '/' . $this->file_name;
42
  $wp_filesystem->put_contents( $new_file, $file_content, $this->chmod_file );
43
  }
classes/models/FrmEDD_SL_Plugin_Updater.php CHANGED
@@ -12,191 +12,194 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  * Allows plugins to use their own update API.
13
  *
14
  * @author Pippin Williamson
15
- * @version 1.6.3
16
  */
17
  class FrmEDD_SL_Plugin_Updater {
18
- private $api_url = '';
19
- private $api_data = array();
20
- private $name = '';
21
- private $slug = '';
22
- private $version = '';
23
-
24
- /**
25
- * Class constructor.
26
- *
27
- * @uses plugin_basename()
28
- * @uses hook()
29
- *
30
- * @param string $_api_url The URL pointing to the custom API endpoint.
31
- * @param string $_plugin_file Path to the plugin file.
32
- * @param array $_api_data Optional data to send with API calls.
33
- */
34
- public function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
 
 
35
  global $frm_edd_plugin_data;
36
 
37
- $this->api_url = trailingslashit( $_api_url );
38
- $this->api_data = $_api_data;
39
- $this->name = plugin_basename( $_plugin_file );
40
- $this->slug = basename( $_plugin_file, '.php' );
41
- $this->version = $_api_data['version'];
 
42
 
43
  $frm_edd_plugin_data[ $this->slug ] = $this->api_data;
44
 
45
  // Set up hooks.
46
  $this->init();
47
- }
48
-
49
- /**
50
- * Set up WordPress filters to hook into WP's update process.
51
- *
52
- * @uses add_filter()
53
- *
54
- * @return void
55
- */
56
- public function init() {
57
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
58
- add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
59
  add_action( 'admin_init', array( $this, 'show_changelog' ) );
60
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
- /**
63
- * Check for Updates at the defined API endpoint and modify the update array.
64
- *
65
- * This function dives into the update API just when WordPress creates its update array,
66
- * then adds a custom API call and injects the custom plugin data retrieved from the API.
67
- * It is reassembled from parts of the native WordPress plugin update code.
68
- * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
69
- *
70
- * @uses api_request()
71
- *
72
- * @param array $_transient_data Update array build by WordPress.
73
- * @return array Modified update array with custom plugin data.
74
- */
75
- public function check_update( $_transient_data ) {
76
-
77
- global $pagenow;
78
-
79
- if ( ! is_object( $_transient_data ) ) {
80
- $_transient_data = new stdClass;
81
- }
82
 
83
- if ( empty( $_transient_data->response ) || empty( $_transient_data->response[ $this->name ] ) ) {
84
-
85
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
86
-
87
- if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
88
-
89
- if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
90
-
91
- if ( empty( $version_info->plugin ) ) {
92
- $version_info->plugin = $this->name;
93
- }
94
-
95
- $_transient_data->response[ $this->name ] = $version_info;
96
-
97
- }
98
-
99
- $_transient_data->last_checked = time();
100
- $_transient_data->checked[ $this->name ] = $this->version;
101
-
102
- }
103
- }
104
-
105
- return $_transient_data;
106
- }
107
-
108
- /**
109
- * Updates information on the "View version x.x details" page with custom data.
110
- *
111
- * @uses api_request()
112
- *
113
- * @param mixed $_data
114
- * @param string $_action
115
- * @param object $_args
116
- * @return object $_data
117
- */
118
- public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
119
-
120
- if ( $_action != 'plugin_information' ) {
121
-
122
- return $_data;
123
-
124
- }
125
-
126
- if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
127
-
128
- return $_data;
129
-
130
- }
131
-
132
- $to_send = array(
133
- 'slug' => $this->slug,
134
- 'is_ssl' => is_ssl(),
135
- 'fields' => array(
136
- 'banners' => false, // These will be supported soon hopefully
137
- 'reviews' => false,
138
- ),
139
- );
140
-
141
- $api_response = $this->api_request( 'plugin_information', $to_send );
142
-
143
- if ( false !== $api_response ) {
144
- $_data = $api_response;
145
- }
146
-
147
- return $_data;
148
- }
149
-
150
-
151
- /**
152
- * Disable SSL verification in order to prevent download update failures
153
- *
154
- * @param array $args
155
- * @param string $url
156
- * @return object $array
157
- */
158
- public function http_request_args( $args, $url ) {
159
- // If it is an https request and we are performing a package download, disable ssl verification
160
- if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
161
- $args['sslverify'] = false;
162
- }
163
- return $args;
164
- }
165
-
166
- /**
167
- * Calls the API and, if successfull, returns the object delivered by the API.
168
- *
169
- * @uses get_bloginfo()
170
- * @uses wp_remote_post()
171
- * @uses is_wp_error()
172
- *
173
- * @param string $_action The requested action.
174
- * @param array $_data Parameters for the API action.
175
- * @return false|object
176
- */
177
- private function api_request( $_action, $_data ) {
178
 
179
- global $wp_version;
 
 
 
 
 
 
 
 
180
 
181
- $data = array_merge( $this->api_data, $_data );
 
182
 
183
- if ( $data['slug'] != $this->slug ) {
184
- return;
185
  }
186
 
187
- if ( $this->api_url == home_url() ) {
188
- return false; // Don't allow a plugin to ping itself
189
- }
190
 
191
- $api_params = array(
192
- 'edd_action' => 'get_version',
193
- 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
194
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
195
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
196
- 'slug' => $data['slug'],
197
- 'author' => $data['author'],
198
- 'url' => home_url(),
199
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
  $cache_key = 'edd_plugin_' . md5( sanitize_key( $api_params['license'] . $this->version ) . '_' . $api_params['edd_action'] );
202
  $cached_response = get_transient( $cache_key );
@@ -205,24 +208,24 @@ class FrmEDD_SL_Plugin_Updater {
205
  return $cached_response;
206
  }
207
 
208
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
209
 
210
- if ( ! is_wp_error( $request ) ) {
211
- $request = json_decode( wp_remote_retrieve_body( $request ) );
212
- }
213
 
214
- if ( $request && isset( $request->sections ) ) {
215
- $request->sections = maybe_unserialize( $request->sections );
216
  set_transient( $cache_key, $request, DAY_IN_SECONDS );
217
- } else {
218
- $request = false;
219
  set_transient( $cache_key, 0, DAY_IN_SECONDS );
220
- }
221
 
222
- return $request;
223
- }
224
 
225
- public function show_changelog() {
226
 
227
  global $frm_edd_plugin_data;
228
 
@@ -278,5 +281,5 @@ class FrmEDD_SL_Plugin_Updater {
278
  }
279
 
280
  exit;
281
- }
282
  }
12
  * Allows plugins to use their own update API.
13
  *
14
  * @author Pippin Williamson
15
+ * @version 1.6.5
16
  */
17
  class FrmEDD_SL_Plugin_Updater {
18
+
19
+ private $api_url = '';
20
+ private $api_data = array();
21
+ private $name = '';
22
+ private $slug = '';
23
+ private $version = '';
24
+ private $wp_override = false;
25
+
26
+ /**
27
+ * Class constructor.
28
+ *
29
+ * @uses plugin_basename()
30
+ * @uses hook()
31
+ *
32
+ * @param string $_api_url The URL pointing to the custom API endpoint.
33
+ * @param string $_plugin_file Path to the plugin file.
34
+ * @param array $_api_data Optional data to send with API calls.
35
+ */
36
+ public function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
37
  global $frm_edd_plugin_data;
38
 
39
+ $this->api_url = trailingslashit( $_api_url );
40
+ $this->api_data = $_api_data;
41
+ $this->name = plugin_basename( $_plugin_file );
42
+ $this->slug = basename( $_plugin_file, '.php' );
43
+ $this->version = $_api_data['version'];
44
+ $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false;
45
 
46
  $frm_edd_plugin_data[ $this->slug ] = $this->api_data;
47
 
48
  // Set up hooks.
49
  $this->init();
50
+ }
51
+
52
+ /**
53
+ * Set up WordPress filters to hook into WP's update process.
54
+ *
55
+ * @uses add_filter()
56
+ *
57
+ * @return void
58
+ */
59
+ public function init() {
60
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
61
+ add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
62
  add_action( 'admin_init', array( $this, 'show_changelog' ) );
63
+ }
64
+
65
+ /**
66
+ * Check for Updates at the defined API endpoint and modify the update array.
67
+ *
68
+ * This function dives into the update API just when WordPress creates its update array,
69
+ * then adds a custom API call and injects the custom plugin data retrieved from the API.
70
+ * It is reassembled from parts of the native WordPress plugin update code.
71
+ * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
72
+ *
73
+ * @uses api_request()
74
+ *
75
+ * @param array $_transient_data Update array build by WordPress.
76
+ * @return array Modified update array with custom plugin data.
77
+ */
78
+ public function check_update( $_transient_data ) {
79
+
80
+ global $pagenow;
81
+
82
+ if ( ! is_object( $_transient_data ) ) {
83
+ $_transient_data = new stdClass;
84
+ }
85
+
86
+ if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) {
87
+ return $_transient_data;
88
+ }
89
 
90
+ $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
+ if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
+ if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
95
+
96
+ if ( empty( $version_info->plugin ) ) {
97
+ $version_info->plugin = $this->name;
98
+ }
99
+
100
+ $_transient_data->response[ $this->name ] = $version_info;
101
+
102
+ }
103
 
104
+ $_transient_data->last_checked = time();
105
+ $_transient_data->checked[ $this->name ] = $this->version;
106
 
 
 
107
  }
108
 
109
+ return $_transient_data;
110
+ }
 
111
 
112
+ /**
113
+ * Updates information on the "View version x.x details" page with custom data.
114
+ *
115
+ * @uses api_request()
116
+ *
117
+ * @param mixed $_data
118
+ * @param string $_action
119
+ * @param object $_args
120
+ * @return object $_data
121
+ */
122
+ public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
123
+
124
+ if ( $_action != 'plugin_information' ) {
125
+
126
+ return $_data;
127
+
128
+ }
129
+
130
+ if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
131
+
132
+ return $_data;
133
+
134
+ }
135
+
136
+ $to_send = array(
137
+ 'slug' => $this->slug,
138
+ 'is_ssl' => is_ssl(),
139
+ 'fields' => array(
140
+ 'banners' => false, // These will be supported soon hopefully
141
+ 'reviews' => false,
142
+ ),
143
+ );
144
+
145
+ $api_response = $this->api_request( 'plugin_information', $to_send );
146
+
147
+ if ( false !== $api_response ) {
148
+ $_data = $api_response;
149
+ }
150
+
151
+ return $_data;
152
+ }
153
+
154
+ /**
155
+ * Disable SSL verification in order to prevent download update failures
156
+ *
157
+ * @param array $args
158
+ * @param string $url
159
+ * @return object $array
160
+ */
161
+ public function http_request_args( $args, $url ) {
162
+ // If it is an https request and we are performing a package download, disable ssl verification
163
+ if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
164
+ $args['sslverify'] = false;
165
+ }
166
+ return $args;
167
+ }
168
+
169
+ /**
170
+ * Calls the API and, if successfull, returns the object delivered by the API.
171
+ *
172
+ * @uses get_bloginfo()
173
+ * @uses wp_remote_post()
174
+ * @uses is_wp_error()
175
+ *
176
+ * @param string $_action The requested action.
177
+ * @param array $_data Parameters for the API action.
178
+ * @return false|object
179
+ */
180
+ private function api_request( $_action, $_data ) {
181
+
182
+ global $wp_version;
183
+
184
+ $data = array_merge( $this->api_data, $_data );
185
+
186
+ if ( $data['slug'] != $this->slug ) {
187
+ return;
188
+ }
189
+
190
+ if ( $this->api_url == trailingslashit( home_url() ) ) {
191
+ return false; // Don't allow a plugin to ping itself
192
+ }
193
+
194
+ $api_params = array(
195
+ 'edd_action' => 'get_version',
196
+ 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
197
+ 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
198
+ 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
199
+ 'slug' => $data['slug'],
200
+ 'author' => $data['author'],
201
+ 'url' => home_url(),
202
+ );
203
 
204
  $cache_key = 'edd_plugin_' . md5( sanitize_key( $api_params['license'] . $this->version ) . '_' . $api_params['edd_action'] );
205
  $cached_response = get_transient( $cache_key );
208
  return $cached_response;
209
  }
210
 
211
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
212
 
213
+ if ( ! is_wp_error( $request ) ) {
214
+ $request = json_decode( wp_remote_retrieve_body( $request ) );
215
+ }
216
 
217
+ if ( $request && isset( $request->sections ) ) {
218
+ $request->sections = maybe_unserialize( $request->sections );
219
  set_transient( $cache_key, $request, DAY_IN_SECONDS );
220
+ } else {
221
+ $request = false;
222
  set_transient( $cache_key, 0, DAY_IN_SECONDS );
223
+ }
224
 
225
+ return $request;
226
+ }
227
 
228
+ public function show_changelog() {
229
 
230
  global $frm_edd_plugin_data;
231
 
281
  }
282
 
283
  exit;
284
+ }
285
  }
classes/models/FrmEntryMeta.php CHANGED
@@ -67,8 +67,13 @@ class FrmEntryMeta {
67
  $prev_values = FrmDb::get_col( $wpdb->prefix . 'frm_item_metas', array( 'item_id' => $entry_id, 'field_id !' => 0 ), 'field_id' );
68
 
69
  foreach ( $values as $field_id => $meta_value ) {
70
- // set the value for the file upload field and add new tags (in Pro version)
71
- $meta_value = apply_filters( 'frm_prepare_data_before_db', $meta_value, $field_id, $entry_id );
 
 
 
 
 
72
 
73
  if ( $prev_values && in_array($field_id, $prev_values) ) {
74
 
67
  $prev_values = FrmDb::get_col( $wpdb->prefix . 'frm_item_metas', array( 'item_id' => $entry_id, 'field_id !' => 0 ), 'field_id' );
68
 
69
  foreach ( $values as $field_id => $meta_value ) {
70
+ $field = false;
71
+ if ( ! empty( $field_id ) ) {
72
+ $field = FrmField::getOne( $field_id );
73
+ }
74
+
75
+ // set the value for the file upload field and add new tags (in Pro version)
76
+ $meta_value = apply_filters( 'frm_prepare_data_before_db', $meta_value, $field_id, $entry_id, compact( 'field' ) );
77
 
78
  if ( $prev_values && in_array($field_id, $prev_values) ) {
79
 
classes/models/FrmFormAction.php CHANGED
@@ -589,7 +589,7 @@ class FrmFormAction {
589
 
590
  // update form options
591
  $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'options' => $form->options ), array( 'id' => $form->id ) );
592
- wp_cache_delete( $form->id, 'frm_form');
593
  }
594
 
595
  return $post_id;
589
 
590
  // update form options
591
  $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'options' => $form->options ), array( 'id' => $form->id ) );
592
+ FrmForm::clear_form_cache();
593
  }
594
 
595
  return $post_id;
classes/models/FrmNotification.php CHANGED
@@ -358,6 +358,16 @@ class FrmNotification {
358
  'to_email' => $atts['to_email'], 'subject' => $atts['subject'],
359
  ) );
360
 
 
 
 
 
 
 
 
 
 
 
361
  if ( apply_filters('frm_encode_subject', 1, $atts['subject'] ) ) {
362
  $atts['subject'] = '=?' . $charset . '?B?' . base64_encode( $atts['subject'] ) . '?=';
363
  }
358
  'to_email' => $atts['to_email'], 'subject' => $atts['subject'],
359
  ) );
360
 
361
+ /**
362
+ * Stop an email based on the message, subject, recipient,
363
+ * or any information included in the email header
364
+ * @since 2.2.8
365
+ */
366
+ $continue_sending = apply_filters( 'frm_send_email', true, compact( 'message', 'subject', 'recipient', 'header' ) );
367
+ if ( ! $continue_sending ) {
368
+ return;
369
+ }
370
+
371
  if ( apply_filters('frm_encode_subject', 1, $atts['subject'] ) ) {
372
  $atts['subject'] = '=?' . $charset . '?B?' . base64_encode( $atts['subject'] ) . '?=';
373
  }
classes/models/FrmPointers.php CHANGED
@@ -329,7 +329,7 @@ class FrmPointers {
329
  'content' => '<h3>' . __( 'Addons', 'formidable' ) . '</h3>'
330
  . '<p>' . sprintf( __( 'The powerful functions of %1$s can be extended with %2$spremium plugins%3$s. You can read all about the Formidable Premium Plugins %2$shere%3$s.', 'formidable' ), 'Formidable', '<a target="_blank" href="' . esc_url( FrmAppHelper::make_affiliate_url( 'https://formidablepro.com/' ) ) . '">', '</a>' )
331
  . '</p>'
332
- . '<p><strong>' . __( 'Like this plugin?', 'formidable' ) . '</strong><br/>' . sprintf( __( 'So, we&#8217;ve come to the end of the tour. If you like the plugin, please %srate it 5 stars on WordPress.org%s!', 'formidable' ), '<a target="_blank" href="https://wordpress.org/plugins/formidable/">', '</a>' ) . '</p>'
333
  . '<p>' . sprintf( __( 'Thank you for using our plugin and good luck with your forms!<br/><br/>Best,<br/>Team Formidable - %1$sformidablepro.com%2$s', 'formidable' ), '<a target="_blank" href="' . esc_url( FrmAppHelper::make_affiliate_url( 'https://formidablepro.com/' ) ) . '">', '</a>' ) . '</p>',
334
  'prev_page' => 'settings',
335
  );
329
  'content' => '<h3>' . __( 'Addons', 'formidable' ) . '</h3>'
330
  . '<p>' . sprintf( __( 'The powerful functions of %1$s can be extended with %2$spremium plugins%3$s. You can read all about the Formidable Premium Plugins %2$shere%3$s.', 'formidable' ), 'Formidable', '<a target="_blank" href="' . esc_url( FrmAppHelper::make_affiliate_url( 'https://formidablepro.com/' ) ) . '">', '</a>' )
331
  . '</p>'
332
+ . '<p><strong>' . __( 'Like this plugin?', 'formidable' ) . '</strong><br/>' . sprintf( __( 'So, we&#8217;ve come to the end of the tour. If you like the plugin, please %1$srate it 5 stars on WordPress.org%2$s!', 'formidable' ), '<a target="_blank" href="https://wordpress.org/plugins/formidable/">', '</a>' ) . '</p>'
333
  . '<p>' . sprintf( __( 'Thank you for using our plugin and good luck with your forms!<br/><br/>Best,<br/>Team Formidable - %1$sformidablepro.com%2$s', 'formidable' ), '<a target="_blank" href="' . esc_url( FrmAppHelper::make_affiliate_url( 'https://formidablepro.com/' ) ) . '">', '</a>' ) . '</p>',
334
  'prev_page' => 'settings',
335
  );
classes/models/FrmSettings.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class FrmSettings{
4
  public $option_name = 'frm_options';
5
  public $menu;
6
  public $mu_menu;
@@ -147,7 +147,7 @@ class FrmSettings{
147
 
148
  private function fill_recaptcha_settings() {
149
  $privkey = '';
150
- $re_lang = 'en';
151
 
152
  if ( ! isset($this->pubkey) ) {
153
  // get the options from the database
1
  <?php
2
 
3
+ class FrmSettings {
4
  public $option_name = 'frm_options';
5
  public $menu;
6
  public $mu_menu;
147
 
148
  private function fill_recaptcha_settings() {
149
  $privkey = '';
150
+ $re_lang = '';
151
 
152
  if ( ! isset($this->pubkey) ) {
153
  // get the options from the database
classes/views/addons/upgrade_to_pro.php CHANGED
@@ -9,7 +9,7 @@
9
 
10
  <p>Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in no time at all.</p>
11
  <p>Are you collecting data offline? Streamline your business by using your forms to get online. Whether you need surveys, polls, client contracts, mortgage calculators, or directories, we've got you covered. Save time by allowing clients to return and make changes to their own submissions, or let them contribute content to your site. Generate more leads by adding headings and page breaks, only showing the fields you need, and letting your clients repeat a section of fields as many times as they need.</p>
12
- <p>Projects that once seemed impossible are within your reach with Pro. That project you’ve been dreaming of pursuing? Chances are <strong>Formidable Pro can handle it</strong>.</p>
13
 
14
  <table class="wp-list-table widefat fixed striped frm_pricing">
15
  <thead>
@@ -66,6 +66,8 @@
66
  </table>
67
  <br/>
68
 
 
 
69
  <h2>Features</h2>
70
  <table class="wp-list-table widefat fixed striped">
71
  <thead>
9
 
10
  <p>Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in no time at all.</p>
11
  <p>Are you collecting data offline? Streamline your business by using your forms to get online. Whether you need surveys, polls, client contracts, mortgage calculators, or directories, we've got you covered. Save time by allowing clients to return and make changes to their own submissions, or let them contribute content to your site. Generate more leads by adding headings and page breaks, only showing the fields you need, and letting your clients repeat a section of fields as many times as they need.</p>
12
+ <p>Projects that once seemed impossible are within your reach with Pro. That project you’ve been dreaming of pursuing? Chances are <strong>Formidable Pro can handle it</strong>.</p><br/>
13
 
14
  <table class="wp-list-table widefat fixed striped frm_pricing">
15
  <thead>
66
  </table>
67
  <br/>
68
 
69
+ <?php do_action( 'frm_upgrade_page' ); ?>
70
+
71
  <h2>Features</h2>
72
  <table class="wp-list-table widefat fixed striped">
73
  <thead>
classes/views/frm-fields/back-end/dropdown-field.php CHANGED
@@ -32,4 +32,4 @@ if ( $display['default_blank'] ) { ?>
32
  </ul>
33
  <?php
34
  } ?>
35
- </div>
32
  </ul>
33
  <?php
34
  } ?>
35
+ </div>
classes/views/frm-fields/front-end/dropdown-field.php CHANGED
@@ -38,4 +38,4 @@ if ( isset($field['post_field']) && $field['post_field'] == 'post_category' && F
38
  'value' => $other_args['value'], 'field' => $field,
39
  'html_id' => $html_id, 'opt_key' => false,
40
  ) );
41
- }
38
  'value' => $other_args['value'], 'field' => $field,
39
  'html_id' => $html_id, 'opt_key' => false,
40
  ) );
41
+ }
classes/views/frm-forms/add_field.php CHANGED
@@ -250,7 +250,7 @@ if ( $display['options'] ) { ?>
250
  <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Set the size of the captcha field. The compact option is best if your form is in a small area.', 'formidable' ) ?>" ></span>
251
  </td>
252
  <td><select name="field_options[captcha_size_<?php echo esc_attr( $field['id'] ) ?>]">
253
- <option value="default"<?php selected($field['captcha_size'], 'default'); ?>><?php _e( 'Default', 'formidable' ) ?></option>
254
  <option value="compact"<?php selected($field['captcha_size'], 'compact'); ?>><?php _e( 'Compact', 'formidable' ) ?></option>
255
  </select>
256
  </td>
250
  <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Set the size of the captcha field. The compact option is best if your form is in a small area.', 'formidable' ) ?>" ></span>
251
  </td>
252
  <td><select name="field_options[captcha_size_<?php echo esc_attr( $field['id'] ) ?>]">
253
+ <option value="normal"<?php selected($field['captcha_size'], 'normal'); ?>><?php _e( 'Normal', 'formidable' ) ?></option>
254
  <option value="compact"<?php selected($field['captcha_size'], 'compact'); ?>><?php _e( 'Compact', 'formidable' ) ?></option>
255
  </select>
256
  </td>
classes/views/frm-settings/form.php CHANGED
@@ -85,6 +85,7 @@
85
 
86
  <p><label class="frm_left_label"><?php _e( 'reCAPTCHA Language', 'formidable' ) ?></label>
87
  <select name="frm_re_lang" id="frm_re_lang">
 
88
  <?php foreach ( $captcha_lang as $lang => $lang_name ) { ?>
89
  <option value="<?php echo esc_attr($lang) ?>" <?php selected($frm_settings->re_lang, $lang) ?>><?php echo esc_html( $lang_name ) ?></option>
90
  <?php } ?>
85
 
86
  <p><label class="frm_left_label"><?php _e( 'reCAPTCHA Language', 'formidable' ) ?></label>
87
  <select name="frm_re_lang" id="frm_re_lang">
88
+ <option value="" <?php selected( $frm_settings->re_lang, '' ) ?>><?php esc_html_e( 'Browser Default', 'formidable' ); ?></option>
89
  <?php foreach ( $captcha_lang as $lang => $lang_name ) { ?>
90
  <option value="<?php echo esc_attr($lang) ?>" <?php selected($frm_settings->re_lang, $lang) ?>><?php echo esc_html( $lang_name ) ?></option>
91
  <?php } ?>
classes/views/styles/_sample_form.php CHANGED
@@ -39,7 +39,7 @@
39
  </div>
40
 
41
  <div class="frm_form_field frm_section_heading form-field frm_first frm_half">
42
- <h3 class="frm_pos_top frm_trigger active frm_section_spacing"><i class="frm_icon_font frm_arrow_icon frm_before_collapse"></i> <?php _e( 'Collapsible Section', 'formidable' ) ?> <i class="frm_icon_font frm_arrow_icon frm_after_collapse"></i></h3>
43
  <div class="frm_toggle_container">
44
 
45
 
39
  </div>
40
 
41
  <div class="frm_form_field frm_section_heading form-field frm_first frm_half">
42
+ <h3 class="frm_pos_top frm_trigger active frm_section_spacing"><i class="frm_icon_font frm_arrow_icon frm_before_collapse"></i><?php _e( 'Collapsible Section', 'formidable' ) ?><i class="frm_icon_font frm_arrow_icon frm_after_collapse"></i></h3>
43
  <div class="frm_toggle_container">
44
 
45
 
css/_single_theme.css.php CHANGED
@@ -465,6 +465,22 @@ if ( ! isset( $center_form ) ) {
465
  border-color:#<?php echo esc_html( $border_color_disabled . $important ) ?>;
466
  }
467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
 
469
  .<?php echo esc_html( $style_class ) ?> .form-field input:not([type=file]):focus,
470
  .<?php echo esc_html( $style_class ) ?> select:focus,
465
  border-color:#<?php echo esc_html( $border_color_disabled . $important ) ?>;
466
  }
467
 
468
+ .<?php echo esc_html( $style_class ) ?> input::placeholder{
469
+ color:#<?php echo esc_html( $text_color_disabled . $important ) ?>;
470
+ }
471
+ .<?php echo esc_html( $style_class ) ?> input::-webkit-input-placeholder{
472
+ color:#<?php echo esc_html( $text_color_disabled . $important ) ?>;
473
+ }
474
+ .<?php echo esc_html( $style_class ) ?> input::-moz-placeholder{
475
+ color:#<?php echo esc_html( $text_color_disabled . $important ) ?>;
476
+ }
477
+ .<?php echo esc_html( $style_class ) ?> input:-ms-input-placeholder{
478
+ color:#<?php echo esc_html( $text_color_disabled . $important ) ?>;
479
+ }
480
+ .<?php echo esc_html( $style_class ) ?> input:-moz-placeholder{
481
+ color:#<?php echo esc_html( $text_color_disabled . $important ) ?>;
482
+ }
483
+
484
 
485
  .<?php echo esc_html( $style_class ) ?> .form-field input:not([type=file]):focus,
486
  .<?php echo esc_html( $style_class ) ?> select:focus,
css/font_icons.css CHANGED
@@ -40,6 +40,10 @@ a.frm_icon_font:hover{
40
  outline:none;
41
  }
42
 
 
 
 
 
43
  .ab-icon.frm_dashicon_font:before{
44
  content: "\f324";
45
  }
40
  outline:none;
41
  }
42
 
43
+ .frm_trigger .frm_icon_font{
44
+ padding:0 5px;
45
+ }
46
+
47
  .ab-icon.frm_dashicon_font:before{
48
  content: "\f324";
49
  }
formidable.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Formidable
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 2.02.07
6
  Plugin URI: http://formidablepro.com/
7
  Author URI: http://strategy11.com
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 2.02.08
6
  Plugin URI: http://formidablepro.com/
7
  Author URI: http://strategy11.com
8
  Author: Strategy11
js/formidable.js CHANGED
@@ -177,12 +177,6 @@ function frmFrontFormJS(){
177
  }
178
  });
179
 
180
- this.on('removedfile', function( file ) {
181
- if ( uploadFields[i].uploadMultiple !== true ) {
182
- jQuery('input[name="'+ fieldName +'"]').val('');
183
- }
184
- });
185
-
186
  this.on('complete', function( file ) {
187
  if ( typeof file.mediaID !== 'undefined' ) {
188
  if ( uploadFields[i].uploadMultiple ) {
@@ -209,7 +203,11 @@ function frmFrontFormJS(){
209
  });
210
 
211
  this.on('removedfile', function( file ) {
212
- if ( typeof file.mediaID !== 'undefined' ) {
 
 
 
 
213
  jQuery(file.previewElement).remove();
214
  var fileCount = this.files.length;
215
  this.options.maxFiles = uploadFields[i].maxFiles - fileCount;
@@ -1226,7 +1224,8 @@ function frmFrontFormJS(){
1226
  inputs[i].selectedIndex = 0;
1227
  }
1228
 
1229
- var autocomplete = document.getElementById( inputs[i].id + '_chosen' );
 
1230
  if ( autocomplete !== null ) {
1231
  jQuery(inputs[i]).trigger('chosen:updated');
1232
  }
@@ -2077,6 +2076,7 @@ function frmFrontFormJS(){
2077
  var $fieldInputs = $fieldDiv.find( 'select[name^="item_meta"], input[name^="item_meta"]' );
2078
  var prevValue = getFieldValueFromInputs( $fieldInputs );
2079
  var defaultVal = $fieldInputs.data('frmval');
 
2080
 
2081
  addLoadingIcon( $fieldDiv );
2082
 
@@ -2090,6 +2090,7 @@ function frmFrontFormJS(){
2090
  field_id:depFieldArgs.fieldId,
2091
  default_value:defaultVal,
2092
  container_id:depFieldArgs.containerId,
 
2093
  prev_val:prevValue,
2094
  nonce:frm_js.nonce
2095
  },
@@ -3036,8 +3037,6 @@ function frmFrontFormJS(){
3036
  }
3037
 
3038
  function getFormErrors(object, action){
3039
- jQuery(object).find('input[type="submit"], input[type="button"]').attr('disabled','disabled');
3040
-
3041
  if(typeof action == 'undefined'){
3042
  jQuery(object).find('input[name="frm_action"]').val();
3043
  }
@@ -3933,6 +3932,10 @@ function frmFrontFormJS(){
3933
 
3934
  if ( Object.keys(errors).length === 0 ) {
3935
  jQuery(object).find('.frm_ajax_loading').addClass('frm_loading_now');
 
 
 
 
3936
  if ( classList.indexOf('frm_ajax_submit') > -1 ) {
3937
  var hasFileFields = jQuery(object).find('input[type="file"]').length;
3938
  if ( hasFileFields < 1 ) {
177
  }
178
  });
179
 
 
 
 
 
 
 
180
  this.on('complete', function( file ) {
181
  if ( typeof file.mediaID !== 'undefined' ) {
182
  if ( uploadFields[i].uploadMultiple ) {
203
  });
204
 
205
  this.on('removedfile', function( file ) {
206
+ if ( file.accepted && uploadFields[i].uploadMultiple !== true ) {
207
+ jQuery('input[name="'+ fieldName +'"]').val('');
208
+ }
209
+
210
+ if ( file.accepted && typeof file.mediaID !== 'undefined' ) {
211
  jQuery(file.previewElement).remove();
212
  var fileCount = this.files.length;
213
  this.options.maxFiles = uploadFields[i].maxFiles - fileCount;
1224
  inputs[i].selectedIndex = 0;
1225
  }
1226
 
1227
+ var chosenId = inputs[i].id.replace(/[^\w]/g, '_'); // match what the script is doing
1228
+ var autocomplete = document.getElementById( chosenId + '_chosen' );
1229
  if ( autocomplete !== null ) {
1230
  jQuery(inputs[i]).trigger('chosen:updated');
1231
  }
2076
  var $fieldInputs = $fieldDiv.find( 'select[name^="item_meta"], input[name^="item_meta"]' );
2077
  var prevValue = getFieldValueFromInputs( $fieldInputs );
2078
  var defaultVal = $fieldInputs.data('frmval');
2079
+ var editingEntry = $fieldDiv.closest('form').find('input[name="id"]').val();
2080
 
2081
  addLoadingIcon( $fieldDiv );
2082
 
2090
  field_id:depFieldArgs.fieldId,
2091
  default_value:defaultVal,
2092
  container_id:depFieldArgs.containerId,
2093
+ editing_entry:editingEntry,
2094
  prev_val:prevValue,
2095
  nonce:frm_js.nonce
2096
  },
3037
  }
3038
 
3039
  function getFormErrors(object, action){
 
 
3040
  if(typeof action == 'undefined'){
3041
  jQuery(object).find('input[name="frm_action"]').val();
3042
  }
3932
 
3933
  if ( Object.keys(errors).length === 0 ) {
3934
  jQuery(object).find('.frm_ajax_loading').addClass('frm_loading_now');
3935
+
3936
+ // Disable submit button
3937
+ jQuery(object).find('input[type="submit"], input[type="button"]').attr('disabled','disabled');
3938
+
3939
  if ( classList.indexOf('frm_ajax_submit') > -1 ) {
3940
  var hasFileFields = jQuery(object).find('input[type="file"]').length;
3941
  if ( hasFileFields < 1 ) {
js/formidable.min.js CHANGED
@@ -3,11 +3,11 @@ function frmFrontFormJS(){function l(a){var b=jQuery(this),c=b.attr("type");"sub
3
  for(var d=0,e=0;e<a.length;e++)if(a[e].triggerID=="#"+b||a[e].triggerID==c)d=e;""!==a[d].options.defaultDate&&(a[d].options.defaultDate=new Date(a[d].options.defaultDate));jQuery(this).datepicker(jQuery.extend(jQuery.datepicker.regional[a[d].locale],a[d].options))}}function v(a){if("undefined"!==typeof __frmDropzone)for(var b=__frmDropzone,c=0;c<b.length;c++)z(c,a)}function z(a,b){var c=__frmDropzone,d="#"+c[a].htmlID+"_dropzone",e=c[a].fieldName;"undefined"!==typeof b&&-1!==d.indexOf("-0_dropzone")&&
4
  (d=d.replace("-0_dropzone","-"+b+"_dropzone"),e=e.replace("[0]","["+b+"]"),delete c[a].mockFiles);d=jQuery(d);if(!(1>d.length||d.hasClass("dz-clickable"))){var f=c[a].maxFiles;if("undefined"!==typeof c[a].mockFiles){var h=c[a].mockFiles.length;0<f&&(f-=h)}var h=d.closest("form"),g=h.find('input[type="submit"], .frm_submit input[type="button"]'),k=h.find(".frm_ajax_loading");d.dropzone({url:frm_js.ajax_url,addRemoveLinks:!0,paramName:d.attr("id").replace("_dropzone",""),maxFilesize:c[a].maxFilesize,
5
  maxFiles:f,uploadMultiple:c[a].uploadMultiple,dictDefaultMessage:c[a].defaultMessage,dictFallbackMessage:c[a].fallbackMessage,dictFallbackText:c[a].fallbackText,dictFileTooBig:c[a].fileTooBig,dictInvalidFileType:c[a].invalidFileType,dictResponseError:c[a].responseError,dictCancelUpload:c[a].cancel,dictCancelUploadConfirmation:c[a].cancelConfirm,dictRemoveFile:c[a].remove,dictMaxFilesExceeded:c[a].maxFilesExceeded,fallback:function(){jQuery(this.element).closest("form").removeClass("frm_ajax_submit")},
6
- init:function(){this.on("sending",function(b,d,e){e.append("action","frm_submit_dropzone");e.append("field_id",c[a].fieldID);e.append("form_id",c[a].formID)});this.on("success",function(b,d){for(var f=jQuery.parseJSON(d),g=0;g<f.length;g++)!0!==c[a].uploadMultiple&&jQuery('input[name="'+e+'"]').val(f[g])});this.on("successmultiple",function(b,d){for(var f=jQuery.parseJSON(d),g=0;g<b.length;g++)jQuery(b[g].previewElement).append(y(c[a],f[g],e))});this.on("removedfile",function(b){!0!==c[a].uploadMultiple&&
7
- jQuery('input[name="'+e+'"]').val("")});this.on("complete",function(b){if("undefined"!==typeof b.mediaID){c[a].uploadMultiple&&jQuery(b.previewElement).append(y(c[a],b.mediaID,e));for(var d=b.previewElement.querySelectorAll("[data-dz-name]"),f=0,g=d.length;f<g;f++)d[f].innerHTML='<a href="'+b.url+'">'+b.name+"</a>"}});this.on("addedfile",function(){k.addClass("frm_loading_now");g.attr("disabled","disabled")});this.on("queuecomplete",function(){k.removeClass("frm_loading_now");g.removeAttr("disabled")});
8
- this.on("removedfile",function(b){"undefined"!==typeof b.mediaID&&(jQuery(b.previewElement).remove(),this.options.maxFiles=c[a].maxFiles-this.files.length)});if("undefined"!==typeof c[a].mockFiles)for(var b=0;b<c[a].mockFiles.length;b++){var d={name:c[a].mockFiles[b].name,size:c[a].mockFiles[b].size,url:c[a].mockFiles[b].file_url,mediaID:c[a].mockFiles[b].id};this.emit("addedfile",d);this.emit("thumbnail",d,c[a].mockFiles[b].url);this.emit("complete",d);this.files.push(d)}}})}}function y(a,b,c){return'<input name="'+
9
- c+'[]" type="hidden" value="'+b+'" data-frmfile="'+a.fieldID+'" />'}function w(){var a=jQuery(this).data("frm-remove");Pa(jQuery(this).parent(".dz-preview"));a=jQuery('input[name="'+a+'"]');a.length&&a.val("")}function A(){var a=this.type,b=!1,c=!1;if("select-one"===a)c=!0,"frm_other_trigger"===this.options[this.selectedIndex].className&&(b=!0);else if("select-multiple"===a)for(var c=!0,d=this.options,b=!1,e=0;e<d.length;e++)if("frm_other_trigger"===d[e].className&&d[e].selected){b=!0;break}c?(a=
10
- jQuery(this).parent().children(".frm_other_input"),a.length&&(b?a[0].className=a[0].className.replace("frm_pos_none",""):(1>a[0].className.indexOf("frm_pos_none")&&(a[0].className+=" frm_pos_none"),a[0].value=""))):"radio"===a?jQuery(this).is(":checked")&&(jQuery(this).closest(".frm_radio").children(".frm_other_input").removeClass("frm_pos_none"),jQuery(this).closest(".frm_radio").siblings().children(".frm_other_input").addClass("frm_pos_none").val("")):"checkbox"===a&&(this.checked?jQuery(this).closest(".frm_checkbox").children(".frm_other_input").removeClass("frm_pos_none"):
11
  jQuery(this).closest(".frm_checkbox").children(".frm_other_input").addClass("frm_pos_none").val(""))}function G(a){var b=q(this,!1);if(b&&"undefined"!==typeof b&&(!a.frmTriggered||a.frmTriggered!=b)&&(ea(b,jQuery(this)),a="undefined"!==typeof a.originalEvent||-1<a.currentTarget.className.indexOf("frm_chzn")?"value changed":"other",fa(b,jQuery(this),a),L(b,jQuery(this)),jQuery(this).closest("form").hasClass("frm_js_validate"))){b=[];a=jQuery(this).closest(".frm_form_field");a.hasClass("frm_required_field")&&
12
  !jQuery(this).hasClass("frm_optional")&&(b=ga(this,b));if(1>b.length)if("email"==this.type)var c=jQuery(this).closest("form").find("input[type=email]"),b=ha(this,b,c);else"number"==this.type?b=ia(this,b):null!==this.pattern&&(b=ja(this,b));a.removeClass("frm_blank_field");a.find(".frm_error").remove();if(0<Object.keys(b).length)for(var d in b)M(a,d,b)}}function q(a,b){var c="",c=a instanceof jQuery?a.attr("name"):a.name;if(""===c)return c=a instanceof jQuery?a.data("name"):a.getAttribute("data-name"),
13
  ""!==c&&c?c:0;c=c.replace("item_meta[","").replace("[]","").split("]");if(1>c.length)return 0;var c=c.filter(function(a){return""!==a}),d=c[0],e=!1;if(1===c.length)return d;if("[form"===c[1]||"[row_ids"===c[1])return 0;jQuery('input[name="item_meta['+d+'][form]"]').length&&(d=c[2].replace("[",""),e=!0);"other"===d&&(d=e?c[3].replace("[",""):c[1].replace("[",""));!0===b&&(d=d===c[0]?d+"-"+c[1].replace("[",""):d+"-"+c[0]+"-"+c[1].replace("[",""));return d}function ea(a,b){if(!("undefined"===typeof __FRMRULES||
@@ -24,47 +24,47 @@ function frmFrontFormJS(){function l(a){var b=jQuery(this),c=b.attr("type");"sub
24
  0,l=k.length;m<l;m++)if("hidden"==k[m].type)jQuery.isArray(g)&&null!==g[m]?k[m].value=g[m]:k[m].value=g;else{if(k[m].value==g||jQuery.isArray(g)&&-1<g.indexOf(k[m].value))if(k[m].checked=!0,"radio"==k[m].type)break}else if(-1<d.name.indexOf("[]"))if(k=document.getElementsByName(d.name),jQuery.isArray(g))for(m=0,l=g.length;m<l;m++)m in k&&(k[m].value=g[m]);else null!==k[0]&&(k[0].value=g);else g.constructor===Object&&(k=d.getAttribute("name").split("[").slice(-1)[0],null!==k&&(k=k.replace("]",""),
25
  g=g[k],"undefined"==typeof g&&(g=""))),d.value=g;"SELECT"==d.tagName&&U(d);u(h)}d=a[f];h=q(d,!1);h=V(h);!1!==h&&"lookup"!=h.fieldType&&(h.parentVals=W(h),ua(h,d));d=a[f];if(h="undefined"!==typeof __FRMCALC){h=d.type;g=!1;if("text"==h||"hidden"==h||"number"==h)g=!0;h=g}if(h){h=__FRMCALC;g=d.name;k=d.id.replace("field_","");if(3<=g.split("][").length)for(g=k.split("-"),k="",m=0;m<g.length-1;m++)k=""===k?g[m]:k+"-"+g[m];g=k;k=null;3<=d.name.split("][").length&&(k="hidden"!=d.type?jQuery(d).closest(".frm_form_field"):
26
  jQuery(d));d=k;void 0!==h.calc[g]&&X(h,g,[],d)}d=a[f]}}function T(a,b){var c=q(a,!0);return B("frm_field_"+c+"_container",b)}function P(a,b){if(!B(a.containerId,a.formId)){if(b){jQuery("#"+a.containerId).hide();var c=na(a.containerId)}else c=pa(a);Y(c);va(a.containerId,a.formId)}}function Y(a){if(!(1>a.length)){for(var b,c=!0,d=0,e=a.length;d<e;d++)0<d&&b.name!=a[d].name&&!0===c&&u(jQuery(b)),c=!0,"radio"==a[d].type||"checkbox"==a[d].type?a[d].checked=!1:"SELECT"==a[d].tagName?(0===a[d].selectedIndex?
27
- c=!1:a[d].selectedIndex=0,null!==document.getElementById(a[d].id+"_chosen")&&jQuery(a[d]).trigger("chosen:updated")):a[d].value="",b=a[d];!0===c&&u(jQuery(b))}}function B(a,b){var c=!1;-1<E(b).indexOf(a)&&(c=!0);return c}function va(a,b){var c=E(b);if(!(-1<c.indexOf(a))){c.push(a);var c=JSON.stringify(c),d=document.getElementById("frm_hide_fields_"+b);null!==d&&(d.value=c)}}function E(a){var b=[];a=document.getElementById("frm_hide_fields_"+a);return null===a?b:b=(b=a.value)?JSON.parse(b):[]}function D(a,
28
- b){var c=E(b),d=c.indexOf(a);-1<d&&(c.splice(d,1),c=JSON.stringify(c),document.getElementById("frm_hide_fields_"+b).value=c)}function fa(a,b,c){if(!("undefined"===typeof __FRMLOOKUP||"undefined"===typeof __FRMLOOKUP[a]||1>__FRMLOOKUP[a].dependents.length||null===b||"undefined"===typeof b)){a=__FRMLOOKUP[a];b=H(b[0].name);for(var d=0,e=a.dependents.length;d<e;d++)Z(a.dependents[d],b,c)}}function Z(a,b,c){a=V(a);if(!(!1===a||1>a.parents.length))if("lookup"==a.fieldType){if(""!==b.repeatRow){c=[];var d=
29
- "frm_field_"+a.fieldId+"-",d=d+(b.repeatingSection+"-"+b.repeatRow+"_container");b=document.getElementById(d);null!==b&&c.push(b);b=c}else b=[],a.isRepeating?b=document.querySelectorAll(".frm_field_"+a.fieldId+"_container"):(c=document.getElementById("frm_field_"+a.fieldId+"_container"),null!==c&&b.push(c));c=0;for(d=b.length;c<d;c++){ka(a,b[c].id);var e=a,f=b[c];e.parentVals=W(e);if("select"==e.inputType)Va(e,f);else if("radio"==e.inputType||"checkbox"==e.inputType)if(!1===e.parentVals){var h=f.getElementsByTagName("input");
30
- wa(e,f);Y(h)}else Wa(e,f)}}else if("value changed"===c)for(c="field_"+a.fieldKey,c=a.isRepeating?""!==b.repeatingSection?'[id="'+c+"-"+b.repeatRow+'"]':'[id^="'+c+'-"]':'[id="'+c+'"]',b=document.querySelectorAll(c),c=0,d=b.length;c<d;c++)e=a,f=H(b[c].name),e.repeatRow=""!==f.repeatRow?f.repeatRow:"",e=a,f=b[c],e.parentVals=W(e),ua(e,f)}function V(a){return"undefined"===typeof __FRMLOOKUP||"undefined"===typeof __FRMLOOKUP[a]?!1:__FRMLOOKUP[a]}function W(a){for(var b=[],c=a.parents,d,e=0,f=c.length;e<
31
- f;e++){d=V(c[e]);d=qa(d,a);if(""===d||!1===d){b=!1;break}b[e]=d}return b}function sa(a){for(var b=!1,c=a.length,d=0;d<c;d++)if("hidden"==a[d].type||a[d].checked){b=a[d].value;break}return b}function Va(a,b){var c=b.getElementsByTagName("SELECT")[0];if(null!==c){var d=c.value;!1===a.parentVals?(c.options.length=1,""!==d&&(c.value="",U(c),u(jQuery(c),a.fieldKey))):(Xa(c),jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_replace_lookup_field_options",parent_fields:a.parents,parent_vals:a.parentVals,
32
- field_id:a.fieldId,nonce:frm_js.nonce},success:function(b){var d=a.fieldKey,h=c.value;b=JSON.parse(b);for(var g=c.options.length;0<g;g--)c.remove(g);for(var k=b.length,g=0;g<k;g++)c.options[g+1]=new Option(b[g],b[g],!1,!1);c.value=h;""===c.value&&(b=c.getAttribute("data-frmval"),null!==b&&(c.value=b));U(c);c.value!=h&&u(jQuery(c),d)}}))}}function U(a){-1<a.className.indexOf("frm_chzn")&&jQuery().chosen&&jQuery(a).trigger("chosen:updated")}function Xa(a){a.value||(a.options.length=1,a.options[1]=new Option(frm_js.loading,
33
- "",!1,!1))}function Wa(a,b){var c=b.getElementsByClassName("frm_opt_container")[0],d=c.getElementsByTagName("input");Ya(b,c);var e="",e="radio"==a.inputType?sa(d):R(d);jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_replace_cb_radio_lookup_options",parent_fields:a.parents,parent_vals:a.parentVals,field_id:a.fieldId,row_index:a.repeatRow,current_value:e,nonce:frm_js.nonce},success:function(e){c.innerHTML=e;e=b.getElementsByClassName("frm-loading-img")[0];null!==e&&void 0!==e&&e.parentNode.removeChild(e);
34
- c.style.display="block";1==d.length&&""===d[0].value?wa(a,b):!1!==B(b.id,a.formId)&&(e=N(a.fieldId),!1===e||1>e.conditions.length?(D(b.id,a.formId),jQuery("#"+b.id).show()):(e.containerId=b.id,e.repeatRow=a.repeatRow,la(e)));u(jQuery(d[0]),a.fieldKey)}})}function wa(a,b){B(b.id,a.formId)||(jQuery("#"+b.id).hide(),va(b.id,a.formId))}function ua(a,b){if(!T(b,a.formId))if(!1===a.parentVals){var c=b.getAttribute("data-frmval");null===c&&(c="");xa(a,b,c)}else jQuery.ajax({type:"POST",url:frm_js.ajax_url,
35
- data:{action:"frm_get_lookup_text_value",parent_fields:a.parents,parent_vals:a.parentVals,field_id:a.fieldId,nonce:frm_js.nonce},success:function(c){b.value!=c&&xa(a.fieldKey,b,c)}})}function xa(a,b,c){b.value=c;u(jQuery(b),a)}function Ra(a,b){if(b){var c=jQuery("#"+a.containerId);ya(c)}jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_fields_ajax_get_data",entry_id:a.dataLogic.actualValue,current_field:a.fieldId,hide_id:a.containerId,nonce:frm_js.nonce},success:function(d){if(b){var e=
36
- c.find(".frm_opt_container");e.html(d);var f=e.children("input"),h=f.val();za(e);""===d||""===h?P(a,!0):Aa(a,c,f,!0)}else e="field_"+a.fieldKey,""!==a.repeatRow&&(e+="-"+a.repeatRow),e=document.getElementById(e),e.value=d,B(a.containerId,a.formId)&&D(a.containerId,a.formId),u(jQuery(e))}})}function Sa(a,b){var c=jQuery("#"+a.containerId),d=c.find('select[name^="item_meta"], input[name^="item_meta"]'),e=Ba(d),d=d.data("frmval");ya(c);jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_fields_ajax_data_options",
37
- trigger_field_id:a.dataLogic.fieldId,entry_id:a.dataLogic.actualValue,field_id:a.fieldId,default_value:d,container_id:a.containerId,prev_val:e,nonce:frm_js.nonce},success:function(b){var d=c.find(".frm_opt_container");d.html(b);var g=d.find('select, input[type="checkbox"], input[type="radio"]');za(d);""===b||1>g.length?P(a,!0):(b=Ba(g),Aa(a,c,g,e!==b))}})}function ya(a){var b=a.html();-1<b.indexOf("frm-loading-img")||(a.html(b+'<span class="frm-loading-img"></span>'),a.find(".frm_opt_container").hide())}
38
- function Ya(a,b){if(!(-1<a.innerHTML.indexOf("frm-loading-img"))){b.style.display="none";var c=document.createElement("span");c.setAttribute("class","frm-loading-img");a.insertBefore(c,b.nextSibling)}}function za(a){a.parent().children(".frm-loading-img").remove();a.show()}function Ba(a){var b=[],c="";a.each(function(){c=this.value;"radio"===this.type||"checkbox"===this.type?!0===this.checked&&b.push(c):""!==c&&b.push(c)});0===b.length&&(b="");return b}function Aa(a,b,c,d){B(a.containerId,a.formId)&&
39
- (D(a.containerId,a.formId),b.show());c.hasClass("frm_chzn")&&aa();!0===d&&u(c)}function L(a,b){if("undefined"!==typeof __FRMCALC){var c=__FRMCALC,d=c.fields[a];if("undefined"!==typeof d)for(var d=d.total,e=[],f=0,h=d.length;f<h;f++){var g;g=c.calc[d[f]];var k=b.attr("name"),m=!1,l=g.field_id,n=E(g.form_id);1>n.length||("0"===g.inSection&&"0"===g.inEmbedForm?m=J(l,n):(k=H(k),J(l,n)?m=!0:Ca(l,k,n)?m=!0:"0"!==g.inSection&&"0"!==g.inEmbedForm?m=Ca(g.inSection,k,n):"0"!==g.inSection?m=J(g.inSection,n):
40
- "0"!==g.inEmbedForm&&(m=J(g.inEmbedForm,n))));g=m;!1===g&&X(c,d[f],e,b)}}}function J(a,b){return-1<b.indexOf("frm_field_"+a+"_container")}function Ca(a,b,c){var d=!1;b.repeatingSection&&(a="frm_field_"+a+"-"+b.repeatingSection,a+="-"+b.repeatRow+"_container",d=-1<c.indexOf(a));return d}function X(a,b,c,d){var e=a.calc[b],f=e.calc,h=jQuery(document.getElementById("field_"+b)),g={triggerField:d,inSection:!1,thisFieldCall:'input[id^="field_'+b+'-"]'};1>h.length&&"undefined"!==typeof d&&(g.inSection=
41
- !0,g.thisFieldId=Za(a.fieldsWithCalc,b),h=Da(g));if(!(1>h.length)){f=$a(e,f,a,c,g);if("text"!=e.calc_type){a=e.calc_dec;-1<f.indexOf(").toFixed(")&&(c=f.split(").toFixed("),Ea(c[1])&&(a=c[1],f=f.replace(").toFixed("+a,"")));f=parseFloat(eval(f));if("undefined"===typeof f||isNaN(f))f=0;Ea(a)&&(f=f.toFixed(a))}h.val()!=f&&(h.val(f),u(h,b))}}function $a(a,b,c,d,e){for(var f=0,h=a.fields.length;f<h;f++){var g={triggerField:e.triggerField,thisFieldId:a.fields[f],inSection:e.inSection,valKey:e.inSection+
42
- ""+a.fields[f],thisField:c.fields[a.fields[f]],thisFieldCall:"input"+c.fieldKeys[a.fields[f]]},k=c;"checkbox"==g.thisField.type||"radio"==g.thisField.type||"scale"==g.thisField.type?g.thisFieldCall=g.thisFieldCall+":checked,"+g.thisFieldCall+"[type=hidden]":"select"==g.thisField.type||"time"==g.thisField.type?g.thisFieldCall="select"+k.fieldKeys[g.thisFieldId]+" option:selected,"+g.thisFieldCall+"[type=hidden]":"textarea"==g.thisField.type&&(g.thisFieldCall=g.thisFieldCall+",textarea"+k.fieldKeys[g.thisFieldId]);
43
- if("text"==a.calc_type)g.valKey="text"+g.valKey,d=ab(g,d),"undefined"===typeof d[g.valKey]&&(d[g.valKey]="");else{g.valKey="num"+g.valKey;d=bb(g,c,d);if("undefined"===typeof d[g.valKey]||isNaN(d[g.valKey]))d[g.valKey]=0;"date"==g.thisField.type&&0===d[g.valKey]&&(b="")}k="["+g.thisFieldId+"]";k=k.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1");b=b.replace(new RegExp(k,"g"),d[g.valKey])}return b}function bb(a,b,c){if("undefined"!==typeof c[a.valKey]&&0!==c[a.valKey])return c;c[a.valKey]=0;var d=Fa(a);
44
- if(!1===d)return c;d.each(function(){var d=Ga(a.thisField,this);if("date"==a.thisField.type){var f;f=b.date;var h=0;if(d)if("undefined"===typeof jQuery.datepicker){h="-";-1<f.indexOf("/")&&(h="/");f=f.split(h);var d=d.split(h),g,k;g=h=k="";for(var m=0;m<f.length;m++)if("y"==f[m])g=((new Date).getFullYear()+15).toString().substr(2,2),g=d[m]>g?"19"+d[m]:"20"+d[m];else if("yy"==f[m])g=d[m];else if("m"==f[m]||"mm"==f[m])h=d[m],2>h.length&&(h="0"+h);else if("d"==f[m]||"dd"==f[m])k=d[m],2>k.length&&(k=
45
- "0"+k);h=Date.parse(g+"-"+h+"-"+k)}else h=jQuery.datepicker.parseDate(f,d);f=h;null!==f&&(c[a.valKey]=Math.ceil(f/864E5))}else{f=d;""!==f&&0!==f&&(f=f.trim(),f=parseFloat(f.replace(/,/g,"").match(/-?[\d\.]+$/)));if("undefined"===typeof f||isNaN(f)||""===f)f=0;c[a.valKey]+=f}});return c}function ab(a,b){if("undefined"!==typeof b[a.valKey]&&""!==b[a.valKey])return b;b[a.valKey]="";var c=Fa(a);if(!1===c)return b;c.each(function(){var c=Ga(a.thisField,this),c=c.trim();b[a.valKey]+=c});return b}function Fa(a){var b;
46
- if(!1===a.inSection)b=jQuery(a.thisFieldCall);else if(b=Da(a),null===b||"undefined"===typeof b)b=jQuery(a.thisFieldCall);if(null===b||"undefined"===typeof b||1>b.length)b=!1;return b}function Da(a){if("undefined"===typeof a.triggerField)return null;var b=a.triggerField.closest(".frm_repeat_sec, .frm_repeat_inline, .frm_repeat_grid");return b.length?(a=a.thisFieldCall.replace("[id=","[id^="),b.find(a)):null}function Ga(a,b){var c;c=!1;if("hidden"==b.type)""!==ba(b)&&(c=!0);else if("select"==a.type){var d=
47
- b.className;d&&-1<d.indexOf("frm_other_trigger")&&(c=!0)}else("checkbox"==a.type||"radio"==a.type)&&-1<b.id.indexOf("-other_")&&0>b.id.indexOf("-otext")&&(c=!0);c?(c=0,"select"==a.type?"hidden"==b.type?(d=!1,2<b.name.split("[").length&&(d=!0),d||(c=ba(b))):c=jQuery(b).closest(".frm_other_container").find(".frm_other_input").val():"checkbox"!=a.type&&"radio"!=a.type||"hidden"==b.type||(c=ba(b))):c="checkbox"!==b.type&&"radio"!==b.type||!b.checked?jQuery(b).val():b.value;"undefined"===typeof c&&(c=
48
- "");return c}function ba(a){var b="";a=document.getElementById(a.id+"-otext");null!==a&&""!==a.value&&(b=a.value);return b}function Ha(a){var b=!1;a=jQuery(a).find(".frm_saving_draft");a.length&&(b=a.val());return b}function Ia(a){var b=!1,c=jQuery(a).find(".frm_next_page");if(c.length&&c.val()){var d=jQuery(a).find('input[name="form_id"]').val();a=jQuery(a).find('input[name="frm_page_order_'+d+'"]');a=a.length?a.val():0;if(!a||c.val()<a)b=!0}return b}function ga(a,b){var c=a.getAttribute("data-frmfile");
49
- if("hidden"==a.type&&null===c)return b;var d="",e="";if("checkbox"==a.type||"radio"==a.type)c=jQuery('input[name="'+a.name+'"]').closest(".frm_required_field").find("input:checked"),jQuery(c).each(function(){d=this.value});else if("file"==a.type||c)"undefined"===typeof c&&(c=q(a,!0),c=c.replace("file","")),"undefined"===typeof b[c]&&(d=cb(c)),e=c;else{e=a.className;if(-1!==e.indexOf("frm_pos_none"))return b;d=jQuery(a).val();if("string"!==typeof d)for(var c=d,d="",f=0;f<c.length;f++)""!==c[f]&&(d=
50
- c[f]);e=-1===e.indexOf("frm_other_input")?q(a,!0):q(a,!1)}""===d&&(""===e&&(e=q(a,!0)),e in b||(b[e]=F(a,"data-reqmsg")));return b}function cb(a){var b="";jQuery('input[name="file'+a+'"], input[name="file'+a+'[]"], input[name^="item_meta['+a+']"]').each(function(){""===b&&(b=this.value)});return b}function ha(a,b,c){var d=a.value,e=q(a,!0);if(e in b)return b;var f=0===e.indexOf("conf_");if(""!==d||f){var h=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i,
51
- g=F(a,"data-invmsg");""!==d&&!1===h.test(d)?(b[e]=g,f&&(b[e.replace("conf_","")]="")):f&&(a=a.name.replace("conf_",""),c.filter('[name="'+a+'"]').val()!==d&&(b[e]="",b[e.replace("conf_","")]=""))}return b}function ia(a,b){var c=a.value;""!==c&&!1!==isNaN(c/1)&&(c=q(a,!0),c in b||(b[c]=F(a,"data-invmsg")));return b}function ja(a,b){var c=a.value,d=F(a,"pattern");if(""!==d&&""!==c){var e=q(a,!0);e in b||(d=new RegExp("^"+d+"$","i"),!1===d.test(c)&&(b[e]=F(a,"data-invmsg")))}return b}function F(a,b){var c=
52
- a.getAttribute(b);null===c&&(c="");return c}function db(a,b){jQuery(a).find('input[type="submit"], input[type="button"]').attr("disabled","disabled");"undefined"==typeof b&&jQuery(a).find('input[name="frm_action"]').val();jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(a).serialize()+"&action=frm_entries_"+b+"&nonce="+frm_js.nonce,success:function(b){var d={content:"",errors:{},pass:!1};null===b&&(b=d);b=b.replace(/^\s+|\s+$/g,"");b=0===b.indexOf("{")?jQuery.parseJSON(b):d;if("undefined"!=
53
- typeof b.redirect)window.location=b.redirect;else if(""!==b.content){jQuery(a).find(".frm_ajax_loading").removeClass("frm_loading_now");var e=jQuery(a).find('input[name="form_id"]').val();jQuery(a).closest("#frm_form_"+e+"_container").replaceWith(b.content);frmFrontForm.scrollMsg(e);"function"==typeof frmThemeOverride_frmAfterSubmit&&(e=jQuery('input[name="frm_page_order_'+e+'"]').val(),d=jQuery(b.content).find('input[name="form_id"]').val(),frmThemeOverride_frmAfterSubmit(d,e,b.content,a));e=jQuery(a).find('input[name="id"]');
54
- e.length&&jQuery(document.getElementById("frm_edit_"+e.val())).find("a").addClass("frm_ajax_edited").click();jQuery(b.content).find(".frm_message").length&&ca("pageLoad");da()}else if(Object.keys(b.errors).length){jQuery(a).find('input[type="submit"], input[type="button"]').removeAttr("disabled");jQuery(a).find(".frm_ajax_loading").removeClass("frm_loading_now");d=!0;Ja();var f=!1,h;for(e in b.errors)if(h=jQuery(a).find("#frm_field_"+e+"_container"),h.length){if(!h.is(":visible")){var g=h.closest(".frm_toggle_container");
55
- g.length&&(g=g.prev(),g.hasClass("frm_trigger")||(g=g.prev(".frm_trigger")),g.click())}h.is(":visible")&&(M(h,e,b.errors),d=!1,h=jQuery(a).find("#frm_field_"+e+"_container .frm-g-recaptcha, #frm_field_"+e+"_container .g-recaptcha"),h.length&&(f=!0,h=h.data("rid"),jQuery().grecaptcha&&(h?grecaptcha.reset(h):grecaptcha.reset())))}Ka(a);!0!==f&&La(a,!1);d?a.submit():jQuery(a).prepend(b.error_message)}else eb(a),La(a,!0),a.submit()},error:function(){jQuery(a).find('input[type="submit"], input[type="button"]').removeAttr("disabled");
56
- a.submit()}})}function M(a,b,c){a.length&&a.is(":visible")&&(a.addClass("frm_blank_field"),"function"==typeof frmThemeOverride_frmPlaceError?frmThemeOverride_frmPlaceError(b,c):a.append('<div class="frm_error">'+c[b]+"</div>"))}function Ja(){jQuery(".form-field").removeClass("frm_blank_field");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function Ka(a){var b=jQuery(a).find(".frm_blank_field:first");b.length&&frmFrontForm.scrollMsg(b,a,!0)}function eb(a){var b=
57
- document.getElementById("frm_loading");null!==b&&(a=jQuery(a).find("input[type=file]").val(),"undefined"!=typeof a&&""!==a&&setTimeout(function(){jQuery(b).fadeIn("slow")},2E3))}function La(a,b){var c=jQuery(a).find(".frm-g-recaptcha, .g-recaptcha");c.length&&(!b||1>jQuery(a).find(".frm_next_page").length||1>jQuery(a).find(".frm_next_page").val())&&c.closest(".frm_form_field").replaceWith('<input type="hidden" name="recaptcha_checked" value="'+frm_js.nonce+'">')}function fb(){Ma(jQuery(this),"clear")}
58
- function gb(){Ma(jQuery(this),"replace")}function Ma(a,b){var c=a.data("frmval").replace(/(\n|\r\n)/g,"\r");if(""===c||"undefined"==typeof c)return!1;var d=a.val().replace(/(\n|\r\n)/g,"\r");"replace"==b?""===d&&a.addClass("frm_default").val(c):d==c&&a.removeClass("frm_default").val("")}function hb(){var a=jQuery(this),b=a.data("eid"),c=a.data("fid");a.append('<span class="spinner" style="display:inline"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",
59
- entry_id:b,form_id:c,nonce:frm_js.nonce},success:function(b){a.replaceWith(b)}});return!1}function ib(a,b){google.load("visualization","1.0",{packages:[b],callback:function(){var b=new google.visualization.DataTable,d=!1;-1!==jQuery.inArray("id",a.options.fields)&&(d=!0,b.addColumn("number",frm_js.id));for(var e=a.fields.length,f,h=0,g=e;h<g;h++){var k=a.fields[h];f=Na(k);b.addColumn(f,k.name)}h=!1;a.options.edit_link&&(h=!0,b.addColumn("string",a.options.edit_link));g=!1;a.options.delete_link&&(g=
60
- !0,b.addColumn("string",a.options.delete_link));if(null!==a.entries){var m=a.entries.length;b.addRows(m);for(var l=0,n=0;n<m;n++){var k=0,p=a.entries[n];d&&(b.setCell(l,k,p.id),k++);for(var q=0,r=e;q<r;q++){var t=a.fields[q];f=Na(t);t=p.metas[t.id];"number"!=f||null!==t&&""!==t?"boolean"==f&&(t=null===t||"false"==t||!1===t?!1:!0):t=0;b.setCell(l,k,t);k++}h&&("undefined"!==typeof p.editLink?b.setCell(l,k,'<a href="'+p.editLink+'">'+a.options.edit_link+"</a>"):b.setCell(l,k,""),k++);g&&("undefined"!==
61
- typeof p.deleteLink?b.setCell(l,k,'<a href="'+p.deleteLink+'" class="frm_delete_link" data-frmconfirm="'+a.options.confirm+'">'+a.options.delete_link+"</a>"):b.setCell(l,k,""));l++}}else for(b.addRows(1),h=k=0,g=e;h<g;h++)0<k?b.setCell(0,k,""):b.setCell(0,k,a.options.no_entries),k++;(new google.visualization.Table(document.getElementById("frm_google_table_"+a.options.form_id))).draw(b,a.graphOpts)}})}function jb(a){google.load("visualization","1.0",{packages:[a["package"]],callback:function(){var b;
62
- new google.visualization.DataTable;b=google.visualization.arrayToDataTable(a.data);var c=document.getElementById("chart_"+a.graph_id);if(null!==c){var d=a.type.charAt(0).toUpperCase()+a.type.slice(1);"Histogram"!==d&&"Table"!==d&&(d+="Chart");(new google.visualization[d](c)).draw(b,a.options)}}})}function Na(a){var b="string";if("number"==a.type)b="number";else if("checkbox"==a.type||"select"==a.type){var c=a.options.length;"select"==a.type&&""===a.options[0]&&(c="post_status"==a.field_options.post_field?
63
- 3:c-1);1==c&&(b="boolean")}return b}function kb(){var a=jQuery(this).data("key"),b=jQuery(this).data("parent"),c="frm_section_"+b+"-"+a,d=jQuery(document.getElementById(c)),e=d.find("input, select, textarea"),f=jQuery(this).closest("form").find('input[name="form_id"]').val();d.fadeOut("slow",function(){d.remove();e.each(function(){var c=q(this,!1);"file"!=this.type&&L(c,jQuery(this));D("frm_field_"+c+"-"+b+"-"+a+"_container",f)});"function"==typeof frmThemeOverride_frmRemoveRow&&frmThemeOverride_frmRemoveRow(c,
64
- d)});return!1}function lb(){if(!0===K)return!1;K=!0;var a=jQuery(this).data("parent"),b=0;if(0<jQuery(".frm_repeat_"+a).length)var c=jQuery(".frm_repeat_"+a+":last").attr("id").replace("frm_section_"+a+"-",""),b=-1<c.indexOf("i")?1:1+parseInt(c);jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"json",data:{action:"frm_add_form_row",field_id:a,i:b,nonce:frm_js.nonce},success:function(c){var e=c.html,f=jQuery(e).hide().fadeIn("slow");jQuery(".frm_repeat_"+a+":last").after(f);var h=["other"],g,
65
- k,m={repeatingSection:a.toString(),repeatRow:b.toString()};jQuery(e).find("input, select, textarea").each(function(){if("file"!=this.type){if(""===this.name)return!0;g=this.name.replace("item_meta[","").split("]")[2].replace("[","");-1==jQuery.inArray(g,h)&&!1!==this.id&&""!==this.id&&(k=jQuery("#"+this.id),h.push(g),I(g,m),Z(g,m,"value changed"),ea(g,k),fa(g,k,"value changed"),L(g,k))}});v(m.repeatRow);Oa();aa();"function"==typeof frmThemeOverride_frmAddRow&&frmThemeOverride_frmAddRow(a,c);K=!1},
66
- error:function(){K=!1}});return!1}function mb(){var a=jQuery(this),b=a.data("entryid"),c=a.data("prefix"),d=a.data("pageid"),e=a.data("formid"),f=a.data("cancel"),h=a.data("fields"),g=a.data("excludefields"),k=jQuery(document.getElementById(c+b)),m=k.html();k.html('<span class="frm-loading-img" id="'+c+b+'"></span><div class="frm_orig_content" style="display:none">'+m+"</div>");jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"html",data:{action:"frm_entries_edit_entry_ajax",post_id:d,entry_id:b,
67
- id:e,nonce:frm_js.nonce,fields:h,exclude_fields:g},success:function(b){k.children(".frm-loading-img").replaceWith(b);a.removeClass("frm_inplace_edit").addClass("frm_cancel_edit");a.html(f);ca("editInPlace");jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',G);da()}});return!1}function nb(){var a=jQuery(this),b=a.data("entryid"),c=a.data("prefix"),d=a.data("edit");a.hasClass("frm_ajax_edited")||
68
  (b=jQuery(document.getElementById(c+b)),b.children(".frm_forms").replaceWith(""),b.children(".frm_orig_content").fadeIn("slow").removeClass("frm_orig_content"));a.removeClass("frm_cancel_edit").addClass("frm_inplace_edit");a.html(d);return!1}function ob(){var a=jQuery(this),b=a.data("deleteconfirm");if(confirm(b)){var c=a.data("entryid"),d=a.data("prefix");a.replaceWith('<span class="frm-loading-img" id="frm_delete_'+c+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",
69
  entry:c,nonce:frm_js.nonce},success:function(a){"success"==a.replace(/^\s+|\s+$/g,"")?(jQuery(document.getElementById(d+c)).fadeOut("slow"),jQuery(document.getElementById("frm_delete_"+c)).fadeOut("slow")):jQuery(document.getElementById("frm_delete_"+c)).replaceWith(a)}})}return!1}function da(){"undefined"!==typeof __frmHideFields&&frmFrontForm.hidePreviouslyHiddenFields();jQuery(document).on("focusin",".frm_date",r);if("undefined"!==typeof __frmUniqueTimes)for(var a=__frmUniqueTimes,b=0;b<a.length;b++)jQuery(document.getElementById(a[b].dateID)).change(p);
70
  if("undefined"!==typeof __frmMasks)for(a=__frmMasks,b=0;b<a.length;b++)jQuery(a[b].trigger).attr("data-frmmask",a[b].mask);Oa();aa();"undefined"!==typeof __frmDepDynamicFields&&frmFrontForm.checkDependentDynamicFields(__frmDepDynamicFields);"undefined"!==typeof __frmDepLookupFields&&frmFrontForm.checkDependentLookupFields(__frmDepLookupFields);if("undefined"!==typeof __FRMCALC){(a=__FRMCALC.triggers)&&jQuery(a.join()).trigger({type:"change",selfTriggered:!0});var a=__FRMCALC.calc,b=[],c;for(c in a)if(1>
@@ -76,16 +76,16 @@ function frmFrontFormJS(){function l(a){var b=jQuery(this),c=b.attr("type");"sub
76
  ".frm_toggle_default",fb);jQuery(document).on("blur",".frm_toggle_default",gb);jQuery(".frm_toggle_default").blur();jQuery(document.getElementById("frm_resend_email")).click(hb);jQuery(document).on("click",".frm_remove_link",w);jQuery(document).on("focusin","input[data-frmmask]",function(){jQuery(this).mask(jQuery(this).data("frmmask").toString())});jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',
77
  G);jQuery(document).on("click",'.frm-show-form input[type="submit"], .frm-show-form input[name="frm_prev_page"], .frm-show-form .frm_save_draft',l);jQuery(document).on("change",'.frm_other_container input[type="checkbox"], .frm_other_container input[type="radio"], .frm_other_container select',A);jQuery(document).on("click",".frm_remove_form_row",kb);jQuery(document).on("click",".frm_add_form_row",lb);jQuery(document).on("click","a[data-frmconfirm]",pb);jQuery("a[data-frmtoggle]").click(qb);jQuery(".frm_edit_link_container").on("click",
78
  "a.frm_inplace_edit",mb);jQuery(".frm_edit_link_container").on("click","a.frm_cancel_edit",nb);jQuery(document).on("click",".frm_ajax_delete",ob);jQuery(".frm_month_heading, .frm_year_heading").click(function(){var a=jQuery(this).children(".ui-icon-triangle-1-e, .ui-icon-triangle-1-s");a.hasClass("ui-icon-triangle-1-e")?(a.addClass("ui-icon-triangle-1-s").removeClass("ui-icon-triangle-1-e"),jQuery(this).next(".frm_toggle_container").fadeIn("slow")):(a.addClass("ui-icon-triangle-1-e").removeClass("ui-icon-triangle-1-s"),
79
- jQuery(this).next(".frm_toggle_container").hide())});ca("pageLoad");da();rb();sb();tb();ub()},submitForm:function(a){frmFrontForm.submitFormManual(a,this)},submitFormManual:function(a,b){var c=b.className.trim().split(/\s+/gi);if((!c||-1<c.indexOf("frm_pro_form"))&&!jQuery("body").hasClass("wp-admin")){a.preventDefault();var d=frmFrontForm.validateFormSubmit(b);0===Object.keys(d).length&&(jQuery(b).find(".frm_ajax_loading").addClass("frm_loading_now"),-1<c.indexOf("frm_ajax_submit")?1>jQuery(b).find('input[type="file"]').length?
80
- (C=jQuery(b).find('input[name="frm_action"]').val(),frmFrontForm.checkFormErrors(b,C)):b.submit():b.submit())}},validateFormSubmit:function(a){"undefined"!=typeof tinyMCE&&jQuery(this).find(".wp-editor-wrap").length&&tinyMCE.triggerSave();x=[];var b=jQuery(a).hasClass("frm_js_validate");b&&(Ha(a)||Ia(a))&&(b=!1);b&&(frmFrontForm.getAjaxFormErrors(a),Object.keys(x).length&&frmFrontForm.addAjaxFormErrors(a));return x},getAjaxFormErrors:function(a){var b=[],c=jQuery(a).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
81
- if(c.length)for(var d=0,e=c.length;d<e;d++)b=ga(c[d],b);c=jQuery(a).find("input[type=email]").filter(":visible");d=jQuery(a).find("input,select,textarea");if(d.length)for(var e=0,f=d.length;e<f;e++){var h=d[e];""!==h.value&&"hidden"!=h.type&&("number"==h.type?b=ia(h,b):"email"==h.type?b=ha(h,b,c):null!==h.pattern&&(b=ja(h,b)))}c=jQuery(a).find(".frm-g-recaptcha");c.length&&(d=c.data("rid"),0===grecaptcha.getResponse(d).length&&(c=c.closest(".frm_form_field").attr("id").replace("frm_field_","").replace("_container",
82
- ""),b[c]=""));x=b;if("function"==typeof frmThemeOverride_jsErrors&&(C=jQuery(a).find('input[name="frm_action"]').val(),a=frmThemeOverride_jsErrors(C,a),Object.keys(a).length))for(var g in a)x[g]=a[g];return x},addAjaxFormErrors:function(a){Ja();for(var b in x){var c=jQuery(a).find("#frm_field_"+b+"_container");c.length?M(c,b,x):delete x[b]}Ka(a)},checkFormErrors:function(a,b){db(a,b)},scrollToID:function(a){a=jQuery(document.getElementById(a));frmFrontForm.scrollMsg(a,!1)},scrollMsg:function(a,b,
83
- c){if("undefined"==typeof b){if(a=jQuery(document.getElementById("frm_form_"+a+"_container")),1>a.length)return}else a="string"==typeof a?jQuery(b).find("#frm_field_"+a+"_container"):a;if(a=a.offset().top){a-=frm_js.offset;b=jQuery("html").css("margin-top");var d=jQuery("body").css("margin-top");if(b||d)a=a-parseInt(b)-parseInt(d);if(a&&window.innerHeight&&(b=document.documentElement.scrollTop||document.body.scrollTop,a>b+window.innerHeight||a<b))return"undefined"===typeof c?jQuery(window).scrollTop(a):
84
- jQuery("html,body").animate({scrollTop:a},500),!1}},savingDraft:function(a){return Ha(a)},goingToPreviousPage:function(a){return Ia(a)},hideOrShowFields:function(a,b){if("pageLoad"===b){var c=document.querySelectorAll('[id^="frm_hide_fields_"]');Y(c)}for(var c={repeatingSection:"",repeatRow:""},d=0,e=a.length;d<e;d++)I(a[d],c)},hidePreviouslyHiddenFields:function(){var a;a=[];for(var b=document.querySelectorAll('*[id^="frm_hide_fields_"]'),c=b.length,d,e=0;e<c;e++)d=b[e].id.replace("frm_hide_fields_",
85
- ""),a=a.concat(E(d));b=0;for(c=a.length;b<c;b++)d=document.getElementById(a[b]),null!==d&&(d.style.display="none")},checkDependentDynamicFields:function(a){for(var b={repeatingSection:"",repeatRow:""},c=0,d=a.length;c<d;c++)I(a[c],b)},checkDependentLookupFields:function(a){for(var b,c={repeatingSection:"",repeatRow:""},d=0,e=a.length;d<e;d++)b=a[d],Z(b,c,"value changed")},loadGoogle:function(){if("undefined"!==typeof google&&google&&google.load)for(var a=__FRMTABLES,b=Object.keys(a),c=0;c<b.length;c++)if("graphs"===
86
- b[c])for(var d=a[b[c]],e=0,f=d.length;e<f;e++)jb(d[e]);else for(d=a[b[c]],e=b[c],f=0;f<d.length;f++)ib(d[f],e);else setTimeout(frmFrontForm.loadGoogle,30)},removeUsedTimes:function(a,b){var c=jQuery(a).parents("form:first").find('input[name="id"]');jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"json",data:{action:"frm_fields_ajax_time_options",time_field:b,date_field:a.id,entry_id:c?c.val():"",date:jQuery(a).val(),nonce:frm_js.nonce},success:function(a){var c=jQuery(document.getElementById(b));
87
- c.find("option").removeAttr("disabled");if(a&&""!==a)for(var f in a)c.find('option[value="'+f+'"]').attr("disabled","disabled")}})},escapeHtml:function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(a){jQuery(a).css("visibility","hidden")},visible:function(a){jQuery(a).css("visibility","visible")}}}var frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(l){frmFrontForm.init()});
88
- function frmRecaptcha(){for(var l=jQuery(".frm-g-recaptcha"),n=0,p=l.length;n<p;n++){var r=grecaptcha.render(l[n].id,{sitekey:l[n].getAttribute("data-sitekey"),size:l[n].getAttribute("data-size"),theme:l[n].getAttribute("data-theme")});l[n].setAttribute("data-rid",r)}}
89
  function frmUpdateField(l,n,p,r,v){jQuery(document.getElementById("frm_update_field_"+l+"_"+n)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:l,field_id:n,value:p,nonce:frm_js.nonce},success:function(){""===r.replace(/^\s+|\s+$/g,"")?jQuery(document.getElementById("frm_update_field_"+l+"_"+n+"_"+v)).fadeOut("slow"):jQuery(document.getElementById("frm_update_field_"+l+"_"+n+"_"+v)).replaceWith(r)}})}
90
  function frmEditEntry(l,n,p,r,v,z){console.warn("DEPRECATED: function frmEditEntry in v2.0.13 use frmFrontForm.editEntry");var y=jQuery(document.getElementById("frm_edit_"+l)),w=y.html(),A=jQuery(document.getElementById(n+l)),G=A.html();A.html('<span class="frm-loading-img" id="'+n+l+'"></span><div class="frm_orig_content" style="display:none">'+G+"</div>");jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"html",data:{action:"frm_entries_edit_entry_ajax",post_id:p,entry_id:l,id:r,nonce:frm_js.nonce},
91
  success:function(q){A.children(".frm-loading-img").replaceWith(q);y.replaceWith('<span id="frm_edit_'+l+'"><a onclick="frmCancelEdit('+l+",'"+n+"','"+frmFrontForm.escapeHtml(w)+"',"+p+","+r+",'"+z+'\')" class="'+z+'">'+v+"</a></span>")}})}
3
  for(var d=0,e=0;e<a.length;e++)if(a[e].triggerID=="#"+b||a[e].triggerID==c)d=e;""!==a[d].options.defaultDate&&(a[d].options.defaultDate=new Date(a[d].options.defaultDate));jQuery(this).datepicker(jQuery.extend(jQuery.datepicker.regional[a[d].locale],a[d].options))}}function v(a){if("undefined"!==typeof __frmDropzone)for(var b=__frmDropzone,c=0;c<b.length;c++)z(c,a)}function z(a,b){var c=__frmDropzone,d="#"+c[a].htmlID+"_dropzone",e=c[a].fieldName;"undefined"!==typeof b&&-1!==d.indexOf("-0_dropzone")&&
4
  (d=d.replace("-0_dropzone","-"+b+"_dropzone"),e=e.replace("[0]","["+b+"]"),delete c[a].mockFiles);d=jQuery(d);if(!(1>d.length||d.hasClass("dz-clickable"))){var f=c[a].maxFiles;if("undefined"!==typeof c[a].mockFiles){var h=c[a].mockFiles.length;0<f&&(f-=h)}var h=d.closest("form"),g=h.find('input[type="submit"], .frm_submit input[type="button"]'),k=h.find(".frm_ajax_loading");d.dropzone({url:frm_js.ajax_url,addRemoveLinks:!0,paramName:d.attr("id").replace("_dropzone",""),maxFilesize:c[a].maxFilesize,
5
  maxFiles:f,uploadMultiple:c[a].uploadMultiple,dictDefaultMessage:c[a].defaultMessage,dictFallbackMessage:c[a].fallbackMessage,dictFallbackText:c[a].fallbackText,dictFileTooBig:c[a].fileTooBig,dictInvalidFileType:c[a].invalidFileType,dictResponseError:c[a].responseError,dictCancelUpload:c[a].cancel,dictCancelUploadConfirmation:c[a].cancelConfirm,dictRemoveFile:c[a].remove,dictMaxFilesExceeded:c[a].maxFilesExceeded,fallback:function(){jQuery(this.element).closest("form").removeClass("frm_ajax_submit")},
6
+ init:function(){this.on("sending",function(b,d,e){e.append("action","frm_submit_dropzone");e.append("field_id",c[a].fieldID);e.append("form_id",c[a].formID)});this.on("success",function(b,d){for(var f=jQuery.parseJSON(d),g=0;g<f.length;g++)!0!==c[a].uploadMultiple&&jQuery('input[name="'+e+'"]').val(f[g])});this.on("successmultiple",function(b,d){for(var f=jQuery.parseJSON(d),g=0;g<b.length;g++)jQuery(b[g].previewElement).append(y(c[a],f[g],e))});this.on("complete",function(b){if("undefined"!==typeof b.mediaID){c[a].uploadMultiple&&
7
+ jQuery(b.previewElement).append(y(c[a],b.mediaID,e));for(var d=b.previewElement.querySelectorAll("[data-dz-name]"),f=0,g=d.length;f<g;f++)d[f].innerHTML='<a href="'+b.url+'">'+b.name+"</a>"}});this.on("addedfile",function(){k.addClass("frm_loading_now");g.attr("disabled","disabled")});this.on("queuecomplete",function(){k.removeClass("frm_loading_now");g.removeAttr("disabled")});this.on("removedfile",function(b){b.accepted&&!0!==c[a].uploadMultiple&&jQuery('input[name="'+e+'"]').val("");b.accepted&&
8
+ "undefined"!==typeof b.mediaID&&(jQuery(b.previewElement).remove(),this.options.maxFiles=c[a].maxFiles-this.files.length)});if("undefined"!==typeof c[a].mockFiles)for(var b=0;b<c[a].mockFiles.length;b++){var d={name:c[a].mockFiles[b].name,size:c[a].mockFiles[b].size,url:c[a].mockFiles[b].file_url,mediaID:c[a].mockFiles[b].id};this.emit("addedfile",d);this.emit("thumbnail",d,c[a].mockFiles[b].url);this.emit("complete",d);this.files.push(d)}}})}}function y(a,b,c){return'<input name="'+c+'[]" type="hidden" value="'+
9
+ b+'" data-frmfile="'+a.fieldID+'" />'}function w(){var a=jQuery(this).data("frm-remove");Pa(jQuery(this).parent(".dz-preview"));a=jQuery('input[name="'+a+'"]');a.length&&a.val("")}function A(){var a=this.type,b=!1,c=!1;if("select-one"===a)c=!0,"frm_other_trigger"===this.options[this.selectedIndex].className&&(b=!0);else if("select-multiple"===a)for(var c=!0,d=this.options,b=!1,e=0;e<d.length;e++)if("frm_other_trigger"===d[e].className&&d[e].selected){b=!0;break}c?(a=jQuery(this).parent().children(".frm_other_input"),
10
+ a.length&&(b?a[0].className=a[0].className.replace("frm_pos_none",""):(1>a[0].className.indexOf("frm_pos_none")&&(a[0].className+=" frm_pos_none"),a[0].value=""))):"radio"===a?jQuery(this).is(":checked")&&(jQuery(this).closest(".frm_radio").children(".frm_other_input").removeClass("frm_pos_none"),jQuery(this).closest(".frm_radio").siblings().children(".frm_other_input").addClass("frm_pos_none").val("")):"checkbox"===a&&(this.checked?jQuery(this).closest(".frm_checkbox").children(".frm_other_input").removeClass("frm_pos_none"):
11
  jQuery(this).closest(".frm_checkbox").children(".frm_other_input").addClass("frm_pos_none").val(""))}function G(a){var b=q(this,!1);if(b&&"undefined"!==typeof b&&(!a.frmTriggered||a.frmTriggered!=b)&&(ea(b,jQuery(this)),a="undefined"!==typeof a.originalEvent||-1<a.currentTarget.className.indexOf("frm_chzn")?"value changed":"other",fa(b,jQuery(this),a),L(b,jQuery(this)),jQuery(this).closest("form").hasClass("frm_js_validate"))){b=[];a=jQuery(this).closest(".frm_form_field");a.hasClass("frm_required_field")&&
12
  !jQuery(this).hasClass("frm_optional")&&(b=ga(this,b));if(1>b.length)if("email"==this.type)var c=jQuery(this).closest("form").find("input[type=email]"),b=ha(this,b,c);else"number"==this.type?b=ia(this,b):null!==this.pattern&&(b=ja(this,b));a.removeClass("frm_blank_field");a.find(".frm_error").remove();if(0<Object.keys(b).length)for(var d in b)M(a,d,b)}}function q(a,b){var c="",c=a instanceof jQuery?a.attr("name"):a.name;if(""===c)return c=a instanceof jQuery?a.data("name"):a.getAttribute("data-name"),
13
  ""!==c&&c?c:0;c=c.replace("item_meta[","").replace("[]","").split("]");if(1>c.length)return 0;var c=c.filter(function(a){return""!==a}),d=c[0],e=!1;if(1===c.length)return d;if("[form"===c[1]||"[row_ids"===c[1])return 0;jQuery('input[name="item_meta['+d+'][form]"]').length&&(d=c[2].replace("[",""),e=!0);"other"===d&&(d=e?c[3].replace("[",""):c[1].replace("[",""));!0===b&&(d=d===c[0]?d+"-"+c[1].replace("[",""):d+"-"+c[0]+"-"+c[1].replace("[",""));return d}function ea(a,b){if(!("undefined"===typeof __FRMRULES||
24
  0,l=k.length;m<l;m++)if("hidden"==k[m].type)jQuery.isArray(g)&&null!==g[m]?k[m].value=g[m]:k[m].value=g;else{if(k[m].value==g||jQuery.isArray(g)&&-1<g.indexOf(k[m].value))if(k[m].checked=!0,"radio"==k[m].type)break}else if(-1<d.name.indexOf("[]"))if(k=document.getElementsByName(d.name),jQuery.isArray(g))for(m=0,l=g.length;m<l;m++)m in k&&(k[m].value=g[m]);else null!==k[0]&&(k[0].value=g);else g.constructor===Object&&(k=d.getAttribute("name").split("[").slice(-1)[0],null!==k&&(k=k.replace("]",""),
25
  g=g[k],"undefined"==typeof g&&(g=""))),d.value=g;"SELECT"==d.tagName&&U(d);u(h)}d=a[f];h=q(d,!1);h=V(h);!1!==h&&"lookup"!=h.fieldType&&(h.parentVals=W(h),ua(h,d));d=a[f];if(h="undefined"!==typeof __FRMCALC){h=d.type;g=!1;if("text"==h||"hidden"==h||"number"==h)g=!0;h=g}if(h){h=__FRMCALC;g=d.name;k=d.id.replace("field_","");if(3<=g.split("][").length)for(g=k.split("-"),k="",m=0;m<g.length-1;m++)k=""===k?g[m]:k+"-"+g[m];g=k;k=null;3<=d.name.split("][").length&&(k="hidden"!=d.type?jQuery(d).closest(".frm_form_field"):
26
  jQuery(d));d=k;void 0!==h.calc[g]&&X(h,g,[],d)}d=a[f]}}function T(a,b){var c=q(a,!0);return B("frm_field_"+c+"_container",b)}function P(a,b){if(!B(a.containerId,a.formId)){if(b){jQuery("#"+a.containerId).hide();var c=na(a.containerId)}else c=pa(a);Y(c);va(a.containerId,a.formId)}}function Y(a){if(!(1>a.length)){for(var b,c=!0,d=0,e=a.length;d<e;d++)0<d&&b.name!=a[d].name&&!0===c&&u(jQuery(b)),c=!0,"radio"==a[d].type||"checkbox"==a[d].type?a[d].checked=!1:"SELECT"==a[d].tagName?(0===a[d].selectedIndex?
27
+ c=!1:a[d].selectedIndex=0,b=a[d].id.replace(/[^\w]/g,"_"),null!==document.getElementById(b+"_chosen")&&jQuery(a[d]).trigger("chosen:updated")):a[d].value="",b=a[d];!0===c&&u(jQuery(b))}}function B(a,b){var c=!1;-1<E(b).indexOf(a)&&(c=!0);return c}function va(a,b){var c=E(b);if(!(-1<c.indexOf(a))){c.push(a);var c=JSON.stringify(c),d=document.getElementById("frm_hide_fields_"+b);null!==d&&(d.value=c)}}function E(a){var b=[];a=document.getElementById("frm_hide_fields_"+a);return null===a?b:b=(b=a.value)?
28
+ JSON.parse(b):[]}function D(a,b){var c=E(b),d=c.indexOf(a);-1<d&&(c.splice(d,1),c=JSON.stringify(c),document.getElementById("frm_hide_fields_"+b).value=c)}function fa(a,b,c){if(!("undefined"===typeof __FRMLOOKUP||"undefined"===typeof __FRMLOOKUP[a]||1>__FRMLOOKUP[a].dependents.length||null===b||"undefined"===typeof b)){a=__FRMLOOKUP[a];b=H(b[0].name);for(var d=0,e=a.dependents.length;d<e;d++)Z(a.dependents[d],b,c)}}function Z(a,b,c){a=V(a);if(!(!1===a||1>a.parents.length))if("lookup"==a.fieldType){if(""!==
29
+ b.repeatRow){c=[];var d="frm_field_"+a.fieldId+"-",d=d+(b.repeatingSection+"-"+b.repeatRow+"_container");b=document.getElementById(d);null!==b&&c.push(b);b=c}else b=[],a.isRepeating?b=document.querySelectorAll(".frm_field_"+a.fieldId+"_container"):(c=document.getElementById("frm_field_"+a.fieldId+"_container"),null!==c&&b.push(c));c=0;for(d=b.length;c<d;c++){ka(a,b[c].id);var e=a,f=b[c];e.parentVals=W(e);if("select"==e.inputType)Va(e,f);else if("radio"==e.inputType||"checkbox"==e.inputType)if(!1===
30
+ e.parentVals){var h=f.getElementsByTagName("input");wa(e,f);Y(h)}else Wa(e,f)}}else if("value changed"===c)for(c="field_"+a.fieldKey,c=a.isRepeating?""!==b.repeatingSection?'[id="'+c+"-"+b.repeatRow+'"]':'[id^="'+c+'-"]':'[id="'+c+'"]',b=document.querySelectorAll(c),c=0,d=b.length;c<d;c++)e=a,f=H(b[c].name),e.repeatRow=""!==f.repeatRow?f.repeatRow:"",e=a,f=b[c],e.parentVals=W(e),ua(e,f)}function V(a){return"undefined"===typeof __FRMLOOKUP||"undefined"===typeof __FRMLOOKUP[a]?!1:__FRMLOOKUP[a]}function W(a){for(var b=
31
+ [],c=a.parents,d,e=0,f=c.length;e<f;e++){d=V(c[e]);d=qa(d,a);if(""===d||!1===d){b=!1;break}b[e]=d}return b}function sa(a){for(var b=!1,c=a.length,d=0;d<c;d++)if("hidden"==a[d].type||a[d].checked){b=a[d].value;break}return b}function Va(a,b){var c=b.getElementsByTagName("SELECT")[0];if(null!==c){var d=c.value;!1===a.parentVals?(c.options.length=1,""!==d&&(c.value="",U(c),u(jQuery(c),a.fieldKey))):(Xa(c),jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_replace_lookup_field_options",parent_fields:a.parents,
32
+ parent_vals:a.parentVals,field_id:a.fieldId,nonce:frm_js.nonce},success:function(b){var d=a.fieldKey,h=c.value;b=JSON.parse(b);for(var g=c.options.length;0<g;g--)c.remove(g);for(var k=b.length,g=0;g<k;g++)c.options[g+1]=new Option(b[g],b[g],!1,!1);c.value=h;""===c.value&&(b=c.getAttribute("data-frmval"),null!==b&&(c.value=b));U(c);c.value!=h&&u(jQuery(c),d)}}))}}function U(a){-1<a.className.indexOf("frm_chzn")&&jQuery().chosen&&jQuery(a).trigger("chosen:updated")}function Xa(a){a.value||(a.options.length=
33
+ 1,a.options[1]=new Option(frm_js.loading,"",!1,!1))}function Wa(a,b){var c=b.getElementsByClassName("frm_opt_container")[0],d=c.getElementsByTagName("input");Ya(b,c);var e="",e="radio"==a.inputType?sa(d):R(d);jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_replace_cb_radio_lookup_options",parent_fields:a.parents,parent_vals:a.parentVals,field_id:a.fieldId,row_index:a.repeatRow,current_value:e,nonce:frm_js.nonce},success:function(e){c.innerHTML=e;e=b.getElementsByClassName("frm-loading-img")[0];
34
+ null!==e&&void 0!==e&&e.parentNode.removeChild(e);c.style.display="block";1==d.length&&""===d[0].value?wa(a,b):!1!==B(b.id,a.formId)&&(e=N(a.fieldId),!1===e||1>e.conditions.length?(D(b.id,a.formId),jQuery("#"+b.id).show()):(e.containerId=b.id,e.repeatRow=a.repeatRow,la(e)));u(jQuery(d[0]),a.fieldKey)}})}function wa(a,b){B(b.id,a.formId)||(jQuery("#"+b.id).hide(),va(b.id,a.formId))}function ua(a,b){if(!T(b,a.formId))if(!1===a.parentVals){var c=b.getAttribute("data-frmval");null===c&&(c="");xa(a,b,
35
+ c)}else jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_get_lookup_text_value",parent_fields:a.parents,parent_vals:a.parentVals,field_id:a.fieldId,nonce:frm_js.nonce},success:function(c){b.value!=c&&xa(a.fieldKey,b,c)}})}function xa(a,b,c){b.value=c;u(jQuery(b),a)}function Ra(a,b){if(b){var c=jQuery("#"+a.containerId);ya(c)}jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_fields_ajax_get_data",entry_id:a.dataLogic.actualValue,current_field:a.fieldId,hide_id:a.containerId,
36
+ nonce:frm_js.nonce},success:function(d){if(b){var e=c.find(".frm_opt_container");e.html(d);var f=e.children("input"),h=f.val();za(e);""===d||""===h?P(a,!0):Aa(a,c,f,!0)}else e="field_"+a.fieldKey,""!==a.repeatRow&&(e+="-"+a.repeatRow),e=document.getElementById(e),e.value=d,B(a.containerId,a.formId)&&D(a.containerId,a.formId),u(jQuery(e))}})}function Sa(a,b){var c=jQuery("#"+a.containerId),d=c.find('select[name^="item_meta"], input[name^="item_meta"]'),e=Ba(d),d=d.data("frmval"),f=c.closest("form").find('input[name="id"]').val();
37
+ ya(c);jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_fields_ajax_data_options",trigger_field_id:a.dataLogic.fieldId,entry_id:a.dataLogic.actualValue,field_id:a.fieldId,default_value:d,container_id:a.containerId,editing_entry:f,prev_val:e,nonce:frm_js.nonce},success:function(b){var d=c.find(".frm_opt_container");d.html(b);var f=d.find('select, input[type="checkbox"], input[type="radio"]');za(d);""===b||1>f.length?P(a,!0):(b=Ba(f),Aa(a,c,f,e!==b))}})}function ya(a){var b=a.html();-1<
38
+ b.indexOf("frm-loading-img")||(a.html(b+'<span class="frm-loading-img"></span>'),a.find(".frm_opt_container").hide())}function Ya(a,b){if(!(-1<a.innerHTML.indexOf("frm-loading-img"))){b.style.display="none";var c=document.createElement("span");c.setAttribute("class","frm-loading-img");a.insertBefore(c,b.nextSibling)}}function za(a){a.parent().children(".frm-loading-img").remove();a.show()}function Ba(a){var b=[],c="";a.each(function(){c=this.value;"radio"===this.type||"checkbox"===this.type?!0===
39
+ this.checked&&b.push(c):""!==c&&b.push(c)});0===b.length&&(b="");return b}function Aa(a,b,c,d){B(a.containerId,a.formId)&&(D(a.containerId,a.formId),b.show());c.hasClass("frm_chzn")&&aa();!0===d&&u(c)}function L(a,b){if("undefined"!==typeof __FRMCALC){var c=__FRMCALC,d=c.fields[a];if("undefined"!==typeof d)for(var d=d.total,e=[],f=0,h=d.length;f<h;f++){var g;g=c.calc[d[f]];var k=b.attr("name"),m=!1,l=g.field_id,n=E(g.form_id);1>n.length||("0"===g.inSection&&"0"===g.inEmbedForm?m=J(l,n):(k=H(k),J(l,
40
+ n)?m=!0:Ca(l,k,n)?m=!0:"0"!==g.inSection&&"0"!==g.inEmbedForm?m=Ca(g.inSection,k,n):"0"!==g.inSection?m=J(g.inSection,n):"0"!==g.inEmbedForm&&(m=J(g.inEmbedForm,n))));g=m;!1===g&&X(c,d[f],e,b)}}}function J(a,b){return-1<b.indexOf("frm_field_"+a+"_container")}function Ca(a,b,c){var d=!1;b.repeatingSection&&(a="frm_field_"+a+"-"+b.repeatingSection,a+="-"+b.repeatRow+"_container",d=-1<c.indexOf(a));return d}function X(a,b,c,d){var e=a.calc[b],f=e.calc,h=jQuery(document.getElementById("field_"+b)),g=
41
+ {triggerField:d,inSection:!1,thisFieldCall:'input[id^="field_'+b+'-"]'};1>h.length&&"undefined"!==typeof d&&(g.inSection=!0,g.thisFieldId=Za(a.fieldsWithCalc,b),h=Da(g));if(!(1>h.length)){f=$a(e,f,a,c,g);if("text"!=e.calc_type){a=e.calc_dec;-1<f.indexOf(").toFixed(")&&(c=f.split(").toFixed("),Ea(c[1])&&(a=c[1],f=f.replace(").toFixed("+a,"")));f=parseFloat(eval(f));if("undefined"===typeof f||isNaN(f))f=0;Ea(a)&&(f=f.toFixed(a))}h.val()!=f&&(h.val(f),u(h,b))}}function $a(a,b,c,d,e){for(var f=0,h=a.fields.length;f<
42
+ h;f++){var g={triggerField:e.triggerField,thisFieldId:a.fields[f],inSection:e.inSection,valKey:e.inSection+""+a.fields[f],thisField:c.fields[a.fields[f]],thisFieldCall:"input"+c.fieldKeys[a.fields[f]]},k=c;"checkbox"==g.thisField.type||"radio"==g.thisField.type||"scale"==g.thisField.type?g.thisFieldCall=g.thisFieldCall+":checked,"+g.thisFieldCall+"[type=hidden]":"select"==g.thisField.type||"time"==g.thisField.type?g.thisFieldCall="select"+k.fieldKeys[g.thisFieldId]+" option:selected,"+g.thisFieldCall+
43
+ "[type=hidden]":"textarea"==g.thisField.type&&(g.thisFieldCall=g.thisFieldCall+",textarea"+k.fieldKeys[g.thisFieldId]);if("text"==a.calc_type)g.valKey="text"+g.valKey,d=ab(g,d),"undefined"===typeof d[g.valKey]&&(d[g.valKey]="");else{g.valKey="num"+g.valKey;d=bb(g,c,d);if("undefined"===typeof d[g.valKey]||isNaN(d[g.valKey]))d[g.valKey]=0;"date"==g.thisField.type&&0===d[g.valKey]&&(b="")}k="["+g.thisFieldId+"]";k=k.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1");b=b.replace(new RegExp(k,"g"),d[g.valKey])}return b}
44
+ function bb(a,b,c){if("undefined"!==typeof c[a.valKey]&&0!==c[a.valKey])return c;c[a.valKey]=0;var d=Fa(a);if(!1===d)return c;d.each(function(){var d=Ga(a.thisField,this);if("date"==a.thisField.type){var f;f=b.date;var h=0;if(d)if("undefined"===typeof jQuery.datepicker){h="-";-1<f.indexOf("/")&&(h="/");f=f.split(h);var d=d.split(h),g,k;g=h=k="";for(var m=0;m<f.length;m++)if("y"==f[m])g=((new Date).getFullYear()+15).toString().substr(2,2),g=d[m]>g?"19"+d[m]:"20"+d[m];else if("yy"==f[m])g=d[m];else if("m"==
45
+ f[m]||"mm"==f[m])h=d[m],2>h.length&&(h="0"+h);else if("d"==f[m]||"dd"==f[m])k=d[m],2>k.length&&(k="0"+k);h=Date.parse(g+"-"+h+"-"+k)}else h=jQuery.datepicker.parseDate(f,d);f=h;null!==f&&(c[a.valKey]=Math.ceil(f/864E5))}else{f=d;""!==f&&0!==f&&(f=f.trim(),f=parseFloat(f.replace(/,/g,"").match(/-?[\d\.]+$/)));if("undefined"===typeof f||isNaN(f)||""===f)f=0;c[a.valKey]+=f}});return c}function ab(a,b){if("undefined"!==typeof b[a.valKey]&&""!==b[a.valKey])return b;b[a.valKey]="";var c=Fa(a);if(!1===c)return b;
46
+ c.each(function(){var c=Ga(a.thisField,this),c=c.trim();b[a.valKey]+=c});return b}function Fa(a){var b;if(!1===a.inSection)b=jQuery(a.thisFieldCall);else if(b=Da(a),null===b||"undefined"===typeof b)b=jQuery(a.thisFieldCall);if(null===b||"undefined"===typeof b||1>b.length)b=!1;return b}function Da(a){if("undefined"===typeof a.triggerField)return null;var b=a.triggerField.closest(".frm_repeat_sec, .frm_repeat_inline, .frm_repeat_grid");return b.length?(a=a.thisFieldCall.replace("[id=","[id^="),b.find(a)):
47
+ null}function Ga(a,b){var c;c=!1;if("hidden"==b.type)""!==ba(b)&&(c=!0);else if("select"==a.type){var d=b.className;d&&-1<d.indexOf("frm_other_trigger")&&(c=!0)}else("checkbox"==a.type||"radio"==a.type)&&-1<b.id.indexOf("-other_")&&0>b.id.indexOf("-otext")&&(c=!0);c?(c=0,"select"==a.type?"hidden"==b.type?(d=!1,2<b.name.split("[").length&&(d=!0),d||(c=ba(b))):c=jQuery(b).closest(".frm_other_container").find(".frm_other_input").val():"checkbox"!=a.type&&"radio"!=a.type||"hidden"==b.type||(c=ba(b))):
48
+ c="checkbox"!==b.type&&"radio"!==b.type||!b.checked?jQuery(b).val():b.value;"undefined"===typeof c&&(c="");return c}function ba(a){var b="";a=document.getElementById(a.id+"-otext");null!==a&&""!==a.value&&(b=a.value);return b}function Ha(a){var b=!1;a=jQuery(a).find(".frm_saving_draft");a.length&&(b=a.val());return b}function Ia(a){var b=!1,c=jQuery(a).find(".frm_next_page");if(c.length&&c.val()){var d=jQuery(a).find('input[name="form_id"]').val();a=jQuery(a).find('input[name="frm_page_order_'+d+
49
+ '"]');a=a.length?a.val():0;if(!a||c.val()<a)b=!0}return b}function ga(a,b){var c=a.getAttribute("data-frmfile");if("hidden"==a.type&&null===c)return b;var d="",e="";if("checkbox"==a.type||"radio"==a.type)c=jQuery('input[name="'+a.name+'"]').closest(".frm_required_field").find("input:checked"),jQuery(c).each(function(){d=this.value});else if("file"==a.type||c)"undefined"===typeof c&&(c=q(a,!0),c=c.replace("file","")),"undefined"===typeof b[c]&&(d=cb(c)),e=c;else{e=a.className;if(-1!==e.indexOf("frm_pos_none"))return b;
50
+ d=jQuery(a).val();if("string"!==typeof d)for(var c=d,d="",f=0;f<c.length;f++)""!==c[f]&&(d=c[f]);e=-1===e.indexOf("frm_other_input")?q(a,!0):q(a,!1)}""===d&&(""===e&&(e=q(a,!0)),e in b||(b[e]=F(a,"data-reqmsg")));return b}function cb(a){var b="";jQuery('input[name="file'+a+'"], input[name="file'+a+'[]"], input[name^="item_meta['+a+']"]').each(function(){""===b&&(b=this.value)});return b}function ha(a,b,c){var d=a.value,e=q(a,!0);if(e in b)return b;var f=0===e.indexOf("conf_");if(""!==d||f){var h=
51
+ /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i,g=F(a,"data-invmsg");""!==d&&!1===h.test(d)?(b[e]=g,f&&(b[e.replace("conf_","")]="")):f&&(a=a.name.replace("conf_",""),c.filter('[name="'+a+'"]').val()!==d&&(b[e]="",b[e.replace("conf_","")]=""))}return b}function ia(a,b){var c=a.value;""!==c&&!1!==isNaN(c/1)&&(c=q(a,!0),c in b||(b[c]=F(a,"data-invmsg")));return b}function ja(a,b){var c=a.value,
52
+ d=F(a,"pattern");if(""!==d&&""!==c){var e=q(a,!0);e in b||(d=new RegExp("^"+d+"$","i"),!1===d.test(c)&&(b[e]=F(a,"data-invmsg")))}return b}function F(a,b){var c=a.getAttribute(b);null===c&&(c="");return c}function db(a,b){"undefined"==typeof b&&jQuery(a).find('input[name="frm_action"]').val();jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(a).serialize()+"&action=frm_entries_"+b+"&nonce="+frm_js.nonce,success:function(b){var d={content:"",errors:{},pass:!1};null===b&&(b=d);b=b.replace(/^\s+|\s+$/g,
53
+ "");b=0===b.indexOf("{")?jQuery.parseJSON(b):d;if("undefined"!=typeof b.redirect)window.location=b.redirect;else if(""!==b.content){jQuery(a).find(".frm_ajax_loading").removeClass("frm_loading_now");var e=jQuery(a).find('input[name="form_id"]').val();jQuery(a).closest("#frm_form_"+e+"_container").replaceWith(b.content);frmFrontForm.scrollMsg(e);"function"==typeof frmThemeOverride_frmAfterSubmit&&(e=jQuery('input[name="frm_page_order_'+e+'"]').val(),d=jQuery(b.content).find('input[name="form_id"]').val(),
54
+ frmThemeOverride_frmAfterSubmit(d,e,b.content,a));e=jQuery(a).find('input[name="id"]');e.length&&jQuery(document.getElementById("frm_edit_"+e.val())).find("a").addClass("frm_ajax_edited").click();jQuery(b.content).find(".frm_message").length&&ca("pageLoad");da()}else if(Object.keys(b.errors).length){jQuery(a).find('input[type="submit"], input[type="button"]').removeAttr("disabled");jQuery(a).find(".frm_ajax_loading").removeClass("frm_loading_now");d=!0;Ja();var f=!1,h;for(e in b.errors)if(h=jQuery(a).find("#frm_field_"+
55
+ e+"_container"),h.length){if(!h.is(":visible")){var g=h.closest(".frm_toggle_container");g.length&&(g=g.prev(),g.hasClass("frm_trigger")||(g=g.prev(".frm_trigger")),g.click())}h.is(":visible")&&(M(h,e,b.errors),d=!1,h=jQuery(a).find("#frm_field_"+e+"_container .frm-g-recaptcha, #frm_field_"+e+"_container .g-recaptcha"),h.length&&(f=!0,h=h.data("rid"),jQuery().grecaptcha&&(h?grecaptcha.reset(h):grecaptcha.reset())))}Ka(a);!0!==f&&La(a,!1);d?a.submit():jQuery(a).prepend(b.error_message)}else eb(a),
56
+ La(a,!0),a.submit()},error:function(){jQuery(a).find('input[type="submit"], input[type="button"]').removeAttr("disabled");a.submit()}})}function M(a,b,c){a.length&&a.is(":visible")&&(a.addClass("frm_blank_field"),"function"==typeof frmThemeOverride_frmPlaceError?frmThemeOverride_frmPlaceError(b,c):a.append('<div class="frm_error">'+c[b]+"</div>"))}function Ja(){jQuery(".form-field").removeClass("frm_blank_field");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}
57
+ function Ka(a){var b=jQuery(a).find(".frm_blank_field:first");b.length&&frmFrontForm.scrollMsg(b,a,!0)}function eb(a){var b=document.getElementById("frm_loading");null!==b&&(a=jQuery(a).find("input[type=file]").val(),"undefined"!=typeof a&&""!==a&&setTimeout(function(){jQuery(b).fadeIn("slow")},2E3))}function La(a,b){var c=jQuery(a).find(".frm-g-recaptcha, .g-recaptcha");c.length&&(!b||1>jQuery(a).find(".frm_next_page").length||1>jQuery(a).find(".frm_next_page").val())&&c.closest(".frm_form_field").replaceWith('<input type="hidden" name="recaptcha_checked" value="'+
58
+ frm_js.nonce+'">')}function fb(){Ma(jQuery(this),"clear")}function gb(){Ma(jQuery(this),"replace")}function Ma(a,b){var c=a.data("frmval").replace(/(\n|\r\n)/g,"\r");if(""===c||"undefined"==typeof c)return!1;var d=a.val().replace(/(\n|\r\n)/g,"\r");"replace"==b?""===d&&a.addClass("frm_default").val(c):d==c&&a.removeClass("frm_default").val("")}function hb(){var a=jQuery(this),b=a.data("eid"),c=a.data("fid");a.append('<span class="spinner" style="display:inline"></span>');jQuery.ajax({type:"POST",
59
+ url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:b,form_id:c,nonce:frm_js.nonce},success:function(b){a.replaceWith(b)}});return!1}function ib(a,b){google.load("visualization","1.0",{packages:[b],callback:function(){var b=new google.visualization.DataTable,d=!1;-1!==jQuery.inArray("id",a.options.fields)&&(d=!0,b.addColumn("number",frm_js.id));for(var e=a.fields.length,f,h=0,g=e;h<g;h++){var k=a.fields[h];f=Na(k);b.addColumn(f,k.name)}h=!1;a.options.edit_link&&(h=!0,b.addColumn("string",
60
+ a.options.edit_link));g=!1;a.options.delete_link&&(g=!0,b.addColumn("string",a.options.delete_link));if(null!==a.entries){var m=a.entries.length;b.addRows(m);for(var l=0,n=0;n<m;n++){var k=0,p=a.entries[n];d&&(b.setCell(l,k,p.id),k++);for(var q=0,r=e;q<r;q++){var t=a.fields[q];f=Na(t);t=p.metas[t.id];"number"!=f||null!==t&&""!==t?"boolean"==f&&(t=null===t||"false"==t||!1===t?!1:!0):t=0;b.setCell(l,k,t);k++}h&&("undefined"!==typeof p.editLink?b.setCell(l,k,'<a href="'+p.editLink+'">'+a.options.edit_link+
61
+ "</a>"):b.setCell(l,k,""),k++);g&&("undefined"!==typeof p.deleteLink?b.setCell(l,k,'<a href="'+p.deleteLink+'" class="frm_delete_link" data-frmconfirm="'+a.options.confirm+'">'+a.options.delete_link+"</a>"):b.setCell(l,k,""));l++}}else for(b.addRows(1),h=k=0,g=e;h<g;h++)0<k?b.setCell(0,k,""):b.setCell(0,k,a.options.no_entries),k++;(new google.visualization.Table(document.getElementById("frm_google_table_"+a.options.form_id))).draw(b,a.graphOpts)}})}function jb(a){google.load("visualization","1.0",
62
+ {packages:[a["package"]],callback:function(){var b;new google.visualization.DataTable;b=google.visualization.arrayToDataTable(a.data);var c=document.getElementById("chart_"+a.graph_id);if(null!==c){var d=a.type.charAt(0).toUpperCase()+a.type.slice(1);"Histogram"!==d&&"Table"!==d&&(d+="Chart");(new google.visualization[d](c)).draw(b,a.options)}}})}function Na(a){var b="string";if("number"==a.type)b="number";else if("checkbox"==a.type||"select"==a.type){var c=a.options.length;"select"==a.type&&""===
63
+ a.options[0]&&(c="post_status"==a.field_options.post_field?3:c-1);1==c&&(b="boolean")}return b}function kb(){var a=jQuery(this).data("key"),b=jQuery(this).data("parent"),c="frm_section_"+b+"-"+a,d=jQuery(document.getElementById(c)),e=d.find("input, select, textarea"),f=jQuery(this).closest("form").find('input[name="form_id"]').val();d.fadeOut("slow",function(){d.remove();e.each(function(){var c=q(this,!1);"file"!=this.type&&L(c,jQuery(this));D("frm_field_"+c+"-"+b+"-"+a+"_container",f)});"function"==
64
+ typeof frmThemeOverride_frmRemoveRow&&frmThemeOverride_frmRemoveRow(c,d)});return!1}function lb(){if(!0===K)return!1;K=!0;var a=jQuery(this).data("parent"),b=0;if(0<jQuery(".frm_repeat_"+a).length)var c=jQuery(".frm_repeat_"+a+":last").attr("id").replace("frm_section_"+a+"-",""),b=-1<c.indexOf("i")?1:1+parseInt(c);jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"json",data:{action:"frm_add_form_row",field_id:a,i:b,nonce:frm_js.nonce},success:function(c){var e=c.html,f=jQuery(e).hide().fadeIn("slow");
65
+ jQuery(".frm_repeat_"+a+":last").after(f);var h=["other"],g,k,m={repeatingSection:a.toString(),repeatRow:b.toString()};jQuery(e).find("input, select, textarea").each(function(){if("file"!=this.type){if(""===this.name)return!0;g=this.name.replace("item_meta[","").split("]")[2].replace("[","");-1==jQuery.inArray(g,h)&&!1!==this.id&&""!==this.id&&(k=jQuery("#"+this.id),h.push(g),I(g,m),Z(g,m,"value changed"),ea(g,k),fa(g,k,"value changed"),L(g,k))}});v(m.repeatRow);Oa();aa();"function"==typeof frmThemeOverride_frmAddRow&&
66
+ frmThemeOverride_frmAddRow(a,c);K=!1},error:function(){K=!1}});return!1}function mb(){var a=jQuery(this),b=a.data("entryid"),c=a.data("prefix"),d=a.data("pageid"),e=a.data("formid"),f=a.data("cancel"),h=a.data("fields"),g=a.data("excludefields"),k=jQuery(document.getElementById(c+b)),m=k.html();k.html('<span class="frm-loading-img" id="'+c+b+'"></span><div class="frm_orig_content" style="display:none">'+m+"</div>");jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"html",data:{action:"frm_entries_edit_entry_ajax",
67
+ post_id:d,entry_id:b,id:e,nonce:frm_js.nonce,fields:h,exclude_fields:g},success:function(b){k.children(".frm-loading-img").replaceWith(b);a.removeClass("frm_inplace_edit").addClass("frm_cancel_edit");a.html(f);ca("editInPlace");jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',G);da()}});return!1}function nb(){var a=jQuery(this),b=a.data("entryid"),c=a.data("prefix"),d=a.data("edit");a.hasClass("frm_ajax_edited")||
68
  (b=jQuery(document.getElementById(c+b)),b.children(".frm_forms").replaceWith(""),b.children(".frm_orig_content").fadeIn("slow").removeClass("frm_orig_content"));a.removeClass("frm_cancel_edit").addClass("frm_inplace_edit");a.html(d);return!1}function ob(){var a=jQuery(this),b=a.data("deleteconfirm");if(confirm(b)){var c=a.data("entryid"),d=a.data("prefix");a.replaceWith('<span class="frm-loading-img" id="frm_delete_'+c+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",
69
  entry:c,nonce:frm_js.nonce},success:function(a){"success"==a.replace(/^\s+|\s+$/g,"")?(jQuery(document.getElementById(d+c)).fadeOut("slow"),jQuery(document.getElementById("frm_delete_"+c)).fadeOut("slow")):jQuery(document.getElementById("frm_delete_"+c)).replaceWith(a)}})}return!1}function da(){"undefined"!==typeof __frmHideFields&&frmFrontForm.hidePreviouslyHiddenFields();jQuery(document).on("focusin",".frm_date",r);if("undefined"!==typeof __frmUniqueTimes)for(var a=__frmUniqueTimes,b=0;b<a.length;b++)jQuery(document.getElementById(a[b].dateID)).change(p);
70
  if("undefined"!==typeof __frmMasks)for(a=__frmMasks,b=0;b<a.length;b++)jQuery(a[b].trigger).attr("data-frmmask",a[b].mask);Oa();aa();"undefined"!==typeof __frmDepDynamicFields&&frmFrontForm.checkDependentDynamicFields(__frmDepDynamicFields);"undefined"!==typeof __frmDepLookupFields&&frmFrontForm.checkDependentLookupFields(__frmDepLookupFields);if("undefined"!==typeof __FRMCALC){(a=__FRMCALC.triggers)&&jQuery(a.join()).trigger({type:"change",selfTriggered:!0});var a=__FRMCALC.calc,b=[],c;for(c in a)if(1>
76
  ".frm_toggle_default",fb);jQuery(document).on("blur",".frm_toggle_default",gb);jQuery(".frm_toggle_default").blur();jQuery(document.getElementById("frm_resend_email")).click(hb);jQuery(document).on("click",".frm_remove_link",w);jQuery(document).on("focusin","input[data-frmmask]",function(){jQuery(this).mask(jQuery(this).data("frmmask").toString())});jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',
77
  G);jQuery(document).on("click",'.frm-show-form input[type="submit"], .frm-show-form input[name="frm_prev_page"], .frm-show-form .frm_save_draft',l);jQuery(document).on("change",'.frm_other_container input[type="checkbox"], .frm_other_container input[type="radio"], .frm_other_container select',A);jQuery(document).on("click",".frm_remove_form_row",kb);jQuery(document).on("click",".frm_add_form_row",lb);jQuery(document).on("click","a[data-frmconfirm]",pb);jQuery("a[data-frmtoggle]").click(qb);jQuery(".frm_edit_link_container").on("click",
78
  "a.frm_inplace_edit",mb);jQuery(".frm_edit_link_container").on("click","a.frm_cancel_edit",nb);jQuery(document).on("click",".frm_ajax_delete",ob);jQuery(".frm_month_heading, .frm_year_heading").click(function(){var a=jQuery(this).children(".ui-icon-triangle-1-e, .ui-icon-triangle-1-s");a.hasClass("ui-icon-triangle-1-e")?(a.addClass("ui-icon-triangle-1-s").removeClass("ui-icon-triangle-1-e"),jQuery(this).next(".frm_toggle_container").fadeIn("slow")):(a.addClass("ui-icon-triangle-1-e").removeClass("ui-icon-triangle-1-s"),
79
+ jQuery(this).next(".frm_toggle_container").hide())});ca("pageLoad");da();rb();sb();tb();ub()},submitForm:function(a){frmFrontForm.submitFormManual(a,this)},submitFormManual:function(a,b){var c=b.className.trim().split(/\s+/gi);if((!c||-1<c.indexOf("frm_pro_form"))&&!jQuery("body").hasClass("wp-admin")){a.preventDefault();var d=frmFrontForm.validateFormSubmit(b);0===Object.keys(d).length&&(jQuery(b).find(".frm_ajax_loading").addClass("frm_loading_now"),jQuery(b).find('input[type="submit"], input[type="button"]').attr("disabled",
80
+ "disabled"),-1<c.indexOf("frm_ajax_submit")?1>jQuery(b).find('input[type="file"]').length?(C=jQuery(b).find('input[name="frm_action"]').val(),frmFrontForm.checkFormErrors(b,C)):b.submit():b.submit())}},validateFormSubmit:function(a){"undefined"!=typeof tinyMCE&&jQuery(this).find(".wp-editor-wrap").length&&tinyMCE.triggerSave();x=[];var b=jQuery(a).hasClass("frm_js_validate");b&&(Ha(a)||Ia(a))&&(b=!1);b&&(frmFrontForm.getAjaxFormErrors(a),Object.keys(x).length&&frmFrontForm.addAjaxFormErrors(a));return x},
81
+ getAjaxFormErrors:function(a){var b=[],c=jQuery(a).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");if(c.length)for(var d=0,e=c.length;d<e;d++)b=ga(c[d],b);c=jQuery(a).find("input[type=email]").filter(":visible");d=jQuery(a).find("input,select,textarea");if(d.length)for(var e=0,f=d.length;e<f;e++){var h=d[e];""!==h.value&&"hidden"!=h.type&&("number"==h.type?b=ia(h,b):"email"==h.type?b=ha(h,b,c):null!==
82
+ h.pattern&&(b=ja(h,b)))}c=jQuery(a).find(".frm-g-recaptcha");c.length&&(d=c.data("rid"),0===grecaptcha.getResponse(d).length&&(c=c.closest(".frm_form_field").attr("id").replace("frm_field_","").replace("_container",""),b[c]=""));x=b;if("function"==typeof frmThemeOverride_jsErrors&&(C=jQuery(a).find('input[name="frm_action"]').val(),a=frmThemeOverride_jsErrors(C,a),Object.keys(a).length))for(var g in a)x[g]=a[g];return x},addAjaxFormErrors:function(a){Ja();for(var b in x){var c=jQuery(a).find("#frm_field_"+
83
+ b+"_container");c.length?M(c,b,x):delete x[b]}Ka(a)},checkFormErrors:function(a,b){db(a,b)},scrollToID:function(a){a=jQuery(document.getElementById(a));frmFrontForm.scrollMsg(a,!1)},scrollMsg:function(a,b,c){if("undefined"==typeof b){if(a=jQuery(document.getElementById("frm_form_"+a+"_container")),1>a.length)return}else a="string"==typeof a?jQuery(b).find("#frm_field_"+a+"_container"):a;if(a=a.offset().top){a-=frm_js.offset;b=jQuery("html").css("margin-top");var d=jQuery("body").css("margin-top");
84
+ if(b||d)a=a-parseInt(b)-parseInt(d);if(a&&window.innerHeight&&(b=document.documentElement.scrollTop||document.body.scrollTop,a>b+window.innerHeight||a<b))return"undefined"===typeof c?jQuery(window).scrollTop(a):jQuery("html,body").animate({scrollTop:a},500),!1}},savingDraft:function(a){return Ha(a)},goingToPreviousPage:function(a){return Ia(a)},hideOrShowFields:function(a,b){if("pageLoad"===b){var c=document.querySelectorAll('[id^="frm_hide_fields_"]');Y(c)}for(var c={repeatingSection:"",repeatRow:""},
85
+ d=0,e=a.length;d<e;d++)I(a[d],c)},hidePreviouslyHiddenFields:function(){var a;a=[];for(var b=document.querySelectorAll('*[id^="frm_hide_fields_"]'),c=b.length,d,e=0;e<c;e++)d=b[e].id.replace("frm_hide_fields_",""),a=a.concat(E(d));b=0;for(c=a.length;b<c;b++)d=document.getElementById(a[b]),null!==d&&(d.style.display="none")},checkDependentDynamicFields:function(a){for(var b={repeatingSection:"",repeatRow:""},c=0,d=a.length;c<d;c++)I(a[c],b)},checkDependentLookupFields:function(a){for(var b,c={repeatingSection:"",
86
+ repeatRow:""},d=0,e=a.length;d<e;d++)b=a[d],Z(b,c,"value changed")},loadGoogle:function(){if("undefined"!==typeof google&&google&&google.load)for(var a=__FRMTABLES,b=Object.keys(a),c=0;c<b.length;c++)if("graphs"===b[c])for(var d=a[b[c]],e=0,f=d.length;e<f;e++)jb(d[e]);else for(d=a[b[c]],e=b[c],f=0;f<d.length;f++)ib(d[f],e);else setTimeout(frmFrontForm.loadGoogle,30)},removeUsedTimes:function(a,b){var c=jQuery(a).parents("form:first").find('input[name="id"]');jQuery.ajax({type:"POST",url:frm_js.ajax_url,
87
+ dataType:"json",data:{action:"frm_fields_ajax_time_options",time_field:b,date_field:a.id,entry_id:c?c.val():"",date:jQuery(a).val(),nonce:frm_js.nonce},success:function(a){var c=jQuery(document.getElementById(b));c.find("option").removeAttr("disabled");if(a&&""!==a)for(var f in a)c.find('option[value="'+f+'"]').attr("disabled","disabled")}})},escapeHtml:function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(a){jQuery(a).css("visibility",
88
+ "hidden")},visible:function(a){jQuery(a).css("visibility","visible")}}}var frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(l){frmFrontForm.init()});function frmRecaptcha(){for(var l=jQuery(".frm-g-recaptcha"),n=0,p=l.length;n<p;n++){var r=grecaptcha.render(l[n].id,{sitekey:l[n].getAttribute("data-sitekey"),size:l[n].getAttribute("data-size"),theme:l[n].getAttribute("data-theme")});l[n].setAttribute("data-rid",r)}}
89
  function frmUpdateField(l,n,p,r,v){jQuery(document.getElementById("frm_update_field_"+l+"_"+n)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:l,field_id:n,value:p,nonce:frm_js.nonce},success:function(){""===r.replace(/^\s+|\s+$/g,"")?jQuery(document.getElementById("frm_update_field_"+l+"_"+n+"_"+v)).fadeOut("slow"):jQuery(document.getElementById("frm_update_field_"+l+"_"+n+"_"+v)).replaceWith(r)}})}
90
  function frmEditEntry(l,n,p,r,v,z){console.warn("DEPRECATED: function frmEditEntry in v2.0.13 use frmFrontForm.editEntry");var y=jQuery(document.getElementById("frm_edit_"+l)),w=y.html(),A=jQuery(document.getElementById(n+l)),G=A.html();A.html('<span class="frm-loading-img" id="'+n+l+'"></span><div class="frm_orig_content" style="display:none">'+G+"</div>");jQuery.ajax({type:"POST",url:frm_js.ajax_url,dataType:"html",data:{action:"frm_entries_edit_entry_ajax",post_id:p,entry_id:l,id:r,nonce:frm_js.nonce},
91
  success:function(q){A.children(".frm-loading-img").replaceWith(q);y.replaceWith('<span id="frm_edit_'+l+'"><a onclick="frmCancelEdit('+l+",'"+n+"','"+frmFrontForm.escapeHtml(w)+"',"+p+","+r+",'"+z+'\')" class="'+z+'">'+v+"</a></span>")}})}
languages/formidable-az_AZ.mo CHANGED
Binary file
languages/formidable-az_AZ.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Formidable v2.02.06\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2016-09-01 03:07+0000\n"
6
- "PO-Revision-Date: Fri Sep 30 2016 12:33:47 GMT-0700 (PDT)\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: Azerbaijani (Azerbaijan)\n"
@@ -35,12 +35,12 @@ msgstr ""
35
  msgid "There are no plugins on your site that require a license"
36
  msgstr ""
37
 
38
- #: ../classes/controllers/FrmAppController.php:62 ../classes/views/frm-forms/edit.
39
  #: php:2
40
  msgid "Build"
41
  msgstr ""
42
 
43
- #: ../classes/controllers/FrmAppController.php:76 ..
44
  #: classes/controllers/FrmEntriesController.php:8 ..
45
  #: classes/controllers/FrmEntriesController.php:8 ..
46
  #: classes/controllers/FrmEntriesController.php:120 ..
@@ -52,7 +52,7 @@ msgstr ""
52
  msgid "Entries"
53
  msgstr ""
54
 
55
- #: ../classes/controllers/FrmAppController.php:113
56
  #, php-format
57
  msgid ""
58
  "This site has been previously authorized to run Formidable Forms."
@@ -79,7 +79,7 @@ msgstr ""
79
  #: ../classes/controllers/FrmEntriesController.php:72 ..
80
  #: classes/controllers/FrmFormsController.php:705 ../classes/views/frm-
81
  #: entries/form.php:44 ../classes/views/frm-entries/sidebar-shared.php:29 ..
82
- #: pro/classes/helpers/FrmProFieldsHelper.php:2529 ..
83
  #: pro/classes/views/xml/map_csv_fields.php:57 ..
84
  #: pro/classes/views/xml/map_csv_fields.php:57
85
  msgid "Entry Key"
@@ -88,7 +88,7 @@ msgstr ""
88
  #: ../classes/controllers/FrmEntriesController.php:112 ..
89
  #: pro/classes/helpers/FrmProEntriesListHelper.php:57 ..
90
  #: pro/classes/helpers/FrmProEntriesListHelper.php:68 ..
91
- #: pro/classes/helpers/FrmProFieldsHelper.php:2532 ..
92
  #: pro/classes/views/displays/_calendar_options.php:4 ..
93
  #: pro/classes/views/displays/_calendar_options.php:16 ..
94
  #: pro/classes/views/displays/order_row.php:4 ..
@@ -97,7 +97,7 @@ msgid "Entry creation date"
97
  msgstr ""
98
 
99
  #: ../classes/controllers/FrmEntriesController.php:113 ..
100
- #: pro/classes/helpers/FrmProFieldsHelper.php:2533 ..
101
  #: pro/classes/views/displays/_calendar_options.php:5 ..
102
  #: pro/classes/views/displays/_calendar_options.php:17 ..
103
  #: pro/classes/views/displays/order_row.php:5
@@ -275,7 +275,7 @@ msgstr ""
275
  #: entries/sidebar-shared.php:23 ../pro/classes/controllers/FrmProFormsController.
276
  #: php:545 ../pro/classes/helpers/FrmProEntriesListHelper.php:58 ..
277
  #: pro/classes/helpers/FrmProEntriesListHelper.php:69 ..
278
- #: pro/classes/helpers/FrmProFieldsHelper.php:2528 ..
279
  #: pro/classes/views/displays/order_row.php:3 ..
280
  #: pro/classes/views/displays/where_row.php:6 ..
281
  #: pro/classes/views/xml/map_csv_fields.php:56 ..
@@ -284,7 +284,7 @@ msgid "Entry ID"
284
  msgstr ""
285
 
286
  #: ../classes/controllers/FrmFormsController.php:707 ..
287
- #: pro/classes/helpers/FrmProFieldsHelper.php:2531
288
  msgid "User IP"
289
  msgstr ""
290
 
@@ -297,7 +297,7 @@ msgid "Entry updated"
297
  msgstr ""
298
 
299
  #: ../classes/controllers/FrmFormsController.php:712 ..
300
- #: pro/classes/helpers/FrmProFieldsHelper.php:2589
301
  msgid "Site Name"
302
  msgstr ""
303
 
@@ -627,22 +627,22 @@ msgid "(no label)"
627
  msgstr ""
628
 
629
  #: ../classes/helpers/FrmAppHelper.php:1754 ../classes/helpers/FrmFieldsHelper.
630
- #: php:1106
631
  msgid "Clear default value when typing"
632
  msgstr ""
633
 
634
  #: ../classes/helpers/FrmAppHelper.php:1755 ../classes/helpers/FrmFieldsHelper.
635
- #: php:1106
636
  msgid "Do not clear default value when typing"
637
  msgstr ""
638
 
639
  #: ../classes/helpers/FrmAppHelper.php:1756 ../classes/helpers/FrmFieldsHelper.
640
- #: php:1115
641
  msgid "Default value will pass form validation"
642
  msgstr ""
643
 
644
  #: ../classes/helpers/FrmAppHelper.php:1757 ../classes/helpers/FrmFieldsHelper.
645
- #: php:1115
646
  msgid "Default value will NOT pass form validation"
647
  msgstr ""
648
 
@@ -665,7 +665,7 @@ msgid ""
665
  msgstr ""
666
 
667
  #: ../classes/helpers/FrmAppHelper.php:1763 ../classes/helpers/FrmFieldsHelper.
668
- #: php:172 ../pro/classes/helpers/FrmProFieldsHelper.php:689
669
  msgid "The entered values do not match"
670
  msgstr ""
671
 
@@ -884,32 +884,32 @@ msgstr ""
884
  msgid "Vietnamese"
885
  msgstr ""
886
 
887
- #: ../classes/helpers/FrmCSVExportHelper.php:93
888
  msgid "(label)"
889
  msgstr ""
890
 
891
- #: ../classes/helpers/FrmCSVExportHelper.php:104
892
  msgid "Comment User"
893
  msgstr ""
894
 
895
- #: ../classes/helpers/FrmCSVExportHelper.php:105
896
  msgid "Comment Date"
897
  msgstr ""
898
 
899
- #: ../classes/helpers/FrmCSVExportHelper.php:110 ..
900
  #: pro/classes/views/xml/map_csv_fields.php:50
901
  msgid "Timestamp"
902
  msgstr ""
903
 
904
- #: ../classes/helpers/FrmCSVExportHelper.php:112
905
  msgid "Created By"
906
  msgstr ""
907
 
908
- #: ../classes/helpers/FrmCSVExportHelper.php:113
909
  msgid "Updated By"
910
  msgstr ""
911
 
912
- #: ../classes/helpers/FrmCSVExportHelper.php:115 ..
913
  #: pro/classes/views/displays/where_row.php:15
914
  msgid "IP"
915
  msgstr ""
@@ -946,157 +946,157 @@ msgstr ""
946
  msgid "%s must be unique"
947
  msgstr ""
948
 
949
- #: ../classes/helpers/FrmFieldsHelper.php:514
950
  #, php-format
951
  msgid "Please add options from the WordPress \"%1$s\" page"
952
  msgstr ""
953
 
954
- #: ../classes/helpers/FrmFieldsHelper.php:1194
955
  msgid "Congo"
956
  msgstr ""
957
 
958
- #: ../classes/helpers/FrmFieldsHelper.php:1195
959
  msgid "C&ocirc;te d'Ivoire"
960
  msgstr ""
961
 
962
- #: ../classes/helpers/FrmFieldsHelper.php:1198
963
  msgid "East Timor"
964
  msgstr ""
965
 
966
- #: ../classes/helpers/FrmFieldsHelper.php:1232
967
  msgid "Russia"
968
  msgstr ""
969
 
970
- #: ../classes/helpers/FrmFieldsHelper.php:1235
971
  msgid "Sao Tome and Principe"
972
  msgstr ""
973
 
974
- #: ../classes/helpers/FrmFieldsHelper.php:1236
975
  msgid "Serbia and Montenegro"
976
  msgstr ""
977
 
978
- #: ../classes/helpers/FrmFieldsHelper.php:1249
979
  msgid "Vatican City"
980
  msgstr ""
981
 
982
- #: ../classes/helpers/FrmFieldsHelper.php:1250
983
  msgid "Virgin Islands, British"
984
  msgstr ""
985
 
986
- #: ../classes/helpers/FrmFieldsHelper.php:1251
987
  msgid "Virgin Islands, U.S."
988
  msgstr ""
989
 
990
- #: ../classes/helpers/FrmFieldsHelper.php:1257
991
  msgid "Countries"
992
  msgstr ""
993
 
994
- #: ../classes/helpers/FrmFieldsHelper.php:1262
995
  msgid "U.S. State Abbreviations"
996
  msgstr ""
997
 
998
- #: ../classes/helpers/FrmFieldsHelper.php:1266
999
  msgid "U.S. States"
1000
  msgstr ""
1001
 
1002
- #: ../classes/helpers/FrmFieldsHelper.php:1269
1003
  msgid "Age"
1004
  msgstr ""
1005
 
1006
- #: ../classes/helpers/FrmFieldsHelper.php:1270
1007
  msgid "Under 18"
1008
  msgstr ""
1009
 
1010
- #: ../classes/helpers/FrmFieldsHelper.php:1270
1011
  msgid "18-24"
1012
  msgstr ""
1013
 
1014
- #: ../classes/helpers/FrmFieldsHelper.php:1270
1015
  msgid "25-34"
1016
  msgstr ""
1017
 
1018
- #: ../classes/helpers/FrmFieldsHelper.php:1271
1019
  msgid "35-44"
1020
  msgstr ""
1021
 
1022
- #: ../classes/helpers/FrmFieldsHelper.php:1271
1023
  msgid "45-54"
1024
  msgstr ""
1025
 
1026
- #: ../classes/helpers/FrmFieldsHelper.php:1271
1027
  msgid "55-64"
1028
  msgstr ""
1029
 
1030
- #: ../classes/helpers/FrmFieldsHelper.php:1272
1031
  msgid "65 or Above"
1032
  msgstr ""
1033
 
1034
- #: ../classes/helpers/FrmFieldsHelper.php:1272
1035
  msgid "Prefer Not to Answer"
1036
  msgstr ""
1037
 
1038
- #: ../classes/helpers/FrmFieldsHelper.php:1275
1039
  msgid "Satisfaction"
1040
  msgstr ""
1041
 
1042
- #: ../classes/helpers/FrmFieldsHelper.php:1276
1043
  msgid "Very Satisfied"
1044
  msgstr ""
1045
 
1046
- #: ../classes/helpers/FrmFieldsHelper.php:1276
1047
  msgid "Satisfied"
1048
  msgstr ""
1049
 
1050
- #: ../classes/helpers/FrmFieldsHelper.php:1276 ../classes/helpers/FrmFieldsHelper.
1051
- #: php:1281 ../classes/helpers/FrmFieldsHelper.php:1286
1052
  msgid "Neutral"
1053
  msgstr ""
1054
 
1055
- #: ../classes/helpers/FrmFieldsHelper.php:1277
1056
  msgid "Unsatisfied"
1057
  msgstr ""
1058
 
1059
- #: ../classes/helpers/FrmFieldsHelper.php:1277
1060
  msgid "Very Unsatisfied"
1061
  msgstr ""
1062
 
1063
- #: ../classes/helpers/FrmFieldsHelper.php:1280
1064
  msgid "Importance"
1065
  msgstr ""
1066
 
1067
- #: ../classes/helpers/FrmFieldsHelper.php:1281
1068
  msgid "Very Important"
1069
  msgstr ""
1070
 
1071
- #: ../classes/helpers/FrmFieldsHelper.php:1281
1072
  msgid "Important"
1073
  msgstr ""
1074
 
1075
- #: ../classes/helpers/FrmFieldsHelper.php:1282
1076
  msgid "Somewhat Important"
1077
  msgstr ""
1078
 
1079
- #: ../classes/helpers/FrmFieldsHelper.php:1282
1080
  msgid "Not at all Important"
1081
  msgstr ""
1082
 
1083
- #: ../classes/helpers/FrmFieldsHelper.php:1285
1084
  msgid "Agreement"
1085
  msgstr ""
1086
 
1087
- #: ../classes/helpers/FrmFieldsHelper.php:1286
1088
  msgid "Strongly Agree"
1089
  msgstr ""
1090
 
1091
- #: ../classes/helpers/FrmFieldsHelper.php:1286
1092
  msgid "Agree"
1093
  msgstr ""
1094
 
1095
- #: ../classes/helpers/FrmFieldsHelper.php:1287
1096
  msgid "Disagree"
1097
  msgstr ""
1098
 
1099
- #: ../classes/helpers/FrmFieldsHelper.php:1287
1100
  msgid "Strongly Disagree"
1101
  msgstr ""
1102
 
@@ -1400,137 +1400,141 @@ msgstr ""
1400
  msgid "Your server is missing the simplexml_import_dom function"
1401
  msgstr ""
1402
 
1403
- #: ../classes/helpers/FrmXMLHelper.php:756
1404
  msgid "Imported"
1405
  msgstr ""
1406
 
1407
- #: ../classes/helpers/FrmXMLHelper.php:757
1408
  msgid "Updated"
1409
  msgstr ""
1410
 
1411
- #: ../classes/helpers/FrmXMLHelper.php:782
1412
  msgid "Nothing was imported or updated"
1413
  msgstr ""
1414
 
1415
- #: ../classes/helpers/FrmXMLHelper.php:794
1416
  #, php-format
1417
  msgid "%1$s Form"
1418
  msgid_plural "%1$s Forms"
1419
  msgstr[0] ""
1420
  msgstr[1] ""
1421
 
1422
- #: ../classes/helpers/FrmXMLHelper.php:795
1423
  #, php-format
1424
  msgid "%1$s Field"
1425
  msgid_plural "%1$s Fields"
1426
  msgstr[0] ""
1427
  msgstr[1] ""
1428
 
1429
- #: ../classes/helpers/FrmXMLHelper.php:796
1430
  #, php-format
1431
  msgid "%1$s Entry"
1432
  msgid_plural "%1$s Entries"
1433
  msgstr[0] ""
1434
  msgstr[1] ""
1435
 
1436
- #: ../classes/helpers/FrmXMLHelper.php:797
1437
  #, php-format
1438
  msgid "%1$s View"
1439
  msgid_plural "%1$s Views"
1440
  msgstr[0] ""
1441
  msgstr[1] ""
1442
 
1443
- #: ../classes/helpers/FrmXMLHelper.php:798
1444
  #, php-format
1445
  msgid "%1$s Post"
1446
  msgid_plural "%1$s Posts"
1447
  msgstr[0] ""
1448
  msgstr[1] ""
1449
 
1450
- #: ../classes/helpers/FrmXMLHelper.php:799
1451
  #, php-format
1452
  msgid "%1$s Style"
1453
  msgid_plural "%1$s Styles"
1454
  msgstr[0] ""
1455
  msgstr[1] ""
1456
 
1457
- #: ../classes/helpers/FrmXMLHelper.php:800
1458
  #, php-format
1459
  msgid "%1$s Term"
1460
  msgid_plural "%1$s Terms"
1461
  msgstr[0] ""
1462
  msgstr[1] ""
1463
 
1464
- #: ../classes/helpers/FrmXMLHelper.php:801
1465
  #, php-format
1466
  msgid "%1$s Form Action"
1467
  msgid_plural "%1$s Form Actions"
1468
  msgstr[0] ""
1469
  msgstr[1] ""
1470
 
1471
- #: ../classes/helpers/FrmXMLHelper.php:895
1472
  msgid "Create Posts"
1473
  msgstr ""
1474
 
1475
- #: ../classes/helpers/FrmXMLHelper.php:1004 ../classes/views/frm-form-
1476
  #: actions/email_action.php:16
1477
  msgid "Email Notification"
1478
  msgstr ""
1479
 
1480
- #: ../classes/models/FrmAddon.php:101
1481
  #, php-format
1482
  msgid "Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
1483
  msgstr ""
1484
 
1485
- #: ../classes/models/FrmAddon.php:171
1486
  msgid "Oops! You forgot to enter your license number."
1487
  msgstr ""
1488
 
1489
- #: ../classes/models/FrmAddon.php:188
1490
  msgid "Your license has been activated. Enjoy!"
1491
  msgstr ""
1492
 
1493
- #: ../classes/models/FrmAddon.php:191 ../classes/models/FrmAddon.php:200
1494
  msgid "That license key is invalid"
1495
  msgstr ""
1496
 
1497
- #: ../classes/models/FrmAddon.php:194
1498
  msgid "That license is expired"
1499
  msgstr ""
1500
 
1501
- #: ../classes/models/FrmAddon.php:196
 
 
 
 
1502
  msgid "That license has been used on too many sites"
1503
  msgstr ""
1504
 
1505
- #: ../classes/models/FrmAddon.php:198
1506
  msgid "Oops! That is the wrong license key for this plugin."
1507
  msgstr ""
1508
 
1509
- #: ../classes/models/FrmAddon.php:228
1510
  msgid "That license was removed successfully"
1511
  msgstr ""
1512
 
1513
- #: ../classes/models/FrmAddon.php:230
1514
  msgid "There was an error deactivating your license."
1515
  msgstr ""
1516
 
1517
- #: ../classes/models/FrmAddon.php:263 ..
1518
  #: pro/classes/controllers/FrmUpdatesController.php:356
1519
  msgid "Your License Key was invalid"
1520
  msgstr ""
1521
 
1522
- #: ../classes/models/FrmAddon.php:265
1523
  #, php-format
1524
  msgid ""
1525
  "You had an error communicating with Formidable Pro's API. %1$sClick here%2$s "
1526
  "for more information."
1527
  msgstr ""
1528
 
1529
- #: ../classes/models/FrmAddon.php:268
1530
  msgid "You had an HTTP error connecting to Formidable Pro's API"
1531
  msgstr ""
1532
 
1533
- #: ../classes/models/FrmAddon.php:278 ..
1534
  #: pro/classes/controllers/FrmUpdatesController.php:352
1535
  #, php-format
1536
  msgid "There was a %1$s error: %2$s"
@@ -1540,7 +1544,7 @@ msgstr ""
1540
  msgid "Use the query in an array format so it can be properly prepared."
1541
  msgstr ""
1542
 
1543
- #: ../classes/models/FrmEDD_SL_Plugin_Updater.php:242
1544
  msgid "You do not have permission to install plugin updates"
1545
  msgstr ""
1546
 
@@ -1602,19 +1606,19 @@ msgstr ""
1602
 
1603
  #: ../classes/models/FrmField.php:14 ..
1604
  #: pro/classes/controllers/FrmProLookupFieldsController.php:14 ..
1605
- #: pro/classes/helpers/FrmProFieldsHelper.php:4158
1606
  msgid "Checkboxes"
1607
  msgstr ""
1608
 
1609
  #: ../classes/models/FrmField.php:15 ../classes/views/styles/_sample_form.php:56 .
1610
  #: ./pro/classes/controllers/FrmProLookupFieldsController.php:13 ..
1611
- #: pro/classes/helpers/FrmProFieldsHelper.php:4157
1612
  msgid "Radio Buttons"
1613
  msgstr ""
1614
 
1615
  #: ../classes/models/FrmField.php:16 ..
1616
  #: pro/classes/controllers/FrmProLookupFieldsController.php:12 ..
1617
- #: pro/classes/helpers/FrmProFieldsHelper.php:4156
1618
  msgid "Dropdown"
1619
  msgstr ""
1620
 
@@ -1627,7 +1631,7 @@ msgid "End Section"
1627
  msgstr ""
1628
 
1629
  #: ../classes/models/FrmField.php:31 ../pro/classes/helpers/FrmProFieldsHelper.
1630
- #: php:4144
1631
  msgid "Section"
1632
  msgstr ""
1633
 
@@ -1652,7 +1656,7 @@ msgid "Scale"
1652
  msgstr ""
1653
 
1654
  #: ../classes/models/FrmField.php:41 ../pro/classes/helpers/FrmProFieldsHelper.
1655
- #: php:4154
1656
  msgid "Dynamic Field"
1657
  msgstr ""
1658
 
@@ -1785,7 +1789,7 @@ msgstr ""
1785
  #, php-format
1786
  msgid ""
1787
  "So, we&#8217;ve come to the end of the tour. If you like the plugin, please "
1788
- "%srate it 5 stars on WordPress.org%s!"
1789
  msgstr ""
1790
 
1791
  #: ../classes/models/FrmPointers.php:333
@@ -2206,6 +2210,10 @@ msgid ""
2206
  "is in a small area."
2207
  msgstr ""
2208
 
 
 
 
 
2209
  #: ../classes/views/frm-forms/add_field.php:260
2210
  msgid "reCAPTCHA Color"
2211
  msgstr ""
@@ -2597,7 +2605,7 @@ msgid "Do not use Formidable styling"
2597
  msgstr ""
2598
 
2599
  #: ../classes/views/frm-forms/settings.php:157 ../classes/views/frm-settings/form.
2600
- #: php:146
2601
  msgid "Submit Button Text"
2602
  msgstr ""
2603
 
@@ -2610,7 +2618,7 @@ msgid "Set up your confirmation messages."
2610
  msgstr ""
2611
 
2612
  #: ../classes/views/frm-forms/settings.php:179 ../classes/views/frm-settings/form.
2613
- #: php:154 ../pro/classes/views/settings/form.php:32
2614
  msgid "Miscellaneous"
2615
  msgstr ""
2616
 
@@ -2643,7 +2651,7 @@ msgid "Select a form:"
2643
  msgstr ""
2644
 
2645
  #: ../classes/views/frm-settings/form.php:37 ../classes/views/frm-settings/form.
2646
- #: php:188
2647
  msgid "Update Options"
2648
  msgstr ""
2649
 
@@ -2711,77 +2719,81 @@ msgstr ""
2711
  msgid "Secret Key"
2712
  msgstr ""
2713
 
2714
- #: ../classes/views/frm-settings/form.php:94
 
 
 
 
2715
  msgid "Multiple reCaptchas"
2716
  msgstr ""
2717
 
2718
- #: ../classes/views/frm-settings/form.php:97
2719
  msgid "Allow multiple reCaptchas to be used on a single page"
2720
  msgstr ""
2721
 
2722
- #: ../classes/views/frm-settings/form.php:101
2723
  msgid "Default Messages"
2724
  msgstr ""
2725
 
2726
- #: ../classes/views/frm-settings/form.php:102
2727
  msgid ""
2728
  "You can override the success message and submit button settings on "
2729
  "individual forms."
2730
  msgstr ""
2731
 
2732
- #: ../classes/views/frm-settings/form.php:106
2733
  msgid "Failed/Duplicate Entry"
2734
  msgstr ""
2735
 
2736
- #: ../classes/views/frm-settings/form.php:107
2737
  msgid ""
2738
  "The message seen when a form is submitted and passes validation, but "
2739
  "something goes wrong."
2740
  msgstr ""
2741
 
2742
- #: ../classes/views/frm-settings/form.php:113
2743
  msgid "Blank Field"
2744
  msgstr ""
2745
 
2746
- #: ../classes/views/frm-settings/form.php:114
2747
  msgid "The message seen when a required field is left blank."
2748
  msgstr ""
2749
 
2750
- #: ../classes/views/frm-settings/form.php:120
2751
  msgid "Incorrect Field"
2752
  msgstr ""
2753
 
2754
- #: ../classes/views/frm-settings/form.php:121
2755
  msgid "The message seen when a field response is either incorrect or missing."
2756
  msgstr ""
2757
 
2758
- #: ../classes/views/frm-settings/form.php:128
2759
  msgid "Unique Value"
2760
  msgstr ""
2761
 
2762
- #: ../classes/views/frm-settings/form.php:129
2763
  msgid ""
2764
  "The message seen when a user selects a value in a unique field that has "
2765
  "already been used."
2766
  msgstr ""
2767
 
2768
- #: ../classes/views/frm-settings/form.php:140
2769
  msgid "The default message seen after a form is submitted."
2770
  msgstr ""
2771
 
2772
- #: ../classes/views/frm-settings/form.php:156
2773
  msgid "Admin menu label"
2774
  msgstr ""
2775
 
2776
- #: ../classes/views/frm-settings/form.php:159
2777
  msgid "Use this menu name site-wide"
2778
  msgstr ""
2779
 
2780
- #: ../classes/views/frm-settings/form.php:163
2781
  msgid "Preview Page"
2782
  msgstr ""
2783
 
2784
- #: ../classes/views/frm-settings/form.php:184
2785
  msgid "Uninstall Formidable"
2786
  msgstr ""
2787
 
@@ -2797,7 +2809,7 @@ msgid ""
2797
  msgstr ""
2798
 
2799
  #: ../classes/views/frm-settings/license_box.php:8 ..
2800
- #: pro/classes/controllers/FrmProEddController.php:119
2801
  msgid "Click here"
2802
  msgstr ""
2803
 
@@ -2833,7 +2845,7 @@ msgid "Fields from your form"
2833
  msgstr ""
2834
 
2835
  #: ../classes/views/shared/mb_adv_info.php:68 ..
2836
- #: pro/classes/helpers/FrmProFieldsHelper.php:2577
2837
  msgid "Helpers"
2838
  msgstr ""
2839
 
@@ -3129,13 +3141,13 @@ msgid "Another field with a description"
3129
  msgstr ""
3130
 
3131
  #: ../classes/views/styles/_section-fields.php:7 ..
3132
- #: pro/classes/helpers/FrmProFieldsHelper.php:4147 ../pro/classes/views/frmpro-
3133
  #: fields/options-form-top.php:11
3134
  msgid "Collapsible"
3135
  msgstr ""
3136
 
3137
  #: ../classes/views/styles/_section-fields.php:10 ..
3138
- #: pro/classes/helpers/FrmProFieldsHelper.php:4148 ../pro/classes/views/frmpro-
3139
  #: fields/options-form-top.php:20
3140
  msgid "Repeatable"
3141
  msgstr ""
@@ -3312,27 +3324,35 @@ msgstr ""
3312
  msgid "Zip/Postal"
3313
  msgstr ""
3314
 
3315
- #: ../pro/classes/controllers/FrmProAppController.php:9
3316
  msgid "Formidable Tags"
3317
  msgstr ""
3318
 
3319
- #: ../pro/classes/controllers/FrmProAppController.php:10
3320
  msgid "Formidable Tag"
3321
  msgstr ""
3322
 
3323
- #: ../pro/classes/controllers/FrmProCreditCardsController.php:104
 
 
 
 
 
 
 
 
3324
  msgid "Expiration Month"
3325
  msgstr ""
3326
 
3327
- #: ../pro/classes/controllers/FrmProCreditCardsController.php:105
3328
  msgid "Expiration Year"
3329
  msgstr ""
3330
 
3331
- #: ../pro/classes/controllers/FrmProCreditCardsController.php:128
3332
  msgid "Card number"
3333
  msgstr ""
3334
 
3335
- #: ../pro/classes/controllers/FrmProCreditCardsController.php:129
3336
  msgid "CVC"
3337
  msgstr ""
3338
 
@@ -3413,42 +3433,42 @@ msgstr ""
3413
  msgid "There are no views with that ID"
3414
  msgstr ""
3415
 
3416
- #: ../pro/classes/controllers/FrmProEddController.php:86
3417
  #, php-format
3418
  msgid ""
3419