Calculated Fields Form - Version 1.1.63

Version Description

  • Improves the advanced equations editor on mobiles devices.
  • Fixes an issue with the advanced equations editor and the Firefox browser.
Download this release

Release Info

Developer codepeople
Plugin Icon 128x128 Calculated Fields Form
Version 1.1.63
Comparing to
See all releases

Code changes from version 1.1.3 to 1.1.63

Files changed (113) hide show
  1. README.txt +53 -41
  2. changelog.txt +290 -304
  3. config/cpcff_config.cfg.php +5 -2
  4. cp_calculatedfieldsf_free.php +8 -3
  5. css/style.css +17 -5
  6. css/stylepublic.css +62 -17
  7. inc/cpcff_admin_int.inc.php +32 -18
  8. inc/cpcff_admin_int_list.inc.php +212 -104
  9. inc/cpcff_amp.inc.php +16 -6
  10. inc/cpcff_auxiliary.inc.php +42 -4
  11. inc/cpcff_compatibility.inc.php +6 -0
  12. inc/cpcff_form.inc.php +42 -2
  13. inc/cpcff_main.inc.php +117 -51
  14. inc/cpcff_public_int.inc.php +11 -3
  15. inc/cpcff_revisions.inc.php +2 -1
  16. inc/cpcff_templates.inc.php +60 -36
  17. inc/cpcff_trial.php +61 -0
  18. js/fbuilder-loader-admin.php +2 -0
  19. js/fbuilder-loader-public.php +67 -19
  20. js/fbuilder-pro-admin.jquery.js +33 -8
  21. js/fbuilder-pro-public.jquery.js +98 -7
  22. js/fields-admin/01_fbuilder.ftext.js +2 -2
  23. js/fields-admin/02_fbuilder.fcurrency.js +2 -1
  24. js/fields-admin/02_fbuilder.fnumber.js +2 -1
  25. js/fields-admin/02_fbuilder.fslider.js +1 -1
  26. js/fields-admin/03_fbuilder.fcolor.js +1 -1
  27. js/fields-admin/03_fbuilder.femail.js +7 -3
  28. js/fields-admin/04_fbuilder.fdate.js +1 -1
  29. js/fields-admin/05_fbuilder.ftextarea.js +1 -1
  30. js/fields-admin/06_fbuilder.fcheck.js +11 -4
  31. js/fields-admin/07_fbuilder.fradio.js +8 -5
  32. js/fields-admin/08_fbuilder.fdropdown.js +6 -6
  33. js/fields-admin/09_fbuilder.ffile.js +1 -1
  34. js/fields-admin/10_fbuilder.fpassword.js +2 -2
  35. js/fields-admin/11_fbuilder.fphone.js +1 -1
  36. js/fields-admin/12_fbuilder.fcommentarea.js +1 -1
  37. js/fields-admin/13_fbuilder.fhidden.js +1 -1
  38. js/fields-admin/14_fbuilder.fsectionbreak.js +1 -1
  39. js/fields-admin/15_fbuilder.fpagebreak.js +1 -1
  40. js/fields-admin/16_fbuilder.fsummary.js +3 -3
  41. js/fields-admin/29_fbuilder.ffieldset.fc.js +1 -1
  42. js/fields-admin/30_fbuilder.fdiv.fc.js +1 -1
  43. js/fields-admin/31_fbuilder.fmedia.js +1 -1
  44. js/fields-admin/32_fbuilder.fbutton.js +1 -1
  45. js/fields-admin/34_fbuilder.fhtml.js +1 -1
  46. js/fields-admin/36_fbuilder.acceptance.js +5 -2
  47. js/fields-admin/fbuilder.fcalculated.js +18 -9
  48. js/fields-public/02_fbuilder.fcurrency.js +2 -42
  49. js/fields-public/02_fbuilder.fnumber.js +2 -37
  50. js/fields-public/02_fbuilder.fslider.js +13 -6
  51. js/fields-public/04_fbuilder.fdate.js +4 -2
  52. js/fields-public/06_fbuilder.fcheck.js +52 -26
  53. js/fields-public/07_fbuilder.fradio.js +19 -4
  54. js/fields-public/08_fbuilder.fdropdown.js +41 -10
  55. js/fields-public/09_fbuilder.ffile.js +21 -6
  56. js/fields-public/11_fbuilder.fphone.js +1 -1
  57. js/fields-public/28_fbuilder.fcontainer.js +1 -0
  58. js/fields-public/32_fbuilder.fbutton.js +16 -14
  59. js/fields-public/36_fbuilder.acceptance.js +5 -2
  60. js/fields-public/fbuilder.fcalculated.js +35 -19
  61. js/modules/01_mathematical_logical/admin/module_admin.js +10 -2
  62. js/modules/01_mathematical_logical/public/01_logical.js +10 -4
  63. js/modules/01_mathematical_logical/public/module_public.js +170 -2
  64. js/modules/02_datetime/admin/module_admin.js +2 -0
  65. js/modules/02_datetime/public/01_datetime.js +111 -5
  66. js/modules/05_managing_fields/admin/module_admin.js +10 -0
  67. js/modules/05_managing_fields/public/05_managing_fields.js +34 -0
  68. js/modules/06_connector/public/01_connector.js +6 -3
  69. js/modules/08_url/admin/module_admin.js +5 -0
  70. js/modules/08_url/public/01_url.js +7 -1
  71. languages/calculated-fields-form-en_US.mo +0 -0
  72. languages/calculated-fields-form-en_US.po +199 -146
  73. pagebuilders/elementor/elementor.pb.php +2 -3
  74. templates/01/style.css +18 -1
  75. templates/02/style.css +47 -4
  76. templates/03/style.css +12 -1
  77. templates/04/style.css +14 -2
  78. templates/05/style.css +16 -2
  79. templates/06/style.css +10 -1
  80. templates/07/style.css +16 -3
  81. templates/08/style.css +24 -6
  82. templates/09/style.css +9 -1
  83. templates/10/style.css +21 -1
  84. templates/11/style.css +10 -2
  85. templates/12/style.css +9 -3
  86. templates/13/style.css +29 -18
  87. templates/14/config.ini +5 -0
  88. templates/14/flech-select.svg +11 -0
  89. templates/14/style.css +138 -0
  90. templates/14/thumbnail.jpg +0 -0
  91. vendors/chosen/chosen-sprite.png +0 -0
  92. vendors/chosen/chosen-sprite@2x.png +0 -0
  93. vendors/chosen/chosen.jquery.min.js +3 -0
  94. vendors/chosen/chosen.min.css +11 -0
  95. {js → vendors}/jQuery.stringify.js +0 -0
  96. vendors/jquery-ui/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
  97. vendors/jquery-ui/images/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
  98. vendors/jquery-ui/images/ui-bg_glass_50_3baae3_1x400.png +0 -0
  99. vendors/jquery-ui/images/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
  100. vendors/jquery-ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
  101. vendors/jquery-ui/images/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
  102. vendors/jquery-ui/images/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
  103. vendors/jquery-ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
  104. vendors/jquery-ui/images/ui-icons_2694e8_256x240.png +0 -0
  105. vendors/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  106. vendors/jquery-ui/images/ui-icons_3d80b3_256x240.png +0 -0
  107. vendors/jquery-ui/images/ui-icons_72a7cf_256x240.png +0 -0
  108. vendors/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  109. vendors/jquery-ui/jquery-ui.min.css +7 -0
  110. {js → vendors}/jquery.caret.js +0 -0
  111. {js → vendors}/jquery.validate.js +0 -0
  112. vendors/select2/select2.min.css +1 -0
  113. vendors/select2/select2.min.js +2 -0
README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: codepeople
3
  Donate link: http://cff.dwbooster.com
4
  Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
5
  Requires at least: 3.0.5
6
- Tested up to: 5.8
7
- Stable tag: trunk
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -99,6 +99,7 @@ Payments allow SCA (strong customer authentication), compatible with the new pay
99
  **Includes add-ons to extend the form features and make use of third-party plugins and external services**
100
 
101
  * [Server-Side Equations add-on](https://cff.dwbooster.com/add-ons/server-side-equations): define server-side equations.
 
102
  * [WooCommerce add-on](https://cff.dwbooster.com/add-ons/woocommerce): integrate forms with WooCommerce products and calculate their prices, dimensions, and weight at the runtime.
103
  * [SalesForce add-on](https://cff.dwbooster.com/add-ons/salesforce): integrate the form with the SalesForce service.
104
  * [WebHooks add-on](https://cff.dwbooster.com/add-ons/webhook): send the information collected by the form to a WebHook URL to open countless possibilities. By connecting your form to services such as Zapier, Microsoft Flow, IFTTT, Workato, and others, you can connect to hundreds of third-party services (e.g. Zoho CRM, Dropbox, Mailchimp, Google Drive, Facebook, Twitter, etc.).
@@ -108,7 +109,8 @@ Payments allow SCA (strong customer authentication), compatible with the new pay
108
 
109
  = Features of the Platinum version: =
110
 
111
- * Includes all the features of free, Professiona, and Developer versions of the plugin.
 
112
  * [Easy Digital Downloads add-on](https://cff.dwbooster.com/add-ons/edd): integrate the forms into Easy Digital Downloads products and calculate their prices at the runtime.
113
  * [Google Analytics add-on](https://cff.dwbooster.com/add-ons/google-analytics): generate usage reports in "Google Analytics" for the users' actions.
114
  * [PayPal Pro add-on](https://cff.dwbooster.com/add-ons/paypal-pro): enable the payer's credit card details to be entered directly through the website without any redirection to the PayPal website.
@@ -139,6 +141,7 @@ Payments allow SCA (strong customer authentication), compatible with the new pay
139
  * [PayTM add-on](https://cff.dwbooster.com/add-ons/paytm): a secure interface for accepting payments with credit cards, debit cards, net banking, wallets, and EMI.
140
  * [SagePay add-on](https://cff.dwbooster.com/add-ons/sagepay): a secure interface for accepting payments via SagePay.
141
  * [Sage Payment add-on](https://cff.dwbooster.com/add-ons/sagepayment): a secure interface for accepting payments through a secure SSL checkout system for both bankcard and virtual check transactions.
 
142
 
143
  Please keep the plugin updated. Updates contain bug fixes as well as new features. The WordPress directory distributes the updates for the free version of the plugin. But for commercial versions, it would be necessary to register your copy of the plugin. The following link describes the registration process: [CLICK HERE](https://cff.dwbooster.com/documentation#register "Registering the plugin")
144
 
@@ -321,6 +324,18 @@ Define equations with PHP code on the server-side. The calculated fields call th
321
 
322
  [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#server-side-equations-addon "Server Side Equations add-on")
323
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  = WooCommerce add-on - included in the Developer and Platinum versions of the plugin =
325
 
326
  Integrate the forms created by the "Calculated Fields Form" with WooCommerce products and calculate their prices, weights, dimensions, and more at the runtime.
@@ -549,6 +564,11 @@ An interface for accepting payments through a secure SSL-checkout system for bot
549
 
550
  [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepayment-addon "Sage Payment add-on")
551
 
 
 
 
 
 
552
  == Frequently Asked Questions ==
553
 
554
  = Q: Is the "Calculated Fields Form" plugin compatible with "Autoptimize"? =
@@ -941,56 +961,48 @@ A: Please, follow the steps below:
941
 
942
  == Changelog ==
943
 
944
- = 1.1.3 =
945
-
946
- * Allows selecting the autocomplete attribute from the fields' settings.
947
- * Includes the Date/Time operations module with the free and professional version of the plugin.
948
- * Allows passing the version number of the ChartJS library through the CFFCHART operation (Developer and Platinum versions of the plugin).
949
-
950
- = 1.1.2 =
951
-
952
- * Includes a new control. The COLOR control.
953
- * Implements the read-only feature in radio buttons and checkbox fields.
954
-
955
- = 1.1.1 =
956
 
957
- * Improve accessibility by making the design more coherent.
 
958
 
959
- = 1.1.0 =
960
 
961
- * Modifies the plugin's design and the accessibility.
 
 
 
962
 
963
- = 1.0.474 =
964
 
965
- * Includes the getReferrer operation in the URL Operations module.
966
- * Modifies the cff-gotopage event.
967
- * Modifies the loading form animation.
968
- * Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
969
 
970
- = 1.0.473 =
971
 
972
- * Modifies the forms structures.
973
- * Fixes a CSS conflict.
974
- * Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
975
 
976
- = 1.0.472 =
977
 
978
- * Allows you to configure the Date/Time fields as read only.
979
- * Fixes some compatibility issues with the last versions of PHP.
980
- * Modifies the WooCommerce add-on (Developer and Platinum versions of the plugin).
981
- * Includes a link from the form's settings to Messages lists (Commercial versions of the plugin).
982
 
983
- = 1.0.471 =
984
 
985
- * Fixes a compatibility problem with Internet Explorer, even if this browser has been discontinued by Microsoft.
 
 
 
986
 
987
- = 1.0.470 =
988
 
989
- * Modifies the processing and loading animation.
990
- * Fixes some warnings.
991
- * Resets the manual entry flag in the calculated fields in the form reset action.
992
 
993
- = 1.0.469 =
994
 
995
- * Modifies the summary, field, button, number, and calculated controls.
996
- * Implements the FORMAT operation to allow formatting the values as part of the equations.
3
  Donate link: http://cff.dwbooster.com
4
  Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
5
  Requires at least: 3.0.5
6
+ Tested up to: 5.9
7
+ Stable tag: 1.1.63
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
99
  **Includes add-ons to extend the form features and make use of third-party plugins and external services**
100
 
101
  * [Server-Side Equations add-on](https://cff.dwbooster.com/add-ons/server-side-equations): define server-side equations.
102
+ * [Verification Code add-on](https://cff.dwbooster.com/add-ons/verification-code): verifies the user's email by sending him a verification code and blocking the form's submission until the verification code is entered.
103
  * [WooCommerce add-on](https://cff.dwbooster.com/add-ons/woocommerce): integrate forms with WooCommerce products and calculate their prices, dimensions, and weight at the runtime.
104
  * [SalesForce add-on](https://cff.dwbooster.com/add-ons/salesforce): integrate the form with the SalesForce service.
105
  * [WebHooks add-on](https://cff.dwbooster.com/add-ons/webhook): send the information collected by the form to a WebHook URL to open countless possibilities. By connecting your form to services such as Zapier, Microsoft Flow, IFTTT, Workato, and others, you can connect to hundreds of third-party services (e.g. Zoho CRM, Dropbox, Mailchimp, Google Drive, Facebook, Twitter, etc.).
109
 
110
  = Features of the Platinum version: =
111
 
112
+ * Includes all the features of free, Professional, and Developer versions of the plugin.
113
+ * [Unique Fields Values add-on](https://cff.dwbooster.com/add-ons/uniquefieldsvalues): verifies that the values entered by users have not been used in previous submissions.
114
  * [Easy Digital Downloads add-on](https://cff.dwbooster.com/add-ons/edd): integrate the forms into Easy Digital Downloads products and calculate their prices at the runtime.
115
  * [Google Analytics add-on](https://cff.dwbooster.com/add-ons/google-analytics): generate usage reports in "Google Analytics" for the users' actions.
116
  * [PayPal Pro add-on](https://cff.dwbooster.com/add-ons/paypal-pro): enable the payer's credit card details to be entered directly through the website without any redirection to the PayPal website.
141
  * [PayTM add-on](https://cff.dwbooster.com/add-ons/paytm): a secure interface for accepting payments with credit cards, debit cards, net banking, wallets, and EMI.
142
  * [SagePay add-on](https://cff.dwbooster.com/add-ons/sagepay): a secure interface for accepting payments via SagePay.
143
  * [Sage Payment add-on](https://cff.dwbooster.com/add-ons/sagepayment): a secure interface for accepting payments through a secure SSL checkout system for both bankcard and virtual check transactions.
144
+ * [eWay add-on](https://cff.dwbooster.com/add-ons/eway): integrate with eWay payment gateway. eWay is a popular payment gateway in countries like Australia, New Zealand, Singapore, Hong Kong, and Malaysia.
145
 
146
  Please keep the plugin updated. Updates contain bug fixes as well as new features. The WordPress directory distributes the updates for the free version of the plugin. But for commercial versions, it would be necessary to register your copy of the plugin. The following link describes the registration process: [CLICK HERE](https://cff.dwbooster.com/documentation#register "Registering the plugin")
147
 
324
 
325
  [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#server-side-equations-addon "Server Side Equations add-on")
326
 
327
+ = Verification Code add-on - included in the Developer and Platinum versions of the plugin =
328
+
329
+ The "Verification Code" add-on allows verifying the users' emails by sending a verification code and blocking the form's submission until a valid code is entered.
330
+
331
+ [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#verification-code-addon "Verification Code add-on")
332
+
333
+ = Unique Fields Values add-on - included in the Platinum version of the plugin =
334
+
335
+ The "Unique Fields Values" add-on verifies that the values entered by users have not been used in previous submissions. It allows to enter simple and complex verification rules (one or multiple fields separated by comma symbols).
336
+
337
+ [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#uniquefieldsvalues-addon "Unique Fields Values add-on")
338
+
339
  = WooCommerce add-on - included in the Developer and Platinum versions of the plugin =
340
 
341
  Integrate the forms created by the "Calculated Fields Form" with WooCommerce products and calculate their prices, weights, dimensions, and more at the runtime.
564
 
565
  [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepayment-addon "Sage Payment add-on")
566
 
567
+ = eWay add-on - included in the Platinum version of the plugin =
568
+
569
+ eWay is a popular payment gateway in countries like Australia, New Zealand, Singapore, Hong Kong, and Malaysia. The eWay add-on implements the integration with the "eWay Responsive Shared Page" for accepting credit card payments, even Paypal and digital wallets via eWay.
570
+ [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#eway-addon "eWay add-on")
571
+
572
  == Frequently Asked Questions ==
573
 
574
  = Q: Is the "Calculated Fields Form" plugin compatible with "Autoptimize"? =
961
 
962
  == Changelog ==
963
 
964
+ = 1.1.63 =
 
 
 
 
 
 
 
 
 
 
 
965
 
966
+ * Improves the advanced equations editor on mobiles devices.
967
+ * Fixes an issue with the advanced equations editor and the Firefox browser.
968
 
969
+ = 1.1.62 =
970
 
971
+ * Fixes a minor issue in the checkbox fields.
972
+ * Implements the NTHROOT operation to calculate the nth root of a number.
973
+ * Modifies the AVERAGE operation for accepting numbers array as its argument.
974
+ * Implements the DataTable DS control in the Developer and Platinum versions to insert tables with recordset records.
975
 
976
+ = 1.1.61 =
977
 
978
+ * Improves the integration with WP-Optimize plugin.
979
+ * Removes deprecated functions.
 
 
980
 
981
+ = 1.1.60 =
982
 
983
+ * Improves the plugin performance.
984
+ * Improves the integration with the optimizer plugins like WP Rocket and Autoptimize.
985
+ * Reduces the number of database queries.
986
 
987
+ = 1.1.59 =
988
 
989
+ * Modifies the way the plugin enqueues the SELECT2 library.
990
+ * Modifies the Number DS and Currency DS fields (Developer and Platinum versions).
991
+ * Modifies the eWay add-on to support the iFrame integration method (Platinum version).
 
992
 
993
+ = 1.1.58 =
994
 
995
+ * Implements the operations DECIMALTOSCIENTIFIC, FRACTIONSUM, FRACTIONSUB, FRACTIONMULT, and FRACTIONDIV.
996
+ * Modifies the calculated fields settings.
997
+ * Fixes a minor error with the minimum price of WooCommerce add-on (Developer and Platinum versions).
998
+ * Modifies the events in the DS fields (Developer and Platinum versions).
999
 
1000
+ = 1.1.57 =
1001
 
1002
+ * Integrates the Select2 library with the DropDown controls.
1003
+ * Modifies iPhone keyboards for decimals.
1004
+ * Implements the eWay Payment Gateway integration (Platinum version).
1005
 
1006
+ = 1.1.56 =
1007
 
1008
+ * Move the getField operation to the root to access it outside the context of the equations.
 
changelog.txt CHANGED
@@ -1,5 +1,294 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  = 1.1.3 =
4
 
5
  * Allows selecting the autocomplete attribute from the fields' settings.
@@ -234,307 +523,4 @@
234
 
235
  * Modifies the collapsible behavior in the fieldset fields.
236
  * Includes additional validations in the DS fields (Developer and Platinum versions).
237
- * Fixes a conflict with the reCAPTCHA styles (Developer and Platinum versions).
238
-
239
- = 1.0.432 =
240
-
241
- * Modifies the previsualization for forms as the pages of the form.
242
- * Fixes a conflict with the Jetpack Lazy Load images.
243
- * Modifies the module to prevent the thank you page be cached (Professional, Developer, and Platinum versions).
244
- * Modifies the popup for data edition in the Users Permissions add-on (Developer and Platinum versions).
245
-
246
- = 1.0.431 =
247
-
248
- * Allows sorting the forms list by their ids or names.
249
- * Modifies the default values on phone controls.
250
- * Modifies the MailChimp add-on in the Platinum version of the plugin.
251
-
252
- = 1.0.430 =
253
-
254
- * Includes minor changes in the Single Line Text, Password, and Email controls.
255
- * Fixes an issue with the back button on browsers.
256
- * Improves the performance of the CSV Generator add-on in the Platinum version of the plugin.
257
- * Modifies the Twilio add-on in the Platinum version of the plugin.
258
-
259
- = 1.0.429 =
260
-
261
- * Modifies the date/time control to fix an issue with the default dates.
262
- * Prevents some conflicts caused by the cache plugins.
263
-
264
- = 1.0.428 =
265
-
266
- * Modifies the plugin styles.
267
- * Fixes some conflicts with WordPress v5.6.
268
- * Fixes a minor issue in the Users Permissions add-on (Developer and Platinum versions).
269
-
270
- = 1.0.427 =
271
-
272
- * Modifies the slider control.
273
- * Modifies the styles to adapt the appearance of the form to the default theme of WordPress v5.6.
274
- * Fixes a minor issue in the CSV Generator add-on (Platinum version).
275
-
276
- = 1.0.426 =
277
-
278
- * Assign different colors to the fields in the form builder to identify them more easily.
279
-
280
- = 1.0.425 =
281
-
282
- * Updates the jQuery-UI version used by the plugin to prevent conflicts with other plugins and themes.
283
- * Allows protecting the generated PDF files (Platinum version of the plugin).
284
-
285
- = 1.0.424 =
286
-
287
- * Modifies the slider control allowing to update the corner captions dynamically.
288
-
289
- = 1.0.423 =
290
-
291
- * Modifies the settings of every control to improve the user interaction.
292
- * Includes the NPER operation in the Financial Operations Module (Developer and Platinum versions of the plugin).
293
- * Modifies the Users Registration Form add-on allowing to hide the registration form for registered users (Developer and Platinum versions of the plugin).
294
- * Improves the code of the add-ons reducing duplication (Developer and Platinum versions of the plugin).
295
-
296
- = 1.0.422 =
297
-
298
- * Modifies the settings of every control to improve the user interaction.
299
- * Fixes an issue in the CSV data-source in the DS controls (Developer and Platinum versions of the plugin).
300
- * Modifies the Users Permissions add-on to allow the administrators to filter the data by the collected information. Furthermore, it includes a new button in the Messages section for those entries associated with registered users (Developer and Platinum versions of the plugin).
301
-
302
- = 1.0.421 =
303
-
304
- * Fixes an issue with the default date in the date/time fields.
305
- * Implements the SCIENTIFICTODECIMAL operation to transform a number in scientific to decimal notation.
306
- * Modifies the Users Permissions add-on to allow the administrators to edit the entries of other users directly through the [CP_CALCULATED_FIELDS_USER_SUBMISSIONS_LIST] shortcode and the public form (Developer and Platinum versions of the plugin).
307
-
308
- = 1.0.420 =
309
-
310
- * Modifies the email controls to accept regular expressions for validation.
311
- * Modifies the password controls to accept regular expressions for validation.
312
- * Include minor modifications in the styles of phone controls.
313
- * Modifies the appearance of messages table in the commercial versions of the plugin.
314
-
315
- = 1.0.419 =
316
-
317
- * Includes the FACTORIAL operation.
318
- * Modifies some styles.
319
- * Modifies the CFFCHART operation for accepting a third parameter (optional) with the field where storing the source of the generated chart as a PNG image in base64 code (Developer and Platinum versions of the plugin).
320
- * Modifies the Users Permissions add-on to include a login form in case the form be accessible only by registered and the visitant is unregistered (Developer and Platinum versions of the plugin).
321
- * Modifies the RecordSet DS field for accessing to more relaxed JSON objects (Developer and Platinum versions of the plugin).
322
- * Fixes an issue in the PDF Generator add-on and the signature fields.
323
-
324
- = 1.0.418 =
325
-
326
- * Fixes an issue in the slider control.
327
-
328
- = 1.0.417 =
329
-
330
- * Improves the access to additional resources.
331
-
332
- = 1.0.416 =
333
-
334
- * Modifies the behaviour of the tooltip-icons to avoid putting the focus on the input tags.
335
-
336
- = 1.0.415 =
337
-
338
- * Modifies the controls to improve the accessibility including aria-label in all of them.
339
- * Includes new actions.
340
- * Modifies the Users Permissions add-on (Developer and Platinum versions of the plugin)
341
-
342
- = 1.0.414 =
343
-
344
- * Modifies the controls Dropdown, Checkbox, and Radio Buttons, to allow accessing from the equations to the information to submit, and not only the fields' values. For example, if fieldname1 is a dropdown field, use the modifier |v as part of the field' name in the equation to access the information to submit: fieldname1|v
345
-
346
- = 1.0.413 =
347
-
348
- * Modifies the operations: MIN, MAX, SUM and CONCATENATE for accepting arrays and not only numbers as their arguments.
349
-
350
- = 1.0.412 =
351
-
352
- * Fixes a conflict in the styles of the sliders' captions.
353
- * Modifies the module that generates the captcha image.
354
- * Modifies the reCAPTCHA add-on for supporting reCAPTCHA V3 (Developer and Platinum versions of the plugin)
355
-
356
- = 1.0.411 =
357
-
358
- * Modifies the Slider control to include a number component for typing the values directly, synchronizing the slider and number components.
359
- * Fixes an issue in the summary control.
360
- * Modifies the hooks in the Users Permissions add-on (Developer and Platinum versions of the plugin)
361
-
362
- = 1.0.410 =
363
-
364
- * Modifies some filters.
365
- * Fixes an issue in the WooCommerce add-on (Developer and Platinum versions)
366
-
367
- = 1.0.409 =
368
-
369
- * Fixes an issue loading the revisions. It was forcing the users to load the revision twice to take effect.
370
- * Modifies the browser's persistence feature to prevent it penalize the form's performance.
371
- * Modify the method to load the Forms Builder resources to prevent that errors in third party plugin affect ours.
372
-
373
- = 1.0.408 =
374
-
375
- * Includes the AVERAGE operation to calculate the average for the numbers passed as parameter.
376
- * Fixes an issue in the WooCommerce add-on.
377
-
378
- = 1.0.407 =
379
-
380
- * Transforms the fields' list to define the dependencies, to define the summary fields, and to define the equations in the calculated fields, into auto-complete lists, to improve the users' experience.
381
- * Includes a new attribute in the DropDown DS fields to define a first choice, independent on the choices obtained from the data-sources (Ex. a - select one - choice) (Developer and Platinum versions)
382
- * Evaluates the third-party shortcodes into the summaries defined by the Users Permissions Add-on (Developer and Platinum versions)
383
-
384
- = 1.0.406 =
385
-
386
- * Fixes an issue with the Reset buttons in multi-pages forms.
387
-
388
- = 1.0.405 =
389
-
390
- * Improves the support and integration with AMP pages, thanks to the modifications recommended by Weston Ruter (@westonruter)
391
-
392
- = 1.0.404 =
393
-
394
- * Modifies the Date/Time control.
395
- * Modifies the Reset button.
396
-
397
- = 1.0.403 =
398
-
399
- * Modifies the fieldset field to allow makes it collapsible.
400
- * Modifies the calculated fields to allow disabling the evaluation of the equations if the fields are editable, and their values are entered manually.
401
- * Modifies the way the URLs are generated when the resources are loaded directly.
402
- * Includes an attribute in the settings page to allow excluding the thank you pages from cache (Profession, Developer and Platinum versions)
403
-
404
- = 1.0.402 =
405
-
406
- * Improves the code that generates the forms builder.
407
- * Includes new filter cpcff_custom_tags (Professional, Developer and Platinum versions)
408
- * Modifies the PDF Generator add-on allowing to enter the <%pdf_generator_url%> tag into the notification emails and thank you pages. The tag would be replaced with the URL to the PDF file (Platinum versions)
409
-
410
- = 1.0.401 =
411
-
412
- * Modifies some database's columns to increase their sizes.
413
- * Adds a random parameter to the thank you page's URL to prevent it be cached (Professional, Developer and Platinum versions)
414
-
415
- = 1.0.400 =
416
-
417
- * Modifies the controls to allow using other fields in the form as their predefined values.
418
-
419
- = 1.0.399 =
420
-
421
- * Modifies the forms builder.
422
- * It has been tested in WP 5.5
423
-
424
- = 1.0.398 =
425
-
426
- * Includes pre tags to prevent other plugins pre-process our plugin's scripts.
427
- * Fixes a conflict with Lottie.
428
- * Fixes an issue with the conditional attributes in the fields tags used in the notification emails and thank you pages (Professional, Developer and Platinum versions)
429
- * Includes a new data source alternative in the recordset fields for reading the records from a javascript variable or JSON file (Developer and Platinum versions)
430
-
431
- = 1.0.397 =
432
-
433
- * Includes the exclude attribute in the hidden fields too.
434
-
435
- = 1.0.396 =
436
-
437
- * Now edit the forms and equations is easier. The plugin includes a frame with the field's name directly on the dashboard.
438
- * Fixes an issue in the summary control. If there is a date-time field with the date component disabled, the summary will display only the time.
439
- * Fixes an issue with the progress bar in the template 07 for multi-pages forms.
440
- * Modifies the IF operation to prevent an error caused by the optimization algorithm of the WP-Optimize plugin.
441
- * Includes a new attribute in the fields' settings to exclude them from submissions and notification emails (Professional, Developer, and Platinum versions).
442
-
443
- = 1.0.395 =
444
-
445
- * Includes a new option in the plugins settings to prevent the conflicts with the optimization plugins.
446
- * Modifies the WooCommerce add-on (Developer and Platinum versions).
447
- * Fixes a minor issue in the payment gateways add-ons (Platinum version).
448
-
449
- = 1.0.394 =
450
-
451
- * Fixes an issue formatting the calculated fields results.
452
-
453
- = 1.0.393 =
454
-
455
- * Modifies the pagination process.
456
-
457
- = 1.0.392 =
458
-
459
- * Fixes an issue parsing the fields' values.
460
- * Modifies the WooCommerce add-on to allow the integration with the 'WooCommerce Product Add-Ons Ultimate' plugin (Developer and Platinum versions of the number)
461
-
462
- = 1.0.391 =
463
-
464
- * Includes additional header tags when the form URL is loaded directly.
465
-
466
- = 1.0.390 =
467
-
468
- * Modifies the calculated fields to allow formatting their values dynamically when they are editable.
469
- * Optimizes the plugin's execution reducing the time that takes generate the form.
470
- * Modifies the WooCommerce add-on allowing the integration with other plugins of the ecosystem, like WooCommerce Booking (Developer and Platinum versions of the plugin).
471
-
472
- = 1.0.389 =
473
-
474
- * Modifies the radio buttons and checkbox fields to fix some conflicts with third party themes.
475
-
476
- = 1.0.388 =
477
-
478
- * Begins a process of the plugin's optimization, removing unnecessary code.
479
- * Fixes an issue in the predefined template 13.
480
-
481
- = 1.0.387 =
482
-
483
- * Fixes two issues in the tooltips with the instructions for users. It prevents the tooltips be displayed over the radio buttons and checkbox configured as side-by-side, and prevents the tooltips be cut-off on mobiles and small screens.
484
- * Fixes an issue in the IGNOREFIELD and ACTIVATEFIELD operations to prevent infinite loops.
485
- * Implements the if_paid parameter in the [CP_CALCULATED_FIELDS_RESULT] and [CP_CALCULATED_FIELDS_RESULT_LIST] shortcodes to load only the paid entries (Professional, Developer and Platinum versions of the plugin).
486
-
487
- = 1.0.386 =
488
-
489
- * Includes a new attribute in the currency fields to allow truncate the values entered by the users to two decimal places.
490
- * Includes a new modifier to be used with the fields' names in the equations (|n) to prevent the fields' names be replaced by their values (Ex. fieldname1|n). Now it is possible to call the getField operation as follows: getField(fieldname1|n)
491
- * Modifies the plugin's styles to prevent a conflict with third party themes.
492
- * It does not set the focus by default in multi-pages forms when are loaded from mobiles devices.
493
-
494
- = 1.0.385 =
495
-
496
- * Fixes a style conflict.
497
-
498
- = 1.0.384 =
499
-
500
- * Modifies the behavior of the instructions for the users, allowing to display them on icons.
501
- * Fixes a conflict with a third party plugin.
502
- * Modifies the WooCommerce add-on. Includes a checkbox to replace the 'Add To Cart' buttons in the pages of the shop and archives by 'View Product' buttons (Developer and Platinum versions of the plugin).
503
-
504
- = 1.0.383 =
505
-
506
- * Includes additional validations rules to identify possible conflicts with Hummingbird.
507
-
508
- = 1.0.382 =
509
-
510
- * Modifies the HTML Content field to integrate a HTML editor into the Content attribute.
511
-
512
- = 1.0.381 =
513
-
514
- * Modifies the container fields (DIV and Fieldsets) allowing rearrange the fields in columns.
515
- * Fixes an issue with the fields' focus in the multi-pages forms.
516
- * Allows to get the length of numbers.
517
- * Includes the LATLNG operation in the DISTANCE operations module to get the latitude and longitude corresponding to an address, or the text FAIL (Developer and Platinum versions of the plugin).
518
-
519
- = 1.0.380 =
520
-
521
- * Fixes an issue displaying the captcha preview.
522
-
523
- = 1.0.379 =
524
-
525
- * Modifies some texts in the plugin's interface.
526
- * Modifies some CSS rules.
527
- * Improves the plugin's registration process (Professional, Developer, and Platinum versions)
528
- * Modifies the PayTM add-on (Platinum version)
529
-
530
- = 1.0.378 =
531
-
532
- * Fixes an issue extracting the website's domain when the code is running as CLI.
533
-
534
- = 1.0.377 =
535
-
536
- * Improves the plugin's performance.
537
- * Removes unnecessary attributes from the form's settings.
538
- * Modifies some styles.
539
- * Allows identify easier the errors with the notification emails, generating an entry in the Error Logs (Professional, Developer, and Platinum versions of the plugin).
540
- * Modifies the PrintFriendly add-on, allowing configure the emails where attach the pdf files.
1
  == Changelog ==
2
 
3
+ = 1.1.63 =
4
+
5
+ * Improves the advanced equations editor on mobiles devices.
6
+ * Fixes an issue with the advanced equations editor and the Firefox browser.
7
+
8
+ = 1.1.62 =
9
+
10
+ * Fixes a minor issue in the checkbox fields.
11
+ * Implements the NTHROOT operation to calculate the nth root of a number.
12
+ * Modifies the AVERAGE operation for accepting numbers array as its argument.
13
+ * Implements the DataTable DS control in the Developer and Platinum versions to insert tables with recordset records.
14
+
15
+ = 1.1.61 =
16
+
17
+ * Improves the integration with WP-Optimize plugin.
18
+ * Removes deprecated functions.
19
+
20
+ = 1.1.60 =
21
+
22
+ * Improves the plugin performance.
23
+ * Improves the integration with the optimizer plugins like WP Rocket and Autoptimize.
24
+ * Reduces the number of database queries.
25
+
26
+ = 1.1.59 =
27
+
28
+ * Modifies the way the plugin enqueues the SELECT2 library.
29
+ * Modifies the Number DS and Currency DS fields (Developer and Platinum versions).
30
+ * Modifies the eWay add-on to support the iFrame integration method (Platinum version).
31
+
32
+ = 1.1.58 =
33
+
34
+ * Implements the operations DECIMALTOSCIENTIFIC, FRACTIONSUM, FRACTIONSUB, FRACTIONMULT, and FRACTIONDIV.
35
+ * Modifies the calculated fields settings.
36
+ * Fixes a minor error with the minimum price of WooCommerce add-on (Developer and Platinum versions).
37
+ * Modifies the events in the DS fields (Developer and Platinum versions).
38
+
39
+ = 1.1.57 =
40
+
41
+ * Integrates the Select2 library with the DropDown controls.
42
+ * Modifies iPhone keyboards for decimals.
43
+ * Implements the eWay Payment Gateway integration (Platinum version).
44
+
45
+ = 1.1.56 =
46
+
47
+ * Move the getField operation to the root to access it outside the context of the equations.
48
+
49
+ = 1.1.55 =
50
+ = 1.1.54 =
51
+
52
+ * Modifies the setChoices operation in Radio Buttons, Checkboxes, and DropDown fields.
53
+ * Modifies the CSV Generator, and the Signature add-ons (Platinum version).
54
+
55
+ = 1.1.53 =
56
+
57
+ * Includes two new operations DECIMALTOFRACTION and FRACTIONTODECIMAL, to transform numbers between decimals and fractions.
58
+ * Improves the getURLParameters operation.
59
+ * Allow passing parameters to the thank you pages (Professional, Developer, and Platinum versions).
60
+ * Modifies the recurring payments in the Stripe add-on (Platinum version).
61
+
62
+ = 1.1.52 =
63
+
64
+ * Fixes some minor issues with the calculated fields with values entered manually.
65
+ * Improves the appearance of AMP pages.
66
+ * Fixes conflicts with third-party plugins that integrate reCAPTCHA on websites (Developer and Platinum versions).
67
+
68
+ = 1.1.51 =
69
+ = 1.1.50 =
70
+
71
+ * Optimizes the performance reducing memory consumption.
72
+ * Improves the possible conflicts with Autoptimize.
73
+ * Adjusts the form height into AMP pages.
74
+
75
+ = 1.1.49 =
76
+
77
+ * Loads the Chosen and jQuery-UI resources from the local web server.
78
+
79
+ = 1.1.48 =
80
+
81
+ * Fixes a fatal error.
82
+
83
+ = 1.1.47 =
84
+ = 1.1.46 =
85
+
86
+ * Fixes a conflict with LiteSpeed Cache.
87
+
88
+ = 1.1.45 =
89
+
90
+ * Modifies the forms generation and validation process.
91
+ * Fixes a minor conflict between the slider control appearances and third-party themes.
92
+ * Modifies the forms submission process (commercial versions of the plugin)
93
+ * Modifies the Signature, Autocomplete Places, Google Places, User Registration Form, and reCAPTCHA add-ons (Developer and Platinum versions of the plugin).
94
+
95
+ = 1.1.44 =
96
+
97
+ * Prevents that operations like CFFPROXY, DISTANCE, CFFCHART, and SERVER_SIDE affect other forms on the page that don't use them.
98
+ * Fixes a minor issue with the instructions for users in radio buttons and checkbox fields whose choices are displayed side by side.
99
+ * Modifies the appearance and the apply coupon icon, making it more intuitive (commercial versions of the plugin)
100
+
101
+ = 1.1.43 =
102
+ = 1.1.42 =
103
+
104
+ * Modifies the generation of javascript files to avoid conflicts with WordFence.
105
+ * Modifies the WooCommerce and Server Side add-ons (Developer and Platinum versions).
106
+
107
+ = 1.1.41 =
108
+
109
+ * Modifies Upload File field improving the visualization of thumbnails and including a component to clear the selected files.
110
+ * Improves the appearance of date/time, radio buttons, and checkbox controls.
111
+ * Modifies the different templates.
112
+ * Modifies the DropBox and Uploads add-ons to allow disabling the integration with specific forms (Platinum version)
113
+
114
+ = 1.1.40 =
115
+
116
+ * Modifies how the scripts are loaded.
117
+
118
+ = 1.1.39 =
119
+
120
+ * Improves the integration with WP Rocket.
121
+ * Fixes a compatibility issue between the WooCommerce add-on and Side Cart Woocommerce plugin (Developer and Platinum versions).
122
+ * Modifies the DropBox add-on (Platinum version).
123
+
124
+ = 1.1.38 =
125
+
126
+ * Prevents the enter key submits the form.
127
+ * Fixes a conflict with Elementor Popup.
128
+ * Modifies the checkbox, radio buttons, dropdown, and calculated fields.
129
+ * Modifies the form reset module.
130
+ * Modifies the IN operation.
131
+ * Modifies the DATEDIFF operation.
132
+ * Fixes a compatibility issue between the reCAPTCHA add-on and third-party reCAPTCHA plugins (Developer and Platinum versions).
133
+ * Modifies the Users Permissions add-on (Developer and Platinum versions).
134
+
135
+ = 1.1.37 =
136
+
137
+ * Allows configuring min and max values in the calculated fields.
138
+ * Improves the validation rules.
139
+ * Modifies the User Registration add-on (Developer and Platinum versions)
140
+ * Allows displaying the reCAPTCHA on isolated form pages (Developer and Platinum versions).
141
+
142
+ = 1.1.36 =
143
+
144
+ * Fixes a conflict with web servers where the parse_ini_file function is disabled.
145
+
146
+ = 1.1.35 =
147
+
148
+ * Modifies the Summary field.
149
+ * Deletes the files uploaded by the forms when submissions are deleted (Professional, Developer, and Platinum versions of the plugin).
150
+
151
+ = 1.1.34 =
152
+
153
+ * Modifies the setChoices method in the radio buttons, checkbox, and dropdown fields.
154
+ * Includes the new operation COPYFIELDVALUE to copy the values of the fields to the clipboard.
155
+
156
+ = 1.1.33 =
157
+
158
+ * Improves the plugin performance.
159
+ * Modifies the WooCommerce and Users Registration add-ons.
160
+
161
+ = 1.1.32 =
162
+
163
+ * Improved access to additional resources.
164
+
165
+ = 1.1.31 =
166
+ = 1.1.30 =
167
+
168
+ * Fixes an issue in the DATETIMESUM operation.
169
+ * Fixes the icons in the Elementor widgets.
170
+
171
+ = 1.1.29 =
172
+
173
+ * Includes the GOTOPAGE operation for jumping between pages in multipage forms.
174
+ * Modifies the template 14.
175
+ * Fixes a conflict with the Elementor styles.
176
+ * Allows modifying the evaluation of the server-side equations (Developer and Platinum versions).
177
+
178
+ = 1.1.28 =
179
+
180
+ * Includes a new predefined template.
181
+
182
+ = 1.1.27 =
183
+
184
+ * Fixes a conflict with the Appointment Hour Booking plugin.
185
+ * Removes the text-shadow from the error messages added by some themes.
186
+
187
+ = 1.1.26 =
188
+
189
+ * Fixes an issue with the autocomplete attribute on fields.
190
+
191
+ = 1.1.25 =
192
+
193
+ * Includes a new section to configure some form attributes by default. It allows modifying all existing forms at once.
194
+ * Modify some templates and default design.
195
+ * Modify the phone controls.
196
+
197
+ = 1.1.24 =
198
+
199
+ * Modifies cffProxy operation.
200
+
201
+ = 1.1.23 =
202
+
203
+ * Modifies the date time field.
204
+ * Fixes a conflict between the CFF - WooCommerce add-on and third-party themes (Developer and Platinum versions of the plugin).
205
+
206
+ = 1.1.22 =
207
+
208
+ * Modifies the templates management. Now it is possible to create custom templates into the '/wp-content/uploads/calculated-fields-form/templates' directory. These custom templates would not be affected by the plugin updates.
209
+
210
+ = 1.1.21 =
211
+
212
+ * Fixes an issue in the slider control.
213
+
214
+ = 1.1.20 =
215
+
216
+ * Implements two new operations TIMETODECIMAL and DECIMALTOTIME, to convert a time string to a decimal number or the decimal to a time format text.
217
+
218
+ = 1.1.19 =
219
+
220
+ * Modifies the DATEDIFF operation.
221
+
222
+ = 1.1.17 =
223
+
224
+ * Modifies the slider control.
225
+ * Modifies date/time operations for accepting dates with two digits for the years.
226
+ * Modifies the submissions to register the form's page (Commercial versions).
227
+
228
+ = 1.1.16 =
229
+
230
+ * Improves the integration with third-party code.
231
+
232
+ = 1.1.15 =
233
+
234
+ * Modifies the currency and number controls to allow forcing the numberpad on mobiles.
235
+ * Allows the installation of trial version of the plugin.
236
+ * Modifies the notification and confirmation emails on Professional, Developer, and Platinum versions of the plugin.
237
+
238
+ = 1.1.14 =
239
+
240
+ * Applies on/off switch to the radio buttons.
241
+ * Improves the integration with WP Rocket.
242
+
243
+ = 1.1.13 =
244
+ = 1.1.12 =
245
+
246
+ * Modifies the visualization of controls in the forms builder.
247
+ * Triggers a new action by the Users Permissions add-on after disabling submission (Developer and Platinum versions of the plugin).
248
+ * Modifies the EDD add-on (Platinum version of the plugin).
249
+
250
+ = 1.1.11 =
251
+
252
+ * Modifies the forms builder.
253
+
254
+ = 1.1.10 =
255
+
256
+ * Fixes an issue with the calculated fields dependencies.
257
+ * Modifies the form validation (Professional, Developer, and Platinum versions of the plugin).
258
+ * Improves the submissions list data source (Developer and Platinum versions of the plugin).
259
+
260
+ = 1.1.9 =
261
+
262
+ * Modifies the URL Operations module. It includes the new getURLProtocol operation and modifies getURLParameters and getURLParameter decoding the parameters automatically.
263
+
264
+ = 1.1.8 =
265
+
266
+ * Modifies the form generation, fixing conflicts with Popup plugins.
267
+
268
+ = 1.1.7 =
269
+
270
+ * Modifies the tooltips to display them over fields in centered forms.
271
+ * Implement two new filters cpcff_send_confirmation_email and cpcff_send_notification_email (Professional, Developer, and Platinum versions of the plugin).
272
+ * Implements a new data source in the RecordSet DS field to load other forms submissions (Developer and Platinum versions of the plugin).
273
+ * Modifies the WooCommerce add-on (Developer and Platinum versions of the plugin).
274
+
275
+ = 1.1.6 =
276
+
277
+ * Modifies the checkbox and acceptance controls, allowing to configure them as on/off switches.
278
+ * Fixes minor issues with the different predefined templates.
279
+
280
+ = 1.1.5 =
281
+
282
+ * Improves the integration with WP Rocket.
283
+ * Fixes an issue with the calculated fields dependencies when they are edited manually.
284
+
285
+ = 1.1.4 =
286
+
287
+ * Improve the forms builder.
288
+ * Fixes a conflict with WP Rocket.
289
+ * Modifies the Upload Files field.
290
+ * Modifies the send emails process (commercial versions).
291
+
292
  = 1.1.3 =
293
 
294
  * Allows selecting the autocomplete attribute from the fields' settings.
523
 
524
  * Modifies the collapsible behavior in the fieldset fields.
525
  * Includes additional validations in the DS fields (Developer and Platinum versions).
526
+ * Fixes a conflict with the reCAPTCHA styles (Developer and Platinum versions).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config/cpcff_config.cfg.php CHANGED
@@ -23,8 +23,11 @@ define('CP_CALCULATED_FIELDS_SETTINGS_PAGE', 'cp_calculated_fields_form');
23
  define('CP_CALCULATED_FIELDS_SETTINGS_PAGE2', 'cp_calculated_fields_form_sub2');
24
  define('CP_CALCULATED_FIELDS_SETTINGS_PAGE3', 'cp_calculated_fields_form_sub3');
25
 
 
 
 
26
  // Default forms
27
- define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure', '[[{"name":"fieldname2","index":0,"title":"Number","predefined":"5","ftype":"fnumber","userhelp":"","csslayout":"","required":false,"size":"small","min":"","max":"","dformat":"digits","formats":["digits","number"]},{"name":"separator1","index":1,"title":"The field below will show the double of the number above.","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname1","index":2,"title":"Calculated Value","eq":"fieldname2*2","ftype":"fCalculated","userhelp":"","csslayout":"","predefined":"","required":false,"size":"medium","readonly":true}],[{"title":"Calculated Form","description":"Starting form. Basic calculated fields sample. ","formlayout":"top_aligned"}]]');
28
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure1', '[[{"name":"fieldname5","index":0,"title":"Simple Sum of two numbers","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname2","index":1,"title":"First Number","userhelp":"","dformat":"number","min":"","max":"","predefined":"3","ftype":"fnumber","csslayout":"","required":false,"size":"small","formats":["digits","number"]},{"name":"fieldname6","index":2,"title":"Second Number","predefined":"2","ftype":"fnumber","userhelp":"","csslayout":"","required":false,"size":"small","min":"","max":"","dformat":"digits","formats":["digits","number"]},{"name":"fieldname4","index":3,"readonly":true,"title":"Sum","predefined":"","userhelp":"Note: Sum of First Number + Second Number","eq":"fieldname2+fieldname6","ftype":"fCalculated","csslayout":"","required":false,"size":"medium"},{"name":"fieldname7","index":4,"title":"Sum of selected fields","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"choices":["Item A: $10","Item B: $20","Item C: $40"],"choiceSelected":[true,true,false],"name":"fieldname8","index":5,"title":"Select/un-select some items","ftype":"fcheck","userhelp":"","csslayout":"","layout":"one_column","required":false},{"name":"fieldname9","index":6,"title":"Sum of selected items","eq":"fieldname8","ftype":"fCalculated","userhelp":"","csslayout":"","predefined":"","required":false,"size":"medium","readonly":false}],[{"title":"Simple Operations","description":"Below you can test two simple and frequent operations.","formlayout":"top_aligned"}]]');
29
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure2', '[[{"name":"fieldname1","index":0,"title":"Check-in","ftype":"fdate","userhelp":"","csslayout":"","predefined":"","size":"medium","required":false,"dformat":"mm/dd/yyyy","showDropdown":false,"dropdownRange":"-10:+10","formats":["mm/dd/yyyy","dd/mm/yyyy"]},{"name":"fieldname2","index":1,"title":"Check-out","ftype":"fdate","userhelp":"","csslayout":"","predefined":"","size":"medium","required":false,"dformat":"mm/dd/yyyy","showDropdown":false,"dropdownRange":"-10:+10","formats":["mm/dd/yyyy","dd/mm/yyyy"]},{"choices":["Parking - $10","Breakfast - $20","Premium Internet Access - $3"],"choiceSelected":[false,false,false],"name":"fieldname3","index":2,"title":"Optional Services","ftype":"fcheck","userhelp":"","csslayout":"","layout":"one_column","required":false,"choicesVal":["10","20","3"]},{"name":"fieldname4","index":3,"title":"","userhelp":"Note: The cost of the optional services are per each night.","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname5","index":4,"title":"Total Cost","eq":"abs(fieldname2-fieldname1) * (fieldname3+50)","userhelp":"The formula is: (checkout - checkin) * (optionals + base rate)<br />Without the optional services the formula would be: (checkout-checkin) * base rate","ftype":"fCalculated","csslayout":"","predefined":"","required":false,"size":"medium","readonly":false}],[{"title":"Calculation with Dates","description":"The form below gives a quote for a stay in a hotel based in the check-in date, check-out date and some optional services. The base rate used is $50 per night.","formlayout":"top_aligned"}]]');
30
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure3', '[[{"name":"fieldname2","index":0,"title":"Height","userhelp":"In centimeters","dformat":"number","min":"30","max":"250","predefined":"180","ftype":"fnumber","csslayout":"","required":false,"size":"small","formats":["digits","number"]},{"choices":["Male","Female"],"name":"fieldname3","index":1,"choiceSelected":"Male","title":"Sex","ftype":"fdropdown","userhelp":"","csslayout":"","size":"medium","required":false},{"name":"fieldname5","index":2,"title":"Ideal Weight","userhelp":"Formula used:<br />Men: (height - 100)*0.90<br />Woman: (height - 100)*0.85","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname4","index":3,"readonly":true,"title":"Ideal Weight","predefined":"","userhelp":"Note: Based in the above data and formula","eq":"(fieldname2-100)*(fieldname3==\'Male\'?0.90:0.85)","ftype":"fCalculated","csslayout":"","required":false,"size":"medium"}],[{"title":"Ideal Weight Calculator","description":"This sample uses a simple formula but with a conditional rule (if male or female). The conditional expression is built using the JavaScript ternary operator. It\'s basically as follows: <em>condition ? value_if_true : value_if_false</em>.","formlayout":"top_aligned"}]]');
@@ -44,7 +47,7 @@ define('CP_CALCULATEDFIELDSF_DEFAULT_cu_message', "Thank you for your message. W
44
  define('CP_CALCULATEDFIELDSF_DEFAULT_email_format','text');
45
 
46
  // Captcha constants
47
- define('CP_CALCULATEDFIELDSF_DEFAULT_cv_enable_captcha', 'true');
48
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_width', '180');
49
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_height', '60');
50
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_chars', '5');
23
  define('CP_CALCULATED_FIELDS_SETTINGS_PAGE2', 'cp_calculated_fields_form_sub2');
24
  define('CP_CALCULATED_FIELDS_SETTINGS_PAGE3', 'cp_calculated_fields_form_sub3');
25
 
26
+ define('CP_CALCULATEDFIELDSF_DEFAULT_template', get_option('CP_CALCULATEDFIELDSF_DEFAULT_template','cp_cff_13'));
27
+ define('CP_CALCULATEDFIELDSF_DEFAULT_display_submit_button', get_option('CP_CALCULATEDFIELDSF_DEFAULT_display_submit_button',''));
28
+
29
  // Default forms
30
+ define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure', '[[{"name":"fieldname2","index":0,"title":"Number","predefined":"5","ftype":"fnumber","userhelp":"","csslayout":"","required":false,"size":"medium","min":"","max":"","dformat":"digits","formats":["digits","number"]},{"name":"separator1","index":1,"title":"The field below will show the double of the number above.","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname1","index":2,"title":"Calculated Value","eq":"fieldname2*2","ftype":"fCalculated","userhelp":"","csslayout":"","predefined":"","required":false,"size":"medium","readonly":true}],[{"title":"Calculated Form","description":"Starting form. Basic calculated fields sample. ","formlayout":"top_aligned", "formtemplate": "'.esc_js(CP_CALCULATEDFIELDSF_DEFAULT_template).'"}]]');
31
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure1', '[[{"name":"fieldname5","index":0,"title":"Simple Sum of two numbers","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname2","index":1,"title":"First Number","userhelp":"","dformat":"number","min":"","max":"","predefined":"3","ftype":"fnumber","csslayout":"","required":false,"size":"small","formats":["digits","number"]},{"name":"fieldname6","index":2,"title":"Second Number","predefined":"2","ftype":"fnumber","userhelp":"","csslayout":"","required":false,"size":"small","min":"","max":"","dformat":"digits","formats":["digits","number"]},{"name":"fieldname4","index":3,"readonly":true,"title":"Sum","predefined":"","userhelp":"Note: Sum of First Number + Second Number","eq":"fieldname2+fieldname6","ftype":"fCalculated","csslayout":"","required":false,"size":"medium"},{"name":"fieldname7","index":4,"title":"Sum of selected fields","userhelp":"","ftype":"fSectionBreak","csslayout":""},{"choices":["Item A: $10","Item B: $20","Item C: $40"],"choiceSelected":[true,true,false],"name":"fieldname8","index":5,"title":"Select/un-select some items","ftype":"fcheck","userhelp":"","csslayout":"","layout":"one_column","required":false},{"name":"fieldname9","index":6,"title":"Sum of selected items","eq":"fieldname8","ftype":"fCalculated","userhelp":"","csslayout":"","predefined":"","required":false,"size":"medium","readonly":false}],[{"title":"Simple Operations","description":"Below you can test two simple and frequent operations.","formlayout":"top_aligned"}]]');
32
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure2', '[[{"name":"fieldname1","index":0,"title":"Check-in","ftype":"fdate","userhelp":"","csslayout":"","predefined":"","size":"medium","required":false,"dformat":"mm/dd/yyyy","showDropdown":false,"dropdownRange":"-10:+10","formats":["mm/dd/yyyy","dd/mm/yyyy"]},{"name":"fieldname2","index":1,"title":"Check-out","ftype":"fdate","userhelp":"","csslayout":"","predefined":"","size":"medium","required":false,"dformat":"mm/dd/yyyy","showDropdown":false,"dropdownRange":"-10:+10","formats":["mm/dd/yyyy","dd/mm/yyyy"]},{"choices":["Parking - $10","Breakfast - $20","Premium Internet Access - $3"],"choiceSelected":[false,false,false],"name":"fieldname3","index":2,"title":"Optional Services","ftype":"fcheck","userhelp":"","csslayout":"","layout":"one_column","required":false,"choicesVal":["10","20","3"]},{"name":"fieldname4","index":3,"title":"","userhelp":"Note: The cost of the optional services are per each night.","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname5","index":4,"title":"Total Cost","eq":"abs(fieldname2-fieldname1) * (fieldname3+50)","userhelp":"The formula is: (checkout - checkin) * (optionals + base rate)<br />Without the optional services the formula would be: (checkout-checkin) * base rate","ftype":"fCalculated","csslayout":"","predefined":"","required":false,"size":"medium","readonly":false}],[{"title":"Calculation with Dates","description":"The form below gives a quote for a stay in a hotel based in the check-in date, check-out date and some optional services. The base rate used is $50 per night.","formlayout":"top_aligned"}]]');
33
  define('CP_CALCULATEDFIELDSF_DEFAULT_form_structure3', '[[{"name":"fieldname2","index":0,"title":"Height","userhelp":"In centimeters","dformat":"number","min":"30","max":"250","predefined":"180","ftype":"fnumber","csslayout":"","required":false,"size":"small","formats":["digits","number"]},{"choices":["Male","Female"],"name":"fieldname3","index":1,"choiceSelected":"Male","title":"Sex","ftype":"fdropdown","userhelp":"","csslayout":"","size":"medium","required":false},{"name":"fieldname5","index":2,"title":"Ideal Weight","userhelp":"Formula used:<br />Men: (height - 100)*0.90<br />Woman: (height - 100)*0.85","ftype":"fSectionBreak","csslayout":""},{"name":"fieldname4","index":3,"readonly":true,"title":"Ideal Weight","predefined":"","userhelp":"Note: Based in the above data and formula","eq":"(fieldname2-100)*(fieldname3==\'Male\'?0.90:0.85)","ftype":"fCalculated","csslayout":"","required":false,"size":"medium"}],[{"title":"Ideal Weight Calculator","description":"This sample uses a simple formula but with a conditional rule (if male or female). The conditional expression is built using the JavaScript ternary operator. It\'s basically as follows: <em>condition ? value_if_true : value_if_false</em>.","formlayout":"top_aligned"}]]');
47
  define('CP_CALCULATEDFIELDSF_DEFAULT_email_format','text');
48
 
49
  // Captcha constants
50
+ define('CP_CALCULATEDFIELDSF_DEFAULT_cv_enable_captcha', get_option('CP_CALCULATEDFIELDSF_DEFAULT_cv_enable_captcha','true'));
51
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_width', '180');
52
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_height', '60');
53
  define('CP_CALCULATEDFIELDSF_DEFAULT_cv_chars', '5');
cp_calculatedfieldsf_free.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Calculated Fields Form
4
  Plugin URI: https://cff.dwbooster.com
5
  Description: Create forms with field values calculated based in other form field values.
6
- Version: 1.1.3
7
  Text Domain: calculated-fields-form
8
  Author: CodePeople
9
  Author URI: https://cff.dwbooster.com
@@ -16,7 +16,7 @@ if(!defined('WP_DEBUG') || true != WP_DEBUG)
16
  }
17
 
18
  // Defining main constants
19
- define('CP_CALCULATEDFIELDSF_VERSION', '1.1.3' );
20
  define('CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
21
  define('CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
22
  define('CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
@@ -31,6 +31,8 @@ require_once 'config/cpcff_config.cfg.php';
31
  require_once 'inc/cpcff_banner.inc.php';
32
  require_once 'inc/cpcff_main.inc.php';
33
 
 
 
34
  // Global variables
35
  CPCFF_MAIN::instance(); // Main plugin's object
36
 
@@ -64,7 +66,7 @@ function cp_calculated_fields_form_check_posted_data() {
64
 
65
  $cpcff_main = CPCFF_MAIN::instance();
66
 
67
- if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['cp_calculatedfieldsf_post_options'] ) && is_admin() )
68
  {
69
  cp_calculatedfieldsf_save_options();
70
  if(
@@ -100,10 +102,13 @@ function cp_calculatedfieldsf_save_options()
100
  $form_structure_obj = CPCFF_AUXILIARY::json_decode( $_POST[ 'form_structure' ] );
101
  if( !empty( $form_structure_obj ) )
102
  {
 
 
103
  global $cpcff_default_texts_array;
104
  $cpcff_text_array = '';
105
 
106
  $_POST = CPCFF_AUXILIARY::stripcslashes_recursive($_POST);
 
107
  if( isset( $_POST[ 'cpcff_text_array' ] ) ) $_POST['vs_all_texts'] = $_POST[ 'cpcff_text_array' ];
108
 
109
  $cpcff_main = CPCFF_MAIN::instance();
3
  Plugin Name: Calculated Fields Form
4
  Plugin URI: https://cff.dwbooster.com
5
  Description: Create forms with field values calculated based in other form field values.
6
+ Version: 1.1.63
7
  Text Domain: calculated-fields-form
8
  Author: CodePeople
9
  Author URI: https://cff.dwbooster.com
16
  }
17
 
18
  // Defining main constants
19
+ define('CP_CALCULATEDFIELDSF_VERSION', '1.1.63' );
20
  define('CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
21
  define('CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
22
  define('CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
31
  require_once 'inc/cpcff_banner.inc.php';
32
  require_once 'inc/cpcff_main.inc.php';
33
 
34
+ require_once 'inc/cpcff_trial.php';
35
+
36
  // Global variables
37
  CPCFF_MAIN::instance(); // Main plugin's object
38
 
66
 
67
  $cpcff_main = CPCFF_MAIN::instance();
68
 
69
+ if ( isset($_SERVER['REQUEST_METHOD']) && 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['cp_calculatedfieldsf_post_options'] ) && is_admin() )
70
  {
71
  cp_calculatedfieldsf_save_options();
72
  if(
102
  $form_structure_obj = CPCFF_AUXILIARY::json_decode( $_POST[ 'form_structure' ] );
103
  if( !empty( $form_structure_obj ) )
104
  {
105
+ $form_structure_obj = CPCFF_FORM::sanitize_structure($form_structure_obj);
106
+
107
  global $cpcff_default_texts_array;
108
  $cpcff_text_array = '';
109
 
110
  $_POST = CPCFF_AUXILIARY::stripcslashes_recursive($_POST);
111
+ $_POST['form_structure'] = json_encode($form_structure_obj);
112
  if( isset( $_POST[ 'cpcff_text_array' ] ) ) $_POST['vs_all_texts'] = $_POST[ 'cpcff_text_array' ];
113
 
114
  $cpcff_main = CPCFF_MAIN::instance();
css/style.css CHANGED
@@ -1,8 +1,8 @@
1
  .cff-custom-table input{margin-left:5px; margin-right:5px;}
2
  .form-builder{font-size:11px;width:100%;min-width:780px;}
3
  .clearer{clear:both;}
4
- .column{float:left;}
5
- .columnr{float:right;}
6
  .ctrlsColumn{width:380px;z-index:99999;}
7
  .ctrlsColumn.expanded{min-width:380px;width:75%;position:absolute;}
8
  .ctrlsColumn .expand-shrink{float:right;margin:8px 5px 0px 0px;cursor:pointer;}
@@ -14,7 +14,7 @@
14
  .width40{width:40%}
15
  .width30{width:33%}
16
  .padding10{padding:10px;}
17
- .button, .form-builder .button{float:left;margin:5px 15px;}
18
  .button.n span{color:#AED0EA}
19
  .cff-active-column{border:1px solid #0073aa; padding:5px;display:inline-block;}
20
  #fbuilder{height:640px;overflow:auto;position:relative;}
@@ -167,6 +167,7 @@ textarea {resize: none}
167
  .form-builder #sFieldList_chosen .chosen-single span{line-height:30px;}
168
 
169
  .eq_btn{min-width:45px;}
 
170
  .form-builder #sFieldList,
171
  .form-builder #sToolbarList{width: calc( 100% - 50px );width: -webkit-calc( 100% - 50px );width: -moz-calc( 100% - 50px );width: -o-calc( 100% - 50x );}
172
  #sAdvancedEditor,
@@ -198,6 +199,7 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
198
  .ui-state-highlight { height: 65px; line-height: 65px; }
199
 
200
  .cff-revisions-container{float:right;padding:10px;}
 
201
  .cff-form-name-shortcode{font-size:0.8em;}
202
 
203
  .cff-dependency-rule:not(:first-child){margin-top:10px;border-top:1px dashed #888;padding-top:10px;}
@@ -270,7 +272,7 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
270
  .cff-light-modal{display: none; position: fixed; background: transparent; top: 0; bottom: 0; left: 0; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; right: 0; z-index: 99999; transition: background 1s; font-size: 16px; visibility: hidden;}
271
  .cff-light-modal-content{background: transparent; width: 90%; height:90%; position: relative; max-height: 90%; line-height: 1.4; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column;}
272
  .cff-light-modal-body{padding: 0; overflow: hidden; height: 100%;}
273
- .cff-light-modal-close-icon{text-decoration: none; color: #fff; padding: 0; font-size: 18px; line-height: 24px; position: absolute; top: 5px; right: 5px; cursor: pointer;}
274
  .cff-light-modal:target{background: rgba(0, 0, 0, 0.5); display: -ms-flexbox; display: flex; visibility: visible;}
275
  @keyframes cff-basic{0%{opacity: 0;}100%{opacity: 1;}}
276
  .cff-light-modal iframe{width:100%;height:100%;border-radius: .2em; overflow:hidden;}
@@ -284,4 +286,14 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
284
  .cff-editor-container.fullscreen .cff-editor-extend-shrink{-webkit-transform:rotate(180deg);-moz-transform: rotate(180deg);-ms-transform: rotate(180deg);-o-transform: rotate(180deg);transform: rotate(180deg);}
285
 
286
  .cp-blink-me {animation: cp_blinker 2s linear infinite;text-transform: uppercase;}
287
- @keyframes cp_blinker{50% {opacity: 0;}}
 
 
 
 
 
 
 
 
 
 
1
  .cff-custom-table input{margin-left:5px; margin-right:5px;}
2
  .form-builder{font-size:11px;width:100%;min-width:780px;}
3
  .clearer{clear:both;}
4
+ .column{float:left;padding:0;margin:0;}
5
+ .columnr{float:right;margin:0;}
6
  .ctrlsColumn{width:380px;z-index:99999;}
7
  .ctrlsColumn.expanded{min-width:380px;width:75%;position:absolute;}
8
  .ctrlsColumn .expand-shrink{float:right;margin:8px 5px 0px 0px;cursor:pointer;}
14
  .width40{width:40%}
15
  .width30{width:33%}
16
  .padding10{padding:10px;}
17
+ .button, .form-builder .button{float:left;margin:5px 15px;text-align:center;}
18
  .button.n span{color:#AED0EA}
19
  .cff-active-column{border:1px solid #0073aa; padding:5px;display:inline-block;}
20
  #fbuilder{height:640px;overflow:auto;position:relative;}
167
  .form-builder #sFieldList_chosen .chosen-single span{line-height:30px;}
168
 
169
  .eq_btn{min-width:45px;}
170
+ #sEqButtonsContainer .eq_btn{max-width:135px;overflow:hidden;text-overflow:ellipsis;}
171
  .form-builder #sFieldList,
172
  .form-builder #sToolbarList{width: calc( 100% - 50px );width: -webkit-calc( 100% - 50px );width: -moz-calc( 100% - 50px );width: -o-calc( 100% - 50x );}
173
  #sAdvancedEditor,
199
  .ui-state-highlight { height: 65px; line-height: 65px; }
200
 
201
  .cff-revisions-container{float:right;padding:10px;}
202
+ .cff-form-name{display:block !important;}
203
  .cff-form-name-shortcode{font-size:0.8em;}
204
 
205
  .cff-dependency-rule:not(:first-child){margin-top:10px;border-top:1px dashed #888;padding-top:10px;}
272
  .cff-light-modal{display: none; position: fixed; background: transparent; top: 0; bottom: 0; left: 0; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; right: 0; z-index: 99999; transition: background 1s; font-size: 16px; visibility: hidden;}
273
  .cff-light-modal-content{background: transparent; width: 90%; height:90%; position: relative; max-height: 90%; line-height: 1.4; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column;}
274
  .cff-light-modal-body{padding: 0; overflow: hidden; height: 100%;}
275
+ .cff-light-modal-close-icon{text-decoration: none; color: #fff; padding: 0; font-size: 18px; line-height: 24px; position: fixed; top: calc( 5% + 5px ); right: calc( 5% + 10px ); cursor: pointer;display:inline-block;z-index:999999;}
276
  .cff-light-modal:target{background: rgba(0, 0, 0, 0.5); display: -ms-flexbox; display: flex; visibility: visible;}
277
  @keyframes cff-basic{0%{opacity: 0;}100%{opacity: 1;}}
278
  .cff-light-modal iframe{width:100%;height:100%;border-radius: .2em; overflow:hidden;}
286
  .cff-editor-container.fullscreen .cff-editor-extend-shrink{-webkit-transform:rotate(180deg);-moz-transform: rotate(180deg);-ms-transform: rotate(180deg);-o-transform: rotate(180deg);transform: rotate(180deg);}
287
 
288
  .cp-blink-me {animation: cp_blinker 2s linear infinite;text-transform: uppercase;}
289
+ .cff-compatibility-warning {animation: cp_blinker 4s linear infinite;margin-bottom: 20px;font-size:1.3em;}
290
+ @keyframes cp_blinker{50% {opacity: 0;}}
291
+
292
+ /**** Market Place ****/
293
+ .cff-bundles-plugin-list{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;justify-content:space-around;margin:0 -10px 0 -10px;}
294
+ .cff-bundles-plugin-item{border:1px solid #e6e6e6;border-radius:3px;-webkit-box-flex:1;flex:1;margin:1em;min-width:200px;width:30%;}
295
+ .cff-bundles-plugin-item-icon{background:#f7f7f7;-webkit-box-align:center;align-items:center;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;max-width:100%;}
296
+ .cff-bundles-plugin-item-icon img{max-width:100%;}
297
+ .cff-bundles-plugin-item-content{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:justify;justify-content:space-between;padding:10px;}
298
+ .cff-bundles-plugin-item-content h3,
299
+ .cff-bundles-plugin-item-content p{margin-bottom:10px;margin-top:0;}
css/stylepublic.css CHANGED
@@ -1,8 +1,9 @@
1
- #fbuilder .clearer{clear:both;}
2
 
3
  #fbuilder,
4
  #fbuilder *{-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
5
  #fbuilder .fields,#fbuilder .fform{padding:5px 0px;clear:both;}
 
6
  #fbuilder .fform h1,
7
  #fbuilder .fform h2{margin:5px 0px;padding:0px;}
8
 
@@ -15,7 +16,7 @@
15
  #fbuilder p,
16
  #fbuilder a,
17
  #fbuilder label{white-space:normal;}
18
- #fbuilder label{position:relative;}
19
  #fbuilder .cff-help-icon{clear:none;display:inline-block;vertical-align:middle;margin-left:5px;}
20
  #fbuilder .cff-help-icon::before{width:14px;height:14px;display:block !important;content:"i";font-size:12px !important;font-weight:normal !important;line-height:16px;font-family:Sans-Serif !important;color:#fff !important;background: #1d94ff !important;border-radius:25px !important;text-align:center !important;margin-top:-3px;}
21
 
@@ -316,7 +317,7 @@
316
  #fbuilder .medium{width:100% !important;}
317
  }
318
 
319
- #fbuilder .one_column{}
320
  #fbuilder .two_column{float:left;width:48%;}
321
  #fbuilder .three_column{float:left;width:30%;}
322
  #fbuilder .side_by_side{float:left; margin-right:10px;}
@@ -328,12 +329,12 @@
328
 
329
  #fbuilder .dfield{position:relative;}
330
  #fbuilder .top_aligned .fields label{}
331
- #fbuilder .top_aligned .fields .dfield{}
332
 
333
  @media print, screen and (min-width: 640px) {
334
- #fbuilder .left_aligned .fields:not(.section_breaks) label:not(:empty){float:left;width:35%;padding-right:10px;}
335
  #fbuilder .left_aligned .fields label:not(:empty) + .dfield{float:left;width:65%;}
336
- #fbuilder .right_aligned .fields:not(.section_breaks) label:not(:empty){float:left;width:35%;text-align:right;padding-right:10px;}
337
  #fbuilder .right_aligned .fields label:not(:empty) + .dfield{float:left;width:65%;}
338
  }
339
  #fbuilder .right_aligned .fields .dfield label{text-align:left;}
@@ -356,23 +357,29 @@
356
  #fbuilder .right_aligned .comment_area.fields label,
357
  #fbuilder .right_aligned .cff-html-field .dfield{width:100%;clear:both;}
358
 
359
- #fbuilder .cpefb_error,
360
  #fbuilder .cpefb_error+select,
361
  #fbuilder .cpefb_error+select+select,
362
- #fbuilder .cpefb_error+select+select+select{border:1px solid red;color:red !important;}
363
  #fbuilder .top_aligned .fields label.cpefb_error,
364
  #fbuilder .left_aligned .fields label.cpefb_error,
365
- #fbuilder .right_aligned .fields label.cpefb_error{display:block;border:0px;color:#f00;float:none;}
 
366
 
367
- #fbuilder div.cpefb_error{background:#FDF9E5;border:1px solid #f00;opacity:0.9;margin-top:7px;position:relative;padding:0px 5px;z-index:1000;}
368
- #fbuilder div.cpefb_error:after{content:"";position:absolute;background:transparent url("../images/tooltop.gif") no-repeat scroll 10px center;color:red;font-weight:bold;height:8px;width:100%;top:-8px;left:0px;z-index:1000;}
369
 
370
  .ui-datepicker{ z-index:9999 !important;}
371
 
 
372
  #fbuilder span.files-list,
373
- #fbuilder span.uh{display:block;font-size:80%;clear:both;}
374
  #fbuilder span.files-list{padding: 5px 0;}
375
  #fbuilder span.files-list span{display: inline-block;}
 
 
 
 
376
 
377
  #fbuilder .section_break{border-top:1px dotted #555;clear:both;}
378
 
@@ -387,7 +394,7 @@
387
  #fbuilder .pbreak.pb0{display:block;}
388
  #fbuilder .pbPrevious,
389
  #fbuilder .pbNext,
390
- #fbuilder .pbSubmit{background:#ccc;color:#000;display:block;float:left;cursor:pointer;margin:10px 10px 0px 0px;padding:5px 20px;}
391
  #fbuilder .submitbtn-disabled{cursor:not-allowed;opacity:0.5;pointer-events:none;}
392
  *[dir="rtl"] #fbuilder .pbreak .pbPrevious,
393
  *[dir="rtl"] #fbuilder .pbreak .pbNext,
@@ -409,17 +416,35 @@
409
  #fbuilder input[type='checkbox']{width:auto;height:auto;}
410
  #fbuilder input[type='radio']:after,
411
  #fbuilder input[type='checkbox']:after{display:none;}
412
- .ui-tooltip.uh-tooltip{width:250px;font-size:10px;font-weight:normal;padding:5px;z-index:9999 !important;box-shadow:none;background:white;opacity:1;}
413
  .ui-tooltip img{max-width:100%;}
414
  #fbuilder input[type="checkbox"]{-webkit-appearance:checkbox!important;}
415
  #fbuilder input[type="radio"]{-webkit-appearance:radio!important;}
416
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  #fbuilder .slider-type-components::after{clear:both;content:'';display: block;margin-bottom: 15px;}
418
  #fbuilder .slider-type-left-component{width:50%;padding-right:10px;clear:none;float:left;margin-left:-10px;}
419
  #fbuilder .slider-type-right-component{width:50%;padding-left:10px;clear:none;float:right;margin-right:-10px;}
420
  #fbuilder .slider-type-center-component{margin-left:-10px;margin-right:-10px;}
421
  #fbuilder .dfield.slider-container{ padding-left: 10px !important; padding-right: 10px !important; padding-top:5px;}
422
- #fbuilder .dfield .slider{ margin-bottom:5px; }
 
 
423
  #fbuilder .corner-captions{position:relative;}
424
  #fbuilder .corner-captions .left-corner{float:left;}
425
  #fbuilder .corner-captions .right-corner{float:right;}
@@ -431,7 +456,10 @@
431
  #fbuilder .hide-strong{ display:none !important; }
432
  #fbuilder .clear{ clear:both; }
433
 
434
- #fbuilder .apply-coupon{display:inline-block;width:24px;height:24px;background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');cursor:pointer; vertical-align:middle;}
 
 
 
435
 
436
  #fbuilder .discount-container:empty{display:none;}
437
 
@@ -478,4 +506,21 @@
478
  }
479
  @media screen and (device-aspect-ratio: 9/16) {
480
  #fbuilder select,#fbuilder textarea,#fbuilder input[type="text"],#fbuilder input[type="password"],#fbuilder input[type="date"],#fbuilder input[type="number"],#fbuilder input[type="email"],#fbuilder input[type="tel"]{font-size: 16px;}
481
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #fbuilder .clearer{clear:both;display:block;width:100%;}
2
 
3
  #fbuilder,
4
  #fbuilder *{-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
5
  #fbuilder .fields,#fbuilder .fform{padding:5px 0px;clear:both;}
6
+ #fbuilder .fields:not(.cff-container-field){padding:5px;}
7
  #fbuilder .fform h1,
8
  #fbuilder .fform h2{margin:5px 0px;padding:0px;}
9
 
16
  #fbuilder p,
17
  #fbuilder a,
18
  #fbuilder label{white-space:normal;}
19
+ #fbuilder label{position:relative;display:initial;}
20
  #fbuilder .cff-help-icon{clear:none;display:inline-block;vertical-align:middle;margin-left:5px;}
21
  #fbuilder .cff-help-icon::before{width:14px;height:14px;display:block !important;content:"i";font-size:12px !important;font-weight:normal !important;line-height:16px;font-family:Sans-Serif !important;color:#fff !important;background: #1d94ff !important;border-radius:25px !important;text-align:center !important;margin-top:-3px;}
22
 
317
  #fbuilder .medium{width:100% !important;}
318
  }
319
 
320
+ #fbuilder .one_column{width:100%;}
321
  #fbuilder .two_column{float:left;width:48%;}
322
  #fbuilder .three_column{float:left;width:30%;}
323
  #fbuilder .side_by_side{float:left; margin-right:10px;}
329
 
330
  #fbuilder .dfield{position:relative;}
331
  #fbuilder .top_aligned .fields label{}
332
+ #fbuilder .top_aligned .fields .dfield{padding-top:5px;}
333
 
334
  @media print, screen and (min-width: 640px) {
335
+ #fbuilder .left_aligned .fields:not(.section_breaks)>label:not(:empty){float:left;width:35%;padding-right:10px;}
336
  #fbuilder .left_aligned .fields label:not(:empty) + .dfield{float:left;width:65%;}
337
+ #fbuilder .right_aligned .fields:not(.section_breaks)>label:not(:empty){float:left;width:35%;text-align:right;padding-right:10px;}
338
  #fbuilder .right_aligned .fields label:not(:empty) + .dfield{float:left;width:65%;}
339
  }
340
  #fbuilder .right_aligned .fields .dfield label{text-align:left;}
357
  #fbuilder .right_aligned .comment_area.fields label,
358
  #fbuilder .right_aligned .cff-html-field .dfield{width:100%;clear:both;}
359
 
360
+ #fbuilder .cpefb_error:not(input[type="checkbox"]):not(input[type="radio"]),
361
  #fbuilder .cpefb_error+select,
362
  #fbuilder .cpefb_error+select+select,
363
+ #fbuilder .cpefb_error+select+select+select{border: 1px solid #dc3545 !important;}
364
  #fbuilder .top_aligned .fields label.cpefb_error,
365
  #fbuilder .left_aligned .fields label.cpefb_error,
366
+ #fbuilder .right_aligned .fields label.cpefb_error{display:block;border:0px;color:#dc3545;float:none;}
367
+ #fbuilder .cpefb_error::placeholder{color:rgba(255,255,255,.6)}
368
 
369
+ #fbuilder div.cpefb_error{background: #dc3545 !important;color:white !important;padding:5px 10px;border-radius:5px;margin-top:15px;z-index:1000;font-size:12px;font-style:normal;text-shadow:none;}
370
+ #fbuilder div.cpefb_error:after{width: 0;height: 0;border-left: 10px solid transparent;border-right: 10px solid transparent;border-bottom: 10px solid #dc3545 !important;content:"";position:absolute;top:-8px;left:10px;z-index:1000;}
371
 
372
  .ui-datepicker{ z-index:9999 !important;}
373
 
374
+ #fbuilder .cff-file-field input[type="file"]{max-width: calc( 100% - 30px);}
375
  #fbuilder span.files-list,
376
+ #fbuilder span.uh{display:block;font-size:80%;clear:both;width:100%;}
377
  #fbuilder span.files-list{padding: 5px 0;}
378
  #fbuilder span.files-list span{display: inline-block;}
379
+ #fbuilder span.files-list img{padding:2px;border:1px solid rgb(59, 59, 59);}
380
+ #fbuilder .cff-file-clearer{display:inline-block;}
381
+ #fbuilder .cff-file-clearer::before{content:'[X]';cursor:pointer;margin-left:5px;font-family:'century gothic', Arial, Helvetica, sans-serif;}
382
+ #fbuilder .cff-file-clearer:hover{color:#dc3545;}
383
 
384
  #fbuilder .section_break{border-top:1px dotted #555;clear:both;}
385
 
394
  #fbuilder .pbreak.pb0{display:block;}
395
  #fbuilder .pbPrevious,
396
  #fbuilder .pbNext,
397
+ #fbuilder .pbSubmit{background:#ccc;color:#000;display:block;float:left;cursor:pointer;margin:10px 5px 0px 5px;padding:5px 30px;}
398
  #fbuilder .submitbtn-disabled{cursor:not-allowed;opacity:0.5;pointer-events:none;}
399
  *[dir="rtl"] #fbuilder .pbreak .pbPrevious,
400
  *[dir="rtl"] #fbuilder .pbreak .pbNext,
416
  #fbuilder input[type='checkbox']{width:auto;height:auto;}
417
  #fbuilder input[type='radio']:after,
418
  #fbuilder input[type='checkbox']:after{display:none;}
419
+ .ui-tooltip.uh-tooltip{width:auto;max-width:250px;font-size:10px;font-weight:normal;padding:5px 10px;z-index:999999999 !important;box-shadow:none;background:white;opacity:1;}
420
  .ui-tooltip img{max-width:100%;}
421
  #fbuilder input[type="checkbox"]{-webkit-appearance:checkbox!important;}
422
  #fbuilder input[type="radio"]{-webkit-appearance:radio!important;}
423
 
424
+ #fbuilder .cff-date-field input,
425
+ #fbuilder .cff-date-field select{margin-bottom:5px;}
426
+ #fbuilder .cff-date-field .hours-component{margin-right:3px;}
427
+ #fbuilder .cff-date-field .minutes-component{margin-left:3px;}
428
+
429
+ #fbuilder .cff-checkbox-field .dfield,
430
+ #fbuilder .cff-radiobutton-field .dfield{display:flex;flex-wrap: wrap;width:100%;}
431
+ #fbuilder .cff-checkbox-field .dfield label,
432
+ #fbuilder .cff-radiobutton-field .dfield label{display:table;}
433
+ #fbuilder .cff-switch-container input{display:none;}
434
+ #fbuilder .cff-switch-container .dfield label>span:not(.cff-switch){display:table-cell;vertical-align:top;width:100%;min-height: 22px;line-height: 22px;padding-left:5px;}
435
+ #fbuilder .cff-switch{position: relative;display: inline-block;width: 40px;height: 22px;background:#ccc;border-radius:50px;cursor:pointer;}
436
+ #fbuilder .cff-switch:before{content: " ";position:absolute;background:white;border-radius:50px;height:18px;width:18px;top:2px;left:2px;}
437
+ #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#2196F3;}
438
+ #fbuilder .cff-switch-container input:checked+span.cff-switch:before{right:2px !important;left:auto !important}
439
+
440
  #fbuilder .slider-type-components::after{clear:both;content:'';display: block;margin-bottom: 15px;}
441
  #fbuilder .slider-type-left-component{width:50%;padding-right:10px;clear:none;float:left;margin-left:-10px;}
442
  #fbuilder .slider-type-right-component{width:50%;padding-left:10px;clear:none;float:right;margin-right:-10px;}
443
  #fbuilder .slider-type-center-component{margin-left:-10px;margin-right:-10px;}
444
  #fbuilder .dfield.slider-container{ padding-left: 10px !important; padding-right: 10px !important; padding-top:5px;}
445
+ #fbuilder .dfield .slider{ margin-bottom:5px; overflow:visible;}
446
+ #fbuilder .dfield .slider .ui-slider-handle::before,
447
+ #fbuilder .dfield .slider .ui-slider-handle::after{display:none;}
448
  #fbuilder .corner-captions{position:relative;}
449
  #fbuilder .corner-captions .left-corner{float:left;}
450
  #fbuilder .corner-captions .right-corner{float:right;}
456
  #fbuilder .hide-strong{ display:none !important; }
457
  #fbuilder .clear{ clear:both; }
458
 
459
+ @keyframes cff-fade{from{opacity:1.0;} 50%{opacity:0.5;} to{opacity:1.0;}}
460
+ @-webkit-keyframes cff-fade{from{opacity:1.0;} 50%{opacity:0.5;} to{opacity:1.0;}}
461
+ #fbuilder [name="couponcode"]{margin-right:10px;}
462
+ #fbuilder .apply-coupon{animation:cff-fade 2200ms infinite;-webkit-animation:cff-fade 2200ms infinite;display:inline-block;width:24px;height:24px;background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS13aGgiIHdpZHRoPSIxLjAxZW0iIGhlaWdodD0iMWVtIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMTAyNSAxMDI0IiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsiPjxwYXRoIGQ9Ik04OTYuNDI4IDg5NmwxMSA4cS0xMSAxMC0xMSAyNHEwIDEzIDkuNSAyMi41dDIyLjUgOS41aDUzbDE3IDEzcS0zOSA1MS0xMDIgNTFoLTc2OHEtNTMgMC05MC41LTM3LjVULjQyOCA4OTZWMTI4cTAtNTMgMzcuNS05MC41dDkwLjUtMzcuNWg3NjhxNjMgMCAxMDIgNTFsLTE3IDEzaC01M3EtMTMgMC0yMi41IDkuNXQtOS41IDIyLjVxMCAxNCAxMSAyNGwtMTEgOGwxMjggOTZsLTEyOCA5NmwxMjggOTZsLTEyOCA5NmwxMjggOTZsLTEyOCA5NmwxMjggOTZ6bS0zNTIgNjRoNjRxMTMgMCAyMi41LTkuNXQ5LjUtMjIuNXQtOS41LTIyLjV0LTIyLjUtOS41aC02NHEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjV0OS41IDIyLjV0MjIuNSA5LjV6bTE2MC0xOTJxNTMgMCA5MC41LTM3LjV0MzcuNS05MC41dC0zNy41LTkwLjV0LTkwLjUtMzcuNXQtOTAuNSAzNy41dC0zNy41IDkwLjV0MzcuNSA5MC41dDkwLjUgMzcuNXptLTM1MiAxOTJoNjRxMTMgMCAyMi41LTkuNXQ5LjUtMjIuNXQtOS41LTIyLjV0LTIyLjUtOS41aC02NHEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjV0OS41IDIyLjV0MjIuNSA5LjV6bS0xOTIgMGg2NHExMyAwIDIyLjUtOS41dDkuNS0yMi41dC05LjUtMjIuNXQtMjIuNS05LjVoLTY0cS0xMyAwLTIyLjUgOS41dC05LjUgMjIuNXQ5LjUgMjIuNXQyMi41IDkuNXptLTk2LTEyOHEwIDEzIDkuNSAyMi41dDIyLjUgOS41dDIyLjUtOS41dDkuNS0yMi41di02NHEwLTEzLTkuNS0yMi41dC0yMi41LTkuNXQtMjIuNSA5LjV0LTkuNSAyMi41djY0em0wLTE5MnEwIDEzIDkuNSAyMi41dDIyLjUgOS41dDIyLjUtOS41dDkuNS0yMi41di02NHEwLTEzLTkuNS0yMi41dC0yMi41LTkuNXQtMjIuNSA5LjV0LTkuNSAyMi41djY0em0wLTE5MnEwIDEzIDkuNSAyMi41dDIyLjUgOS41dDIyLjUtOS41dDkuNS0yMi41di02NHEwLTEzLTkuNS0yMi41dC0yMi41LTkuNXQtMjIuNSA5LjV0LTkuNSAyMi41djY0em0zMi0yODhxLTEzIDAtMjIuNSA5LjV0LTkuNSAyMi41djY0cTAgMTMgOS41IDIyLjV0MjIuNSA5LjV0MjIuNS05LjV0OS41LTIyLjV2LTY0cTAtMTMtOS41LTIyLjV0LTIyLjUtOS41em0xMjgtOTZoLTY0cS0xMyAwLTIyLjUgOS41dC05LjUgMjIuNXQ5LjUgMjIuNXQyMi41IDkuNWg2NHExMyAwIDIyLjUtOS41dDkuNS0yMi41dC05LjUtMjIuNXQtMjIuNS05LjV6bTE5MiAwaC02NHEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjV0OS41IDIyLjV0MjIuNSA5LjVoNjRxMTMgMCAyMi41LTkuNXQ5LjUtMjIuNXQtOS41LTIyLjV0LTIyLjUtOS41em0tMzIgMTkycS01MyAwLTkwLjUgMzcuNXQtMzcuNSA5MC41dDM3LjUgOTAuNXQ5MC41IDM3LjV0OTAuNS0zNy41dDM3LjUtOTAuNXQtMzcuNS05MC41dC05MC41LTM3LjV6bTIyNC0xOTJoLTY0cS0xMyAwLTIyLjUgOS41dC05LjUgMjIuNXQ5LjUgMjIuNXQyMi41IDkuNWg2NHExMyAwIDIyLjUtOS41dDkuNS0yMi41dC05LjUtMjIuNXQtMjIuNS05LjV6bTgxLjUgMTk2LjVxLTEwLjUtNi41LTIyLjUtMy41dC0xOSAxNWwtMjYwIDQ0OXEtNiAxMS0zIDI0dDE0IDE5LjV0MjMgM3QxOC0xNC41bDI2MS00NTBxNi0xMSAyLjUtMjMuNXQtMTQtMTl6TTgwMC40MjggNjRoLTY0cS0xMyAwLTIyLjUgOS41dC05LjUgMjIuNXQ5LjUgMjIuNXQyMi41IDkuNWg2NHExMyAwIDIyLjUtOS41dDkuNS0yMi41dC05LjUtMjIuNXQtMjIuNS05LjV6bTAgODMyaC02NHEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjV0OS41IDIyLjV0MjIuNSA5LjVoNjRxMTMgMCAyMi41LTkuNXQ5LjUtMjIuNXQtOS41LTIyLjV0LTIyLjUtOS41em0tNDE1LjUtNDQ4cS0yNi41IDAtNDUuNS0xOXQtMTktNDUuNXQxOS00NXQ0NS41LTE4LjV0NDUgMTguNXQxOC41IDQ1dC0xOC41IDQ1LjV0LTQ1IDE5em0zMjAgMTI4cTI2LjUgMCA0NSAxOC41dDE4LjUgNDV0LTE4LjUgNDUuNXQtNDUgMTl0LTQ1LjUtMTl0LTE5LTQ1LjV0MTktNDV0NDUuNS0xOC41eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zdmc+');background-size:cover; background-repeat:no-repeat;cursor:pointer; vertical-align:middle;}
463
 
464
  #fbuilder .discount-container:empty{display:none;}
465
 
506
  }
507
  @media screen and (device-aspect-ratio: 9/16) {
508
  #fbuilder select,#fbuilder textarea,#fbuilder input[type="text"],#fbuilder input[type="password"],#fbuilder input[type="date"],#fbuilder input[type="number"],#fbuilder input[type="email"],#fbuilder input[type="tel"]{font-size: 16px;}
509
+ }
510
+
511
+ /* AUTOCOMPLETE AND GOOGLE PLACE */
512
+ #fbuilder .ui-autocomplete{z-index: 9999 !important;}
513
+ #fbuilder .ui-autocomplete *{font-size:13px;}
514
+ #fbuilder .ui-autocomplete .ui-state-active{background:#525252;border:0;font-weight:normal;}
515
+ .pac-container {z-index: 9999 !important;}
516
+
517
+ #fbuilder .select2-search--inline *{border:0 !important; background:transparent !important;box-shadow:none !important;padding:0 !important;}
518
+ #fbuilder .cff-select2-container{display:block;position:relative;}
519
+ #fbuilder .select2-container{top:0 !important;left:0 !important;}
520
+ #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
521
+ #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
522
+ #fbuilder .select2-dropdown,
523
+ #fbuilder .select2-selection--multiple,
524
+ #fbuilder .select2-selection--single{border-radius:0;border:1px solid rgb(118, 118, 118);}
525
+ #fbuilder .select2-dropdown ul{padding:0;margin:0;}
526
+ #fbuilder .select2-dropdown li{padding:5px; margin:5px;}
inc/cpcff_admin_int.inc.php CHANGED
@@ -14,8 +14,8 @@ check_admin_referer( 'cff-form-settings', '_cpcff_nonce' );
14
  // Load resources
15
  wp_enqueue_media();
16
  if(function_exists('wp_enqueue_code_editor')) wp_enqueue_code_editor( array( 'type' => 'text/html' ) );
17
- wp_enqueue_style('cff-chosen-css', '//cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css');
18
- wp_enqueue_script('cff-chosen-js', '//cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js',array("jquery"));
19
 
20
  if (!defined('CP_CALCULATEDFIELDSF_ID'))
21
  define ('CP_CALCULATEDFIELDSF_ID',intval($_GET["cal"]));
@@ -46,7 +46,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
46
 
47
  ?>
48
  <div class="wrap">
49
- <h1><?php
50
  print __( 'Calculated Fields Form', 'calculated-fields-form' ).' <span class="cff-form-name-shortcode">(<b>'.__('Form', 'calculated-fields-form').' '.CP_CALCULATEDFIELDSF_ID.' - '.$form_obj->get_option( 'form_name', '').'</b>) Shortcode: [CP_CALCULATED_FIELDS id="'.CP_CALCULATEDFIELDSF_ID.'"]</span>';
51
 
52
  if(get_option('CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS', CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS))
@@ -59,9 +59,9 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
59
  ?></h1>
60
  <input type="button" name="backbtn" value="<?php esc_attr_e( 'Back to items list...', 'calculated-fields-form' ); ?>" onclick="document.location='admin.php?page=cp_calculated_fields_form';" class="button-secondary" />
61
  <br /><br />
62
-
63
  <form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder">
64
- <input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" />
65
  <input name="cp_calculatedfieldsf_post_options" type="hidden" value="1" />
66
  <input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" />
67
 
@@ -102,7 +102,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
102
  <p style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;"><span style="font-weight:bold;"><?php _e('If the form is not loading in the public website, go to the settings page of the plugin through the menu option: "Settings/Calculated Fields Form", select the "Classic" option for the attribute: "Script load method", and press the "Update" button.','calculated-fields-form'); ?></span><br /><?php _e( 'If you need also the form to be sent to the server side for processing (for example to deliver emails) then the <a href="https://cff.dwbooster.com/download" target="_blank">Commercial versions</a> of the plugin are required.', 'calculated-fields-form' ); ?></p>
103
  <input type="hidden" name="form_structure" id="form_structure" value="<?php print esc_attr(preg_replace('/&quot;/i', '&amp;quot;', json_encode($form_obj->get_option( 'form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure )))); ?>" />
104
  <input type="hidden" name="templates" id="templates" value="<?php print esc_attr( json_encode( CPCFF_TEMPLATES::load_templates() ) ); ?>" />
105
- <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/themes/cupertino/jquery-ui.min.css" type="text/css" rel="stylesheet" property="stylesheet" />
106
  <pre style="display:none;">
107
  <script type="text/javascript">
108
  try
@@ -118,7 +118,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
118
  result = window.confirm('<?php print esc_js(__('The action will load the revision selected, the data are not stored will be lose. Do you want continue?', 'calculated-fields-form'));?>');
119
  if(result)
120
  {
121
- $calculatedfieldsfQuery('<form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder"><input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" /><input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" /><input type="hidden" name="cpcff_revision_to_apply" value="'+revision+'"></form>').appendTo('body').submit();
122
  }
123
  }
124
  }
@@ -242,7 +242,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
242
  // Display all other text fields
243
  foreach( $cpcff_texts_array as $cpcff_text_index => $cpcff_text_attr )
244
  {
245
- if( $cpcff_text_index !== 'errors' )
246
  {
247
  print '
248
  <tr valign="top">
@@ -305,12 +305,15 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
305
  {
306
  foreach( $cpcff_texts_array[ 'errors' ] as $cpcff_text_index => $cpcff_text_attr )
307
  {
308
- print '
309
- <tr valign="top">
310
- <th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
311
- <td><input type="text" name="cpcff_text_array[errors]['.$cpcff_text_index.'][text]" class="width75" value="'. esc_attr( $cpcff_text_attr[ 'text' ] ).'" /></td>
312
- </tr>
313
- ';
 
 
 
314
  }
315
  }
316
  ?>
@@ -335,10 +338,21 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
335
 
336
  [<a href="https://cff.dwbooster.com/customization" target="_blank"><?php _e( 'Request Custom Modifications', 'calculated-fields-form' ); ?></a>] | [<a href="https://wordpress.org/support/plugin/calculated-fields-form#new-post" target="_blank"><?php _e( 'Help', 'calculated-fields-form' ); ?></a>]
337
 
338
- <br /><br /><br />
339
-
340
- <h3><?php _e( 'The following settings are available only in the <a href="https://cff.dwbooster.com/download" target="_blank">Commercial versions</a>', 'calculated-fields-form' ); ?>:</h3>
341
-
 
 
 
 
 
 
 
 
 
 
 
342
  <h2><?php _e( 'Form Processing and Payment Settings', 'calculated-fields-form' ); ?>:</h2>
343
  <hr />
344
 
14
  // Load resources
15
  wp_enqueue_media();
16
  if(function_exists('wp_enqueue_code_editor')) wp_enqueue_code_editor( array( 'type' => 'text/html' ) );
17
+ wp_enqueue_style('cff-chosen-css', plugins_url('/vendors/chosen/chosen.min.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
18
+ wp_enqueue_script('cff-chosen-js', plugins_url('/vendors/chosen/chosen.jquery.min.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH),array("jquery"));
19
 
20
  if (!defined('CP_CALCULATEDFIELDSF_ID'))
21
  define ('CP_CALCULATEDFIELDSF_ID',intval($_GET["cal"]));
46
 
47
  ?>
48
  <div class="wrap">
49
+ <h1 class="cff-form-name"><?php
50
  print __( 'Calculated Fields Form', 'calculated-fields-form' ).' <span class="cff-form-name-shortcode">(<b>'.__('Form', 'calculated-fields-form').' '.CP_CALCULATEDFIELDSF_ID.' - '.$form_obj->get_option( 'form_name', '').'</b>) Shortcode: [CP_CALCULATED_FIELDS id="'.CP_CALCULATEDFIELDSF_ID.'"]</span>';
51
 
52
  if(get_option('CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS', CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS))
59
  ?></h1>
60
  <input type="button" name="backbtn" value="<?php esc_attr_e( 'Back to items list...', 'calculated-fields-form' ); ?>" onclick="document.location='admin.php?page=cp_calculated_fields_form';" class="button-secondary" />
61
  <br /><br />
62
+ <?php $_cpcff_nonce = wp_create_nonce( 'cff-form-settings' );?>
63
  <form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder">
64
+ <input type="hidden" name="_cpcff_nonce" value="<?php echo $_cpcff_nonce; ?>" />
65
  <input name="cp_calculatedfieldsf_post_options" type="hidden" value="1" />
66
  <input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" />
67
 
102
  <p style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;"><span style="font-weight:bold;"><?php _e('If the form is not loading in the public website, go to the settings page of the plugin through the menu option: "Settings/Calculated Fields Form", select the "Classic" option for the attribute: "Script load method", and press the "Update" button.','calculated-fields-form'); ?></span><br /><?php _e( 'If you need also the form to be sent to the server side for processing (for example to deliver emails) then the <a href="https://cff.dwbooster.com/download" target="_blank">Commercial versions</a> of the plugin are required.', 'calculated-fields-form' ); ?></p>
103
  <input type="hidden" name="form_structure" id="form_structure" value="<?php print esc_attr(preg_replace('/&quot;/i', '&amp;quot;', json_encode($form_obj->get_option( 'form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure )))); ?>" />
104
  <input type="hidden" name="templates" id="templates" value="<?php print esc_attr( json_encode( CPCFF_TEMPLATES::load_templates() ) ); ?>" />
105
+ <link href="<?php print esc_attr(plugins_url('/vendors/jquery-ui/jquery-ui.min.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH)); ?>" type="text/css" rel="stylesheet" property="stylesheet" />
106
  <pre style="display:none;">
107
  <script type="text/javascript">
108
  try
118
  result = window.confirm('<?php print esc_js(__('The action will load the revision selected, the data are not stored will be lose. Do you want continue?', 'calculated-fields-form'));?>');
119
  if(result)
120
  {
121
+ $calculatedfieldsfQuery('<form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder"><input type="hidden" name="_cpcff_nonce" value="<?php echo $_cpcff_nonce; ?>" /><input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" /><input type="hidden" name="cpcff_revision_to_apply" value="'+revision+'"></form>').appendTo('body').submit();
122
  }
123
  }
124
  }
242
  // Display all other text fields
243
  foreach( $cpcff_texts_array as $cpcff_text_index => $cpcff_text_attr )
244
  {
245
+ if( $cpcff_text_index !== 'errors' && isset($cpcff_text_attr[ 'label' ]) )
246
  {
247
  print '
248
  <tr valign="top">
305
  {
306
  foreach( $cpcff_texts_array[ 'errors' ] as $cpcff_text_index => $cpcff_text_attr )
307
  {
308
+ if(isset($cpcff_text_attr[ 'label' ]))
309
+ {
310
+ print '
311
+ <tr valign="top">
312
+ <th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
313
+ <td><input type="text" name="cpcff_text_array[errors]['.$cpcff_text_index.'][text]" class="width75" value="'. esc_attr( $cpcff_text_attr[ 'text' ] ).'" /></td>
314
+ </tr>
315
+ ';
316
+ }
317
  }
318
  }
319
  ?>
338
 
339
  [<a href="https://cff.dwbooster.com/customization" target="_blank"><?php _e( 'Request Custom Modifications', 'calculated-fields-form' ); ?></a>] | [<a href="https://wordpress.org/support/plugin/calculated-fields-form#new-post" target="_blank"><?php _e( 'Help', 'calculated-fields-form' ); ?></a>]
340
 
341
+ <br /><br /><br />
342
+ <style>@media screen and (min-width:710px){.cff-plugin-promote{width: calc( 100% - 180px );}} @media screen and (max-width:710px){.cff-plugin-logo-promote{display:none;}}</style>
343
+ <div id="cff-upgrade-frame" style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;color:#3c434a;">
344
+ <a href="https://cff.dwbooster.com/download" target="_blank" style="text-decoration:none;float:left;" class="cff-plugin-logo-promote"><img src="https://ps.w.org/calculated-fields-form/assets/icon-256x256.jpg" style="width:160px;border:2px solid white;margin-right:10px;margin-bottom:10px;"></a>
345
+ <div style="float:left;" class="cff-plugin-promote">
346
+ <div style="font-weight:500;font-size:20px;line-height:28px;"><?php _e( 'The following features are available in the commercial version of the <a href="https://cff.dwbooster.com/download" target="_blank" style="text-decoration:none;">"Calculated Fields Form"</a>', 'calculated-fields-form' ); ?></div>
347
+ <div style="text-transform: uppercase; font-weight:700; font-size:24px;margin-top:15px;margin-bottom:15px;line-height:28px;"><a href="https://cff.dwbooster.com/download" target="_blank" style="text-decoration:none;color:#3c434a;text-shadow:1px 1px 2px white;"><?php _e( 'Pay only ONCE, use it FOREVER', 'calculated-fields-form' ); ?></a></div>
348
+ <div style="font-size:18px; font-weight:400;line-height:28px;">No additional charges, <span style="background:white;display:inline-block;padding:0 5px;"><a href="https://cff.dwbooster.com/terms" target="_blank" style="text-decoration:none;">lifetime updates</a></span>, one copy for all your websites.</div>
349
+ <div style="font-size:16px; font-weight:400; font-style: italic;">And you get notification emails, payment gateways integration, data and forms exportation, advanced operations and more...</div>
350
+ <?php
351
+ print get_option('cff-t-t', '<div style="text-align:right; font-size:16px; font-weight:600;margin-top:15px;">To test some of the commercial features of the "Calculated Fields Form" plugin, you can <a class="button-primary" href="admin.php?page=cp_calculated_fields_form&cal='.CP_CALCULATEDFIELDSF_ID.'&_cpcff_nonce='.$_cpcff_nonce.'&cff-install-trial=1#cff-upgrade-frame">install the trial version</a></div>');
352
+ ?>
353
+ </div>
354
+ <div style="clear:both;"></div>
355
+ </div>
356
  <h2><?php _e( 'Form Processing and Payment Settings', 'calculated-fields-form' ); ?>:</h2>
357
  <hr />
358
 
inc/cpcff_admin_int_list.inc.php CHANGED
@@ -19,6 +19,40 @@ if(isset($_GET['orderby']))
19
  update_option('CP_CALCULATEDFIELDSF_FORMS_LIST_ORDERBY', $_GET['orderby'] == 'form_name' ? 'form_name' : 'id');
20
  }
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  if (isset($_GET['a']) && $_GET['a'] == '1')
23
  {
24
  check_admin_referer( 'cff-add-form', '_cpcff_nonce' );
@@ -97,6 +131,16 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
97
 
98
  ?>
99
  <div class="wrap">
 
 
 
 
 
 
 
 
 
 
100
  <h1><?php _e( 'Calculated Fields Form', 'calculated-fields-form' ); ?></h1>
101
 
102
  <script type="text/javascript">
@@ -143,7 +187,7 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
143
 
144
  function cp_deleteItem(id)
145
  {
146
- if (confirm('<?php _e( 'Are you sure that you want to delete this item?', 'calculated-fields-form' ); ?>'))
147
  {
148
  document.location = 'admin.php?page=cp_calculated_fields_form&d='+id+'&r='+Math.random()+'&_cpcff_nonce=<?php echo wp_create_nonce( 'cff-delete-form' ); ?>';
149
  }
@@ -151,7 +195,7 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
151
 
152
  function cp_updateConfig()
153
  {
154
- if (confirm('<?php _e( 'Are you sure that you want to update these settings?', 'calculated-fields-form' ); ?>'))
155
  {
156
  var scr = document.getElementById("ccscriptload").value,
157
  chs = document.getElementById("cccharsets").value,
@@ -164,109 +208,173 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
164
  document.location = 'admin.php?page=cp_calculated_fields_form&ecr='+ecr+'&ac=st&scr='+scr+'&chs='+chs+'&jsc='+jsc+'&optm='+optm+'&df='+df+'&amp='+amp+'&r='+Math.random()+'&_cpcff_nonce=<?php echo wp_create_nonce( 'cff-update-general-settings' ); ?>';
165
  }
166
  }
167
- </script>
168
- <div id="normal-sortables" class="meta-box-sortables">
169
- <div id="metabox_basic_settings" class="postbox" >
170
- <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Form List / Items List', 'calculated-fields-form' ); ?></span></h3>
171
- <div class="inside" style="overflow-x:auto;">
172
- <table cellspacing="10" class="cff-custom-table cff-forms-list">
173
- <thead>
174
- <tr>
175
- <th align="left"><a href="?page=cp_calculated_fields_form&orderby=id" <?php if($orderby == 'id') print 'class="cff-active-column"'; ?>><?php _e( 'ID', 'calculated-fields-form' ); ?></a></th><th align="left"><a href="?page=cp_calculated_fields_form&orderby=form_name" <?php if($orderby == 'form_name') print 'class="cff-active-column"'; ?>><?php _e( 'Form Name', 'calculated-fields-form' ); ?></a></th><th align="center"><?php _e( 'Options', 'calculated-fields-form' ); ?></th><th align="left"><?php _e( 'Shortcode', 'calculated-fields-form' ); ?></th>
176
- </tr>
177
- </thead>
178
- <tbody>
179
- <?php
180
- $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE." ORDER BY ".$orderby." ASC" );
181
- foreach ($myrows as $item)
182
- {
183
- ?>
184
- <tr>
185
- <td nowrap><?php echo $item->id; ?></td>
186
- <td nowrap><input type="text" name="calname_<?php echo $item->id; ?>" id="calname_<?php echo $item->id; ?>" value="<?php echo esc_attr($item->form_name); ?>" /></td>
187
 
188
- <td nowrap>
189
- <input type="button" name="calupdate_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Update', 'calculated-fields-form' ); ?>" onclick="cp_updateItem(<?php echo $item->id; ?>);" class="button-secondary" />
190
- <input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Settings', 'calculated-fields-form' ); ?>" onclick="cp_manageSettings(<?php echo $item->id; ?>);" class="button-primary" />
191
- <input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Messages', 'calculated-fields-form' ); ?>" onclick="cp_viewMessages(<?php echo $item->id; ?>);" class="button-secondary" />
192
- <input type="button" name="calclone_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Clone', 'calculated-fields-form' ); ?>" onclick="cp_cloneItem(<?php echo $item->id; ?>);" class="button-secondary" />
193
- <input type="button" name="caldelete_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Delete', 'calculated-fields-form' ); ?>" onclick="cp_deleteItem(<?php echo $item->id; ?>);" class="button-secondary" />
194
- </td>
195
- <td nowrap>[CP_CALCULATED_FIELDS id="<?php echo $item->id; ?>"]</td>
196
- </tr>
197
- <?php
198
- }
199
- ?>
200
- </tbody>
201
- </table>
202
- </div>
203
- </div>
204
-
205
- <div id="metabox_basic_settings" class="postbox" >
206
- <h3 class='hndle' style="padding:5px;"><span><?php _e( 'New Form', 'calculated-fields-form' ); ?></span></h3>
207
- <div class="inside">
208
 
209
- <form name="additem">
210
- <?php _e( 'Item Name', 'calculated-fields-form' ); ?>:<br />
211
- <input type="text" name="cp_itemname" id="cp_itemname" value="" onkeyup="cp_addItem_keyup( event );" class="width50" /> <input type="button" onclick="cp_addItem();" name="gobtn" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" class="button-secondary" />
212
- <br /><br />
213
- </form>
214
- </div>
215
- </div>
216
- <div style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;margin:10px 0;font-size:1.3em;">
217
- <div><?php _e('For additional resources visit the plugin\'s', 'calculated-fields-form')?> <a href="https://cff-bundles.dwbooster.com" target="_blank" style="font-weight:bold;"><?php _e('Marketplace', 'calculated-fields-form'); ?></a></div>
218
- <div class="cff-bundles-plugin"></div>
219
- <script src="https://cff-bundles.dwbooster.com/plugins/plugins.js?v=<?php print CP_CALCULATEDFIELDSF_VERSION; ?>"></script>
220
- </div>
221
- <div id="metabox_basic_settings" class="postbox" >
222
- <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Troubleshoot Area & General Settings', 'calculated-fields-form' ); ?></span></h3>
223
- <div class="inside">
224
- <?php
225
- $compatibility_warnings = $cpcff_main->compatibility_warnings();
226
- if(!empty($compatibility_warnings))
227
- {
228
- print '<div style="margin:10px 0; border:1px dashed #FF0000; padding:10px; color:red;">'.$compatibility_warnings.'</div>';
229
- }
230
- ?>
231
- <form name="updatesettings">
232
- <div style="border:1px solid #DADADA; padding:10px;">
233
- <p><?php _e( '<strong>Important!</strong>: Use this area <strong>only</strong> if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.', 'calculated-fields-form' ); ?></p>
234
- <?php _e( 'Script load method', 'calculated-fields-form' ); ?>:<br />
235
- <select id="ccscriptload" name="ccscriptload" class="width50">
236
- <option value="0" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") == "1") echo 'selected'; ?>><?php _e( 'Classic (Recommended)', 'calculated-fields-form' ); ?></option>
237
- <option value="1" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") != "1") echo 'selected'; ?>><?php _e( 'Direct', 'calculated-fields-form' ); ?></option>
238
- </select><br />
239
- <em><?php _e( '* Change the script load method if the form doesn\'t appear in the public website.', 'calculated-fields-form' ); ?></em>
240
- <br /><br />
241
- <?php _e( 'Character encoding', 'calculated-fields-form' ); ?>:<br />
242
- <select id="cccharsets" name="cccharsets" class="width50">
243
- <option value=""><?php _e( 'Keep current charset (Recommended)', 'calculated-fields-form' ); ?></option>
244
- <option value="utf8_general_ci">UTF-8 (<?php _e( 'try this first', 'calculated-fields-form' ); ?>)</option>
245
- <option value="utf8mb4_general_ci">UTF-8mb4 (<?php _e( 'Only from MySQL 5.5', 'calculated-fields-form' ); ?>)</option>
246
- <option value="latin1_swedish_ci">latin1_swedish_ci</option>
247
- </select><br />
248
- <em><?php _e( '* Update the charset if you are getting problems displaying special/non-latin characters. After updated you need to edit the special characters again.', 'calculated-fields-form' ); ?></em>
249
- <br /><br />
250
- <?php _e( "There is active an optimization plugin in WordPress", 'calculated-fields-form' ); ?>:<br />
251
- <input type="checkbox" id="ccoptimizationplugin" name="ccoptimizationplugin" value="1" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN ) ) ? 'CHECKED' : ''; ?> /><em><?php _e('* Tick the checkbox if there is an optimization plugin active on the website, and the forms are not visible.', 'calculated-fields-form'); ?></em>
252
- </div>
253
- <br />
254
- <input type="checkbox" name="ccjscache" id="ccjscache" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Activate Javascript Cache', 'calculated-fields-form' ); ?>
255
- <br /><br />
256
- <input type="checkbox" name="ccdirectform" id="ccdirectform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS', CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms directly', 'calculated-fields-form' ); ?>
257
- <br /><br />
258
- <input type="checkbox" name="ccampform" id="ccampform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_AMP', CP_CALCULATEDFIELDSF_AMP ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms from amp pages', 'calculated-fields-form' ); ?>
259
- <br /><br />
260
- <input type="checkbox" name="ccexcludecrawler" id="ccexcludecrawler" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_EXCLUDE_CRAWLERS', false ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Do not load the forms with crawlers', 'calculated-fields-form' ); ?>
261
- <br /><i><?php _e( '* The forms are not loaded when website is being indexed by searchers.', 'calculated-fields-form' ); ?></i>
262
- <br /><br />
263
- <input type="button" onclick="cp_updateConfig();" name="gobtn" value="<?php esc_attr_e( 'UPDATE', 'calculated-fields-form' ); ?>" class="button-secondary" />
264
- <br />
265
- </form>
266
 
267
- </div>
268
- </div>
269
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
  [<a href="https://cff.dwbooster.com/customization" target="_blank"><?php _e( 'Request Custom Modifications', 'calculated-fields-form' ); ?></a>] | [<a href="https://cff.dwbooster.com/download" target="_blank"><?php _e( 'Upgrade', 'calculated-fields-form' ); ?></a>] | [<a href="https://wordpress.org/support/plugin/calculated-fields-form#new-post" target="_blank"><?php _e( 'Help', 'calculated-fields-form' ); ?></a>]
271
- </form>
272
- </div>
 
19
  update_option('CP_CALCULATEDFIELDSF_FORMS_LIST_ORDERBY', $_GET['orderby'] == 'form_name' ? 'form_name' : 'id');
20
  }
21
 
22
+ $cp_default_template = CP_CALCULATEDFIELDSF_DEFAULT_template;
23
+
24
+ if( isset($_REQUEST['cp_default_template']) )
25
+ {
26
+ check_admin_referer( 'cff-default-settings', '_cpcff_nonce' );
27
+
28
+ $cp_default_template = sanitize_text_field($_REQUEST['cp_default_template']);
29
+
30
+ // Update default settings
31
+ update_option('CP_CALCULATEDFIELDSF_DEFAULT_template', $cp_default_template);
32
+
33
+ if(isset($_REQUEST['cp_default_existing_forms']))
34
+ {
35
+ $myrows = $wpdb->get_results( "SELECT id,form_structure,enable_submit,cv_enable_captcha FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE);
36
+ foreach ($myrows as $item)
37
+ {
38
+ $form_structure = preg_replace('/"formtemplate"\s*\:\s*"[^"]*"/', '"formtemplate":"'.esc_js($cp_default_template).'"', $item->form_structure);
39
+
40
+ $wpdb->update(
41
+ $wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE,
42
+ array(
43
+ 'form_structure' => $form_structure
44
+ ),
45
+ array(
46
+ 'id' => $item->id
47
+ ),
48
+ array('%s'),
49
+ array('%d')
50
+ );
51
+ }
52
+ }
53
+ $message = __( "Default settings updated", 'calculated-fields-form' );;
54
+ }
55
+
56
  if (isset($_GET['a']) && $_GET['a'] == '1')
57
  {
58
  check_admin_referer( 'cff-add-form', '_cpcff_nonce' );
131
 
132
  ?>
133
  <div class="wrap">
134
+ <?php
135
+ if(get_option('cff-t-f', 0)):
136
+ ?>
137
+ <div style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;margin:10px 0;font-size:1.3em;">
138
+ <?php print get_option('cff-t-t', '');?>
139
+ </div>
140
+ <?php
141
+ delete_option('cff-t-f');
142
+ endif;
143
+ ?>
144
  <h1><?php _e( 'Calculated Fields Form', 'calculated-fields-form' ); ?></h1>
145
 
146
  <script type="text/javascript">
187
 
188
  function cp_deleteItem(id)
189
  {
190
+ if (confirm('<?php _e( 'Are you sure you want to delete this item?', 'calculated-fields-form' ); ?>'))
191
  {
192
  document.location = 'admin.php?page=cp_calculated_fields_form&d='+id+'&r='+Math.random()+'&_cpcff_nonce=<?php echo wp_create_nonce( 'cff-delete-form' ); ?>';
193
  }
195
 
196
  function cp_updateConfig()
197
  {
198
+ if (confirm('<?php _e( 'Are you sure you want to update these settings?', 'calculated-fields-form' ); ?>'))
199
  {
200
  var scr = document.getElementById("ccscriptload").value,
201
  chs = document.getElementById("cccharsets").value,
208
  document.location = 'admin.php?page=cp_calculated_fields_form&ecr='+ecr+'&ac=st&scr='+scr+'&chs='+chs+'&jsc='+jsc+'&optm='+optm+'&df='+df+'&amp='+amp+'&r='+Math.random()+'&_cpcff_nonce=<?php echo wp_create_nonce( 'cff-update-general-settings' ); ?>';
209
  }
210
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
 
212
+ function cp_select_template()
213
+ {
214
+ jQuery('.cp_template_info').hide();
215
+ jQuery('.cp_template_'+jQuery('#cp_default_template').val()).show();
216
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
 
218
+ function cp_update_default_settings(e)
219
+ {
220
+ if(jQuery('[name="cp_default_existing_forms"]').prop('checked'))
221
+ {
222
+ if (confirm('<?php _e( 'Are you sure you want to modify existing forms?\\nWe recommend modifying the forms one by one.', 'calculated-fields-form' ); ?>'))
223
+ {
224
+ e.form.submit();
225
+ }
226
+ }
227
+ else e.form.submit();
228
+ }
229
+ </script>
230
+ <h2 class="nav-tab-wrapper">
231
+ <a href="admin.php?page=cp_calculated_fields_form&cff-tab=forms" class="nav-tab <?php if(empty($_GET['cff-tab']) || $_GET['cff-tab'] == 'forms' ) print 'nav-tab-active'; ?>"><?php _e('Forms and Settings', 'calculated-fields-form'); ?></a>
232
+ <a href="admin.php?page=cp_calculated_fields_form&cff-tab=marketplace" class="nav-tab <?php if(!empty($_GET['cff-tab']) && $_GET['cff-tab'] == 'marketplace' ) print 'nav-tab-active'; ?>"><?php _e('Marketplace', 'calculated-fields-form'); ?></a>
233
+ </h2>
234
+ <div style="margin-top:20px;display:<?php print (empty($_GET['cff-tab']) || $_GET['cff-tab'] == 'forms' ) ? 'block' : 'none'; ?>;"><!-- Forms & Settings Section -->
235
+ <div id="normal-sortables" class="meta-box-sortables">
236
+ <div id="metabox_basic_settings" class="postbox" >
237
+ <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Form List / Items List', 'calculated-fields-form' ); ?></span></h3>
238
+ <div class="inside" style="overflow-x:auto;">
239
+ <table cellspacing="10" class="cff-custom-table cff-forms-list">
240
+ <thead>
241
+ <tr>
242
+ <th align="left"><a href="?page=cp_calculated_fields_form&orderby=id" <?php if($orderby == 'id') print 'class="cff-active-column"'; ?>><?php _e( 'ID', 'calculated-fields-form' ); ?></a></th><th align="left"><a href="?page=cp_calculated_fields_form&orderby=form_name" <?php if($orderby == 'form_name') print 'class="cff-active-column"'; ?>><?php _e( 'Form Name', 'calculated-fields-form' ); ?></a></th><th align="center"><?php _e( 'Options', 'calculated-fields-form' ); ?></th><th align="left"><?php _e( 'Shortcode', 'calculated-fields-form' ); ?></th>
243
+ </tr>
244
+ </thead>
245
+ <tbody>
246
+ <?php
247
+ $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE." ORDER BY ".$orderby." ASC" );
248
+ foreach ($myrows as $item)
249
+ {
250
+ ?>
251
+ <tr>
252
+ <td nowrap><?php echo $item->id; ?></td>
253
+ <td nowrap><input type="text" name="calname_<?php echo $item->id; ?>" id="calname_<?php echo $item->id; ?>" value="<?php echo esc_attr($item->form_name); ?>" /></td>
254
+ <td nowrap>
255
+ <input type="button" name="calupdate_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Update', 'calculated-fields-form' ); ?>" onclick="cp_updateItem(<?php echo $item->id; ?>);" class="button-secondary" />
256
+ <input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Settings', 'calculated-fields-form' ); ?>" onclick="cp_manageSettings(<?php echo $item->id; ?>);" class="button-primary" />
257
+ <input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Messages', 'calculated-fields-form' ); ?>" onclick="cp_viewMessages(<?php echo $item->id; ?>);" class="button-secondary" />
258
+ <input type="button" name="calclone_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Clone', 'calculated-fields-form' ); ?>" onclick="cp_cloneItem(<?php echo $item->id; ?>);" class="button-secondary" />
259
+ <input type="button" name="caldelete_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Delete', 'calculated-fields-form' ); ?>" onclick="cp_deleteItem(<?php echo $item->id; ?>);" class="button-secondary" />
260
+ </td>
261
+ <td nowrap>[CP_CALCULATED_FIELDS id="<?php echo $item->id; ?>"]</td>
262
+ </tr>
263
+ <?php
264
+ }
265
+ ?>
266
+ </tbody>
267
+ </table>
268
+ </div>
269
+ </div>
 
 
 
 
 
270
 
271
+ <div id="metabox_basic_settings" class="postbox" >
272
+ <h3 class='hndle' style="padding:5px;"><span><?php _e( 'New Form', 'calculated-fields-form' ); ?></span></h3>
273
+ <div class="inside">
274
+ <form name="additem">
275
+ <?php _e( 'Item Name', 'calculated-fields-form' ); ?>:<br />
276
+ <input type="text" name="cp_itemname" id="cp_itemname" value="" onkeyup="cp_addItem_keyup( event );" class="width50" /> <input type="button" onclick="cp_addItem();" name="gobtn" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" class="button-secondary" />
277
+ <br /><br />
278
+ </form>
279
+ </div>
280
+ </div>
281
+ <i id="default-settings-section"></i>
282
+ <div id="metabox_basic_settings" class="postbox" >
283
+ <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Default Settings', 'calculated-fields-form' ); ?></span></h3>
284
+ <div class="inside">
285
+ <p><?php _e('Applies the default settings to new forms.', 'calculated-fields-form'); ?></p>
286
+ <form name="defaultsettings" action="admin.php?page=cp_calculated_fields_form" method="post">
287
+ <?php _e( 'Default Template', 'calculated-fields-form' ); ?>:<br />
288
+ <?php
289
+ require_once CP_CALCULATEDFIELDSF_BASE_PATH.'/inc/cpcff_templates.inc.php';
290
+ $templates_list = CPCFF_TEMPLATES::load_templates();
291
+ $template_options = '<option value="">Use default template</option>';
292
+ $template_information = '';
293
+ foreach($templates_list as $template_item)
294
+ {
295
+ $template_options .= '<option value="'.esc_attr($template_item['prefix']).'" '.($template_item['prefix'] == $cp_default_template ? 'SELECTED' : '').'>'.esc_html($template_item['title']).'</option>';
296
+ $template_information .= '<div class="width50 cp_template_info cp_template_'.esc_attr($template_item['prefix']).'" style="text-align:center;padding:10px 0; display:'.($template_item['prefix'] == $cp_default_template ? 'block' : 'none').'; margin:10px 0; border: 1px dashed #CCC;">'.(!empty($template_item['thumbnail']) ? '<img src="'.esc_attr($template_item['thumbnail']).'"><br>' : '').(!empty($template_item['description']) ? esc_html($template_item['description']) : '').'</div>';
297
+ }
298
+ ?>
299
+ <select name="cp_default_template" id="cp_default_template"class="width50" onchange="cp_select_template();"><?php print $template_options; ?></select><br />
300
+ <?php print $template_information; ?>
301
+ <br /><br />
302
+ <div style="border:1px solid #DADADA; padding:10px;" class="width50">
303
+ <input type="checkbox" aria-label="<?php esc_attr_e('Apply To Existing Forms', 'calculated-fields-form'); ?>" name="cp_default_existing_forms" /> <?php _e( 'Apply To Existing Forms', 'calculated-fields-form' ); ?> (<i><?php _e('It will modify the settings of existing forms', 'calculated-fields-form'); ?></i>)
304
+ </div>
305
+ <br />
306
+ <input type="button" name="cp_save_default_settings" value="<?php esc_attr_e( 'Update', 'calculated-fields-form' ); ?>" class="button-secondary" onclick="cp_update_default_settings(this);" />
307
+ <input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-default-settings' ); ?>" />
308
+ </form>
309
+ </div>
310
+ </div>
311
+ <div style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;margin:10px 0;font-size:1.3em;">
312
+ <div><?php _e('For additional resources visit the plugin\'s', 'calculated-fields-form')?> <a href="https://cff-bundles.dwbooster.com" target="_blank" style="font-weight:bold;"><?php _e('Marketplace', 'calculated-fields-form'); ?></a></div>
313
+ <div class="cff-bundles-plugin"></div>
314
+ </div>
315
+ <div id="metabox_basic_settings" class="postbox" >
316
+ <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Troubleshoot Area & General Settings', 'calculated-fields-form' ); ?></span></h3>
317
+ <div class="inside">
318
+ <form name="updatesettings">
319
+ <div style="border:1px solid #DADADA; padding:10px;">
320
+ <p><?php _e( '<strong>Important!</strong>: Use this area <strong>only</strong> if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.', 'calculated-fields-form' ); ?></p>
321
+ <?php _e( 'Script load method', 'calculated-fields-form' ); ?>:<br />
322
+ <select id="ccscriptload" name="ccscriptload" class="width50">
323
+ <option value="0" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") == "1") echo 'selected'; ?>><?php _e( 'Classic (Recommended)', 'calculated-fields-form' ); ?></option>
324
+ <option value="1" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") != "1") echo 'selected'; ?>><?php _e( 'Direct', 'calculated-fields-form' ); ?></option>
325
+ </select><br />
326
+ <em><?php _e( '* Change the script load method if the form doesn\'t appear in the public website.', 'calculated-fields-form' ); ?></em>
327
+ <br /><br />
328
+ <?php _e( 'Character encoding', 'calculated-fields-form' ); ?>:<br />
329
+ <select id="cccharsets" name="cccharsets" class="width50">
330
+ <option value=""><?php _e( 'Keep current charset (Recommended)', 'calculated-fields-form' ); ?></option>
331
+ <option value="utf8_general_ci">UTF-8 (<?php _e( 'try this first', 'calculated-fields-form' ); ?>)</option>
332
+ <option value="utf8mb4_general_ci">UTF-8mb4 (<?php _e( 'Only from MySQL 5.5', 'calculated-fields-form' ); ?>)</option>
333
+ <option value="latin1_swedish_ci">latin1_swedish_ci</option>
334
+ </select><br />
335
+ <em><?php _e( '* Update the charset if you are getting problems displaying special/non-latin characters. After updated you need to edit the special characters again.', 'calculated-fields-form' ); ?></em>
336
+ <br /><br />
337
+ <?php
338
+ $compatibility_warnings = $cpcff_main->compatibility_warnings();
339
+ if(!empty($compatibility_warnings))
340
+ {
341
+ print '<div style="margin:10px 0; border:1px dashed #FF0000; padding:10px; color:red;">'.$compatibility_warnings;
342
+ }
343
+ _e( "There is active an optimization plugin in WordPress", 'calculated-fields-form' ); ?>:<br />
344
+ <input type="checkbox" id="ccoptimizationplugin" name="ccoptimizationplugin" value="1" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN ) ) ? 'CHECKED' : ''; ?> /><em><?php _e('* Tick the checkbox if there is an optimization plugin active on the website, and the forms are not visible.', 'calculated-fields-form'); ?></em>
345
+ <?php
346
+ if(!empty($compatibility_warnings))
347
+ {
348
+ print '</div>';
349
+ }
350
+ ?>
351
+ </div>
352
+ <br />
353
+ <input type="checkbox" name="ccjscache" id="ccjscache" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Activate Javascript Cache', 'calculated-fields-form' ); ?>
354
+ <br /><br />
355
+ <input type="checkbox" name="ccdirectform" id="ccdirectform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS', CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms directly', 'calculated-fields-form' ); ?>
356
+ <br /><br />
357
+ <input type="checkbox" name="ccampform" id="ccampform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_AMP', CP_CALCULATEDFIELDSF_AMP ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms from amp pages', 'calculated-fields-form' ); ?>
358
+ <br /><br />
359
+ <input type="checkbox" name="ccexcludecrawler" id="ccexcludecrawler" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_EXCLUDE_CRAWLERS', false ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Do not load the forms with crawlers', 'calculated-fields-form' ); ?>
360
+ <br /><i><?php _e( '* The forms are not loaded when website is being indexed by searchers.', 'calculated-fields-form' ); ?></i>
361
+ <br /><br />
362
+ <input type="button" onclick="cp_updateConfig();" name="gobtn" value="<?php esc_attr_e( 'UPDATE', 'calculated-fields-form' ); ?>" class="button-secondary" />
363
+ <br />
364
+ </form>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div><!-- End Forms & Settings Section -->
369
+ <div style="margin-top:20px;display:<?php print (!empty($_GET['cff-tab']) && $_GET['cff-tab'] == 'marketplace' ) ? 'block' : 'none'; ?>;"><!-- Marketplace Section -->
370
+ <div id="metabox_basic_settings" class="postbox" >
371
+ <h3 class='hndle' style="padding:5px;"><span><?php _e( 'Calculated Fields Form Marketplace', 'calculated-fields-form' ); ?></span></h3>
372
+ <div class="inside">
373
+ <div class="cff-marketplace"></div>
374
+ </div>
375
+ </div>
376
+ </div><!-- End Marketplace Section -->
377
  [<a href="https://cff.dwbooster.com/customization" target="_blank"><?php _e( 'Request Custom Modifications', 'calculated-fields-form' ); ?></a>] | [<a href="https://cff.dwbooster.com/download" target="_blank"><?php _e( 'Upgrade', 'calculated-fields-form' ); ?></a>] | [<a href="https://wordpress.org/support/plugin/calculated-fields-form#new-post" target="_blank"><?php _e( 'Help', 'calculated-fields-form' ); ?></a>]
378
+ </div>
379
+ <script>cff_current_version='free';</script>
380
+ <script src="https://cff-bundles.dwbooster.com/plugins/plugins.js?v=<?php print CP_CALCULATEDFIELDSF_VERSION.'_'.date('Y-m-d'); ?>"></script>
inc/cpcff_amp.inc.php CHANGED
@@ -54,7 +54,7 @@ if(!class_exists('CPCFF_AMP'))
54
  print '<style>'.
55
  'body{background:#FFF;overflow:hidden;margin:0;}'.
56
  'html, body {height:100%;position:relative;min-height:100%;display:block;}'.
57
- '#fbuilder{overflow-x:hidden;overflow-y:auto;height:'.$this->_get_height().'px;padding:5px 32px 5px 5px;box-sizing:border-box!important;}'.
58
  '</style>';
59
  }
60
 
@@ -65,6 +65,11 @@ if(!class_exists('CPCFF_AMP'))
65
  if(empty($_GET['cff-editor-preview']))
66
  {
67
  $message = preg_replace('/<form\s+/i', '<form target="_parent" ', $message, 1);
 
 
 
 
 
68
  }
69
  ob_start();
70
  if(!empty($wp_styles)) $wp_styles->do_items();
@@ -130,20 +135,24 @@ if(!class_exists('CPCFF_AMP'))
130
  $url .= (strpos($url, '?') === false) ? '?' : '&';
131
  $url .= 'cff-amp-form='.((!empty($atts['id']))?$atts['id'] : '');
132
  $height = '';
 
133
  foreach($atts as $attr_name => $attr_value)
134
  {
135
  if('amp_iframe_height' == $attr_name) $height = $attr_value;
 
136
  elseif('id' != $attr_name) $url .= '&cff-form-attr-'.$attr_name.'='.$attr_value;
137
  }
138
 
139
- if(empty($height)) $height = 500;
 
 
140
 
141
- $url .= '&cff-form-height='.$height.'&non-amp=1';
142
 
143
  add_action('amp_post_template_css', array($this, 'amp_css') );
144
  add_filter( 'amp_post_template_data', array($this, 'amp_iframe') );
145
 
146
- return '<amp-iframe id="cff-form-iframe" src="'.esc_attr( esc_url($url)).'" layout="fixed-height" sandbox="allow-popups allow-forms allow-top-navigation allow-modals allow-scripts" height="'.esc_attr($height).'"><amp-img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0ic3ZnOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTMuMjI5MTY3IDEzLjIyOTE2NyIgaGVpZ2h0PSI1MCIgd2lkdGg9IjUwIj48ZGVmcyBpZD0iZGVmczIiIC8+PG1ldGFkYXRhIGlkPSJtZXRhZGF0YTUiPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yODMuNzcwODMpIiBpZD0ibGF5ZXIxIiAvPjwvc3ZnPg==" placeholder layout="responsive" width="50" height="50" /></amp-iframe>';
147
  }
148
 
149
  /**
@@ -204,9 +213,10 @@ if(!class_exists('CPCFF_AMP'))
204
  *
205
  * @return int.
206
  */
207
- private function _get_height()
208
  {
209
- return (!empty($_GET['cff-form-height']) && ($height=@intval($_GET['cff-form-height'])) !== 0 ) ? $height : 500;
 
210
  }
211
  }
212
  }
54
  print '<style>'.
55
  'body{background:#FFF;overflow:hidden;margin:0;}'.
56
  'html, body {height:100%;position:relative;min-height:100%;display:block;}'.
57
+ '#fbuilder{'.$this->_get_styles().'box-sizing:border-box!important;}'.
58
  '</style>';
59
  }
60
 
65
  if(empty($_GET['cff-editor-preview']))
66
  {
67
  $message = preg_replace('/<form\s+/i', '<form target="_parent" ', $message, 1);
68
+ $message = preg_replace('/<\/form>/i', '</form><pre style="display:none !important;"><script>try{
69
+ document.addEventListener("DOMContentLoaded",
70
+ function(){fbuilderjQuery(document).one("showHideDepEvent", function(){window.parent.postMessage({sentinel: "amp",type:"embed-size",height: document.body.scrollHeight+25}, "*");});});}catch(err){console.log(err);}</script></pre>',
71
+ $message, 1
72
+ );
73
  }
74
  ob_start();
75
  if(!empty($wp_styles)) $wp_styles->do_items();
135
  $url .= (strpos($url, '?') === false) ? '?' : '&';
136
  $url .= 'cff-amp-form='.((!empty($atts['id']))?$atts['id'] : '');
137
  $height = '';
138
+ $width = '';
139
  foreach($atts as $attr_name => $attr_value)
140
  {
141
  if('amp_iframe_height' == $attr_name) $height = $attr_value;
142
+ elseif('amp_iframe_width' == $attr_name) $width = $attr_value;
143
  elseif('id' != $attr_name) $url .= '&cff-form-attr-'.$attr_name.'='.$attr_value;
144
  }
145
 
146
+ if(empty($height)) $height = 320;
147
+ else $url .= '&cff-form-height='.$height;
148
+ if(empty($width)) $width = 500;
149
 
150
+ $url .= '&non-amp=1';
151
 
152
  add_action('amp_post_template_css', array($this, 'amp_css') );
153
  add_filter( 'amp_post_template_data', array($this, 'amp_iframe') );
154
 
155
+ return '<amp-iframe id="cff-form-iframe" src="'.esc_attr( esc_url($url)).'" layout="responsive" resizable sandbox="allow-popups allow-forms allow-top-navigation allow-modals allow-scripts" width="'.esc_attr($width).'" height="'.esc_attr($height).'"><amp-img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0ic3ZnOCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTMuMjI5MTY3IDEzLjIyOTE2NyIgaGVpZ2h0PSI1MCIgd2lkdGg9IjUwIj48ZGVmcyBpZD0iZGVmczIiIC8+PG1ldGFkYXRhIGlkPSJtZXRhZGF0YTUiPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yODMuNzcwODMpIiBpZD0ibGF5ZXIxIiAvPjwvc3ZnPg==" placeholder layout="responsive" width="50" height="50" /><div overflow tabindex=0 role=button style="bottom:0;border-bottom:2px dotted #ccc; width:100%;"><div aria-label="'.esc_attr__('Click to expand', 'calculated-fields-form').'" style="margin-bottom:10px;margin-left:50%;transform:translate(-50%);padding:10px 20px;background:#666;color:white;border-radius:5px;display:inline-block;">'.esc_html(__('Click to expand', 'calculated-fields-form')).'</div></div></amp-iframe>';
156
  }
157
 
158
  /**
213
  *
214
  * @return int.
215
  */
216
+ private function _get_styles()
217
  {
218
+ return (!empty($_GET['cff-form-height']) && ($height=@intval($_GET['cff-form-height'])) !== 0 ) ?
219
+ 'overflow-x:hidden;overflow-y:auto;height:'.$height.'px;padding:5px 32px 5px 5px;' : '';
220
  }
221
  }
222
  }
inc/cpcff_auxiliary.inc.php CHANGED
@@ -116,13 +116,35 @@ if(!class_exists('CPCFF_AUXILIARY'))
116
  public static function wp_current_url()
117
  {
118
  if(is_admin()) return self::site_url();
119
- if(!empty(self::$_current_url)) return self::$_current_url;
120
 
121
- global $wp;
122
- self::$_current_url = home_url(add_query_arg(array(),$wp->request));
123
- return self::$_current_url;
 
124
  } // End wp_current_url
125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  /**
127
  * Removes Bom characters.
128
  *
@@ -287,6 +309,22 @@ if(!class_exists('CPCFF_AUXILIARY'))
287
  }
288
  } // End stripcslashes_recursive
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  /**
291
  * Checks if the website is being visited by a crawler.
292
  *
116
  public static function wp_current_url()
117
  {
118
  if(is_admin()) return self::site_url();
119
+ if(!empty(self::$_current_url)) return self::$_current_url;
120
 
121
+ $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
122
+
123
+ self::$_current_url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
124
+ return self::$_current_url;
125
  } // End wp_current_url
126
 
127
+ /**
128
+ * Sanitizes the value received as parameter, supporting the same posts tags
129
+ *
130
+ * @since Pro 5.0.235, Dev 5.0.279, Plat 10.0.318
131
+ *
132
+ * @params mixed $v.
133
+ * @return sanitized value.
134
+ */
135
+ public static function sanitize( $v )
136
+ {
137
+ $allowed_tags = wp_kses_allowed_html( 'post' );
138
+ $v = wp_kses($v, $allowed_tags);
139
+ // the str_replace is a patch to solve an issue with the data: part in signature fields
140
+ // that are removed by wp_kse.
141
+ return str_replace(
142
+ array('"image/svg+xml;base64','"image/png;base64'),
143
+ array('"data:image/svg+xml;base64','"data:image/png;base64'),
144
+ $v
145
+ );
146
+ } // End sanitize
147
+
148
  /**
149
  * Removes Bom characters.
150
  *
309
  }
310
  } // End stripcslashes_recursive
311
 
312
+ public static function stripscript_recursive( $v )
313
+ {
314
+ if(is_array($v))
315
+ {
316
+ foreach($v as $k => $s)
317
+ {
318
+ $v[$k] = self::stripscript_recursive($s);
319
+ }
320
+ return $v;
321
+ }
322
+ else
323
+ {
324
+ return preg_replace(['/<\s*script\b.*\bscript\s*>/i', '/<\s*script[^>]*>/i'], '', $v);
325
+ }
326
+ } // End stripscript_recursive
327
+
328
  /**
329
  * Checks if the website is being visited by a crawler.
330
  *
inc/cpcff_compatibility.inc.php CHANGED
@@ -19,6 +19,12 @@ if(!class_exists('CPCFF_COMPATIBILITY'))
19
  'type' => 'function',
20
  'mssg' => __('There is active the <b>Fast Velocity Minify</b> plugin. If the forms are not visible, please try disabling the <i>"Disable minification on JS files"</i> or <i>"Disable JavaScript processing"</i> options in the <b>Fast Velocity Minify</b> settings.', 'calculated-fields-form')
21
  ),
 
 
 
 
 
 
22
  array(
23
  'plugin' => 'Autoptimize',
24
  'check' => 'autoptimize',
19
  'type' => 'function',
20
  'mssg' => __('There is active the <b>Fast Velocity Minify</b> plugin. If the forms are not visible, please try disabling the <i>"Disable minification on JS files"</i> or <i>"Disable JavaScript processing"</i> options in the <b>Fast Velocity Minify</b> settings.', 'calculated-fields-form')
21
  ),
22
+ array(
23
+ 'plugin' => 'W3 Total Cache',
24
+ 'check' => 'W3TC',
25
+ 'type' => 'constant',
26
+ 'mssg' => __('There is active the <b>W3 Total Cache</b> plugin. If the forms are not visible, please tick the checkbox.', 'calculated-fields-form')
27
+ ),
28
  array(
29
  'plugin' => 'Autoptimize',
30
  'check' => 'autoptimize',
inc/cpcff_form.inc.php CHANGED
@@ -127,10 +127,12 @@ if(!class_exists('CPCFF_FORM'))
127
  'cv_noise_length' => CP_CALCULATEDFIELDSF_DEFAULT_cv_noise_length,
128
  'cv_background' => CP_CALCULATEDFIELDSF_DEFAULT_cv_background,
129
  'cv_border' => CP_CALCULATEDFIELDSF_DEFAULT_cv_border,
130
- 'cv_text_enter_valid_captcha' => CP_CALCULATEDFIELDSF_DEFAULT_cv_text_enter_valid_captcha
 
 
131
  ),
132
  array(
133
- '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'
134
  )
135
  )
136
  )
@@ -140,6 +142,39 @@ if(!class_exists('CPCFF_FORM'))
140
  return false;
141
  } // End create_default
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  /**
144
  * Clones the current form.
145
  *
@@ -251,6 +286,11 @@ if(!class_exists('CPCFF_FORM'))
251
  public function save_settings( $params )
252
  {
253
  global $wpdb, $cpcff_default_texts_array;
 
 
 
 
 
254
  $data = array(
255
  'form_structure' => (isset($params['form_structure'])) ? $params['form_structure'] : CP_CALCULATEDFIELDSF_DEFAULT_form_structure,
256
 
127
  'cv_noise_length' => CP_CALCULATEDFIELDSF_DEFAULT_cv_noise_length,
128
  'cv_background' => CP_CALCULATEDFIELDSF_DEFAULT_cv_background,
129
  'cv_border' => CP_CALCULATEDFIELDSF_DEFAULT_cv_border,
130
+ 'cv_text_enter_valid_captcha' => CP_CALCULATEDFIELDSF_DEFAULT_cv_text_enter_valid_captcha,
131
+
132
+ 'enable_submit' => CP_CALCULATEDFIELDSF_DEFAULT_display_submit_button
133
  ),
134
  array(
135
+ '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'
136
  )
137
  )
138
  )
142
  return false;
143
  } // End create_default
144
 
145
+ /**
146
+ * Sanitize the form's structure. Fields titltes and instructions for users,
147
+ * form's title and description. etc.
148
+ */
149
+ static public function sanitize_structure($structure)
150
+ {
151
+ if(is_array($structure))
152
+ {
153
+ if(is_array($structure[0]))
154
+ {
155
+ foreach($structure[0] as $index => $obj)
156
+ {
157
+ if(isset($obj->title))
158
+ $structure[0][$index]->title = CPCFF_AUXILIARY::sanitize($structure[0][$index]->title);
159
+ if(isset($obj->userhelp))
160
+ $structure[0][$index]->userhelp = CPCFF_AUXILIARY::sanitize($structure[0][$index]->userhelp);
161
+ }
162
+ }
163
+
164
+ if(is_array($structure[1]) && count($structure[1]))
165
+ {
166
+ if(is_object($structure[1][0]))
167
+ {
168
+ if(isset($structure[1][0]->title))
169
+ $structure[1][0]->title = CPCFF_AUXILIARY::sanitize($structure[1][0]->title);
170
+ if(isset($structure[1][0]->description))
171
+ $structure[1][0]->description = CPCFF_AUXILIARY::sanitize($structure[1][0]->description);
172
+ }
173
+ }
174
+ }
175
+ return $structure;
176
+ } // End sanitize_structure
177
+
178
  /**
179
  * Clones the current form.
180
  *
286
  public function save_settings( $params )
287
  {
288
  global $wpdb, $cpcff_default_texts_array;
289
+
290
+ foreach($params as $i => $v)
291
+ if($i != 'form_structure')
292
+ $params[$i] = CPCFF_AUXILIARY::stripscript_recursive($v);
293
+
294
  $data = array(
295
  'form_structure' => (isset($params['form_structure'])) ? $params['form_structure'] : CP_CALCULATEDFIELDSF_DEFAULT_form_structure,
296
 
inc/cpcff_main.inc.php CHANGED
@@ -109,9 +109,6 @@ if(!class_exists('CPCFF_MAIN'))
109
  // Run the initialization code of widgets
110
  add_action( 'widgets_init', array($this, 'widgets_init'), 1 );
111
 
112
- // Fix different troubleshoots
113
- $this->troubleshoots();
114
-
115
  // Integration with Page Builders
116
  require_once CP_CALCULATEDFIELDSF_BASE_PATH.'/inc/cpcff_page_builders.inc.php';
117
  CPCFF_PAGE_BUILDERS::run();
@@ -142,10 +139,13 @@ if(!class_exists('CPCFF_MAIN'))
142
  */
143
  public function plugins_loaded()
144
  {
 
 
 
145
  // Load the language file
146
  $this->_textdomain();
147
 
148
- // Load controls scripts
149
  $this->_load_controls_scrips();
150
  } // End plugins_loaded
151
 
@@ -322,13 +322,13 @@ if(!class_exists('CPCFF_MAIN'))
322
  wp_enqueue_script( "jquery-ui-button" );
323
  wp_enqueue_script( "jquery-ui-datepicker" );
324
  wp_deregister_script('query-stringify');
325
- wp_register_script('query-stringify', plugins_url('/js/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
326
  wp_enqueue_script( "query-stringify" );
327
 
328
  //ULR to the admin resources
329
  $admin_resources = admin_url( "admin.php?page=cp_calculated_fields_form&cp_cff_resources=admin" );
330
  wp_enqueue_script( 'cp_calculatedfieldsf_builder_script', $admin_resources, array("jquery","jquery-ui-core","jquery-ui-sortable","jquery-ui-tabs","jquery-ui-droppable","jquery-ui-button", "jquery-ui-accordion","jquery-ui-datepicker","query-stringify") );
331
- wp_enqueue_script( 'cp_calculatedfieldsf_builder_script_caret', plugins_url('/js/jquery.caret.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH),array("jquery"));
332
  wp_enqueue_style('cp_calculatedfieldsf_builder_style', plugins_url('/css/style.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION);
333
  wp_enqueue_style('jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
334
  }
@@ -398,13 +398,13 @@ if(!class_exists('CPCFF_MAIN'))
398
  remove_all_actions('shutdown');
399
  if(!empty($atts['wp_die']))
400
  {
401
- wp_die($message.'<style>body{margin:2em !important;max-width:100% !important;box-shadow:none !important;background:white !important}html{background:white !important;}.wp-die-message>*:not(form){visibility: hidden;}</style>', $page_title, 200);
402
  }
403
  elseif(!empty($atts['page']))
404
  {
405
  print '<!DOCTYPE html><html><head profile="http://gmpg.org/xfn/11"><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"></head><body>';
406
  print $message;
407
- print '<style>body>*:not(form){visibility: hidden;} .ui-tooltip, .ui-tooltip *,.ui-datepicker,.ui-datepicker *{visibility: visible;}</style></body></html>';
408
  exit;
409
  }
410
  else
@@ -446,18 +446,21 @@ if(!class_exists('CPCFF_MAIN'))
446
 
447
  if( empty( $atts[ 'id' ] ) ) // if was not passed the form's id get all.
448
  {
449
- $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE );
450
  }
451
  else
452
  {
453
- $myrows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE." WHERE id=%d",$atts[ 'id' ] ) );
454
  }
455
 
456
- if( empty( $myrows ) ) return ''; // The form does not exists, or there are no forms.
457
- $atts[ 'id' ] = $myrows[0]->id; // If was not passed the form's id, uses the if of first form.
458
  $id = $atts[ 'id' ]; // Alias for the $atts[ 'id' ] variable.
459
 
460
- self::$form_counter++; // Current form
 
 
 
461
 
462
  /**
463
  * Filters applied before generate the form,
@@ -778,12 +781,33 @@ if(!class_exists('CPCFF_MAIN'))
778
  */
779
  private function _public_resources( $formid )
780
  {
781
- /* TO-DO: This method should be analyzed after moving other functions to the main class . */
782
- $public_js_path = (
783
- get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE ) &&
784
- file_exists( CP_CALCULATEDFIELDSF_BASE_PATH.'/js/cache/all.js' )
785
- ) ? plugins_url('/js/cache/all.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH)
786
- : CPCFF_AUXILIARY::wp_current_url().( ( strpos( CPCFF_AUXILIARY::wp_current_url(),'?' ) === false ) ? '/?' : '&' ).'cp_cff_resources=public&min='.get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
 
788
  $config_json = $this->_get_form_configuration($formid);
789
 
@@ -799,10 +823,10 @@ if(!class_exists('CPCFF_MAIN'))
799
  wp_enqueue_script( "jquery-ui-slider" );
800
 
801
  wp_deregister_script('query-stringify');
802
- wp_register_script('query-stringify', plugins_url('/js/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array('jquery'), 'pro');
803
 
804
  wp_deregister_script('cp_calculatedfieldsf_validate_script');
805
- wp_register_script('cp_calculatedfieldsf_validate_script', plugins_url('/js/jquery.validate.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array('jquery'), 'pro');
806
  wp_enqueue_script( 'cp_calculatedfieldsf_builder_script', $public_js_path, array("jquery","jquery-ui-core","jquery-ui-button","jquery-ui-widget","jquery-ui-position","jquery-ui-tooltip","query-stringify","cp_calculatedfieldsf_validate_script", "jquery-ui-datepicker", "jquery-ui-slider"), CP_CALCULATEDFIELDSF_VERSION, true );
807
 
808
  wp_localize_script('cp_calculatedfieldsf_builder_script', 'cp_calculatedfieldsf_fbuilder_config_'.self::$form_counter, array('obj' => $config_json));
@@ -843,8 +867,8 @@ if(!class_exists('CPCFF_MAIN'))
843
  print '<script type="text/javascript" src="'.$includes_url.'js/jquery/ui/'.$prefix_ui.'slider.min.js"></script>';
844
  ?>
845
  <script>if( typeof fbuilderjQuery == 'undefined') var fbuilderjQuery = jQuery.noConflict( );</script>
846
- <script type='text/javascript' src='<?php echo plugins_url('js/jquery.validate.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH); ?>'></script>
847
- <script type='text/javascript' src='<?php echo plugins_url('js/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH); ?>'></script>
848
  <script type='text/javascript' src='<?php echo $public_js_path.(( strpos( $public_js_path, '?' ) == false ) ? '?' : '&' ).'ver='.CP_CALCULATEDFIELDSF_VERSION; ?>'></script>
849
  <?php
850
  }
@@ -869,37 +893,59 @@ if(!class_exists('CPCFF_MAIN'))
869
 
870
  private function troubleshoots()
871
  {
872
- if(
873
- !$this->_is_admin &&
874
- get_option('CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN)*1
875
- )
876
  {
877
- // Solves a conflict caused by the "Speed Booster Pack" plugin
878
- add_filter('option_sbp_settings', 'CPCFF_MAIN::speed_booster_pack_troubleshoot');
879
-
880
- // Solves a conflict caused by the "Autoptimize" plugin
881
- if(
882
- class_exists('autoptimizeOptionWrapper') &&
883
- (
884
- autoptimizeOptionWrapper::get_option( 'autoptimize_js' ) ||
885
- autoptimizeOptionWrapper::get_option( 'autoptimize_html' )
886
- )
887
- )
888
- {
889
- $GLOBALS['CP_CALCULATEDFIELDSF_DEFAULT_DEFER_SCRIPTS_LOADING'] = true;
890
- add_filter( 'autoptimize_js_include_inline', 'CPCFF_MAIN::autoptimize_js_include_inline');
891
- }
892
-
893
- // Solves a conflict caused by the "WP Rocket" plugin
894
- add_filter( 'rocket_exclude_js', 'CPCFF_MAIN::rocket_exclude_js' );
895
- add_filter( 'rocket_exclude_defer_js', 'CPCFF_MAIN::rocket_exclude_js' );
896
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  } // End troubleshoots
898
 
899
- public static function autoptimize_js_include_inline($include_inline)
900
- {
901
- return false;
902
- } // autoptimize_js_include_inline
 
 
 
 
 
 
 
 
 
903
 
904
  public static function speed_booster_pack_troubleshoot($option)
905
  {
@@ -909,9 +955,29 @@ if(!class_exists('CPCFF_MAIN'))
909
 
910
  public static function rocket_exclude_js($excluded_js)
911
  {
 
 
 
 
 
 
912
  $excluded_js[] = '(.*)/jquery.js';
 
 
 
913
  return $excluded_js;
914
  } // End rocket_exclude_js
915
 
 
 
 
 
 
 
 
 
 
 
 
916
  } // End CPCFF_MAIN
917
  }
109
  // Run the initialization code of widgets
110
  add_action( 'widgets_init', array($this, 'widgets_init'), 1 );
111
 
 
 
 
112
  // Integration with Page Builders
113
  require_once CP_CALCULATEDFIELDSF_BASE_PATH.'/inc/cpcff_page_builders.inc.php';
114
  CPCFF_PAGE_BUILDERS::run();
139
  */
140
  public function plugins_loaded()
141
  {
142
+ // Fix different troubleshoots
143
+ $this->troubleshoots();
144
+
145
  // Load the language file
146
  $this->_textdomain();
147
 
148
+ // Load controls scripts
149
  $this->_load_controls_scrips();
150
  } // End plugins_loaded
151
 
322
  wp_enqueue_script( "jquery-ui-button" );
323
  wp_enqueue_script( "jquery-ui-datepicker" );
324
  wp_deregister_script('query-stringify');
325
+ wp_register_script('query-stringify', plugins_url('/vendors/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
326
  wp_enqueue_script( "query-stringify" );
327
 
328
  //ULR to the admin resources
329
  $admin_resources = admin_url( "admin.php?page=cp_calculated_fields_form&cp_cff_resources=admin" );
330
  wp_enqueue_script( 'cp_calculatedfieldsf_builder_script', $admin_resources, array("jquery","jquery-ui-core","jquery-ui-sortable","jquery-ui-tabs","jquery-ui-droppable","jquery-ui-button", "jquery-ui-accordion","jquery-ui-datepicker","query-stringify") );
331
+ wp_enqueue_script( 'cp_calculatedfieldsf_builder_script_caret', plugins_url('/vendors/jquery.caret.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH),array("jquery"));
332
  wp_enqueue_style('cp_calculatedfieldsf_builder_style', plugins_url('/css/style.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION);
333
  wp_enqueue_style('jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
334
  }
398
  remove_all_actions('shutdown');
399
  if(!empty($atts['wp_die']))
400
  {
401
+ wp_die($message.'<style>body{margin:2em !important;max-width:100% !important;box-shadow:none !important;background:white !important}html{background:white !important;}.wp-die-message>*:not(form){visibility: hidden;} .pac-container, .ui-tooltip, .ui-tooltip *,.ui-datepicker,.ui-datepicker *{visibility: visible;}</style>'.apply_filters('cpcff_form_preview_resources', ''), $page_title, 200);
402
  }
403
  elseif(!empty($atts['page']))
404
  {
405
  print '<!DOCTYPE html><html><head profile="http://gmpg.org/xfn/11"><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"></head><body>';
406
  print $message;
407
+ print '<style>body>*:not(form){visibility: hidden;} .pac-container, .ui-tooltip, .ui-tooltip *,.ui-datepicker,.ui-datepicker *{visibility: visible;}</style>'.apply_filters('cpcff_form_preview_resources', '').'</body></html>';
408
  exit;
409
  }
410
  else
446
 
447
  if( empty( $atts[ 'id' ] ) ) // if was not passed the form's id get all.
448
  {
449
+ $myrow = $wpdb->get_row( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE );
450
  }
451
  else
452
  {
453
+ $myrow = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE." WHERE id=%d",$atts[ 'id' ] ) );
454
  }
455
 
456
+ if( empty( $myrow ) ) return ''; // The form does not exists, or there are no forms.
457
+ $atts[ 'id' ] = $myrow->id; // If was not passed the form's id, uses the if of first form.
458
  $id = $atts[ 'id' ]; // Alias for the $atts[ 'id' ] variable.
459
 
460
+ // Initializing the $form_counter
461
+ if(!isset($GLOBALS['codepeople_form_sequence_number'])) $GLOBALS['codepeople_form_sequence_number'] = 0;
462
+ $GLOBALS['codepeople_form_sequence_number']++;
463
+ self::$form_counter = $GLOBALS['codepeople_form_sequence_number']; // Current form
464
 
465
  /**
466
  * Filters applied before generate the form,
781
  */
782
  private function _public_resources( $formid )
783
  {
784
+ if(
785
+ get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE ) &&
786
+ file_exists( CP_CALCULATEDFIELDSF_BASE_PATH.'/js/cache/all.js' )
787
+ )
788
+ {
789
+ $public_js_path = plugins_url('/js/cache/all.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH);
790
+ }
791
+
792
+ if(empty($public_js_path))
793
+ {
794
+ global $cff_backend_script_generator, $cff_script_generator_min;
795
+
796
+ $cff_backend_script_generator = 1;
797
+ $cff_script_generator_min = get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE );
798
+ include_once CP_CALCULATEDFIELDSF_BASE_PATH.'/js/fbuilder-loader-public.php';
799
+ }
800
+
801
+ if(
802
+ file_exists( CP_CALCULATEDFIELDSF_BASE_PATH.'/js/cache/all.js' )
803
+ )
804
+ {
805
+ $public_js_path = plugins_url('/js/cache/all.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH);
806
+ }
807
+ else
808
+ {
809
+ $public_js_path = CPCFF_AUXILIARY::wp_current_url().((strpos(CPCFF_AUXILIARY::wp_current_url(),'?') === false) ? '/?' : '&').'cp_cff_resources=public&min='.get_option('CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE);
810
+ }
811
 
812
  $config_json = $this->_get_form_configuration($formid);
813
 
823
  wp_enqueue_script( "jquery-ui-slider" );
824
 
825
  wp_deregister_script('query-stringify');
826
+ wp_register_script('query-stringify', plugins_url('/vendors/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array('jquery'), 'pro');
827
 
828
  wp_deregister_script('cp_calculatedfieldsf_validate_script');
829
+ wp_register_script('cp_calculatedfieldsf_validate_script', plugins_url('/vendors/jquery.validate.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array('jquery'), 'pro');
830
  wp_enqueue_script( 'cp_calculatedfieldsf_builder_script', $public_js_path, array("jquery","jquery-ui-core","jquery-ui-button","jquery-ui-widget","jquery-ui-position","jquery-ui-tooltip","query-stringify","cp_calculatedfieldsf_validate_script", "jquery-ui-datepicker", "jquery-ui-slider"), CP_CALCULATEDFIELDSF_VERSION, true );
831
 
832
  wp_localize_script('cp_calculatedfieldsf_builder_script', 'cp_calculatedfieldsf_fbuilder_config_'.self::$form_counter, array('obj' => $config_json));
867
  print '<script type="text/javascript" src="'.$includes_url.'js/jquery/ui/'.$prefix_ui.'slider.min.js"></script>';
868
  ?>
869
  <script>if( typeof fbuilderjQuery == 'undefined') var fbuilderjQuery = jQuery.noConflict( );</script>
870
+ <script type='text/javascript' src='<?php echo plugins_url('vendors/jquery.validate.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH); ?>'></script>
871
+ <script type='text/javascript' src='<?php echo plugins_url('vendors/jQuery.stringify.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH); ?>'></script>
872
  <script type='text/javascript' src='<?php echo $public_js_path.(( strpos( $public_js_path, '?' ) == false ) ? '?' : '&' ).'ver='.CP_CALCULATEDFIELDSF_VERSION; ?>'></script>
873
  <?php
874
  }
893
 
894
  private function troubleshoots()
895
  {
896
+ if(!$this->_is_admin)
 
 
 
897
  {
898
+ if(get_option('CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN)*1)
899
+ {
900
+ // Solves a conflict caused by the "Speed Booster Pack" plugin
901
+ add_filter('option_sbp_settings', 'CPCFF_MAIN::speed_booster_pack_troubleshoot');
902
+
903
+ // Solves a conflict caused by the "Autoptimize" plugin
904
+ if(class_exists('autoptimizeOptionWrapper'))
905
+ {
906
+ $GLOBALS['CP_CALCULATEDFIELDSF_DEFAULT_DEFER_SCRIPTS_LOADING'] = true;
907
+ add_filter('cpcff_pre_form', function($atts){
908
+ add_filter('autoptimize_js_include_inline', function($p){return false;});
909
+ add_filter('autoptimize_filter_js_noptimize', function($p1, $p2){return true;}, 10, 2);
910
+ add_filter('autoptimize_filter_html_noptimize', function($p1, $p2){return true;}, 10, 2);
911
+ return $atts;
912
+ });
913
+ }
914
+
915
+ // Solves conflicts with "LiteSpeed Cache" plugin
916
+ if(function_exists('run_litespeed_cache'))
917
+ {
918
+ add_action('the_post', 'CPCFF_MAIN::litespeed_control_set_nocache');
919
+ }
920
+
921
+ // Solves a conflict caused by the "WP Rocket" plugin
922
+ add_filter( 'rocket_exclude_js', 'CPCFF_MAIN::rocket_exclude_js' );
923
+ add_filter( 'rocket_exclude_defer_js', 'CPCFF_MAIN::rocket_exclude_js' );
924
+ add_filter( 'rocket_delay_js_exclusions', 'CPCFF_MAIN::rocket_exclude_js' );
925
+
926
+ // Some "WP Rocket" functions can be use with "WP-Optimize"
927
+ add_filter( 'wp-optimize-minify-blacklist', 'CPCFF_MAIN::rocket_exclude_js' );
928
+ add_filter( 'wp-optimize-minify-default-exclusions', 'CPCFF_MAIN::rocket_exclude_js' );
929
+ }
930
+ add_filter( 'rocket_excluded_inline_js_content', 'CPCFF_MAIN::rocket_exclude_inline_js' );
931
+ add_filter( 'rocket_defer_inline_exclusions', 'CPCFF_MAIN::rocket_exclude_inline_js' );
932
+ add_filter( 'rocket_delay_js_exclusions', 'CPCFF_MAIN::rocket_exclude_inline_js' );
933
+ }
934
  } // End troubleshoots
935
 
936
+ public static function litespeed_control_set_nocache(&$post)
937
+ {
938
+ try
939
+ {
940
+ if(
941
+ is_object($post) &&
942
+ isset($post->post_content) &&
943
+ stripos($post->post_content, '[CP_CALCULATED_FIELDS') !== false
944
+ ) do_action( 'litespeed_control_set_nocache', 'nocache CFF Form' );
945
+ }
946
+ catch(Exception $err){error_log($err->getMessage());}
947
+ return $post;
948
+ } // End litespeed_control_set_nocache
949
 
950
  public static function speed_booster_pack_troubleshoot($option)
951
  {
955
 
956
  public static function rocket_exclude_js($excluded_js)
957
  {
958
+ $excluded_js[] = '/jquery.js';
959
+ $excluded_js[] = '/jquery.min.js';
960
+ $excluded_js[] = '/jquery/';
961
+ $excluded_js[] = '/calculated-fields-form/';
962
+
963
+ $excluded_js[] = '/jquery/(.*)';
964
  $excluded_js[] = '(.*)/jquery.js';
965
+ $excluded_js[] = '(.*)/jquery.min.js';
966
+ $excluded_js[] = '(.*)/jquery/(.*)';
967
+ $excluded_js[] = '(.*)/calculated-fields-form/(.*)';
968
  return $excluded_js;
969
  } // End rocket_exclude_js
970
 
971
+ public static function rocket_exclude_inline_js($excluded_js = [])
972
+ {
973
+ $excluded_js[] = 'form_structure_';
974
+ $excluded_js[] = 'doValidate_';
975
+ $excluded_js[] = 'cp_calculatedfieldsf_fbuilder_config_';
976
+ $excluded_js[] = 'form_structure(.*)';
977
+ $excluded_js[] = 'doValidate(.*)';
978
+ $excluded_js[] = 'cp_calculatedfieldsf_fbuilder_config(.*)';
979
+ return $excluded_js;
980
+ } // End rocket_exclude_inline_js
981
+
982
  } // End CPCFF_MAIN
983
  }
inc/cpcff_public_int.inc.php CHANGED
@@ -25,12 +25,19 @@ if( function_exists( 'w3_instance' ) )
25
  add_filter( 'style_loader_tag', array('CPCFF_AUXILIARY', 'complete_link_tag') );
26
 
27
  wp_enqueue_style( 'cpcff_stylepublic', plugins_url('/css/stylepublic.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
28
- wp_enqueue_style( 'cpcff_jquery_ui' , 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/cupertino/jquery-ui.min.css', array(), CP_CALCULATEDFIELDSF_VERSION );
29
 
30
  $cpcff_main = CPCFF_MAIN::instance();
31
  $form_obj = $cpcff_main->get_form($id);
32
 
33
  $form_data = $form_obj->get_option('form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure);
 
 
 
 
 
 
 
34
  if( !empty( $form_data ) )
35
  {
36
  if( isset( $form_data[ 1 ] ) && isset( $form_data[ 1 ][ 0 ] ) )
@@ -47,12 +54,12 @@ if( !empty( $form_data ) )
47
  }
48
  $form_data[ 1 ][ 'formid' ]="cp_calculatedfieldsf_pform_".CPCFF_MAIN::$form_counter;
49
  ?>
50
- <form name="<?php echo $form_data[ 1 ][ 'formid' ]; ?>" id="<?php echo $form_data[ 1 ][ 'formid' ]; ?>" action="?" method="post" enctype="multipart/form-data" class="<?php
51
  if(!empty($form_data[1][0]) && !empty($form_data[1][0]->persistence)) echo ' persist-form';
52
  if(!empty($atts) && !empty($atts['class'])) echo ' '.esc_attr($atts['class']);
53
  ?>">
54
  <input type="hidden" name="cp_calculatedfieldsf_pform_psequence" value="_<?php echo CPCFF_MAIN::$form_counter; ?>" />
55
- <input type="hidden" name="cp_calculatedfieldsf_id" value="<?php echo $id; ?>" /><pre style="display:none !important;"><!--noptimize--><script>form_structure_<?php echo CPCFF_MAIN::$form_counter; ?>=<?php print str_replace( array( "\n", "\r" ), " ", ((version_compare(CP_CFF_PHPVERSION,"5.3.0")>=0)?json_encode($form_data, JSON_HEX_QUOT|JSON_HEX_TAG):json_encode($form_data)) ); ?>;</script><!--/noptimize--></pre>
56
  <div id="fbuilder">
57
  <?php
58
  if(
@@ -68,6 +75,7 @@ if( !empty( $form_data ) )
68
  <div id="fbuilder_<?php echo CPCFF_MAIN::$form_counter; ?>">
69
  <div id="formheader_<?php echo CPCFF_MAIN::$form_counter; ?>"></div>
70
  <div id="fieldlist_<?php echo CPCFF_MAIN::$form_counter; ?>"></div>
 
71
  </div>
72
  </div>
73
  <div class="clearer"></div>
25
  add_filter( 'style_loader_tag', array('CPCFF_AUXILIARY', 'complete_link_tag') );
26
 
27
  wp_enqueue_style( 'cpcff_stylepublic', plugins_url('/css/stylepublic.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
28
+ wp_enqueue_style( 'cpcff_jquery_ui', plugins_url('/vendors/jquery-ui/jquery-ui.min.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
29
 
30
  $cpcff_main = CPCFF_MAIN::instance();
31
  $form_obj = $cpcff_main->get_form($id);
32
 
33
  $form_data = $form_obj->get_option('form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure);
34
+
35
+ if(!wp_script_is('select2'))
36
+ {
37
+ wp_enqueue_style( 'cpcff_select2_css', plugins_url('/vendors/select2/select2.min.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
38
+ wp_enqueue_script( 'cpcff_select2_js', plugins_url('/vendors/select2/select2.min.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
39
+ }
40
+
41
  if( !empty( $form_data ) )
42
  {
43
  if( isset( $form_data[ 1 ] ) && isset( $form_data[ 1 ][ 0 ] ) )
54
  }
55
  $form_data[ 1 ][ 'formid' ]="cp_calculatedfieldsf_pform_".CPCFF_MAIN::$form_counter;
56
  ?>
57
+ <form name="<?php echo $form_data[ 1 ][ 'formid' ]; ?>" id="<?php echo $form_data[ 1 ][ 'formid' ]; ?>" action="?" method="post" enctype="multipart/form-data" class="cff-form <?php
58
  if(!empty($form_data[1][0]) && !empty($form_data[1][0]->persistence)) echo ' persist-form';
59
  if(!empty($atts) && !empty($atts['class'])) echo ' '.esc_attr($atts['class']);
60
  ?>">
61
  <input type="hidden" name="cp_calculatedfieldsf_pform_psequence" value="_<?php echo CPCFF_MAIN::$form_counter; ?>" />
62
+ <input type="hidden" name="cp_calculatedfieldsf_id" value="<?php echo $id; ?>" /><pre style="display:none !important;"><!--noptimize--><script type="text/javascript">form_structure_<?php echo CPCFF_MAIN::$form_counter; ?>=<?php print str_replace( array( "\n", "\r" ), " ", ((version_compare(CP_CFF_PHPVERSION,"5.3.0")>=0)?json_encode($form_data, JSON_HEX_QUOT|JSON_HEX_TAG):json_encode($form_data)) ); ?>;</script><!--/noptimize--></pre>
63
  <div id="fbuilder">
64
  <?php
65
  if(
75
  <div id="fbuilder_<?php echo CPCFF_MAIN::$form_counter; ?>">
76
  <div id="formheader_<?php echo CPCFF_MAIN::$form_counter; ?>"></div>
77
  <div id="fieldlist_<?php echo CPCFF_MAIN::$form_counter; ?>"></div>
78
+ <div class="clearer"></div>
79
  </div>
80
  </div>
81
  <div class="clearer"></div>
inc/cpcff_revisions.inc.php CHANGED
@@ -46,7 +46,6 @@ if(!class_exists('CPCFF_REVISIONS'))
46
  $this->_db = $wpdb;
47
  $this->_table = $wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_REVISIONS_TABLE;
48
  $this->_form_obj = $form_obj;
49
- $this->revisions_list();
50
  } // End construct
51
 
52
  /**
@@ -96,6 +95,7 @@ if(!class_exists('CPCFF_REVISIONS'))
96
  )
97
  )
98
  {
 
99
  $data['id'] = $this->_db->insert_id;
100
  $this->_revisions[$data['id']] = $data;
101
  krsort($this->_revisions);
@@ -114,6 +114,7 @@ if(!class_exists('CPCFF_REVISIONS'))
114
  */
115
  public function data( $revision_id )
116
  {
 
117
  if(
118
  !empty($this->_revisions) &&
119
  isset($this->_revisions[$revision_id])
46
  $this->_db = $wpdb;
47
  $this->_table = $wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_REVISIONS_TABLE;
48
  $this->_form_obj = $form_obj;
 
49
  } // End construct
50
 
51
  /**
95
  )
96
  )
97
  {
98
+ $this->revisions_list();
99
  $data['id'] = $this->_db->insert_id;
100
  $this->_revisions[$data['id']] = $data;
101
  krsort($this->_revisions);
114
  */
115
  public function data( $revision_id )
116
  {
117
+ $this->revisions_list();
118
  if(
119
  !empty($this->_revisions) &&
120
  isset($this->_revisions[$revision_id])
inc/cpcff_templates.inc.php CHANGED
@@ -50,42 +50,66 @@ if(!class_exists('CPCFF_TEMPLATES'))
50
  if( !self::$_are_templates_loaded )
51
  {
52
  self::$_are_templates_loaded = true;
53
- $tpls_dir = dir( CP_CALCULATEDFIELDSF_BASE_PATH.'/templates' );
54
- while( false !== ( $entry = $tpls_dir->read() ) )
55
- {
56
- if (
57
- $entry != '.' &&
58
- $entry != '..' &&
59
- is_dir( $tpls_dir->path.'/'.$entry ) &&
60
- file_exists( $tpls_dir->path.'/'.$entry.'/config.ini' )
61
- )
62
- {
63
- if(
64
- ( $ini_array = parse_ini_file( $tpls_dir->path.'/'.$entry.'/config.ini' ) ) != false ||
65
- ( $ini_array = parse_ini_string( file_get_contents( $tpls_dir->path.'/'.$entry.'/config.ini' ) ) ) != false
66
- )
67
- {
68
- if(
69
- isset($ini_array[ 'prefix' ]) &&
70
- ($prefix = trim($ini_array[ 'prefix' ])) != ''
71
- )
72
- {
73
- // Url to the CSS file
74
- if( !empty( $ini_array[ 'file' ] ) ) $ini_array[ 'file' ] = plugins_url( 'templates/'.$entry.'/'.$ini_array[ 'file' ], CP_CALCULATEDFIELDSF_MAIN_FILE_PATH );
75
-
76
- // Url to the JS file
77
- if( !empty( $ini_array[ 'js' ] ) ) $ini_array[ 'js' ] = plugins_url( 'templates/'.$entry.'/'.$ini_array[ 'js' ], CP_CALCULATEDFIELDSF_MAIN_FILE_PATH );
78
-
79
- // Url to the thumbnail file
80
- if( !empty( $ini_array[ 'thumbnail' ] ) ) $ini_array[ 'thumbnail' ] = plugins_url( 'templates/'.$entry.'/'.$ini_array[ 'thumbnail' ], CP_CALCULATEDFIELDSF_MAIN_FILE_PATH );
81
-
82
- // Required attribute to identify the template
83
- // and it is used as super-class-name for grouping styles to apply for the template
84
- self::$_templates_list[ $prefix ] = $ini_array;
85
- }
86
- }
87
- }
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
  return self::$_templates_list;
50
  if( !self::$_are_templates_loaded )
51
  {
52
  self::$_are_templates_loaded = true;
53
+ $tpls_dir_paths = [
54
+ [
55
+ 'path' => CP_CALCULATEDFIELDSF_BASE_PATH.'/templates',
56
+ 'url' => plugins_url( 'templates', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH )
57
+ ]
58
+ ];
59
+
60
+ $upload_dir = wp_upload_dir();
61
+
62
+ if(
63
+ !$upload_dir['error'] &&
64
+ file_exists($upload_dir['basedir'].'/calculated-fields-form/templates') &&
65
+ is_dir($upload_dir['basedir'].'/calculated-fields-form/templates')
66
+ )
67
+ {
68
+ $tpls_dir_paths[] = [
69
+ 'path' => $upload_dir['basedir'].'/calculated-fields-form/templates',
70
+ 'url' => $upload_dir['baseurl'].'/calculated-fields-form/templates'
71
+ ];
72
+ }
73
+
74
+ foreach($tpls_dir_paths as $path)
75
+ {
76
+ $tpls_dir = dir( $path['path'] );
77
+ while( false !== ( $entry = $tpls_dir->read() ) )
78
+ {
79
+ if (
80
+ $entry != '.' &&
81
+ $entry != '..' &&
82
+ is_dir( $tpls_dir->path.'/'.$entry ) &&
83
+ file_exists( $tpls_dir->path.'/'.$entry.'/config.ini' )
84
+ )
85
+ {
86
+ if(
87
+ (function_exists('parse_ini_file') && ( $ini_array = parse_ini_file( $tpls_dir->path.'/'.$entry.'/config.ini' ) ) != false) ||
88
+ (function_exists('parse_ini_string') && ( $ini_array = parse_ini_string( file_get_contents( $tpls_dir->path.'/'.$entry.'/config.ini' ) ) ) != false)
89
+ )
90
+ {
91
+ if(
92
+ isset($ini_array[ 'prefix' ]) &&
93
+ ($prefix = trim($ini_array[ 'prefix' ])) != ''
94
+ )
95
+ {
96
+ // Url to the CSS file
97
+ if( !empty( $ini_array['file'] ) ) $ini_array['file'] = $path['url'].'/'.$entry.'/'.$ini_array['file'];
98
+
99
+ // Url to the JS file
100
+ if( !empty( $ini_array['js'] ) ) $ini_array[ 'js' ] = $path['url'].'/'.$entry.'/'.$ini_array['js'];
101
+
102
+ // Url to the thumbnail file
103
+ if( !empty( $ini_array['thumbnail'] ) ) $ini_array['thumbnail'] = $path['url'].'/'.$entry.'/'.$ini_array['thumbnail'];
104
+
105
+ // Required attribute to identify the template
106
+ // and it is used as super-class-name for grouping styles to apply for the template
107
+ self::$_templates_list[$prefix] = $ini_array;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
  }
114
 
115
  return self::$_templates_list;
inc/cpcff_trial.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Allows to install the trial version of Professional distribution: CPCFF_TRIAL class
4
+ * @package CFF.
5
+ * @since 1.1.14
6
+ */
7
+
8
+ if(!class_exists('CPCFF_TRIAL'))
9
+ {
10
+ class CPCFF_TRIAL
11
+ {
12
+ /**
13
+ * Main plugin object
14
+ */
15
+ private $_main_obj;
16
+ private $_url = 'https://wordpress.dwbooster.com/trial/get.php';
17
+
18
+ public function __construct()
19
+ {
20
+ add_action( 'admin_init', array($this, 'init') );
21
+ } // End __construct
22
+
23
+ /**
24
+ * Install TRIAL
25
+ * @return void.
26
+ */
27
+ public function init()
28
+ {
29
+ if(!empty($_GET['cff-install-trial']) && current_user_can('manage_options')) $this->_install_plugin();
30
+ } // End init
31
+
32
+ private function _install_plugin()
33
+ {
34
+ try
35
+ {
36
+ $response = wp_remote_get($this->_url.'?action=check', array('body'=>array('u'=>CPCFF_AUXILIARY::site_url()),'sslverify'=>false));
37
+ if(!is_wp_error($response))
38
+ {
39
+ $body = wp_remote_retrieve_body($response);
40
+ if($body != 'ok') update_option('cff-t-t', $body);
41
+ else
42
+ {
43
+ include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
44
+ wp_cache_flush();
45
+ $installer = new Plugin_Upgrader();
46
+ $installed = $installer->install($this->_url, ['overwrite_package' => true]);
47
+ if($installed)
48
+ {
49
+ update_option('cff-t-d', time());
50
+ print '<script>document.location.href="'.esc_js(remove_query_arg('cff-install-trial', false)).'#cff-upgrade-frame";</script>';
51
+ exit;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ catch(Exception $err){print $err->getMessage();exit;}
57
+ } // End _install_plugin
58
+ } // End Class CPCFF_TRIAL
59
+
60
+ new CPCFF_TRIAL();
61
+ }
js/fbuilder-loader-admin.php CHANGED
@@ -8,6 +8,7 @@ fbuilderjQuery.fbuilderjQueryGenerator = function(){
8
  (function($) {
9
  // Namespace of fbuilder
10
  $.fbuilder = $.fbuilder || {};
 
11
  $.fbuilder[ 'objName' ] = 'fbuilderjQuery';
12
  <?php
13
  // Load Module files
@@ -73,6 +74,7 @@ fbuilderjQuery.fbuilderjQueryGenerator = function(){
73
  // ignore the error
74
  }
75
 
 
76
  ?>
77
  })(fbuilderjQuery);
78
  fbuilderjQuery.fbuilderGeneratorFlag = 1;
8
  (function($) {
9
  // Namespace of fbuilder
10
  $.fbuilder = $.fbuilder || {};
11
+ $.fbuilder.default_template = '<?php print esc_js(CP_CALCULATEDFIELDSF_DEFAULT_template); ?>';
12
  $.fbuilder[ 'objName' ] = 'fbuilderjQuery';
13
  <?php
14
  // Load Module files
74
  // ignore the error
75
  }
76
 
77
+ do_action( 'cpcff_additional_admin_scripts' );
78
  ?>
79
  })(fbuilderjQuery);
80
  fbuilderjQuery.fbuilderGeneratorFlag = 1;
js/fbuilder-loader-public.php CHANGED
@@ -1,17 +1,21 @@
1
  <?php
 
 
2
  error_reporting(E_ERROR|E_PARSE);
3
- header('Content-Type: application/x-javascript; charset=UTF-8');
 
 
4
  ob_start(); // Turn on output buffering
5
  ?>
6
  fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
7
  fbuilderjQuery(window).bind( 'pageshow', function( event ){ if( typeof event.originalEvent[ 'persisted' ] != 'undefined' && event.originalEvent[ 'persisted' ] ) location.reload(); } );
8
  fbuilderjQuery.fbuilderjQueryGenerator = function(){
9
- if('fbuilderGeneratorFlag' in fbuilderjQuery) return;
10
- var found_form = false;
11
  (function($) {
12
  // Namespace of fbuilder
13
- $.fbuilder = $.fbuilder || {};
14
- $.fbuilder[ 'objName' ] = 'fbuilderjQuery';
 
 
15
 
16
  <?php
17
  // Load Module files
@@ -69,32 +73,72 @@ fbuilderjQuery.fbuilderjQueryGenerator = function(){
69
  // ignore the error
70
  }
71
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  var fcount = 1;
73
  var fnum = "_"+fcount;
74
 
75
  while(typeof window["cp_calculatedfieldsf_fbuilder_config"+fnum] != 'undefined' || fcount < 10 )
76
  {
77
- try {
78
- var cp_calculatedfieldsf_fbuilder_config = window["cp_calculatedfieldsf_fbuilder_config"+fnum];
79
- if(cp_calculatedfieldsf_fbuilder_config)
80
- {
81
- var f = $("#fbuilder"+fnum).fbuilder(( typeof cp_calculatedfieldsf_fbuilder_config.obj == 'string' ) ? $.parseJSON(cp_calculatedfieldsf_fbuilder_config.obj) : cp_calculatedfieldsf_fbuilder_config.obj );
82
- f.fBuild.loadData("form_structure"+fnum);
83
- found_form = true;
84
- }
85
- } catch (e) {if(typeof console != 'undefined') console.log(e);}
86
  fcount++;
87
  fnum = "_"+fcount;
88
  }
89
  })(fbuilderjQuery);
90
- if(found_form) fbuilderjQuery.fbuilderGeneratorFlag = 1;
91
  };
92
  fbuilderjQuery(fbuilderjQuery.fbuilderjQueryGenerator);
93
  fbuilderjQuery(window).on('load',fbuilderjQuery.fbuilderjQueryGenerator);
94
  <?php
95
  $buffered_contents = ob_get_contents();
96
  ob_end_clean(); // Clean the output buffer and turn off output buffering
97
- if( !empty( $_REQUEST[ 'min' ] ) )
98
  {
99
  if( !class_exists( 'JSMin' ) )
100
  {
@@ -103,8 +147,12 @@ fbuilderjQuery(window).on('load',fbuilderjQuery.fbuilderjQueryGenerator);
103
 
104
  try{
105
  $buffered_contents = JSMin::minify( $buffered_contents );
106
- $all_js_path = rtrim( dirname( __FILE__ ), '/' ).'/cache/all.js';
107
- @file_put_contents( $all_js_path, $buffered_contents );
108
  }catch( Exception $err){}
109
  }
110
- print $buffered_contents;
 
 
 
 
 
 
1
  <?php
2
+ global $cff_backend_script_generator, $cff_script_generator_min;
3
+
4
  error_reporting(E_ERROR|E_PARSE);
5
+
6
+ if(empty($cff_backend_script_generator)) header('Content-Type: application/x-javascript; charset=UTF-8');
7
+
8
  ob_start(); // Turn on output buffering
9
  ?>
10
  fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
11
  fbuilderjQuery(window).bind( 'pageshow', function( event ){ if( typeof event.originalEvent[ 'persisted' ] != 'undefined' && event.originalEvent[ 'persisted' ] ) location.reload(); } );
12
  fbuilderjQuery.fbuilderjQueryGenerator = function(){
 
 
13
  (function($) {
14
  // Namespace of fbuilder
15
+ if(!('fbuilder' in $))
16
+ {
17
+ $.fbuilder = $.fbuilder || {};
18
+ $.fbuilder[ 'objName' ] = 'fbuilderjQuery';
19
 
20
  <?php
21
  // Load Module files
73
  // ignore the error
74
  }
75
  ?>
76
+ $.fbuilder.generate_form = function(fnum){
77
+ try {
78
+ var cp_calculatedfieldsf_fbuilder_config = window["cp_calculatedfieldsf_fbuilder_config"+fnum];
79
+ if(
80
+ cp_calculatedfieldsf_fbuilder_config &&
81
+ $("#fbuilder"+fnum).length &&
82
+ $("#fbuilder"+fnum).attr('data-processed') == undefined
83
+ )
84
+ {
85
+ if($("#fbuilder"+fnum).is(':visible'))
86
+ {
87
+ var f = $("#fbuilder"+fnum).fbuilder(( typeof cp_calculatedfieldsf_fbuilder_config.obj == 'string' ) ? $.parseJSON(cp_calculatedfieldsf_fbuilder_config.obj) : cp_calculatedfieldsf_fbuilder_config.obj );
88
+ f.fBuild.loadData("form_structure"+fnum);
89
+ f.attr('data-processed', 1);
90
+ }
91
+ else
92
+ {
93
+ $.fbuilder.form_become_visible(
94
+ "#fbuilder"+fnum,
95
+ (function(n){ return function(){
96
+ $.fbuilder.generate_form(n);};
97
+ })(fnum)
98
+ );
99
+ }
100
+ }
101
+ } catch (e) {if(typeof console != 'undefined') console.log(e);}
102
+ }; // End generate_form
103
+
104
+ $.fbuilder.form_become_visible = function(element, callback){
105
+ if(!('hidden_forms' in $.fbuilder)) $.fbuilder.hidden_forms = [];
106
+ $.fbuilder.hidden_forms.push({'element':element, 'callback':callback});
107
+
108
+ if('form_become_visible_interval' in $.fbuilder) clearInterval($.fbuilder['form_become_visible_interval']);
109
+
110
+ $.fbuilder['form_become_visible_interval'] = setInterval(function(){
111
+ for(var i = $.fbuilder.hidden_forms.length - 1; 0<=i; i--)
112
+ {
113
+ if($($.fbuilder.hidden_forms[i]['element']).is(':visible'))
114
+ {
115
+ $.fbuilder.hidden_forms[i]['callback'].call();
116
+ $.fbuilder.hidden_forms.splice(i,1);
117
+ }
118
+ }
119
+ if($.fbuilder.hidden_forms.length == 0) clearInterval($.fbuilder['form_become_visible_interval']);
120
+ }, 500);
121
+ }; // End form_become_visible
122
+
123
+ } // End if(!('fbuilder' in $))
124
+
125
  var fcount = 1;
126
  var fnum = "_"+fcount;
127
 
128
  while(typeof window["cp_calculatedfieldsf_fbuilder_config"+fnum] != 'undefined' || fcount < 10 )
129
  {
130
+ $.fbuilder.generate_form(fnum);
 
 
 
 
 
 
 
 
131
  fcount++;
132
  fnum = "_"+fcount;
133
  }
134
  })(fbuilderjQuery);
 
135
  };
136
  fbuilderjQuery(fbuilderjQuery.fbuilderjQueryGenerator);
137
  fbuilderjQuery(window).on('load',fbuilderjQuery.fbuilderjQueryGenerator);
138
  <?php
139
  $buffered_contents = ob_get_contents();
140
  ob_end_clean(); // Clean the output buffer and turn off output buffering
141
+ if(!empty($_REQUEST['min']) || !empty($cff_script_generator_min))
142
  {
143
  if( !class_exists( 'JSMin' ) )
144
  {
147
 
148
  try{
149
  $buffered_contents = JSMin::minify( $buffered_contents );
 
 
150
  }catch( Exception $err){}
151
  }
152
+
153
+ try{
154
+ $all_js_path = rtrim( dirname( __FILE__ ), '/' ).'/cache/all.js';
155
+ @file_put_contents( $all_js_path, $buffered_contents );
156
+ }catch( Exception $err){}
157
+
158
+ if(empty($cff_backend_script_generator)) print $buffered_contents;
js/fbuilder-pro-admin.jquery.js CHANGED
@@ -38,6 +38,15 @@
38
  return value;
39
  };
40
 
 
 
 
 
 
 
 
 
 
41
  $.fbuilder[ 'htmlDecode' ] = function(value)
42
  {
43
  if( /&(?:#x[a-f0-9]+|#[0-9]+|[a-z0-9]+);?/ig.test( value ) ) value = $( '<div/>' ).html( value ).text();
@@ -488,24 +497,24 @@
488
  // Email fields
489
  if (item.ftype=="femail" || item.ftype=="femailds")
490
  {
491
- email_str += '<option value="'+item.name+'" '+( ( $.inArray( item.name, cu_user_email_field ) != -1 ) ? "selected" : "" )+'>'+item.name+' ('+item.title+')'+'</option>';
492
  }
493
  else
494
  {
495
  // Request cost fields
496
  if(!/(femail)|(fdate)|(ffile)|(fpassword)|(fphone)|(fsectionbreak)|(fpagebreak)|(fsummary)|(fcontainer)|(ffieldset)|(fdiv)|(fmedia)|(fbutton)|(fhtml)/i.test(item.ftype))
497
  {
498
- cost_str += '<option value="'+item.name+'" '+( ( item.name == request_cost ) ? "selected" : "" )+'>'+item.name+'('+(item.title)+')</option>'
499
  }
500
 
501
  // Recurrent Payments
502
  if (item.ftype=="fradio" || item.ftype=="fdropdown")
503
  {
504
- recurrent_str += '<option value="'+item.name+'" '+( ( item.name == paypal_recurrent_field ) ? "selected" : "" )+'>'+item.name+' ('+item.title+')'+'</option>';
505
  }
506
 
507
  // Times Intervals
508
- interval_fields_str += '<option value="'+item.name+'" '+( ( item.name == paypal_price_field ) ? "selected" : "" )+'>'+(item.title)+'</option>';
509
  }
510
  }
511
 
@@ -536,7 +545,7 @@
536
  title:"Untitled Form",
537
  description:"This is my form. Please fill it out. It's awesome!",
538
  formlayout:"top_aligned",
539
- formtemplate:"",
540
  evalequations:1,
541
  evalequationsevent:2,
542
  loading_animation:0,
@@ -545,7 +554,7 @@
545
  customstyles:"",
546
  display:function()
547
  {
548
- return '<div class="fform" id="field"><div class="arrow ui-icon ui-icon-play "></div><h2>'+this.title+'</h2><span>'+this.description+'</span></div>';
549
  },
550
 
551
  showAllSettings:function()
@@ -587,7 +596,7 @@
587
 
588
  if(typeof $.fbuilder.controls[ 'fCalculated' ] != 'undefined')
589
  {
590
- str += '<div><label><input type="checkbox" name="fEvalEquations" id="fEvalEquations" '+( ( this.evalequations ) ? 'CHECKED' : '' )+' /> Eval dynamically the equations associated to the calculated fields</label></div>';
591
 
592
  str += '<div class="groupBox"><label><input type="radio" name="fEvalEquationsEvent" name="fEvalEquationsEvent" value="1" '+( ( this.evalequationsevent == 1 ) ? 'CHECKED' : '' )+' /> Eval the equations in the onchange events</label><label><input type="radio" name="fEvalEquationsEvent" name="fEvalEquationsEvent" value="2" '+( ( 'undefined' == typeof this.evalequationsevent || this.evalequationsevent == 2 ) ? 'CHECKED' : '' )+' /> Eval the equations in the onchange and keyup events</label></div>';
593
  }
@@ -856,7 +865,7 @@
856
 
857
  for(var i = 0, h = values.length; i<h; i++)
858
  {
859
- options += '<option value="'+values[i]+'" '+(values[i] == this.autocomplete ? 'SELECTED' : '')+'>'+values[i]+'</option>';
860
  }
861
  return '<div><label>Autocomplete</label>'+
862
  '<select class="large" name="sAutocomplete" id="sAutocomplete">'+options+'</select><br><i>The field attribute takes precedence over the form settings.</i></div>';
@@ -869,10 +878,18 @@
869
  {
870
  return '<label><input type="checkbox" name="sExclude" id="sExclude" '+((v)?"checked":"")+'>Exclude from submission</label>';
871
  },
 
 
 
 
872
  showReadonly: function(v)
873
  {
874
  return '<label><input type="checkbox" name="sReadonly" id="sReadonly" '+((v)?"checked":"")+'>Read Only</label>';
875
  },
 
 
 
 
876
  showSize: function(v)
877
  {
878
  var str = "";
@@ -954,6 +971,12 @@
954
  $.fbuilder.reloadItems( {'field': e.data.obj} );
955
  });
956
 
 
 
 
 
 
 
957
  $("#sAutocomplete").bind("change", {obj: this}, function(e)
958
  {
959
  e.data.obj.autocomplete = $(this).val();
@@ -1056,7 +1079,9 @@
1056
  if(typeof this.autocomplete != 'undefined') result += $.fbuilder.showSettings.showAutocomplete(this.autocomplete);
1057
  if(typeof this.required != 'undefined') result += $.fbuilder.showSettings.showRequired(this.required);
1058
  if(typeof this.exclude != 'undefined') result += $.fbuilder.showSettings.showExclude(this.exclude);
 
1059
  if(typeof this.readonly != 'undefined') result += $.fbuilder.showSettings.showReadonly(this.readonly);
 
1060
  return result;
1061
  },
1062
 
38
  return value;
39
  };
40
 
41
+ $.fbuilder[ 'sanitize' ] = function(value)
42
+ {
43
+ if(typeof value == 'string')
44
+ value = value.replace(/<script\b.*\bscript>/ig, '')
45
+ .replace(/<script[^>]*>/ig, '')
46
+ .replace(/(\b)(on[a-z]+)\s*=/ig, "$1_$2=");
47
+ return value;
48
+ };
49
+
50
  $.fbuilder[ 'htmlDecode' ] = function(value)
51
  {
52
  if( /&(?:#x[a-f0-9]+|#[0-9]+|[a-z0-9]+);?/ig.test( value ) ) value = $( '<div/>' ).html( value ).text();
497
  // Email fields
498
  if (item.ftype=="femail" || item.ftype=="femailds")
499
  {
500
+ email_str += '<option value="'+item.name+'" '+( ( $.inArray( item.name, cu_user_email_field ) != -1 ) ? "selected" : "" )+'>'+item.name+' ('+$.fbuilder.sanitize(item.title)+')'+'</option>';
501
  }
502
  else
503
  {
504
  // Request cost fields
505
  if(!/(femail)|(fdate)|(ffile)|(fpassword)|(fphone)|(fsectionbreak)|(fpagebreak)|(fsummary)|(fcontainer)|(ffieldset)|(fdiv)|(fmedia)|(fbutton)|(fhtml)/i.test(item.ftype))
506
  {
507
+ cost_str += '<option value="'+item.name+'" '+( ( item.name == request_cost ) ? "selected" : "" )+'>'+item.name+'('+$.fbuilder.sanitize(item.title)+')</option>'
508
  }
509
 
510
  // Recurrent Payments
511
  if (item.ftype=="fradio" || item.ftype=="fdropdown")
512
  {
513
+ recurrent_str += '<option value="'+item.name+'" '+( ( item.name == paypal_recurrent_field ) ? "selected" : "" )+'>'+item.name+' ('+$.fbuilder.sanitize(item.title)+')'+'</option>';
514
  }
515
 
516
  // Times Intervals
517
+ interval_fields_str += '<option value="'+item.name+'" '+( ( item.name == paypal_price_field ) ? "selected" : "" )+'>'+$.fbuilder.sanitize(item.title)+'</option>';
518
  }
519
  }
520
 
545
  title:"Untitled Form",
546
  description:"This is my form. Please fill it out. It's awesome!",
547
  formlayout:"top_aligned",
548
+ formtemplate:$.fbuilder.default_template,
549
  evalequations:1,
550
  evalequationsevent:2,
551
  loading_animation:0,
554
  customstyles:"",
555
  display:function()
556
  {
557
+ return $.fbuilder.sanitize('<div class="fform" id="field"><div class="arrow ui-icon ui-icon-play "></div><h2>'+this.title+'</h2><span>'+this.description+'</span></div>');
558
  },
559
 
560
  showAllSettings:function()
596
 
597
  if(typeof $.fbuilder.controls[ 'fCalculated' ] != 'undefined')
598
  {
599
+ str += '<div><label><input type="checkbox" name="fEvalEquations" id="fEvalEquations" '+( ( this.evalequations ) ? 'CHECKED' : '' )+' /> Dynamically evaluate the equations associated with the calculated fields</label></div>';
600
 
601
  str += '<div class="groupBox"><label><input type="radio" name="fEvalEquationsEvent" name="fEvalEquationsEvent" value="1" '+( ( this.evalequationsevent == 1 ) ? 'CHECKED' : '' )+' /> Eval the equations in the onchange events</label><label><input type="radio" name="fEvalEquationsEvent" name="fEvalEquationsEvent" value="2" '+( ( 'undefined' == typeof this.evalequationsevent || this.evalequationsevent == 2 ) ? 'CHECKED' : '' )+' /> Eval the equations in the onchange and keyup events</label></div>';
602
  }
865
 
866
  for(var i = 0, h = values.length; i<h; i++)
867
  {
868
+ options += '<option value="'+values[i]+'" '+(values[i] == v ? 'SELECTED' : '')+'>'+values[i]+'</option>';
869
  }
870
  return '<div><label>Autocomplete</label>'+
871
  '<select class="large" name="sAutocomplete" id="sAutocomplete">'+options+'</select><br><i>The field attribute takes precedence over the form settings.</i></div>';
878
  {
879
  return '<label><input type="checkbox" name="sExclude" id="sExclude" '+((v)?"checked":"")+'>Exclude from submission</label>';
880
  },
881
+ showSelect2: function(v)
882
+ {
883
+ return '<label><input type="checkbox" name="sSelect2" id="sSelect2" '+((v)?"checked":"")+'>Apply Select2 library (Experimental)</label>';
884
+ },
885
  showReadonly: function(v)
886
  {
887
  return '<label><input type="checkbox" name="sReadonly" id="sReadonly" '+((v)?"checked":"")+'>Read Only</label>';
888
  },
889
+ showNumberpad: function(v)
890
+ {
891
+ return '<label><input type="checkbox" name="sNumberpad" id="sNumberpad" '+((v)?"checked":"")+'>Forcing numberpad on mobiles</label>';
892
+ },
893
  showSize: function(v)
894
  {
895
  var str = "";
971
  $.fbuilder.reloadItems( {'field': e.data.obj} );
972
  });
973
 
974
+ $("#sNumberpad").bind("click", {obj: this}, function(e)
975
+ {
976
+ e.data.obj.numberpad = $(this).is(':checked');
977
+ $.fbuilder.reloadItems( {'field': e.data.obj} );
978
+ });
979
+
980
  $("#sAutocomplete").bind("change", {obj: this}, function(e)
981
  {
982
  e.data.obj.autocomplete = $(this).val();
1079
  if(typeof this.autocomplete != 'undefined') result += $.fbuilder.showSettings.showAutocomplete(this.autocomplete);
1080
  if(typeof this.required != 'undefined') result += $.fbuilder.showSettings.showRequired(this.required);
1081
  if(typeof this.exclude != 'undefined') result += $.fbuilder.showSettings.showExclude(this.exclude);
1082
+ if(typeof this.select2 != 'undefined') result += $.fbuilder.showSettings.showSelect2(this.select2);
1083
  if(typeof this.readonly != 'undefined') result += $.fbuilder.showSettings.showReadonly(this.readonly);
1084
+ if(typeof this.numberpad != 'undefined') result += $.fbuilder.showSettings.showNumberpad(this.numberpad);
1085
  return result;
1086
  },
1087
 
js/fbuilder-pro-public.jquery.js CHANGED
@@ -1,4 +1,4 @@
1
- $.fbuilder['version'] = '1.0.400';
2
  $.fbuilder['controls'] = $.fbuilder['controls'] || {};
3
  $.fbuilder['forms'] = $.fbuilder['forms'] || {};
4
 
@@ -15,7 +15,15 @@
15
  return (/&(?:#x[a-f0-9]+|#[0-9]+|[a-z0-9]+);?/ig.test(value)) ? $('<div/>').html(value).text() : value;
16
  };
17
 
18
- $.fbuilder['escapeSymbol'] = function( value ) // Escape the symbols used in regulars expressions
 
 
 
 
 
 
 
 
19
  {
20
  return value.replace(/([\^\$\-\.\,\[\]\(\)\/\\\*\?\+\!\{\}])/g, "\\$1");
21
  };
@@ -217,7 +225,7 @@
217
  for( var fieldId in data )
218
  {
219
  item = formObj.getItem(fieldId+id);
220
- try{ if('setVal' in item) item.setVal(data[fieldId], true); }
221
  catch(err){}
222
  }
223
 
@@ -263,7 +271,7 @@
263
 
264
  $.extend($.validator.messages, opt.messages);
265
 
266
- $("#cp_calculatedfieldsf_pform"+fnum).validate({
267
  ignore:".ignore,.ignorepb",
268
  errorElement: "div",
269
  errorPlacement: function(e, element)
@@ -310,7 +318,7 @@
310
  if( !opt.cached )
311
  {
312
  page_tag = $('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
313
- header_tag.html(theForm.show());
314
  fieldlist_tag.addClass(theForm.formlayout).append(page_tag);
315
 
316
  for(i; i<items.length; i++)
@@ -324,7 +332,7 @@
324
  }
325
  else
326
  {
327
- page_tag.append(items[i].show());
328
  if (items[i].predefinedClick)
329
  {
330
  page_tag.find("#"+items[i].name).attr({placeholder: items[i].predefined, value: ""});
@@ -339,7 +347,14 @@
339
  if(items[i].userhelp && items[i].userhelp.length)
340
  {
341
  if(items[i].tooltipIcon) $('<span class="cff-help-icon"></span>').attr('uh', items[i].userhelp).appendTo($(uh.children('label')[0] || uh));
342
- else $(uh.find(".dfield")[0] || uh).attr('uh', items[i].userhelp);
 
 
 
 
 
 
 
343
  }
344
  uh.find(".uh").remove();
345
  }
@@ -482,8 +497,72 @@
482
  return '<div class="fform" id="field"><h2>'+this.title+'</h2><span>'+this.description+'</span></div>';
483
  },
484
  after_show:function( id ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
485
  var form = $( '#cp_calculatedfieldsf_pform'+id );
486
 
 
 
 
 
 
 
 
 
 
 
 
487
  if(typeof $.fn.fbuilder_localstorage != 'undefined' && form.hasClass('persist-form'))
488
  {
489
  form.fbuilder_localstorage();
@@ -603,6 +682,18 @@
603
  $(document)[i]('change depEvent', s, function(evt){
604
  if(me['set_'+attr]) me['set_'+attr](me._getAttr(attr), $(evt.target).hasClass('ignore'));
605
  });
 
 
 
 
 
 
 
 
 
 
 
 
606
  }
607
  }
608
  },
1
+ $.fbuilder['version'] = '1.1.63';
2
  $.fbuilder['controls'] = $.fbuilder['controls'] || {};
3
  $.fbuilder['forms'] = $.fbuilder['forms'] || {};
4
 
15
  return (/&(?:#x[a-f0-9]+|#[0-9]+|[a-z0-9]+);?/ig.test(value)) ? $('<div/>').html(value).text() : value;
16
  };
17
 
18
+ $.fbuilder[ 'sanitize' ] = function(value)
19
+ {
20
+ if(typeof value == 'string')
21
+ value = value.replace(/<script\b.*\bscript>/ig, '')
22
+ .replace(/<script[^>]*>/ig, '');
23
+ return value;
24
+ };
25
+
26
+ $.fbuilder['escapeSymbol'] = function( value ) // Escape the symbols used in regulars expressions
27
  {
28
  return value.replace(/([\^\$\-\.\,\[\]\(\)\/\\\*\?\+\!\{\}])/g, "\\$1");
29
  };
225
  for( var fieldId in data )
226
  {
227
  item = formObj.getItem(fieldId+id);
228
+ try{ if('setVal' in item) item.setVal(data[fieldId], true); $('[name*="'+item.name+'"]').trigger('trigger_ds'); }
229
  catch(err){}
230
  }
231
 
271
 
272
  $.extend($.validator.messages, opt.messages);
273
 
274
+ $("#cp_calculatedfieldsf_pform"+opt.identifier).validate({
275
  ignore:".ignore,.ignorepb",
276
  errorElement: "div",
277
  errorPlacement: function(e, element)
318
  if( !opt.cached )
319
  {
320
  page_tag = $('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
321
+ header_tag.html($.fbuilder.sanitize(theForm.show()));
322
  fieldlist_tag.addClass(theForm.formlayout).append(page_tag);
323
 
324
  for(i; i<items.length; i++)
332
  }
333
  else
334
  {
335
+ page_tag.append((items[i].ftype != 'fhtml') ? $.fbuilder.sanitize(items[i].show()) : items[i].show());
336
  if (items[i].predefinedClick)
337
  {
338
  page_tag.find("#"+items[i].name).attr({placeholder: items[i].predefined, value: ""});
347
  if(items[i].userhelp && items[i].userhelp.length)
348
  {
349
  if(items[i].tooltipIcon) $('<span class="cff-help-icon"></span>').attr('uh', items[i].userhelp).appendTo($(uh.children('label')[0] || uh));
350
+ else{
351
+ var target = uh.find('input[type="button"],input[type="reset"],input[type="text"],input[type="number"],input[type="email"],input[type="file"],input[type="color"],input[type="date"],input[type="password"],input[type="email"],select,textarea');
352
+ if(!target.length) target = uh.find('.slider');
353
+ if(!target.length) target = uh.find('.dfield label');
354
+ if(!target.length) target = uh.find('.dfield');
355
+ if(!target.length) target = uh;
356
+ $(target).attr('uh', items[i].userhelp);
357
+ }
358
  }
359
  uh.find(".uh").remove();
360
  }
497
  return '<div class="fform" id="field"><h2>'+this.title+'</h2><span>'+this.description+'</span></div>';
498
  },
499
  after_show:function( id ){
500
+ // Common validators
501
+ if( typeof $[ 'validator' ] != 'undefined' )
502
+ {
503
+ if(!('cffcurrency' in $.validator.methods))
504
+ $.validator.addMethod(
505
+ 'cffcurrency',
506
+ function(v, el)
507
+ {
508
+ var f = el.id.match( /_\d+$/),
509
+ esc = $.fbuilder.escapeSymbol,
510
+ r;
511
+
512
+ e = $.fbuilder['forms'][f[0]].getItem( el.name );
513
+ r = new RegExp('^\\s*('+esc(e.currencySymbol)+')?\\s*\\-?\\d+('+esc(e.thousandSeparator)+'\\d{3})*'+((e.noCents) ? '': '('+e.centSeparator+'\\d+)?')+'\\s*('+esc(e.currencyText)+')?\\s*$','i');
514
+
515
+ return this.optional(el) || r.test(v) || ($.isNumeric(v) && (!e.noCents || v === FLOOR(v)));
516
+ },
517
+ $.validator.messages['currency']
518
+ );
519
+ $.validator.methods.number = function(v, el)
520
+ {
521
+ var f = el.id.match(/_\d+$/),
522
+ esc = $.fbuilder.escapeSymbol,
523
+ e, r;
524
+
525
+ if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
526
+ if(!e) e = {thousandSeparator: ',', decimalSymbol: '.'};
527
+
528
+ r = new RegExp('^\\s*\\-?\\d+('+esc(e.thousandSeparator)+'\\d{3})*('+esc(e.decimalSymbol)+'\\d+)?\\s*\\%?\\s*$','i');
529
+ return this.optional(el) || r.test(v) || $.isNumeric(v);
530
+ };
531
+ $.validator.methods.min = function(v, el, p)
532
+ {
533
+ var f = el.id.match( /_\d+$/), e;
534
+ if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
535
+ if(e){
536
+ v = e.val();
537
+ if('dformat' in e && e.dformat == 'percent') v*=100;
538
+ }
539
+ return this.optional(el) || v >= p;
540
+ };
541
+ $.validator.methods.max = function(v, el, p)
542
+ {
543
+ var f = el.id.match( /_\d+$/), e;
544
+ if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
545
+ if(e){
546
+ v = e.val();
547
+ if('dformat' in e && e.dformat == 'percent') v*=100;
548
+ }
549
+ return this.optional(el) || v <= p;
550
+ };
551
+ }
552
+
553
  var form = $( '#cp_calculatedfieldsf_pform'+id );
554
 
555
+ // Disabling enter key
556
+ form.on('keydown keyup keypress', '[type="text"],[type="number"],[type="password"],[type="email"]',
557
+ function(evt){
558
+ if (evt.keyCode === 13)
559
+ {
560
+ evt.preventDefault();
561
+ evt.stopPropagation();
562
+ return false;
563
+ }
564
+ });
565
+
566
  if(typeof $.fn.fbuilder_localstorage != 'undefined' && form.hasClass('persist-form'))
567
  {
568
  form.fbuilder_localstorage();
682
  $(document)[i]('change depEvent', s, function(evt){
683
  if(me['set_'+attr]) me['set_'+attr](me._getAttr(attr), $(evt.target).hasClass('ignore'));
684
  });
685
+
686
+ $(document)['one']('showHideDepEvent', function(evt,formId){
687
+ try
688
+ {
689
+ if(me['set_'+attr])
690
+ {
691
+ me['set_'+attr](me._getAttr(attr), $(s).hasClass('ignore'));
692
+ $('#'+formId).validate().resetForm();
693
+ }
694
+ }
695
+ catch(err){}
696
+ });
697
  }
698
  }
699
  },
js/fields-admin/01_fbuilder.ftext.js CHANGED
@@ -26,7 +26,7 @@
26
  regExpMssg:"",
27
  display:function()
28
  {
29
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
30
  },
31
  editItemEvents:function()
32
  {
@@ -48,7 +48,7 @@
48
  items[i].name != $(this).attr("dname")
49
  )
50
  {
51
- str += '<option value="'+$.fbuilder.htmlEncode(items[i].name)+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].title)+'</option>';
52
  }
53
  }
54
  $(this).html(str);
26
  regExpMssg:"",
27
  display:function()
28
  {
29
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
30
  },
31
  editItemEvents:function()
32
  {
48
  items[i].name != $(this).attr("dname")
49
  )
50
  {
51
+ str += '<option value="'+$.fbuilder.htmlEncode(items[i].name)+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+$.fbuilder.sanitize(items[i].title)+'</option>';
52
  }
53
  }
54
  $(this).html(str);
js/fields-admin/02_fbuilder.fcurrency.js CHANGED
@@ -17,6 +17,7 @@
17
  required:false,
18
  exclude:false,
19
  readonly:false,
 
20
  size:"small",
21
  currencySymbol:"$",
22
  currencyText:"USD",
@@ -71,7 +72,7 @@
71
  },
72
  display:function()
73
  {
74
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.getPredefinedValue())+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
75
  },
76
  editItemEvents:function()
77
  {
17
  required:false,
18
  exclude:false,
19
  readonly:false,
20
+ numberpad:false,
21
  size:"small",
22
  currencySymbol:"$",
23
  currencyText:"USD",
72
  },
73
  display:function()
74
  {
75
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.getPredefinedValue())+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
76
  },
77
  editItemEvents:function()
78
  {
js/fields-admin/02_fbuilder.fnumber.js CHANGED
@@ -17,6 +17,7 @@
17
  required:false,
18
  exclude:false,
19
  readonly:false,
 
20
  size:"small",
21
  thousandSeparator:"",
22
  decimalSymbol:".",
@@ -27,7 +28,7 @@
27
  formats:new Array("digits","number", "percent"),
28
  display:function()
29
  {
30
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
31
  },
32
  editItemEvents:function()
33
  {
17
  required:false,
18
  exclude:false,
19
  readonly:false,
20
+ numberpad:false,
21
  size:"small",
22
  thousandSeparator:"",
23
  decimalSymbol:".",
28
  formats:new Array("digits","number", "percent"),
29
  display:function()
30
  {
31
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
32
  },
33
  editItemEvents:function()
34
  {
js/fields-admin/02_fbuilder.fslider.js CHANGED
@@ -31,7 +31,7 @@
31
  maxCaption:"",
32
  display:function()
33
  {
34
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+( ( !this.range ) ? $.fbuilder.htmlEncode( this.predefined ) : $.fbuilder.htmlEncode( '['+this.predefinedMin+','+this.predefinedMax+']' ) )+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
35
  },
36
  editItemEvents:function()
37
  {
31
  maxCaption:"",
32
  display:function()
33
  {
34
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+( ( !this.range ) ? $.fbuilder.htmlEncode( this.predefined ) : $.fbuilder.htmlEncode( '['+this.predefinedMin+','+this.predefinedMax+']' ) )+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
35
  },
36
  editItemEvents:function()
37
  {
js/fields-admin/03_fbuilder.fcolor.js CHANGED
@@ -20,7 +20,7 @@
20
  size:"default",
21
  display:function()
22
  {
23
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="color" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
24
  },
25
  editItemEvents:function()
26
  {
20
  size:"default",
21
  display:function()
22
  {
23
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="color" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
24
  },
25
  editItemEvents:function()
26
  {
js/fields-admin/03_fbuilder.femail.js CHANGED
@@ -24,7 +24,7 @@
24
  regExpMssg:"",
25
  display:function()
26
  {
27
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
28
  },
29
  editItemEvents:function()
30
  {
@@ -45,7 +45,7 @@
45
  items[i].name != $(this).attr("dname")
46
  )
47
  {
48
- str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].title)+'</option>';
49
  }
50
  }
51
  $(this).html(str);
@@ -54,7 +54,11 @@
54
  },
55
  showSpecialDataInstance: function()
56
  {
57
- var str = '<label style="padding-bottom:5px;">Validate against a regular expression <input type="button" onclick="window.open(\'https://cff-bundles.dwbooster.com/product/regexp\');" value="+" title="Resources" /></label><input type="text" name="sRegExp" id="sRegExp" value="'+$.fbuilder.htmlEncode(this.regExp)+'" class="large" /><label>Error message when the regular expression fails</label><input type="text" name="sRegExpMssg" id="sRegExpMssg" value="'+$.fbuilder.htmlEncode(this.regExpMssg)+'" class="large" />';
 
 
 
 
58
  return str;
59
  }
60
  });
24
  regExpMssg:"",
25
  display:function()
26
  {
27
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
28
  },
29
  editItemEvents:function()
30
  {
45
  items[i].name != $(this).attr("dname")
46
  )
47
  {
48
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+$.fbuilder.sanitize(items[i].title)+'</option>';
49
  }
50
  }
51
  $(this).html(str);
54
  },
55
  showSpecialDataInstance: function()
56
  {
57
+ var str = '<label style="padding-bottom:5px;">Validate against a regular expression <input type="button" onclick="window.open(\'https://cff-bundles.dwbooster.com/product/regexp\');" value="+" title="Resources" /></label><input type="text" name="sRegExp" id="sRegExp" value="'+$.fbuilder.htmlEncode(this.regExp)+'" class="large" /><label>Error message when the regular expression fails</label><input type="text" name="sRegExpMssg" id="sRegExpMssg" value="'+$.fbuilder.htmlEncode(this.regExpMssg)+'" class="large" /><div class="cff-email-validator"></div>';
58
+
59
+ $.ajax('admin.php?page=cff-email-validator-submenu').fail(function(a,b,c){
60
+ $('.cff-email-validator').html('<a class="button-primary large" href="https://cff-bundles.dwbooster.com/product/email-validator" target="_blank" style="text-align:center;margin-top:10px;">Advanced email validator [+]</a>')
61
+ });
62
  return str;
63
  }
64
  });
js/fields-admin/04_fbuilder.fdate.js CHANGED
@@ -53,7 +53,7 @@
53
  {
54
  var me = this,
55
  dformat = me.dformat.replace(/\//g, me.dseparator);
56
- return '<div class="fields '+me.name+' '+this.ftype+'" id="field'+me.form_identifier+'-'+me.index+'" title="'+me.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+me.title+''+((me.required)?"*":"")+' ('+dformat+')</label><div class="dfield"><input class="field disabled '+me.size+'" type="text" value="'+$.fbuilder.htmlEncode(me.predefined)+'"/><span class="uh">'+me.userhelp+'</span></div><div class="clearer" /></div>';
57
  },
58
  editItemEvents:function()
59
  {
53
  {
54
  var me = this,
55
  dformat = me.dformat.replace(/\//g, me.dseparator);
56
+ return $.fbuilder.sanitize('<div class="fields '+me.name+' '+this.ftype+'" id="field'+me.form_identifier+'-'+me.index+'" title="'+me.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+me.title+''+((me.required)?"*":"")+' ('+dformat+')</label><div class="dfield"><input class="field disabled '+me.size+'" type="text" value="'+$.fbuilder.htmlEncode(me.predefined)+'"/><span class="uh">'+me.userhelp+'</span></div><div class="clearer" /></div>');
57
  },
58
  editItemEvents:function()
59
  {
js/fields-admin/05_fbuilder.ftextarea.js CHANGED
@@ -24,7 +24,7 @@
24
  rows:4,
25
  display:function()
26
  {
27
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><textarea '+((!/^\s*$/.test(this.rows)) ? 'rows='+this.rows : '' )+' class="field disabled '+this.size+'">'+this.predefined+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
28
  },
29
  editItemEvents:function()
30
  {
24
  rows:4,
25
  display:function()
26
  {
27
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><textarea '+((!/^\s*$/.test(this.rows)) ? 'rows='+this.rows : '' )+' class="field disabled '+this.size+'">'+this.predefined+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
28
  },
29
  editItemEvents:function()
30
  {
js/fields-admin/06_fbuilder.fcheck.js CHANGED
@@ -18,6 +18,7 @@
18
  readonly:false,
19
  toSubmit:'text',
20
  merge:1,
 
21
  max:-1,
22
  maxError:"Check no more than {0} boxes",
23
  showDep:false,
@@ -36,7 +37,7 @@
36
  {
37
  str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/> '+$.fbuilder.htmlDecode(this.choices[i])+'</div>';
38
  }
39
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
40
  },
41
  editItemEvents:function()
42
  {
@@ -185,6 +186,7 @@
185
  evt = [
186
  {s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
187
  {s:'[name="sMerge"]', e:"change", l:"merge", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
 
188
  {s:'[name="sMax"]', e:"change keyup", l:"max", f: function(el){
189
  var v = el.val();
190
  return ($.isNumeric(v)) ? Math.round(v) : -1;
@@ -195,8 +197,12 @@
195
  {
196
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
197
  for (var i=0;i<items.length;i++)
198
- if (items[i].name != me.name && items[i].ftype != 'fPageBreak')
199
- str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+( ( typeof items[ i ].title != 'undefined' ) ? ' (' + items[ i ].title + ')' : '' ) +'</option>';
 
 
 
 
200
  $(this).html(str);
201
  });
202
 
@@ -204,7 +210,8 @@
204
  },
205
  mergeValues: function()
206
  {
207
- return '<div class="choicesSet"><label><input type="checkbox" name="sMerge" '+((this.merge) ? ' CHECKED ' : '')+'/> Merge ticked up options (sum or concatenation) or their values are returned as an array.</label></div>';
 
208
  },
209
  attributeToSubmit: function()
210
  {
18
  readonly:false,
19
  toSubmit:'text',
20
  merge:1,
21
+ onoff:0,
22
  max:-1,
23
  maxError:"Check no more than {0} boxes",
24
  showDep:false,
37
  {
38
  str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/> '+$.fbuilder.htmlDecode(this.choices[i])+'</div>';
39
  }
40
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
41
  },
42
  editItemEvents:function()
43
  {
186
  evt = [
187
  {s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
188
  {s:'[name="sMerge"]', e:"change", l:"merge", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
189
+ {s:'[name="sOnOff"]', e:"change", l:"onoff", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
190
  {s:'[name="sMax"]', e:"change keyup", l:"max", f: function(el){
191
  var v = el.val();
192
  return ($.isNumeric(v)) ? Math.round(v) : -1;
197
  {
198
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
199
  for (var i=0;i<items.length;i++)
200
+ {
201
+ if (items[i].name != me.name && items[i].ftype != 'fPageBreak' && items[i].ftype != 'frecordsetds')
202
+ {
203
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+( ( typeof items[ i ].title != 'undefined' ) ? ' (' + $.fbuilder.sanitize(items[ i ].title) + ')' : '' ) +'</option>';
204
+ }
205
+ }
206
  $(this).html(str);
207
  });
208
 
210
  },
211
  mergeValues: function()
212
  {
213
+ return '<div class="choicesSet"><label><input type="checkbox" name="sMerge" '+((this.merge) ? ' CHECKED ' : '')+'/> Merge ticked up options (sum or concatenation) or their values are returned as an array.</label></div>'+
214
+ '<div class="choicesSet"><label><input type="checkbox" name="sOnOff" '+((this.onoff) ? ' CHECKED ' : '')+'/> Display as on/off switch.</label></div>';
215
  },
216
  attributeToSubmit: function()
217
  {
js/fields-admin/07_fbuilder.fradio.js CHANGED
@@ -20,6 +20,7 @@
20
  choiceSelected:"",
21
  showDep:false,
22
  untickAccepted:true,
 
23
  init:function()
24
  {
25
  this.choices = new Array("First Choice","Second Choice","Third Choice");
@@ -34,7 +35,7 @@
34
  {
35
  str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="radio" i="'+i+'" '+(( this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+$.fbuilder.htmlDecode( this.choices[i] )+'</div>';
36
  }
37
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
38
  },
39
  editItemEvents:function()
40
  {
@@ -173,15 +174,16 @@
173
  var me = this,
174
  items = me.fBuild.getItems(),
175
  evt = [{s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
176
- {s:'[name="sUntickAccepted"]',e:"click", l:"untickAccepted",f:function(el){return el.is(':checked');}}];
 
177
  $('.dependencies').each(function()
178
  {
179
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
180
  for (var i=0;i<items.length;i++)
181
  {
182
- if (items[i].name != me.name && items[i].ftype != 'fPageBreak')
183
  {
184
- str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+ ( ( typeof items[i].title != 'undefined' ) ? ' (' + items[i].title + ')' : '' ) + ' </option>';
185
  }
186
  }
187
  $(this).html(str);
@@ -190,7 +192,8 @@
190
  },
191
  attributeToSubmit: function()
192
  {
193
- return '<div class="choicesSet"><label>Value to Submit</label><div class="column width50"><label><input type="radio" name="sToSubmit" value="text" '+((this.toSubmit == 'text') ? ' CHECKED ' : '')+'/> Choice Text</label></div><div class="column width50"><label><input type="radio" name="sToSubmit" value="value" '+((this.toSubmit == 'value') ? ' CHECKED ' : '')+'/> Choice Value</label></div><div class="clearer" /></div>';
 
194
  },
195
  allowUntick: function()
196
  {
20
  choiceSelected:"",
21
  showDep:false,
22
  untickAccepted:true,
23
+ onoff:0,
24
  init:function()
25
  {
26
  this.choices = new Array("First Choice","Second Choice","Third Choice");
35
  {
36
  str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="radio" i="'+i+'" '+(( this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+$.fbuilder.htmlDecode( this.choices[i] )+'</div>';
37
  }
38
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
39
  },
40
  editItemEvents:function()
41
  {
174
  var me = this,
175
  items = me.fBuild.getItems(),
176
  evt = [{s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
177
+ {s:'[name="sOnOff"]', e:"change", l:"onoff", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
178
+ {s:'[name="sUntickAccepted"]',e:"click", l:"untickAccepted",f:function(el){return el.is(':checked');}}];
179
  $('.dependencies').each(function()
180
  {
181
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
182
  for (var i=0;i<items.length;i++)
183
  {
184
+ if (items[i].name != me.name && items[i].ftype != 'fPageBreak' && items[i].ftype != 'frecordsetds')
185
  {
186
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+ ( ( typeof items[i].title != 'undefined' ) ? ' (' + $.fbuilder.sanitize(items[i].title) + ')' : '' ) + ' </option>';
187
  }
188
  }
189
  $(this).html(str);
192
  },
193
  attributeToSubmit: function()
194
  {
195
+ return '<div class="choicesSet"><label><input type="checkbox" name="sOnOff" '+((this.onoff) ? ' CHECKED ' : '')+'/> Display as on/off switch.</label></div>'+
196
+ '<div class="choicesSet"><label>Value to Submit</label><div class="column width50"><label><input type="radio" name="sToSubmit" value="text" '+((this.toSubmit == 'text') ? ' CHECKED ' : '')+'/> Choice Text</label></div><div class="column width50"><label><input type="radio" name="sToSubmit" value="value" '+((this.toSubmit == 'value') ? ' CHECKED ' : '')+'/> Choice Value</label></div><div class="clearer" /></div>';
197
  },
198
  allowUntick: function()
199
  {
js/fields-admin/08_fbuilder.fdropdown.js CHANGED
@@ -18,6 +18,7 @@
18
  toSubmit:'text',
19
  merge:0,
20
  choiceSelected:"",
 
21
  multiple: false,
22
  vChoices: 1,
23
  showDep:false,
@@ -31,7 +32,7 @@
31
  display:function()
32
  {
33
  this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
34
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><select class="field disabled '+this.size+'" ><option>'+this.choiceSelected+'</option></select><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
35
  },
36
  editItemEvents:function()
37
  {
@@ -181,9 +182,8 @@
181
  evt = [
182
  {s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
183
  {s:'[name="sMerge"]', e:"change", l:"merge", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
184
- {s:'[name="sMultiple"]', e:"click", l:"multiple", f: function(el){
185
- return el.is(':checked');
186
- }},
187
  {s:'[name="sVChoices"]', e:"change keyup", l:"vChoices", f: function(el){
188
  var v = el.val();
189
  return ($.isNumeric(v)) ? Math.ceil(v) : 1;
@@ -194,9 +194,9 @@
194
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
195
  for (var i=0;i<items.length;i++)
196
  {
197
- if (items[i].name != me.name && items[i].ftype != 'fPageBreak')
198
  {
199
- str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+( ( typeof items[ i ].title != 'undefined' ) ? ' (' + items[ i ].title + ')' : '' )+'</option>';
200
  }
201
  }
202
  $(this).html(str);
18
  toSubmit:'text',
19
  merge:0,
20
  choiceSelected:"",
21
+ select2: false,
22
  multiple: false,
23
  vChoices: 1,
24
  showDep:false,
32
  display:function()
33
  {
34
  this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
35
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><select class="field disabled '+this.size+'" ><option>'+this.choiceSelected+'</option></select><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
36
  },
37
  editItemEvents:function()
38
  {
182
  evt = [
183
  {s:'[name="sToSubmit"]', e:"click", l:"toSubmit"},
184
  {s:'[name="sMerge"]', e:"change", l:"merge", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
185
+ {s:'[name="sSelect2"]', e:"change", l:"select2", f: function(el){return el.is(':checked');}},
186
+ {s:'[name="sMultiple"]', e:"click", l:"multiple", f: function(el){return el.is(':checked');}},
 
187
  {s:'[name="sVChoices"]', e:"change keyup", l:"vChoices", f: function(el){
188
  var v = el.val();
189
  return ($.isNumeric(v)) ? Math.ceil(v) : 1;
194
  var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
195
  for (var i=0;i<items.length;i++)
196
  {
197
+ if (items[i].name != me.name && items[i].ftype != 'fPageBreak' && items[i].ftype != 'frecordsetds')
198
  {
199
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].name)+( ( typeof items[ i ].title != 'undefined' ) ? ' (' + $.fbuilder.sanitize(items[ i ].title) + ')' : '' )+'</option>';
200
  }
201
  }
202
  $(this).html(str);
js/fields-admin/09_fbuilder.ffile.js CHANGED
@@ -23,7 +23,7 @@
23
  thumb_height: '',
24
  display:function()
25
  {
26
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input type="file" disabled class="field '+this.size+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
27
  },
28
  editItemEvents:function()
29
  {
23
  thumb_height: '',
24
  display:function()
25
  {
26
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input type="file" disabled class="field '+this.size+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
27
  },
28
  editItemEvents:function()
29
  {
js/fields-admin/10_fbuilder.fpassword.js CHANGED
@@ -24,7 +24,7 @@
24
  regExpMssg:"",
25
  display:function()
26
  {
27
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="password" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
28
  },
29
  editItemEvents:function()
30
  {
@@ -47,7 +47,7 @@
47
  items[i].name != $(this).attr("dname")
48
  )
49
  {
50
- str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].title)+'</option>';
51
  }
52
  }
53
  $(this).html(str);
24
  regExpMssg:"",
25
  display:function()
26
  {
27
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="password" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
28
  },
29
  editItemEvents:function()
30
  {
47
  items[i].name != $(this).attr("dname")
48
  )
49
  {
50
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+$.fbuilder.sanitize(items[i].title)+'</option>';
51
  }
52
  }
53
  $(this).html(str);
js/fields-admin/11_fbuilder.fphone.js CHANGED
@@ -36,7 +36,7 @@
36
  str += '<div class="uh_phone" ><input type="text" class="field disabled" style="width:'+(15*$.trim(tmp[i]).length)+'px" value="'+((tmpv[i])?tmpv[i]:"")+'" maxlength="'+$.trim(tmp[i]).length+'" /><div class="l">'+$.trim(tmp[i])+'</div></div>';
37
  }
38
  }
39
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
40
  },
41
  editItemEvents:function()
42
  {
36
  str += '<div class="uh_phone" ><input type="text" class="field disabled" style="width:'+(15*$.trim(tmp[i]).length)+'px" value="'+((tmpv[i])?tmpv[i]:"")+'" maxlength="'+$.trim(tmp[i]).length+'" /><div class="l">'+$.trim(tmp[i])+'</div></div>';
37
  }
38
  }
39
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
40
  },
41
  editItemEvents:function()
42
  {
js/fields-admin/12_fbuilder.fcommentarea.js CHANGED
@@ -15,7 +15,7 @@
15
  userhelp:"A description of the section goes here.",
16
  display:function()
17
  {
18
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>';
19
  },
20
  editItemEvents:function()
21
  {
15
  userhelp:"A description of the section goes here.",
16
  display:function()
17
  {
18
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>');
19
  },
20
  editItemEvents:function()
21
  {
js/fields-admin/13_fbuilder.fhidden.js CHANGED
@@ -16,7 +16,7 @@
16
  predefined:"",
17
  display:function()
18
  {
19
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><span class="uh">'+this.predefined+'</span><div class="clearer" /></div>';
20
  },
21
  editItemEvents:function()
22
  {
16
  predefined:"",
17
  display:function()
18
  {
19
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+'</label><span class="uh">'+this.predefined+'</span><div class="clearer" /></div>');
20
  },
21
  editItemEvents:function()
22
  {
js/fields-admin/14_fbuilder.fsectionbreak.js CHANGED
@@ -15,7 +15,7 @@
15
  userhelp:"A description of the section goes here.",
16
  display:function()
17
  {
18
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>';
19
  },
20
  editItemEvents:function()
21
  {
15
  userhelp:"A description of the section goes here.",
16
  display:function()
17
  {
18
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>');
19
  },
20
  editItemEvents:function()
21
  {
js/fields-admin/15_fbuilder.fpagebreak.js CHANGED
@@ -14,7 +14,7 @@
14
  ftype:"fPageBreak",
15
  display:function()
16
  {
17
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>';
18
  },
19
  editItemEvents:function()
20
  {
14
  ftype:"fPageBreak",
15
  display:function()
16
  {
17
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>');
18
  },
19
  editItemEvents:function()
20
  {
js/fields-admin/16_fbuilder.fsummary.js CHANGED
@@ -18,7 +18,7 @@
18
  valueClassname:"summary-field-value",
19
  display:function()
20
  {
21
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><span class="field">'+this.fields+'</span></div><div class="clearer" /></div>';
22
  },
23
  editItemEvents:function()
24
  {
@@ -41,7 +41,7 @@
41
  },
42
  showAllSettings:function()
43
  {
44
- return this.showTitle()+this.showSummaryFields()+this.showCsslayout();
45
  },
46
  showSummaryFields: function()
47
  {
@@ -53,7 +53,7 @@
53
 
54
  for(var i=0; i<items.length; i++)
55
  {
56
- str += '<option value="'+items[i].name+'">'+( ( typeof items[i].title != 'undefined' ) ? items[i].title : '' )+'('+items[i].name+')'+'</option>';
57
  }
58
  str += '</select><div style="margin-top:10px;"><input type="button" value="+" name="sPlusBtn" id="sPlusBtn" style="padding:3px 10px;" /></div>'+
59
  '<label>Exclude empty fields: <input type="checkbox" id="sExcludeEmpty" name="sExcludeEmpty" '+((this.exclude_empty) ? 'CHECKED' : '')+'/></label>'+
18
  valueClassname:"summary-field-value",
19
  display:function()
20
  {
21
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><span class="field">'+this.fields+'</span></div><div class="clearer" /></div>');
22
  },
23
  editItemEvents:function()
24
  {
41
  },
42
  showAllSettings:function()
43
  {
44
+ return this.showFieldType()+this.showTitle()+this.showSummaryFields()+this.showCsslayout();
45
  },
46
  showSummaryFields: function()
47
  {
53
 
54
  for(var i=0; i<items.length; i++)
55
  {
56
+ str += '<option value="'+items[i].name+'">'+( ( typeof items[i].title != 'undefined' ) ? $.fbuilder.sanitize(items[i].title) : '' )+'('+items[i].name+')'+'</option>';
57
  }
58
  str += '</select><div style="margin-top:10px;"><input type="button" value="+" name="sPlusBtn" id="sPlusBtn" style="padding:3px 10px;" /></div>'+
59
  '<label>Exclude empty fields: <input type="checkbox" id="sExcludeEmpty" name="sExcludeEmpty" '+((this.exclude_empty) ? 'CHECKED' : '')+'/></label>'+
js/fields-admin/29_fbuilder.ffieldset.fc.js CHANGED
@@ -20,7 +20,7 @@
20
  collapsed:false, // Admin
21
  display:function()
22
  {
23
- return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><FIELDSET class="fcontainer">'+( ( !/^\s*$/.test( this.title ) ) ? '<LEGEND>'+this.title+'</LEGEND>' : '' )+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></FIELDSET></div><div class="clearer" /></div>';
24
  },
25
  editItemEvents:function()
26
  {
20
  collapsed:false, // Admin
21
  display:function()
22
  {
23
+ return $.fbuilder.sanitize('<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><FIELDSET class="fcontainer">'+( ( !/^\s*$/.test( this.title ) ) ? '<LEGEND>'+this.title+'</LEGEND>' : '' )+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></FIELDSET></div><div class="clearer" /></div>');
24
  },
25
  editItemEvents:function()
26
  {
js/fields-admin/30_fbuilder.fdiv.fc.js CHANGED
@@ -18,7 +18,7 @@
18
  collapsed:false,
19
  display:function()
20
  {
21
- return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><div class="fcontainer">'+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></div></div><div class="clearer" /></div>';
22
  },
23
  showTitle:function(){ return ''; },
24
  editItemEvents:function()
18
  collapsed:false,
19
  display:function()
20
  {
21
+ return $.fbuilder.sanitize('<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><div class="fcontainer">'+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></div></div><div class="clearer" /></div>');
22
  },
23
  showTitle:function(){ return ''; },
24
  editItemEvents:function()
js/fields-admin/31_fbuilder.fmedia.js CHANGED
@@ -109,7 +109,7 @@
109
  },
110
  display:function()
111
  {
112
- return '<div class="fields fmark '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this[ '_display_' + this.sMediaType ]()+'</label><span class="uh">'+this.data[ this.sMediaType ][ 'sFigcaption' ]+'</span><div class="clearer" /></div>';
113
  },
114
  editItemEvents:function()
115
  {
109
  },
110
  display:function()
111
  {
112
+ return $.fbuilder.sanitize('<div class="fields fmark '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this[ '_display_' + this.sMediaType ]()+'</label><span class="uh">'+this.data[ this.sMediaType ][ 'sFigcaption' ]+'</span><div class="clearer" /></div>');
113
  },
114
  editItemEvents:function()
115
  {
js/fields-admin/32_fbuilder.fbutton.js CHANGED
@@ -19,7 +19,7 @@
19
  userhelp:"A description of the section goes here.",
20
  display:function()
21
  {
22
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><input type="button" disabled value="'+$.fbuilder.htmlEncode(this.sValue)+'"><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>';
23
  },
24
  editItemEvents:function()
25
  {
19
  userhelp:"A description of the section goes here.",
20
  display:function()
21
  {
22
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><input type="button" disabled value="'+$.fbuilder.htmlEncode(this.sValue)+'"><span class="uh">'+this.userhelp+'</span><div class="clearer" /></div>');
23
  },
24
  editItemEvents:function()
25
  {
js/fields-admin/34_fbuilder.fhtml.js CHANGED
@@ -14,7 +14,7 @@
14
  fcontent: "",
15
  display:function()
16
  {
17
- return '<div class="fields '+this.name+' '+this.ftype+' fhtml" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div>'+$( '<div/>' ).html( this.fcontent ).find( 'script,style' ).remove().end().html()+'<div class="clearer" /></div>';
18
  },
19
  editItemEvents:function()
20
  {
14
  fcontent: "",
15
  display:function()
16
  {
17
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+' fhtml" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div>'+$( '<div/>' ).html( this.fcontent ).find( 'script,style' ).remove().end().html()+'<div class="clearer" /></div>');
18
  },
19
  editItemEvents:function()
20
  {
js/fields-admin/36_fbuilder.acceptance.js CHANGED
@@ -17,10 +17,11 @@
17
  message:"",
18
  required:true,
19
  exclude:false,
 
20
  display:function()
21
  {
22
  var str = '<div class="one_column"><input class="field" disabled="true" type="checkbox"/> '+this.title+((this.required)?"*":"")+'</div>';
23
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
24
  },
25
  editItemEvents:function()
26
  {
@@ -28,13 +29,15 @@
28
  evt = [
29
  {s:"#sValue",e:"change keyup", l:"value"},
30
  {s:"#sURL",e:"change keyup", l:"url"},
 
31
  {s:"#sMessage",e:"change keyup", l:"message"}
32
  ];
33
  $.fbuilder.controls[ 'ffields' ].prototype.editItemEvents.call(this, evt);
34
  },
35
  showRequired: function(v)
36
  {
37
- return '<label><input type="checkbox" checked disabled>Acceptance fields are always required</label>';
 
38
  },
39
  showUserhelp: function(){ return ''; },
40
  showValue:function()
17
  message:"",
18
  required:true,
19
  exclude:false,
20
+ onoff:0,
21
  display:function()
22
  {
23
  var str = '<div class="one_column"><input class="field" disabled="true" type="checkbox"/> '+this.title+((this.required)?"*":"")+'</div>';
24
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
25
  },
26
  editItemEvents:function()
27
  {
29
  evt = [
30
  {s:"#sValue",e:"change keyup", l:"value"},
31
  {s:"#sURL",e:"change keyup", l:"url"},
32
+ {s:'[name="sOnOff"]', e:"change", l:"onoff", f: function(el){return (el.is(':checked')) ? 1 : 0;}},
33
  {s:"#sMessage",e:"change keyup", l:"message"}
34
  ];
35
  $.fbuilder.controls[ 'ffields' ].prototype.editItemEvents.call(this, evt);
36
  },
37
  showRequired: function(v)
38
  {
39
+ return '<label><input type="checkbox" checked disabled>Acceptance fields are always required</label>'+
40
+ '<div class="choicesSet"><label><input type="checkbox" name="sOnOff" '+((this.onoff) ? ' CHECKED ' : '')+'/> Display as on/off switch.</label></div>';
41
  },
42
  showUserhelp: function(){ return ''; },
43
  showValue:function()
js/fields-admin/fbuilder.fcalculated.js CHANGED
@@ -16,7 +16,9 @@
16
  required:false,
17
  exclude:false,
18
  size:"medium",
19
- eq:"",
 
 
20
  suffix:"",
21
  prefix:"",
22
  decimalsymbol:".",
@@ -35,11 +37,13 @@
35
  display:function()
36
  {
37
  this.init();
38
- return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
39
  },
40
  editItemEvents:function()
41
  {
42
  var evt=[
 
 
43
  {s:"#sSuffix",e:"change keyup", l:"suffix"},
44
  {s:"#sPrefix",e:"change keyup", l:"prefix"},
45
  {s:"#sDecimalSymbol",e:"change keyup", l:"decimalsymbol"},
@@ -50,6 +54,7 @@
50
  {s:"#sCurrency",e:"click", l:"currency", f:function(el){return el.is(':checked');}},
51
  {s:"#sSize",e:"change", l:"size"}
52
  ];
 
53
  $("#sEq").bind("change keyup", {obj: this}, function(e)
54
  {
55
  if( $.inArray( e.keyCode, [16,17,18,27,37,38,39,40] ) == -1 )
@@ -58,7 +63,7 @@
58
  $.fbuilder.reloadItems({'field':e.data.obj});
59
  }
60
  });
61
- $(document).on('click', '.cff-light-modal-close-icon', function(){$('[id="cff-advanced-equation-editor"]').remove();});
62
  $(document).on('keyup', function(e){if(e.key === 'Escape') $('.cff-light-modal-close-icon').click();});
63
  $("#sAdvancedEditor").bind("click", {obj: this}, function(e)
64
  {
@@ -66,12 +71,12 @@
66
  $(window).bind('message', function(event){$('#sEq').val(event.originalEvent.data).change();});
67
  var advEditor = '<div class="cff-light-modal" id="cff-advanced-equation-editor" role="dialog" aria-hidden="false">'+
68
  '<div class="cff-light-modal-content">'+
69
- '<a href="#" class="cff-light-modal-close-icon" aria-label="close" title="Close">Save & Close</a>'+
70
  '<div class="cff-light-modal-body">'+
71
  '<iframe width="560" height="315" frameborder="0" allowfullscreen scrolling="no"></iframe>'+
72
  '</div>'+
73
  '</div>'+
74
- '</div>';
 
75
 
76
  $('body').append(advEditor);
77
  $('[id="cff-advanced-equation-editor"] iframe').on(
@@ -259,9 +264,9 @@
259
  var opt = '<option value=""></option>';
260
  for (var k=0;k<items.length;k++)
261
  {
262
- if (items[k].name != me.name && items[k].ftype != 'fPageBreak')
263
  {
264
- opt += '<option value="'+items[k].name+'" '+( ( items[k].name == v ) ? 'selected="SELECTED"' : '' )+'>'+items[k].name+( ( typeof items[ k ].title != 'undefined' ) ? ' (' + items[ k ].title + ')' : '' ) + '</option>';
265
  }
266
  }
267
  r += '<div style="position:relative;" class="cff-dependency-item"><span>If rule is valid show:</span> <select class="cf_dependence_field" i="'+i+'" j="'+j+'" >'+opt+'</select><div class="choice-ctrls"><a class="addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+j+'" title="Add another dependency."></a><a class="removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+j+'" title="Delete this dependency."></a></div></div>';
@@ -283,6 +288,10 @@
283
  {
284
  return '<label><input type="checkbox" name="sHideField" id="sHideField" '+((this.hidefield)?"checked":"")+'> Hide Field From Public Page</label>';
285
  },
 
 
 
 
286
  showEqEditor:function(eq)
287
  {
288
  var default_toolbar = "default|mathematical",
@@ -351,7 +360,7 @@
351
  {
352
  for( var i = 0, h = buttons.length; i < h; i++ )
353
  {
354
- out += '<input type="button" value="'+buttons[ i ][ 'value' ]+'" onclick="'+tools+'.setSymbol(\''+buttons[ i ][ 'code' ]+'\');'+tools+'.setTip(\''+buttons[ i ][ 'tip' ]+'\');" class="eq_btn button-secondary" />';
355
  }
356
  this.setTip( '' );
357
  }
@@ -379,7 +388,7 @@
379
 
380
  var out = '<label>Set Equation</label><textarea class="large" name="sEq" id="sEq" style="height:150px;">'+me.eq+'</textarea>'+
381
  '<div id="sAdvancedEditor" title="The Advance Editor is still in experimental state">Advanced Equation\'s Editor</div>'+
382
- '<label>Operands <div style="float:right;"><a href="javascript:window.open(\'http://wordpress.dwbooster.com/includes/calculated-field/equations.html\', \'_blak\');">Read an equation tutorial</a></div></label><div class="groupBox"><select id="sFieldList">';
383
 
384
  var items = this.fBuild.getItems(),
385
  invalidFields = { 'fSectionBreak':1, 'fPageBreak':1, 'fsummary':1, 'ffieldset':1, 'fdiv':1, 'fMedia':1, 'fButton':1, 'fhtml':1, 'ffile':1 };
16
  required:false,
17
  exclude:false,
18
  size:"medium",
19
+ eq:"",
20
+ min:"",
21
+ max:"",
22
  suffix:"",
23
  prefix:"",
24
  decimalsymbol:".",
37
  display:function()
38
  {
39
  this.init();
40
+ return $.fbuilder.sanitize('<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>');
41
  },
42
  editItemEvents:function()
43
  {
44
  var evt=[
45
+ {s:"#sMin",e:"change keyup", l:"min"},
46
+ {s:"#sMax",e:"change keyup", l:"max"},
47
  {s:"#sSuffix",e:"change keyup", l:"suffix"},
48
  {s:"#sPrefix",e:"change keyup", l:"prefix"},
49
  {s:"#sDecimalSymbol",e:"change keyup", l:"decimalsymbol"},
54
  {s:"#sCurrency",e:"click", l:"currency", f:function(el){return el.is(':checked');}},
55
  {s:"#sSize",e:"change", l:"size"}
56
  ];
57
+
58
  $("#sEq").bind("change keyup", {obj: this}, function(e)
59
  {
60
  if( $.inArray( e.keyCode, [16,17,18,27,37,38,39,40] ) == -1 )
63
  $.fbuilder.reloadItems({'field':e.data.obj});
64
  }
65
  });
66
+ $(document).on('click', '.cff-light-modal-close-icon', function(){$('[id="cff-advanced-equation-editor"]').remove();$(this).remove();});
67
  $(document).on('keyup', function(e){if(e.key === 'Escape') $('.cff-light-modal-close-icon').click();});
68
  $("#sAdvancedEditor").bind("click", {obj: this}, function(e)
69
  {
71
  $(window).bind('message', function(event){$('#sEq').val(event.originalEvent.data).change();});
72
  var advEditor = '<div class="cff-light-modal" id="cff-advanced-equation-editor" role="dialog" aria-hidden="false">'+
73
  '<div class="cff-light-modal-content">'+
 
74
  '<div class="cff-light-modal-body">'+
75
  '<iframe width="560" height="315" frameborder="0" allowfullscreen scrolling="no"></iframe>'+
76
  '</div>'+
77
  '</div>'+
78
+ '</div>'+
79
+ '<div class="cff-light-modal-close-icon" aria-label="close" title="Close">Save & Close</div>';
80
 
81
  $('body').append(advEditor);
82
  $('[id="cff-advanced-equation-editor"] iframe').on(
264
  var opt = '<option value=""></option>';
265
  for (var k=0;k<items.length;k++)
266
  {
267
+ if (items[k].name != me.name && items[k].ftype != 'fPageBreak' && items[k].ftype != 'frecordsetds')
268
  {
269
+ opt += '<option value="'+items[k].name+'" '+( ( items[k].name == v ) ? 'selected="SELECTED"' : '' )+'>'+items[k].name+( ( typeof items[ k ].title != 'undefined' ) ? ' (' + $.fbuilder.sanitize(items[ k ].title) + ')' : '' ) + '</option>';
270
  }
271
  }
272
  r += '<div style="position:relative;" class="cff-dependency-item"><span>If rule is valid show:</span> <select class="cf_dependence_field" i="'+i+'" j="'+j+'" >'+opt+'</select><div class="choice-ctrls"><a class="addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+j+'" title="Add another dependency."></a><a class="removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+j+'" title="Delete this dependency."></a></div></div>';
288
  {
289
  return '<label><input type="checkbox" name="sHideField" id="sHideField" '+((this.hidefield)?"checked":"")+'> Hide Field From Public Page</label>';
290
  },
291
+ showRangeIntance: function()
292
+ {
293
+ return '<div class="clearer"></div><div class="column width50"><label>Min</label><input type="text" name="sMin" id="sMin" value="'+$.fbuilder.htmlEncode(this.min)+'" class="large"></div><div class="column width50"><label>Max</label><input type="text" name="sMax" id="sMax" value="'+$.fbuilder.htmlEncode(this.max)+'" class="large"></div><div class="clearer"></div>';
294
+ },
295
  showEqEditor:function(eq)
296
  {
297
  var default_toolbar = "default|mathematical",
360
  {
361
  for( var i = 0, h = buttons.length; i < h; i++ )
362
  {
363
+ out += '<input type="button" value="'+buttons[ i ][ 'value' ]+'" onclick="'+tools+'.setSymbol(\''+buttons[ i ][ 'code' ]+'\');'+tools+'.setTip(\''+buttons[ i ][ 'tip' ]+'\');" class="eq_btn button-secondary" title="'+buttons[ i ][ 'value' ]+'" />';
364
  }
365
  this.setTip( '' );
366
  }
388
 
389
  var out = '<label>Set Equation</label><textarea class="large" name="sEq" id="sEq" style="height:150px;">'+me.eq+'</textarea>'+
390
  '<div id="sAdvancedEditor" title="The Advance Editor is still in experimental state">Advanced Equation\'s Editor</div>'+
391
+ '<label>Operands <div style="float:right;"><a href="https://cff.dwbooster.com/documentation#modules" target="_blank">Read equation tutorial</a></div></label><div class="groupBox"><select id="sFieldList">';
392
 
393
  var items = this.fBuild.getItems(),
394
  invalidFields = { 'fSectionBreak':1, 'fPageBreak':1, 'fsummary':1, 'ffieldset':1, 'fdiv':1, 'fMedia':1, 'fButton':1, 'fhtml':1, 'ffile':1 };
js/fields-public/02_fbuilder.fcurrency.js CHANGED
@@ -9,6 +9,7 @@
9
  predefinedClick:false,
10
  required:false,
11
  readonly:false,
 
12
  size:"small",
13
  currencySymbol:"$",
14
  currencyText:"USD",
@@ -81,7 +82,7 @@
81
  show:function()
82
  {
83
  this.predefined = this._getAttr('predefined');
84
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-currency-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" '+(( this.readonly )? 'readonly' : '' )+' id="'+this.name+'" name="'+this.name+'" class="field cffcurrency '+this.size+((this.required)?" required":"")+'" type="text" value="'+$.fbuilder.htmlEncode( (this.formatDynamically) ? this.getFormattedValue( this.predefined ) : this.predefined )+'" '+( ( !/^\s*$/.test( this.min) ) ? 'min="'+$.fbuilder.parseVal( this._getAttr('min'), this.thousandSeparator, this.centSeparator )+'" ' : '' )+( ( !/^\s*$/.test( this.max) ) ? ' max="'+$.fbuilder.parseVal( this._getAttr('max'), this.thousandSeparator, this.centSeparator )+'" ' : '' )+' /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
85
  },
86
  after_show:function()
87
  {
@@ -93,47 +94,6 @@
93
  this.value = me.getFormattedValue( this.value );
94
  } );
95
  }
96
-
97
- if( typeof $[ 'validator' ] != 'undefined' )
98
- {
99
- if(!('cffcurrency' in $.validator.methods))
100
- $.validator.addMethod(
101
- 'cffcurrency',
102
- function(v, el)
103
- {
104
- var f = el.id.match( /_\d+$/),
105
- esc = $.fbuilder.escapeSymbol,
106
- r;
107
-
108
- e = $.fbuilder['forms'][f[0]].getItem( el.name );
109
- r = new RegExp('^\\s*('+esc(e.currencySymbol)+')?\\s*\\-?\\d+('+esc(e.thousandSeparator)+'\\d{3})*'+((e.noCents) ? '': '('+e.centSeparator+'\\d+)?')+'\\s*('+esc(e.currencyText)+')?\\s*$','i');
110
-
111
- return this.optional(el) || r.test(v) || ($.isNumeric(v) && (!e.noCents || v === FLOOR(v)));
112
- },
113
- $.validator.messages['currency']
114
- );
115
- $.validator.methods.min = function(v, el, p)
116
- {
117
- var f = el.id.match( /_\d+$/), e;
118
- if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
119
- if(e){
120
- v = e.val();
121
- if('dformat' in e && e.dformat == 'percent') v*=100;
122
- }
123
- return this.optional(el) || v >= p;
124
- };
125
- $.validator.methods.max = function(v, el, p)
126
- {
127
- var f = el.id.match( /_\d+$/), e;
128
- if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
129
- if(e)
130
- {
131
- v = e.val();
132
- if('dformat' in e && e.dformat == 'percent') v*=100;
133
- }
134
- return this.optional(el) || v <= p;
135
- };
136
- }
137
  },
138
  val:function(raw)
139
  {
9
  predefinedClick:false,
10
  required:false,
11
  readonly:false,
12
+ numberpad:false,
13
  size:"small",
14
  currencySymbol:"$",
15
  currencyText:"USD",
82
  show:function()
83
  {
84
  this.predefined = this._getAttr('predefined');
85
+ return '<div class="fields '+this.csslayout+' '+this.name+' cff-currency-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input '+((this.numberpad) ? 'inputmode="decimal"' : '')+' aria-label="'+$.fbuilder.htmlEncode(this.title)+'" '+(( this.readonly )? 'readonly' : '' )+' id="'+this.name+'" name="'+this.name+'" class="field cffcurrency '+this.size+((this.required)?" required":"")+'" type="text" value="'+$.fbuilder.htmlEncode( (this.formatDynamically) ? this.getFormattedValue( this.predefined ) : this.predefined )+'" '+( ( !/^\s*$/.test( this.min) ) ? 'min="'+$.fbuilder.parseVal( this._getAttr('min'), this.thousandSeparator, this.centSeparator )+'" ' : '' )+( ( !/^\s*$/.test( this.max) ) ? ' max="'+$.fbuilder.parseVal( this._getAttr('max'), this.thousandSeparator, this.centSeparator )+'" ' : '' )+' /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
86
  },
87
  after_show:function()
88
  {
94
  this.value = me.getFormattedValue( this.value );
95
  } );
96
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  },
98
  val:function(raw)
99
  {
js/fields-public/02_fbuilder.fnumber.js CHANGED
@@ -9,6 +9,7 @@
9
  predefinedClick:false,
10
  required:false,
11
  readonly:false,
 
12
  size:"small",
13
  thousandSeparator:"",
14
  decimalSymbol:".",
@@ -82,7 +83,7 @@
82
  {
83
  var _type = ( this.dformat == 'digits' || ( this.dformat != 'percent' && /^$/.test( this.thousandSeparator ) && /^\s*(\.\s*)?$/.test( this.decimalSymbol ) ) ) ? 'number' : 'text';
84
  this.predefined = this._getAttr('predefined');
85
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-number-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+( ( !/^\s*$/.test( this.min) ) ? 'min="'+$.fbuilder.parseVal( this._getAttr('min'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+( ( !/^\s*$/.test(this.max) ) ? ' max="'+$.fbuilder.parseVal( this._getAttr('max'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+' class="field '+this.dformat+((this.dformat == 'percent') ? ' number' : '')+' '+this.size+((this.required)?" required":"")+'" type="'+_type+'" value="'+$.fbuilder.htmlEncode((this.formatDynamically) ? this.getFormattedValue(this.predefined) : this.predefined)+'" '+((this.readonly)?'readonly':'')+' /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
86
  },
87
  after_show:function()
88
  {
@@ -94,42 +95,6 @@
94
  this.value = me.getFormattedValue( this.value );
95
  } );
96
  }
97
-
98
- if( typeof $[ 'validator' ] != 'undefined' )
99
- {
100
- $.validator.methods.number = function(v, el)
101
- {
102
- var f = el.id.match(/_\d+$/),
103
- esc = $.fbuilder.escapeSymbol,
104
- e, r;
105
-
106
- if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
107
- if(!e) e = {thousandSeparator: ',', decimalSymbol: '.'};
108
-
109
- r = new RegExp('^\\s*\\-?\\d+('+esc(e.thousandSeparator)+'\\d{3})*('+esc(e.decimalSymbol)+'\\d+)?\\s*\\%?\\s*$','i');
110
- return this.optional(el) || r.test(v) || $.isNumeric(v);
111
- };
112
- $.validator.methods.min = function(v, el, p)
113
- {
114
- var f = el.id.match( /_\d+$/), e;
115
- if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
116
- if(e){
117
- v = e.val();
118
- if('dformat' in e && e.dformat == 'percent') v*=100;
119
- }
120
- return this.optional(el) || v >= p;
121
- };
122
- $.validator.methods.max = function(v, el, p)
123
- {
124
- var f = el.id.match( /_\d+$/), e;
125
- if(f) e = $.fbuilder['forms'][f[0]].getItem(el.name);
126
- if(e){
127
- v = e.val();
128
- if('dformat' in e && e.dformat == 'percent') v*=100;
129
- }
130
- return this.optional(el) || v <= p;
131
- };
132
- }
133
  },
134
  val:function(raw)
135
  {
9
  predefinedClick:false,
10
  required:false,
11
  readonly:false,
12
+ numberpad:false,
13
  size:"small",
14
  thousandSeparator:"",
15
  decimalSymbol:".",
83
  {
84
  var _type = ( this.dformat == 'digits' || ( this.dformat != 'percent' && /^$/.test( this.thousandSeparator ) && /^\s*(\.\s*)?$/.test( this.decimalSymbol ) ) ) ? 'number' : 'text';
85
  this.predefined = this._getAttr('predefined');
86
+ return '<div class="fields '+this.csslayout+' '+this.name+' cff-number-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input '+((this.numberpad) ? 'inputmode="decimal"' : '')+' aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+( ( !/^\s*$/.test( this.min) ) ? 'min="'+$.fbuilder.parseVal( this._getAttr('min'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+( ( !/^\s*$/.test(this.max) ) ? ' max="'+$.fbuilder.parseVal( this._getAttr('max'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+' class="field '+this.dformat+((this.dformat == 'percent') ? ' number' : '')+' '+this.size+((this.required)?" required":"")+'" type="'+_type+'" value="'+$.fbuilder.htmlEncode((this.formatDynamically) ? this.getFormattedValue(this.predefined) : this.predefined)+'" '+((this.readonly)?'readonly':'')+' /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
87
  },
88
  after_show:function()
89
  {
95
  this.value = me.getFormattedValue( this.value );
96
  } );
97
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  },
99
  val:function(raw)
100
  {
js/fields-public/02_fbuilder.fslider.js CHANGED
@@ -95,7 +95,7 @@
95
  this._setHndl('min');
96
  this._setHndl('max');
97
  this._setHndl('step');
98
- this.centSeparator = ( /^\s*$/.test( this.centSeparator )) ? '.' : $.trim( this.centSeparator );
99
  },
100
  show:function()
101
  {
@@ -114,31 +114,38 @@
114
  timeoutId;
115
 
116
  $(document).on('keyup change', '#'+me.name+'_component_'+c, function(evt){
 
 
 
 
 
 
 
117
  var v = $('#'+me.name+'_component_center').val(),
118
  v1 = $('#'+me.name+'_component_left').val(),
119
  v2 = $('#'+me.name+'_component_right').val(),
120
  t = 0;
121
  clearTimeout(timeoutId);
122
- if(evt.type == 'keyup') t = 2000;
123
  timeoutId = setTimeout(function(){
124
  if(v != undefined)
125
  {
126
- v = $.fbuilder.parseVal( v, this.thousandSeparator, this.centSeparator );
127
  if(isNaN(v)) v = 0;
128
  }
129
  if(v1 != undefined)
130
  {
131
- v1 = $.fbuilder.parseVal( v1, this.thousandSeparator, this.centSeparator );
132
  if(isNaN(v1)) v1 = 0;
133
  }
134
  if(v2 != undefined)
135
  {
136
- v2 = $.fbuilder.parseVal( v2, this.thousandSeparator, this.centSeparator );
137
  if(isNaN(v2)) v2 = 0;
138
  }
139
  $('#'+me.name+'_slider').slider(
140
  ((v != undefined) ? 'value' : 'values'),
141
- ((v != undefined) ? v*1 : [Math.min(v1*1,v2*1), Math.max(v1*1,v2*1)])
142
  );
143
  me._setFieldValue();}, t);
144
  });
95
  this._setHndl('min');
96
  this._setHndl('max');
97
  this._setHndl('step');
98
+ this.centSeparator = ( /^\s*$/.test( this.centSeparator )) ? '.' : $.trim( this.centSeparator );
99
  },
100
  show:function()
101
  {
114
  timeoutId;
115
 
116
  $(document).on('keyup change', '#'+me.name+'_component_'+c, function(evt){
117
+ function stepRound(v)
118
+ {
119
+ var _e = $('#'+me.name+'_slider'),
120
+ _max = _e.slider('option', 'max'),
121
+ _step = _e.slider('option', 'step');
122
+ return MIN(CEIL(v, _step), _max);
123
+ };
124
  var v = $('#'+me.name+'_component_center').val(),
125
  v1 = $('#'+me.name+'_component_left').val(),
126
  v2 = $('#'+me.name+'_component_right').val(),
127
  t = 0;
128
  clearTimeout(timeoutId);
129
+ if(evt.type == 'keyup') t = 2500;
130
  timeoutId = setTimeout(function(){
131
  if(v != undefined)
132
  {
133
+ v = $.fbuilder.parseVal( v, me.thousandSeparator, me.centSeparator );
134
  if(isNaN(v)) v = 0;
135
  }
136
  if(v1 != undefined)
137
  {
138
+ v1 = $.fbuilder.parseVal( v1, me.thousandSeparator, me.centSeparator );
139
  if(isNaN(v1)) v1 = 0;
140
  }
141
  if(v2 != undefined)
142
  {
143
+ v2 = $.fbuilder.parseVal( v2, me.thousandSeparator, me.centSeparator );
144
  if(isNaN(v2)) v2 = 0;
145
  }
146
  $('#'+me.name+'_slider').slider(
147
  ((v != undefined) ? 'value' : 'values'),
148
+ ((v != undefined) ? stepRound(v*1) : [stepRound(Math.min(v1*1,v2*1)), stepRound(Math.max(v1*1,v2*1))])
149
  );
150
  me._setFieldValue();}, t);
151
  });
js/fields-public/04_fbuilder.fdate.js CHANGED
@@ -226,14 +226,16 @@
226
  set_dateTime:function(nochange)
227
  {
228
  var me = this,
229
- str = $( '#'+me.name+'_date' ).val();
 
230
  if( me.showTimepicker )
231
  {
232
  str += ' '+$( '#'+me.name+'_hours' ).val();
233
  str += ':'+$( '#'+me.name+'_minutes' ).val();
234
  if( $( '#'+me.name+'_ampm' ).length ) str += $( '#'+me.name+'_ampm' ).val();
235
  }
236
- if(!nochange) $( '#'+me.name ).val( str ).change();
 
237
  },
238
  set_minDate:function(v, ignore)
239
  {
226
  set_dateTime:function(nochange)
227
  {
228
  var me = this,
229
+ str = $( '#'+me.name+'_date' ).val(),
230
+ e = $( '#'+me.name );
231
  if( me.showTimepicker )
232
  {
233
  str += ' '+$( '#'+me.name+'_hours' ).val();
234
  str += ':'+$( '#'+me.name+'_minutes' ).val();
235
  if( $( '#'+me.name+'_ampm' ).length ) str += $( '#'+me.name+'_ampm' ).val();
236
  }
237
+ e.val(str);
238
+ if(!nochange) e.change();
239
  },
240
  set_minDate:function(v, ignore)
241
  {
js/fields-public/06_fbuilder.fcheck.js CHANGED
@@ -9,6 +9,7 @@
9
  required:false,
10
  readonly:false,
11
  merge:1,
 
12
  max:-1,
13
  maxError:"Check no more than {0} boxes",
14
  toSubmit:"text",
@@ -31,27 +32,34 @@
31
 
32
  classDep = (this.choicesDep[ i ].length) ? 'depItem': '';
33
 
34
- str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choiceSelected[i])?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
 
 
 
35
  }
36
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
37
- },
38
- after_show:function()
39
- {
40
- var m = this;
41
- $(document).on('click','[id*="'+m.name+'"]', function(){
42
- if(0 < m.max)
43
- {
44
- var d = true;
45
- if($('[id*="'+m.name+'"]:checked').length < m.max) d = false;
46
- $('[id*="'+m.name+'"]:not(:checked)').prop('disabled', d);
47
- }
48
- });
49
-
50
- if(0 < m.max)
51
- $('[id*="'+m.name+'"]').rules('add',{maxlength:m.max, messages:{maxlength:m.maxError}});
52
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  showHideDep:function( toShow, toHide, hiddenByContainer )
54
  {
 
55
  var me = this,
56
  item = $( 'input[id*="'+me.name+'"]' ),
57
  form_identifier = me.form_identifier,
@@ -124,35 +132,53 @@
124
  },
125
  setVal:function( v, nochange )
126
  {
127
- var t, n = this.name;
128
  if( !$.isArray( v ) ) v = [v];
129
  $( '[id*="'+n+'"]' ).prop( 'checked', false );
130
  for( var i in v )
131
  {
132
  t = (new String(v[i])).replace(/(['"])/g, "\\$1");
 
133
  $( '[id*="'+n+'"][vt="'+t+'"],[id*="'+n+'"][value="'+t+'"]' ).prop( 'checked', true );
134
  }
 
135
  if(!nochange) $( '[id*="'+n+'"]' ).change();
136
  },
137
  setChoices:function(choices)
138
  {
139
  if($.isPlainObject(choices))
140
  {
141
- var bk = this.val(true);
142
- if('texts' in choices && $.isArray(choices.texts)) this.choices = choices.texts;
143
- if('values' in choices && $.isArray(choices.values)) this.choicesVal = choices.values;
144
- if('dependencies' in choices && $.isArray(choices.dependencies)) this.choicesDep = choices.dependencies;
145
- var html = this.show(),
146
- e = $('.'+this.name),
 
 
 
 
 
 
 
 
 
 
 
147
  c = e.attr('class'),
148
  i = e.find('.ignore').length,
149
  ipb = e.find('.ignorepb').length;
150
  e.replaceWith(html);
151
- e = $('.'+this.name);
152
  e.attr('class', c);
153
  if(i) e.find('input').addClass('ignore');
154
  if(ipb) e.find('input').addClass('ignorepb');
155
- this.setVal(bk);
 
 
 
 
 
156
  }
157
  },
158
  getIndex:function()
9
  required:false,
10
  readonly:false,
11
  merge:1,
12
+ onoff:0,
13
  max:-1,
14
  maxError:"Check no more than {0} boxes",
15
  toSubmit:"text",
32
 
33
  classDep = (this.choicesDep[ i ].length) ? 'depItem': '';
34
 
35
+ str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choiceSelected[i])?"checked":"")+'/> '+
36
+ (this.onoff ? '<span class="cff-switch"></span>': '') +
37
+ '<span>'+
38
+ $.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
39
  }
40
+ return '<div class="fields '+this.csslayout+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  },
42
+ enable_disable:function()
43
+ {
44
+ var m = this;
45
+ if(0 < m.max)
46
+ {
47
+ var d = true;
48
+ if($('[id*="'+m.name+'"]:checked').length < m.max) d = false;
49
+ $('[id*="'+m.name+'"]:not(:checked)').prop('disabled', d);
50
+ }
51
+ },
52
+ after_show:function()
53
+ {
54
+ var m = this;
55
+ $(document).on('click','[id*="'+m.name+'"]', function(){m.enable_disable();});
56
+ m.enable_disable();
57
+ if(0 < m.max)
58
+ $('[id*="'+m.name+'"]').rules('add',{maxlength:m.max, messages:{maxlength:m.maxError}});
59
+ },
60
  showHideDep:function( toShow, toHide, hiddenByContainer )
61
  {
62
+ if(typeof hiddenByContainer == 'undefined') hiddenByContainer = {};
63
  var me = this,
64
  item = $( 'input[id*="'+me.name+'"]' ),
65
  form_identifier = me.form_identifier,
132
  },
133
  setVal:function( v, nochange )
134
  {
135
+ var t, n = this.name, c = 0;
136
  if( !$.isArray( v ) ) v = [v];
137
  $( '[id*="'+n+'"]' ).prop( 'checked', false );
138
  for( var i in v )
139
  {
140
  t = (new String(v[i])).replace(/(['"])/g, "\\$1");
141
+ if(0 < this.max && c+1 == this.max) break;
142
  $( '[id*="'+n+'"][vt="'+t+'"],[id*="'+n+'"][value="'+t+'"]' ).prop( 'checked', true );
143
  }
144
+ this.enable_disable();
145
  if(!nochange) $( '[id*="'+n+'"]' ).change();
146
  },
147
  setChoices:function(choices)
148
  {
149
  if($.isPlainObject(choices))
150
  {
151
+ var me = this,
152
+ bk = me.val(true);
153
+ if('texts' in choices && $.isArray(choices.texts)) me.choices = choices.texts;
154
+ if('values' in choices && $.isArray(choices.values)) me.choicesVal = choices.values;
155
+ if('dependencies' in choices && $.isArray(choices.dependencies))
156
+ {
157
+ me.choicesDep = choices.dependencies.map(
158
+ function(x){
159
+ return ($.isArray(x)) ? x.map(
160
+ function(y){
161
+ return (typeof y == 'number') ? 'fieldname'+parseInt(y) : y;
162
+ }) : x;
163
+ }
164
+ );
165
+ }
166
+ var html = me.show(),
167
+ e = $('.'+me.name),
168
  c = e.attr('class'),
169
  i = e.find('.ignore').length,
170
  ipb = e.find('.ignorepb').length;
171
  e.replaceWith(html);
172
+ e = $('.'+me.name);
173
  e.attr('class', c);
174
  if(i) e.find('input').addClass('ignore');
175
  if(ipb) e.find('input').addClass('ignorepb');
176
+ if(!$.isArray(bk)) bk = [bk];
177
+ for(var j in bk)
178
+ {
179
+ try{ bk[j] = JSON.parse(bk[j]); }catch(err){}
180
+ }
181
+ me.setVal(bk, bk.every(function(e){ return me.choicesVal.indexOf(e) > -1; }));
182
  }
183
  },
184
  getIndex:function()
js/fields-public/07_fbuilder.fradio.js CHANGED
@@ -8,6 +8,7 @@
8
  layout:"one_column",
9
  required:false,
10
  readonly:false,
 
11
  toSubmit:"text",
12
  choiceSelected:"",
13
  showDep:false,
@@ -36,10 +37,12 @@
36
 
37
  for (var i=0;i<l;i++)
38
  {
39
- str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
 
 
40
  }
41
 
42
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
43
  },
44
  after_show: function()
45
  {
@@ -59,6 +62,7 @@
59
  },
60
  showHideDep:function( toShow, toHide, hiddenByContainer )
61
  {
 
62
  var me = this,
63
  item = $( 'input[id*="'+me.name+'"]' ),
64
  form_identifier = me.form_identifier,
@@ -132,7 +136,17 @@
132
  var bk = this.val(true);
133
  if('texts' in choices && $.isArray(choices.texts)) this.choices = choices.texts;
134
  if('values' in choices && $.isArray(choices.values)) this.choicesVal = choices.values;
135
- if('dependencies' in choices && $.isArray(choices.dependencies)) this.choicesDep = choices.dependencies;
 
 
 
 
 
 
 
 
 
 
136
  var html = this.show(),
137
  e = $('.'+this.name),
138
  c = e.attr('class'),
@@ -143,7 +157,8 @@
143
  e.attr('class', c);
144
  if(i) e.find('input').addClass('ignore');
145
  if(ipb) e.find('input').addClass('ignorepb');
146
- this.setVal(bk);
 
147
  }
148
  },
149
  getIndex:function()
8
  layout:"one_column",
9
  required:false,
10
  readonly:false,
11
+ onoff:0,
12
  toSubmit:"text",
13
  choiceSelected:"",
14
  showDep:false,
37
 
38
  for (var i=0;i<l;i++)
39
  {
40
+ str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+
41
+ (this.onoff ? '<span class="cff-switch"></span>': '') +
42
+ '<span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
43
  }
44
 
45
+ return '<div class="fields '+this.csslayout+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
46
  },
47
  after_show: function()
48
  {
62
  },
63
  showHideDep:function( toShow, toHide, hiddenByContainer )
64
  {
65
+ if(typeof hiddenByContainer == 'undefined') hiddenByContainer = {};
66
  var me = this,
67
  item = $( 'input[id*="'+me.name+'"]' ),
68
  form_identifier = me.form_identifier,
136
  var bk = this.val(true);
137
  if('texts' in choices && $.isArray(choices.texts)) this.choices = choices.texts;
138
  if('values' in choices && $.isArray(choices.values)) this.choicesVal = choices.values;
139
+ if('dependencies' in choices && $.isArray(choices.dependencies))
140
+ {
141
+ this.choicesDep = choices.dependencies.map(
142
+ function(x){
143
+ return ($.isArray(x)) ? x.map(
144
+ function(y){
145
+ return (typeof y == 'number') ? 'fieldname'+parseInt(y) : y;
146
+ }) : x;
147
+ }
148
+ );
149
+ }
150
  var html = this.show(),
151
  e = $('.'+this.name),
152
  c = e.attr('class'),
157
  e.attr('class', c);
158
  if(i) e.find('input').addClass('ignore');
159
  if(ipb) e.find('input').addClass('ignorepb');
160
+ try{ bk = JSON.parse(bk); }catch(err){}
161
+ this.setVal(bk, this.choicesVal.indexOf(bk) > -1);
162
  }
163
  },
164
  getIndex:function()
js/fields-public/08_fbuilder.fdropdown.js CHANGED
@@ -10,6 +10,7 @@
10
  toSubmit:"text",
11
  merge:0,
12
  choiceSelected:"",
 
13
  multiple:false,
14
  vChoices:1,
15
  showDep:false,
@@ -56,8 +57,22 @@
56
  return '<div class="fields '+this.csslayout+' '+this.name+' cff-dropdown-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label>'+
57
  '<div class="dfield"><select aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+((this.multiple)? '[]':'')+'" class="field '+( ( classDep != '' ) ? ' depItemSel ' : '' )+this.size+((this.required)?' required':'')+'" '+((this.multiple == true)?' multiple="multiple" size="'+((this.vChoices) ? this.vChoices : 1)+'"':'')+'>'+str+'</select><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div><div class="clearer"></div></div>';
58
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  showHideDep:function( toShow, toHide, hiddenByContainer )
60
  {
 
61
  var me = this,
62
  item = $( '#'+me.name+'.depItemSel' ),
63
  form_identifier = me.form_identifier,
@@ -144,7 +159,6 @@
144
  {
145
  t = (new String(v[i])).replace(/(['"])/g, "\\$1");
146
  $( '[id="'+n+'"] OPTION[vt="'+t+'"],[id="'+n+'"] OPTION[value="'+t+'"]' ).prop( 'selected', true );
147
-
148
  }
149
 
150
  if(!nochange) $( '[id="'+n+'"]' ).change();
@@ -153,22 +167,39 @@
153
  {
154
  if($.isPlainObject(choices))
155
  {
156
- var bk = this.val(true);
157
- if('texts' in choices && $.isArray(choices.texts)) this.choices = choices.texts;
158
- if('values' in choices && $.isArray(choices.values)) this.choicesVal = choices.values;
159
- if('dependencies' in choices && $.isArray(choices.dependencies)) this.choicesDep = choices.dependencies;
160
- if('optgroup' in choices && $.isArray(choices.optgroup)) this.optgroup = choices.optgroup;
161
- var html = this.show(),
162
- e = $('.'+this.name),
 
 
 
 
 
 
 
 
 
 
 
 
163
  c = e.attr('class'),
164
  i = e.find('.ignore').length,
165
  ipb = e.find('.ignorepb').length;
166
  e.replaceWith(html);
167
- e = $('.'+this.name);
168
  e.attr('class', c);
169
  if(i) e.find('select').addClass('ignore');
170
  if(ipb) e.find('select').addClass('ignorepb');
171
- this.setVal(bk);
 
 
 
 
 
172
  }
173
  },
174
  getIndex:function()
10
  toSubmit:"text",
11
  merge:0,
12
  choiceSelected:"",
13
+ select2:false,
14
  multiple:false,
15
  vChoices:1,
16
  showDep:false,
57
  return '<div class="fields '+this.csslayout+' '+this.name+' cff-dropdown-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label>'+
58
  '<div class="dfield"><select aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+((this.multiple)? '[]':'')+'" class="field '+( ( classDep != '' ) ? ' depItemSel ' : '' )+this.size+((this.required)?' required':'')+'" '+((this.multiple == true)?' multiple="multiple" size="'+((this.vChoices) ? this.vChoices : 1)+'"':'')+'>'+str+'</select><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div><div class="clearer"></div></div>';
59
  },
60
+ after_show:function()
61
+ {
62
+ var me = this;
63
+ if(me.select2)
64
+ {
65
+ $('#'+me.name).after('<span class="cff-select2-container"></span>');
66
+ $('#'+me.name).on('change', function(){$(this).valid();});
67
+ if('select2' in $.fn)
68
+ $('#'+me.name).select2({'dropdownParent':$('#'+me.name).next('.cff-select2-container')});
69
+ else
70
+ $(document).ready(function(){if('select2' in $.fn) $('#'+me.name).select2({'dropdownParent':$('#'+me.name).next('.cff-select2-container')});});
71
+ }
72
+ },
73
  showHideDep:function( toShow, toHide, hiddenByContainer )
74
  {
75
+ if(typeof hiddenByContainer == 'undefined') hiddenByContainer = {};
76
  var me = this,
77
  item = $( '#'+me.name+'.depItemSel' ),
78
  form_identifier = me.form_identifier,
159
  {
160
  t = (new String(v[i])).replace(/(['"])/g, "\\$1");
161
  $( '[id="'+n+'"] OPTION[vt="'+t+'"],[id="'+n+'"] OPTION[value="'+t+'"]' ).prop( 'selected', true );
 
162
  }
163
 
164
  if(!nochange) $( '[id="'+n+'"]' ).change();
167
  {
168
  if($.isPlainObject(choices))
169
  {
170
+ var me = this,
171
+ bk = me.val(true);
172
+
173
+ if('texts' in choices && $.isArray(choices.texts)) me.choices = choices.texts;
174
+ if('values' in choices && $.isArray(choices.values)) me.choicesVal = choices.values;
175
+ if('dependencies' in choices && $.isArray(choices.dependencies))
176
+ {
177
+ me.choicesDep = choices.dependencies.map(
178
+ function(x){
179
+ return ($.isArray(x)) ? x.map(
180
+ function(y){
181
+ return (typeof y == 'number') ? 'fieldname'+parseInt(y) : y;
182
+ }) : x;
183
+ }
184
+ );
185
+ }
186
+ if('optgroup' in choices && $.isArray(choices.optgroup)) me.optgroup = choices.optgroup;
187
+ var html = me.show(),
188
+ e = $('.'+me.name),
189
  c = e.attr('class'),
190
  i = e.find('.ignore').length,
191
  ipb = e.find('.ignorepb').length;
192
  e.replaceWith(html);
193
+ e = $('.'+me.name);
194
  e.attr('class', c);
195
  if(i) e.find('select').addClass('ignore');
196
  if(ipb) e.find('select').addClass('ignorepb');
197
+ if(!$.isArray(bk)) bk = [bk];
198
+ for(var j in bk)
199
+ {
200
+ try{ bk[j] = JSON.parse(bk[j]); }catch(err){}
201
+ }
202
+ me.setVal(bk, bk.every(function(e){ return me.choicesVal.indexOf(e) > -1; }));
203
  }
204
  },
205
  getIndex:function()
js/fields-public/09_fbuilder.ffile.js CHANGED
@@ -25,7 +25,7 @@
25
  this.accept = $.fbuilder.htmlEncode($.trim(this.accept));
26
  this.upload_size = $.fbuilder.htmlEncode($.trim(this.upload_size));
27
 
28
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-file-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" type="file" id="'+this.name+'" name="'+this.name+'[]"'+((this.accept.length) ? ' accept="'+this.accept+'"' : '')+((this.upload_size.length) ? ' upload_size="'+this.upload_size+'"' : '')+' class="field '+this.size+((this.required)?" required":"")+'" '+( ( this.multiple ) ? 'multiple' : '' )+' />'+((this._patch) ? '<input type="hidden" id="'+this.name+'_patch" name="'+this.name+'_patch" value="1" />' : '' )+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
29
  },
30
  after_show:function()
31
  {
@@ -82,15 +82,30 @@
82
  else if(1 < h){filesContainer.append($('<span>').text((n ? ', ' : '')+file.name));n++;}
83
  })(i, this.files[i]);
84
  }
85
- $( this ).after( filesContainer );
86
  }
87
  });
 
 
88
  },
89
- val : function()
90
  {
91
- var e = $( "[id='" + this.name + "']:not(.ignore)" );
92
- if( e.length ) return e[0].files;
93
- return '';
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  }
95
  }
96
  );
25
  this.accept = $.fbuilder.htmlEncode($.trim(this.accept));
26
  this.upload_size = $.fbuilder.htmlEncode($.trim(this.upload_size));
27
 
28
+ return '<div class="fields '+this.csslayout+' '+this.name+' cff-file-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" type="file" id="'+this.name+'" name="'+this.name+'[]"'+((this.accept.length) ? ' accept="'+this.accept+'"' : '')+((this.upload_size.length) ? ' upload_size="'+this.upload_size+'"' : '')+' class="field '+this.size+((this.required)?" required":"")+'" '+( ( this.multiple ) ? 'multiple' : '' )+' /><div id="'+this.name+'_clearer" class="cff-file-clearer"></div>'+((this._patch) ? '<input type="hidden" id="'+this.name+'_patch" name="'+this.name+'_patch" value="1" />' : '' )+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
29
  },
30
  after_show:function()
31
  {
82
  else if(1 < h){filesContainer.append($('<span>').text((n ? ', ' : '')+file.name));n++;}
83
  })(i, this.files[i]);
84
  }
85
+ $( '#'+this.id+'_clearer' ).after( filesContainer );
86
  }
87
  });
88
+
89
+ $('#'+me.name+'_clearer').click(function(){$('#'+me.name).val('').change().valid();});
90
  },
91
+ val : function(raw)
92
  {
93
+ raw = raw || false;
94
+ var e = $( "[id='" + this.name + "']:not(.ignore)" ), result = '', separator = '';
95
+ if( e.length )
96
+ {
97
+ if(raw) result = e[0].files;
98
+ else
99
+ {
100
+ for(var i = 0, h = e[0].files.length; i<h; i++)
101
+ {
102
+ result += separator+e[0].files[i].name;
103
+ separator = ', ';
104
+ }
105
+ result = $.fbuilder.parseValStr(result, raw);
106
+ }
107
+ }
108
+ return result;
109
  }
110
  }
111
  );
js/fields-public/11_fbuilder.fphone.js CHANGED
@@ -34,7 +34,7 @@
34
  }
35
  }
36
 
37
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-phone-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input type="hidden" id="'+this.name+'" name="'+this.name+'" class="field " '+attr+'="'+tmpv.join('')+'" />'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
38
  },
39
  after_show: function()
40
  {
34
  }
35
  }
36
 
37
+ return '<div class="fields '+this.csslayout+' '+this.name+' cff-phone-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input type="hidden" id="'+this.name+'" name="'+this.name+'" class="field " '+attr+'="'+tmpv.join('')+'" />'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
38
  },
39
  after_show: function()
40
  {
js/fields-public/28_fbuilder.fcontainer.js CHANGED
@@ -19,6 +19,7 @@
19
  },
20
  showHideDep:function( toShow, toHide, hiddenByContainer )
21
  {
 
22
  var me = this,
23
  isHidden = ( typeof toHide[ me.name ] != 'undefined' || typeof hiddenByContainer[ me.name ] != 'undefined' ),
24
  fId,
19
  },
20
  showHideDep:function( toShow, toHide, hiddenByContainer )
21
  {
22
+ if(typeof hiddenByContainer == 'undefined') hiddenByContainer = {};
23
  var me = this,
24
  isHidden = ( typeof toHide[ me.name ] != 'undefined' || typeof hiddenByContainer[ me.name ] != 'undefined' ),
25
  fId,
js/fields-public/32_fbuilder.fbutton.js CHANGED
@@ -35,18 +35,17 @@
35
  $('#'+this.name).click(
36
  function()
37
  {
38
- var e = $( this ), f;
39
  if( e.hasClass( 'calculate-button' ) )
40
  {
41
- var items = $.fbuilder[ 'forms' ][ me.form_identifier ].getItems();
42
  if(me.sLoading)
43
  {
44
- f = e.closest('#fbuilder');
45
  f.find('.cff-processing-form').remove();
46
  $('<div class="cff-processing-form"></div>').appendTo(f);
47
  }
48
  $(document).on('equationsQueueEmpty', function(evt, id){
49
- if(id == me.form_identifier)
50
  {
51
  if(me.sLoading) e.closest('#fbuilder').find('.cff-processing-form').remove();
52
  $(document).off('equationsQueueEmpty');
@@ -67,27 +66,30 @@
67
  setTimeout(
68
  function()
69
  {
70
- var identifier = e.closest( 'form' ).attr( 'id' ).replace( /cp_calculatedfieldsf_pform/, '' );
71
- e.closest('form').find(':data(manually)').removeData('manually');
72
- $.fbuilder[ 'showHideDep' ]( { 'formIdentifier' : identifier } );
 
73
 
74
  var page = parseInt( e.closest( '.pbreak' ).attr( 'page' ) );
75
  if( page )
76
  {
77
- $.fbuilder.forms[identifier]['currentPage'] = 0;
78
- $("#fieldlist"+identifier+" .pbreak").css("display","none");
79
- $("#fieldlist"+identifier+" .pbreak").find(".field").addClass("ignorepb");
80
- $("#fieldlist"+identifier+" .pb0").css("display","block");
81
- if ($("#fieldlist"+identifier+" .pb0").find(".field").length>0)
82
  {
83
- $("#fieldlist"+identifier+" .pb0").find(".field").removeClass("ignorepb");
84
  try
85
  {
86
- $("#fieldlist"+identifier+" .pb0").find(".field")[0].focus();
87
  }
88
  catch(e){}
89
  }
90
  }
 
 
91
  },
92
  50
93
  );
35
  $('#'+this.name).click(
36
  function()
37
  {
38
+ var e = $( this ), f = e.closest( 'form' ), fid = me.form_identifier;
39
  if( e.hasClass( 'calculate-button' ) )
40
  {
41
+ var items = $.fbuilder[ 'forms' ][ fid ].getItems();
42
  if(me.sLoading)
43
  {
 
44
  f.find('.cff-processing-form').remove();
45
  $('<div class="cff-processing-form"></div>').appendTo(f);
46
  }
47
  $(document).on('equationsQueueEmpty', function(evt, id){
48
+ if(id == fid)
49
  {
50
  if(me.sLoading) e.closest('#fbuilder').find('.cff-processing-form').remove();
51
  $(document).off('equationsQueueEmpty');
66
  setTimeout(
67
  function()
68
  {
69
+ var id = f.attr( 'id' );
70
+ f.validate().resetForm();
71
+ f.find(':data(manually)').removeData('manually');
72
+ $.fbuilder[ 'showHideDep' ]( { 'formIdentifier' : fid } );
73
 
74
  var page = parseInt( e.closest( '.pbreak' ).attr( 'page' ) );
75
  if( page )
76
  {
77
+ $.fbuilder.forms[fid]['currentPage'] = 0;
78
+ $("#fieldlist"+fid+" .pbreak").css("display","none");
79
+ $("#fieldlist"+fid+" .pbreak").find(".field").addClass("ignorepb");
80
+ $("#fieldlist"+fid+" .pb0").css("display","block");
81
+ if ($("#fieldlist"+fid+" .pb0").find(".field").length>0)
82
  {
83
+ $("#fieldlist"+fid+" .pb0").find(".field").removeClass("ignorepb");
84
  try
85
  {
86
+ $("#fieldlist"+fid+" .pb0").find(".field")[0].focus();
87
  }
88
  catch(e){}
89
  }
90
  }
91
+ if(f.data('evalequations')*1)
92
+ $.fbuilder['calculator'].defaultCalc( '#'+id, false );
93
  },
94
  50
95
  );
js/fields-public/36_fbuilder.acceptance.js CHANGED
@@ -7,6 +7,7 @@
7
  ftype:"facceptance",
8
  value:"I accept",
9
  required:true,
 
10
  url:"",
11
  message:"",
12
  show:function()
@@ -24,8 +25,10 @@
24
  label = '<a href="javascript:void(0);" class="cff-open-dlg">'+label+'</a>';
25
  dlg += '<div class="cff-dialog hide"><span class="cff-close-dlg"></span><div class="cff-dialog-content">'+me.message+'</div></div>'
26
  }
27
- return '<div class="fields '+me.csslayout+' '+me.name+' cff-checkbox-field" id="field'+me.form_identifier+'-'+me.index+'"><div class="dfield">'+
28
- '<div class="one_column"><label for="'+me.name+'"><input aria-label="'+$.fbuilder.htmlEncode(me.title)+'" name="'+me.name+'" id="'+me.name+'" class="field required" value="'+$.fbuilder.htmlEncode(me.value)+'" vt="'+$.fbuilder.htmlEncode((/^\s*$/.test(me.value)) ? me.title : me.value)+'" type="checkbox" /> <span>'+
 
 
29
  $.fbuilder.htmlDecode( label )+''+((me.required)?'<span class="r">*</span>':'')+
30
  '</span></label></div>'+dlg+'<span class="uh"></span></div><div class="clearer"></div></div>';
31
  },
7
  ftype:"facceptance",
8
  value:"I accept",
9
  required:true,
10
+ onoff:0,
11
  url:"",
12
  message:"",
13
  show:function()
25
  label = '<a href="javascript:void(0);" class="cff-open-dlg">'+label+'</a>';
26
  dlg += '<div class="cff-dialog hide"><span class="cff-close-dlg"></span><div class="cff-dialog-content">'+me.message+'</div></div>'
27
  }
28
+ return '<div class="fields '+me.csslayout+(this.onoff ? ' cff-switch-container' : '')+' '+me.name+' cff-checkbox-field" id="field'+me.form_identifier+'-'+me.index+'"><div class="dfield">'+
29
+ '<div class="one_column"><label for="'+me.name+'"><input aria-label="'+$.fbuilder.htmlEncode(me.title)+'" name="'+me.name+'" id="'+me.name+'" class="field required" value="'+$.fbuilder.htmlEncode(me.value)+'" vt="'+$.fbuilder.htmlEncode((/^\s*$/.test(me.value)) ? me.title : me.value)+'" type="checkbox" /> '+
30
+ (this.onoff ? '<span class="cff-switch"></span>': '') +
31
+ '<span>'+
32
  $.fbuilder.htmlDecode( label )+''+((me.required)?'<span class="r">*</span>':'')+
33
  '</span></label></div>'+dlg+'<span class="uh"></span></div><div class="clearer"></div></div>';
34
  },
js/fields-public/fbuilder.fcalculated.js CHANGED
@@ -8,6 +8,8 @@
8
  predefined:"",
9
  required:false,
10
  size:"medium",
 
 
11
  eq:"",
12
  suffix:"",
13
  prefix:"",
@@ -22,7 +24,7 @@
22
  show:function()
23
  {
24
  this.predefined = this._getAttr('predefined');
25
- return '<div class="fields '+this.csslayout+' '+this.name+' cff-calculated-field" id="field'+this.form_identifier+'-'+this.index+'" style="'+((this.hidefield)? 'padding:0;margin:0;border:0;opacity:0;width:0;height:0;overflow:hidden;' : '' )+'"><label for="'+this.name+'">'+this.title+''+( ( this.required ) ? '<span class="r">*</span>' : '' )+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+((this.readonly) ? ' readonly ' : '')+' class="codepeoplecalculatedfield field '+this.size+((this.required)?" required":"")+'" type="'+( ( this.hidefield ) ? 'hidden' : 'text' )+'" value="'+this.predefined+'"/>'+( ( !this.hidefield ) ? '<span class="uh">'+this.userhelp+'</span>' : '' )+'</div><div class="clearer"></div></div>';
26
  },
27
  after_show:function()
28
  {
@@ -61,7 +63,7 @@
61
 
62
  // Events
63
  var e = $( '[id="'+me.name+'"]' );
64
- if(me.readonly == false && me.noEvalIfManual) e.bind('keyup', function(){e.data('manually', 1);});
65
  e.bind(
66
  'calcualtedfield_changed',
67
  {obj: me},
@@ -77,24 +79,32 @@
77
  }
78
  }
79
  ).on('keyup', function(){
80
- me.manual = true;
81
- if('manual' in me) e.trigger('calcualtedfield_changed');
 
 
 
82
  }).on('change', function(){
83
- if('manual' in me && me.manual)
 
 
 
 
84
  {
85
- if(me.formatDynamically)
86
- {
87
- me.manual = false;
88
- var v = me.val();
89
- this.value = $.fbuilder.calculator.format(v, configuration);
90
- }
91
  }
 
 
 
 
92
  });
93
 
94
- $( '#cp_calculatedfieldsf_pform'+me.form_identifier ).bind( 'reset', function(){me.manua = false;} );
95
  },
96
  showHideDep: function( toShow, toHide, hiddenByContainer )
97
  {
 
98
  var me = this,
99
  result = [];
100
 
@@ -260,7 +270,6 @@
260
  var _match,
261
  field_regexp = new RegExp( '(fieldname\\d+'+suffix+')(_[cr]b\\d+)?(\\|[rnv])?([\\D\\b])','i');
262
 
263
- window['getField'] = $.fbuilder['forms'][suffix].getItem;
264
  $.fbuilder['currentFormId'] = $.fbuilder['forms'][suffix].formId;
265
  eq = '(' + eq + ')';
266
  while ( _match = field_regexp.exec( eq ) )
@@ -314,7 +323,7 @@
314
  // The public object
315
  var CalcFieldClss = function(){};
316
  CalcFieldClss.prototype = {
317
- processing_queue : false, // Flag indicating the queued equations are being processed
318
  pendings : {},
319
  // object where attributes names are the forms identifiers, and their values the queue of equations
320
  queued_equations : {},
@@ -412,7 +421,11 @@
412
  if( rule )
413
  {
414
  var k = $.inArray(e, list_h);
415
- if( k != -1) list_h.splice( k, 1 );
 
 
 
 
416
  if( $.inArray(e, list) == -1) list.push( e );
417
  }
418
  else
@@ -478,8 +491,8 @@
478
  },
479
  processQueue : function( fSec )
480
  {
481
- if( this.processing_queue ) return;
482
- this.processing_queue = true;
483
 
484
  if( typeof this.queued_equations[ fSec ] != 'undefined' )
485
  {
@@ -502,7 +515,7 @@
502
  }
503
  }
504
 
505
- this.processing_queue = false;
506
  if(!this.thereIsPending(fSec)) $(document).trigger('equationsQueueEmpty', [fSec]);
507
  },
508
  format : function( value, config )
@@ -612,7 +625,10 @@
612
  if(
613
  typeof evalequations != 'undefined' &&
614
  evalequations*1 == 0 &&
615
- !( t.hasClass( 'codepeoplecalculatedfield' ) && evt.type == 'change' )
 
 
 
616
  )
617
  {
618
  return;
8
  predefined:"",
9
  required:false,
10
  size:"medium",
11
+ min:"",
12
+ max:"",
13
  eq:"",
14
  suffix:"",
15
  prefix:"",
24
  show:function()
25
  {
26
  this.predefined = this._getAttr('predefined');
27
+ return '<div class="fields '+this.csslayout+' '+this.name+' cff-calculated-field" id="field'+this.form_identifier+'-'+this.index+'" style="'+((this.hidefield)? 'padding:0;margin:0;border:0;opacity:0;width:0;height:0;overflow:hidden;' : '' )+'"><label for="'+this.name+'">'+this.title+''+( ( this.required ) ? '<span class="r">*</span>' : '' )+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+((this.readonly) ? ' readonly ' : '')+' '+( ( !/^\s*$/.test( this.min) ) ? 'min="'+$.fbuilder.parseVal( this._getAttr('min'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+( ( !/^\s*$/.test(this.max) ) ? ' max="'+$.fbuilder.parseVal( this._getAttr('max'), this.thousandSeparator, this.decimalSymbol )+'" ' : '' )+' class="codepeoplecalculatedfield field '+this.size+((this.required)?" required":"")+'" type="'+( ( this.hidefield ) ? 'hidden' : 'text' )+'" value="'+this.predefined+'"/>'+( ( !this.hidefield ) ? '<span class="uh">'+this.userhelp+'</span>' : '' )+'</div><div class="clearer"></div></div>';
28
  },
29
  after_show:function()
30
  {
63
 
64
  // Events
65
  var e = $( '[id="'+me.name+'"]' );
66
+
67
  e.bind(
68
  'calcualtedfield_changed',
69
  {obj: me},
79
  }
80
  }
81
  ).on('keyup', function(){
82
+ if(!me.readonly)
83
+ {
84
+ if(me.noEvalIfManual) e.data('manually', 1);
85
+ e.trigger('calcualtedfield_changed');
86
+ }
87
  }).on('change', function(){
88
+ if(
89
+ e.data('manually') &&
90
+ e.data('manually') == 1 &&
91
+ me.formatDynamically
92
+ )
93
  {
94
+ var v = me.val();
95
+ this.value = $.fbuilder.calculator.format(v, configuration);
 
 
 
 
96
  }
97
+ try
98
+ {
99
+ $(this).valid();
100
+ } catch(err) {}
101
  });
102
 
103
+ $('#cp_calculatedfieldsf_pform'+me.form_identifier).bind('reset', function(){e.removeData('manually');});
104
  },
105
  showHideDep: function( toShow, toHide, hiddenByContainer )
106
  {
107
+ if(typeof hiddenByContainer == 'undefined') hiddenByContainer = {};
108
  var me = this,
109
  result = [];
110
 
270
  var _match,
271
  field_regexp = new RegExp( '(fieldname\\d+'+suffix+')(_[cr]b\\d+)?(\\|[rnv])?([\\D\\b])','i');
272
 
 
273
  $.fbuilder['currentFormId'] = $.fbuilder['forms'][suffix].formId;
274
  eq = '(' + eq + ')';
275
  while ( _match = field_regexp.exec( eq ) )
323
  // The public object
324
  var CalcFieldClss = function(){};
325
  CalcFieldClss.prototype = {
326
+ processing_queue : {}, // Flag indicating the queued equations are being processed
327
  pendings : {},
328
  // object where attributes names are the forms identifiers, and their values the queue of equations
329
  queued_equations : {},
421
  if( rule )
422
  {
423
  var k = $.inArray(e, list_h);
424
+ while(k != -1)
425
+ {
426
+ list_h.splice( k, 1 );
427
+ k = $.inArray(e, list_h);
428
+ }
429
  if( $.inArray(e, list) == -1) list.push( e );
430
  }
431
  else
491
  },
492
  processQueue : function( fSec )
493
  {
494
+ if( fSec in this.processing_queue && this.processing_queue[fSec]) return;
495
+ this.processing_queue[fSec] = true;
496
 
497
  if( typeof this.queued_equations[ fSec ] != 'undefined' )
498
  {
515
  }
516
  }
517
 
518
+ this.processing_queue[fSec] = false;
519
  if(!this.thereIsPending(fSec)) $(document).trigger('equationsQueueEmpty', [fSec]);
520
  },
521
  format : function( value, config )
625
  if(
626
  typeof evalequations != 'undefined' &&
627
  evalequations*1 == 0 &&
628
+ (
629
+ !(t.hasClass('codepeoplecalculatedfield' ) && evt.type == 'change') ||
630
+ (t.hasClass('codepeoplecalculatedfield' ) && t.data('manually') == 1)
631
+ )
632
  )
633
  {
634
  return;
js/modules/01_mathematical_logical/admin/module_admin.js CHANGED
@@ -28,7 +28,8 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
28
  { "value" : "LOG", "code" : "LOG(", "tip" : "Returns the natural logarithm (base e) of the number passed as parameter. <strong>LOG(number)</strong>" },
29
  { "value" : "LOGAB", "code" : "LOGAB(", "tip" : "Returns the logarithm of A (base B). <strong>LOGAB(number, base)</strong>" },
30
  { "value" : "POW", "code" : "POW(", "tip" : "Returns the value of the first parameter raised to the power of the second parameter. <strong>POW(number1, number2)</strong>" },
31
- { "value" : "SQRT", "code" : "SQRT(", "tip" : "Returns the square root of the number passed as parameter. <strong>SQRT(number1, number2)</strong>" },
 
32
  { "value" : "MAX", "code" : "MAX(", "tip" : "Returns the greater value of the two parameters. <strong>MAX(number1, number2)</strong>" },
33
  { "value" : "MIN", "code" : "MIN(", "tip" : "Returns the lesser value of the two parameters. <strong>MIN(number1, number2)</strong>" },
34
  { "value" : "FORMAT", "code" : "FORMAT(", "tip" : "Formats the number passed as the first parameters, based on the settigns passed as second parameter. <strong>FORMAT(-1234.56, {prefix:&quot;$&quot;, suffix:&quot; usd&quot;, groupingsymbol:&quot;,&quot;, decimalsymbol:&quot;.&quot;, currency:true}) = &quot;-$1,234.56 usd&quot;</strong>" },
@@ -45,7 +46,14 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
45
  { "value" : "DEGREES", "code" : "DEGREES(", "tip" : "DEGREES(x) converts the x in radians to degrees.<br> <strong>DEGREES(1.5707963267948966) = 90</strong>" },
46
  { "value" : "RADIANS", "code" : "RADIANS(", "tip" : "RADIANS(x) converts the x in degrees to radians.<br> <strong>RADIANS(90) = 1.5707963267948966</strong>" },
47
  { "value" : "FACTORIAL", "code" : "FACTORIAL(", "tip" : "FACTORIAL(x) returns the factorial of x or null if x is not an integer greater than 0.<br> <strong>FACTORIAL(4) = 24</strong>" },
48
- { "value" : "SCIENTIFICTODECIMAL", "code" : "SCIENTIFICTODECIMAL(", "tip" : "SCIENTIFICTODECIMAL(x) returns the decimal representation of x.<br> <strong>SCIENTIFICTODECIMAL(3.5e4) = 35000</strong>" }
 
 
 
 
 
 
 
49
  ]
50
  },
51
 
28
  { "value" : "LOG", "code" : "LOG(", "tip" : "Returns the natural logarithm (base e) of the number passed as parameter. <strong>LOG(number)</strong>" },
29
  { "value" : "LOGAB", "code" : "LOGAB(", "tip" : "Returns the logarithm of A (base B). <strong>LOGAB(number, base)</strong>" },
30
  { "value" : "POW", "code" : "POW(", "tip" : "Returns the value of the first parameter raised to the power of the second parameter. <strong>POW(number1, number2)</strong>" },
31
+ { "value" : "SQRT", "code" : "SQRT(", "tip" : "Returns the square root of the number passed as parameter. <strong>SQRT(number1)</strong>" },
32
+ { "value" : "NTHROOT", "code" : "NTHROOT(", "tip" : "NTHROOT(X,Y) returns the Y root X. <strong>NTHROOT(27, 3) = 3</strong>" },
33
  { "value" : "MAX", "code" : "MAX(", "tip" : "Returns the greater value of the two parameters. <strong>MAX(number1, number2)</strong>" },
34
  { "value" : "MIN", "code" : "MIN(", "tip" : "Returns the lesser value of the two parameters. <strong>MIN(number1, number2)</strong>" },
35
  { "value" : "FORMAT", "code" : "FORMAT(", "tip" : "Formats the number passed as the first parameters, based on the settigns passed as second parameter. <strong>FORMAT(-1234.56, {prefix:&quot;$&quot;, suffix:&quot; usd&quot;, groupingsymbol:&quot;,&quot;, decimalsymbol:&quot;.&quot;, currency:true}) = &quot;-$1,234.56 usd&quot;</strong>" },
46
  { "value" : "DEGREES", "code" : "DEGREES(", "tip" : "DEGREES(x) converts the x in radians to degrees.<br> <strong>DEGREES(1.5707963267948966) = 90</strong>" },
47
  { "value" : "RADIANS", "code" : "RADIANS(", "tip" : "RADIANS(x) converts the x in degrees to radians.<br> <strong>RADIANS(90) = 1.5707963267948966</strong>" },
48
  { "value" : "FACTORIAL", "code" : "FACTORIAL(", "tip" : "FACTORIAL(x) returns the factorial of x or null if x is not an integer greater than 0.<br> <strong>FACTORIAL(4) = 24</strong>" },
49
+ { "value" : "SCIENTIFICTODECIMAL", "code" : "SCIENTIFICTODECIMAL(", "tip" : "SCIENTIFICTODECIMAL(x) returns the decimal representation of x.<br> <strong>SCIENTIFICTODECIMAL(3.5e4) = 35000</strong>" },
50
+ { "value" : "DECIMALTOSCIENTIFIC", "code" : "DECIMALTOSCIENTIFIC(", "tip" : "DECIMALTOSCIENTIFIC(x) returns the exponential representation of x.<br> <strong>DECIMALTOSCIENTIFIC(35000) = 3.5e+4</strong>" },
51
+ { "value" : "FRACTIONTODECIMAL", "code" : "FRACTIONTODECIMAL(", "tip" : "FRACTIONTODECIMAL(x) returns the decimal representation of x.<br> <strong>FRACTIONTODECIMAL(&quot;2/5&quot;) = 0.4</strong>" },
52
+ { "value" : "DECIMALTOFRACTION", "code" : "DECIMALTOFRACTION(", "tip" : "DECIMALTOFRACTION(x) returns the fractional representation of x.<br> <strong>DECIMALTOFRACTION(0.4) = &quot;2/5&quot;</strong>" },
53
+ { "value" : "FRACTIONSUM", "code" : "FRACTIONSUM(", "tip" : "Sums fractional numbers passed by parameter, returning the result also as fractional number. <strong>FRACTIONSUM(&quot;2/4&quot;,&quot;2/6&quot;)</strong> returns <strong>&quot;5/6&quot;</strong>" },
54
+ { "value" : "FRACTIONSUB", "code" : "FRACTIONSUB(", "tip" : "Subtracts fractional numbers passed by parameter, returning the result also as fractional number. <strong>FRACTIONSUB(&quot;2/4&quot;,&quot;2/6&quot;)</strong> returns <strong>&quot;1/6&quot;</strong>" },
55
+ { "value" : "FRACTIONMULT", "code" : "FRACTIONMULT(", "tip" : "Multiplies fractional numbers passed by parameter, returning the result also as fractional number. <strong>FRACTIONMULT(&quot;2/4&quot;,&quot;2/6&quot;)</strong> returns <strong>&quot;1/6&quot;</strong>" },
56
+ { "value" : "FRACTIONDIV", "code" : "FRACTIONDIV(", "tip" : "Divides fractional numbers passed by parameter, returning the result also as fractional number. <strong>FRACTIONDIV(&quot;2/4&quot;,&quot;2/6&quot;)</strong> returns <strong>&quot;3/2&quot;</strong>" }
57
  ]
58
  },
59
 
js/modules/01_mathematical_logical/public/01_logical.js CHANGED
@@ -46,15 +46,21 @@
46
  };
47
 
48
  // IN( term, values ) values can be a string or an array
49
- lib.IN = function( _term, _values ){
50
  function _reduce( str ){
51
- return String(str).replace( /^\s+/, '').replace(/\s+$/, '').replace(/\s+/, ' ').toLowerCase();
 
 
52
  };
53
 
54
  _term = _reduce( _term );
55
- if( typeof _values == 'string' ) return _reduce( _values ).indexOf( _term ) != -1;
 
 
 
 
56
  else if( typeof _values == 'object' && _values.length ){
57
- for( var i = 0, h = _values.length; i < h; i++) if( _reduce( _values[ i ] ).indexOf( _term ) != -1 ) return true;
58
  }
59
  return false;
60
  };
46
  };
47
 
48
  // IN( term, values ) values can be a string or an array
49
+ lib.IN = function( _term, _values, _case_sensitive ){
50
  function _reduce( str ){
51
+ var str = String(str).replace( /^\s+/, '').replace(/\s+$/, '').replace(/\s+/, ' ');
52
+ if(typeof _case_sensitive == 'undefined' || !_case_sensitive) str = str.toLowerCase()
53
+ return str;
54
  };
55
 
56
  _term = _reduce( _term );
57
+ if( typeof _values == 'string' )
58
+ {
59
+ if($.isNumeric(_term) && $.isNumeric(_values)) return _term == _values;
60
+ return _reduce(_values).indexOf(_term) != -1;
61
+ }
62
  else if( typeof _values == 'object' && _values.length ){
63
+ for( var i = 0, h = _values.length; i < h; i++) if( _reduce( _values[ i ] ) == _term ) return true;
64
  }
65
  return false;
66
  };
js/modules/01_mathematical_logical/public/module_public.js CHANGED
@@ -115,7 +115,8 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
115
  i = (i < 10) ? '0'+i : i;
116
  s = (s < 10) ? '0'+s : s;
117
 
118
- return format.replace( /y+/i, y)
 
119
  .replace( /m+/i, m)
120
  .replace( /d+/i, d)
121
  .replace( /h+/i, h)
@@ -169,7 +170,14 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
169
  {
170
  window.AVERAGE = window.average = function ()
171
  {
172
- return SUM.apply(this,arguments)/arguments.length;
 
 
 
 
 
 
 
173
  };
174
  } // End if window.AVERAGE
175
 
@@ -198,6 +206,14 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
198
  };
199
  } // End if window.LOGAB
200
 
 
 
 
 
 
 
 
 
201
  if(window.MIN == undefined)
202
  {
203
  window.MIN = window.min = function ()
@@ -240,9 +256,153 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
240
  };
241
  }
242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  if(window.SCIENTIFICTODECIMAL == undefined)
244
  {
245
  window.SCIENTIFICTODECIMAL = window.scientifictodecimal = function(x){
 
246
  if (Math.abs(x) < 1.0)
247
  {
248
  var e = parseInt(x.toString().split('e-')[1]);
@@ -266,6 +426,14 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
266
  };
267
  }
268
 
 
 
 
 
 
 
 
 
269
  if(window.FORMAT == undefined)
270
  {
271
  window.FORMAT = window.format = function(x,o){
115
  i = (i < 10) ? '0'+i : i;
116
  s = (s < 10) ? '0'+s : s;
117
 
118
+ return format.replace( /\by{2}\b/i, y%100)
119
+ .replace( /y+/i, y)
120
  .replace( /m+/i, m)
121
  .replace( /d+/i, d)
122
  .replace( /h+/i, h)
170
  {
171
  window.AVERAGE = window.average = function ()
172
  {
173
+ var _c = 0;
174
+ function c(v)
175
+ {
176
+ if(Array.isArray(v) && v.length) for(var i in v) c(v[i]);
177
+ else _c++;
178
+ }
179
+ for(var i in arguments) c(arguments[i]);
180
+ return SUM.apply(this,arguments)/_c;
181
  };
182
  } // End if window.AVERAGE
183
 
206
  };
207
  } // End if window.LOGAB
208
 
209
+ if(window.NTHROOT == undefined)
210
+ {
211
+ window.NTHROOT = window.nthroot = function(a,b)
212
+ {
213
+ return POW(a, 1/b);
214
+ };
215
+ } // End if window.NTHROOT
216
+
217
  if(window.MIN == undefined)
218
  {
219
  window.MIN = window.min = function ()
256
  };
257
  }
258
 
259
+ if(window.FRACTIONTODECIMAL == undefined)
260
+ {
261
+ window.FRACTIONTODECIMAL = window.fractiontodecimal = window.fractionToDecimal = function(v){
262
+ try
263
+ {
264
+ var x = v.toString().split('/');
265
+ return parseInt(x[0], 10)/((1 in x) ? parseInt(x[1], 10) : 1);
266
+ }catch(err){return v;}
267
+ };
268
+ }
269
+
270
+ if(window.DECIMALTOFRACTION == undefined)
271
+ {
272
+ window.DECIMALTOFRACTION = window.decimaltofraction = window.decimalToFraction = function(v){
273
+ try
274
+ {
275
+ if(v*1 == parseInt(v, 10)) return parseInt(v, 10);
276
+ var x = v.toString().split('.'),
277
+ top = parseInt(x[0]+''+x[1]),
278
+ bottom = Math.pow(10, x[1].length),
279
+ y = gcd(Math.abs(top), bottom);
280
+
281
+ return (top/y) + '/' + (bottom/y);
282
+ }catch(err){return v;}
283
+ };
284
+ }
285
+
286
+ if(window.FRACTIONSUM == undefined)
287
+ {
288
+ window.FRACTIONSUM = window.fractionsum = function(){
289
+ try
290
+ {
291
+ var _aux = function(a, b){
292
+ var d1, d2, m, r;
293
+
294
+ a = (a+'/1').split('/');
295
+ b = (b+'/1').split('/');
296
+
297
+ d1 = a[0]*b[1]+a[1]*b[0];
298
+ d2 = a[1]*b[1];
299
+
300
+ if(isNaN(d1) || isNaN(d2)) throw 'Invalid numbers';
301
+
302
+ m = abs(gcd(d1,d2));
303
+ r = d1/m + IF(d2/m == 1, '', '/'+d2/m);
304
+ return jQuery.isNumeric(r) ? r*1 : r;
305
+ };
306
+ var r = 0;
307
+ for(var i in arguments) r = _aux(r,arguments[i]);
308
+ return r;
309
+ } catch(err){}
310
+ };
311
+ }
312
+
313
+ if(window.FRACTIONSUB == undefined)
314
+ {
315
+ window.FRACTIONSUB = window.fractionsub = function(){
316
+ try
317
+ {
318
+ var _aux = function(a, b){
319
+ var d1, d2, m, r;
320
+
321
+ a = (a+'/1').split('/');
322
+ b = (b+'/1').split('/');
323
+
324
+ d1 = a[0]*b[1]-a[1]*b[0];
325
+ d2 = a[1]*b[1];
326
+
327
+ if(isNaN(d1) || isNaN(d2)) throw 'Invalid numbers';
328
+
329
+ m = abs(gcd(d1,d2));
330
+ r = d1/m + IF(d2/m == 1, '', '/'+d2/m);
331
+ return jQuery.isNumeric(r) ? r*1 : r;
332
+ };
333
+ var r = 0;
334
+ for(var i in arguments)
335
+ {
336
+ if(i == 0) r = _aux(arguments[i], r);
337
+ else r = _aux(r,arguments[i]);
338
+ }
339
+ return r;
340
+ } catch(err){}
341
+ };
342
+ }
343
+
344
+ if(window.FRACTIONMULT == undefined)
345
+ {
346
+ window.FRACTIONMULT = window.fractionmult = function(){
347
+ try
348
+ {
349
+ var _aux = function(a, b){
350
+ var d1, d2, m, r;
351
+
352
+ a = (a+'/1').split('/');
353
+ b = (b+'/1').split('/');
354
+
355
+ d1 = a[0]*b[0];
356
+ d2 = a[1]*b[1];
357
+
358
+ if(isNaN(d1) || isNaN(d2)) throw 'Invalid numbers';
359
+
360
+ m = abs(gcd(d1,d2));
361
+ r = d1/m + IF(d2/m == 1, '', '/'+d2/m);
362
+ return jQuery.isNumeric(r) ? r*1 : r;
363
+ };
364
+ var r = 1;
365
+ for(var i in arguments) r = _aux(r,arguments[i]);
366
+ return r;
367
+ } catch(err){}
368
+ };
369
+ }
370
+
371
+ if(window.FRACTIONDIV == undefined)
372
+ {
373
+ window.FRACTIONDIV = window.fractiondiv = function(){
374
+ try
375
+ {
376
+ var _aux = function(a, b){
377
+ var d1, d2, m, r;
378
+
379
+ a = (a+'/1').split('/');
380
+ b = (b+'/1').split('/');
381
+
382
+ d1 = a[0]*b[1];
383
+ d2 = a[1]*b[0];
384
+
385
+ if(isNaN(d1) || isNaN(d2)) throw 'Invalid numbers';
386
+
387
+ m = abs(gcd(d1,d2));
388
+ r = d1/m + IF(d2/m == 1, '', '/'+d2/m);
389
+ return jQuery.isNumeric(r) ? r*1 : r;
390
+ };
391
+ var r = 1;
392
+ for(var i in arguments)
393
+ {
394
+ if(i == 0) r = _aux(arguments[i], r);
395
+ else r = _aux(r,arguments[i]);
396
+ }
397
+ return r;
398
+ } catch(err){}
399
+ };
400
+ }
401
+
402
  if(window.SCIENTIFICTODECIMAL == undefined)
403
  {
404
  window.SCIENTIFICTODECIMAL = window.scientifictodecimal = function(x){
405
+ x *= 1;
406
  if (Math.abs(x) < 1.0)
407
  {
408
  var e = parseInt(x.toString().split('e-')[1]);
426
  };
427
  }
428
 
429
+ if(window.DECIMALTOSCIENTIFIC == undefined)
430
+ {
431
+ window.DECIMALTOSCIENTIFIC = window.decimaltoscientific = function(x){
432
+ var v = Number(x).toExponential();
433
+ return (isNaN(v) || x == '') ? x : v;
434
+ };
435
+ }
436
+
437
  if(window.FORMAT == undefined)
438
  {
439
  window.FORMAT = window.format = function(x,o){
js/modules/02_datetime/admin/module_admin.js CHANGED
@@ -22,6 +22,8 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'datetime' ] = {
22
  { "value" : "EOMONTH", "code" : "EOMONTH(", "tip" : "<p>Get the last day of the month. <strong>EOMONTH(date_obj, number)</strong> where the number parameter is optional.</p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;))</strong> Result: <strong>Mar 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;), 4)</strong> Result: <strong>Jul 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;), -3)</strong> Result: <strong>Dec 31 2020</strong></p>" },
23
  { "value" : "DATEDIFF", "code" : "DATEDIFF(", "tip" : "<p>Get the difference between two dates strings representation</p><p><strong>DATEDIFF(date_one, date_two, date_format, return)</strong></p><p>The function return an object, whose value depends of argument &quot;return&quot;</p><p>Possible values of return argument:<br />d - return the number of days between two dates<br />m - return the number of months between two dates, and remaining days<br />y - return the number of years between two dates, remaining months, and remaining days</p><p><strong>DATEDIFF(&quot;2013-10-27&quot;, &quot;2012-06-22&quot;, &quot;yyyy-mm-dd&quot;, &quot;y&quot;)[&quot;months&quot;]</strong><p><p>Result:<strong> 5 </strong></p>" },
24
  { "value" : "DATETIMESUM", "code" : "DATETIMESUM(", "tip" : "<p>Increases the date-time string representation in the number of seconds, minutes, hours, days, months, or years, passed as parameter.</p><p><strong>DATETIMESUM( date_string, format, number, to_increase )</strong></p><p>DATETIMESUM(&quot;2013-10-27&quot;, &quot;yyyy-mm-dd&quot;, 5, &quot;d&quot;)</p><p>Result: <strong>The date object representation of 2013/11/01</strong></p>" },
 
 
25
  { "value" : "GETDATETIMESTRING", "code" : "GETDATETIMESTRING(", "tip" : "<p>Returns the string representation of a date object</p><p><strong>GETDATETIMESTRING( datetime_object, format )</strong></p><p><strong>GETDATETIMESTRING(TODAY(), &quot;yyyy-mm-dd&quot;)</strong></p><p>Result: <strong>2013-10-27</strong></p>" }
26
  ]
27
  }
22
  { "value" : "EOMONTH", "code" : "EOMONTH(", "tip" : "<p>Get the last day of the month. <strong>EOMONTH(date_obj, number)</strong> where the number parameter is optional.</p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;))</strong> Result: <strong>Mar 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;), 4)</strong> Result: <strong>Jul 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ(&quot;2021-03-04&quot;), -3)</strong> Result: <strong>Dec 31 2020</strong></p>" },
23
  { "value" : "DATEDIFF", "code" : "DATEDIFF(", "tip" : "<p>Get the difference between two dates strings representation</p><p><strong>DATEDIFF(date_one, date_two, date_format, return)</strong></p><p>The function return an object, whose value depends of argument &quot;return&quot;</p><p>Possible values of return argument:<br />d - return the number of days between two dates<br />m - return the number of months between two dates, and remaining days<br />y - return the number of years between two dates, remaining months, and remaining days</p><p><strong>DATEDIFF(&quot;2013-10-27&quot;, &quot;2012-06-22&quot;, &quot;yyyy-mm-dd&quot;, &quot;y&quot;)[&quot;months&quot;]</strong><p><p>Result:<strong> 5 </strong></p>" },
24
  { "value" : "DATETIMESUM", "code" : "DATETIMESUM(", "tip" : "<p>Increases the date-time string representation in the number of seconds, minutes, hours, days, months, or years, passed as parameter.</p><p><strong>DATETIMESUM( date_string, format, number, to_increase )</strong></p><p>DATETIMESUM(&quot;2013-10-27&quot;, &quot;yyyy-mm-dd&quot;, 5, &quot;d&quot;)</p><p>Result: <strong>The date object representation of 2013/11/01</strong></p>" },
25
+ { "value" : "DECIMALTOTIME", "code" : "DECIMALTOTIME(", "tip" : "<p>Converts a decimal number to a time format text. The operation requires three parameters, the decimal number, character indicating the decimal representation (&quot;y&quot; for years, &quot;m&quot; for months, &quot;d&quot; for days, &quot;h&quot; for hours, &quot;i&quot; for minutes, and &quot;s&quot; for seconds), text for time format (&quot;h:i:s&quot;).</p><p><strong>DECIMALTOTIME( decimal, format, time format )</strong></p><p>DECIMALTOTIME(938405,&quot;s&quot;,&quot;d days, h hours, i minutes, and s seconds&quot;)</p><p>Result: <strong>10 days, 20 hours, 40 minutes, and 5 seconds</strong></p>" },
26
+ { "value" : "TIMETODECIMAL", "code" : "TIMETODECIMAL(", "tip" : "<p>Converts a time text to a decimal number. The operation requires three parameters, the text with time representation, the time format representation (&quot;h:i:d&quot;), character with the output format (&quot;y&quot; for years, &quot;m&quot; for months, &quot;d&quot; for days, &quot;h&quot; for hours, &quot;i&quot; for minutes, and &quot;s&quot; for seconds).</p><p><strong>TIMETODECIMAL( time text, time format, output format )</strong></p><p>TIMETODECIMAL(&quot;20:40:5&quot;,&quot;h:i:s&quot;,&quot;s&quot;)</p><p>Result: <strong>74405</strong></p>" },
27
  { "value" : "GETDATETIMESTRING", "code" : "GETDATETIMESTRING(", "tip" : "<p>Returns the string representation of a date object</p><p><strong>GETDATETIMESTRING( datetime_object, format )</strong></p><p><strong>GETDATETIMESTRING(TODAY(), &quot;yyyy-mm-dd&quot;)</strong></p><p>Result: <strong>2013-10-27</strong></p>" }
28
  ]
29
  }
js/modules/02_datetime/public/01_datetime.js CHANGED
@@ -45,6 +45,19 @@
45
  date = date.replace( p[ 0 ], '' );
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  if( null != ( p = /(\d{1,2})[:\.](\d{1,2})([:\.](\d{1,2}))?\s*([ap]m)?/i.exec( date ) ) ){
49
  if(/h+/i.test( format ) ){
50
  if( typeof p[ 5 ] != 'undefined' && /pm/i.test( p[ 5 ] ) ) p[ 1 ] = ( p[ 1 ]*1 + 12 ) % 24;
@@ -170,8 +183,8 @@
170
  lib.EOMONTH = function(d,n){
171
  n = (n || 0) + 1;
172
  var d1 = _getDateObj(d);
173
- d1.setMonth(d1.getMonth()+n);
174
  d1.setDate(1);
 
175
  d1.setDate(d1.getDate()-1);
176
  return d1;
177
  };
@@ -252,15 +265,21 @@
252
  lib.DATETIMESUM = function( date, format, number, to_increase){
253
  var d = _getDateObj( date, format );
254
  if( d.valid() ){
255
- if( typeof number != 'number' || isNaN( parseInt( number ) ) ) number = 0;
256
- else number = parseInt( number );
257
 
258
  if( typeof to_increase == 'undefined' ) to_increase = 'd';
259
 
260
 
261
  if( /y+/i.test( to_increase ) ) d.setFullYear( d.getFullYear() + number );
262
  else if( /d+/i.test( to_increase ) ) d.setDate( d.getDate() + number );
263
- else if( /m+/i.test( to_increase ) ) d.setMonth( d.getMonth() + number );
 
 
 
 
 
 
264
  else if( /h+/i.test( to_increase ) ) d.setHours( d.getHours() + number );
265
  else if( /i+/i.test( to_increase ) ) d.setMinutes( d.getMinutes() + number );
266
  else d.setSeconds( d.getSeconds() + number );
@@ -270,6 +289,92 @@
270
  return false;
271
  };
272
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
  // GETDATETIMESTRING( date_object, return_format ) Return the date object as a string representation determined by the return_format argument
274
  lib.GETDATETIMESTRING = function( date, format ){
275
  if( typeof format == 'undefined' ) format = default_format;
@@ -292,7 +397,8 @@
292
  i = ( i < 10 ) ? '0'+i : i;
293
  s = ( s < 10 ) ? '0'+s : s;
294
 
295
- return format.replace( /y+/i, date.getFullYear() )
 
296
  .replace( /m+/i, m )
297
  .replace( /d+/i, d )
298
  .replace( /h+/i, h )
45
  date = date.replace( p[ 0 ], '' );
46
  }
47
 
48
+ if( null != ( p = /(\d{1,2})[\/\-\.](\d{1,2})[\/\-\.](\d{2})/.exec( date ) ) ){
49
+ if( /d{2}[\/\-\.]m{2}[\/\-\.]y{2}/i.test( format ) ){
50
+ d = new Date( 2000+p[ 3 ]*1, ( p[ 2 ] - 1 ), p[ 1 ] );
51
+ }else if( /m{2}[\/\-\.]d{2}[\/\-\.]y{2}/i.test( format ) ){
52
+ d = new Date( 2000+p[ 3 ]*1, ( p[ 1 ] - 1 ), p[ 2 ] );
53
+ }else if( /y{2}[\/\-\.]d{2}[\/\-\.]m{2}/i.test( format ) ){
54
+ d = new Date( 2000+p[ 1 ]*1, ( p[ 3 ] - 1 ), p[ 2 ] );
55
+ }else if( /y{2}[\/\-\.]m{2}[\/\-\.]d{2}/i.test( format ) ){
56
+ d = new Date( 2000+p[ 1 ]*1, ( p[ 2 ] - 1 ), p[ 3 ] );
57
+ }
58
+ date = date.replace( p[ 0 ], '' );
59
+ }
60
+
61
  if( null != ( p = /(\d{1,2})[:\.](\d{1,2})([:\.](\d{1,2}))?\s*([ap]m)?/i.exec( date ) ) ){
62
  if(/h+/i.test( format ) ){
63
  if( typeof p[ 5 ] != 'undefined' && /pm/i.test( p[ 5 ] ) ) p[ 1 ] = ( p[ 1 ]*1 + 12 ) % 24;
183
  lib.EOMONTH = function(d,n){
184
  n = (n || 0) + 1;
185
  var d1 = _getDateObj(d);
 
186
  d1.setDate(1);
187
+ d1.setMonth(d1.getMonth()+n);
188
  d1.setDate(d1.getDate()-1);
189
  return d1;
190
  };
265
  lib.DATETIMESUM = function( date, format, number, to_increase){
266
  var d = _getDateObj( date, format );
267
  if( d.valid() ){
268
+ if( typeof number != 'number' && isNaN( parseFloat( number ) ) ) number = 0;
269
+ else number = parseFloat( number );
270
 
271
  if( typeof to_increase == 'undefined' ) to_increase = 'd';
272
 
273
 
274
  if( /y+/i.test( to_increase ) ) d.setFullYear( d.getFullYear() + number );
275
  else if( /d+/i.test( to_increase ) ) d.setDate( d.getDate() + number );
276
+ else if( /m+/i.test( to_increase ) ){
277
+ var tmp = DAY(d)
278
+ d.setDate(1);
279
+ d.setMonth( d.getMonth() + number );
280
+ d = EOMONTH(d);
281
+ d.setDate(MIN(tmp,DAY(d)));
282
+ }
283
  else if( /h+/i.test( to_increase ) ) d.setHours( d.getHours() + number );
284
  else if( /i+/i.test( to_increase ) ) d.setMinutes( d.getMinutes() + number );
285
  else d.setSeconds( d.getSeconds() + number );
289
  return false;
290
  };
291
 
292
+ lib.DECIMALTOTIME = lib.decimaltotime = function(value, from_format, to_format){
293
+ function complete(v, f)
294
+ {
295
+ if(1<f[0].length && v<10) v = '0'+v;
296
+ return v;
297
+ };
298
+
299
+ from_format = from_format.toLowerCase();
300
+
301
+ var y = /\by+\b/i.exec(to_format),
302
+ m = /\bm+\b/i.exec(to_format),
303
+ d = /\bd+\b/i.exec(to_format),
304
+ h = /\bh+\b/i.exec(to_format),
305
+ i = /\bi+\b/i.exec(to_format),
306
+ s = /\bs+\b/i.exec(to_format),
307
+ factor = 1,
308
+ components = {};
309
+
310
+ switch(from_format)
311
+ {
312
+ case 'y': factor = 365*24*60*60; break;
313
+ case 'm': factor = 30*24*60*60; break;
314
+ case 'd': factor = 24*60*60; break;
315
+ case 'h': factor = 60*60; break;
316
+ case 'i': factor = 60; break;
317
+ }
318
+
319
+ value *= factor;
320
+
321
+ if(y){ components['y'] = FLOOR(value/(365*24*60*60)); value = value%(365*24*60*60);}
322
+ if(m){ components['m'] = complete(FLOOR(value/(30*24*60*60)), m); value = value%(30*24*60*60);}
323
+ if(d){ components['d'] = complete(FLOOR(value/(24*60*60)), d); value = value%(24*60*60);}
324
+ if(h){ components['h'] = complete(FLOOR(value/(60*60)), h); value = value%(60*60);}
325
+ if(i){ components['i'] = complete(FLOOR(value/60), i); value = value%60;}
326
+ if(s){ components['s'] = complete(value, s);}
327
+
328
+ for(var index in components)
329
+ {
330
+ to_format = to_format.replace(new RegExp('\\b'+index+'+\\b', 'i'), components[index]);
331
+ }
332
+
333
+ return to_format;
334
+ };
335
+
336
+ lib.TIMETODECIMAL = lib.timetodecimal = function(value, from_format, to_format){
337
+ from_format = from_format.replace(/[^ymdhis\:\s]/ig)
338
+ .replace(/^[\s\:]+/, '')
339
+ .replace(/[\s\:]+$/, '')
340
+ .replace(/[\s\:]+/g, ' ');
341
+
342
+ value = value.replace(/^[\s\:]+/, '')
343
+ .replace(/[\s\:]+$/, '')
344
+ .replace(/[\s\:]+/g, ' ');
345
+
346
+ to_format = to_format.toLowerCase();
347
+
348
+ var value_components = value.split(/\s+/g),
349
+ from_components = from_format.split(/\s+/g),
350
+ factor = 1,
351
+ result = 0;
352
+
353
+ for(var j in from_components)
354
+ {
355
+ if(/y/i.test(from_components[j])) factor = 365*24*60*60;
356
+ else if(/m/i.test(from_components[j])) factor = 30*24*60*60;
357
+ else if(/d/i.test(from_components[j])) factor = 24*60*60;
358
+ else if(/h/i.test(from_components[j])) factor = 60*60;
359
+ else if(/i/i.test(from_components[j])) factor = 60;
360
+ else if(/s/i.test(from_components[j])) factor = 1;
361
+
362
+ result += value_components[j]*factor;
363
+ }
364
+
365
+ switch(to_format)
366
+ {
367
+ case 'y': factor = 365*24*60*60; break;
368
+ case 'm': factor = 30*24*60*60; break;
369
+ case 'd': factor = 24*60*60; break;
370
+ case 'h': factor = 60*60; break;
371
+ case 'i': factor = 60; break;
372
+ case 's': factor = 1; break;
373
+ }
374
+
375
+ return result/factor;
376
+ };
377
+
378
  // GETDATETIMESTRING( date_object, return_format ) Return the date object as a string representation determined by the return_format argument
379
  lib.GETDATETIMESTRING = function( date, format ){
380
  if( typeof format == 'undefined' ) format = default_format;
397
  i = ( i < 10 ) ? '0'+i : i;
398
  s = ( s < 10 ) ? '0'+s : s;
399
 
400
+ return format.replace( /\by{2}\b/i, date.getFullYear()%100 )
401
+ .replace( /y+/i, date.getFullYear() )
402
  .replace( /m+/i, m )
403
  .replace( /d+/i, d )
404
  .replace( /h+/i, h )
js/modules/05_managing_fields/admin/module_admin.js CHANGED
@@ -13,6 +13,11 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'processing' ] = {
13
  "code" : "getField(",
14
  "tip" : "<p>Get the field object. <strong>getField( # or fieldname# )</strong></p><p>Returns the internal representation of a field object. For example, if there is the slider field: fieldname1, to assing it a value, for example:50, enter as part of the equation associated to the calculated field the piece of code: getField(1).setVal(50);</p><p>The getField operation can be used only in the context of the equations.</p>"
15
  },
 
 
 
 
 
16
  {
17
  "value" : "IGNOREFIELD",
18
  "code" : "IGNOREFIELD(",
@@ -42,6 +47,11 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'processing' ] = {
42
  "value" : "EVALEQUATION",
43
  "code" : "EVALEQUATION(",
44
  "tip" : "<p>Evaluate specific equation. Requires two parameters, the form object and the field name, or the numeric part of the field name. Ex: EVALEQUATION(form, &quot;fieldname1&quot;); or EVALEQUATION(form, 1);</p>"
 
 
 
 
 
45
  }
46
  ]
47
  }
13
  "code" : "getField(",
14
  "tip" : "<p>Get the field object. <strong>getField( # or fieldname# )</strong></p><p>Returns the internal representation of a field object. For example, if there is the slider field: fieldname1, to assing it a value, for example:50, enter as part of the equation associated to the calculated field the piece of code: getField(1).setVal(50);</p><p>The getField operation can be used only in the context of the equations.</p>"
15
  },
16
+ {
17
+ "value" : "GOTOPAGE",
18
+ "code" : "GOTOPAGE(",
19
+ "tip" : "<p>Jumps to a page in a multipage form. <strong>GOTOPAGE( page, form object )</strong></p><p><b>page</b>, integer corresponding to the page index, starting at zero (required parameter).<br><b>form object</b>, optional parameter corresponding to the multipage form.<br>In the context of the equation, call the operation passing only the page index,<br>Ex. <b>GOTOPAGE (2);</b><br>But if the operation is called from the onclick event of a button, the form object is required,<br>Ex. <b>GOTOPAGE (2, this.form);</b></p>"
20
+ },
21
  {
22
  "value" : "IGNOREFIELD",
23
  "code" : "IGNOREFIELD(",
47
  "value" : "EVALEQUATION",
48
  "code" : "EVALEQUATION(",
49
  "tip" : "<p>Evaluate specific equation. Requires two parameters, the form object and the field name, or the numeric part of the field name. Ex: EVALEQUATION(form, &quot;fieldname1&quot;); or EVALEQUATION(form, 1);</p>"
50
+ },
51
+ {
52
+ "value" : "COPYFIELDVALUE",
53
+ "code" : "COPYFIELDVALUE(",
54
+ "tip" : "<p>Copies the field value to the clipboard. Supports input and textarea tags. <strong>COPYFIELDVALUE( # or fieldname#, form or form selector )</strong></p><p>The first parameter is required, it would be the numeric part of the field name or the field name. The second parameter would be a form object, or a selector with the form reference. If the second parameter is not passed, the plugin will copy the value of the field in the first form of the page. For example: COPYFIELDVALUE(1); or COPYFIELDVALUE(&quot;fieldname1&quot;);</p>"
55
  }
56
  ]
57
  }
js/modules/05_managing_fields/public/05_managing_fields.js CHANGED
@@ -29,6 +29,10 @@
29
  }
30
 
31
  /*** PUBLIC FUNCTIONS ***/
 
 
 
 
32
 
33
  lib.activatefield = lib.ACTIVATEFIELD = function( _field, _form )
34
  {
@@ -102,6 +106,36 @@
102
  }
103
  };
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  root.CF_FIELDS_MANAGEMENT = lib;
106
 
107
  })(this);
29
  }
30
 
31
  /*** PUBLIC FUNCTIONS ***/
32
+ lib.getField = function(_field, _form)
33
+ {
34
+ return _getField(_field, _form);
35
+ };
36
 
37
  lib.activatefield = lib.ACTIVATEFIELD = function( _field, _form )
38
  {
106
  }
107
  };
108
 
109
+ lib.COPYFIELDVALUE = lib.copyfieldvalue = function(_field, _form)
110
+ {
111
+ var o = _getForm(_form), f = _getField(_field, _form), j;
112
+ if(f)
113
+ {
114
+ j = f.jQueryRef().find(':input:eq(0)');
115
+ if(j.length)
116
+ {
117
+ try
118
+ {
119
+ j.select();
120
+ document.execCommand('copy');
121
+ } catch(err){}
122
+ }
123
+ }
124
+ };
125
+
126
+ lib.gotopage = lib.GOTOPAGE = lib.goToPage = function(p, f)
127
+ {
128
+ try
129
+ {
130
+ var o = $('#'+$.fbuilder['forms'][_getForm(f)].formId), c;
131
+ if(o.length)
132
+ {
133
+ c = o.find('.pbreak:visible').attr('page');
134
+ $.fbuilder.goToPage({'form':o,'from':c,'to':p});
135
+ }
136
+ } catch(err) { if(typeof console != 'undefined') console.log(err); }
137
+ };
138
+
139
  root.CF_FIELDS_MANAGEMENT = lib;
140
 
141
  })(this);
js/modules/06_connector/public/01_connector.js CHANGED
@@ -18,7 +18,7 @@
18
 
19
  // cffProxy( function ) The function should accept a callback
20
  lib.cffProxy = lib.cffproxy = lib.CFFPROXY = function(){
21
- if(typeof fbuilderjQuery == 'undefined' || !arguments.length || typeof arguments[0] != 'function') return;
22
 
23
  var $ = fbuilderjQuery,
24
  args = Array.prototype.slice.call(arguments);
@@ -31,7 +31,10 @@
31
  lib.records[index] = value;
32
  $.fbuilder.calculator.enqueueEquation(eq.identifier, [eq]);
33
  $.fbuilder.calculator.removePending(eq.identifier);
34
- if(!$.fbuilder.calculator.processing_queue)
 
 
 
35
  {
36
  $.fbuilder.calculator.processQueue(eq.identifier);
37
  }
@@ -42,7 +45,7 @@
42
  args.shift();
43
  args.push(aux);
44
  $.fbuilder.calculator.addPending($.fbuilder['currentEq']['identifier']);
45
- f.apply(null, args);
46
  };
47
 
48
  root.CF_CONNECTOR = lib;
18
 
19
  // cffProxy( function ) The function should accept a callback
20
  lib.cffProxy = lib.cffproxy = lib.CFFPROXY = function(){
21
+ if(typeof fbuilderjQuery == 'undefined' || !arguments.length || typeof arguments[0] != 'function') return;
22
 
23
  var $ = fbuilderjQuery,
24
  args = Array.prototype.slice.call(arguments);
31
  lib.records[index] = value;
32
  $.fbuilder.calculator.enqueueEquation(eq.identifier, [eq]);
33
  $.fbuilder.calculator.removePending(eq.identifier);
34
+ if(
35
+ !(eq.identifier in $.fbuilder.calculator.processing_queue) ||
36
+ !$.fbuilder.calculator.processing_queue[eq.identifier]
37
+ )
38
  {
39
  $.fbuilder.calculator.processQueue(eq.identifier);
40
  }
45
  args.shift();
46
  args.push(aux);
47
  $.fbuilder.calculator.addPending($.fbuilder['currentEq']['identifier']);
48
+ setTimeout(function(){f.apply(null, args);},5);
49
  };
50
 
51
  root.CF_CONNECTOR = lib;
js/modules/08_url/admin/module_admin.js CHANGED
@@ -13,6 +13,11 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'url' ] = {
13
  "code" : "getURL()",
14
  "tip" : "<p>Returns the current URL. <strong>getURL()</strong></p>"
15
  },
 
 
 
 
 
16
  {
17
  "value" : "getBaseURL",
18
  "code" : "getBaseURL()",
13
  "code" : "getURL()",
14
  "tip" : "<p>Returns the current URL. <strong>getURL()</strong></p>"
15
  },
16
+ {
17
+ "value" : "getURLProtocol",
18
+ "code" : "getURLProtocol()",
19
+ "tip" : "<p>Returns the current URL protocol in lowercase. <strong>getURLProtocol()</strong> returns <strong>https:</strong></p>"
20
+ },
21
  {
22
  "value" : "getBaseURL",
23
  "code" : "getBaseURL()",
js/modules/08_url/public/01_url.js CHANGED
@@ -44,6 +44,11 @@
44
  return document.location.href;
45
  };
46
 
 
 
 
 
 
47
  // getBaseURL()
48
  lib.getBaseURL = lib.getbaseurl = lib.GETBASEURL = function(){
49
  return window.location.protocol + '//' + window.location.host + '/';
@@ -74,7 +79,8 @@
74
  paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
75
 
76
  paramName = paramName.toLowerCase();
77
- if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();
 
78
 
79
  if (paramName.match(/\[(\d+)?\]$/))
80
  {
44
  return document.location.href;
45
  };
46
 
47
+ // getURLProtocol()
48
+ lib.getURLProtocol = lib.geturlprotocol = lib.GETURLPROTOCOL = function(){
49
+ return document.location.protocol.toLowerCase();
50
+ };
51
+
52
  // getBaseURL()
53
  lib.getBaseURL = lib.getbaseurl = lib.GETBASEURL = function(){
54
  return window.location.protocol + '//' + window.location.host + '/';
79
  paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
80
 
81
  paramName = paramName.toLowerCase();
82
+ if (typeof paramName === 'string') paramName = decodeURIComponent(paramName);
83
+ if (typeof paramValue === 'string') paramValue = decodeURIComponent(paramValue);
84
 
85
  if (paramName.match(/\[(\d+)?\]$/))
86
  {
languages/calculated-fields-form-en_US.mo CHANGED
Binary file
languages/calculated-fields-form-en_US.po CHANGED
@@ -1,25 +1,25 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2021-07-04 01:10+0200\n"
5
- "PO-Revision-Date: 2021-07-04 01:10+0200\n"
6
  "Last-Translator: CodePeople\n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 3.0\n"
13
- "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 
15
  "X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
- #: cp_calculatedfieldsf_free.php:78
19
  msgid "Form Preview"
20
  msgstr ""
21
 
22
- #: cp_calculatedfieldsf_free.php:113
23
  msgid ""
24
  "<div class=\"error-text\">The data cannot be stored in database because has "
25
  "occurred an error with the database structure. Please, go to the plugins "
@@ -28,7 +28,7 @@ msgid ""
28
  "please <a href=\"https://cff.dwbooster.com/contact-us\">contact us</a></div>"
29
  msgstr ""
30
 
31
- #: cp_calculatedfieldsf_free.php:129
32
  msgid ""
33
  "<div class=\"error-text\">The data cannot be stored in database because has "
34
  "occurred an error with the form structure. Please, try to save the data "
@@ -41,7 +41,7 @@ msgstr ""
41
  msgid "Settings saved"
42
  msgstr ""
43
 
44
- #: inc/cpcff_admin_int.inc.php:50 inc/cpcff_admin_int_list.inc.php:100
45
  #: inc/cpcff_page_builders.inc.php:171
46
  #: pagebuilders/beaverbuilder/cff/cff/cff.php:9
47
  #: pagebuilders/beaverbuilder/cff/cff/cff.php:11
@@ -87,7 +87,7 @@ msgid "Select a revision"
87
  msgstr ""
88
 
89
  #: inc/cpcff_admin_int.inc.php:91 inc/cpcff_admin_int.inc.php:212
90
- #: inc/cpcff_admin_int.inc.php:591
91
  msgid "Preview"
92
  msgstr ""
93
 
@@ -127,8 +127,8 @@ msgstr ""
127
  msgid "Field Settings"
128
  msgstr ""
129
 
130
- #: inc/cpcff_admin_int.inc.php:211 inc/cpcff_admin_int.inc.php:333
131
- #: inc/cpcff_admin_int.inc.php:635
132
  msgid "Save Changes"
133
  msgstr ""
134
 
@@ -188,10 +188,10 @@ msgid ""
188
  "\"https://cff.dwbooster.com/faq#q82\" target=\"_blank\">check this FAQ</a>."
189
  msgstr ""
190
 
191
- #: inc/cpcff_admin_int.inc.php:257 inc/cpcff_admin_int.inc.php:318
192
- #: inc/cpcff_admin_int.inc.php:392 inc/cpcff_admin_int.inc.php:466
193
- #: inc/cpcff_admin_int.inc.php:515 inc/cpcff_admin_int.inc.php:557
194
- #: inc/cpcff_admin_int.inc.php:624
195
  msgid "Up to form structure"
196
  msgstr ""
197
 
@@ -235,500 +235,547 @@ msgstr ""
235
  msgid "\"over minimum\" text"
236
  msgstr ""
237
 
238
- #: inc/cpcff_admin_int.inc.php:323
239
  msgid "Note"
240
  msgstr ""
241
 
242
- #: inc/cpcff_admin_int.inc.php:325
243
  msgid "To insert this form in a post/page, use the dedicated icon"
244
  msgstr ""
245
 
246
- #: inc/cpcff_admin_int.inc.php:326 inc/cpcff_main.inc.php:238
247
  msgid "Insert Calculated Fields Form"
248
  msgstr ""
249
 
250
- #: inc/cpcff_admin_int.inc.php:327
251
  msgid ""
252
  "which has been added to your Upload/Insert Menu, just below the title of "
253
  "your Post/Page."
254
  msgstr ""
255
 
256
- #: inc/cpcff_admin_int.inc.php:336 inc/cpcff_admin_int.inc.php:638
257
- #: inc/cpcff_admin_int_list.inc.php:270
258
  msgid "Request Custom Modifications"
259
  msgstr ""
260
 
261
- #: inc/cpcff_admin_int.inc.php:336 inc/cpcff_admin_int.inc.php:638
262
- #: inc/cpcff_admin_int_list.inc.php:270 inc/cpcff_main.inc.php:221
263
  msgid "Help"
264
  msgstr ""
265
 
266
- #: inc/cpcff_admin_int.inc.php:340
267
  msgid ""
268
- "The following settings are available only in the <a href=\"https://cff."
269
- "dwbooster.com/download\" target=\"_blank\">Commercial versions</a>"
 
270
  msgstr ""
271
 
272
- #: inc/cpcff_admin_int.inc.php:342
 
 
 
 
273
  msgid "Form Processing and Payment Settings"
274
  msgstr ""
275
 
276
- #: inc/cpcff_admin_int.inc.php:346
277
  msgid "Payment Settings"
278
  msgstr ""
279
 
280
- #: inc/cpcff_admin_int.inc.php:351
281
  msgid "Request cost"
282
  msgstr ""
283
 
284
- #: inc/cpcff_admin_int.inc.php:356
285
  msgid "Currency"
286
  msgstr ""
287
 
288
- #: inc/cpcff_admin_int.inc.php:361
289
  msgid "Base amount"
290
  msgstr ""
291
 
292
- #: inc/cpcff_admin_int.inc.php:362
293
  msgid ""
294
  "Minimum amount to charge. If the final price is lesser than this number, the "
295
  "base amount will be applied."
296
  msgstr ""
297
 
298
- #: inc/cpcff_admin_int.inc.php:367
299
  msgid "Paypal product name"
300
  msgstr ""
301
 
302
- #: inc/cpcff_admin_int.inc.php:372
303
  msgid "Discount Codes"
304
  msgstr ""
305
 
306
- #: inc/cpcff_admin_int.inc.php:374
307
  msgid "This feature isn't available in this version."
308
  msgstr ""
309
 
310
- #: inc/cpcff_admin_int.inc.php:377
311
  msgid "Add new discount code"
312
  msgstr ""
313
 
314
- #: inc/cpcff_admin_int.inc.php:379
315
  msgid "Code"
316
  msgstr ""
317
 
318
- #: inc/cpcff_admin_int.inc.php:380
319
  msgid "Discount"
320
  msgstr ""
321
 
322
- #: inc/cpcff_admin_int.inc.php:381
323
  msgid "Percent"
324
  msgstr ""
325
 
326
- #: inc/cpcff_admin_int.inc.php:382
327
  msgid "Fixed Value"
328
  msgstr ""
329
 
330
- #: inc/cpcff_admin_int.inc.php:385
331
  msgid "Valid until"
332
  msgstr ""
333
 
334
- #: inc/cpcff_admin_int.inc.php:386 inc/cpcff_admin_int_list.inc.php:211
335
  msgid "Add"
336
  msgstr ""
337
 
338
- #: inc/cpcff_admin_int.inc.php:388
339
  msgid "Note: Expiration date based in server time. Server time now is"
340
  msgstr ""
341
 
342
- #: inc/cpcff_admin_int.inc.php:397
343
  msgid "Paypal Payment Configuration"
344
  msgstr ""
345
 
346
- #: inc/cpcff_admin_int.inc.php:402
347
  msgid "Enable Paypal Payments?"
348
  msgstr ""
349
 
350
- #: inc/cpcff_admin_int.inc.php:404 inc/cpcff_admin_int.inc.php:492
351
- #: inc/cpcff_admin_int.inc.php:530 inc/cpcff_admin_int.inc.php:571
352
  msgid "No"
353
  msgstr ""
354
 
355
- #: inc/cpcff_admin_int.inc.php:406
356
  msgid ""
357
  "Note: If \"Optional\" is selected, a radiobutton will appear in the form to "
358
  "select if the payment will be made with PayPal or not."
359
  msgstr ""
360
 
361
- #: inc/cpcff_admin_int.inc.php:408
362
  msgid "Label for the \"<strong>Pay with PayPal</strong>\" option"
363
  msgstr ""
364
 
365
- #: inc/cpcff_admin_int.inc.php:414
366
  msgid "Paypal Mode"
367
  msgstr ""
368
 
369
- #: inc/cpcff_admin_int.inc.php:416
370
  msgid "Production - real payments processed"
371
  msgstr ""
372
 
373
- #: inc/cpcff_admin_int.inc.php:417
374
  msgid "SandBox - PayPal testing sandbox area"
375
  msgstr ""
376
 
377
- #: inc/cpcff_admin_int.inc.php:423
378
  msgid "Paypal email"
379
  msgstr ""
380
 
381
- #: inc/cpcff_admin_int.inc.php:428
382
  msgid "A $0 amount to pay means"
383
  msgstr ""
384
 
385
- #: inc/cpcff_admin_int.inc.php:430
386
  msgid "Let the user enter any amount at PayPal (ex: for a donation)"
387
  msgstr ""
388
 
389
- #: inc/cpcff_admin_int.inc.php:431
390
  msgid "Don't require any payment. Form is submitted skiping the PayPal page."
391
  msgstr ""
392
 
393
- #: inc/cpcff_admin_int.inc.php:437
394
  msgid "Paypal language"
395
  msgstr ""
396
 
397
- #: inc/cpcff_admin_int.inc.php:442
398
  msgid "Payment frequency"
399
  msgstr ""
400
 
401
- #: inc/cpcff_admin_int.inc.php:446
402
  msgid "One time payment (default option, user is billed only once)"
403
  msgstr ""
404
 
405
- #: inc/cpcff_admin_int.inc.php:447
406
  msgid "Bill the user every 1 month"
407
  msgstr ""
408
 
409
- #: inc/cpcff_admin_int.inc.php:448
410
  msgid "Bill the user every 3 months"
411
  msgstr ""
412
 
413
- #: inc/cpcff_admin_int.inc.php:449
414
  msgid "Bill the user every 6 months"
415
  msgstr ""
416
 
417
- #: inc/cpcff_admin_int.inc.php:450
418
  msgid "Bill the user every 12 months"
419
  msgstr ""
420
 
421
- #: inc/cpcff_admin_int.inc.php:455
422
  msgid "Paypal prompt buyers for shipping address"
423
  msgstr ""
424
 
425
- #: inc/cpcff_admin_int.inc.php:459
426
  msgid "Do not prompt for an address"
427
  msgstr ""
428
 
429
- #: inc/cpcff_admin_int.inc.php:460
430
  msgid "Prompt for an address, but do not require one"
431
  msgstr ""
432
 
433
- #: inc/cpcff_admin_int.inc.php:461
434
  msgid "Prompt for an address and require one"
435
  msgstr ""
436
 
437
- #: inc/cpcff_admin_int.inc.php:471
438
  msgid "Form Processing / Email Settings"
439
  msgstr ""
440
 
441
- #: inc/cpcff_admin_int.inc.php:475
442
  msgid "\"From\" email"
443
  msgstr ""
444
 
445
- #: inc/cpcff_admin_int.inc.php:476
446
  msgid ""
447
  "This email is required if the \"From fixed email address\" option is "
448
  "selected, or it is enabled the email copy to the user."
449
  msgstr ""
450
 
451
- #: inc/cpcff_admin_int.inc.php:479
452
  msgid "Destination emails (comma separated)"
453
  msgstr ""
454
 
455
- #: inc/cpcff_admin_int.inc.php:483 inc/cpcff_admin_int.inc.php:539
456
  msgid "Email subject"
457
  msgstr ""
458
 
459
- #: inc/cpcff_admin_int.inc.php:487
460
  msgid "Include additional information?"
461
  msgstr ""
462
 
463
- #: inc/cpcff_admin_int.inc.php:491 inc/cpcff_admin_int.inc.php:529
464
- #: inc/cpcff_admin_int.inc.php:570
465
  msgid "Yes"
466
  msgstr ""
467
 
468
- #: inc/cpcff_admin_int.inc.php:493
469
  msgid ""
470
  "If the \"No\" option is selected the plugin won't capture the IP address of "
471
  "users."
472
  msgstr ""
473
 
474
- #: inc/cpcff_admin_int.inc.php:497
475
  msgid "Thank you page (after sending the message)"
476
  msgstr ""
477
 
478
- #: inc/cpcff_admin_int.inc.php:501 inc/cpcff_admin_int.inc.php:543
479
  msgid "Email format?"
480
  msgstr ""
481
 
482
- #: inc/cpcff_admin_int.inc.php:505 inc/cpcff_admin_int.inc.php:547
483
  msgid "Plain Text (default)"
484
  msgstr ""
485
 
486
- #: inc/cpcff_admin_int.inc.php:506 inc/cpcff_admin_int.inc.php:548
487
  msgid "HTML (use html in the textarea below)"
488
  msgstr ""
489
 
490
- #: inc/cpcff_admin_int.inc.php:511 inc/cpcff_admin_int.inc.php:553
491
  msgid "Message"
492
  msgstr ""
493
 
494
- #: inc/cpcff_admin_int.inc.php:521
495
  msgid "Email Copy to User"
496
  msgstr ""
497
 
498
- #: inc/cpcff_admin_int.inc.php:525
499
  msgid "Send confirmation/thank you message to user?"
500
  msgstr ""
501
 
502
- #: inc/cpcff_admin_int.inc.php:535
503
  msgid "Email field on the form"
504
  msgstr ""
505
 
506
- #: inc/cpcff_admin_int.inc.php:562
507
  msgid "Captcha Verification"
508
  msgstr ""
509
 
510
- #: inc/cpcff_admin_int.inc.php:566
511
  msgid "Use Captcha Verification?"
512
  msgstr ""
513
 
514
- #: inc/cpcff_admin_int.inc.php:577
515
  msgid "Width"
516
  msgstr ""
517
 
518
- #: inc/cpcff_admin_int.inc.php:579
519
  msgid "Height"
520
  msgstr ""
521
 
522
- #: inc/cpcff_admin_int.inc.php:581
523
  msgid "Chars"
524
  msgstr ""
525
 
526
- #: inc/cpcff_admin_int.inc.php:586
527
  msgid "Min font size"
528
  msgstr ""
529
 
530
- #: inc/cpcff_admin_int.inc.php:588
531
  msgid "Max font size"
532
  msgstr ""
533
 
534
- #: inc/cpcff_admin_int.inc.php:593
535
  msgid "security code"
536
  msgstr ""
537
 
538
- #: inc/cpcff_admin_int.inc.php:599
539
  msgid "Noise"
540
  msgstr ""
541
 
542
- #: inc/cpcff_admin_int.inc.php:601
543
  msgid "Noise Length"
544
  msgstr ""
545
 
546
- #: inc/cpcff_admin_int.inc.php:606
547
  msgid "Background"
548
  msgstr ""
549
 
550
- #: inc/cpcff_admin_int.inc.php:613
551
  msgid "Font"
552
  msgstr ""
553
 
554
- #: inc/cpcff_admin_int_list.inc.php:26
 
 
 
 
555
  msgid "Item added"
556
  msgstr ""
557
 
558
- #: inc/cpcff_admin_int_list.inc.php:32
559
  msgid "Item updated"
560
  msgstr ""
561
 
562
- #: inc/cpcff_admin_int_list.inc.php:38
563
  msgid "Item deleted"
564
  msgstr ""
565
 
566
- #: inc/cpcff_admin_int_list.inc.php:42
567
  msgid "Item duplicated/cloned"
568
  msgstr ""
569
 
570
- #: inc/cpcff_admin_int_list.inc.php:43
571
  msgid "Duplicate/Clone Error, the form cannot be cloned"
572
  msgstr ""
573
 
574
- #: inc/cpcff_admin_int_list.inc.php:92
575
  msgid "Troubleshoot settings updated"
576
  msgstr ""
577
 
578
- #: inc/cpcff_admin_int_list.inc.php:146
579
- msgid "Are you sure that you want to delete this item?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
580
  msgstr ""
581
 
582
- #: inc/cpcff_admin_int_list.inc.php:154
583
- msgid "Are you sure that you want to update these settings?"
584
  msgstr ""
585
 
586
- #: inc/cpcff_admin_int_list.inc.php:170
587
  msgid "Form List / Items List"
588
  msgstr ""
589
 
590
- #: inc/cpcff_admin_int_list.inc.php:175
591
  msgid "ID"
592
  msgstr ""
593
 
594
- #: inc/cpcff_admin_int_list.inc.php:175
595
  msgid "Form Name"
596
  msgstr ""
597
 
598
- #: inc/cpcff_admin_int_list.inc.php:175
599
  msgid "Options"
600
  msgstr ""
601
 
602
- #: inc/cpcff_admin_int_list.inc.php:175
603
  msgid "Shortcode"
604
  msgstr ""
605
 
606
- #: inc/cpcff_admin_int_list.inc.php:189
607
  msgid "Update"
608
  msgstr ""
609
 
610
- #: inc/cpcff_admin_int_list.inc.php:190 inc/cpcff_main.inc.php:219
611
  msgid "Settings"
612
  msgstr ""
613
 
614
- #: inc/cpcff_admin_int_list.inc.php:191
615
  msgid "Messages"
616
  msgstr ""
617
 
618
- #: inc/cpcff_admin_int_list.inc.php:192
619
  msgid "Clone"
620
  msgstr ""
621
 
622
- #: inc/cpcff_admin_int_list.inc.php:193
623
  msgid "Delete"
624
  msgstr ""
625
 
626
- #: inc/cpcff_admin_int_list.inc.php:206
627
  msgid "New Form"
628
  msgstr ""
629
 
630
- #: inc/cpcff_admin_int_list.inc.php:210
631
  msgid "Item Name"
632
  msgstr ""
633
 
634
- #: inc/cpcff_admin_int_list.inc.php:217
635
- msgid "For additional resources visit the plugin's"
636
  msgstr ""
637
 
638
- #: inc/cpcff_admin_int_list.inc.php:217
639
- msgid "Marketplace"
640
  msgstr ""
641
 
642
- #: inc/cpcff_admin_int_list.inc.php:222
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  msgid "Troubleshoot Area & General Settings"
644
  msgstr ""
645
 
646
- #: inc/cpcff_admin_int_list.inc.php:233
647
  msgid ""
648
  "<strong>Important!</strong>: Use this area <strong>only</strong> if you are "
649
  "experiencing conflicts with third party plugins, with the theme scripts or "
650
  "with the character encoding."
651
  msgstr ""
652
 
653
- #: inc/cpcff_admin_int_list.inc.php:234
654
  msgid "Script load method"
655
  msgstr ""
656
 
657
- #: inc/cpcff_admin_int_list.inc.php:236
658
  msgid "Classic (Recommended)"
659
  msgstr ""
660
 
661
- #: inc/cpcff_admin_int_list.inc.php:237
662
  msgid "Direct"
663
  msgstr ""
664
 
665
- #: inc/cpcff_admin_int_list.inc.php:239
666
  msgid ""
667
  "* Change the script load method if the form doesn't appear in the public "
668
  "website."
669
  msgstr ""
670
 
671
- #: inc/cpcff_admin_int_list.inc.php:241
672
  msgid "Character encoding"
673
  msgstr ""
674
 
675
- #: inc/cpcff_admin_int_list.inc.php:243
676
  msgid "Keep current charset (Recommended)"
677
  msgstr ""
678
 
679
- #: inc/cpcff_admin_int_list.inc.php:244
680
  msgid "try this first"
681
  msgstr ""
682
 
683
- #: inc/cpcff_admin_int_list.inc.php:245
684
  msgid "Only from MySQL 5.5"
685
  msgstr ""
686
 
687
- #: inc/cpcff_admin_int_list.inc.php:248
688
  msgid ""
689
  "* Update the charset if you are getting problems displaying special/non-"
690
  "latin characters. After updated you need to edit the special characters "
691
  "again."
692
  msgstr ""
693
 
694
- #: inc/cpcff_admin_int_list.inc.php:250
695
  msgid "There is active an optimization plugin in WordPress"
696
  msgstr ""
697
 
698
- #: inc/cpcff_admin_int_list.inc.php:251
699
  msgid ""
700
  "* Tick the checkbox if there is an optimization plugin active on the "
701
  "website, and the forms are not visible."
702
  msgstr ""
703
 
704
- #: inc/cpcff_admin_int_list.inc.php:254
705
  msgid "Activate Javascript Cache"
706
  msgstr ""
707
 
708
- #: inc/cpcff_admin_int_list.inc.php:256
709
  msgid "Allows to access the forms directly"
710
  msgstr ""
711
 
712
- #: inc/cpcff_admin_int_list.inc.php:258
713
  msgid "Allows to access the forms from amp pages"
714
  msgstr ""
715
 
716
- #: inc/cpcff_admin_int_list.inc.php:260
717
  msgid "Do not load the forms with crawlers"
718
  msgstr ""
719
 
720
- #: inc/cpcff_admin_int_list.inc.php:261
721
  msgid "* The forms are not loaded when website is being indexed by searchers."
722
  msgstr ""
723
 
724
- #: inc/cpcff_admin_int_list.inc.php:263
725
  msgid "UPDATE"
726
  msgstr ""
727
 
728
- #: inc/cpcff_admin_int_list.inc.php:270 inc/cpcff_main.inc.php:220
 
 
 
 
729
  msgid "Upgrade"
730
  msgstr ""
731
 
 
 
 
 
732
  #: inc/cpcff_compatibility.inc.php:20
733
  msgid ""
734
  "There is active the <b>Fast Velocity Minify</b> plugin. If the forms are not "
@@ -739,20 +786,26 @@ msgstr ""
739
 
740
  #: inc/cpcff_compatibility.inc.php:26
741
  msgid ""
 
 
 
 
 
 
742
  "There is active the <b>Autoptimize</b> plugin. If the forms are not visible, "
743
  "please try disabling the <i>\"Force JavaScript in &lt;head&gt;\"</i> option "
744
  "in the <b>Autoptimize</b> settings, or remove the jQuery file from the <i>"
745
  "\"Exclude scripts from Autoptimize\"</i> one."
746
  msgstr ""
747
 
748
- #: inc/cpcff_compatibility.inc.php:32
749
  msgid ""
750
  "There is active the <b>LiteSpeed Cache</b> plugin. If the forms are not "
751
  "visible, please try disabling the <i>\"JS Combine\"</i> option in the "
752
  "<b>Optimize</b> tab of <b>LiteSpeed Cache</b> settings."
753
  msgstr ""
754
 
755
- #: inc/cpcff_compatibility.inc.php:38
756
  msgid ""
757
  "There is active the <b>WP Rocket</b> plugin. If the forms are not visible, "
758
  "please try disabling the <i>\"Combine JavaScript files\"</i> option in the "
@@ -760,7 +813,7 @@ msgid ""
760
  "clear the website cache."
761
  msgstr ""
762
 
763
- #: inc/cpcff_compatibility.inc.php:44
764
  msgid ""
765
  "There is active the <b>SG Optimizer</b> plugin. If the forms are not "
766
  "visible, please try disabling the options: <i>\"Minify the HTML Output\"</i> "
@@ -768,7 +821,7 @@ msgid ""
768
  "and remember to purge the website cache."
769
  msgstr ""
770
 
771
- #: inc/cpcff_compatibility.inc.php:50
772
  msgid ""
773
  "There is active the <b>Hummingbird</b> plugin. If the forms are not visible, "
774
  "check the <i>\"Hummingbird &gt; Asset Optimization\"</i> options. Make sure "
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
+ "POT-Creation-Date: 2022-01-25 02:38+0100\n"
5
+ "PO-Revision-Date: 2022-01-25 02:38+0100\n"
6
  "Last-Translator: CodePeople\n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
 
 
12
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
13
+ "X-Generator: Poedit 3.0.1\n"
14
+ "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
+ #: cp_calculatedfieldsf_free.php:80
19
  msgid "Form Preview"
20
  msgstr ""
21
 
22
+ #: cp_calculatedfieldsf_free.php:118
23
  msgid ""
24
  "<div class=\"error-text\">The data cannot be stored in database because has "
25
  "occurred an error with the database structure. Please, go to the plugins "
28
  "please <a href=\"https://cff.dwbooster.com/contact-us\">contact us</a></div>"
29
  msgstr ""
30
 
31
+ #: cp_calculatedfieldsf_free.php:134
32
  msgid ""
33
  "<div class=\"error-text\">The data cannot be stored in database because has "
34
  "occurred an error with the form structure. Please, try to save the data "
41
  msgid "Settings saved"
42
  msgstr ""
43
 
44
+ #: inc/cpcff_admin_int.inc.php:50 inc/cpcff_admin_int_list.inc.php:144
45
  #: inc/cpcff_page_builders.inc.php:171
46
  #: pagebuilders/beaverbuilder/cff/cff/cff.php:9
47
  #: pagebuilders/beaverbuilder/cff/cff/cff.php:11
87
  msgstr ""
88
 
89
  #: inc/cpcff_admin_int.inc.php:91 inc/cpcff_admin_int.inc.php:212
90
+ #: inc/cpcff_admin_int.inc.php:605
91
  msgid "Preview"
92
  msgstr ""
93
 
127
  msgid "Field Settings"
128
  msgstr ""
129
 
130
+ #: inc/cpcff_admin_int.inc.php:211 inc/cpcff_admin_int.inc.php:336
131
+ #: inc/cpcff_admin_int.inc.php:649
132
  msgid "Save Changes"
133
  msgstr ""
134
 
188
  "\"https://cff.dwbooster.com/faq#q82\" target=\"_blank\">check this FAQ</a>."
189
  msgstr ""
190
 
191
+ #: inc/cpcff_admin_int.inc.php:257 inc/cpcff_admin_int.inc.php:321
192
+ #: inc/cpcff_admin_int.inc.php:406 inc/cpcff_admin_int.inc.php:480
193
+ #: inc/cpcff_admin_int.inc.php:529 inc/cpcff_admin_int.inc.php:571
194
+ #: inc/cpcff_admin_int.inc.php:638
195
  msgid "Up to form structure"
196
  msgstr ""
197
 
235
  msgid "\"over minimum\" text"
236
  msgstr ""
237
 
238
+ #: inc/cpcff_admin_int.inc.php:326
239
  msgid "Note"
240
  msgstr ""
241
 
242
+ #: inc/cpcff_admin_int.inc.php:328
243
  msgid "To insert this form in a post/page, use the dedicated icon"
244
  msgstr ""
245
 
246
+ #: inc/cpcff_admin_int.inc.php:329 inc/cpcff_main.inc.php:238
247
  msgid "Insert Calculated Fields Form"
248
  msgstr ""
249
 
250
+ #: inc/cpcff_admin_int.inc.php:330
251
  msgid ""
252
  "which has been added to your Upload/Insert Menu, just below the title of "
253
  "your Post/Page."
254
  msgstr ""
255
 
256
+ #: inc/cpcff_admin_int.inc.php:339 inc/cpcff_admin_int.inc.php:652
257
+ #: inc/cpcff_admin_int_list.inc.php:377
258
  msgid "Request Custom Modifications"
259
  msgstr ""
260
 
261
+ #: inc/cpcff_admin_int.inc.php:339 inc/cpcff_admin_int.inc.php:652
262
+ #: inc/cpcff_admin_int_list.inc.php:377 inc/cpcff_main.inc.php:221
263
  msgid "Help"
264
  msgstr ""
265
 
266
+ #: inc/cpcff_admin_int.inc.php:346
267
  msgid ""
268
+ "The following features are available in the commercial version of the <a "
269
+ "href=\"https://cff.dwbooster.com/download\" target=\"_blank\" style=\"text-"
270
+ "decoration:none;\">\"Calculated Fields Form\"</a>"
271
  msgstr ""
272
 
273
+ #: inc/cpcff_admin_int.inc.php:347
274
+ msgid "Pay only ONCE, use it FOREVER"
275
+ msgstr ""
276
+
277
+ #: inc/cpcff_admin_int.inc.php:356
278
  msgid "Form Processing and Payment Settings"
279
  msgstr ""
280
 
281
+ #: inc/cpcff_admin_int.inc.php:360
282
  msgid "Payment Settings"
283
  msgstr ""
284
 
285
+ #: inc/cpcff_admin_int.inc.php:365
286
  msgid "Request cost"
287
  msgstr ""
288
 
289
+ #: inc/cpcff_admin_int.inc.php:370
290
  msgid "Currency"
291
  msgstr ""
292
 
293
+ #: inc/cpcff_admin_int.inc.php:375
294
  msgid "Base amount"
295
  msgstr ""
296
 
297
+ #: inc/cpcff_admin_int.inc.php:376
298
  msgid ""
299
  "Minimum amount to charge. If the final price is lesser than this number, the "
300
  "base amount will be applied."
301
  msgstr ""
302
 
303
+ #: inc/cpcff_admin_int.inc.php:381
304
  msgid "Paypal product name"
305
  msgstr ""
306
 
307
+ #: inc/cpcff_admin_int.inc.php:386
308
  msgid "Discount Codes"
309
  msgstr ""
310
 
311
+ #: inc/cpcff_admin_int.inc.php:388
312
  msgid "This feature isn't available in this version."
313
  msgstr ""
314
 
315
+ #: inc/cpcff_admin_int.inc.php:391
316
  msgid "Add new discount code"
317
  msgstr ""
318
 
319
+ #: inc/cpcff_admin_int.inc.php:393
320
  msgid "Code"
321
  msgstr ""
322
 
323
+ #: inc/cpcff_admin_int.inc.php:394
324
  msgid "Discount"
325
  msgstr ""
326
 
327
+ #: inc/cpcff_admin_int.inc.php:395
328
  msgid "Percent"
329
  msgstr ""
330
 
331
+ #: inc/cpcff_admin_int.inc.php:396
332
  msgid "Fixed Value"
333
  msgstr ""
334
 
335
+ #: inc/cpcff_admin_int.inc.php:399
336
  msgid "Valid until"
337
  msgstr ""
338
 
339
+ #: inc/cpcff_admin_int.inc.php:400 inc/cpcff_admin_int_list.inc.php:276
340
  msgid "Add"
341
  msgstr ""
342
 
343
+ #: inc/cpcff_admin_int.inc.php:402
344
  msgid "Note: Expiration date based in server time. Server time now is"
345
  msgstr ""
346
 
347
+ #: inc/cpcff_admin_int.inc.php:411
348
  msgid "Paypal Payment Configuration"
349
  msgstr ""
350
 
351
+ #: inc/cpcff_admin_int.inc.php:416
352
  msgid "Enable Paypal Payments?"
353
  msgstr ""
354
 
355
+ #: inc/cpcff_admin_int.inc.php:418 inc/cpcff_admin_int.inc.php:506
356
+ #: inc/cpcff_admin_int.inc.php:544 inc/cpcff_admin_int.inc.php:585
357
  msgid "No"
358
  msgstr ""
359
 
360
+ #: inc/cpcff_admin_int.inc.php:420
361
  msgid ""
362
  "Note: If \"Optional\" is selected, a radiobutton will appear in the form to "
363
  "select if the payment will be made with PayPal or not."
364
  msgstr ""
365
 
366
+ #: inc/cpcff_admin_int.inc.php:422
367
  msgid "Label for the \"<strong>Pay with PayPal</strong>\" option"
368
  msgstr ""
369
 
370
+ #: inc/cpcff_admin_int.inc.php:428
371
  msgid "Paypal Mode"
372
  msgstr ""
373
 
374
+ #: inc/cpcff_admin_int.inc.php:430
375
  msgid "Production - real payments processed"
376
  msgstr ""
377
 
378
+ #: inc/cpcff_admin_int.inc.php:431
379
  msgid "SandBox - PayPal testing sandbox area"
380
  msgstr ""
381
 
382
+ #: inc/cpcff_admin_int.inc.php:437
383
  msgid "Paypal email"
384
  msgstr ""
385
 
386
+ #: inc/cpcff_admin_int.inc.php:442
387
  msgid "A $0 amount to pay means"
388
  msgstr ""
389
 
390
+ #: inc/cpcff_admin_int.inc.php:444
391
  msgid "Let the user enter any amount at PayPal (ex: for a donation)"
392
  msgstr ""
393
 
394
+ #: inc/cpcff_admin_int.inc.php:445
395
  msgid "Don't require any payment. Form is submitted skiping the PayPal page."
396
  msgstr ""
397
 
398
+ #: inc/cpcff_admin_int.inc.php:451
399
  msgid "Paypal language"
400
  msgstr ""
401
 
402
+ #: inc/cpcff_admin_int.inc.php:456
403
  msgid "Payment frequency"
404
  msgstr ""
405
 
406
+ #: inc/cpcff_admin_int.inc.php:460
407
  msgid "One time payment (default option, user is billed only once)"
408
  msgstr ""
409
 
410
+ #: inc/cpcff_admin_int.inc.php:461
411
  msgid "Bill the user every 1 month"
412
  msgstr ""
413
 
414
+ #: inc/cpcff_admin_int.inc.php:462
415
  msgid "Bill the user every 3 months"
416
  msgstr ""
417
 
418
+ #: inc/cpcff_admin_int.inc.php:463
419
  msgid "Bill the user every 6 months"
420
  msgstr ""
421
 
422
+ #: inc/cpcff_admin_int.inc.php:464
423
  msgid "Bill the user every 12 months"
424
  msgstr ""
425
 
426
+ #: inc/cpcff_admin_int.inc.php:469
427
  msgid "Paypal prompt buyers for shipping address"
428
  msgstr ""
429
 
430
+ #: inc/cpcff_admin_int.inc.php:473
431
  msgid "Do not prompt for an address"
432
  msgstr ""
433
 
434
+ #: inc/cpcff_admin_int.inc.php:474
435
  msgid "Prompt for an address, but do not require one"
436
  msgstr ""
437
 
438
+ #: inc/cpcff_admin_int.inc.php:475
439
  msgid "Prompt for an address and require one"
440
  msgstr ""
441
 
442
+ #: inc/cpcff_admin_int.inc.php:485
443
  msgid "Form Processing / Email Settings"
444
  msgstr ""
445
 
446
+ #: inc/cpcff_admin_int.inc.php:489
447
  msgid "\"From\" email"
448
  msgstr ""
449
 
450
+ #: inc/cpcff_admin_int.inc.php:490
451
  msgid ""
452
  "This email is required if the \"From fixed email address\" option is "
453
  "selected, or it is enabled the email copy to the user."
454
  msgstr ""
455
 
456
+ #: inc/cpcff_admin_int.inc.php:493
457
  msgid "Destination emails (comma separated)"
458
  msgstr ""
459
 
460
+ #: inc/cpcff_admin_int.inc.php:497 inc/cpcff_admin_int.inc.php:553
461
  msgid "Email subject"
462
  msgstr ""
463
 
464
+ #: inc/cpcff_admin_int.inc.php:501
465
  msgid "Include additional information?"
466
  msgstr ""
467
 
468
+ #: inc/cpcff_admin_int.inc.php:505 inc/cpcff_admin_int.inc.php:543
469
+ #: inc/cpcff_admin_int.inc.php:584
470
  msgid "Yes"
471
  msgstr ""
472
 
473
+ #: inc/cpcff_admin_int.inc.php:507
474
  msgid ""
475
  "If the \"No\" option is selected the plugin won't capture the IP address of "
476
  "users."
477
  msgstr ""
478
 
479
+ #: inc/cpcff_admin_int.inc.php:511
480
  msgid "Thank you page (after sending the message)"
481
  msgstr ""
482
 
483
+ #: inc/cpcff_admin_int.inc.php:515 inc/cpcff_admin_int.inc.php:557
484
  msgid "Email format?"
485
  msgstr ""
486
 
487
+ #: inc/cpcff_admin_int.inc.php:519 inc/cpcff_admin_int.inc.php:561
488
  msgid "Plain Text (default)"
489
  msgstr ""
490
 
491
+ #: inc/cpcff_admin_int.inc.php:520 inc/cpcff_admin_int.inc.php:562
492
  msgid "HTML (use html in the textarea below)"
493
  msgstr ""
494
 
495
+ #: inc/cpcff_admin_int.inc.php:525 inc/cpcff_admin_int.inc.php:567
496
  msgid "Message"
497
  msgstr ""
498
 
499
+ #: inc/cpcff_admin_int.inc.php:535
500
  msgid "Email Copy to User"
501
  msgstr ""
502
 
503
+ #: inc/cpcff_admin_int.inc.php:539
504
  msgid "Send confirmation/thank you message to user?"
505
  msgstr ""
506
 
507
+ #: inc/cpcff_admin_int.inc.php:549
508
  msgid "Email field on the form"
509
  msgstr ""
510
 
511
+ #: inc/cpcff_admin_int.inc.php:576
512
  msgid "Captcha Verification"
513
  msgstr ""
514
 
515
+ #: inc/cpcff_admin_int.inc.php:580
516
  msgid "Use Captcha Verification?"
517
  msgstr ""
518
 
519
+ #: inc/cpcff_admin_int.inc.php:591
520
  msgid "Width"
521
  msgstr ""
522
 
523
+ #: inc/cpcff_admin_int.inc.php:593
524
  msgid "Height"
525
  msgstr ""
526
 
527
+ #: inc/cpcff_admin_int.inc.php:595
528
  msgid "Chars"
529
  msgstr ""
530
 
531
+ #: inc/cpcff_admin_int.inc.php:600
532
  msgid "Min font size"
533
  msgstr ""
534
 
535
+ #: inc/cpcff_admin_int.inc.php:602
536
  msgid "Max font size"
537
  msgstr ""
538
 
539
+ #: inc/cpcff_admin_int.inc.php:607
540
  msgid "security code"
541
  msgstr ""
542
 
543
+ #: inc/cpcff_admin_int.inc.php:613
544
  msgid "Noise"
545
  msgstr ""
546
 
547
+ #: inc/cpcff_admin_int.inc.php:615
548
  msgid "Noise Length"
549
  msgstr ""
550
 
551
+ #: inc/cpcff_admin_int.inc.php:620
552
  msgid "Background"
553
  msgstr ""
554
 
555
+ #: inc/cpcff_admin_int.inc.php:627
556
  msgid "Font"
557
  msgstr ""
558
 
559
+ #: inc/cpcff_admin_int_list.inc.php:53
560
+ msgid "Default settings updated"
561
+ msgstr ""
562
+
563
+ #: inc/cpcff_admin_int_list.inc.php:60
564
  msgid "Item added"
565
  msgstr ""
566
 
567
+ #: inc/cpcff_admin_int_list.inc.php:66
568
  msgid "Item updated"
569
  msgstr ""
570
 
571
+ #: inc/cpcff_admin_int_list.inc.php:72
572
  msgid "Item deleted"
573
  msgstr ""
574
 
575
+ #: inc/cpcff_admin_int_list.inc.php:76
576
  msgid "Item duplicated/cloned"
577
  msgstr ""
578
 
579
+ #: inc/cpcff_admin_int_list.inc.php:77
580
  msgid "Duplicate/Clone Error, the form cannot be cloned"
581
  msgstr ""
582
 
583
+ #: inc/cpcff_admin_int_list.inc.php:126
584
  msgid "Troubleshoot settings updated"
585
  msgstr ""
586
 
587
+ #: inc/cpcff_admin_int_list.inc.php:190
588
+ msgid "Are you sure you want to delete this item?"
589
+ msgstr ""
590
+
591
+ #: inc/cpcff_admin_int_list.inc.php:198
592
+ msgid "Are you sure you want to update these settings?"
593
+ msgstr ""
594
+
595
+ #: inc/cpcff_admin_int_list.inc.php:222
596
+ msgid ""
597
+ "Are you sure you want to modify existing forms?\\nWe recommend modifying the "
598
+ "forms one by one."
599
+ msgstr ""
600
+
601
+ #: inc/cpcff_admin_int_list.inc.php:231
602
+ msgid "Forms and Settings"
603
  msgstr ""
604
 
605
+ #: inc/cpcff_admin_int_list.inc.php:232 inc/cpcff_admin_int_list.inc.php:312
606
+ msgid "Marketplace"
607
  msgstr ""
608
 
609
+ #: inc/cpcff_admin_int_list.inc.php:237
610
  msgid "Form List / Items List"
611
  msgstr ""
612
 
613
+ #: inc/cpcff_admin_int_list.inc.php:242
614
  msgid "ID"
615
  msgstr ""
616
 
617
+ #: inc/cpcff_admin_int_list.inc.php:242
618
  msgid "Form Name"
619
  msgstr ""
620
 
621
+ #: inc/cpcff_admin_int_list.inc.php:242
622
  msgid "Options"
623
  msgstr ""
624
 
625
+ #: inc/cpcff_admin_int_list.inc.php:242
626
  msgid "Shortcode"
627
  msgstr ""
628
 
629
+ #: inc/cpcff_admin_int_list.inc.php:255 inc/cpcff_admin_int_list.inc.php:306
630
  msgid "Update"
631
  msgstr ""
632
 
633
+ #: inc/cpcff_admin_int_list.inc.php:256 inc/cpcff_main.inc.php:219
634
  msgid "Settings"
635
  msgstr ""
636
 
637
+ #: inc/cpcff_admin_int_list.inc.php:257
638
  msgid "Messages"
639
  msgstr ""
640
 
641
+ #: inc/cpcff_admin_int_list.inc.php:258
642
  msgid "Clone"
643
  msgstr ""
644
 
645
+ #: inc/cpcff_admin_int_list.inc.php:259
646
  msgid "Delete"
647
  msgstr ""
648
 
649
+ #: inc/cpcff_admin_int_list.inc.php:272
650
  msgid "New Form"
651
  msgstr ""
652
 
653
+ #: inc/cpcff_admin_int_list.inc.php:275
654
  msgid "Item Name"
655
  msgstr ""
656
 
657
+ #: inc/cpcff_admin_int_list.inc.php:283
658
+ msgid "Default Settings"
659
  msgstr ""
660
 
661
+ #: inc/cpcff_admin_int_list.inc.php:285
662
+ msgid "Applies the default settings to new forms."
663
  msgstr ""
664
 
665
+ #: inc/cpcff_admin_int_list.inc.php:287
666
+ msgid "Default Template"
667
+ msgstr ""
668
+
669
+ #: inc/cpcff_admin_int_list.inc.php:303
670
+ msgid "Apply To Existing Forms"
671
+ msgstr ""
672
+
673
+ #: inc/cpcff_admin_int_list.inc.php:303
674
+ msgid "It will modify the settings of existing forms"
675
+ msgstr ""
676
+
677
+ #: inc/cpcff_admin_int_list.inc.php:312
678
+ msgid "For additional resources visit the plugin's"
679
+ msgstr ""
680
+
681
+ #: inc/cpcff_admin_int_list.inc.php:316
682
  msgid "Troubleshoot Area & General Settings"
683
  msgstr ""
684
 
685
+ #: inc/cpcff_admin_int_list.inc.php:320
686
  msgid ""
687
  "<strong>Important!</strong>: Use this area <strong>only</strong> if you are "
688
  "experiencing conflicts with third party plugins, with the theme scripts or "
689
  "with the character encoding."
690
  msgstr ""
691
 
692
+ #: inc/cpcff_admin_int_list.inc.php:321
693
  msgid "Script load method"
694
  msgstr ""
695
 
696
+ #: inc/cpcff_admin_int_list.inc.php:323
697
  msgid "Classic (Recommended)"
698
  msgstr ""
699
 
700
+ #: inc/cpcff_admin_int_list.inc.php:324
701
  msgid "Direct"
702
  msgstr ""
703
 
704
+ #: inc/cpcff_admin_int_list.inc.php:326
705
  msgid ""
706
  "* Change the script load method if the form doesn't appear in the public "
707
  "website."
708
  msgstr ""
709
 
710
+ #: inc/cpcff_admin_int_list.inc.php:328
711
  msgid "Character encoding"
712
  msgstr ""
713
 
714
+ #: inc/cpcff_admin_int_list.inc.php:330
715
  msgid "Keep current charset (Recommended)"
716
  msgstr ""
717
 
718
+ #: inc/cpcff_admin_int_list.inc.php:331
719
  msgid "try this first"
720
  msgstr ""
721
 
722
+ #: inc/cpcff_admin_int_list.inc.php:332
723
  msgid "Only from MySQL 5.5"
724
  msgstr ""
725
 
726
+ #: inc/cpcff_admin_int_list.inc.php:335
727
  msgid ""
728
  "* Update the charset if you are getting problems displaying special/non-"
729
  "latin characters. After updated you need to edit the special characters "
730
  "again."
731
  msgstr ""
732
 
733
+ #: inc/cpcff_admin_int_list.inc.php:343
734
  msgid "There is active an optimization plugin in WordPress"
735
  msgstr ""
736
 
737
+ #: inc/cpcff_admin_int_list.inc.php:344
738
  msgid ""
739
  "* Tick the checkbox if there is an optimization plugin active on the "
740
  "website, and the forms are not visible."
741
  msgstr ""
742
 
743
+ #: inc/cpcff_admin_int_list.inc.php:353
744
  msgid "Activate Javascript Cache"
745
  msgstr ""
746
 
747
+ #: inc/cpcff_admin_int_list.inc.php:355
748
  msgid "Allows to access the forms directly"
749
  msgstr ""
750
 
751
+ #: inc/cpcff_admin_int_list.inc.php:357
752
  msgid "Allows to access the forms from amp pages"
753
  msgstr ""
754
 
755
+ #: inc/cpcff_admin_int_list.inc.php:359
756
  msgid "Do not load the forms with crawlers"
757
  msgstr ""
758
 
759
+ #: inc/cpcff_admin_int_list.inc.php:360
760
  msgid "* The forms are not loaded when website is being indexed by searchers."
761
  msgstr ""
762
 
763
+ #: inc/cpcff_admin_int_list.inc.php:362
764
  msgid "UPDATE"
765
  msgstr ""
766
 
767
+ #: inc/cpcff_admin_int_list.inc.php:371
768
+ msgid "Calculated Fields Form Marketplace"
769
+ msgstr ""
770
+
771
+ #: inc/cpcff_admin_int_list.inc.php:377 inc/cpcff_main.inc.php:220
772
  msgid "Upgrade"
773
  msgstr ""
774
 
775
+ #: inc/cpcff_amp.inc.php:155
776
+ msgid "Click to expand"
777
+ msgstr ""
778
+
779
  #: inc/cpcff_compatibility.inc.php:20
780
  msgid ""
781
  "There is active the <b>Fast Velocity Minify</b> plugin. If the forms are not "
786
 
787
  #: inc/cpcff_compatibility.inc.php:26
788
  msgid ""
789
+ "There is active the <b>W3 Total Cache</b> plugin. If the forms are not "
790
+ "visible, please tick the checkbox."
791
+ msgstr ""
792
+
793
+ #: inc/cpcff_compatibility.inc.php:32
794
+ msgid ""
795
  "There is active the <b>Autoptimize</b> plugin. If the forms are not visible, "
796
  "please try disabling the <i>\"Force JavaScript in &lt;head&gt;\"</i> option "
797
  "in the <b>Autoptimize</b> settings, or remove the jQuery file from the <i>"
798
  "\"Exclude scripts from Autoptimize\"</i> one."
799
  msgstr ""
800
 
801
+ #: inc/cpcff_compatibility.inc.php:38
802
  msgid ""
803
  "There is active the <b>LiteSpeed Cache</b> plugin. If the forms are not "
804
  "visible, please try disabling the <i>\"JS Combine\"</i> option in the "
805
  "<b>Optimize</b> tab of <b>LiteSpeed Cache</b> settings."
806
  msgstr ""
807
 
808
+ #: inc/cpcff_compatibility.inc.php:44
809
  msgid ""
810
  "There is active the <b>WP Rocket</b> plugin. If the forms are not visible, "
811
  "please try disabling the <i>\"Combine JavaScript files\"</i> option in the "
813
  "clear the website cache."
814
  msgstr ""
815
 
816
+ #: inc/cpcff_compatibility.inc.php:50
817
  msgid ""
818
  "There is active the <b>SG Optimizer</b> plugin. If the forms are not "
819
  "visible, please try disabling the options: <i>\"Minify the HTML Output\"</i> "
821
  "and remember to purge the website cache."
822
  msgstr ""
823
 
824
+ #: inc/cpcff_compatibility.inc.php:56
825
  msgid ""
826
  "There is active the <b>Hummingbird</b> plugin. If the forms are not visible, "
827
  "check the <i>\"Hummingbird &gt; Asset Optimization\"</i> options. Make sure "
pagebuilders/elementor/elementor.pb.php CHANGED
@@ -19,7 +19,7 @@ class Elementor_CFF_Widget extends Widget_Base
19
 
20
  public function get_icon()
21
  {
22
- return 'fa fa-plus';
23
  } // End get_icon
24
 
25
  public function get_categories()
@@ -143,7 +143,6 @@ class Elementor_CFF_Widget extends Widget_Base
143
  echo $this->_get_shortcode();
144
  } // End render_plain_content
145
 
146
- protected function _content_template() {} // End _content_template
147
  } // End ClassElementor_CFF_Widget
148
 
149
  class Elementor_CFFV_Widget extends Widget_Shortcode
@@ -160,7 +159,7 @@ class Elementor_CFFV_Widget extends Widget_Shortcode
160
 
161
  public function get_icon()
162
  {
163
- return 'fa fa-asterisk';
164
  } // End get_icon
165
 
166
  public function get_categories()
19
 
20
  public function get_icon()
21
  {
22
+ return 'eicon-apps';
23
  } // End get_icon
24
 
25
  public function get_categories()
143
  echo $this->_get_shortcode();
144
  } // End render_plain_content
145
 
 
146
  } // End ClassElementor_CFF_Widget
147
 
148
  class Elementor_CFFV_Widget extends Widget_Shortcode
159
 
160
  public function get_icon()
161
  {
162
+ return 'eicon-shortcode';
163
  } // End get_icon
164
 
165
  public function get_categories()
templates/01/style.css CHANGED
@@ -46,4 +46,21 @@
46
  border: 1px solid #204a70;
47
  }
48
 
49
- .cp_cff_letter #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  border: 1px solid #204a70;
47
  }
48
 
49
+ .cp_cff_letter #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
50
+
51
+ .cp_cff_letter #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#2b88d9;}
52
+
53
+ .cp_cff_letter #fbuilder span.files-list img{border-color:#bbb;}
54
+
55
+ .cp_cff_letter #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
56
+ .cp_cff_letter #fbuilder .select2-dropdown,
57
+ .cp_cff_letter #fbuilder .select2-selection--multiple,
58
+ .cp_cff_letter #fbuilder .select2-selection--single{
59
+ border-bottom: 1px solid #bbb;
60
+ border-top: 1px solid #999;
61
+ border-left: 1px solid #bbb;
62
+ border-right: 1px solid #bbb;
63
+ border-radius:0;
64
+ }
65
+ .cp_cff_letter #fbuilder .select2-dropdown *{text-shadow:none;}
66
+ .cp_cff_letter #fbuilder .select2-results__option--highlighted{background:#2c85d4;}
templates/02/style.css CHANGED
@@ -8,7 +8,8 @@ background: linear-gradient(to bottom, #5e513e 0%,#423524 100%);
8
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5e513e', endColorstr='#423524',GradientType=0 );
9
  }
10
 
11
- .cp_cff_professional #fbuilder{ color:#FFF;text-shadow:0px 1px 0px #000000;font-weight:normal; }
 
12
  .cp_cff_professional #fbuilder .cpefb_error.message{text-shadow:none;color:#000;}
13
  .cp_cff_professional #fbuilder .fields label{color:#FFF;}
14
  .cp_cff_professional #fbuilder .dfield label,
@@ -28,7 +29,10 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5e513e', end
28
  .cp_cff_professional #fbuilder textarea,
29
  .cp_cff_professional #fbuilder input[type="text"],
30
  .cp_cff_professional #fbuilder input[type="number"],
31
- .cp_cff_professional #fbuilder input[type="file"]{
 
 
 
32
  border-bottom:1px solid #776D5D;
33
  border-top:1px solid #252118;
34
  border-left:1px solid #312C20;
@@ -47,9 +51,29 @@ background: linear-gradient(to bottom, #322c20 0%,#3b3425 8%,#483f2e 100%);
47
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#322c20', endColorstr='#483f2e',GradientType=0 );
48
  padding-left:10px; padding-right:10px;
49
  }
50
-
 
51
  .cp_cff_professional #fbuilder .large{width: 100%;}
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  @media screen and (min-width: 740px),print{
54
  .cp_cff_professional #fbuilder .medium {width: 50%;}
55
  .cp_cff_professional #fbuilder .small {width: 25%;}
@@ -98,4 +122,23 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bfd255', end
98
 
99
  .cp_cff_professional #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjYmZkMjU1IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
100
 
101
- .cp_cff_professional #fbuilder .discount-container{margin-top:10px;font-weight:bold;color: #bfd255;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5e513e', endColorstr='#423524',GradientType=0 );
9
  }
10
 
11
+ .cp_cff_professional #fbuilder{color:#FFF;text-shadow:0px 1px 0px #000000;font-weight:normal;}
12
+ .cp_cff_professional .fform h2{color:#FFF;}
13
  .cp_cff_professional #fbuilder .cpefb_error.message{text-shadow:none;color:#000;}
14
  .cp_cff_professional #fbuilder .fields label{color:#FFF;}
15
  .cp_cff_professional #fbuilder .dfield label,
29
  .cp_cff_professional #fbuilder textarea,
30
  .cp_cff_professional #fbuilder input[type="text"],
31
  .cp_cff_professional #fbuilder input[type="number"],
32
+ .cp_cff_professional #fbuilder input[type="file"],
33
+ .cp_cff_professional #fbuilder .select2-selection--multiple,
34
+ .cp_cff_professional #fbuilder .select2-selection--single
35
+ {
36
  border-bottom:1px solid #776D5D;
37
  border-top:1px solid #252118;
38
  border-left:1px solid #312C20;
51
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#322c20', endColorstr='#483f2e',GradientType=0 );
52
  padding-left:10px; padding-right:10px;
53
  }
54
+ .cp_cff_professional #fbuilder select:not([multiple]) option,
55
+ .cp_cff_professional #fbuilder select:not([multiple]) optgroup{background:#554836;box-shadow:none !important;}
56
  .cp_cff_professional #fbuilder .large{width: 100%;}
57
 
58
+ .cp_cff_professional .select2-results__options::-webkit-scrollbar,
59
+ .cp_cff_professional textarea::-webkit-scrollbar,
60
+ .cp_cff_professional select[multiple]::-webkit-scrollbar {width: 20px;}
61
+ .cp_cff_professional .select2-results__options::-webkit-scrollbar-track,
62
+ .cp_cff_professional textarea::-webkit-scrollbar-track,
63
+ .cp_cff_professional select[multiple]::-webkit-scrollbar-track {
64
+ background-color: transparent;
65
+ border-top-right-radius: 10px;
66
+ border-bottom-right-radius: 10px;
67
+ }
68
+ .cp_cff_professional .select2-results__options::-webkit-scrollbar-thumb,
69
+ .cp_cff_professional textarea::-webkit-scrollbar-thumb,
70
+ .cp_cff_professional select[multiple]::-webkit-scrollbar-thumb {
71
+ border-radius: 10px;
72
+ border: 5px solid transparent;
73
+ background-clip: content-box;
74
+ background-color: #c9c2b7;
75
+ }
76
+
77
  @media screen and (min-width: 740px),print{
78
  .cp_cff_professional #fbuilder .medium {width: 50%;}
79
  .cp_cff_professional #fbuilder .small {width: 25%;}
122
 
123
  .cp_cff_professional #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjYmZkMjU1IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
124
 
125
+ .cp_cff_professional #fbuilder .discount-container{margin-top:10px;font-weight:bold;color: #bfd255;}
126
+
127
+ .cp_cff_professional #fbuilder .cff-switch{background:#3b3425;}
128
+ .cp_cff_professional #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#8eb92a;}
129
+
130
+ .cp_cff_professional #fbuilder .cff-file-clearer:hover,
131
+ .cp_cff_professional #fbuilder .select2-selection__choice__remove:hover{color:#8eb92a;}
132
+
133
+ .cp_cff_professional #fbuilder span.files-list img{border-color:#776D5D;}
134
+
135
+ .cp_cff_professional #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
136
+ .cp_cff_professional #fbuilder .select2-selection--multiple,
137
+ .cp_cff_professional #fbuilder .select2-selection--single{padding:0;}
138
+ .cp_cff_professional #fbuilder .select2-dropdown{border:1px solid #403828;background:#5e513e;}
139
+ .cp_cff_professional #fbuilder .select2-selection__choice{color:#352f22;text-shadow:none;}
140
+ .cp_cff_professional #fbuilder .select2-selection__choice__remove:hover,
141
+ .cp_cff_professional #fbuilder .select2-selection__choice__remove{color:#352f22;float:left;text-shadow:none;}
142
+ .cp_cff_professional #fbuilder .select2-selection--single .select2-selection__rendered{color:#c9c2b7;text-shadow:none;}
143
+ .cp_cff_professional #fbuilder .select2-container--default .select2-results__option[aria-selected=true],
144
+ .cp_cff_professional #fbuilder .select2-results__option--highlighted{background:#403828;}
templates/03/style.css CHANGED
@@ -49,4 +49,15 @@
49
  border: 1px solid #99C878;
50
  }
51
 
52
- .cp_cff_natural #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
 
 
 
 
 
 
 
49
  border: 1px solid #99C878;
50
  }
51
 
52
+ .cp_cff_natural #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
53
+
54
+ .cp_cff_natural #fbuilder .cff-switch{background:#8f8c1247;}
55
+ .cp_cff_natural #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#75bc46;}
56
+
57
+ .cp_cff_natural #fbuilder span.files-list img{border-color:rgb(150, 150, 150);}
58
+
59
+ .cp_cff_natural #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
60
+ .cp_cff_natural #fbuilder .select2-dropdown{border:1px solid rgb(150, 150, 150) !important;border-radius:0;}
61
+ .cp_cff_natural #fbuilder .select2-selection--multiple,
62
+ .cp_cff_natural #fbuilder .select2-selection--single{border-radius:0;}
63
+ .cp_cff_natural #fbuilder .select2-results__option--highlighted{background:#9ac77b;}
templates/04/style.css CHANGED
@@ -19,7 +19,15 @@
19
  .cp_cff_elegant #fbuilder input[type=number],
20
  .cp_cff_elegant #fbuilder input[type=file]{border:1px solid rgb(148, 132, 116);padding-bottom:5px;padding-top:5px;font-size:14px;background:#FFF;color:rgb(81, 62, 43);-webkit-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);-moz-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);padding-left:5px;padding-right:5px;}
21
  .cp_cff_elegant #fbuilder .uh{color:rgb(164, 147, 132);}
22
-
 
 
 
 
 
 
 
 
23
  .cp_cff_elegant #fbuilder legend{color:rgb(164, 147, 132);font-weight:normal;text-align:center;border:0;font-family:p22-underground, arial, sans-serif;}
24
  .cp_cff_elegant #fbuilder legend:before,
25
  .cp_cff_elegant #fbuilder legend:after{content:"\007E";}
@@ -44,4 +52,8 @@
44
 
45
  .cp_cff_elegant #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJyZ2IoMTE1LCAxODUsIDIxNCkiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjkgMi0yVjVjMC0xLjEtLjg5LTItMi0yem0tOSAxNGwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiIvPjwvc3ZnPg==');}
46
 
47
- .cp_cff_elegant #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
19
  .cp_cff_elegant #fbuilder input[type=number],
20
  .cp_cff_elegant #fbuilder input[type=file]{border:1px solid rgb(148, 132, 116);padding-bottom:5px;padding-top:5px;font-size:14px;background:#FFF;color:rgb(81, 62, 43);-webkit-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);-moz-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);padding-left:5px;padding-right:5px;}
21
  .cp_cff_elegant #fbuilder .uh{color:rgb(164, 147, 132);}
22
+ .cp_cff_elegant #fbuilder .select2-selection{border:1px solid rgb(148, 132, 116);font-size:14px;background:#FFF;color:rgb(81, 62, 43);-webkit-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);-moz-box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);box-shadow:inset 0px 2px 7px 0px rgba(0, 0, 0, 0.09);}
23
+ .cp_cff_elegant #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
24
+ .cp_cff_elegant #fbuilder .select2-dropdown{border:1px solid rgb(148, 132, 116) !important;border-radius:0;}
25
+ .cp_cff_elegant #fbuilder .select2-selection--multiple,
26
+ .cp_cff_elegant #fbuilder .select2-selection--single{border-radius:0;}
27
+ .cp_cff_elegant #fbuilder .select2-dropdown *,
28
+ .cp_cff_elegant #fbuilder .select2-selection--multiple *,
29
+ .cp_cff_elegant #fbuilder .select2-selection--single *{font-family:p22-underground, arial, sans-serif;}
30
+ .cp_cff_elegant #fbuilder .select2-results__option--highlighted{background:rgb(115, 185, 214);}
31
  .cp_cff_elegant #fbuilder legend{color:rgb(164, 147, 132);font-weight:normal;text-align:center;border:0;font-family:p22-underground, arial, sans-serif;}
32
  .cp_cff_elegant #fbuilder legend:before,
33
  .cp_cff_elegant #fbuilder legend:after{content:"\007E";}
52
 
53
  .cp_cff_elegant #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJyZ2IoMTE1LCAxODUsIDIxNCkiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjkgMi0yVjVjMC0xLjEtLjg5LTItMi0yem0tOSAxNGwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiIvPjwvc3ZnPg==');}
54
 
55
+ .cp_cff_elegant #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
56
+
57
+ .cp_cff_elegant #fbuilder .cff-switch{background:#b29d8673;}
58
+
59
+ .cp_cff_elegant #fbuilder span.files-list img{border-color:rgb(148, 132, 116);}
templates/05/style.css CHANGED
@@ -18,11 +18,23 @@
18
  .cp_cff_decorative #fbuilder input[type=password],
19
  .cp_cff_decorative #fbuilder input[type=text],
20
  .cp_cff_decorative #fbuilder input[type=number],
21
- .cp_cff_decorative #fbuilder input[type=file]{border-bottom: 1px solid rgb(223, 221, 193);border-left:0px;border-right:0px;border-top:0px;padding:5px 0;font-size:14px;background:#FCFAE6;color:rgb(0, 34, 65);}
22
  .cp_cff_decorative #fbuilder textarea{border: 1px solid rgb(223, 221, 193);}
23
  .cp_cff_decorative #fbuilder .fields:not(.section_breaks) label{font: bold 11px 'century gothic', Arial, Helvetica, sans-serif;text-transform: uppercase;color: rgb(229, 27, 36);}
24
  .cp_cff_decorative #fbuilder .fields .dfield label{color: rgb(0, 34, 65);}
25
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  @media print, screen and (min-width: 24em) {
27
  .cp_cff_decorative #fbuilder .left_aligned .fields:not(.cff-slider-field):not(.cff-radio-field):not(.cff-checkbox-field)>label:not(:empty),
28
  .cp_cff_decorative #fbuilder .right_aligned .fields:not(.cff-slider-field):not(.cff-radio-field):not(.cff-checkbox-field)>label:not(:empty){padding-top:5px;padding-bottom:5px;}
@@ -52,4 +64,6 @@
52
 
53
  .cp_cff_decorative #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOGMwMDAwIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
54
 
55
- .cp_cff_decorative #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
18
  .cp_cff_decorative #fbuilder input[type=password],
19
  .cp_cff_decorative #fbuilder input[type=text],
20
  .cp_cff_decorative #fbuilder input[type=number],
21
+ .cp_cff_decorative #fbuilder input[type=file]{border-bottom: 1px solid rgb(223, 221, 193);border-left:0px;border-right:0px;border-top:0px;padding:5px;font-size:14px;background:#FCFAE6;color:rgb(0, 34, 65);}
22
  .cp_cff_decorative #fbuilder textarea{border: 1px solid rgb(223, 221, 193);}
23
  .cp_cff_decorative #fbuilder .fields:not(.section_breaks) label{font: bold 11px 'century gothic', Arial, Helvetica, sans-serif;text-transform: uppercase;color: rgb(229, 27, 36);}
24
  .cp_cff_decorative #fbuilder .fields .dfield label{color: rgb(0, 34, 65);}
25
 
26
+ .cp_cff_decorative #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
27
+ .cp_cff_decorative #fbuilder .select2-dropdown{border:1px solid rgb(223, 221, 193) !important;background:#FCFAE6;}
28
+ .cp_cff_decorative #fbuilder .select2-selection--multiple,
29
+ .cp_cff_decorative #fbuilder .select2-selection--single,
30
+ .cp_cff_decorative #fbuilder .select2-dropdown *{font-family:'century gothic', Arial, Helvetica, sans-serif;}
31
+ .cp_cff_decorative #fbuilder .select2-selection__choice{background:#a3a189;border:0;padding:5px;color:#fff;}
32
+ .cp_cff_decorative #fbuilder .select2-selection__choice__remove{color:#fff;float:left;}
33
+ .cp_cff_decorative #fbuilder .select2-selection--multiple,
34
+ .cp_cff_decorative #fbuilder .select2-selection--single{border:1px solid rgb(223, 221, 193) !important;background:#FCFAE6;}
35
+ .cp_cff_decorative #fbuilder .select2-container--default .select2-results__option[aria-selected=true],
36
+ .cp_cff_decorative #fbuilder .select2-results__option--highlighted{background:#c1bfa4;}
37
+
38
  @media print, screen and (min-width: 24em) {
39
  .cp_cff_decorative #fbuilder .left_aligned .fields:not(.cff-slider-field):not(.cff-radio-field):not(.cff-checkbox-field)>label:not(:empty),
40
  .cp_cff_decorative #fbuilder .right_aligned .fields:not(.cff-slider-field):not(.cff-radio-field):not(.cff-checkbox-field)>label:not(:empty){padding-top:5px;padding-bottom:5px;}
64
 
65
  .cp_cff_decorative #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOGMwMDAwIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
66
 
67
+ .cp_cff_decorative #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
68
+
69
+ .cp_cff_decorative #fbuilder span.files-list img{border-color:rgb(223, 221, 193);}
templates/06/style.css CHANGED
@@ -37,6 +37,13 @@ padding:5px;
37
  .cp_cff_clean #fbuilder input[type=number].large,
38
  .cp_cff_clean #fbuilder input[type=file].large{width: 100%;}
39
 
 
 
 
 
 
 
 
40
  .cp_cff_clean #fbuilder .captcha{margin-bottom:10px;}
41
  .cp_cff_clean #fbuilder .fields:not(.section_breaks){padding: 10px;margin-bottom:10px;background:#EBECEC;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}
42
  .cp_cff_clean #fbuilder .fields.cff-container-field{padding:0px;margin-bottom:0px;}
@@ -76,4 +83,6 @@ padding:5px;
76
  .cp_cff_clean #fbuilder .pbNext{color:#fff;font-size:14px;background: #0093DA;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;margin:0 10px 0 0; text-shadow:none;border:0;padding: 5px 20px;}
77
  .cp_cff_clean #fbuilder .r{color:rgb(255,0,0);}
78
 
79
- .cp_cff_clean #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
37
  .cp_cff_clean #fbuilder input[type=number].large,
38
  .cp_cff_clean #fbuilder input[type=file].large{width: 100%;}
39
 
40
+ .cp_cff_clean #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
41
+ .cp_cff_clean #fbuilder .select2-dropdown{border:solid 1px #D7D9DA !important;}
42
+ .cp_cff_clean #fbuilder .select2-dropdown *{text-shadow:none;}
43
+ .cp_cff_clean #fbuilder .select2-selection--multiple,
44
+ .cp_cff_clean #fbuilder .select2-selection--single{border:solid 1px #D7D9DA;}
45
+ .cp_cff_clean #fbuilder .select2-results__option--highlighted{background:#0093DA;}
46
+
47
  .cp_cff_clean #fbuilder .captcha{margin-bottom:10px;}
48
  .cp_cff_clean #fbuilder .fields:not(.section_breaks){padding: 10px;margin-bottom:10px;background:#EBECEC;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}
49
  .cp_cff_clean #fbuilder .fields.cff-container-field{padding:0px;margin-bottom:0px;}
83
  .cp_cff_clean #fbuilder .pbNext{color:#fff;font-size:14px;background: #0093DA;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;margin:0 10px 0 0; text-shadow:none;border:0;padding: 5px 20px;}
84
  .cp_cff_clean #fbuilder .r{color:rgb(255,0,0);}
85
 
86
+ .cp_cff_clean #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
87
+
88
+ .cp_cff_clean #fbuilder span.files-list img{border-color:#D7D9DA;}
templates/07/style.css CHANGED
@@ -12,7 +12,7 @@
12
  background: #4D4D4D;
13
  text-transform: uppercase;
14
  font-family: 'Open Sans Condensed', sans-serif;
15
- color: #797979;
16
  font-size: 18px;
17
  font-weight: 100;
18
  padding: 20px;
@@ -20,7 +20,7 @@
20
  }
21
  .cp_cff_minimalist #fbuilder .fform h1,
22
  .cp_cff_minimalist #fbuilder .fform h2{
23
- color: #797979;
24
  font-size: 2em;
25
  font-family: 'Open Sans Condensed', sans-serif;
26
  }
@@ -49,6 +49,17 @@
49
  font: 16px Arial, Helvetica, sans-serif;
50
  height: 45px;
51
  }
 
 
 
 
 
 
 
 
 
 
 
52
  .cp_cff_minimalist #fbuilder textarea{height:auto;}
53
  .cp_cff_minimalist #fbuilder .pbSubmit,
54
  .cp_cff_minimalist #fbuilder .pbreak .pbPrevious,
@@ -112,4 +123,6 @@
112
  border: 1px solid #27A0A0;
113
  }
114
 
115
- .cp_cff_minimalist #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
12
  background: #4D4D4D;
13
  text-transform: uppercase;
14
  font-family: 'Open Sans Condensed', sans-serif;
15
+ color: #AAA;
16
  font-size: 18px;
17
  font-weight: 100;
18
  padding: 20px;
20
  }
21
  .cp_cff_minimalist #fbuilder .fform h1,
22
  .cp_cff_minimalist #fbuilder .fform h2{
23
+ color: #AAA;
24
  font-size: 2em;
25
  font-family: 'Open Sans Condensed', sans-serif;
26
  }
49
  font: 16px Arial, Helvetica, sans-serif;
50
  height: 45px;
51
  }
52
+ .cp_cff_minimalist #fbuilder .select2-selection{border:1px solid #ddd;}
53
+ .cp_cff_minimalist #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
54
+ .cp_cff_minimalist #fbuilder .select2-dropdown{border:1px solid #ddd !important;}
55
+ .cp_cff_minimalist #fbuilder .select2-dropdown *{font: 16px Arial, Helvetica, sans-serif;}
56
+ .cp_cff_minimalist #fbuilder .select2-selection__choice{background:#2CBBBB;border:0;padding:5px;color:#fff;}
57
+ .cp_cff_minimalist #fbuilder .select2-selection__choice__remove{color:#fff;float:left;}
58
+ .cp_cff_minimalist #fbuilder .select2-selection--multiple .select2-selection__rendered{font: 16px Arial, Helvetica, sans-serif;color:white;}
59
+ .cp_cff_minimalist #fbuilder .select2-selection--single{height:35px;}
60
+ .cp_cff_minimalist #fbuilder .select2-selection--single .select2-selection__rendered{line-height:35px !important;font: 16px Arial, Helvetica, sans-serif;}
61
+ .cp_cff_minimalist #fbuilder .select2-selection__arrow{min-height:35px;}
62
+ .cp_cff_minimalist #fbuilder .select2-results__option--highlighted{background:#2CBBBB;}
63
  .cp_cff_minimalist #fbuilder textarea{height:auto;}
64
  .cp_cff_minimalist #fbuilder .pbSubmit,
65
  .cp_cff_minimalist #fbuilder .pbreak .pbPrevious,
123
  border: 1px solid #27A0A0;
124
  }
125
 
126
+ .cp_cff_minimalist #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
127
+
128
+ .cp_cff_minimalist #fbuilder span.files-list img{border-color:#DDD;}
templates/08/style.css CHANGED
@@ -49,6 +49,15 @@
49
  color: #fff;
50
  outline: none;
51
  }
 
 
 
 
 
 
 
 
 
52
  .cp_cff_dark_notebook #fbuilder select{
53
  background-color: #495C70;
54
  border: 1px solid #83A4C5;
@@ -135,23 +144,23 @@ background: #394D61;
135
  display: none;
136
  }
137
 
138
- .cp_cff_dark_notebook #fbuilder .cff-checkbox-field label span,
139
- .cp_cff_dark_notebook #fbuilder .cff-radiobutton-field label span{
140
  display: inline-block;
141
  padding-left:20px;
142
  height: 16px;
143
  background: url('checkbox.png') no-repeat 0 0;
144
  }
145
 
146
- .cp_cff_dark_notebook #fbuilder .cff-radiobutton-field label span{
147
  background: url('radio.png') no-repeat 0 0;
148
  }
149
 
150
 
151
- .cp_cff_dark_notebook #fbuilder input[type="checkbox"]:checked+span{
152
  background: url('checkbox_checked.png') no-repeat 0 0;
153
  }
154
- .cp_cff_dark_notebook #fbuilder input[type="radio"]:checked+span{
155
  background: url('radio_checked.png') no-repeat 0 0;
156
  }
157
 
@@ -195,4 +204,13 @@ background: #394D61;
195
 
196
  .cp_cff_dark_notebook #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMzk0RDYxIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
197
 
198
- .cp_cff_dark_notebook #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
 
 
 
 
 
49
  color: #fff;
50
  outline: none;
51
  }
52
+ .cp_cff_dark_notebook #fbuilder .select2-selection{background:transparent;border:1px dashed #83A4C5;}
53
+ .cp_cff_dark_notebook #fbuilder .select2-selection__choice{background:#83A4C5;border:0;padding:5px;color:#394D61;}
54
+ .cp_cff_dark_notebook #fbuilder .select2-selection__choice__remove{color:#394D61;}
55
+ .cp_cff_dark_notebook #fbuilder .select2-selection__rendered{color:white;}
56
+ .cp_cff_dark_notebook #fbuilder .select2-selection__arrow b{border-color:white transparent transparent transparent;}
57
+ .cp_cff_dark_notebook #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
58
+ .cp_cff_dark_notebook #fbuilder .select2-dropdown{border:1px dashed #83A4C5;background:#495C70;}
59
+ .cp_cff_dark_notebook #fbuilder .select2-container--default .select2-results__option[aria-selected=true],
60
+ .cp_cff_dark_notebook #fbuilder .select2-results__option--highlighted{background:#576E86;}
61
  .cp_cff_dark_notebook #fbuilder select{
62
  background-color: #495C70;
63
  border: 1px solid #83A4C5;
144
  display: none;
145
  }
146
 
147
+ .cp_cff_dark_notebook #fbuilder .cff-checkbox-field:not(.cff-switch-container) label>span,
148
+ .cp_cff_dark_notebook #fbuilder .cff-radiobutton-field:not(.cff-switch-container) label span{
149
  display: inline-block;
150
  padding-left:20px;
151
  height: 16px;
152
  background: url('checkbox.png') no-repeat 0 0;
153
  }
154
 
155
+ .cp_cff_dark_notebook #fbuilder .cff-radiobutton-field:not(.cff-switch-container) label span{
156
  background: url('radio.png') no-repeat 0 0;
157
  }
158
 
159
 
160
+ .cp_cff_dark_notebook #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:checked+span{
161
  background: url('checkbox_checked.png') no-repeat 0 0;
162
  }
163
+ .cp_cff_dark_notebook #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:checked+span{
164
  background: url('radio_checked.png') no-repeat 0 0;
165
  }
166
 
204
 
205
  .cp_cff_dark_notebook #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMzk0RDYxIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
206
 
207
+ .cp_cff_dark_notebook #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
208
+
209
+ .cp_cff_dark_notebook #fbuilder .cff-switch{background:#394D61;}
210
+ .cp_cff_dark_notebook #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#FFF;}
211
+ .cp_cff_dark_notebook #fbuilder .cff-switch-container input:checked+span.cff-switch:before{background:#394D61;}
212
+
213
+ .cp_cff_dark_notebook #fbuilder .cff-file-clearer{color:#A8BACE;}
214
+ .cp_cff_dark_notebook #fbuilder .cff-file-clearer:hover{color:#fff;}
215
+
216
+ .cp_cff_dark_notebook #fbuilder span.files-list img{border-color:#83A4C5;}
templates/09/style.css CHANGED
@@ -96,6 +96,12 @@
96
  border-radius: 3px;
97
  background: #F3F3F3;
98
  }
 
 
 
 
 
 
99
  .cp_cff_box #fbuilder .fields.section_breaks label{
100
  float: none;
101
  background: transparent;
@@ -121,4 +127,6 @@
121
  .cp_cff_box #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMjQ3MUZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
122
 
123
  .cp_cff_box #fbuilder .discount-container{margin-top:10px;}
124
- .cp_cff_box .kbw-signature ~ div{margin: 15px 0 0 5px;}
 
 
96
  border-radius: 3px;
97
  background: #F3F3F3;
98
  }
99
+ .cp_cff_box #fbuilder .select2-selection{border:0;}
100
+ .cp_cff_box #fbuilder .select2-dropdown .select2-search__field{border:1px solid #ddd !important;width:100% !important;}
101
+ .cp_cff_box #fbuilder .select2-dropdown{border:1px solid #DDDDDD !important;}
102
+ .cp_cff_box #fbuilder .select2-selection__choice{background:#2471FF;border:0;padding:5px;color:#fff;}
103
+ .cp_cff_box #fbuilder .select2-selection__choice__remove{color:#fff;float:left;}
104
+ .cp_cff_box #fbuilder .select2-results__option--highlighted{background:#2471FF;}
105
  .cp_cff_box #fbuilder .fields.section_breaks label{
106
  float: none;
107
  background: transparent;
127
  .cp_cff_box #fbuilder .apply-coupon{background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMjQ3MUZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=');}
128
 
129
  .cp_cff_box #fbuilder .discount-container{margin-top:10px;}
130
+ .cp_cff_box .kbw-signature ~ div{margin: 15px 0 0 5px;}
131
+
132
+ .cp_cff_box #fbuilder span.files-list img{border-color:#DDD;}
templates/10/style.css CHANGED
@@ -29,6 +29,7 @@
29
  -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.03) inset;
30
  box-shadow: 0 1px 0 rgba(0,0,0,0.03) inset;
31
  padding:5px;
 
32
  }
33
  .cp_cff_pastel #fbuilder input[type="date"]:focus,
34
  .cp_cff_pastel #fbuilder input[type="file"]:focus,
@@ -61,6 +62,16 @@
61
  border: 1px solid #16a085;
62
  border-width: 1px 1px 3px;
63
  }
 
 
 
 
 
 
 
 
 
 
64
  .cp_cff_pastel #fbuilder .pbSubmit:hover,
65
  .cp_cff_pastel #fbuilder .pbreak .pbPrevious:hover,
66
  .cp_cff_pastel #fbuilder .pbreak .pbNext:hover,
@@ -102,4 +113,13 @@
102
  }
103
  .cp_cff_pastel #fbuilder .fields.section_breaks .section_break{border:0;}
104
 
105
- .cp_cff_pastel #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
 
 
 
 
 
29
  -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.03) inset;
30
  box-shadow: 0 1px 0 rgba(0,0,0,0.03) inset;
31
  padding:5px;
32
+ height:35px;
33
  }
34
  .cp_cff_pastel #fbuilder input[type="date"]:focus,
35
  .cp_cff_pastel #fbuilder input[type="file"]:focus,
62
  border: 1px solid #16a085;
63
  border-width: 1px 1px 3px;
64
  }
65
+ .cp_cff_pastel #fbuilder .select2-selection{background:#e8eeef;border:0;}
66
+ .cp_cff_pastel #fbuilder .select2-selection__rendered{color:#8a97a0;}
67
+ .cp_cff_pastel #fbuilder .select2-selection__choice{background:#1abc9c;border:0;padding:5px;color:#fff;}
68
+ .cp_cff_pastel #fbuilder .select2-selection__choice__remove{color:#fff;}
69
+ .cp_cff_pastel #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
70
+ .cp_cff_pastel #fbuilder .select2-dropdown{border:1px solid #e8eeef !important;}
71
+ .cp_cff_pastel #fbuilder .select2-selection--single{height:35px;}
72
+ .cp_cff_pastel #fbuilder .select2-selection--single .select2-selection__rendered{line-height:35px;}
73
+ .cp_cff_pastel #fbuilder .select2-selection__arrow{min-height:35px;}
74
+ .cp_cff_pastel #fbuilder .select2-results__option--highlighted{background:#1abc9c;}
75
  .cp_cff_pastel #fbuilder .pbSubmit:hover,
76
  .cp_cff_pastel #fbuilder .pbreak .pbPrevious:hover,
77
  .cp_cff_pastel #fbuilder .pbreak .pbNext:hover,
113
  }
114
  .cp_cff_pastel #fbuilder .fields.section_breaks .section_break{border:0;}
115
 
116
+ .cp_cff_pastel #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
117
+
118
+ .cp_cff_pastel #fbuilder .cff-switch{background:#d2d9dd;}
119
+ .cp_cff_pastel #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#1abc9c;}
120
+
121
+ .cp_cff_pastel #fbuilder .cff-file-clearer:hover{color:#1abc9c;}
122
+
123
+ #fbuilder span.files-list img{border-color:#d2d9dd;}
124
+
125
+
templates/11/style.css CHANGED
@@ -6,7 +6,6 @@
6
  -webkit-box-sizing: border-box;
7
  font-family: 'Lato', sans-serif;
8
  }
9
-
10
  .cp_cff_11 #fbuilder .fform{margin-bottom:20px;}
11
 
12
  .cp_cff_11 #fbuilder h1,
@@ -41,6 +40,13 @@
41
  height: auto;
42
  line-height: normal;
43
  }
 
 
 
 
 
 
 
44
 
45
  .cp_cff_11 #fbuilder .large {width: 100%;}
46
 
@@ -129,4 +135,6 @@
129
  @media print, screen and (min-width: 24em) {
130
  .cp_cff_11 #fbuilder .right_aligned .dfield.slider-container,
131
  .cp_cff_11 #fbuilder .left_aligned .dfield.slider-container{padding-top:10px;}
132
- }
 
 
6
  -webkit-box-sizing: border-box;
7
  font-family: 'Lato', sans-serif;
8
  }
 
9
  .cp_cff_11 #fbuilder .fform{margin-bottom:20px;}
10
 
11
  .cp_cff_11 #fbuilder h1,
40
  height: auto;
41
  line-height: normal;
42
  }
43
+ .cp_cff_11 #fbuilder .select2-selection{border:1px solid #dcdcdc;}
44
+ .cp_cff_11 #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
45
+ .cp_cff_11 #fbuilder .select2-dropdown{border:1px solid #dcdcdc !important;}
46
+ .cp_cff_11 #fbuilder .select2-selection--single{height:45px;}
47
+ .cp_cff_11 #fbuilder .select2-selection--single .select2-selection__rendered{line-height:45px;}
48
+ .cp_cff_11 #fbuilder .select2-selection__arrow{min-height:45px;}
49
+ .cp_cff_11 #fbuilder .select2-results__option--highlighted{background:#1485e5;}
50
 
51
  .cp_cff_11 #fbuilder .large {width: 100%;}
52
 
135
  @media print, screen and (min-width: 24em) {
136
  .cp_cff_11 #fbuilder .right_aligned .dfield.slider-container,
137
  .cp_cff_11 #fbuilder .left_aligned .dfield.slider-container{padding-top:10px;}
138
+ }
139
+
140
+ .cp_cff_11 #fbuilder span.files-list img{border-color:#dcdcdc;}
templates/12/style.css CHANGED
@@ -8,7 +8,6 @@
8
  -webkit-appearance: none;
9
  font-family: 'Lato', sans-serif;
10
  }
11
-
12
  .cp_cff_12 #fbuilder .fform{margin-bottom:20px;}
13
 
14
  .cp_cff_12 #fbuilder h1,
@@ -39,9 +38,14 @@
39
  margin: 1px 0;
40
  padding: 5px;
41
  }
42
- .cp_cff_12 #fbuilder select {
 
43
  background: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjZGNkY2RjIj48cGF0aCBkPSJNNy40MSA4LjU5TDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6Ii8+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgwVjB6Ii8+PC9zdmc+") no-repeat center right #FFF;
44
  }
 
 
 
 
45
  .cp_cff_12 #fbuilder .large {width: 100%;}
46
 
47
  @media screen and (min-width: 740px),print{
@@ -121,4 +125,6 @@
121
  .cp_cff_12 #fbuilder .fields.section_breaks>label{font-size:1.3em;font-weight:900;text-transform:uppercase;border-bottom:1px solid #dcdcdc}
122
  .cp_cff_12 #fbuilder .fields.section_breaks .section_break{border:0;}
123
 
124
- .cp_cff_12 #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
8
  -webkit-appearance: none;
9
  font-family: 'Lato', sans-serif;
10
  }
 
11
  .cp_cff_12 #fbuilder .fform{margin-bottom:20px;}
12
 
13
  .cp_cff_12 #fbuilder h1,
38
  margin: 1px 0;
39
  padding: 5px;
40
  }
41
+ .cp_cff_12 #fbuilder select{background: #FFF;}
42
+ .cp_cff_12 #fbuilder select:not([multiple]) {
43
  background: url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjZGNkY2RjIj48cGF0aCBkPSJNNy40MSA4LjU5TDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6Ii8+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgwVjB6Ii8+PC9zdmc+") no-repeat center right #FFF;
44
  }
45
+ .cp_cff_12 #fbuilder .select2-dropdown,
46
+ .cp_cff_12 #fbuilder .select2-selection{border:1px solid #dcdcdc;}
47
+ .cp_cff_12 #fbuilder .select2-results__option--highlighted{background:#1d89ff;}
48
+ .cp_cff_12 #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
49
  .cp_cff_12 #fbuilder .large {width: 100%;}
50
 
51
  @media screen and (min-width: 740px),print{
125
  .cp_cff_12 #fbuilder .fields.section_breaks>label{font-size:1.3em;font-weight:900;text-transform:uppercase;border-bottom:1px solid #dcdcdc}
126
  .cp_cff_12 #fbuilder .fields.section_breaks .section_break{border:0;}
127
 
128
+ .cp_cff_12 #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
129
+
130
+ .cp_cff_12 #fbuilder span.files-list img{border-color:#dcdcdc;}
templates/13/style.css CHANGED
@@ -4,7 +4,6 @@
4
  -webkit-box-sizing: border-box;
5
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
6
  }
7
-
8
  .cp_cff_13 #fbuilder .fform{margin-bottom:20px;}
9
  .cp_cff_13 #fbuilder .fform span{font-size: 16px;color: #72777c;}
10
 
@@ -81,8 +80,8 @@
81
  .cp_cff_13 #fbuilder input[type="time"]:focus,
82
  .cp_cff_13 #fbuilder input[type="url"]:focus,
83
  .cp_cff_13 #fbuilder input[type="week"]:focus,
84
- .cp_cff_13 #fbuilder input[type="checkbox"]:focus,
85
- .cp_cff_13 #fbuilder input[type="radio"]:focus,
86
  .cp_cff_13 #fbuilder select:focus,
87
  .cp_cff_13 #fbuilder textarea:focus {
88
  border-color: #007cba;
@@ -95,19 +94,26 @@
95
  min-height: 28px;
96
  vertical-align: middle;
97
  -webkit-appearance: none;
 
 
 
 
 
98
  background: #fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;
99
  background-size: 16px 16px;
100
- cursor: pointer;
101
  }
102
 
103
  .cp_cff_13 #fbuilder input[type="email"],
104
  .cp_cff_13 #fbuilder input[type="url"] {
105
  direction: ltr;
106
  }
 
 
 
107
 
108
  @media only screen{
109
- .cp_cff_13 #fbuilder input[type="checkbox"],
110
- .cp_cff_13 #fbuilder input[type="radio"] {
111
  border: 1px solid #7e8993;
112
  border-radius: 4px;
113
  background: #fff;
@@ -142,8 +148,8 @@
142
  line-height: 0.71428571;
143
  }
144
 
145
- .cp_cff_13 #fbuilder input[type="checkbox"]:checked::before,
146
- .cp_cff_13 #fbuilder input[type="radio"]:checked::before {
147
  float: left;
148
  display: inline-block;
149
  vertical-align: middle;
@@ -153,14 +159,14 @@
153
  -moz-osx-font-smoothing: grayscale;
154
  }
155
 
156
- .cp_cff_13 #fbuilder input[type="checkbox"]:checked::before {
157
  content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%231e8cbe%27%2F%3E%3C%2Fsvg%3E");
158
  margin: -3px 0 0 -4px;
159
  height: 21px;
160
  width: 21px;
161
  }
162
 
163
- .cp_cff_13 #fbuilder input[type="radio"]:checked::before {
164
  content: "";
165
  border-radius: 50%;
166
  width: 8px;
@@ -192,10 +198,10 @@
192
  cursor: default;
193
  }
194
 
195
- .cp_cff_13 #fbuilder input[type="checkbox"]:disabled,
196
- .cp_cff_13 #fbuilder input[type="radio"]:disabled,
197
- .cp_cff_13 #fbuilder input[type="checkbox"]:disabled:checked:before,
198
- .cp_cff_13 #fbuilder input[type="radio"]:disabled:checked:before{
199
  opacity: 0.7;
200
  }
201
 
@@ -219,10 +225,10 @@
219
  .cp_cff_13 #fbuilder input[type=reset]{
220
  display: inline-block;
221
  text-decoration: none;
222
- font-size: 13px;
223
- line-height: 2;
224
  min-height: 28px;
225
- padding: 0 10px;
226
  cursor: pointer;
227
  border-width: 1px;
228
  border-style: solid;
@@ -287,4 +293,9 @@
287
 
288
  .cp_cff_13 #fbuilder .fields>label{font-weight: 500;}
289
 
290
- .cp_cff_13 #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
 
 
 
 
 
4
  -webkit-box-sizing: border-box;
5
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
6
  }
 
7
  .cp_cff_13 #fbuilder .fform{margin-bottom:20px;}
8
  .cp_cff_13 #fbuilder .fform span{font-size: 16px;color: #72777c;}
9
 
80
  .cp_cff_13 #fbuilder input[type="time"]:focus,
81
  .cp_cff_13 #fbuilder input[type="url"]:focus,
82
  .cp_cff_13 #fbuilder input[type="week"]:focus,
83
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:focus,
84
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:focus,
85
  .cp_cff_13 #fbuilder select:focus,
86
  .cp_cff_13 #fbuilder textarea:focus {
87
  border-color: #007cba;
94
  min-height: 28px;
95
  vertical-align: middle;
96
  -webkit-appearance: none;
97
+ background: #fff;
98
+ cursor: pointer;
99
+ }
100
+
101
+ .cp_cff_13 #fbuilder select:not([multiple]) {
102
  background: #fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;
103
  background-size: 16px 16px;
 
104
  }
105
 
106
  .cp_cff_13 #fbuilder input[type="email"],
107
  .cp_cff_13 #fbuilder input[type="url"] {
108
  direction: ltr;
109
  }
110
+ .cp_cff_13 #fbuilder .select2-selection{border:1px solid #7e8993;}
111
+ .cp_cff_13 #fbuilder .select2-results__option--highlighted{background:#007cba;}
112
+ .cp_cff_13 #fbuilder .select2-dropdown .select2-search__field{width:100% !important;}
113
 
114
  @media only screen{
115
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"],
116
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"] {
117
  border: 1px solid #7e8993;
118
  border-radius: 4px;
119
  background: #fff;
148
  line-height: 0.71428571;
149
  }
150
 
151
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:checked::before,
152
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:checked::before {
153
  float: left;
154
  display: inline-block;
155
  vertical-align: middle;
159
  -moz-osx-font-smoothing: grayscale;
160
  }
161
 
162
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:checked::before {
163
  content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%231e8cbe%27%2F%3E%3C%2Fsvg%3E");
164
  margin: -3px 0 0 -4px;
165
  height: 21px;
166
  width: 21px;
167
  }
168
 
169
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:checked::before {
170
  content: "";
171
  border-radius: 50%;
172
  width: 8px;
198
  cursor: default;
199
  }
200
 
201
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:disabled,
202
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:disabled,
203
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:disabled:checked:before,
204
+ .cp_cff_13 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:disabled:checked:before{
205
  opacity: 0.7;
206
  }
207
 
225
  .cp_cff_13 #fbuilder input[type=reset]{
226
  display: inline-block;
227
  text-decoration: none;
228
+ font-size: 14px;
229
+ line-height: 2;
230
  min-height: 28px;
231
+ padding: 5px 30px;
232
  cursor: pointer;
233
  border-width: 1px;
234
  border-style: solid;
293
 
294
  .cp_cff_13 #fbuilder .fields>label{font-weight: 500;}
295
 
296
+ .cp_cff_13 #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
297
+
298
+ .cp_cff_13 #fbuilder .cff-date-field .dfield input,
299
+ .cp_cff_13 #fbuilder .cff-date-field .dfield select{vertical-align:top;}
300
+
301
+ .cp_cff_13 #fbuilder span.files-list img{border-color:#7e8993;}
templates/14/config.ini ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ prefix="cp_cff_14"
2
+ file="style.css"
3
+ title="Template 14"
4
+ thumbnail="thumbnail.jpg"
5
+ description="Pastel green colors (class: .cp_cff_14)"
templates/14/flech-select.svg ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="14.91" height="10.97" viewBox="0 0 18.91 14.97">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #3cce88;
6
+ fill-rule: evenodd;
7
+ }
8
+ </style>
9
+ </defs>
10
+ <path id="fleche-formulaire.svg" class="cls-1" d="M3156.15,1130.96h16.62a1.115,1.115,0,0,1,.98.58,1.04,1.04,0,0,1-.05,1.18l-8.29,12.71a1.032,1.032,0,0,1-.96.52,1.122,1.122,0,0,1-.97-0.52l-8.26-12.71a1.219,1.219,0,0,1-.22-0.61,0.864,0.864,0,0,1,.17-0.58A1.114,1.114,0,0,1,3156.15,1130.96Z" transform="translate(-3155 -1130.97)"/>
11
+ </svg>
templates/14/style.css ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
2
+
3
+ .cp_cff_14{background:#f4f4f4;padding:20px;}
4
+ .cp_cff_14 #fbuilder *{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;font-family:Montserrat, -apple-system, sans-serif;font-size:16px;}
5
+ .cp_cff_14 #fbuilder .fform{position:relative;margin-bottom:20px;text-align:center;}
6
+ .cp_cff_14 #fbuilder .fform span{font-size:16px;color:#333;}
7
+ .cp_cff_14 #fbuilder .fform h2{font-size:30px;font-weight:700;line-height:60px;color:#333;}
8
+ .cp_cff_14 #fbuilder .fform h2::before{content:"";position:absolute;left:0;right:0;margin:auto;top:60px;background:#3cce88;width:28px;height:7px;-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;}
9
+ .cp_cff_14 #fbuilder h1,
10
+ .cp_cff_14 #fbuilder h2,
11
+ .cp_cff_14 #fbuilder h3{ font-size:23px; font-weight:600; line-height:1.3; margin:0;color:#333;}
12
+ .cp_cff_14 #fbuilder input[type="text"],
13
+ .cp_cff_14 #fbuilder input[type="password"],
14
+ .cp_cff_14 #fbuilder input[type="date"],
15
+ .cp_cff_14 #fbuilder input[type="datetime"],
16
+ .cp_cff_14 #fbuilder input[type="email"],
17
+ .cp_cff_14 #fbuilder input[type="number"],
18
+ .cp_cff_14 #fbuilder input[type="search"],
19
+ .cp_cff_14 #fbuilder input[type="tel"],
20
+ .cp_cff_14 #fbuilder input[type="time"],
21
+ .cp_cff_14 #fbuilder input[type="url"],
22
+ .cp_cff_14 #fbuilder input[type="week"],
23
+ .cp_cff_14 #fbuilder input[type="color"],
24
+ .cp_cff_14 #fbuilder select,
25
+ .cp_cff_14 #fbuilder textarea,
26
+ .cp_cff_14 #fbuilder .select2-selection{font-family:inherit;font-size:18px;line-height:24px;color:#333;background-color:#FFFFFF;border:0;padding:4px 6px;margin:0 0 15px;width:100%;min-height:48px;text-indent:10px;font-weight:400;border-radius:2px;outline:0;color:#333;box-shadow:0 0 0 transparent;}
27
+ .cp_cff_14 #fbuilder select.hours-component,
28
+ .cp_cff_14 #fbuilder select.minutes-component,
29
+ .cp_cff_14 #fbuilder select.ampm-component{
30
+ width:auto;
31
+ min-width:70px;
32
+ }
33
+ .cp_cff_14 #fbuilder textarea{overflow:auto;line-height:1.42857143;resize:vertical;}
34
+ .cp_cff_14 #fbuilder input[type="text"]:focus,
35
+ .cp_cff_14 #fbuilder input[type="password"]:focus,
36
+ .cp_cff_14 #fbuilder input[type="color"]:focus,
37
+ .cp_cff_14 #fbuilder input[type="date"]:focus,
38
+ .cp_cff_14 #fbuilder input[type="datetime"]:focus,
39
+ .cp_cff_14 #fbuilder input[type="email"]:focus,
40
+ .cp_cff_14 #fbuilder input[type="number"]:focus,
41
+ .cp_cff_14 #fbuilder input[type="search"]:focus,
42
+ .cp_cff_14 #fbuilder input[type="tel"]:focus,
43
+ .cp_cff_14 #fbuilder input[type="time"]:focus,
44
+ .cp_cff_14 #fbuilder input[type="url"]:focus,
45
+ .cp_cff_14 #fbuilder input[type="week"]:focus,
46
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:focus,
47
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:focus,
48
+ .cp_cff_14 #fbuilder select:focus,
49
+ .cp_cff_14 #fbuilder textarea:focus{outline:0;}
50
+ .cp_cff_14 #fbuilder select{-webkit-appearance:none;-moz-appearance:none;background:#fff;cursor:pointer;}
51
+ .cp_cff_14 #fbuilder select:not([multiple]){background:url(flech-select.svg) 97% center no-repeat #fff;}
52
+ .cp_cff_14 #fbuilder input[type="email"],
53
+ .cp_cff_14 #fbuilder input[type="url"]{direction:ltr;}
54
+ .cp_cff_14 #fbuilder .cff-calculated-field input[readonly]{color:#3cce88 !important; font-weight:bold;border:1px solid #3cce88;}
55
+ .cp_cff_14 #fbuilder .cff-summary-field *,
56
+ .cp_cff_14 #fbuilder .cff-slider-field *{font-size:18px;}
57
+ .cp_cff_14 #fbuilder input[type="reset"]:hover,
58
+ .cp_cff_14 #fbuilder input[type="reset"]:active{color:#00a0d2;}
59
+ .cp_cff_14 #fbuilder .fields input[type="checkbox"],
60
+ .cp_cff_14 #fbuilder .fields input[type="radio"]{display:none;}
61
+ .cp_cff_14 #fbuilder .cff-radiobutton-field .one_column,
62
+ .cp_cff_14 #fbuilder .cff-checkbox-field .one_column{margin-bottom:10px;}
63
+ .cp_cff_14 #fbuilder .cff-radiobutton-field:not(.cff-switch-container) .dfield input+span::before,
64
+ .cp_cff_14 #fbuilder .cff-checkbox-field:not(.cff-switch-container) .dfield input+span::before{content:"✓";font-size:16px;line-height:24px;font-weight:bold;text-align:center;width:24px;height:24px;display:inline-block;background:white;color:white;margin-right:10px;}
65
+ .cp_cff_14 #fbuilder .cff-radiobutton-field:not(.cff-switch-container) .dfield input+span::before{border-radius:20px;}
66
+ .cp_cff_14 #fbuilder .cff-radiobutton-field:not(.cff-switch-container) .dfield input:checked+span::before,
67
+ .cp_cff_14 #fbuilder .cff-checkbox-field:not(.cff-switch-container) .dfield input:checked+span::before{color:#3cce88;}
68
+ .cp_cff_14 #fbuilder input[readonly],
69
+ .cp_cff_14 #fbuilder textarea[readonly]{background-color:#eee;}
70
+ .cp_cff_14 #fbuilder input:disabled,
71
+ .cp_cff_14 #fbuilder select:disabled,
72
+ .cp_cff_14 #fbuilder textarea:disabled{background:rgba(255, 255, 255, 0.5);color:rgba(51, 51, 51, 0.5);}
73
+ .cp_cff_14 #fbuilder input[type="file"]:disabled,
74
+ .cp_cff_14 #fbuilder input[type="range"]:disabled{background:none;box-shadow:none;cursor:default;}
75
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:disabled,
76
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:disabled,
77
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="checkbox"]:disabled:checked:before,
78
+ .cp_cff_14 #fbuilder .fields:not(.cff-switch-container) input[type="radio"]:disabled:checked:before{opacity:0.7;}
79
+ .cp_cff_14 #fbuilder .cff-switch-container input:checked+span.cff-switch{background:#3cce88;}
80
+ .cp_cff_14 #fbuilder .large{width:100%;}
81
+ @media screen and (min-width:740px),print{
82
+ .cp_cff_14 #fbuilder .medium{width:50%;}
83
+ .cp_cff_14 #fbuilder .small{width:25%;}
84
+ }
85
+ @media screen and (max-width:640px){
86
+ .cp_cff_14 #fbuilder .medium,
87
+ .cp_cff_14 #fbuilder .small{width:100%;}
88
+ }
89
+ .cp_cff_14 #fbuilder input[type=file]::file-selector-button,
90
+ .cp_cff_14 #fbuilder .pbSubmit,
91
+ .cp_cff_14 #fbuilder .pbreak .pbPrevious,
92
+ .cp_cff_14 #fbuilder .pbreak .pbNext,
93
+ .cp_cff_14 #fbuilder button,
94
+ .cp_cff_14 #fbuilder input[type=submit],
95
+ .cp_cff_14 #fbuilder input[type=button],
96
+ .cp_cff_14 #fbuilder input[type=reset]{display:inline-block;text-decoration:none;font-size:18px;line-height:2;min-height:28px;padding:5px 30px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:0;white-space:nowrap;box-sizing:border-box;vertical-align:baseline;background:#3cce88;border-color:#3cce88;color:#fff;text-shadow:none;}
97
+ .cp_cff_14 #fbuilder input[type=file]::file-selector-button{font-size:16px;padding:5px 15px;}
98
+ .cp_cff_14 #fbuilder .files-list{color:#3cce88;}
99
+ .cp_cff_14 #fbuilder .files-list img{border:1px solid #3cce88;}
100
+ .cp_cff_14 #fbuilder button::-moz-focus-inner,
101
+ .cp_cff_14 #fbuilder input[type="reset"]::-moz-focus-inner,
102
+ .cp_cff_14 #fbuilder input[type="button"]::-moz-focus-inner,
103
+ .cp_cff_14 #fbuilder input[type="submit"]::-moz-focus-inner{border-width:0;border-style:none;padding:0;}
104
+ .cp_cff_14 #fbuilder input[type=file]:hover::file-selector-button,
105
+ .cp_cff_14 #fbuilder .pbSubmit:hover,
106
+ .cp_cff_14 #fbuilder .pbreak .pbPrevious:hover,
107
+ .cp_cff_14 #fbuilder .pbreak .pbNext:hover,
108
+ .cp_cff_14 #fbuilder input[type=submit]:hover,
109
+ .cp_cff_14 #fbuilder input[type=button]:hover,
110
+ .cp_cff_14 #fbuilder input[type=reset]:hover{background:#33ad73;border-color:#33ad73;color:#fff;}
111
+ .cp_cff_14 #fbuilder .pbEnd .pbNext,
112
+ .cp_cff_14 #fbuilder .pb0 .pbPrevious{display:none;}
113
+ .cp_cff_14 #fbuilder .r{color:#FF0000;}
114
+ .cp_cff_14 #fbuilder .ui-slider-handle.ui-state-focus,
115
+ .cp_cff_14 #fbuilder .ui-slider-handle{background:#33ad73;border:2px solid #fff;border-radius:15px;height:25px;width:25px;outline:0;margin-top:-2px;}
116
+ .cp_cff_14 #fbuilder .dfield.slider-container{border-radius:10px;}
117
+ .cp_cff_14 #fbuilder .slider{background:#ececec; border-radius:10px;border:0;height:10px;margin-top:2px;}
118
+ .cp_cff_14 #fbuilder .ui-slider-range{background:#3cce88;}
119
+ .cp_cff_14 #fbuilder span.uh{font-size:11px;font-style:italic;}
120
+ .cp_cff_14 #fbuilder fieldset{border:1px solid #3cce88;border-radius:3px;}
121
+ .cp_cff_14 #fbuilder fieldset legend{border:1px solid #3cce88;border-radius:3px;color:#3cce88 !important;}
122
+ .cp_cff_14 #fbuilder fieldset legend,
123
+ .cp_cff_14 #fbuilder .fields.section_breaks>label{color:#3cce88; font-size:20px; margin:1em 0;}
124
+ .cp_cff_14 #fbuilder .fields.section_breaks .section_break{border:0;}
125
+ .cp_cff_14 #fbuilder .fields>label{font-weight:500;}
126
+ .cp_cff_14 #fbuilder .discount-container{margin-top:10px;font-weight:bold;}
127
+ .cp_cff_14 #fbuilder .cff-file-field input{border:1px solid #3cce88; padding:10px;color:#3cce88;}
128
+ .cp_cff_14 #fbuilder div.cpefb_error{margin-top:5px;}
129
+
130
+ .cp_cff_14 #fbuilder .select2-dropdown .select2-search__field{border:1px solid #ccc !important;width:100% !important;}
131
+ .cp_cff_14 #fbuilder .select2-dropdown{border:1px solid #ccc !important;}
132
+ .cp_cff_14 #fbuilder .select2-selection__choice{background:#3cce88;border:0;padding:5px;color:#fff;}
133
+ .cp_cff_14 #fbuilder .select2-selection__choice__remove{color:#fff;float:left;}
134
+ .cp_cff_14 #fbuilder .select2-selection--multiple .select2-selection__rendered{color:white;}
135
+ .cp_cff_14 #fbuilder .select2-selection--single .select2-selection__rendered{line-height:48px;}
136
+ .cp_cff_14 #fbuilder .select2-selection__arrow{min-height:48px;}
137
+ .cp_cff_14 #fbuilder .select2-selection__arrow b{border-color:#3cce88 transparent transparent transparent;}
138
+ .cp_cff_14 #fbuilder .select2-results__option--highlighted{background:#3cce88;}
templates/14/thumbnail.jpg ADDED
Binary file
vendors/chosen/chosen-sprite.png ADDED
Binary file
vendors/chosen/chosen-sprite@2x.png ADDED
Binary file
vendors/chosen/chosen.jquery.min.js ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /* Chosen v1.8.7 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+
3
+ (function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},o={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,n,r,o;for(r=new i,s=0,n=(o=t.childNodes).length;s<n;s++)e=o[s],r.add_node(e);return r.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){return this.click_test_action=function(t){return function(e){return t.test_active_click(e)}}(this),this.activate_action=function(t){return function(e){return t.activate_field(e)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||Infinity,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n<r&&(s=o[n],i="",""!==(i=s.group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(t){var e,s,i,n,r,o,h,l,c,_,a,u,d,p,f;for(this.no_results_clear(),_=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(r=l[i]).search_match=!1,a=null,u=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(a=this.results_data[r.group_array_index]).active_options&&a.search_match&&(_+=1),a.active_options+=1),f=r.group?r.label:r.text,r.group&&!this.group_search||(u=this.search_string_match(f,c),r.search_match=null!=u,r.search_match&&!r.group&&(_+=1),r.search_match?(h.length&&(d=u.index,o=f.slice(0,d),s=f.slice(d,d+h.length),p=f.slice(d+h.length),r.highlighted_html=this.escape_html(o)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(p)),null!=a&&(a.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),_<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return r(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),r=this.search_results.scrollTop(),n=i+r,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<r)return this.search_results.scrollTop(s)}},n.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},n.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},n.prototype.update_results_content=function(t){return this.search_results.html(t)},n.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},n.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},n.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):((i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("<div/>").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s<i;s++)r[n=o[s]]=this.search_field.css(n);return(e=t("<div />").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
vendors/chosen/chosen.min.css ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Chosen, a Select Box Enhancer for jQuery and Prototype
3
+ by Patrick Filler for Harvest, http://getharvest.com
4
+
5
+ Version 1.8.7
6
+ Full source at https://github.com/harvesthq/chosen
7
+ Copyright (c) 2011-2018 Harvest http://getharvest.com
8
+
9
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
10
+ This file is generated by `grunt build`, do not edit it by hand.
11
+ */.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.15);box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);-webkit-clip-path:inset(100% 100%);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;-webkit-clip-path:none;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),to(#f4f4f4));background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;-webkit-box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);-webkit-clip-path:inset(100% 100%);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#eee),color-stop(15%,#fff));background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;-webkit-box-shadow:none;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#eee),color-stop(80%,#fff));background-image:linear-gradient(#eee 20%,#fff 80%);-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
{js → vendors}/jQuery.stringify.js RENAMED
File without changes
vendors/jquery-ui/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_glass_100_e4f1fb_1x400.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_glass_50_3baae3_1x400.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_glass_80_d7ebf9_1x400.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_highlight-hard_70_000000_1x100.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_highlight-soft_100_deedf7_1x100.png ADDED
Binary file
vendors/jquery-ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png ADDED
Binary file
vendors/jquery-ui/images/ui-icons_2694e8_256x240.png ADDED
Binary file
vendors/jquery-ui/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
vendors/jquery-ui/images/ui-icons_3d80b3_256x240.png ADDED
Binary file
vendors/jquery-ui/images/ui-icons_72a7cf_256x240.png ADDED
Binary file
vendors/jquery-ui/images/ui-icons_ffffff_256x240.png ADDED
Binary file
vendors/jquery-ui/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.12.1 - 2016-09-14
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=highlight_hard&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=glass&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=glass&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=flat&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=highlight_hard&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
5
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Lucida Grande,Lucida Sans,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Lucida Grande,Lucida Sans,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #aed0ea}.ui-widget-content{border:1px solid #ddd;background:#f2f5f7 url("images/ui-bg_highlight-hard_100_f2f5f7_1x100.png") 50% top repeat-x;color:#362b36}.ui-widget-content a{color:#362b36}.ui-widget-header{border:1px solid #aed0ea;background:#deedf7 url("images/ui-bg_highlight-soft_100_deedf7_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #aed0ea;background:#d7ebf9 url("images/ui-bg_glass_80_d7ebf9_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#2779aa}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#2779aa;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #74b2e2;background:#e4f1fb url("images/ui-bg_glass_100_e4f1fb_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#0070a3}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#0070a3;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #2694e8;background:#3baae3 url("images/ui-bg_glass_50_3baae3_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#2694e8;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #f9dd34;background:#ffef8f url("images/ui-bg_highlight-soft_25_ffef8f_1x100.png") 50% top repeat-x;color:#363636}.ui-state-checked{border:1px solid #f9dd34;background:#ffef8f}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#cd0a0a;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_72a7cf_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_72a7cf_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_2694e8_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_3d80b3_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:6px}.ui-widget-overlay{background:#eee url("images/ui-bg_diagonals-thick_90_eeeeee_40x40.png") 50% 50% repeat;opacity:.8;filter:Alpha(Opacity=80)}.ui-widget-shadow{-webkit-box-shadow:-7px -7px 7px #000;box-shadow:-7px -7px 7px #000}
{js → vendors}/jquery.caret.js RENAMED
File without changes
{js → vendors}/jquery.validate.js RENAMED
File without changes
vendors/select2/select2.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
vendors/select2/select2.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
2
+ !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(r=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(i=(i=f[h.slice(0,d).join("/")])&&i[r]){o=i,a=u;break}if(o)break;!l&&g&&g[r]&&(l=g[r],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(w(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!w(m,e)&&!w(_,e))throw new Error("No "+e);return m[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},i=Object.prototype.hasOwnProperty,a=[].slice,b=/\.js$/,f=function(e,t){var n,r=c(e),i=r[0],o=t[1];return e=r[1],i&&(n=D(i=l(i,o))),i?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return l(e,t)}}(o)):l(e,o):(i=(r=c(e=l(e,o)))[0],e=r[1],i&&(n=D(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,r){var i,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(r=r||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)i=d[l]=g.module(e);else if(w(m,o)||w(v,o)||w(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(r,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(i&&i.exports!==h&&i.exports!==m[e]?m[e]=i.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,r,i){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=r,r=i),r?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(r=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(m,e)||w(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=r),e.define("almond",function(){}),e.define("jquery",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var i={};function u(e){var t=e.prototype,n=[];for(var r in t){"function"==typeof t[r]&&"constructor"!==r&&n.push(r)}return n}i.Extend=function(e,t){var n={}.hasOwnProperty;function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i.Decorate=function(r,i){var e=u(i),t=u(r);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=r.prototype.constructor;0<t&&(e.call(arguments,r.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=r.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=r.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].apply(this,t)},i.Observable=e,i.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},i.bind=function(e,t){return function(){e.apply(t,arguments)}},i._convertData=function(e){for(var t in e){var n=t.split("-"),r=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in r||(r[o]={}),i==n.length-1&&(r[o]=e[t]),r=r[o]}delete e[t]}}return e},i.hasScroll=function(e,t){var n=o(t),r=t.style.overflowX,i=t.style.overflowY;return(r!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===r||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},i.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute("data-select2-id")},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var r=e.results[n],i=this.option(r);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},r.prototype.position=function(e,t){t.find(".select2-results").append(e)},r.prototype.sort=function(e){return this.options.get("sorter")(e)},r.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},r.prototype.setClasses=function(){var t=this;this.data.current(function(e){var r=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,r)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},r.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},r.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},r.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"option","aria-selected":"false"},r=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var i in(null!=e.element&&r.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[i];t.setAttribute(i,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):i<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,r=0<e.deltaY&&t-e.deltaY<=0,i=e.deltaY<0&&n<=l.$results.height();r?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):i&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},r.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},r.prototype.destroy=function(){this.$results.remove()},r.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,r=e.offset().top,i=this.$results.scrollTop()+(r-n),o=r-n;i-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr("title",i):n.removeAttr("title")}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.selectionContainer(),o=this.display(r,i);i.append(o);var s=r.title||r.text;s&&i.attr("title",s),l.StoreData(i[0],"data",r),t.push(i)}var a=this.$selection.find(".select2-selection__rendered");l.appendMany(a,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var r=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(r)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,r,a){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){r._handleClear(e)}),t.on("keypress",function(e){r._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var r=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:r};if(this.trigger("clear",o),o.prevented)this.$element.val(i);else{for(var s=0;s<r.length;s++)if(o={data:r[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(i);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=r.DELETE&&t.which!=r.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),r=i('<span class="select2-selection__clear" title="'+n()+'">&times;</span>');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),t.on("open",function(){r.$search.attr("aria-controls",i),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=a.GetData(t[0],"data");r.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){r.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(s&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&r.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").width():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var r=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,i)){t=t||{};var n=s.Event("select2:"+e,{params:t});r.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function r(e){this.dict=e||{}}return r.prototype.all=function(){return this.dict},r.prototype.get=function(e){return this.dict[e]},r.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},r._cache={},r.loadPath=function(e){if(!(e in r._cache)){var t=n(e);r._cache[e]=t}return new r(r._cache[e])},r}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(r){function n(e,t){n.__super__.constructor.call(this)}return r.Extend(n,r.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=r.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+r.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],r=this;this.$element.find(":selected").each(function(){var e=l(this),t=r.item(e);n.push(t)}),e(n)},n.prototype.select=function(i){var o=this;if(i.selected=!0,l(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var r=i[n].id;-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")});else{var e=i.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(i){var o=this;if(this.$element.prop("multiple")){if(i.selected=!1,l(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].id;r!==i.id&&-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(r,e){var i=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(r,t);null!==n&&i.push(n)}}),e({results:i})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),r=this._normalizeItem(e);return r.element=t,a.StoreData(t,"data",r),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),r=[],i=0;i<n.length;i++){var o=l(n[i]),s=this.item(o);r.push(s)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function r(e,t){this._dataToConvert=t.get("data")||[],r.__super__.constructor.call(this,e,t)}return f.Extend(r,e),r.prototype.bind=function(e,t){r.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},r.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),r.__super__.select.call(this,n)},r.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),r=n.map(function(){return t.item(g(this)).id}).get(),i=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,r)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}i.push(p)}}return i},r}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var r=o.ajax(e);return r.then(t),r.fail(n),r}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,r){var i=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=i.processResults(e,n);i.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),r(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||i.trigger("results:message",{message:"errorLoading"})});i._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var r=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(r))for(var s=0;s<r.length;s++){var a=r[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var r=t.results,i=0;i<r.length;i++){var o=r[i],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=r,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(r,a)}t.results=r,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var r=n.get("tokenizer");void 0!==r&&(this.tokenizer=r),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var r=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t=r._normalizeItem(e);if(!r.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=r.option(t);n.attr("data-select2-tag",!0),r._removeOldTags(),r.addOptions([n])}!function(e){r.trigger("select",{data:e})}(t)});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger("focus")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,r){for(var i=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,i)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(r(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0<r.maximumSelectionLength&&t>=r.maximumSelectionLength?r.trigger("results:message",{message:"maximumSelected",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-controls",i),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-s,u=l>i.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r<t.length;r++){var i=t[r];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("close",function(e){r._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var r=this.getHighlightedResults();if(!(r.length<1)){var i=o.GetData(r[0],"data");null!=i.element&&i.element.selected||null==i.element&&i.selected||this.trigger("select",{data:i})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(e){r._selectTriggered(e)}),t.on("unselect",function(e){r._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,$,b,w,A,x,D,S,E,C,O,T,q,L,I,j,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=b:null!=e.data?e.dataAdapter=$:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,w)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+"compat/query");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+"compat/initSelection");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=E;else{var r=y.Decorate(E,C);e.dropdownAdapter=r}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,L)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var i=u(e.amdBase+"compat/dropdownCss");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,i)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptContainerCssClass){var o=u(e.amdBase+"compat/containerCss");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push("en");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(""===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var r=c.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&r.children.splice(i,1);return 0<r.children.length?r:e(t,r)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,r=this.defaults.language,i=t.prop("lang"),o=t.closest("[lang]").prop("lang"),s=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(r),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],r=0;r<t.length;r++)if(n.push(t[r]),"string"==typeof t[r]&&0<t[r].indexOf("-")){var i=t[r].split("-")[0];n.push(i)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,r=0;r<e.length;r++){var i=new s,o=e[r];if("string"==typeof o)try{i=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,i=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else i=c.isPlainObject(o)?new s(o):o;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var r=y._convertData(n);c.extend(!0,this.defaults,r)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(r,d,i,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=i.applyFromElement(this.options,t)),this.options=i.apply(this.options),t&&t.is("input")){var n=r(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function r(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,r)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(o,c,u,r){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var i=this.render();this._placeContainer(i);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,i);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,i);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var r=this._resolveWidth(e,"style");return null!=r?r:this._resolveWidth(e,"element")}if("element"==t){var i=e.outerWidth(!1);return i<=0?"auto":i+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,r=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===o.inArray(e,r)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===r.ESC||t===r.TAB||t===r.UP&&e.altKey?(n.close(e),e.preventDefault()):t===r.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===r.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===r.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===r.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===r.ENTER||t===r.SPACE||t===r.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,r=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(r._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),r=this;n&&this.dataAdapter.current(function(e){r.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,r={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in r){var i=r[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1<i.inArray(t,a)?this:n}}return null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return u.fn.select2.amd=e,t});