Contact Form Email - Version 1.2.30

Version Description

  • Fixed bug in graphic report
Download this release

Release Info

Developer codepeople
Plugin Icon 128x128 Contact Form Email
Version 1.2.30
Comparing to
See all releases

Version 1.2.30

Files changed (158) hide show
  1. README.txt +846 -0
  2. banner.php +101 -0
  3. captcha/captcha.php +147 -0
  4. captcha/font-1.ttf +0 -0
  5. captcha/font-2.ttf +0 -0
  6. captcha/font-3.ttf +0 -0
  7. captcha/font-4.ttf +0 -0
  8. changelog.txt +6 -0
  9. classes/cp-base-class.inc.php +151 -0
  10. cp-admin-int-list.inc.php +381 -0
  11. cp-admin-int-message-list.inc.php +245 -0
  12. cp-admin-int-report.inc.php +326 -0
  13. cp-admin-int.inc.php +568 -0
  14. cp-main-class.inc.php +1127 -0
  15. cp-public-int.inc.php +28 -0
  16. cp_admin_int_edition.inc.php +59 -0
  17. css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
  18. css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
  19. css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png +0 -0
  20. css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
  21. css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
  22. css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
  23. css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
  24. css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
  25. css/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
  26. css/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
  27. css/cupertino/images/ui-icons_3d80b3_256x240.png +0 -0
  28. css/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
  29. css/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
  30. css/cupertino/jquery-ui-1.8.20.custom.css +565 -0
  31. css/style.css +75 -0
  32. css/stylepublic.css +81 -0
  33. form-to-email.php +82 -0
  34. images/cp_form.gif +0 -0
  35. images/tooltop.gif +0 -0
  36. js/excanvas.min.js +35 -0
  37. js/fbuilderf.jquery.js +1329 -0
  38. js/jQuery.stringify.js +46 -0
  39. js/jquery.validate.js +1 -0
  40. js/jquery.validate.original.js +1250 -0
  41. languages/contact-form-to-email-ES.po +24 -0
  42. languages/contact-form-to-email-af.mo +0 -0
  43. languages/contact-form-to-email-af.po +78 -0
  44. languages/contact-form-to-email-ar.mo +0 -0
  45. languages/contact-form-to-email-ar.po +75 -0
  46. languages/contact-form-to-email-az.mo +0 -0
  47. languages/contact-form-to-email-az.po +74 -0
  48. languages/contact-form-to-email-be_BY.mo +0 -0
  49. languages/contact-form-to-email-be_BY.po +80 -0
  50. languages/contact-form-to-email-bg_BG.mo +0 -0
  51. languages/contact-form-to-email-bg_BG.po +73 -0
  52. languages/contact-form-to-email-bn_IN.mo +0 -0
  53. languages/contact-form-to-email-bn_IN.po +76 -0
  54. languages/contact-form-to-email-bs_BA.mo +0 -0
  55. languages/contact-form-to-email-bs_BA.po +65 -0
  56. languages/contact-form-to-email-ca.mo +0 -0
  57. languages/contact-form-to-email-ca.po +73 -0
  58. languages/contact-form-to-email-ckb.mo +0 -0
  59. languages/contact-form-to-email-ckb.po +79 -0
  60. languages/contact-form-to-email-cs_CZ.mo +0 -0
  61. languages/contact-form-to-email-cs_CZ.po +73 -0
  62. languages/contact-form-to-email-da_DK.mo +0 -0
  63. languages/contact-form-to-email-da_DK.po +67 -0
  64. languages/contact-form-to-email-de_DE.mo +0 -0
  65. languages/contact-form-to-email-de_DE.po +71 -0
  66. languages/contact-form-to-email-el.mo +0 -0
  67. languages/contact-form-to-email-el.po +73 -0
  68. languages/contact-form-to-email-eo_EO.mo +0 -0
  69. languages/contact-form-to-email-eo_EO.po +69 -0
  70. languages/contact-form-to-email-es_ES.mo +0 -0
  71. languages/contact-form-to-email-et.mo +0 -0
  72. languages/contact-form-to-email-et.po +73 -0
  73. languages/contact-form-to-email-eu.mo +0 -0
  74. languages/contact-form-to-email-eu.po +70 -0
  75. languages/contact-form-to-email-fa_IR.mo +0 -0
  76. languages/contact-form-to-email-fa_IR.po +73 -0
  77. languages/contact-form-to-email-fi.mo +0 -0
  78. languages/contact-form-to-email-fi.po +84 -0
  79. languages/contact-form-to-email-fr_CA.mo +0 -0
  80. languages/contact-form-to-email-fr_CA.po +72 -0
  81. languages/contact-form-to-email-fr_FR.mo +0 -0
  82. languages/contact-form-to-email-fr_FR.po +72 -0
  83. languages/contact-form-to-email-ga_IE.mo +0 -0
  84. languages/contact-form-to-email-ga_IE.po +72 -0
  85. languages/contact-form-to-email-gl_ES.mo +0 -0
  86. languages/contact-form-to-email-gl_ES.po +74 -0
  87. languages/contact-form-to-email-he_IL.mo +0 -0
  88. languages/contact-form-to-email-he_IL.po +73 -0
  89. languages/contact-form-to-email-hi_IN.mo +0 -0
  90. languages/contact-form-to-email-hi_IN.po +77 -0
  91. languages/contact-form-to-email-hr.mo +0 -0
  92. languages/contact-form-to-email-hr.po +73 -0
  93. languages/contact-form-to-email-hu_HU.mo +0 -0
  94. languages/contact-form-to-email-hu_HU.po +77 -0
  95. languages/contact-form-to-email-hy_AM.mo +0 -0
  96. languages/contact-form-to-email-hy_AM.po +69 -0
  97. languages/contact-form-to-email-id_ID.mo +0 -0
  98. languages/contact-form-to-email-id_ID.po +76 -0
  99. languages/contact-form-to-email-it_IT.mo +0 -0
  100. languages/contact-form-to-email-it_IT.po +72 -0
  101. languages/contact-form-to-email-ja.mo +0 -0
  102. languages/contact-form-to-email-ja.po +76 -0
  103. languages/contact-form-to-email-ka_GE.mo +0 -0
  104. languages/contact-form-to-email-ka_GE.po +73 -0
  105. languages/contact-form-to-email-ko_KR.mo +0 -0
  106. languages/contact-form-to-email-ko_KR.po +75 -0
  107. languages/contact-form-to-email-lt_LT.mo +0 -0
  108. languages/contact-form-to-email-lt_LT.po +75 -0
  109. languages/contact-form-to-email-lv.mo +0 -0
  110. languages/contact-form-to-email-lv.po +77 -0
  111. languages/contact-form-to-email-mk_MK.mo +0 -0
  112. languages/contact-form-to-email-mk_MK.po +73 -0
  113. languages/contact-form-to-email-ml_IN.mo +0 -0
  114. languages/contact-form-to-email-ml_IN.po +66 -0
  115. languages/contact-form-to-email-ms_MY.mo +0 -0
  116. languages/contact-form-to-email-ms_MY.po +70 -0
  117. languages/contact-form-to-email-mt_MT.mo +0 -0
  118. languages/contact-form-to-email-mt_MT.po +68 -0
  119. languages/contact-form-to-email-nb_NO.mo +0 -0
  120. languages/contact-form-to-email-nb_NO.po +71 -0
  121. languages/contact-form-to-email-nl_NL.mo +0 -0
  122. languages/contact-form-to-email-nl_NL.po +70 -0
  123. languages/contact-form-to-email-pa_IN.mo +0 -0
  124. languages/contact-form-to-email-pa_IN.po +75 -0
  125. languages/contact-form-to-email-pl_PL.mo +0 -0
  126. languages/contact-form-to-email-pl_PL.po +71 -0
  127. languages/contact-form-to-email-pt_BR.mo +0 -0
  128. languages/contact-form-to-email-pt_BR.po +65 -0
  129. languages/contact-form-to-email-pt_PT.mo +0 -0
  130. languages/contact-form-to-email-pt_PT.po +65 -0
  131. languages/contact-form-to-email-ro_RO.mo +0 -0
  132. languages/contact-form-to-email-ro_RO.po +79 -0
  133. languages/contact-form-to-email-ru_RU.mo +0 -0
  134. languages/contact-form-to-email-ru_RU.po +73 -0
  135. languages/contact-form-to-email-sk_SK.mo +0 -0
  136. languages/contact-form-to-email-sk_SK.po +72 -0
  137. languages/contact-form-to-email-sl_SI.mo +0 -0
  138. languages/contact-form-to-email-sl_SI.po +75 -0
  139. languages/contact-form-to-email-sq.mo +0 -0
  140. languages/contact-form-to-email-sq.po +72 -0
  141. languages/contact-form-to-email-sr_RS.mo +0 -0
  142. languages/contact-form-to-email-sr_RS.po +74 -0
  143. languages/contact-form-to-email-sv_SE.mo +0 -0
  144. languages/contact-form-to-email-sv_SE.po +78 -0
  145. languages/contact-form-to-email-ta.mo +0 -0
  146. languages/contact-form-to-email-ta.po +76 -0
  147. languages/contact-form-to-email-th.mo +0 -0
  148. languages/contact-form-to-email-th.po +76 -0
  149. languages/contact-form-to-email-tl.mo +0 -0
  150. languages/contact-form-to-email-tl.po +69 -0
  151. languages/contact-form-to-email-tr_TR.mo +0 -0
  152. languages/contact-form-to-email-tr_TR.po +74 -0
  153. languages/contact-form-to-email-uk.mo +0 -0
  154. languages/contact-form-to-email-uk.po +74 -0
  155. languages/contact-form-to-email-zh_CN.mo +0 -0
  156. languages/contact-form-to-email-zh_CN.po +72 -0
  157. languages/contact-form-to-email-zh_TW.mo +0 -0
  158. languages/contact-form-to-email-zh_TW.po +72 -0
README.txt ADDED
@@ -0,0 +1,846 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Contact Form Email ===
2
+ Contributors: codepeople
3
+ Donate link: https://form2email.dwbooster.com/download
4
+ Tags: contact form,contact,email,contact form database,form,contact form excel,form to email,form to database,contact form builder,form to csv,form to excel,contact form csv
5
+ Requires at least: 3.0.5
6
+ Tested up to: 4.9
7
+ Stable tag: trunk
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Contact form that sends the data to email and also to a database list and CSV file. Contact form with form builder.
12
+
13
+ == Description ==
14
+
15
+ Contact Form to Email features:
16
+
17
+ ► Email delivery & notifications
18
+ ► Saves messages into database
19
+ ► Export to Excel / CSV
20
+ ► Printable list of messages
21
+ ► Visual drag and drop form builder
22
+ ► Anti-spam captcha
23
+ ► Field validation
24
+ ► Printable reports
25
+ ► One-click contact form
26
+ ► Classic and ajax submission available
27
+ ► Automatic email reports
28
+ ► ... and more features (see below)
29
+
30
+ The main purpose of the **Contact Form to Email** is, as the name indicates, to create **contact forms** and **send their data email addresses**.
31
+
32
+ In addition to that basic feature it also **saves the contact form data into a database**, provides **printable reports** and the option to **export selected data to CSV/Excel** files.
33
+
34
+ = Contact Form to Email Main Features: =
35
+
36
+ * **Email delivery / notifications:** The contact form data is sent by email to one or more email addresses. It also supports the configuration of auto-replies to the user who filled the contact form.
37
+ * **Form data saved into the database:** Avoid losing submissions and keep a record of the received contact form messages.
38
+ * **Printable list of messages:** Get the list of contacts received from the contact form within a selected date range and print it.
39
+ * **Export data to CSV/Excel:** Export the contact form data to a standard format that can be used by other applications. Export the email addresses and other contact form data using date and text search filters.
40
+ * **Automatic reports:** Provide automatic reports of the contact form usage and data entered into the form. Report of daily submissions and accumulative hourly report. Printable reports for specific fields into the contact form. Helps you to understand your data.
41
+ * **Automatic email reports:** Automatic reports sent to the indicated email addresses on a regular period.
42
+ * **Form Validation:** Set validation rules for each contact form field. Keep your data clean.
43
+ * **Anti-spam protection:** Built-it captcha anti-spam protection. No need to rely on external services for the contact form anti-spam protection.
44
+ * **Drag and drop contact form builder:** A basic and easy to use contact form builder for customizing the form fields and form validation.
45
+ * **Customizable email messages:** Specify the text of the contact form email notifications. Supports both plain text emails and HTML formatted emails.
46
+ * **Multi language support:** The contact form builder allows to enter the field labels and validations in any language. It supports special characters.
47
+ * **Classic and Ajax submission:** After clicking the submit button the user can be redirected to a "thank you" page or a "thank you" message can be displayed in the same form page without having to refresh it. This can be configured in the settings.
48
+ * **Enable/Disable notifications:** Both email notifications to administrators and email confirmation to users can be optionally enabled or disabled form the settings area.
49
+
50
+
51
+ = Contact Form to Email - More features =
52
+
53
+ There are also commercial versions of the Contact Form to Email with other features not listed here that can be get at https://form2email.dwbooster.com/download
54
+
55
+ One of the commercial features - available only in the Platinum version of the plugin - is the option to convert the form in a payment form / booking form with integration with mulitple payment gateways: PayPal Standard, PayPal Pro, Stripe, Authorize.net, Skrill, Mollie / iDeal, TargetPay / iDeal, SagePay, RedSys TPV and Sage Payments.
56
+
57
+ = Contact Form to Email Messages List =
58
+
59
+ The messages list helps to check the past contact form submissions and print or export them. Includes a search/filter form with the following options:
60
+
61
+ * **Search for:** Search for a text into the contact form messages.
62
+ * **From ... to:** Date interval to be included in the list/reports.
63
+ * **Item:** You can have more than one contact form. Select here if you want to get the results of a specific contact form or from all contact forms.
64
+ * **Filter:** Shows the list according to the selected filters/options.
65
+ * **Export to CSV:** Export the CSV data according to the selected filters/options.
66
+
67
+ The CSV file will contain a first row with the field names and the next rows will contain one contact form submission per row, with one for field on each column. This way you can easily import the data from other applications or just select the columns/fields that you need (example: select only the emails). A CSV file can be opened and managed using Excel.
68
+
69
+ The list of contact form messages is shown below the search area. A print button below the list provides the messages list in a printable format.
70
+
71
+ = The Contact Form Reports =
72
+
73
+ The reports section lets you **analyze the use of the contact forms** and the data entered into them. The first section of the reports is a filter section similar to the one that appears in the messages list page. Below the filters section there are three graphical reports:
74
+
75
+ * **Submissions per day:** The report will display in point-lines graphic how many contact form submissions have been received each day in the selected date range. This report can be used to evaluate the contact form peaks and measure the impact of marketing actions.
76
+
77
+ * **Submissions per hour:** The report will display in a point-lines graphic how many contact form messages are received on each hour of the date; this is for the total messages in the selected date range. This report can be used for checking peak hours and focus the support service on those hours.
78
+
79
+ * **Report of values for a selected field:** Select any of the contact form fields and other information fields (like date, IP address, hours) to get a report of how many times each value have been entered or selected. This is very useful if you form is used as a poll to get feedback from users, it makes easy to generate a report on selectable contact form fields. This report can be used also to study the most common data entered in the contact form and get a better idea of your customer's profile and needs.
80
+
81
+ A print button at the end of the page can be used to print the report of the values for the selected contact form field in a printer-friendly format.
82
+
83
+ = Automatic Email Reports =
84
+
85
+ The Contact Form to Email plugin allows the setup of two types of automatic (periodical) Email reports:
86
+
87
+ * **Global Email Reports:** Can be setup below the list of forms. This report sends a report with the new submissions of all forms every the specified number of days.
88
+
89
+ * **Form Email Reports:** Can be setup on the settings page of each form. This report sends a report with the new submissions of the related form every the specified number of days.
90
+
91
+ The reports are attached in a CSV / Excel file into the emails. In both cases the destination email addresses, email subject, email text and the report's interval can be specified. More info available in the section "Other Notes".
92
+
93
+
94
+ = Language Support =
95
+
96
+ The Contact Form to Email plugin is compatible with all charsets. The troubleshoot area contains options to change the encoding of the plugin database tables if needed.
97
+
98
+ Translations are supported through PO/MO files located in the Contact Form to Email plugin folder "languages".
99
+
100
+ The following translations are already included in the plugin:
101
+
102
+ * English
103
+ * Italian
104
+ * Portuguese
105
+ * Portuguese(Brasil)
106
+ * Russian
107
+ * Polish
108
+ * Turkish
109
+ * Afrikaans (af)
110
+ * Arabic (ar)
111
+ * Armenian (hy_AM)
112
+ * Azerbaijani(az)
113
+ * Basque (eu)
114
+ * Belarusian (be_BY)
115
+ * Bosnian (bs_BA)
116
+ * Bulgarian (bg_BG)
117
+ * Catalan (ca)
118
+ * Central Kurdish (ckb)
119
+ * Chinese (China zh_CN)
120
+ * Chinese (Taiwan zh_TW)
121
+ * Croatian (hr)
122
+ * Czech (cs_CZ)
123
+ * Danish (da_DK)
124
+ * Dutch (nl_NL)
125
+ * Esperanto (eo_EO)
126
+ * Estonian (et)
127
+ * Finnish (fi)
128
+ * French (fr_FR)
129
+ * Galician (gl_ES)
130
+ * Georgian (ka_GE)
131
+ * German (de_DE)
132
+ * Greek (el)
133
+ * Hebrew (he_IL)
134
+ * Hindi (hi_IN)
135
+ * Hungarian (hu_HU)
136
+ * Indian Bengali (bn_IN)
137
+ * Indonesian (id_ID)
138
+ * Irish (ga_IE)
139
+ * Japanese (ja)
140
+ * Korean (ko_KR)
141
+ * Latvian (lv)
142
+ * Lithuanian (lt_LT)
143
+ * Macedonian (mk_MK)
144
+ * Malay (ms_MY)
145
+ * Malayalam (ml_IN)
146
+ * Maltese (mt_MT)
147
+ * Norwegian (nb_NO)
148
+ * Persian (fa_IR)
149
+ * Punjabi (pa_IN)
150
+ * Romanian (ro_RO)
151
+ * Serbian (sr_RS)
152
+ * Slovak (sk_SK)
153
+ * Slovene (sl_SI)
154
+ * Spanish (es_ES)
155
+ * Swedish (sv_SE)
156
+ * Tagalog (tl)
157
+ * Tamil (ta)
158
+ * Thai (th)
159
+ * Ukrainian (uk)
160
+
161
+ = Contact Form to Email Updates =
162
+
163
+ New features has been published in the current Contact Form to Email version 1.2.7 based on the feedback received and we would like to thank you all the people that have supported the development, provided feedback and feature requests. The plugin is currently over the 630,000 downloads/installations and a new set of updates is already being prepared, any feature requests will be welcome. Thank you!
164
+
165
+ = New: Form Builder =
166
+
167
+ In the latest update a form builder was included to visually add/modify/delete text fields, text-areas and emails with their respective validations.
168
+
169
+
170
+ == Installation ==
171
+
172
+ To install Contact Form to Email, follow these steps:
173
+
174
+ 1. Download and unzip the Contact Form to Email plugin
175
+ 2. Upload the entire contact-form-to-email/ directory to the /wp-content/plugins/ directory
176
+ 3. Activate the Contact Form to Email plugin through the Plugins menu in WordPress
177
+ 4. Configure the contact form settings at the administration menu >> Settings >> Contact Form to Email
178
+ 5. To insert the contact form into some content or post use the icon that will appear when editing contents
179
+
180
+ == Frequently Asked Questions ==
181
+
182
+ = Q: How can I add specific fields into the email message? =
183
+
184
+ A: There is a tag named <%INFO%> that is replaced with all the information posted from the contact form, however you can use also optional tags for specific fields into the contact form.
185
+
186
+ For doing that, click the desired field into the form builder and in the settings box for that field there is a read-only setting named "Field tag for the message (optional):". Copy & paste that tag into the contact form message text and after the form submission that tag will be replaced with the text entered in the form field.
187
+
188
+ The tags have this structure (example): <%fieldname1%>, <%fieldname2%>, <%fieldname3%>, ...
189
+
190
+ = Q: Can I add a reference to the item number (submission number) into the email? =
191
+
192
+ A: Use the tag <%itemnumber%> into the email content. That tag will be replaced by the contact form submission item number.
193
+
194
+
195
+ = Q: The contact form doesn't appear. What is the solution? =
196
+
197
+ A: The cause is in most cases a conflict with a third party plugin or with the theme. To fix that, go to the "troubleshoot area" (located below the list of forms in the settings area) change the "Script load method" from "Classic" to "Direct".
198
+
199
+ If the problem persists after that modification please contact our support service and we will give you a solution. We will appreciate any feedback to make the contact form avoid conflicts with third party plugins/themes.
200
+
201
+
202
+ = Q: I'm having problems with non-latin characters in the contact form. =
203
+
204
+ A: Use the "troubleshoot area" to change the character encoding. Try first with the UTF-8 option.
205
+
206
+
207
+ = Q: I'm getting this message: "Destination folder already exists". Solution? =
208
+
209
+ A: The free version must be deleted before installing the pro version.
210
+
211
+ If you are uploading a new version via Plugins - New - Upload and a previous version is still installed, then delete the previous version first. This is a safe step, the plugin's data and settings won't be lost during the process.
212
+
213
+ Another alternative is to overwrite the plugin files through a FTP connection. This is also a safe step.
214
+
215
+
216
+ = Q: How to edit or remove the form title / header? =
217
+
218
+ A: Into the form builder in the administration area, click the "Form Settings" tab. That area is for editing the form title and header text.
219
+
220
+ It can be used also for different alignment of the field labels.
221
+
222
+ = Q: Can I align the form horizontally in two or more columns? =
223
+
224
+ A: Into the form editor click a field and into its settings there is one field named "Add Css Layout Keywords". Into that field you can put the name of a CSS class that will be applied to the field.
225
+
226
+ There are some pre-defined CSS classes to use align two, three or four fields into the same line. The CSS classes are named:
227
+
228
+ column2
229
+ column3
230
+ column4
231
+
232
+ For example if you want to put two fields into the same horizontal line then specify for both fields the class name "column2".
233
+
234
+ = Q: What means each field in the contact form settings area? =
235
+
236
+ A: For each contact form you will be able to edit the following settings:
237
+
238
+ **Form Processing / Email Settings:**
239
+
240
+ * **Send email "From":** Indicate if the email will be sent from a fixed email address or from the email address entered by the customer. This is explained in more detail in the "Other notes" tab.
241
+ * **"from" email:** The email used as from in the notifications (for fixed "from" addresses).
242
+ * **Destination emails (comma separated):** List of administrators that will receive the email notification.
243
+ * **Email subject:** Subject of the notification email sent after completing the payment.
244
+ * **Include additional information?:** Optional information about the user IP and browser.
245
+ * **Thank you page (after sending the message):** After the completing the payment the user may go back to a page into your website (usually a "thank you" page). Type the page address into this field.
246
+ * **Email format?:** Select if the email will be sent as plain-text or HTML-formatted.
247
+ * **Message:** Content of the notification email that you will receive after each submission of the contact form. Keep the tag <%INFO%>, it will be replaced automatically with the form data send by the user.
248
+
249
+ **Form Builder:** The drag and drop contact form builder. It's explained in detail in the "Other notes" tab.
250
+
251
+ **Submit button:** To specify the label of the contact form submit button (no need to add it from the visual contact form builder). Contains also other settings and instructions for further customizations to the contact form submit button and contact form CSS styles.
252
+
253
+ **Validation Settings:** This area contains the "texts" used for the contact form validations. You can easily translate them to other languages.
254
+
255
+ **Email Copy to User:**
256
+
257
+ * **Send confirmation/thank you message to user?:** Select if you want to sent the "confirmation/thank you" message to the user.
258
+ * **Email field on the form:** Select here the field that contains the user's email on the contact form.
259
+ * **Email subject:** Subject of the email sent to the user after payment
260
+ * **Email format?:** Select if the email will be sent as plain-text or HTML-formatted.
261
+ * **Message:** Content of the email sent to the user after payment. The tag <%INFO%> will be replaced by the information sent using the contact form, if needed.
262
+
263
+ **Captcha Verification:**
264
+
265
+ * **Use Captcha Verification?:** Select if the captcha image will be used in the contact form to prevent spam.
266
+ * **Width:** Width of the captcha image.
267
+ * **Height:** Height of the captcha image.
268
+ * **Chars:** How many characters will appear in the captcha image.
269
+ * **Min font size:** Minimum size used for the font (randomized).
270
+ * **Max font size:** Maximum size used for the font (randomized).
271
+ * **Preview:** Preview for checking how the captcha image will look.
272
+ * **Noise:** Amount of noise to make it stronger.
273
+ * **Noise Length:** Length of the noise to modify its look.
274
+ * **Background:** Background color.
275
+ * **Border:** Border color.
276
+ * **Font:** Base font used to render the text. Four options already included.
277
+
278
+ **Automatic Reports. Send submissions in CSV format via email:** This area contains many settings to automatically send reports every the specified period of time containing the data of all the contact forms submitted during that period of time. The report settings are explained more in detail in the tab "Other Notes" (see "Customizing the automatic email reports"). Note: All the submissions are stored into the contact form database, so can be easily recovered when needed.
279
+
280
+ = Q: Can I get the URL of the page where the form was displayed before submission? =
281
+
282
+ A: Yes, you can add the tag <%referrer%> to the email content and that tag will be replaced with the address of the page where the form was displayed and submitted.
283
+
284
+ = Q: How can I apply CSS styles to the contact form fields? =
285
+
286
+ A: To modify the **whole styles of the contact form fields and labels**, edit the styles file "wp-content/plugins/contact-form-to-email/css/stylepublic.css" and add these rules at the end of that file:
287
+
288
+ * **Change the styles of all the field labels:**
289
+
290
+ #fbuilder, #fbuilder label, #fbuilder span {
291
+ color: #00f;
292
+ }
293
+
294
+ * **Change the styles of all the input and textarea fields:**
295
+
296
+ #fbuilder input[type=text], #fbuilder textarea, #fbuilder select {
297
+ border: 2px solid #00f;
298
+ }
299
+
300
+ * **Change the contact form submit button:**
301
+
302
+ #fbuilder .pbSubmit {
303
+ color: #00f;
304
+ font-weight: bold;
305
+ }
306
+
307
+ * **Change the "contact form title" and "header description":**
308
+
309
+ #fbuilder .fform h1 {font-size:32px;}
310
+ #fbuilder .fform span {font-size:16px;}
311
+
312
+ **On the other hand to modify only a specific field into the contact form:**
313
+
314
+ * **Step #1:** Into the contact form builder, click a field to edit its details, there is a setting there named "Add CSS Layout Keywords".
315
+
316
+ * **Step #2:** You can add a class name into that field, so the style specified into the CSS class will be applied to that field.
317
+
318
+ * **Step #3 (Note):** Don't add style rules directly there in the contact form builder but the name of a CSS class.
319
+
320
+ * **Step #4:** You can place the CSS class either into the CSS file of your template or into the file "wp-content/plugins/contact-form-to-email/css/stylepublic.css" located into the Contact Form to Email plugin's folder.
321
+
322
+ **Examples:** Add a class named "specialclass" into the setting "Add CSS Layout Keywords" and add one of these CSS rules into the mentioned file:
323
+
324
+ * For changing the field label:
325
+
326
+ .specialclass label {
327
+ color: #00f;
328
+ }
329
+
330
+ * For changing the input or textarea of the field:
331
+
332
+ .specialclass input[type=text],.specialclass textarea,.specialclass select {
333
+ border: 2px solid #00f;
334
+ }
335
+
336
+ To get the modifications shown into the public contact form you may have to refresh the page twice or clear the browser cache to be sure that the old CSS styles aren't still being shown from the cache.
337
+
338
+ == Other Notes ==
339
+
340
+ **Opening the contact form messages in Excel:** Go either to the "Reports" or "Messages" section. There is a button labeled "Export to CSV". CSV files can be opened in Excel, just double-click the downloaded CSV file, it will contain the selected contact form submissions, one per line.
341
+
342
+ **Deleting a contact form message:** Go to the "Messages" section and use the button labeled "Delete" for the contact form message you want to delete. Each row in that list is a contact form submission.
343
+
344
+ **Get the contact form email from the user:** The email used as from is a fixed email specified on the contact form settings, this helps to prevent be classified as spam, however when you hit "reply" over the received email, the user's email address will appear allow you to easily reply the contact form messages. The header "Reply-to" is used for this purpose.
345
+
346
+ **Customizing the captcha image:** The captcha image used in the contact form is 100% implemented into the plugin, this way you don't need to rely on third party services/servers. In addition to the settings for customizing the captcha design you can also replace the font files located into the folder "contact-form-to-email/captcha/". The fonts are used as base for rendering the captcha on the contact form.
347
+
348
+ **Contact form email format:** The notifications emails sent from the contact form can be either plain-text emails or HTML emails. Plain text emails are preferred in most cases since are easier to edit and pass the anti-spam filters with more probability.
349
+
350
+ **Contact form Clone button:** The clone button duplicates a complete contact form with its settings. The contact form messages / emails and statistics aren't duplicated.
351
+
352
+ = Custom contact form submit button =
353
+
354
+ There is a settings section info each form that allows to specify the label of the submit button.
355
+
356
+ The class="pbSubmit" can be used to modify the button styles.
357
+
358
+ The styles can be applied into any of the CSS files of your theme or into the CSS file "contact-form-to-email\css\stylepublic.css".
359
+
360
+ For further modifications the submit button is located at the end of the file "cp-public-int.inc.php".
361
+
362
+ For general CSS styles modifications to the form and samples check this FAQ entry: https://form2email.dwbooster.com/faq#q82
363
+
364
+
365
+ = Customizing the automatic email reports =
366
+
367
+ The settings for the email reports (both the global and per form reports) include the following configuration fields:
368
+
369
+ * **Enable Reports?:** Option for enabling / disabling the reports.
370
+ * **Send report every:** Indicate every how many days the reports will be sent.
371
+ * **Send after this hour (server time):** Approximate time at which the reports will be sent. This time is based on the server time. Some activity is needed on the website for sending the reports. You can setup a cron for a more exact delivery time.
372
+ * **Send email from:** The "from" email used for the reports. Avoid @aol.com and @hotmail.com "from" addresses to skip the anti-spam filters.
373
+ * **Send to email(s):** The list of emails (comma separated) that will receive the reports.
374
+ * **Email subject:** Subject of the email that will be sent with the Contact Form to Email reports.
375
+ * **Email format?:** Format of the email that will be sent with the Contact Form to Email reports. Can be HTML or Plain Text. In most cases plain text is easier to setup and has less problems with anti-spam services.
376
+ * **Email Text (CSV file will be attached):** Content of the email that will contain the Contact Form to Email reports. The reports will be attached in CSV format into the email.
377
+
378
+ = The contact form database =
379
+
380
+ The messages received via the contact form are stored into the WordPress contact form database table "wp_cftemail_messages". You can export that data in form of automatic email reports or in CSV/Excel format from the messages list area. If needed you can also query that table directly for further processing of the contact form data.
381
+
382
+ = Importing messages =
383
+
384
+ There is an option to import messages into the Contact Form to Email plugin. That option is located below the messages list and is labeled "Import CSV".
385
+
386
+ The messages can be imported in a comma separated CSV file. One record per line, one field per column. Don't use a header row with the field names.
387
+
388
+ The first 3 columns into the CSV file are the time, IP address and email address, if you don't have this information then leave the first three columns empty. After those initial columns the fields (columns) must appear in the same order than in the form.
389
+
390
+ Sample format for the CSV file:
391
+
392
+ 2013-04-21 18:50:00, 192.168.1.12, john@sample.com, "john@sample.com", "sample subject", "sample message"
393
+ 2013-05-16 20:49:00, 192.168.1.24, jane.smith@sample.com, "jane.smith@sample.com", "other subject", "other message"
394
+
395
+ = From address used for the emails =
396
+
397
+ Into the "Form Processing / Email Settings" section the first settings field is named "Send email "From" and has the following options:
398
+
399
+ * **From fixed email address indicated below - Recommended option:** If you select "from fixed..." the customer email address will appear in the "to" address when you hit "reply", this is the recommended setting to avoid mail server restrictions.
400
+
401
+ * **From the email address indicated by the customer:** If you select "from customer email" then the customer email will appear also visually when you receive the email, but this isn't supported by all hosting services, so this option isn't recommended in most cases.
402
+
403
+ = The drag and drop contact form builder =
404
+
405
+ The Form Builder lets you to add/edit/remove fields into the contact form and also to specify the validation rules for your contact form (required fields, email fields, etc...).
406
+
407
+ The following field types are currently available in the version published at this WordPress directory:
408
+
409
+ * **Single Line Text:** Classic one-line text input.
410
+ * **Email:** This field validates that the email address has a valid format.
411
+ * **Paragraph Text:** Classic multi-line (textarea) text input.
412
+
413
+ In other versions of the plugin the following field are also available: Numeric field with specific validations, Date-picker, Checkboxes, Multiple Choice Radio buttons, Dropdown / Select, Upload file fields, Password, Phone with specific validations, static texts, section breaks and page breaks for multi-page contact forms.
414
+
415
+ **Other features in the contact form builder:**
416
+
417
+ * **Equal fields validation:** Use it for example to confirm if the email or text typed in two different fields are the same. This is valid for "Single Line Text" and "Email" fields.
418
+
419
+ * **Dependent fields:** Use this feature for show/hide fields (any field type) based in the selection made on other fields (checkboxes, radiobuttons or select/drop-down fields). This feature isn't fully available in this version since the related fields aren't included.
420
+
421
+ **Editing the field settings in the Contact Form Builder:**
422
+
423
+ When you click a field already added into the contact form builder area, you can edit its details and validation rules. The following properties are available:
424
+
425
+ * **Field Label:** Label for the field in the public contact form and into the email.
426
+ * **Field tag for the message:** In addition to the general %INFORMATION% tag, you can use this tag to show the field value into a specific tag of the email. More info at the WordPress Contact Form to Email FAQ.
427
+ * **Specific settings:** The settings depends of the field type.
428
+ * **Validation rule:** The validation rules depends of the field type, example: required, valid email, ...
429
+ * **Predefined value:** Pre-filled value for the field, if any.
430
+ * **Instructions for user:** This text will appear in a smaller form below the field. It's useful for giving instructions to the user.
431
+ * **Add CSS layout keywords:** Customize the look & feel. More info at the WordPress Contact Form to Email FAQ.
432
+
433
+
434
+ == Screenshots ==
435
+
436
+ 1. Adding fields to the contact form
437
+ 2. Editing fields from the contact form
438
+ 3. contact form processing settings
439
+ 4. contact form validation settings
440
+ 5. Inserting a contact form into a page
441
+ 6. Built-in captcha image anti-spam protection
442
+
443
+ == Changelog ==
444
+
445
+ = 1.2.30 =
446
+ * Fixed bug in graphic report
447
+
448
+ = 1.2.29 =
449
+ * Modification to blink option
450
+
451
+ = 1.2.28 =
452
+ * New feature to report the page where the form was submitted
453
+
454
+ = 1.2.27 =
455
+ * Improvements to the submission process to avoid duplicated submissions
456
+
457
+ = 1.2.26 =
458
+ * Feature for disabling email notifications when needed
459
+
460
+ = 1.2.25 =
461
+ * Added CSS and JavaScript customization panel
462
+
463
+ = 1.2.24 =
464
+ * Fixed bug in review panel
465
+
466
+ = 1.2.23 =
467
+ * Admin intf modifications
468
+
469
+ = 1.2.22 =
470
+ * Fixed conflict with 3rd party plugin
471
+
472
+ = 1.2.21 =
473
+ * Fixed layout of graphics in report page
474
+
475
+ = 1.2.20 =
476
+ * Fixed bug in ajax submission process
477
+
478
+ = 1.2.19 =
479
+ * Compatible with WordPress 4.9
480
+
481
+ = 1.2.18 =
482
+ * Filename sanitization improvements
483
+
484
+ = 1.2.17 =
485
+ * Ajax submission features
486
+
487
+ = 1.2.16 =
488
+ * German translation correction
489
+
490
+ = 1.2.15 =
491
+ * Database upgrade code updated
492
+
493
+ = 1.2.14 =
494
+ * Added default value for options
495
+
496
+ = 1.2.12 =
497
+ * Simpler filename sanitization
498
+
499
+ = 1.2.11 =
500
+ * Fixed initialization bug
501
+
502
+ = 1.2.10 =
503
+ * Improved messages list and print option
504
+
505
+ = 1.2.09 =
506
+ * Filename sanitization
507
+
508
+ = 1.2.08 =
509
+ * Validation updates
510
+
511
+ = 1.2.07 =
512
+ * Sanitization of "from" email address
513
+
514
+ = 1.2.06 =
515
+ * Moved plugin website and links to SSL
516
+
517
+ = 1.2.05 =
518
+ * Fixed bug on color selectors for captcha images
519
+
520
+ = 1.1.99 =
521
+ * Accessibility updates
522
+
523
+ = 1.1.98 =
524
+ * Fixed bugs to report graphics
525
+ * Improvements to scripts loading
526
+
527
+ = 1.1.97 =
528
+ * Removed used of deprecated mysql_ functions
529
+
530
+ = 1.1.96 =
531
+ * Tested and compatible with WordPress 4.8
532
+
533
+ = 1.1.95 =
534
+ * Fixed bug that caused error while reusing resources
535
+
536
+ = 1.1.94 =
537
+ * Fixes script issue in previous update
538
+
539
+ = 1.1.93 =
540
+ * Added new settings and translation fields
541
+
542
+ = 1.1.92 =
543
+ * Improved IP address detection to get real user IP address
544
+
545
+ = 1.1.91 =
546
+ * Fixed bug in review box
547
+
548
+ = 1.1.90 =
549
+ * Major code update, multiple code optimization and security improvements
550
+
551
+ = 1.1.89 =
552
+ * Better query sanitization
553
+ * Optional feedback option added
554
+
555
+ = 1.1.88 =
556
+ * Fixed XSS vulneravility
557
+
558
+ = 1.1.87 =
559
+ * Fix to the captcha align in the form builder
560
+
561
+ = 1.1.86 =
562
+ * Form builder update to support email type for mobile devices
563
+
564
+ = 1.1.85 =
565
+ * Field validations in dashboard to prevent common email config issues
566
+
567
+ = 1.1.84 =
568
+ * Minified script to improve form speed
569
+
570
+ = 1.1.83 =
571
+ * Included submission ID in CSV file
572
+
573
+ = 1.1.82 =
574
+ * Compatible with WP 4.7.3
575
+
576
+ = 1.1.81 =
577
+ * Help address update
578
+
579
+ = 1.1.80 =
580
+ * Security improvement
581
+
582
+ = 1.1.79 =
583
+ * Visualization update
584
+
585
+ = 1.1.78 =
586
+ * Documentation updates
587
+
588
+ = 1.1.77 =
589
+ * Bug fixed in add contact form feature
590
+
591
+ = 1.1.76 =
592
+ * Validation updates
593
+
594
+ = 1.1.75 =
595
+ * Fixed broken admin button
596
+
597
+ = 1.1.74 =
598
+ * Admin intf update
599
+
600
+ = 1.1.73 =
601
+ * Security improvement
602
+
603
+ = 1.1.72 =
604
+ * DB improvements
605
+
606
+ = 1.1.71 =
607
+ * Fixed typo
608
+
609
+ = 1.1.70 =
610
+ * Fixed intf. bug
611
+
612
+ = 1.1.69 =
613
+ * DB update
614
+
615
+ = 1.1.68 =
616
+ * Instructions update
617
+
618
+ = 1.1.67 =
619
+ * Fixes to filename generation
620
+
621
+ = 1.1.66 =
622
+ * Compatible with WP 4.7
623
+
624
+ = 1.1.65 =
625
+ * Database fix
626
+
627
+ = 1.1.64 =
628
+ * Doc link updated
629
+
630
+ = 1.1.63 =
631
+ * Database improvements
632
+
633
+ = 1.1.62 =
634
+ * Fixed database error on IP v6 networks
635
+
636
+ = 1.1.61 =
637
+ * Improved support tracking
638
+
639
+ = 1.1.60 =
640
+ * Code optimizations
641
+
642
+ = 1.1.59 =
643
+ * French language corrections
644
+
645
+ = 1.1.58 =
646
+ * Fix to visualization bug in Firefox
647
+
648
+ = 1.1.57 =
649
+ * Interface update
650
+
651
+ = 1.1.56 =
652
+ * Roll back to incorrect update
653
+
654
+ = 1.1.55 =
655
+ * More fixes for magic quotes issue
656
+
657
+ = 1.1.54 =
658
+ * Fixed magic quotes issue
659
+
660
+ = 1.1.53 =
661
+ * IP addr database update
662
+
663
+ = 1.1.52 =
664
+ * Modified processing of posted data
665
+
666
+ = 1.1.51 =
667
+ * New customization form
668
+
669
+ = 1.1.50 =
670
+ * Fixed XSS issue. Thank you to Netsparker Ltd (netsparker.com) for the notification.
671
+
672
+ = 1.1.49 =
673
+ * Compatible with WP 4.6
674
+
675
+ = 1.1.48 =
676
+ * Fixed XSS issue (Thank you to Burak Kelebek for the report)
677
+
678
+ = 1.1.47 =
679
+ * Modified admin addr
680
+
681
+ = 1.1.46 =
682
+ * Fix on email tags
683
+
684
+ = 1.1.45 =
685
+ * Auto-formatting for from email
686
+
687
+ = 1.1.44 =
688
+ * Captcha params update
689
+
690
+ = 1.1.43 =
691
+ * Mail notice removed
692
+
693
+ = 1.1.42 =
694
+ * IP address not included as default to avoid anti-spam issues
695
+
696
+ = 1.1.41 =
697
+ * "From" email address corrected
698
+
699
+ = 1.1.40 =
700
+ * New documentation
701
+
702
+ = 1.1.39 =
703
+ * Removed old versions of Contact Form to Email
704
+
705
+ = 1.1.38 =
706
+ * Removed unneeded tag from public from
707
+
708
+ = 1.1.37 =
709
+ * Using plugins_loaded instead init
710
+
711
+ = 1.1.35 =
712
+ * Fixed bug in throubleshoot area
713
+
714
+ = 1.1.34 =
715
+ * jQuery deprecated functions replaced
716
+
717
+ = 1.1.33 =
718
+ * Slashes escape fix
719
+
720
+ = 1.1.32 =
721
+ * Compatible with WP 4.5
722
+
723
+ = 1.1.31 =
724
+ * New filter for file uploads
725
+
726
+ = 1.1.30 =
727
+ * Correction to support address
728
+
729
+ = 1.1.29 =
730
+ * Added nonces and security improvements
731
+
732
+ = 1.1.28 =
733
+ * Added demo pages
734
+
735
+ = 1.1.27 =
736
+ * New website & documentation links
737
+
738
+ = 1.1.26 =
739
+ * Updated API URLs
740
+
741
+ = 1.1.25 =
742
+ * Shortcode paramters sanitization
743
+
744
+ = 1.1.24 =
745
+ * Fixed PHP session issues
746
+
747
+ = 1.1.23 =
748
+ * Fixed typos in French translations
749
+
750
+ = 1.1.22 =
751
+ * Message list updates
752
+
753
+ = 1.1.21 =
754
+ * Improved captcha security
755
+
756
+ = 1.1.20 =
757
+ * Fixed CSS errors and the submit button style in the new WP themes
758
+
759
+ = 1.1.19 =
760
+ * Fixed validation tags
761
+
762
+ = 1.1.18 =
763
+ * Removed old styles
764
+
765
+ = 1.1.17 =
766
+ * Optimization. Removed code from old/unused behaviors
767
+
768
+ = 1.1.16 =
769
+ * Fixed captcha issues
770
+
771
+ = 1.1.15 =
772
+ * Fixed insert query
773
+
774
+ = 1.1.14 =
775
+ * Tested and compatible with WordPress 4.4
776
+
777
+ = 1.1.13 =
778
+ * Form validation is now activated from the form builder
779
+
780
+ = 1.1.12 =
781
+ * Updates to admin interface
782
+
783
+ = 1.1.11 =
784
+ * Interface modifications
785
+
786
+ = 1.1.10 =
787
+ * Support new charsets
788
+
789
+ = 1.1.9 =
790
+ * Default settings updated
791
+
792
+ = 1.1.8 =
793
+ * Fixed CSV sample format
794
+ * Updated support links
795
+
796
+ = 1.1.7 =
797
+ * Update to the h2-h1 tags in the admin interface
798
+ * Fixed bug with the tabs
799
+ * Fixed initialization bug in reports
800
+ * Fixed typo in dutch language
801
+ * Removed unneeded data from the post process
802
+
803
+ = 1.1.6 =
804
+ * Compatible with the latest WordPress 4.2.3
805
+ * Update to messages list.
806
+ * Better code for captcha image generation.
807
+ * Fixed conflict with zLib library
808
+ * Update to the captcha generation to add content-length header
809
+
810
+ = 1.1.5 =
811
+ * Removed use of esc_sql for numeric values
812
+ * Fixed XSS vulnerability
813
+ * Fixed bug in translation functions.
814
+
815
+ = 1.1.4 =
816
+ * Compatible with the WordPress 4.2.2 version
817
+
818
+ = 1.1.3 =
819
+ * Sanitized parameters used in SQL queries.
820
+ * Support for large forms.
821
+ * Improved translations.
822
+ * Compatible with the latest WordPress 4.2.x version
823
+
824
+ = 1.1.2 =
825
+ * Compatible with the latest WP versions
826
+ * Improved translation code, compatible with the latest WP versions
827
+ * New translations
828
+ * Auto-detection and auto-solution for captcha image issues in servers with problem with the PHP sessions configuration
829
+ * Fixed warning that appeared with PHP safe mode restrictions
830
+ * Sanitized GET parameters used in queries
831
+
832
+ = 1.01 =
833
+ * Compatible with the latest WP versions
834
+ * New automatic CSV report options
835
+ * Added functional form builder
836
+ * Improved CSS styles to avoid CSS conflicts
837
+ * Fixed conflict of the captcha image with some third party plugins
838
+ * Fixed bug in pagination links
839
+ * New feature for adding submission number into the emails
840
+ * Fixed bug with back slashes on submissions
841
+
842
+
843
+ == Upgrade Notice ==
844
+
845
+ = 1.2.30 =
846
+ * Fixed bug in graphic report
banner.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $codepeople_promote_banner_plugins;
3
+ if(empty($codepeople_promote_banner_plugins)) $codepeople_promote_banner_plugins = array();
4
+ if(!function_exists( 'codepeople_add_promote_banner' ))
5
+ {
6
+ function codepeople_add_promote_banner($wp_admin_bar)
7
+ {
8
+ global $codepeople_promote_banner_plugins;
9
+
10
+ if( empty($codepeople_promote_banner_plugins) || !is_admin() ) return;
11
+
12
+ // Take action over the banner
13
+ if(isset($_POST['codepeople_promote_banner_nonce']) && wp_verify_nonce($_POST['codepeople_promote_banner_nonce'], __FILE__))
14
+ {
15
+ if(
16
+ !empty($_POST['codepeople_promote_banner_plugin']) &&
17
+ !empty($codepeople_promote_banner_plugins[$_POST['codepeople_promote_banner_plugin']])
18
+ )
19
+ {
20
+ set_transient( 'codepeople_promote_banner_'.$_POST['codepeople_promote_banner_plugin'], -1, 0);
21
+ if(
22
+ !empty($_POST['codepeople_promote_banner_action']) &&
23
+ $_POST['codepeople_promote_banner_action'] == 'set-review' &&
24
+ !empty($codepeople_promote_banner_plugins[$_POST['codepeople_promote_banner_plugin']]['plugin_url'])
25
+ )
26
+ {
27
+ print '<script>document.location.href="'.esc_js($codepeople_promote_banner_plugins[$_POST['codepeople_promote_banner_plugin']]['plugin_url']).'";</script>';
28
+ }
29
+ }
30
+ }
31
+
32
+ $minimum_days = 86400*7;
33
+ $now = time();
34
+
35
+ foreach($codepeople_promote_banner_plugins as $plugin_slug => $plugin_data )
36
+ {
37
+ $value = get_transient( 'codepeople_promote_banner_'.$plugin_slug );
38
+ if( $value === false )
39
+ {
40
+ $value = $now;
41
+ set_transient( 'codepeople_promote_banner_'.$plugin_slug, $value, 0 );
42
+ }
43
+
44
+ if($minimum_days <= abs($now-$value) && 0<$value)
45
+ {
46
+ ?>
47
+ <style>
48
+ #codepeople-review-banner{width:calc( 100% - 20px );width:-webkit-calc( 100% - 20px );width:-moz-calc( 100% - 20px );width:-o-calc( 100% - 20px );border:10px solid #1582AB;background:#FFF;display:table;}
49
+ #codepeople-review-banner form{float:left; padding:0 5px;}
50
+ #codepeople-review-banner .codepeople-review-banner-picture{width:120px;padding:10px 10px 10px 10px;float:left;text-align:center;}
51
+ #codepeople-review-banner .codepeople-review-banner-content{float: left;padding:10px;width: calc( 100% - 160px );width: -webkit-calc( 100% - 160px );width: -moz-calc( 100% - 160px );width: -o-calc( 100% - 160px );}
52
+ #codepeople-review-banner .codepeople-review-banner-buttons{padding-top:20px;}
53
+ #codepeople-review-banner .no-thank-button,
54
+ #codepeople-review-banner .main-button{height: 28px;border-width:1px;border-style:solid;border-radius:5px;text-decoration: none;}
55
+ #codepeople-review-banner .main-button{background: #0085ba;border-color: #0073aa #006799 #006799;-webkit-box-shadow: 0 1px 0 #006799;box-shadow: 0 1px 0 #006799;color: #fff;text-decoration: none;text-shadow: 0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;}
56
+ #codepeople-review-banner .no-thank-button {color: #555;border-color: #cccccc;background: #f7f7f7;-webkit-box-shadow: 0 1px 0 #cccccc;box-shadow: 0 1px 0 #cccccc;vertical-align: top;}
57
+ #codepeople-review-banner .main-button:hover,#codepeople-review-banner .main-button:focus{background: #008ec2;border-color: #006799;color: #fff;}
58
+ #codepeople-review-banner .no-thank-button:hover,
59
+ #codepeople-review-banner .no-thank-button:focus{background: #fafafa;border-color: #999;color: #23282d;}
60
+ @media screen AND (max-width:760px)
61
+ {
62
+ #codepeople-review-banner{position:relative;top:50px;}
63
+ #codepeople-review-banner .codepeople-review-banner-picture{display:none;}
64
+ #codepeople-review-banner .codepeople-review-banner-content{width:calc( 100% - 20px );width:-webkit-calc( 100% - 20px );width:-moz-calc( 100% - 20px );width:-o-calc( 100% - 20px );}
65
+ }
66
+ </style>
67
+ <div id="codepeople-review-banner">
68
+ <div class="codepeople-review-banner-picture">
69
+ <img alt="" src="https://secure.gravatar.com/avatar/c0662edcefb5a4e2ab12803856ba2358?s=150&amp;d=mm&amp;r=g" style="width:80px;">
70
+ </div>
71
+ <div class="codepeople-review-banner-content">
72
+ <div class="codepeople-review-banner-text">
73
+ <p><strong>Want to help to the development of the "<?php print $plugin_data[ 'plugin_name' ]; ?>" plugin?</strong> The main features of this plugin are provided free of charge. We need your help to continue developing it and adding new features. If you want to help with the development please <span style="color:#1582AB;font-weight:bold;">add a review to support it</span>. Thank you!</p>
74
+ </div>
75
+ <div class="codepeople-review-banner-buttons">
76
+ <form method="post" target="_blank">
77
+ <button class="main-button" onclick="jQuery(this).closest('[id=\'codepeople-review-banner\']').hide();">Publish a Review</button>
78
+ <input type="hidden" name="codepeople_promote_banner_plugin" value="<?php echo esc_attr($plugin_slug); ?>" />
79
+ <input type="hidden" name="codepeople_promote_banner_action" value="set-review" />
80
+ <input type="hidden" name="codepeople_promote_banner_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
81
+ </form>
82
+ <form method="post">
83
+ <button class="no-thank-button">No Thanks</button>
84
+ <input type="hidden" name="codepeople_promote_banner_plugin" value="<?php echo esc_attr($plugin_slug); ?>" />
85
+ <input type="hidden" name="codepeople_promote_banner_action" value="not-thanks" />
86
+ <input type="hidden" name="codepeople_promote_banner_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
87
+ </form>
88
+ <div style="clear:both;display:block;"></div>
89
+ </div>
90
+ <div style="clear:both;"></div>
91
+ </div>
92
+ <div style="clear:both;"></div>
93
+ </div>
94
+ <?php
95
+ return;
96
+ }
97
+ }
98
+ }
99
+ add_action( 'admin_bar_menu', 'codepeople_add_promote_banner' );
100
+ } // End codepeople_promote_banner block
101
+ ?>
captcha/captcha.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ PHP Captcha by Codepeople.net
4
+ http://www.codepeople.net
5
+ */
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
8
+
9
+ if (!ini_get("zlib.output_compression")) ob_clean();
10
+
11
+ header("Cache-Control: no-store, no-cache, must-revalidate");
12
+ header("Pragma: no-cache");
13
+
14
+ if (!isset($_GET["ps"])) $_GET["ps"] = '';
15
+ if (!isset($_GET["bcolor"]) || $_GET["bcolor"] == '') $_GET["bcolor"] = "FFFFFF";
16
+ if (!isset($_GET["border"]) || $_GET["border"] == '') $_GET["border"] = "000000";
17
+
18
+ //configuration
19
+ $imgX = ( isset($_GET["width"]) && is_numeric( $_GET["width"] ) )? $_GET["width"] : "180" ;
20
+ $imgY = ( isset($_GET["height"]) && is_numeric( $_GET["height"] ) )? $_GET["height"] : "60" ;
21
+
22
+ $letter_count = ( isset($_GET["letter_count"]) && is_numeric( $_GET["letter_count"] ) )? $_GET["letter_count"] : "5";
23
+ $min_size = ( isset($_GET["min_size"]) && is_numeric( $_GET["min_size"] ) )? $_GET["min_size"] : "35";
24
+ $max_size = ( isset($_GET["max_size"]) && is_numeric( $_GET["max_size"] ) )? $_GET["max_size"] : "45";
25
+ $noise = ( isset($_GET["noise"]) && is_numeric( $_GET["noise"] ) )? $_GET["noise"] : "200";
26
+ $noiselength = ( isset($_GET["noiselength"]) && is_numeric( $_GET["noiselength"] ) )? $_GET["noiselength"] : "5";
27
+ $bcolor = cpcff_decodeColor($_GET["bcolor"]);
28
+ $border = cpcff_decodeColor($_GET["border"]);
29
+
30
+ $noisecolor = 0xcdcdcd;
31
+ $random_noise_color= true;
32
+ $tcolor = cpcff_decodeColor("666666");
33
+ $random_text_color= true;
34
+
35
+ function cpcff_decodeColor($hexcolor)
36
+ {
37
+ $color = hexdec($hexcolor);
38
+ $c["b"] = $color % 256;
39
+ $color = $color / 256;
40
+ $c["g"] = $color % 256;
41
+ $color = $color / 256;
42
+ $c["r"] = $color % 256;
43
+ return $c;
44
+ }
45
+
46
+ function cpcff_similarColors($c1, $c2)
47
+ {
48
+ return sqrt( pow($c1["r"]-$c2["r"],2) + pow($c1["g"]-$c2["g"],2) + pow($c1["b"]-$c2["b"],2)) < 125;
49
+ }
50
+
51
+ if (function_exists('session_start')) @session_start();
52
+
53
+ function cpcff_make_seed() {
54
+ list($usec, $sec) = explode(' ', microtime());
55
+ return (float) $sec + ((float) $usec * 100000);
56
+ }
57
+ mt_srand(cpcff_make_seed());
58
+ $randval = mt_rand();
59
+
60
+ $str = "";
61
+ $length = 0;
62
+ for ($i = 0; $i < $letter_count; $i++) {
63
+ $str .= chr(mt_rand(97, 122))." ";
64
+ }
65
+ $_SESSION['rand_code'.$_GET["ps"]] = str_replace(" ", "", $str);
66
+
67
+ setCookie('rand_code'.$_GET["ps"], md5(str_replace(" ", "", $str)), time()+36000,"/");
68
+
69
+ $image = imagecreatetruecolor($imgX, $imgY);
70
+ $backgr_col = imagecolorallocate($image, $bcolor["r"],$bcolor["g"],$bcolor["b"]);
71
+ $border_col = imagecolorallocate($image, $border["r"],$border["g"],$border["b"]);
72
+
73
+ if ($random_text_color)
74
+ {
75
+ do
76
+ {
77
+ $selcolor = mt_rand(0,256*256*256);
78
+ } while ( cpcff_similarColors(cpcff_decodeColor($selcolor), $bcolor) );
79
+ $tcolor = cpcff_decodeColor($selcolor);
80
+ }
81
+
82
+ $text_col = imagecolorallocate($image, $tcolor["r"],$tcolor["g"],$tcolor["b"]);
83
+
84
+ imagefilledrectangle($image, 0, 0, $imgX, $imgY, $backgr_col);
85
+ imagerectangle($image, 0, 0, $imgX-1, $imgY-1, $border_col);
86
+ for ($i=0;$i<$noise;$i++)
87
+ {
88
+ if ($random_noise_color)
89
+ $color = mt_rand(0, 256*256*256);
90
+ else
91
+ $color = $noisecolor;
92
+ $x1 = mt_rand(2,$imgX-2);
93
+ $y1 = mt_rand(2,$imgY-2);
94
+ imageline ( $image, $x1, $y1, mt_rand($x1-$noiselength,$x1+$noiselength), mt_rand($y1-$noiselength,$y1+$noiselength), $color);
95
+ }
96
+
97
+
98
+ switch (@$_GET["font"]) {
99
+ case "font-2.ttf":
100
+ $selected_font = "font-2.ttf";
101
+ break;
102
+ case "font-3.ttf":
103
+ $selected_font = "font-3.ttf";
104
+ break;
105
+ case "font-4.ttf":
106
+ $selected_font = "font-4.ttf";
107
+ break;
108
+ default:
109
+ $selected_font = "font-1.ttf";
110
+ }
111
+
112
+ $font = dirname( __FILE__ ) . "/". $selected_font;
113
+
114
+ $font_size = rand($min_size, $max_size);
115
+
116
+ $angle = rand(-15, 15);
117
+
118
+ if (function_exists("imagettfbbox") && function_exists("imagettftext"))
119
+ {
120
+ $box = imagettfbbox($font_size, $angle, $font, $str);
121
+ $x = (int)($imgX - $box[4]) / 2;
122
+ $y = (int)($imgY - $box[5]) / 2;
123
+ imagettftext($image, $font_size, $angle, $x, $y, $text_col, $font, $str);
124
+ }
125
+ else if (function_exists("imageFtBBox") && function_exists("imageFTText"))
126
+ {
127
+ $box = imageFtBBox($font_size, $angle, $font, $str);
128
+ $x = (int)($imgX - $box[4]) / 2;
129
+ $y = (int)($imgY - $box[5]) / 2;
130
+ imageFTText ($image, $font_size, $angle, $x, $y, $text_col, $font, $str);
131
+ }
132
+ else
133
+ {
134
+ $angle = 0;
135
+ $font = 6;
136
+ $wf = ImageFontWidth(6) * strlen($str);
137
+ $hf = ImageFontHeight(6);
138
+ $x = (int)($imgX - $wf) / 2;
139
+ $y = (int)($imgY - $hf) / 2;
140
+ imagestring ( $image, $font, $x, $y, $str, $text_col);
141
+ }
142
+
143
+ header("Content-type: image/png");
144
+ imagepng($image);
145
+ imagedestroy ($image);
146
+ exit;
147
+ ?>
captcha/font-1.ttf ADDED
Binary file
captcha/font-2.ttf ADDED
Binary file
captcha/font-3.ttf ADDED
Binary file
captcha/font-4.ttf ADDED
Binary file
changelog.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ == OLD Changelog Entries ==
2
+
3
+ = 1.0 =
4
+ * First Contact Form to Email stable version released.
5
+ * More configuration options added on the contact form settings area.
6
+
classes/cp-base-class.inc.php ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if( !class_exists( 'CP_CFTEMAIL_BaseClass' ) ) {
4
+
5
+ class CP_CFTEMAIL_BaseClass {
6
+
7
+ protected $item = 1;
8
+
9
+ /** installation functions */
10
+ public function install($networkwide) {
11
+ global $wpdb;
12
+
13
+ if (function_exists('is_multisite') && is_multisite()) {
14
+ // check if it is a network activation - if so, run the activation function for each blog id
15
+ if ($networkwide) {
16
+ $old_blog = $wpdb->blogid;
17
+ // Get all blog ids
18
+ $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs"));
19
+ foreach ($blogids as $blog_id) {
20
+ switch_to_blog($blog_id);
21
+ $this->_install();
22
+ }
23
+ switch_to_blog($old_blog);
24
+ return;
25
+ }
26
+ }
27
+ $this->_install();
28
+ }
29
+
30
+ function get_param($key)
31
+ {
32
+ if (isset($_GET[$key]) && $_GET[$key] != '')
33
+ return $_GET[$key];
34
+ else if (isset($_POST[$key]) && $_POST[$key] != '')
35
+ return $_POST[$key];
36
+ else
37
+ return '';
38
+ }
39
+
40
+ function is_administrator()
41
+ {
42
+ return current_user_can('manage_options');
43
+ }
44
+
45
+ function get_site_url($admin = false)
46
+ {
47
+ $blog = get_current_blog_id();
48
+ if( $admin )
49
+ $url = get_admin_url( $blog );
50
+ else
51
+ $url = get_home_url( $blog );
52
+
53
+ $url = parse_url($url);
54
+ return rtrim(@$url["path"],"/");
55
+ }
56
+
57
+
58
+ function get_FULL_site_url($admin = false)
59
+ {
60
+ $blog = get_current_blog_id();
61
+ if( $admin )
62
+ $url = get_admin_url( $blog );
63
+ else
64
+ $url = get_home_url( $blog );
65
+
66
+ $url = parse_url($url);
67
+ $url = rtrim($url["path"],"/");
68
+ $pos = strpos($url, "://");
69
+ if ($pos === false)
70
+ $url = 'http://'.$_SERVER["HTTP_HOST"].$url;
71
+ return $url;
72
+ }
73
+
74
+ function cleanJSON ($str)
75
+ {
76
+ $str = str_replace('&qquot;','"',$str);
77
+ $str = str_replace(' ',' ',$str);
78
+ $str = str_replace("\n",'\n',$str);
79
+ $str = str_replace("\r",'',$str);
80
+ return $str;
81
+ }
82
+
83
+ function add_field_verify ($table, $field, $type = "text")
84
+ {
85
+ global $wpdb;
86
+
87
+ $results = $wpdb->get_results( $wpdb->prepare("SHOW columns FROM `".esc_sql($table)."` where field=%s", $field) );
88
+ if (!count($results))
89
+ {
90
+ $sql = "ALTER TABLE `".esc_sql($table)."` ADD `".esc_sql($field)."` ".$type;
91
+ $wpdb->query($sql);
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+
97
+
98
+
99
+ private $option_buffered_item = false;
100
+ private $option_buffered_id = -1;
101
+
102
+ function get_option ($field, $default_value = '')
103
+ {
104
+ global $wpdb;
105
+ if ($this->option_buffered_id == $this->item)
106
+ $value = @$this->option_buffered_item->$field;
107
+ else
108
+ {
109
+ $myrows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_items." WHERE id=%d", $this->item ) );
110
+ if (count($myrows))
111
+ {
112
+ $value = @$myrows[0]->$field;
113
+ $this->option_buffered_item = $myrows[0];
114
+ $this->option_buffered_id = $this->item;
115
+ }
116
+ else
117
+ $value = $default_value;
118
+ }
119
+ if ($value == '' && is_object($this->option_buffered_item) && $this->option_buffered_item->form_structure == '')
120
+ $value = $default_value;
121
+ return $value;
122
+ }
123
+
124
+
125
+ function getRealUserIP()
126
+ {
127
+ $client = @$_SERVER['HTTP_CLIENT_IP'];
128
+ $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
129
+ $remote = $_SERVER['REMOTE_ADDR'];
130
+
131
+ if(filter_var($client, FILTER_VALIDATE_IP))
132
+ {
133
+ $ip = $client;
134
+ }
135
+ elseif(filter_var($forward, FILTER_VALIDATE_IP))
136
+ {
137
+ $ip = $forward;
138
+ }
139
+ else
140
+ {
141
+ $ip = $remote;
142
+ }
143
+
144
+ return $ip;
145
+ }
146
+
147
+ } // end class
148
+
149
+ } // end if class exists
150
+
151
+ ?>
cp-admin-int-list.inc.php ADDED
@@ -0,0 +1,381 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !is_admin() )
4
+ {
5
+ echo 'Direct access not allowed.';
6
+ exit;
7
+ }
8
+
9
+ global $wpdb;
10
+ $message = "";
11
+ if (isset($_GET['a']) && $_GET['a'] == '1')
12
+ {
13
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_update_actions_plist');
14
+ if (!$verify_nonce)
15
+ {
16
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
17
+ return;
18
+ }
19
+
20
+ define('CP_CFEMAIL_DEFAULT_fp_from_email', get_the_author_meta('user_email', get_current_user_id()) );
21
+ define('CP_CFEMAIL_DEFAULT_fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_from_email);
22
+
23
+ $wpdb->insert( $wpdb->prefix.$this->table_items, array(
24
+ 'form_name' => stripcslashes($_GET["name"]),
25
+
26
+ 'form_structure' => $this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure),
27
+
28
+ 'fp_from_email' => $this->get_option('fp_from_email', CP_CFEMAIL_DEFAULT_fp_from_email),
29
+ 'fp_destination_emails' => $this->get_option('fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_destination_emails),
30
+ 'fp_subject' => $this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject),
31
+ 'fp_inc_additional_info' => $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info),
32
+ 'fp_return_page' => $this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page),
33
+ 'fp_message' => $this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message),
34
+ 'fp_emailformat' => $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format),
35
+
36
+ 'cu_enable_copy_to_user' => $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user),
37
+ 'cu_user_email_field' => $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field),
38
+ 'cu_subject' => $this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject),
39
+ 'cu_message' => $this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message),
40
+ 'cu_emailformat' => $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format),
41
+
42
+ 'vs_use_validation' => $this->get_option('vs_use_validation', CP_CFEMAIL_DEFAULT_vs_use_validation),
43
+ 'vs_text_is_required' => $this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required),
44
+ 'vs_text_is_email' => $this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email),
45
+ 'vs_text_datemmddyyyy' => $this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy),
46
+ 'vs_text_dateddmmyyyy' => $this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy),
47
+ 'vs_text_number' => $this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number),
48
+ 'vs_text_digits' => $this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits),
49
+ 'vs_text_max' => $this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max),
50
+ 'vs_text_min' => $this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min),
51
+
52
+ 'cv_enable_captcha' => $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha),
53
+ 'cv_width' => $this->get_option('cv_width', CP_CFEMAIL_DEFAULT_cv_width),
54
+ 'cv_height' => $this->get_option('cv_height', CP_CFEMAIL_DEFAULT_cv_height),
55
+ 'cv_chars' => $this->get_option('cv_chars', CP_CFEMAIL_DEFAULT_cv_chars),
56
+ 'cv_font' => $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font),
57
+ 'cv_min_font_size' => $this->get_option('cv_min_font_size', CP_CFEMAIL_DEFAULT_cv_min_font_size),
58
+ 'cv_max_font_size' => $this->get_option('cv_max_font_size', CP_CFEMAIL_DEFAULT_cv_max_font_size),
59
+ 'cv_noise' => $this->get_option('cv_noise', CP_CFEMAIL_DEFAULT_cv_noise),
60
+ 'cv_noise_length' => $this->get_option('cv_noise_length', CP_CFEMAIL_DEFAULT_cv_noise_length),
61
+ 'cv_background' => $this->get_option('cv_background', CP_CFEMAIL_DEFAULT_cv_background),
62
+ 'cv_border' => $this->get_option('cv_border', CP_CFEMAIL_DEFAULT_cv_border),
63
+ 'cv_text_enter_valid_captcha' => $this->get_option('cv_text_enter_valid_captcha', CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha)
64
+ )
65
+ );
66
+
67
+ $message = "Item added";
68
+ }
69
+ else if (isset($_GET['u']) && $_GET['u'] != '')
70
+ {
71
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_update_actions_plist');
72
+ if (!$verify_nonce)
73
+ {
74
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
75
+ return;
76
+ }
77
+ $wpdb->query( $wpdb->prepare( 'UPDATE `'.$wpdb->prefix.$this->table_items.'` SET form_name=%s WHERE id=%d', $_GET["name"], $_GET['u'] ) );
78
+ $message = "Item updated";
79
+ }
80
+ else if (isset($_GET['d']) && $_GET['d'] != '')
81
+ {
82
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_update_actions_plist');
83
+ if (!$verify_nonce)
84
+ {
85
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
86
+ return;
87
+ }
88
+ $wpdb->query( $wpdb->prepare( 'DELETE FROM `'.$wpdb->prefix.$this->table_items.'` WHERE id=%d', intval($_GET['d']) ) );
89
+ $message = "Item deleted";
90
+ } else if (isset($_GET['c']) && $_GET['c'] != '')
91
+ {
92
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_update_actions_plist');
93
+ if (!$verify_nonce)
94
+ {
95
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
96
+ return;
97
+ }
98
+ $myrows = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_items." WHERE id=%d", $_GET['c'] ), ARRAY_A);
99
+ unset($myrows["id"]);
100
+ $myrows["form_name"] = 'Cloned: '.$myrows["form_name"];
101
+ $wpdb->insert( $wpdb->prefix.$this->table_items, $myrows);
102
+ $message = "Item duplicated/cloned";
103
+ }
104
+ else if (isset($_GET['ac']) && $_GET['ac'] == 'st')
105
+ {
106
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_update_actions_plist');
107
+ if (!$verify_nonce)
108
+ {
109
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
110
+ return;
111
+ }
112
+ update_option( 'CP_CFTE_LOAD_SCRIPTS', ($_GET["scr"]=="1"?"0":"1") );
113
+ if ($_GET["chs"] != '')
114
+ {
115
+ $target_charset = esc_sql($_GET["chs"]);
116
+ $tables = array( $wpdb->prefix.$this->table_messages, $wpdb->prefix.$this->table_items );
117
+ foreach ($tables as $tab)
118
+ {
119
+ $myrows = $wpdb->get_results( "DESCRIBE {$tab}" );
120
+ foreach ($myrows as $item)
121
+ {
122
+ $name = $item->Field;
123
+ $type = $item->Type;
124
+ if (preg_match("/^varchar\((\d+)\)$/i", $type, $mat) || !strcasecmp($type, "CHAR") || !strcasecmp($type, "TEXT") || !strcasecmp($type, "MEDIUMTEXT"))
125
+ {
126
+ $wpdb->query("ALTER TABLE {$tab} CHANGE {$name} {$name} {$type} COLLATE {$target_charset}");
127
+ }
128
+ }
129
+ }
130
+ }
131
+ $message = "Troubleshoot settings updated";
132
+ }
133
+ else if (isset($_POST["cp_cfte_rep_enable"]))
134
+ {
135
+ update_option( 'cp_cfte_rep_enable', $_POST["cp_cfte_rep_enable"]);
136
+ update_option( 'cp_cfte_rep_days', $_POST["cp_cfte_rep_days"]);
137
+ update_option( 'cp_cfte_rep_hour', $_POST["cp_cfte_rep_hour"]);
138
+ update_option( 'cp_cfte_rep_emails', $_POST["cp_cfte_rep_emails"]);
139
+ update_option( 'cp_cfte_fp_from_email', $_POST["cp_cfte_fp_from_email"]);
140
+ update_option( 'cp_cfte_rep_subject', $_POST["cp_cfte_rep_subject"]);
141
+ update_option( 'cp_cfte_rep_emailformat', $_POST["cp_cfte_rep_emailformat"]);
142
+ update_option( 'cp_cfte_rep_message', $_POST["cp_cfte_rep_message"]);
143
+ $message = "Report settings updated";
144
+ }
145
+
146
+
147
+ if ($message) echo "<div id='setting-error-settings_updated' class='updated settings-error'><p><strong>".$message."</strong></p></div>";
148
+
149
+ $nonce = wp_create_nonce( 'cfte_update_actions_plist' );
150
+
151
+ ?>
152
+ <div class="wrap">
153
+ <h1><?php echo $this->plugin_name; ?></h1>
154
+
155
+ <script type="text/javascript">
156
+ function cp_addItem()
157
+ {
158
+ var calname = document.getElementById("cp_itemname").value;
159
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&a=1&r='+Math.random()+'&name='+encodeURIComponent(calname);
160
+ }
161
+
162
+ function cp_updateItem(id)
163
+ {
164
+ var calname = document.getElementById("calname_"+id).value;
165
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&u='+id+'&r='+Math.random()+'&name='+encodeURIComponent(calname);
166
+ }
167
+
168
+ function cp_cloneItem(id)
169
+ {
170
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&c='+id+'&r='+Math.random();
171
+ }
172
+
173
+ function cp_manageSettings(id)
174
+ {
175
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&cal='+id+'&r='+Math.random();
176
+ }
177
+
178
+ function cp_viewMessages(id)
179
+ {
180
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&cal='+id+'&list=1&r='+Math.random();
181
+ }
182
+
183
+ function cp_viewReport(id)
184
+ {
185
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&cal='+id+'&report=1&r='+Math.random();
186
+ }
187
+
188
+ function cp_deleteItem(id)
189
+ {
190
+ if (confirm('Are you sure that you want to delete this item?'))
191
+ {
192
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&d='+id+'&r='+Math.random();
193
+ }
194
+ }
195
+
196
+ function cp_updateConfig()
197
+ {
198
+ if (confirm('Are you sure that you want to update these settings?'))
199
+ {
200
+ var scr = document.getElementById("ccscriptload").value;
201
+ var chs = document.getElementById("cccharsets").value;
202
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&ac=st&scr='+scr+'&chs='+chs+'&r='+Math.random();
203
+ }
204
+ }
205
+
206
+ </script>
207
+
208
+
209
+ <div id="normal-sortables" class="meta-box-sortables">
210
+
211
+
212
+ <div id="metabox_basic_settings" class="postbox" >
213
+ <h3 class='hndle' style="padding:5px;"><span>Form List / Items List</span></h3>
214
+ <div class="inside">
215
+
216
+
217
+ <table cellspacing="10">
218
+ <tr>
219
+ <th align="left">ID</th><th align="left">Form Name</th><th align="left">&nbsp; &nbsp; Options</th><th align="left">Shorttag for Pages and Posts</th>
220
+ </tr>
221
+ <?php
222
+
223
+ $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_items );
224
+ foreach ($myrows as $item)
225
+ {
226
+ ?>
227
+ <tr>
228
+ <td nowrap><?php echo $item->id; ?></td>
229
+ <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>
230
+
231
+ <td nowrap>&nbsp; &nbsp;
232
+ <input type="button" name="calupdate_<?php echo $item->id; ?>" value="Update" onclick="cp_updateItem(<?php echo $item->id; ?>);" /> &nbsp;
233
+ <input type="button" name="calmanage_<?php echo $item->id; ?>" value="Settings" onclick="cp_manageSettings(<?php echo $item->id; ?>);" /> &nbsp;
234
+ <input type="button" name="calmessages_<?php echo $item->id; ?>" value="Messages" onclick="cp_viewMessages(<?php echo $item->id; ?>);" /> &nbsp;
235
+ <input type="button" name="calreport_<?php echo $item->id; ?>" value="Reports" onclick="cp_viewReport(<?php echo $item->id; ?>);" /> &nbsp;
236
+ <input type="button" name="calclone_<?php echo $item->id; ?>" value="Clone" onclick="cp_cloneItem(<?php echo $item->id; ?>);" /> &nbsp;
237
+ <input type="button" name="caldelete_<?php echo $item->id; ?>" value="Delete" onclick="cp_deleteItem(<?php echo $item->id; ?>);" />
238
+ </td>
239
+ <td nowrap>[<?php echo $this->shorttag; ?> id="<?php echo $item->id; ?>"]</td>
240
+ </tr>
241
+ <?php
242
+ }
243
+ ?>
244
+
245
+ </table>
246
+
247
+
248
+
249
+ </div>
250
+ </div>
251
+
252
+
253
+ <div id="metabox_basic_settings" class="postbox" >
254
+ <h3 class='hndle' style="padding:5px;"><span>New Form</span></h3>
255
+ <div class="inside">
256
+
257
+ <form name="additem" onsubmit="cp_addItem();return false;">
258
+ Item Name:<br />
259
+ <input type="text" name="cp_itemname" id="cp_itemname" value="" /> <input type="button" onclick="cp_addItem();" name="gobtn" value="Add" />
260
+ <br /><br />
261
+ </form>
262
+
263
+ </div>
264
+ </div>
265
+
266
+
267
+ <div id="metabox_basic_settings" class="postbox" >
268
+ <h3 class='hndle' style="padding:5px;"><span>Automatic email reports for ALL forms: Send submissions in CSV format via email</span></h3>
269
+ <div class="inside">
270
+ <form name="updatereportsettings" action="" method="post">
271
+ <table class="form-table">
272
+ <tr valign="top">
273
+ <td scope="row" colspan="2">Enable Reports?
274
+ <?php $option = get_option('cp_cfte_rep_enable', 'no'); ?>
275
+ <select name="cp_cfte_rep_enable">
276
+ <option value="no"<?php if ($option == 'no' || $option == '') echo ' selected'; ?>>No</option>
277
+ <option value="yes"<?php if ($option == 'yes') echo ' selected'; ?>>Yes</option>
278
+ </select>
279
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
280
+ Send report every: <input type="text" name="cp_cfte_rep_days" size="1" value="<?php echo esc_attr(get_option('cp_cfte_rep_days', '7')); ?>" /> days
281
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
282
+ Send after this hour (server time):
283
+ <select name="cp_cfte_rep_hour">
284
+ <?php
285
+ $hour = get_option('cp_cfte_rep_hour', '0');
286
+ for ($k=0;$k<24;$k++)
287
+ echo '<option value="'.$k.'"'.($hour==$k?' selected':'').'>'.($k<10?'0':'').$k.'</option>';
288
+ ?>
289
+ </select>
290
+ </td>
291
+ <tr valign="top">
292
+ <th scope="row">Send email from</th>
293
+ <td><input type="text" name="cp_cfte_fp_from_email" size="70" value="<?php echo esc_attr(get_option('cp_cfte_fp_from_email', get_the_author_meta('user_email', get_current_user_id()) )); ?>" /></td>
294
+ </tr>
295
+ <tr valign="top">
296
+ <th scope="row">Send to email(s)</th>
297
+ <td><input type="text" name="cp_cfte_rep_emails" size="70" value="<?php echo esc_attr(get_option('cp_cfte_rep_emails', '')); ?>" /></td>
298
+ </tr>
299
+ <tr valign="top">
300
+ <th scope="row">Email subject</th>
301
+ <td><input type="text" name="cp_cfte_rep_subject" size="70" value="<?php echo esc_attr(get_option('cp_cfte_rep_subject', 'Submissions report...')); ?>" /></td>
302
+ </tr>
303
+ <tr valign="top">
304
+ <th scope="row">Email format?</th>
305
+ <td>
306
+ <?php $option = get_option('cp_cfte_rep_emailformat', 'text'); ?>
307
+ <select name="cp_cfte_rep_emailformat">
308
+ <option value="text"<?php if ($option != 'html') echo ' selected'; ?>>Plain Text (default)</option>
309
+ <option value="html"<?php if ($option == 'html') echo ' selected'; ?>>HTML (use html in the textarea below)</option>
310
+ </select>
311
+ </td>
312
+ </tr>
313
+ <tr valign="top">
314
+ <th scope="row">Email Text (CSV file will be attached)</th>
315
+ <td><textarea type="text" name="cp_cfte_rep_message" rows="3" cols="80"><?php echo htmlspecialchars(get_option('cp_cfte_rep_message', 'Attached you will find the data from the form submissions.')); ?></textarea></td>
316
+ </tr>
317
+ <tr valign="top">
318
+ <th scope="row"></th>
319
+ <td><input type="submit" name="cftesubbtn" value="Update Report Settings" /></td>
320
+ </tr>
321
+ </table>
322
+ <p>Note: For setting up a report only for a specific form use the setting area available for that when editing each form settings.</p>
323
+ </form>
324
+ </div>
325
+ </div>
326
+
327
+
328
+ <div id="metabox_basic_settings" class="postbox" >
329
+ <h3 class='hndle' style="padding:5px;"><span>Troubleshoot Area</span></h3>
330
+ <div class="inside">
331
+ <p><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.</p>
332
+ <form name="updatesettings">
333
+ Script load method:<br />
334
+ <select id="ccscriptload" name="ccscriptload">
335
+ <option value="0" <?php if (get_option('CP_CFTE_LOAD_SCRIPTS',"1") == "1") echo 'selected'; ?>>Classic (Recommended)</option>
336
+ <option value="1" <?php if (get_option('CP_CFTE_LOAD_SCRIPTS',"1") != "1") echo 'selected'; ?>>Direct</option>
337
+ </select><br />
338
+ <em>* Change the script load method if the form doesn't appear in the public website.</em>
339
+
340
+ <br /><br />
341
+ Character encoding:<br />
342
+ <select id="cccharsets" name="cccharsets">
343
+ <option value="">Keep current charset (Recommended)</option>
344
+ <option value="utf8_general_ci">UTF-8 (try this first)</option>
345
+ <option value="latin1_swedish_ci">latin1_swedish_ci</option>
346
+ <option value="hebrew_general_ci">hebrew_general_ci</option>
347
+ <option value="gb2312_chinese_ci">gb2312_chinese_ci</option>
348
+ </select><br />
349
+ <em>* Update the charset if you are getting problems displaying special/non-latin characters. After updated you need to edit the special characters again.</em>
350
+ <br />
351
+ <input type="button" onclick="cp_updateConfig();" name="gobtn" value="UPDATE" />
352
+ <br /><br />
353
+ </form>
354
+
355
+ </div>
356
+ </div>
357
+
358
+
359
+ <script type="text/javascript">
360
+ function cp_editArea(id)
361
+ {
362
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&edit=1&cal=1&item='+id+'&r='+Math.random();
363
+ }
364
+ </script>
365
+ <div id="metabox_basic_settings" class="postbox" >
366
+ <h3 class='hndle' style="padding:5px;"><span>Customization Area</span></h3>
367
+ <div class="inside">
368
+ <p>Use this area to add custom CSS styles or custom scripts. These styles and scripts will be keep safe even after updating the plugin.</p>
369
+ <input type="button" onclick="cp_editArea('css');" name="gobtn3" value="Add Custom Styles" />
370
+ &nbsp; &nbsp; &nbsp;
371
+ <input type="button" onclick="cp_editArea('js');" name="gobtn2" value="Add Custom JavaScript" />
372
+ </div>
373
+ </div>
374
+
375
+
376
+ </div>
377
+
378
+
379
+ [<a href="https://wordpress.org/support/plugin/contact-form-to-email#new-post" target="_blank">Support</a>] | [<a href="<?php echo $this->plugin_URL; ?>" target="_blank">Help</a>]
380
+ </form>
381
+ </div>
cp-admin-int-message-list.inc.php ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !is_admin() )
4
+ {
5
+ echo 'Direct access not allowed.';
6
+ exit;
7
+ }
8
+
9
+ $this->item = intval($_GET["cal"]);
10
+
11
+ global $wpdb;
12
+
13
+ $message = "";
14
+
15
+ if (isset($_GET['ld']) && $_GET['ld'] != '')
16
+ {
17
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_message_actions_plist');
18
+ if (!$verify_nonce)
19
+ {
20
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
21
+ return;
22
+ }
23
+ $wpdb->query( $wpdb->prepare( 'DELETE FROM `'.$wpdb->prefix.$this->table_messages.'` WHERE id=%d', intval($_GET['ld']) ) );
24
+ $message = "Item deleted";
25
+ }
26
+ else if (isset($_GET['import']) && $_GET['import'] == '1')
27
+ {
28
+ $verify_nonce = wp_verify_nonce( $_GET['rsave'], 'cfte_message_actions_plist');
29
+ if (!$verify_nonce)
30
+ {
31
+ echo 'Error: Form cannot be authenticated (nonce failed). Please contact our <a href="form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
32
+ return;
33
+ }
34
+ $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)));
35
+ $form = $form[0];
36
+
37
+ if (($handle = fopen($_FILES['importfile']['tmp_name'], "r")) !== FALSE) {
38
+ while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
39
+ $rowdata = array();
40
+ $formatted_data = '';
41
+ $num = count($data);
42
+ $row++;
43
+
44
+ $time = strip_tags($data[0]);
45
+ $ip = strip_tags($data[1]);
46
+ $email = strip_tags($data[2]);
47
+
48
+ for ($c=3; $c < $num; $c++)
49
+ if (isset($form[$c-3]))
50
+ {
51
+ $rowdata[$form[$c-3]->name] = $data[$c];
52
+ $formatted_data .= $form[$c-3]->title. ": ". $data[$c] . "\n\n";
53
+ }
54
+ $wpdb->insert($wpdb->prefix.$this->table_messages, array(
55
+ 'formid' => $this->item,
56
+ 'time' => $time,
57
+ 'ipaddr' => $ip,
58
+ 'notifyto' => $email,
59
+ 'data' => $formatted_data,
60
+ 'posted_data' => serialize($rowdata),
61
+ ));
62
+ }
63
+ fclose($handle);
64
+ }
65
+ $message = "CSV File Imported.";
66
+ }
67
+
68
+ if ($this->item != 0)
69
+ $myform = $wpdb->get_results( $wpdb->prepare( 'SELECT * FROM '.$wpdb->prefix.$this->table_items .' WHERE id=%d', intval($this->item) ) );
70
+
71
+ $current_page = intval($_GET["p"]);
72
+ if (!$current_page) $current_page = 1;
73
+ $records_per_page = 50;
74
+
75
+ $cond = '';
76
+ if ($_GET["search"] != '') $cond .= " AND (data like '%".esc_sql($_GET["search"])."%' OR posted_data LIKE '%".esc_sql($_GET["search"])."%')";
77
+ if ($_GET["dfrom"] != '') $cond .= " AND (`time` >= '".esc_sql($_GET["dfrom"])."')";
78
+ if ($_GET["dto"] != '') $cond .= " AND (`time` <= '".esc_sql($_GET["dto"])." 23:59:59')";
79
+ if ($this->item != 0) $cond .= " AND formid=".intval($this->item);
80
+
81
+ $events = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE 1=1 ".$cond." ORDER BY `time` DESC" );
82
+ $total_pages = ceil(count($events) / $records_per_page);
83
+
84
+ if ($message) echo "<div id='setting-error-settings_updated' class='updated settings-error'><p><strong>".$message."</strong></p></div>";
85
+
86
+ $nonce = wp_create_nonce( 'cfte_message_actions_plist' );
87
+
88
+ ?>
89
+ <script type="text/javascript">
90
+ function cp_deleteMessageItem(id)
91
+ {
92
+ if (confirm('Are you sure that you want to delete this item?'))
93
+ {
94
+ document.location = 'admin.php?page=<?php echo $this->menu_parameter; ?>&rsave=<?php echo $nonce; ?>&cal=<?php echo $this->item; ?>&list=1&ld='+id+'&r='+Math.random();
95
+ }
96
+ }
97
+ </script>
98
+ <div class="wrap">
99
+ <h1><?php echo $this->plugin_name; ?> - Message List</h1>
100
+
101
+ <input type="button" name="backbtn" value="Back to items list..." onclick="document.location='admin.php?page=<?php echo $this->menu_parameter; ?>';">
102
+
103
+
104
+ <div id="normal-sortables" class="meta-box-sortables">
105
+ <hr />
106
+ <h3>This message list is from: <?php if ($this->item != 0) echo strip_tags($myform[0]->form_name); else echo 'All forms'; ?></h3>
107
+ </div>
108
+
109
+
110
+ <form action="admin.php" method="get">
111
+ <input type="hidden" name="page" value="<?php echo $this->menu_parameter; ?>" />
112
+ <input type="hidden" name="cal" value="<?php echo $this->item; ?>" />
113
+ <input type="hidden" name="list" value="1" />
114
+ <nobr>Search for: <input type="text" name="search" value="<?php echo esc_attr($_GET["search"]); ?>" /> &nbsp; &nbsp; &nbsp;</nobr>
115
+ <nobr>From: <input type="text" id="dfrom" name="dfrom" value="<?php echo esc_attr($_GET["dfrom"]); ?>" /> &nbsp; &nbsp; &nbsp; </nobr>
116
+ <nobr>To: <input type="text" id="dto" name="dto" value="<?php echo esc_attr($_GET["dto"]); ?>" /> &nbsp; &nbsp; &nbsp; </nobr>
117
+ <nobr>Item: <select id="cal" name="cal">
118
+ <option value="0">[All Items]</option>
119
+ <?php
120
+ $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_items );
121
+ foreach ($myrows as $item)
122
+ echo '<option value="'.$item->id.'"'.(intval($item->id)==intval($this->item)?" selected":"").'>'.strip_tags($item->form_name).'</option>';
123
+ ?>
124
+ </select></nobr>
125
+ <nobr><span class="submit"><input type="submit" name="ds" value="Filter" /></span> &nbsp; &nbsp; &nbsp;
126
+ <span class="submit"><input type="submit" name="<?php echo $this->prefix; ?>_csv" value="Export to CSV" /></span></nobr>
127
+ </form>
128
+
129
+ <br />
130
+
131
+ <?php
132
+
133
+
134
+ echo paginate_links( array(
135
+ 'base' => 'admin.php?page='.$this->menu_parameter.'&cal='.$this->item.'&list=1%_%&dfrom='.urlencode($_GET["dfrom"]).'&dto='.urlencode($_GET["dto"]).'&search='.urlencode($_GET["search"]),
136
+ 'format' => '&p=%#%',
137
+ 'total' => $total_pages,
138
+ 'current' => $current_page,
139
+ 'show_all' => False,
140
+ 'end_size' => 1,
141
+ 'mid_size' => 2,
142
+ 'prev_next' => True,
143
+ 'prev_text' => __('&laquo; Previous','contact-form-to-email'),
144
+ 'next_text' => __('Next &raquo;','contact-form-to-email'),
145
+ 'type' => 'plain',
146
+ 'add_args' => False
147
+ ) );
148
+
149
+ ?>
150
+
151
+ <div id="dex_printable_contents">
152
+ <table class="wp-list-table widefat fixed pages" cellspacing="0" width="100%">
153
+ <thead>
154
+ <tr>
155
+ <th style="padding-left:7px;font-weight:bold;width:120px;">Date</th>
156
+ <th style="padding-left:7px;font-weight:bold;">Email</th>
157
+ <th style="padding-left:7px;font-weight:bold;">Message</th>
158
+ <th style="padding-left:7px;font-weight:bold;width:80px;" nowrap class="cpnopr">Options</th>
159
+ </tr>
160
+ </thead>
161
+ <tbody id="the-list">
162
+ <?php for ($i=($current_page-1)*$records_per_page; $i<$current_page*$records_per_page; $i++) if (isset($events[$i])) { ?>
163
+ <tr class='<?php if (!($i%2)) { ?>alternate <?php } ?>author-self status-draft format-default iedit' valign="top">
164
+ <td><?php echo substr($events[$i]->time,0,16); ?></td>
165
+ <td><?php echo htmlentities($events[$i]->notifyto); ?></td>
166
+ <td><?php
167
+ $data = $events[$i]->data;
168
+ $posted_data = unserialize($events[$i]->posted_data);
169
+ foreach ($posted_data as $item => $value)
170
+ if (strpos($item,"_url") && $value != '')
171
+ {
172
+ $data = str_replace ($posted_data[str_replace("_url","",$item)],'<a href="'.$value.'" target="_blank">'.$posted_data[str_replace("_url","",$item)].'</a><br />',$data);
173
+ }
174
+ echo str_replace("\n","<br />",str_replace('<','&lt;',$data));
175
+ ?></td>
176
+ <td class="cpnopr">
177
+ <input type="button" name="caldelete_<?php echo $events[$i]->id; ?>" value="Delete" onclick="cp_deleteMessageItem(<?php echo $events[$i]->id; ?>);" />
178
+ </td>
179
+ </tr>
180
+ <?php } ?>
181
+ </tbody>
182
+ </table>
183
+ </div>
184
+
185
+ <p class="submit"><input type="button" name="pbutton" value="Print" onclick="do_dexapp_print();" /></p>
186
+
187
+ </div>
188
+
189
+ <?php if ($this->item) { ?>
190
+ <div id="normal-sortables" class="meta-box-sortables">
191
+
192
+ <div id="metabox_basic_settings" class="postbox" >
193
+ <h3 class='hndle' style="padding:5px;"><span>Import CSV File</span></h3>
194
+ <div class="inside">
195
+
196
+ <form name="CPImportForm" action="admin.php?page=cp_contactformtoemail&rsave=<?php echo $nonce; ?>&cal=<?php echo $this->item; ?>&list=1&import=1" method="post" enctype="multipart/form-data">
197
+ <input type="file" name="importfile" />
198
+ <input type="submit" name="pbuttonimport" value="Import"/>
199
+ <p>Instructions: Comma separated CSV file. One record per line, one field per column. <strong>Don't use a header row with the field names</strong>.</p>
200
+ <p>The first 3 columns into the CSV file are the <strong>time, IP address and email address</strong>, if you don't have this information then leave the first three columns empty.
201
+ After those initial columns the fields (columns) must appear in the same order than in the form.</p>
202
+ <p>Sample format for the CSV file:</p>
203
+ <pre>
204
+ <span style="color:#009900;">2017-03-21 18:50:00, 192.168.1.12, john@sample.com,</span> "john@sample.com", "sample subject", "sample message text"
205
+ <span style="color:#009900;">2017-04-16 20:49:00, 192.168.1.24, jane.smith@sample.com,</span> "jane.smith@sample.com", "other subject", "other message"
206
+ </pre>
207
+ </form>
208
+ </div>
209
+ </div>
210
+ <?php } ?>
211
+
212
+ <script type="text/javascript">
213
+ function do_dexapp_print()
214
+ {
215
+ w=window.open();
216
+ w.document.write("<style>.cpnopr{display:none;};table{border:2px solid black;width:100%;}th{border-bottom:2px solid black;text-align:left}td{padding-left:15px;border-bottom:1px solid black;}</style>"+document.getElementById('dex_printable_contents').innerHTML);
217
+ w.print();
218
+ w.close();
219
+ }
220
+
221
+ var $j = jQuery.noConflict();
222
+ $j(function() {
223
+ $j("#dfrom").datepicker({
224
+ dateFormat: 'yy-mm-dd'
225
+ });
226
+ $j("#dto").datepicker({
227
+ dateFormat: 'yy-mm-dd'
228
+ });
229
+ });
230
+
231
+ </script>
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
cp-admin-int-report.inc.php ADDED
@@ -0,0 +1,326 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !is_admin() )
4
+ {
5
+ echo 'Direct access not allowed.';
6
+ exit;
7
+ }
8
+
9
+ $this->item = intval($_GET["cal"]);
10
+
11
+ global $wpdb;
12
+
13
+ if ($this->item != 0)
14
+ $myform = $wpdb->get_results( $wpdb->prepare( 'SELECT * FROM '.$wpdb->prefix.$this->table_items .' WHERE id=%d', $this->item ) );
15
+
16
+ $date_start = '';
17
+ $date_end = '';
18
+
19
+ $cond = '';
20
+ if ($_GET["search"] != '') $cond .= " AND (data like '%".esc_sql($_GET["search"])."%' OR posted_data LIKE '%".esc_sql($_GET["search"])."%')";
21
+ if ($_GET["dfrom"] != '')
22
+ {
23
+ $cond .= " AND (`time` >= '".esc_sql($_GET["dfrom"])."')";
24
+ $date_start = strip_tags($_GET["dfrom"]);
25
+ }
26
+ if ($_GET["dto"] != '')
27
+ {
28
+ $cond .= " AND (`time` <= '".esc_sql($_GET["dto"])." 23:59:59')";
29
+ $date_end = strip_tags($_GET["dto"]);
30
+ }
31
+ if (isset($_GET["field"])) $_GET["field"] = strip_tags($_GET["field"]);
32
+ if ($this->item != 0) $cond .= " AND formid=".intval($this->item);
33
+
34
+ $events = $wpdb->get_results( "SELECT ipaddr,time,notifyto,posted_data FROM ".$wpdb->prefix.$this->table_messages." WHERE 1=1 ".$cond." ORDER BY `time` DESC" );
35
+
36
+ // general initialization
37
+ $fields = array();
38
+ $fields["date"] = array();
39
+ $fields["ip"] = array();
40
+ $fields["notifyto"] = array();
41
+ foreach ($events as $item)
42
+ {
43
+ $fields["date"]["k".substr($item->time,0,10)]++;
44
+ $fields["time"]["k".substr($item->time,11,2)]++;
45
+ $fields["notifyto"]["k".$item->notifyto]++;
46
+ $fields["ip"]["k".$item->ipaddr]++;
47
+ $params = unserialize($item->posted_data);
48
+ foreach ($params as $param => $value)
49
+ if (strlen($value) < 100)
50
+ $fields[$param]["k".$value]++;
51
+ }
52
+
53
+
54
+ // line graphs
55
+ $hourly_messages = '';
56
+ for ($i=0;$i<=23;$i++)
57
+ if (isset($fields['time']['k'.($i<10?'0':'').$i]))
58
+ $hourly_messages .= $fields['time']['k'.($i<10?'0':'').$i].($i<23?',':'');
59
+ else
60
+ $hourly_messages .='0'.($i<23?',':'');
61
+
62
+ if ($date_start == '')
63
+ $date_start = substr(min(array_keys($fields["date"])),1);
64
+ if ($date_end == '')
65
+ $date_end = substr(max(array_keys($fields["date"])),1);
66
+
67
+ $daily_messages = '';
68
+ $date = $date_start;
69
+ while ($date <= $date_end)
70
+ {
71
+ if (isset($fields['date']['k'.$date]))
72
+ $daily_messages .= ','.$fields['date']['k'.$date];
73
+ else
74
+ $daily_messages .=',0';
75
+ $date = date("Y-m-d",strtotime($date." +1 day"));
76
+ }
77
+ $daily_messages = substr($daily_messages,1);
78
+
79
+ if (!isset($_GET["field"])) $_GET["field"] = 'time';
80
+
81
+ $color_array = array(/**'ff0000',*/'ff4500','ff6347','f08080', 'ff7f50', 'ff8c00', 'ffa500', 'ffa07a', 'fa8072', 'e9967a', 'f5deb3', 'ffe4c4', 'ffebcd', 'ffefd5');
82
+
83
+
84
+ if ($this->item)
85
+ {
86
+ $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)));
87
+ $form = $form[0];
88
+ }
89
+ else
90
+ $form = array();
91
+
92
+ ?>
93
+
94
+ <div class="wrap">
95
+ <h1><?php echo $this->plugin_name; ?> - Report</h1>
96
+
97
+ <input type="button" name="backbtn" value="Back to items list..." onclick="document.location='admin.php?page=<?php echo $this->menu_parameter; ?>';">
98
+
99
+ <div id="normal-sortables" class="meta-box-sortables">
100
+ <hr />
101
+ <h3>This report is for: <?php if ($this->item != 0) echo $myform[0]->form_name; else echo 'All forms'; ?></h3>
102
+ </div>
103
+
104
+
105
+ <form action="admin.php" method="get">
106
+ <input type="hidden" name="page" value="<?php echo $this->menu_parameter; ?>" />
107
+ <input type="hidden" name="cal" value="<?php echo esc_attr($this->item); ?>" />
108
+ <input type="hidden" name="report" value="1" />
109
+ <input type="hidden" name="field" value="<?php echo esc_attr(strip_tags($_GET["field"])); ?>" />
110
+ <nobr>Search for: <input type="text" name="search" value="<?php echo esc_attr(strip_tags($_GET["search"])); ?>" /> &nbsp; &nbsp; &nbsp;</nobr>
111
+ <nobr>From: <input type="text" id="dfrom" name="dfrom" value="<?php echo esc_attr(strip_tags($_GET["dfrom"])); ?>" /> &nbsp; &nbsp; &nbsp; </nobr>
112
+ <nobr>To: <input type="text" id="dto" name="dto" value="<?php echo esc_attr(strip_tags($_GET["dto"])); ?>" /> &nbsp; &nbsp; &nbsp; </nobr>
113
+ <nobr>Item: <select id="cal" name="cal">
114
+ <option value="0">[All Items]</option>
115
+ <?php
116
+ $myrows = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_items );
117
+ foreach ($myrows as $item)
118
+ echo '<option value="'.$item->id.'"'.(intval($item->id)==intval($this->item)?" selected":"").'>'.$item->form_name.'</option>';
119
+ ?>
120
+ </select></nobr>
121
+ <nobr><span class="submit"><input type="submit" name="ds" value="Filter" /></span> &nbsp; &nbsp; &nbsp;
122
+ <span class="submit"><input type="submit" name="<?php echo $this->prefix; ?>_csv" value="Export to CSV" /></span></nobr>
123
+ </form>
124
+
125
+ <br />
126
+
127
+ <div style="border:1px solid black;width:320px;margin-right:10px;padding:0px;float:left;">
128
+ <div style="border-bottom:1px solid black;padding:5px;background:#ECECEC;color:#21759B;font-weight: bold;">
129
+ Submissions per day
130
+ </div>
131
+ <div class="canvas" id="cardiocontainer1" style="margin-left:10px;position:relative;">
132
+ <canvas id="cardio1" width="300" height="200" questions='[{"color":"#00f","values":[<?php echo $daily_messages; ?>]}]'></canvas>
133
+ </div>
134
+ <div style="padding-right:5px;padding-left:5px;color:#888888;">* Submissions per day in the selected date range.<br />&nbsp;&nbsp; Days from <?php echo strip_tags($date_start); ?> to <?php echo strip_tags($date_end); ?>.</div>
135
+ </div>
136
+
137
+ <div style="border:1px solid black;width:330px;margin:0px;padding:0px;float:left;">
138
+ <div style="border-bottom:1px solid black;padding:5px;background:#ECECEC;color:#21759B;font-weight: bold;">
139
+ Submissions per hour
140
+ </div>
141
+ <div class="canvas" id="cardiocontainer2" style="margin-left:10px;position:relative;">
142
+ <canvas id="cardio2" width="312" height="200" questions='[{"color":"#00f","values":[<?php echo $hourly_messages; ?>]}]'></canvas>
143
+ </div>
144
+ <div style="padding-right:5px;padding-left:5px;color:#888888;">* Total submissions per hour in the selected date range.<br />&nbsp;&nbsp; Hours from 0 to 23.</div>
145
+ </div>
146
+
147
+
148
+ <div style="clear:both"></div>
149
+
150
+ <hr />
151
+ <br />
152
+ <form action="admin.php" name="cfm_formrep" method="get">
153
+ <input type="hidden" name="page" value="<?php echo $this->menu_parameter; ?>" />
154
+ <input type="hidden" name="cal" value="<?php echo esc_attr(strip_tags($this->item)); ?>" />
155
+ <input type="hidden" name="report" value="1" />
156
+ <input type="hidden" name="search" value="<?php echo esc_attr(strip_tags($_GET["search"])); ?>" />
157
+ <input type="hidden" id="dfrom" name="dfrom" value="<?php echo esc_attr($_GET["dfrom"]); ?>" />
158
+ <input type="hidden" id="dto" name="dto" value="<?php echo esc_attr($_GET["dto"]); ?>" />
159
+ <strong>Select field for the report:</strong><br />
160
+ <select name="field" onchange="document.cfm_formrep.submit();">
161
+ <?php
162
+ foreach ($fields as $item => $value)
163
+ echo '<option value="'.esc_attr($item).'"'.($_GET["field"]==$item?' selected':'').'>'.$this->get_form_field_label($item,$form).'</option>';
164
+ ?>
165
+ </select>
166
+ <br /><br />
167
+ </form>
168
+
169
+
170
+ <div id="dex_printable_contents">
171
+
172
+
173
+ <div style="border:1px solid black;width:650px;margin-right:10px;padding:0px;float:left;">
174
+ <div style="border-bottom:1px solid black;padding:5px;background:#ECECEC;color:#21759B;font-weight: bold;">
175
+ Report of values for: <em><?php echo $this->get_form_field_label($_GET["field"],$form); ?></em>
176
+ </div>
177
+
178
+ <div style="padding:10px;">
179
+ <?php
180
+ $arr = $fields[$_GET["field"]];
181
+ arsort($arr, SORT_NUMERIC);
182
+ $total = 0;
183
+ $totalsize = 600;
184
+ foreach ($arr as $item => $value)
185
+ $total += $value;
186
+ $max = max($arr);
187
+ $totalsize = round(600 / ($max/$total) );
188
+ $count = 0;
189
+ foreach ($arr as $item => $value)
190
+ {
191
+ $item = htmlentities($item);
192
+ echo $value.' times: '.(strlen($item)>50?substr($item,1,50).'...':substr($item,1));
193
+ echo '<div style="width:'.round($value/$total*$totalsize).'px;border:1px solid black;margin-bottom:3px;font-size:9px;background-color:#'.$color_array[$count].'">'.round($value/$total*100,2).'%</div>';
194
+ $count++;
195
+ if ($count >= count($color_array)) $count = count($color_array)-1;
196
+ }
197
+ ?>
198
+ </div>
199
+
200
+ <div style="padding-right:5px;padding-left:5px;color:#888888;">&nbsp;&nbsp;* Number of times that appears each value. Percent in relation to the total of submissions.<br />&nbsp;&nbsp;&nbsp;&nbsp; Date range from <?php echo strip_tags($date_start); ?> to <?php echo strip_tags($date_end); ?>.</div>
201
+ </div>
202
+
203
+
204
+ <div style="clear:both"></div>
205
+
206
+
207
+ </div>
208
+
209
+ <p class="submit"><input type="button" name="pbutton" value="Print" onclick="do_dexapp_print();" /></p>
210
+
211
+ </div>
212
+
213
+
214
+ <script type="text/javascript">
215
+
216
+ function do_dexapp_print()
217
+ {
218
+ w=window.open();
219
+ w.document.write("<style>.cpnopr{display:none;};table{border:2px solid black;width:100%;}th{border-bottom:2px solid black;text-align:left}td{padding-left:10px;border-bottom:1px solid black;}</style>"+document.getElementById('dex_printable_contents').innerHTML);
220
+ w.print();
221
+ w.close();
222
+ }
223
+
224
+ var $j = jQuery.noConflict();
225
+ $j(function() {
226
+ $j("#dfrom").datepicker({
227
+ dateFormat: 'yy-mm-dd'
228
+ });
229
+ $j("#dto").datepicker({
230
+ dateFormat: 'yy-mm-dd'
231
+ });
232
+ });
233
+
234
+ </script>
235
+
236
+
237
+ <script type="text/javascript">
238
+ var $ = jQuery.noConflict();
239
+ $j(document).ready(function(){
240
+ /////////////////////////canvas//////////////////////////
241
+ //$(window).on('load',function(){
242
+ drawGraph($("#cardio1"), $("#cardiocontainer1"));
243
+ drawGraph($("#cardio2"), $("#cardiocontainer2"));
244
+ function drawGraph(canvas, canvasContainer)
245
+ {
246
+ if( typeof(G_vmlCanvasManager) != 'undefined' ){ G_vmlCanvasManager.init(); G_vmlCanvasManager.initElement(canvas[0]); }
247
+ ctx = canvas[0].getContext("2d");
248
+ var data = jQuery.parseJSON(canvas.attr("questions"));
249
+ var height = canvas.attr("height");
250
+ var width = canvas.attr("width");
251
+ var maxquestions = 0,maxpos = 0,minpos = 0,interval = 5;
252
+
253
+ jQuery.each(data,function(index,v){
254
+ maxquestions = (maxquestions<v.values.length)?v.values.length:maxquestions;
255
+ postmp = 0;
256
+ jQuery.each(v.values,function(index1,v1){
257
+ maxpos = (maxpos<v1)?v1:maxpos;
258
+ minpos = (minpos>v1)?v1:minpos;
259
+ });
260
+
261
+ });
262
+ maxpos = maxpos;//Math.ceil(maxpos/interval)*interval;
263
+ minpos = 0; //Math.floor(minpos/interval)*interval;
264
+ interval = Math.ceil(maxpos / 10);
265
+ total = maxpos - minpos + interval;
266
+ h = Math.round(height/total);
267
+ var start = 10;
268
+ var radius = 2;
269
+ if (maxquestions>1)
270
+ w = Math.round((width-start-radius)/(maxquestions-1));
271
+ else
272
+ w = width/2;
273
+
274
+ if(ctx)
275
+ {
276
+ for (i=0;i<total/interval;i++)
277
+ {
278
+ if ((maxpos-i*interval) >= 0) canvasContainer.append('<div class="legend" style="position:absolute;left:-10px;top:'+(parseInt((i*interval+interval/2)*h-5))+'px">'+(maxpos-i*interval)+'</div>');
279
+ ctx.beginPath();
280
+ ctx.moveTo(start,Math.round((i*interval+interval/2)*h) );
281
+ ctx.lineTo(width,Math.round((i*interval+interval/2)*h) );
282
+ ctx.stroke();
283
+ }
284
+ jQuery.each(data,function(index,v){
285
+ ctx.beginPath();
286
+ ctx.strokeStyle = v.color;
287
+ ctx.fillStyle = v.color;
288
+
289
+ //ctx.moveTo(start,Math.round((maxpos+interval/2)*h) );
290
+ var i = 0,j = 0;
291
+ jQuery.each(v.values,function(index1,v1){
292
+ j=-v1;
293
+ if (i!=0)
294
+ ctx.lineTo(i*w+start,Math.round((maxpos+interval/2)*h+j*h));
295
+ else
296
+ ctx.moveTo(i*w+start,Math.round((maxpos+interval/2)*h+j*h));
297
+ i++;
298
+ });
299
+
300
+ ctx.stroke();
301
+ var i = 0,j = 0;
302
+ jQuery.each(v.values,function(index1,v1){
303
+ j=-v1;
304
+ ctx.beginPath();
305
+ ctx.arc(i*w+start,Math.round((maxpos+interval/2)*h+j*h), radius, 0, 2 * Math.PI, true);
306
+ ctx.fill();
307
+ i++;
308
+ });
309
+ });
310
+ }
311
+ }
312
+ //});
313
+
314
+ ////////////////////////end canvas///////////////////////
315
+ });
316
+ </script>
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
cp-admin-int.inc.php ADDED
@@ -0,0 +1,568 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !is_admin() )
4
+ {
5
+ echo 'Direct access not allowed.';
6
+ exit;
7
+ }
8
+
9
+ $nonce = wp_create_nonce( 'cfpoll_update_actions_post' );
10
+
11
+ $this->item = intval($_GET["cal"]);
12
+
13
+
14
+ define('CP_CFEMAIL_DEFAULT_fp_from_email', get_the_author_meta('user_email', get_current_user_id()) );
15
+ define('CP_CFEMAIL_DEFAULT_fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_from_email);
16
+
17
+ if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST[$this->prefix.'_post_options'] ) )
18
+ echo "<div id='setting-error-settings_updated' class='updated settings-error'> <p><strong>Settings saved.</strong></p></div>";
19
+
20
+ ?>
21
+ <div class="wrap">
22
+ <h1><?php echo $this->plugin_name; ?></h1>
23
+
24
+ <input type="button" name="backbtn" value="Back to items list..." onclick="document.location='admin.php?page=<?php echo $this->menu_parameter; ?>';">
25
+ <br /><br />
26
+
27
+ <form method="post" action="" name="cpformconf">
28
+ <input name="<?php echo $this->prefix; ?>_post_options" type="hidden" value="1" />
29
+ <input name="rsave" type="hidden" value="<?php echo $nonce; ?>" />
30
+ <input name="<?php echo $this->prefix; ?>_id" type="hidden" value="<?php echo $this->item; ?>" />
31
+
32
+
33
+ <div id="normal-sortables" class="meta-box-sortables">
34
+
35
+ <div id="metabox_basic_settings" class="postbox" >
36
+ <h3 class='hndle' style="padding:5px;"><span>Form Processing / Email Settings</span></h3>
37
+ <div class="inside">
38
+ <table class="form-table">
39
+
40
+ <tr valign="top">
41
+ <th scope="row">Send email "From" </th>
42
+ <td>
43
+ <?php $option = $this->get_option('fp_emailfrommethod', "fixed"); ?>
44
+ <select name="fp_emailfrommethod">
45
+ <option value="fixed"<?php if ($option == 'fixed') echo ' selected'; ?>>From fixed email address indicated below - Recommended option</option>
46
+ <option value="customer"<?php if ($option == 'customer') echo ' selected'; ?>>From the email address indicated by the customer</option>
47
+ </select><br />
48
+ <span style="font-size:10px;color:#666666">
49
+ * If you select "from fixed..." the customer email address will appear in the "to" address when you hit "reply", this is the recommended setting to avoid mail server restrictions.
50
+ <br />
51
+ * If you select "from customer email" then the customer email will appear also visually when you receive the email, but this isn't supported by all hosting services, so this
52
+ option isn't recommended in most cases.
53
+ </span>
54
+ </td>
55
+ </tr>
56
+ <tr valign="top">
57
+ <th scope="row">"From" email (for fixed "from" addresses)</th>
58
+ <td><input required type="text" name="fp_from_email" size="40" value="<?php echo esc_attr($this->get_option('fp_from_email', CP_CFEMAIL_DEFAULT_fp_from_email)); ?>" /></td>
59
+ </tr>
60
+ <tr valign="top">
61
+ <th scope="row">Destination emails (comma separated)</th>
62
+ <td><input required type="text" name="fp_destination_emails" size="40" value="<?php echo esc_attr($this->get_option('fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_destination_emails)); ?>" /></td>
63
+ </tr>
64
+ <tr valign="top">
65
+ <th scope="row">On submit action</th>
66
+ <td>
67
+ <?php $option = $this->get_option('onsubmitaction', '0'); ?>
68
+ <select name="onsubmitaction" onchange="javascript:fte_action_display();">
69
+ <option value="0"<?php if ($option == '0' || $option == '') echo ' selected'; ?>>Redirect to a "Thank you" page</option>
70
+ <option value="1"<?php if ($option == '1') echo ' selected'; ?>>Stay on the page, display a classic JavaScript alert box with a message</option>
71
+ <option value="2"<?php if ($option == '2') echo ' selected'; ?>>Stay on the page, display a jQuery dialog with a message</option>
72
+ <option value="3"<?php if ($option == '3') echo ' selected'; ?>>Replace form with a message</option>
73
+ </select>
74
+ </td>
75
+ </tr>
76
+ <tr valign="top" id="opthank">
77
+ <th scope="row">Thank you page (after sending the message)</th>
78
+ <td><input type="text" name="fp_return_page" size="70" value="<?php echo esc_attr($this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page)); ?>" /></td>
79
+ </tr>
80
+ <tr valign="top" id="opmsg">
81
+ <th scope="row">Message to display after submission</th>
82
+ <td><textarea name="fp_return_message" cols="80" rows="3"><?php echo esc_attr($this->get_option('fp_return_message', 'Thank you.')); ?></textarea></td>
83
+ </tr>
84
+ <tr valign="top">
85
+ <th scope="row">Enable notification email?</th>
86
+ <td>
87
+ <?php $option = $this->get_option('fp_enableemail', 'true'); ?>
88
+ <select name="fp_enableemail" onchange="javascript:fte_enable_display();">
89
+ <option value="true"<?php if ($option != 'false') echo ' selected'; ?>>Yes</option>
90
+ <option value="false"<?php if ($option == 'false') echo ' selected'; ?>>No</option>
91
+ </select>
92
+ </td>
93
+ </tr>
94
+ <tr valign="top" id="fpemail1">
95
+ <th scope="row">Email subject</th>
96
+ <td><input type="text" name="fp_subject" size="70" value="<?php echo esc_attr($this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject)); ?>" /></td>
97
+ </tr>
98
+ <tr valign="top" id="fpemail2">
99
+ <th scope="row">Include additional information?</th>
100
+ <td>
101
+ <?php $option = $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info); ?>
102
+ <select name="fp_inc_additional_info">
103
+ <option value="true"<?php if ($option == 'true') echo ' selected'; ?>>Yes</option>
104
+ <option value="false"<?php if ($option == 'false') echo ' selected'; ?>>No</option>
105
+ </select>
106
+ </td>
107
+ </tr>
108
+ <tr valign="top" id="fpemail3">
109
+ <th scope="row">Email format?</th>
110
+ <td>
111
+ <?php $option = $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format); ?>
112
+ <select name="fp_emailformat">
113
+ <option value="text"<?php if ($option != 'html') echo ' selected'; ?>>Plain Text (default)</option>
114
+ <option value="html"<?php if ($option == 'html') echo ' selected'; ?>>HTML (use html in the textarea below)</option>
115
+ </select>
116
+ </td>
117
+ </tr>
118
+ <tr valign="top" id="fpemail4">
119
+ <th scope="row">Message</th>
120
+ <td><textarea type="text" name="fp_message" rows="6" cols="80"><?php echo $this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message); ?></textarea></td>
121
+ </tr>
122
+ </table>
123
+
124
+ <div style="border:1px dotted black;padding:5px 15px 5px 15px;font-size:75%;background-color:#ffffcc">
125
+ <p><strong><u>Important note:</u></strong> The plugin uses the settings specified into the WordPress website to deliver the emails.
126
+ It is <strong>strongly recommended to use a "from" email addresses that belongs to the website domain name</strong>, for example if your website is
127
+ <em>http://www.sample-website.com</em> then use an email address like <em>info@sample-website.com</em>, this will help to skip a lot of anti-spam restrictions.
128
+ Avoid using emails like "<em>...@gmail.com</em>", "<em>...@hotmail.com</em>", "<em>...@aol.com</em>" as "from" addresses since these are identified as originated
129
+ at external servers and reach to the spam folder or are completely blocked. This isn't a mandaroty requirement but it is strongly recommended.</p>
130
+ </div>
131
+ </div>
132
+ </div>
133
+
134
+
135
+ <div id="metabox_basic_settings" class="postbox" >
136
+ <h3 class='hndle' style="padding:5px;"><span>Form Builder</span></h3>
137
+ <div class="inside">
138
+
139
+ <input type="hidden" name="form_structure" id="form_structure" size="180" value="<?php echo str_replace('"','&quot;',str_replace("\r","",str_replace("\n","",esc_attr($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)))))); ?>" />
140
+
141
+ <script type="text/javascript">
142
+ if (typeof jQuery === "undefined") {
143
+ // This code won't be used in most cases. This code is for preventing problems in wrong WP themes and conflicts with third party plugins.
144
+ // In some cases a third party plugin or WP theme affect the expected jQuery scripts, this code autodetect that and provide an alternative solution
145
+ document.write ("<"+"script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></"+"script>");
146
+ document.write ("<"+"script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.20/jquery-ui.min.js'></"+"script>");
147
+ }
148
+ $easyFormQuery = jQuery.noConflict();
149
+ if (typeof $easyFormQuery == 'undefined')
150
+ {
151
+ // This code won't be used in most cases. This code is for preventing problems in wrong WP themes and conflicts with third party plugins.
152
+ // In some cases a third party plugin or WP theme affect the expected jQuery scripts, this code autodetect that and provide an alternative solution
153
+ document.write ("<"+"script type='text/javascript' src='<?php echo plugins_url('js/jQuery.stringify.js', __FILE__); ?>'></"+"script>");
154
+ document.write ("<"+"script type='text/javascript' src='<?php echo plugins_url('js/jquery.validate.js', __FILE__); ?>'></"+"script>");
155
+ document.write ("<"+"script type='text/javascript' src='<?php echo plugins_url('js/fbuilderf.jquery.js', __FILE__); ?>'></"+"script>");
156
+ }
157
+ </script>
158
+
159
+ <script>
160
+
161
+ $easyFormQuery(document).ready(function() {
162
+ var f = $easyFormQuery("#fbuilder").fbuilder();
163
+ f.fBuild.loadData("form_structure");
164
+
165
+ $easyFormQuery("#saveForm").click(function() {
166
+ f.fBuild.saveData("form_structure");
167
+ });
168
+
169
+ $easyFormQuery(".itemForm").click(function() {
170
+ f.fBuild.addItem($easyFormQuery(this).attr("id"));
171
+ });
172
+
173
+ $easyFormQuery( ".itemForm" ).draggable({revert1: "invalid",helper: "clone",cursor: "move"});
174
+ $easyFormQuery( "#fbuilder" ).droppable({
175
+ accept: ".button",
176
+ drop: function( event, ui ) {
177
+ f.fBuild.addItem(ui.draggable.attr("id"));
178
+ }
179
+ });
180
+
181
+ });
182
+ var randcaptcha = 1;
183
+ function generateCaptcha()
184
+ {
185
+ var d=new Date();
186
+ var f = document.cpformconf;
187
+ var cv_background = f.cv_background.value;
188
+ cv_background = cv_background.replace('#','');
189
+ var cv_border = f.cv_border.value;
190
+ cv_border = cv_border.replace('#','');
191
+ var qs = "&width="+f.cv_width.value;
192
+ qs += "&height="+f.cv_height.value;
193
+ qs += "&letter_count="+f.cv_chars.value;
194
+ qs += "&min_size="+f.cv_min_font_size.value;
195
+ qs += "&max_size="+f.cv_max_font_size.value;
196
+ qs += "&noise="+f.cv_noise.value;
197
+ qs += "&noiselength="+f.cv_noise_length.value;
198
+ qs += "&bcolor="+cv_background;
199
+ qs += "&border="+cv_border;
200
+ qs += "&font="+f.cv_font.options[f.cv_font.selectedIndex].value;
201
+ qs += "&r="+(randcaptcha++);
202
+
203
+ document.getElementById("captchaimg").src= "<?php echo $this->get_site_url(true).'/?'.$this->prefix.'_captcha=captcha&inAdmin=1'; ?>"+qs;
204
+ }
205
+
206
+ function fte_action_display()
207
+ {
208
+ var f = document.cpformconf;
209
+ var selection = f.onsubmitaction.options[f.onsubmitaction.selectedIndex].value;
210
+ if (selection == '0')
211
+ {
212
+ document.getElementById("opthank").style.display = '';
213
+ document.getElementById("opmsg").style.display = 'none';
214
+ }
215
+ else
216
+ {
217
+ document.getElementById("opthank").style.display = 'none';
218
+ document.getElementById("opmsg").style.display = '';
219
+ }
220
+ }
221
+ fte_action_display();
222
+
223
+ function fte_enable_display()
224
+ {
225
+ var f = document.cpformconf;
226
+ var selection = f.fp_enableemail.options[f.fp_enableemail.selectedIndex].value;
227
+ if (selection != 'false')
228
+ {
229
+ document.getElementById("fpemail1").style.display = '';
230
+ document.getElementById("fpemail2").style.display = '';
231
+ document.getElementById("fpemail3").style.display = '';
232
+ document.getElementById("fpemail4").style.display = '';
233
+ }
234
+ else
235
+ {
236
+ document.getElementById("fpemail1").style.display = 'none';
237
+ document.getElementById("fpemail2").style.display = 'none';
238
+ document.getElementById("fpemail3").style.display = 'none';
239
+ document.getElementById("fpemail4").style.display = 'none';
240
+ }
241
+ }
242
+ fte_enable_display();
243
+
244
+
245
+ </script>
246
+
247
+ <div style="background:#fafafa;width:780px;" class="form-builder">
248
+
249
+ <div class="column width50">
250
+ <div id="tabs">
251
+ <ul>
252
+ <li><a href="#tabs-1">Add a Field</a></li>
253
+ <li><a href="#tabs-2">Field Settings</a></li>
254
+ <li><a href="#tabs-3">Form Settings</a></li>
255
+ </ul>
256
+ <div id="tabs-1">
257
+
258
+ </div>
259
+ <div id="tabs-2"></div>
260
+ <div id="tabs-3"></div>
261
+ </div>
262
+ </div>
263
+ <div class="columnr width50 padding10" id="fbuilder">
264
+ <div id="formheader"></div>
265
+ <div id="fieldlist"></div>
266
+ <div class="button" id="saveForm">Save Form</div>
267
+ </div>
268
+ <div class="clearer"></div>
269
+
270
+ </div>
271
+
272
+ <div style="border:1px dotted black;background-color:#ffffaa;padding-left:15px;padding-right:15px;padding-top:5px;width:740px;font-size:12px;color:#000000;">
273
+ <p>The form builder supports 3 fields in this version: "Single Line Text", "Email" and "Text-area".</p>
274
+ <p>The full set of fields is available in the <a href="https://form2email.dwbooster.com/download">commercial versions</a>. The <a href="https://form2email.dwbooster.com/download">commercial versions</a> also supports:
275
+ <ul>
276
+ <li> - Dependand fields: Hide/show fields based in previous selections.</li>
277
+ <li> - File uploads</li>
278
+ <li> - Multi-page forms</li>
279
+ <li> - Publish it as a widget in the sidebar</li>
280
+ <li> - Convert the form in a payment / booking form (Platinum version only) with integration with PayPal Standard, PayPal Pro, Stripe, Authorize.net, Skrill, Mollie / iDeal, TargetPay / iDeal, SagePay, RedSys TPV and Sage Payments.</li>
281
+ <li> - ...and more fields and validations</li>
282
+ </ul>
283
+ <p>There are also other plugins with similar features (not exactly the same features) but adding <a href="https://wordpress.org/extend/plugins/cp-contact-form-with-paypal/">the connection of the form to PayPal</a>, with <a href="https://wordpress.org/plugins/calculated-fields-form/">calculated fields</a> or with a <a href="https://wordpress.org/plugins/appointment-hour-booking/">Appointment/Service Booking Calendar</a>.</p>
284
+ </p>
285
+
286
+ </div>
287
+
288
+ </div>
289
+ </div>
290
+
291
+
292
+ <div id="metabox_basic_settings" class="postbox" >
293
+ <h3 class='hndle' style="padding:5px;"><span>Submit Button</span></h3>
294
+ <div class="inside">
295
+ <table class="form-table">
296
+ <tr valign="top">
297
+ <th scope="row">Submit button label (text):</th>
298
+ <td><input type="text" name="vs_text_submitbtn" size="40" value="<?php $label = esc_attr($this->get_option('vs_text_submitbtn', 'Submit')); echo ($label==''?'Submit':$label); ?>" /></td>
299
+ </tr>
300
+ <tr valign="top">
301
+ <th scope="row">Previous button label (text):</th>
302
+ <td><input type="text" name="vs_text_previousbtn" size="40" value="<?php $label = esc_attr($this->get_option('vs_text_previousbtn', 'Previous')); echo ($label==''?'Previous':$label); ?>" /></td>
303
+ </tr>
304
+ <tr valign="top">
305
+ <th scope="row">Next button label (text):</th>
306
+ <td><input type="text" name="vs_text_nextbtn" size="40" value="<?php $label = esc_attr($this->get_option('vs_text_nextbtn', 'Next')); echo ($label==''?'Next':$label); ?>" /></td>
307
+ </tr>
308
+ <tr valign="top">
309
+ <th scope="row">Page {0} of {0} (text):</th>
310
+ <td><input type="text" name="vs_text_page" size="6" value="<?php $label = esc_attr($this->get_option('vs_text_page', 'Page')); echo ($label==''?'Page':$label); ?>" />
311
+ X
312
+ <input type="text" name="vs_text_of" size="3" value="<?php $label = esc_attr($this->get_option('vs_text_of', 'of')); echo ($label==''?'of':$label); ?>" />
313
+ Y</td>
314
+ </tr>
315
+ <tr valign="top">
316
+ <td colspan="2"> - The <em>class="pbSubmit"</em> can be used to modify the button styles. <br />
317
+ - The styles can be applied into any of the CSS files of your theme or into the CSS file <em>"contact-form-to-email\css\stylepublic.css"</em>. <br />
318
+ - For further modifications the submit button is located at the end of the file <em>"cp-public-int.inc.php"</em>.<br />
319
+ - For general CSS styles modifications to the form and samples <a href="https://form2email.dwbooster.com/faq#q82" target="_blank">check this FAQ</a>.
320
+ </tr>
321
+ </table>
322
+ </div>
323
+ </div>
324
+
325
+
326
+ <div id="metabox_basic_settings" class="postbox" >
327
+ <h3 class='hndle' style="padding:5px;"><span>Validation Settings</span></h3>
328
+ <div class="inside">
329
+ <table class="form-table">
330
+ <tr valign="top" style="display:none">
331
+ <th scope="row">Use Validation?</th>
332
+ <td>
333
+ <?php $option = $this->get_option('vs_use_validation', CP_CFEMAIL_DEFAULT_vs_use_validation); ?>
334
+ <select name="vs_use_validation">
335
+ <option value="true"<?php if ($option == 'true') echo ' selected'; ?>>Yes</option>
336
+ </select>
337
+ </td>
338
+ </tr>
339
+ <tr valign="top">
340
+ <th scope="row">"is required" text:</th>
341
+ <td><input type="text" required name="vs_text_is_required" size="40" value="<?php echo esc_attr($this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required)); ?>" /></td>
342
+ </tr>
343
+ <tr valign="top">
344
+ <th scope="row">"is email" text:</th>
345
+ <td><input type="text" required name="vs_text_is_email" size="70" value="<?php echo esc_attr($this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email)); ?>" /></td>
346
+ </tr>
347
+ <tr valign="top">
348
+ <th scope="row">"is valid captcha" text:</th>
349
+ <td><input type="text" name="cv_text_enter_valid_captcha" size="70" value="<?php echo esc_attr($this->get_option('cv_text_enter_valid_captcha', CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha)); ?>" /></td>
350
+ </tr>
351
+
352
+ <tr valign="top">
353
+ <th scope="row">"is valid date (mm/dd/yyyy)" text:</th>
354
+ <td><input type="text" name="vs_text_datemmddyyyy" size="70" value="<?php echo esc_attr($this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy)); ?>" /></td>
355
+ </tr>
356
+ <tr valign="top">
357
+ <th scope="row">"is valid date (dd/mm/yyyy)" text:</th>
358
+ <td><input type="text" name="vs_text_dateddmmyyyy" size="70" value="<?php echo esc_attr($this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy)); ?>" /></td>
359
+ </tr>
360
+ <tr valign="top">
361
+ <th scope="row">"is number" text:</th>
362
+ <td><input type="text" name="vs_text_number" size="70" value="<?php echo esc_attr($this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number)); ?>" /></td>
363
+ </tr>
364
+ <tr valign="top">
365
+ <th scope="row">"only digits" text:</th>
366
+ <td><input type="text" name="vs_text_digits" size="70" value="<?php echo esc_attr($this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits)); ?>" /></td>
367
+ </tr>
368
+ <tr valign="top">
369
+ <th scope="row">"under maximum" text:</th>
370
+ <td><input type="text" name="vs_text_max" size="70" value="<?php echo esc_attr($this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max)); ?>" /></td>
371
+ </tr>
372
+ <tr valign="top">
373
+ <th scope="row">"over minimum" text:</th>
374
+ <td><input type="text" name="vs_text_min" size="70" value="<?php echo esc_attr($this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min)); ?>" /></td>
375
+ </tr>
376
+
377
+ </table>
378
+ </div>
379
+ </div>
380
+
381
+
382
+
383
+ <div id="metabox_basic_settings" class="postbox" >
384
+ <h3 class='hndle' style="padding:5px;"><span>Email Copy to User</span></h3>
385
+ <div class="inside">
386
+ <table class="form-table">
387
+ <tr valign="top">
388
+ <th scope="row">Send confirmation/thank you message to user?</th>
389
+ <td>
390
+ <?php $option = $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user); ?>
391
+ <select name="cu_enable_copy_to_user">
392
+ <option value="true"<?php if ($option == 'true') echo ' selected'; ?>>Yes</option>
393
+ <option value="false"<?php if ($option == 'false') echo ' selected'; ?>>No</option>
394
+ </select>
395
+ </td>
396
+ </tr>
397
+ <tr valign="top">
398
+ <th scope="row">Email field on the form</th>
399
+ <td><select id="cu_user_email_field" name="cu_user_email_field" def="<?php echo esc_attr($this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field)); ?>"></select></td>
400
+ </tr>
401
+ <tr valign="top">
402
+ <th scope="row">Email subject</th>
403
+ <td><input type="text" name="cu_subject" size="70" value="<?php echo esc_attr($this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject)); ?>" /></td>
404
+ </tr>
405
+ <tr valign="top">
406
+ <th scope="row">Email format?</th>
407
+ <td>
408
+ <?php $option = $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format); ?>
409
+ <select name="cu_emailformat">
410
+ <option value="text"<?php if ($option != 'html') echo ' selected'; ?>>Plain Text (default)</option>
411
+ <option value="html"<?php if ($option == 'html') echo ' selected'; ?>>HTML (use html in the textarea below)</option>
412
+ </select>
413
+ </td>
414
+ </tr>
415
+ <tr valign="top">
416
+ <th scope="row">Message</th>
417
+ <td><textarea type="text" name="cu_message" rows="6" cols="80"><?php echo $this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message); ?></textarea></td>
418
+ </tr>
419
+ </table>
420
+ </div>
421
+ </div>
422
+
423
+
424
+ <div id="metabox_basic_settings" class="postbox" >
425
+ <h3 class='hndle' style="padding:5px;"><span>Captcha Verification</span></h3>
426
+ <div class="inside">
427
+ <table class="form-table">
428
+ <tr valign="top">
429
+ <th scope="row">Use Captcha Verification?</th>
430
+ <td colspan="5">
431
+ <?php $option = $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha); ?>
432
+ <select name="cv_enable_captcha">
433
+ <option value="true"<?php if ($option == 'true') echo ' selected'; ?>>Yes</option>
434
+ <option value="false"<?php if ($option == 'false') echo ' selected'; ?>>No</option>
435
+ </select>
436
+ </td>
437
+ </tr>
438
+
439
+ <tr valign="top">
440
+ <th scope="row">Width:</th>
441
+ <td><input type="number" name="cv_width" size="10" value="<?php echo esc_attr($this->get_option('cv_width', CP_CFEMAIL_DEFAULT_cv_width)); ?>" onblur="generateCaptcha();" /></td>
442
+ <th scope="row">Height:</th>
443
+ <td><input type="number" name="cv_height" size="10" value="<?php echo esc_attr($this->get_option('cv_height', CP_CFEMAIL_DEFAULT_cv_height)); ?>" onblur="generateCaptcha();" /></td>
444
+ <th scope="row">Chars:</th>
445
+ <td><input type="number" name="cv_chars" size="10" value="<?php echo esc_attr($this->get_option('cv_chars', CP_CFEMAIL_DEFAULT_cv_chars)); ?>" onblur="generateCaptcha();" /></td>
446
+ </tr>
447
+
448
+ <tr valign="top">
449
+ <th scope="row">Min font size:</th>
450
+ <td><input type="number" name="cv_min_font_size" size="10" value="<?php echo esc_attr($this->get_option('cv_min_font_size', CP_CFEMAIL_DEFAULT_cv_min_font_size)); ?>" onblur="generateCaptcha();" /></td>
451
+ <th scope="row">Max font size:</th>
452
+ <td><input type="number" name="cv_max_font_size" size="10" value="<?php echo esc_attr($this->get_option('cv_max_font_size', CP_CFEMAIL_DEFAULT_cv_max_font_size)); ?>" onblur="generateCaptcha();" /></td>
453
+ <td colspan="2" rowspan="">
454
+ Preview:<br />
455
+ <br />
456
+ <img src="<?php echo $this->get_site_url(true).'/?'.$this->prefix.'_captcha=captcha&inAdmin=1'; ?>" id="captchaimg" alt="security code" border="0" />
457
+ </td>
458
+ </tr>
459
+
460
+
461
+ <tr valign="top">
462
+ <th scope="row">Noise:</th>
463
+ <td><input type="number" name="cv_noise" size="10" value="<?php echo esc_attr($this->get_option('cv_noise', CP_CFEMAIL_DEFAULT_cv_noise)); ?>" onblur="generateCaptcha();" /></td>
464
+ <th scope="row">Noise Length:</th>
465
+ <td><input type="number" name="cv_noise_length" size="10" value="<?php echo esc_attr($this->get_option('cv_noise_length', CP_CFEMAIL_DEFAULT_cv_noise_length)); ?>" onblur="generateCaptcha();" /></td>
466
+ </tr>
467
+
468
+
469
+ <tr valign="top">
470
+ <th scope="row">Background:</th>
471
+ <td><input type="color" name="cv_background" size="10" value="#<?php echo esc_attr($this->get_option('cv_background', CP_CFEMAIL_DEFAULT_cv_background)); ?>" onchange="generateCaptcha();" /></td>
472
+ <th scope="row">Border:</th>
473
+ <td><input type="color" name="cv_border" size="10" value="#<?php echo esc_attr($this->get_option('cv_border', CP_CFEMAIL_DEFAULT_cv_border)); ?>" onchange="generateCaptcha();" /></td>
474
+ </tr>
475
+
476
+ <tr valign="top">
477
+ <th scope="row">Font:</th>
478
+ <td>
479
+ <select name="cv_font" onchange="generateCaptcha();" >
480
+ <option value="font-1.ttf"<?php if ("font-1.ttf" == $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font)) echo " selected"; ?>>Font 1</option>
481
+ <option value="font-2.ttf"<?php if ("font-2.ttf" == $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font)) echo " selected"; ?>>Font 2</option>
482
+ <option value="font-3.ttf"<?php if ("font-3.ttf" == $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font)) echo " selected"; ?>>Font 3</option>
483
+ <option value="font-4.ttf"<?php if ("font-4.ttf" == $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font)) echo " selected"; ?>>Font 4</option>
484
+ </select>
485
+ </td>
486
+ </tr>
487
+
488
+
489
+ </table>
490
+ </div>
491
+ </div>
492
+
493
+ <div id="metabox_basic_settings" class="postbox" >
494
+ <h3 class='hndle' style="padding:5px;"><span>Automatic Reports: Send submissions in CSV format via email</span></h3>
495
+ <div class="inside">
496
+ <table class="form-table">
497
+ <tr valign="top">
498
+ <th scope="row">Enable Reports?</th>
499
+ <td>
500
+ <?php $option = $this->get_option('rep_enable', 'no'); ?>
501
+ <select name="rep_enable">
502
+ <option value="no"<?php if ($option == 'no' || $option == '') echo ' selected'; ?>>No</option>
503
+ <option value="yes"<?php if ($option == 'yes') echo ' selected'; ?>>Yes</option>
504
+ </select>
505
+ </td>
506
+ </tr>
507
+ <tr valign="top">
508
+ <th scope="row">Send report every</th>
509
+ <td><input type="number" name="rep_days" size="4" value="<?php echo esc_attr($this->get_option('rep_days', '7')); ?>" /> days</td>
510
+ </tr>
511
+ <tr valign="top">
512
+ <th scope="row">Send report after this hour (server time)</th>
513
+ <td>
514
+ <select name="rep_hour">
515
+ <?php
516
+ $hour = $this->get_option('rep_hour', '0');
517
+ for ($k=0;$k<24;$k++)
518
+ echo '<option value="'.$k.'"'.($hour==$k?' selected':'').'>'.($k<10?'0':'').$k.'</option>';
519
+ ?>
520
+ </select>
521
+ </td>
522
+ </tr>
523
+ <tr valign="top">
524
+ <th scope="row">Send the report to the following email addresses (comma separated)</th>
525
+ <td><input type="text" name="rep_emails" size="70" value="<?php echo esc_attr($this->get_option('rep_emails', '')); ?>" /></td>
526
+ </tr>
527
+ <tr valign="top">
528
+ <th scope="row">Email subject</th>
529
+ <td><input type="text" name="rep_subject" size="70" value="<?php echo esc_attr($this->get_option('rep_subject', 'Submissions report...')); ?>" /></td>
530
+ </tr>
531
+ <tr valign="top">
532
+ <th scope="row">Email format?</th>
533
+ <td>
534
+ <?php $option = $this->get_option('rep_emailformat', 'text'); ?>
535
+ <select name="rep_emailformat">
536
+ <option value="text"<?php if ($option != 'html') echo ' selected'; ?>>Plain Text (default)</option>
537
+ <option value="html"<?php if ($option == 'html') echo ' selected'; ?>>HTML (use html in the textarea below)</option>
538
+ </select>
539
+ </td>
540
+ </tr>
541
+ <tr valign="top">
542
+ <th scope="row">Email Text (CSV file will be attached with the submissions)</th>
543
+ <td><textarea type="text" name="rep_message" rows="3" cols="80"><?php echo $this->get_option('rep_message', 'Attached you will find the data from the form submissions.'); ?></textarea></td>
544
+ </tr>
545
+ </table>
546
+ </div>
547
+ </div>
548
+
549
+
550
+ <div id="metabox_basic_settings" class="postbox" >
551
+ <h3 class='hndle' style="padding:5px;"><span>Note</span></h3>
552
+ <div class="inside">
553
+ To insert this form in a post/page, use the dedicated icon <?php echo '<img hspace="5" src="'.plugins_url('/images/cp_form.gif', __FILE__).'" alt="'.__('Insert '.$this->plugin_name,'contact-form-to-email').'" /></a>'; ?>
554
+ which has been added to your Upload/Insert Menu, just below the title of your Post/Page edition.
555
+ <br /><br />
556
+ </div>
557
+ </div>
558
+
559
+ </div>
560
+
561
+
562
+ <p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="Save Changes" /></p>
563
+
564
+
565
+ [<a href="https://wordpress.org/support/plugin/contact-form-to-email#new-post" target="_blank">Support</a>] | [<a href="<?php echo $this->plugin_URL; ?>" target="_blank">Help</a>]
566
+ </form>
567
+ </div>
568
+ <script type="text/javascript">generateCaptcha();</script>
cp-main-class.inc.php ADDED
@@ -0,0 +1,1127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CP_ContactFormToEmail extends CP_CFTEMAIL_BaseClass {
4
+
5
+ private $menu_parameter = 'cp_contactformtoemail';
6
+ private $prefix = 'cp_contactformtoemail';
7
+ private $plugin_name = 'Contact Form to Email';
8
+ private $plugin_URL = 'https://form2email.dwbooster.com';
9
+ protected $table_items = "cftemail_forms";
10
+ private $table_messages = "cftemail_messages";
11
+ private $print_counter = 1;
12
+ private $include_user_data_csv = false;
13
+
14
+ public $shorttag = 'CONTACT_FORM_TO_EMAIL';
15
+
16
+ function _install() {
17
+ global $wpdb;
18
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
19
+
20
+ $results = $wpdb->get_results("SHOW TABLES LIKE '".$wpdb->prefix.$this->table_messages."'");
21
+ if (!count($results))
22
+ {
23
+ $sql = "CREATE TABLE ".$wpdb->prefix.$this->table_messages." (
24
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
25
+ formid INT NOT NULL,
26
+ time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
27
+ ipaddr VARCHAR(250) DEFAULT '' NOT NULL,
28
+ notifyto VARCHAR(250) DEFAULT '' NOT NULL,
29
+ data mediumtext,
30
+ posted_data mediumtext,
31
+ UNIQUE KEY id (id)
32
+ );";
33
+ $wpdb->query($sql);
34
+ }
35
+
36
+ $results = $wpdb->get_results("SHOW TABLES LIKE '".$wpdb->prefix.$this->table_items."'");
37
+ if (!count($results))
38
+ {
39
+ $sql = "CREATE TABLE ".$wpdb->prefix.$this->table_items." (
40
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
41
+
42
+ form_name VARCHAR(250) DEFAULT '' NOT NULL,
43
+
44
+ form_structure mediumtext,
45
+
46
+ fp_from_email VARCHAR(250) DEFAULT '' NOT NULL,
47
+ fp_destination_emails text,
48
+ fp_subject VARCHAR(250) DEFAULT '' NOT NULL,
49
+ fp_inc_additional_info VARCHAR(20) DEFAULT '' NOT NULL,
50
+ fp_return_page VARCHAR(250) DEFAULT '' NOT NULL,
51
+ fp_message text,
52
+ fp_emailformat VARCHAR(20) DEFAULT '' NOT NULL,
53
+
54
+ cu_enable_copy_to_user VARCHAR(10) DEFAULT '' NOT NULL,
55
+ cu_user_email_field VARCHAR(250) DEFAULT '' NOT NULL,
56
+ cu_subject VARCHAR(250) DEFAULT '' NOT NULL,
57
+ cu_message text,
58
+ cu_emailformat VARCHAR(20) DEFAULT '' NOT NULL,
59
+ fp_emailfrommethod VARCHAR(20) DEFAULT '' NOT NULL,
60
+
61
+ fp_enableemail VARCHAR(10) DEFAULT '' NOT NULL,
62
+ onsubmitaction VARCHAR(10) DEFAULT '' NOT NULL,
63
+ fp_return_message text,
64
+
65
+ vs_use_validation VARCHAR(10) DEFAULT '' NOT NULL,
66
+ vs_text_is_required VARCHAR(250) DEFAULT '' NOT NULL,
67
+ vs_text_is_email VARCHAR(250) DEFAULT '' NOT NULL,
68
+ vs_text_datemmddyyyy VARCHAR(250) DEFAULT '' NOT NULL,
69
+ vs_text_dateddmmyyyy VARCHAR(250) DEFAULT '' NOT NULL,
70
+ vs_text_number VARCHAR(250) DEFAULT '' NOT NULL,
71
+ vs_text_digits VARCHAR(250) DEFAULT '' NOT NULL,
72
+ vs_text_max VARCHAR(250) DEFAULT '' NOT NULL,
73
+ vs_text_min VARCHAR(250) DEFAULT '' NOT NULL,
74
+ vs_text_page VARCHAR(250) DEFAULT '' NOT NULL,
75
+ vs_text_of VARCHAR(250) DEFAULT '' NOT NULL,
76
+ vs_text_submitbtn VARCHAR(250) DEFAULT '' NOT NULL,
77
+ vs_text_previousbtn VARCHAR(200) DEFAULT '' NOT NULL,
78
+ vs_text_nextbtn VARCHAR(200) DEFAULT '' NOT NULL,
79
+
80
+ rep_enable VARCHAR(10) DEFAULT '' NOT NULL,
81
+ rep_days VARCHAR(10) DEFAULT '' NOT NULL,
82
+ rep_hour VARCHAR(10) DEFAULT '' NOT NULL,
83
+ rep_emails text,
84
+ rep_subject text,
85
+ rep_emailformat VARCHAR(10) DEFAULT '' NOT NULL,
86
+ rep_message text,
87
+
88
+ cv_enable_captcha VARCHAR(20) DEFAULT '' NOT NULL,
89
+ cv_width VARCHAR(20) DEFAULT '' NOT NULL,
90
+ cv_height VARCHAR(20) DEFAULT '' NOT NULL,
91
+ cv_chars VARCHAR(20) DEFAULT '' NOT NULL,
92
+ cv_font VARCHAR(20) DEFAULT '' NOT NULL,
93
+ cv_min_font_size VARCHAR(20) DEFAULT '' NOT NULL,
94
+ cv_max_font_size VARCHAR(20) DEFAULT '' NOT NULL,
95
+ cv_noise VARCHAR(20) DEFAULT '' NOT NULL,
96
+ cv_noise_length VARCHAR(20) DEFAULT '' NOT NULL,
97
+ cv_background VARCHAR(20) DEFAULT '' NOT NULL,
98
+ cv_border VARCHAR(20) DEFAULT '' NOT NULL,
99
+ cv_text_enter_valid_captcha VARCHAR(200) DEFAULT '' NOT NULL,
100
+
101
+ UNIQUE KEY id (id)
102
+ );";
103
+ $wpdb->query($sql);
104
+ }
105
+
106
+ // insert initial data
107
+ $count = $wpdb->get_var( "SELECT COUNT(id) FROM ".$wpdb->prefix.$this->table_items );
108
+ if (!$count)
109
+ {
110
+ define('CP_CFEMAIL_DEFAULT_fp_from_email', get_the_author_meta('user_email', get_current_user_id()) );
111
+ define('CP_CFEMAIL_DEFAULT_fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_from_email);
112
+ $wpdb->insert( $wpdb->prefix.$this->table_items, array( 'id' => 1,
113
+ 'form_name' => 'Form 1',
114
+
115
+ 'form_structure' => $this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure),
116
+
117
+ 'fp_from_email' => $this->get_option('fp_from_email', CP_CFEMAIL_DEFAULT_fp_from_email),
118
+ 'fp_destination_emails' => $this->get_option('fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_destination_emails),
119
+ 'fp_subject' => $this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject),
120
+ 'fp_inc_additional_info' => $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info),
121
+ 'fp_return_page' => $this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page),
122
+ 'fp_message' => $this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message),
123
+ 'fp_emailformat' => $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format),
124
+
125
+ 'cu_enable_copy_to_user' => $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user),
126
+ 'cu_user_email_field' => $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field),
127
+ 'cu_subject' => $this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject),
128
+ 'cu_message' => $this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message),
129
+ 'cu_emailformat' => $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format),
130
+
131
+ 'fp_return_message' => 'Thank you.',
132
+ 'onsubmitaction' => '0',
133
+ 'fp_enableemail' => 'true',
134
+
135
+ 'vs_use_validation' => $this->get_option('vs_use_validation', CP_CFEMAIL_DEFAULT_vs_use_validation),
136
+ 'vs_text_is_required' => $this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required),
137
+ 'vs_text_is_email' => $this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email),
138
+ 'vs_text_datemmddyyyy' => $this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy),
139
+ 'vs_text_dateddmmyyyy' => $this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy),
140
+ 'vs_text_number' => $this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number),
141
+ 'vs_text_digits' => $this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits),
142
+ 'vs_text_max' => $this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max),
143
+ 'vs_text_min' => $this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min),
144
+ 'vs_text_page' => $this->get_option('vs_text_page', 'Page'),
145
+ 'vs_text_of' => $this->get_option('vs_text_of', 'of'),
146
+ 'vs_text_submitbtn' => $this->get_option('vs_text_submitbtn', 'Submit'),
147
+ 'vs_text_previousbtn' => $this->get_option('vs_text_previousbtn', 'Previous'),
148
+ 'vs_text_nextbtn' => $this->get_option('vs_text_nextbtn', 'Next'),
149
+
150
+ 'rep_enable' => $this->get_option('rep_enable', 'no'),
151
+ 'rep_days' => $this->get_option('rep_days', '1'),
152
+ 'rep_hour' => $this->get_option('rep_hour', '0'),
153
+ 'rep_emails' => $this->get_option('rep_emails', ''),
154
+ 'rep_subject' => $this->get_option('rep_subject', 'Submissions report...'),
155
+ 'rep_emailformat' => $this->get_option('rep_emailformat', 'text'),
156
+ 'rep_message' => $this->get_option('rep_message', 'Attached you will find the data from the form submissions.'),
157
+
158
+ 'cv_enable_captcha' => $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha),
159
+ 'cv_width' => $this->get_option('cv_width', CP_CFEMAIL_DEFAULT_cv_width),
160
+ 'cv_height' => $this->get_option('cv_height', CP_CFEMAIL_DEFAULT_cv_height),
161
+ 'cv_chars' => $this->get_option('cv_chars', CP_CFEMAIL_DEFAULT_cv_chars),
162
+ 'cv_font' => $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font),
163
+ 'cv_min_font_size' => $this->get_option('cv_min_font_size', CP_CFEMAIL_DEFAULT_cv_min_font_size),
164
+ 'cv_max_font_size' => $this->get_option('cv_max_font_size', CP_CFEMAIL_DEFAULT_cv_max_font_size),
165
+ 'cv_noise' => $this->get_option('cv_noise', CP_CFEMAIL_DEFAULT_cv_noise),
166
+ 'cv_noise_length' => $this->get_option('cv_noise_length', CP_CFEMAIL_DEFAULT_cv_noise_length),
167
+ 'cv_background' => $this->get_option('cv_background', CP_CFEMAIL_DEFAULT_cv_background),
168
+ 'cv_border' => $this->get_option('cv_border', CP_CFEMAIL_DEFAULT_cv_border),
169
+ 'cv_text_enter_valid_captcha' => $this->get_option('cv_text_enter_valid_captcha', CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha)
170
+ )
171
+ );
172
+ }
173
+ }
174
+
175
+
176
+ public function plugins_loaded() {
177
+ load_plugin_textdomain( 'contact-form-to-email', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
178
+ }
179
+
180
+
181
+ /* Filter for placing the maps into the contents */
182
+ public function filter_content($atts) {
183
+ global $wpdb;
184
+ extract( shortcode_atts( array(
185
+ 'id' => '',
186
+ ), $atts ) );
187
+ if ($id != '')
188
+ $this->item = intval($id);
189
+ ob_start();
190
+ $this->insert_public_item();
191
+ $buffered_contents = ob_get_contents();
192
+ ob_end_clean();
193
+ return $buffered_contents;
194
+ }
195
+
196
+
197
+ function insert_public_item() {
198
+ global $wpdb;
199
+
200
+ $page_label = $this->get_option('vs_text_page', 'Page');
201
+ $page_label = ($page_label==''?'Page':$page_label);
202
+ $of_label = $this->get_option('vs_text_of', 'of');
203
+ $of_label = ($of_label==''?'of':$of_label);
204
+ $previous_label = $this->get_option('vs_text_previousbtn', 'Previous');
205
+ $previous_label = ($previous_label==''?'Previous':$previous_label);
206
+ $next_label = $this->get_option('vs_text_nextbtn', 'Next');
207
+ $next_label = ($next_label==''?'Next':$next_label);
208
+
209
+ if (CP_CFEMAIL_DEFER_SCRIPTS_LOADING)
210
+ {
211
+ wp_enqueue_style('cfte-stylepublic', plugins_url('css/stylepublic.css', __FILE__) );
212
+ wp_enqueue_style('cfte-stylecalendar', plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__));
213
+
214
+ wp_deregister_script('query-stringify');
215
+ wp_register_script('query-stringify', plugins_url('/js/jQuery.stringify.js', __FILE__));
216
+
217
+ wp_deregister_script($this->prefix.'_validate_script');
218
+ wp_register_script($this->prefix.'_validate_script', plugins_url('/js/jquery.validate.js', __FILE__));
219
+
220
+ wp_enqueue_script( $this->prefix.'_builder_script',
221
+ plugins_url('/js/fbuilderf.jquery.js', __FILE__),array("jquery","jquery-ui-core","jquery-ui-datepicker","jquery-ui-widget","jquery-ui-dialog","jquery-ui-position","jquery-ui-tooltip","query-stringify",$this->prefix."_validate_script"), false, true );
222
+
223
+ wp_localize_script($this->prefix.'_builder_script', $this->prefix.'_fbuilder_config'.('_'.$this->print_counter), array('obj' =>
224
+ '{"pub":true,"identifier":"'.('_'.$this->print_counter).'","messages": {
225
+ "required": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required),'contact-form-to-email')).'",
226
+ "email": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email),'contact-form-to-email')).'",
227
+ "datemmddyyyy": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy),'contact-form-to-email')).'",
228
+ "dateddmmyyyy": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy),'contact-form-to-email')).'",
229
+ "number": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number),'contact-form-to-email')).'",
230
+ "digits": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits),'contact-form-to-email')).'",
231
+ "max": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max),'contact-form-to-email')).'",
232
+ "min": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min),'contact-form-to-email')).'",
233
+ "previous": "'.str_replace(array('"'),array('\\"'),$previous_label).'",
234
+ "next": "'.str_replace(array('"'),array('\\"'),$next_label).'",
235
+ "page": "'.str_replace(array('"'),array('\\"'),$page_label).'",
236
+ "of": "'.str_replace(array('"'),array('\\"'),$of_label).'"
237
+ }}'
238
+ ));
239
+ }
240
+ else
241
+ {
242
+ wp_enqueue_script( "jquery" );
243
+ wp_enqueue_script( "jquery-ui-core" );
244
+ wp_enqueue_script( "jquery-ui-datepicker" );
245
+ wp_enqueue_script( "jquery-ui-dialog" );
246
+ }
247
+ ?>
248
+ <script type="text/javascript">
249
+ function <?php echo $this->prefix; ?>_pform_doValidate<?php echo '_'.$this->print_counter; ?>(form)
250
+ {
251
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.cp_ref_page.value = document.location;
252
+ $dexQuery = jQuery.noConflict();<?php if ($this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha) != 'false') { ?>
253
+ if (document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.hdcaptcha_<?php echo $this->prefix; ?>_post.value == '') { setTimeout( "<?php echo $this->prefix; ?>_cerror<?php echo '_'.$this->print_counter; ?>()", 100); return false; }
254
+ var result = $dexQuery.ajax({ type: "GET", url: "<?php echo $this->get_site_url(); ?>/?ps=<?php echo '_'.$this->print_counter; ?>&<?php echo $this->prefix; ?>_pform_process=2&inAdmin=1&ps=<?php echo '_'.$this->print_counter; ?>&hdcaptcha_<?php echo $this->prefix; ?>_post="+document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.hdcaptcha_<?php echo $this->prefix; ?>_post.value, async: false }).responseText;
255
+ if (result.indexOf("captchafailed") != -1) {
256
+ $dexQuery("#captchaimg<?php echo '_'.$this->print_counter; ?>").attr('src', $dexQuery("#captchaimg<?php echo '_'.$this->print_counter; ?>").attr('src')+'&'+Date());
257
+ setTimeout( "<?php echo $this->prefix; ?>_cerror<?php echo '_'.$this->print_counter; ?>()", 100);
258
+ return false;
259
+ } else <?php } ?>
260
+ {
261
+ var cpefb_error = 0;
262
+ $dexQuery("#<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>").find(".cpefb_error").each(function(index){
263
+ if ($dexQuery(this).css("display")!="none")
264
+ cpefb_error++;
265
+ });
266
+ if (cpefb_error) return false;
267
+ if (document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.<?php echo $this->prefix; ?>_pform_status.value != '0')
268
+ return false;
269
+ document.getElementById("refpage<?php echo '_'.$this->print_counter; ?>").value = document.location;
270
+ cfte_blink(".pbSubmit");
271
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.<?php echo $this->prefix; ?>_pform_status.value = '2';
272
+ <?php
273
+ $option = $this->get_option('onsubmitaction', '0');
274
+ $message = str_replace("\n","\\n",str_replace("\r","",str_replace("'","\'", __($this->get_option('fp_return_message', 'Thank you.')) )));
275
+ if ($option == '1' || $option == '2' || $option == '3')
276
+ {
277
+ ?>
278
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.<?php echo $this->prefix; ?>_pform_status.value = '1';
279
+ $dexQuery.ajax({
280
+ type: "POST",
281
+ url: '<?php $this->get_site_url(); ?>',
282
+ data: $dexQuery("#<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>").serialize(),
283
+ success: function(data)
284
+ {
285
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.<?php echo $this->prefix; ?>_pform_status.value = '0';
286
+ <?php
287
+ if ($option == '3') {
288
+ ?>
289
+ document.getElementById('<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>').innerHTML ='<a id="cftejump"></a><?php echo $message; ?>';
290
+ var tag = $dexQuery("#cftejump");
291
+ $dexQuery('html,body').animate({scrollTop: tag.offset().top-60},'fast');
292
+ <?php
293
+ }
294
+ else if ($option == '1') {
295
+ ?>
296
+ alert('<?php echo $message; ?>');
297
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.reset();
298
+ <?php
299
+ }
300
+ else if ($option == '2') {
301
+ ?>
302
+ $dexQuery("#cftedialog").dialog({
303
+ buttons: {
304
+ Ok: function() {
305
+ $dexQuery( this ).dialog( "close" );
306
+ document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.reset();
307
+ }
308
+ }
309
+ });
310
+ $dexQuery(".ui-dialog-titlebar").hide();
311
+ <?php
312
+ }
313
+ ?>
314
+ }
315
+ });
316
+ return false;
317
+ <?php
318
+ }
319
+ else
320
+ echo 'return true;';
321
+ ?>
322
+ }
323
+ }
324
+ function cfte_blink(selector){
325
+ $dexQuery = jQuery.noConflict();
326
+ $dexQuery(selector).fadeOut(700, function(){
327
+ $dexQuery(this).fadeIn(700, function(){
328
+ try {
329
+ if (document.<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>.<?php echo $this->prefix; ?>_pform_status.value != '0')
330
+ cfte_blink(this);
331
+ } catch (e) {}
332
+ });
333
+ });
334
+ }
335
+ function <?php echo $this->prefix; ?>_cerror<?php echo '_'.$this->print_counter; ?>(){$dexQuery = jQuery.noConflict();$dexQuery("#hdcaptcha_error<?php echo '_'.$this->print_counter; ?>").css('top',$dexQuery("#hdcaptcha_<?php echo $this->prefix; ?>_post<?php echo '_'.$this->print_counter; ?>").outerHeight());$dexQuery("#hdcaptcha_error<?php echo '_'.$this->print_counter; ?>").css("display","inline");}
336
+ </script>
337
+ <div id="cftedialog" style="display:none;"><?php echo __($this->get_option('fp_return_message', 'Thank you.')); ?></div>
338
+ <?php
339
+
340
+ $button_label = $this->get_option('vs_text_submitbtn', 'Submit');
341
+ $button_label = ($button_label==''?'Submit':$button_label);
342
+
343
+ if (!defined('CP_AUTH_INCLUDE')) define('CP_AUTH_INCLUDE',true);
344
+ @include dirname( __FILE__ ) . '/cp-public-int.inc.php';
345
+ if (!CP_CFEMAIL_DEFER_SCRIPTS_LOADING)
346
+ {
347
+ $prefix_ui = '';
348
+ if (@file_exists(dirname( __FILE__ ).'/../../../wp-includes/js/jquery/ui/jquery.ui.core.min.js'))
349
+ $prefix_ui = 'jquery.ui.';
350
+ // This code won't be used in most cases. This code is for preventing problems in wrong WP themes and conflicts with third party plugins.
351
+ // It can be manually activated by the user if needed from the troubleshoot settings area of the plugin
352
+ ?>
353
+ <?php $plugin_url = plugins_url('', __FILE__); ?>
354
+ <link href="<?php echo plugins_url('css/stylepublic.css', __FILE__); ?>" type="text/css" rel="stylesheet" />
355
+ <link href="<?php echo plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__); ?>" type="text/css" rel="stylesheet" />
356
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/jquery.js'; ?>'></script>
357
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'core.min.js'; ?>'></script>
358
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'datepicker.min.js'; ?>'></script>
359
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'widget.min.js'; ?>'></script>
360
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'position.min.js'; ?>'></script>
361
+ <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'tooltip.min.js'; ?>'></script>
362
+ <script type='text/javascript' src='<?php echo plugins_url('js/jQuery.stringify.js', __FILE__); ?>'></script>
363
+ <script type='text/javascript' src='<?php echo plugins_url('js/jquery.validate.js', __FILE__); ?>'></script>
364
+ <script type='text/javascript'>
365
+ /* <![CDATA[ */
366
+ var <?php echo $this->prefix; ?>_fbuilder_config<?php echo '_'.$this->print_counter; ?> = {"obj":"{\"pub\":true,\"identifier\":\"<?php echo '_'.$this->print_counter; ?>\",\"messages\": {\n \t \t\"required\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required));?>\",\n \t \t\"email\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email));?>\",\n \t \t\"datemmddyyyy\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy));?>\",\n \t \t\"dateddmmyyyy\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy));?>\",\n \t \t\"number\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number));?>\",\n \t \t\"digits\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits));?>\",\n \t \t\"max\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max));?>\",\n \t \t\"min\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min));?>\",\"previous\": \"<?php echo str_replace(array('"'),array('\\"'),$previous_label); ?>\",\"next\": \"<?php echo str_replace(array('"'),array('\\"'),$next_label); ?>\"\n \t }}"};
367
+ /* ]]> */
368
+ </script>
369
+ <script type='text/javascript' src='<?php echo plugins_url('js/fbuilderf.jquery.js', __FILE__); ?>'></script>
370
+ <?php
371
+ }
372
+ $this->print_counter++;
373
+ }
374
+
375
+
376
+ /* Code for the admin area */
377
+
378
+ public function plugin_page_links($links) {
379
+ $customAdjustments_link = '<a href="https://form2email.dwbooster.com/download">'.__('Upgrade To Premium','contact-form-to-email').'</a>';
380
+ array_unshift($links, $customAdjustments_link);
381
+ $settings_link = '<a href="admin.php?page='.$this->menu_parameter.'">'.__('Settings','contact-form-to-email').'</a>';
382
+ array_unshift($links, $settings_link);
383
+ $help_link = '<a href="https://form2email.dwbooster.com/support">'.__('Documentation','contact-form-to-email').'</a>';
384
+ array_unshift($links, $help_link);
385
+ $s_link = '<a href="https://wordpress.org/support/plugin/contact-form-to-email#new-post">'.__('Support','contact-form-to-email').'</a>';
386
+ array_unshift($links, $s_link);
387
+ return $links;
388
+ }
389
+
390
+
391
+ public function admin_menu() {
392
+ add_options_page($this->plugin_name.' Options', $this->plugin_name, 'manage_options', $this->menu_parameter, array($this, 'settings_page') );
393
+ add_menu_page( $this->plugin_name.' Options', $this->plugin_name, 'edit_pages', $this->menu_parameter, array($this, 'settings_page') );
394
+ add_submenu_page( $this->menu_parameter, 'Help: Online demo', 'Help: Online demo', 'read', $this->menu_parameter."_demo", array($this, 'settings_page') );
395
+ add_submenu_page( $this->menu_parameter, 'Help: Documentation', 'Help: Documentation', 'read', $this->menu_parameter."_docs", array($this, 'settings_page') );
396
+ add_submenu_page( $this->menu_parameter, 'Upgrade', 'Upgrade', 'edit_pages', $this->menu_parameter."_upgrade", array($this, 'settings_page') );
397
+ }
398
+
399
+
400
+ function insert_button() {
401
+ print '<a href="javascript:send_to_editor(\'[CONTACT_FORM_TO_EMAIL]\');" title="'.__('Insert','contact-form-to-email').' '.$this->plugin_name.'"><img hspace="5" src="'.plugins_url('/images/cp_form.gif', __FILE__).'" alt="'.__('Insert','contact-form-to-email').' '.$this->plugin_name.'" /></a>';
402
+ }
403
+
404
+
405
+ public function settings_page() {
406
+ global $wpdb;
407
+ if ($this->get_param("cal"))
408
+ {
409
+ $this->item = $this->get_param("cal");
410
+ if (isset($_GET["edit"]) && $_GET["edit"] == '1')
411
+ @include_once dirname( __FILE__ ) . '/cp_admin_int_edition.inc.php';
412
+ else if ($this->get_param("list") == '1')
413
+ @include_once dirname( __FILE__ ) . '/cp-admin-int-message-list.inc.php';
414
+ else if ($this->get_param("report") == '1')
415
+ @include_once dirname( __FILE__ ) . '/cp-admin-int-report.inc.php';
416
+ else
417
+ @include_once dirname( __FILE__ ) . '/cp-admin-int.inc.php';
418
+ }
419
+ else if ($this->get_param("page") == $this->menu_parameter.'_upgrade')
420
+ {
421
+ echo("Redirecting to upgrade page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/download';</script>");
422
+ exit;
423
+ }
424
+ else if ($this->get_param("page") == $this->menu_parameter.'_demo')
425
+ {
426
+ echo("Redirecting to demo page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/home#demos';</script>");
427
+ exit;
428
+ }
429
+ else if ($this->get_param("page") == $this->menu_parameter.'_docs')
430
+ {
431
+ echo("Redirecting to demo page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/documentation?open=1';</script>");
432
+ exit;
433
+ }
434
+ else
435
+ @include_once dirname( __FILE__ ) . '/cp-admin-int-list.inc.php';
436
+ }
437
+
438
+
439
+ function insert_adminScripts($hook) {
440
+ if ($this->get_param("page") == $this->menu_parameter)
441
+ {
442
+ wp_deregister_script('query-stringify');
443
+ wp_register_script('query-stringify', plugins_url('/js/jQuery.stringify.js', __FILE__));
444
+ wp_enqueue_script( $this->prefix.'_builder_script', plugins_url('/js/fbuilderf.jquery.js', __FILE__),array("jquery","jquery-ui-core","jquery-ui-sortable","jquery-ui-tabs","jquery-ui-droppable","jquery-ui-button","query-stringify","jquery-ui-datepicker") );
445
+ wp_enqueue_style('cfte-adminstyles', plugins_url('css/style.css', __FILE__) );
446
+ wp_enqueue_style('cfte-admincalendarstyles', plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__) );
447
+ wp_enqueue_style('jquery-style', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
448
+ if ($this->get_param("report") == '1')
449
+ wp_enqueue_script( $this->prefix.'_excanvas', plugins_url('/js/excanvas.min.js', __FILE__));
450
+ }
451
+ if( 'post.php' != $hook && 'post-new.php' != $hook )
452
+ return;
453
+ // space to include some script in the post or page areas if needed
454
+ }
455
+
456
+ /* hook for checking posted data for the admin area */
457
+
458
+ function data_management() {
459
+ global $wpdb;
460
+
461
+ $this->check_reports();
462
+
463
+ if ($this->get_param($this->prefix.'_encodingfix') == '1')
464
+ {
465
+ $wpdb->query('alter table '.$wpdb->prefix.$this->table_items.' convert to character set utf8 collate utf8_unicode_ci;');
466
+ $wpdb->query('alter table '.$wpdb->prefix.$this->table_messages.' convert to character set utf8 collate utf8_unicode_ci;');
467
+ echo 'Ok, encoding fixed.';
468
+ exit;
469
+ }
470
+
471
+ if ($this->get_param($this->prefix.'_captcha') == 'captcha' )
472
+ {
473
+ @include_once dirname( __FILE__ ) . '/captcha/captcha.php';
474
+ exit;
475
+ }
476
+
477
+
478
+ if ($this->get_param($this->prefix.'_csv') && is_admin() )
479
+ {
480
+ $this->export_csv();
481
+ return;
482
+ }
483
+
484
+ if ( $this->get_param($this->prefix.'_post_options') && is_admin() )
485
+ {
486
+ $this->save_options();
487
+ return;
488
+ }
489
+
490
+ if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['CP_CFTE_post_edition'] ) && is_admin() )
491
+ {
492
+ $this->save_edition();
493
+ return;
494
+ }
495
+
496
+ if ( 'POST' != $_SERVER['REQUEST_METHOD'] || ! isset( $_POST[$this->prefix.'_pform_process'] ) )
497
+ if ( 'GET' != $_SERVER['REQUEST_METHOD'] || !isset( $_GET['hdcaptcha_'.$this->prefix.'_post'] ) )
498
+ return;
499
+
500
+ if ($this->get_param($this->prefix.'_id')) $this->item = $this->get_param($this->prefix.'_id');
501
+
502
+ if (function_exists('session_start')) @session_start();
503
+ if (isset($_GET["ps"])) $sequence = $_GET["ps"]; else if (isset($_POST["cp_pform_psequence"])) $sequence = $_POST["cp_pform_psequence"];
504
+ if (
505
+ ($this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha) != 'false') &&
506
+ ( (strtolower($this->get_param('hdcaptcha_'.$this->prefix.'_post')) != strtolower($_SESSION['rand_code'.$sequence])) ||
507
+ ($_SESSION['rand_code'.$sequence] == '')
508
+ )
509
+ &&
510
+ ( (md5(strtolower($this->get_param('hdcaptcha_'.$this->prefix.'_post'))) != ($_COOKIE['rand_code'.$sequence])) ||
511
+ ($_COOKIE['rand_code'.$sequence] == '')
512
+ )
513
+ )
514
+ {
515
+ $_SESSION['rand_code'.$sequence] = '';
516
+ setCookie('rand_code'.$sequence, '', time()+36000,"/");
517
+ echo 'captchafailed';
518
+ exit;
519
+ }
520
+
521
+ // if this isn't the real post (it was the captcha verification) then echo ok and exit
522
+ if ( 'POST' != $_SERVER['REQUEST_METHOD'] || ! isset( $_POST[$this->prefix.'_pform_process'] ) )
523
+ {
524
+ echo 'ok';
525
+ exit;
526
+ }
527
+
528
+ //if (get_magic_quotes_gpc())
529
+ foreach ($_POST as $item => $value)
530
+ $_POST[$item] = (is_array($value)?$value:stripcslashes($value));
531
+
532
+ // get form info
533
+ //---------------------------
534
+ require_once(ABSPATH . "wp-admin" . '/includes/file.php');
535
+ $form_data = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)));
536
+ $fields = array();
537
+ foreach ($form_data[0] as $item)
538
+ {
539
+ $fields[$item->name] = $item->title;
540
+ if ($item->ftype == 'fPhone') // join fields for phone fields
541
+ {
542
+ for($i=0; $i<=substr_count($item->dformat," "); $i++)
543
+ {
544
+ $_POST[$item->name.$sequence] .= ($_POST[$item->name.$sequence."_".$i]!=''?($i==0?'':'-').$_POST[$item->name.$sequence."_".$i]:'');
545
+ unset($_POST[$item->name.$sequence."_".$i]);
546
+ }
547
+ }
548
+ }
549
+
550
+
551
+ // grab posted data
552
+ //---------------------------
553
+ $buffer = "";
554
+ $params = array();
555
+ $params["referrer"] = $_POST["refpage".$sequence];
556
+ foreach ($_POST as $item => $value)
557
+ if (isset($fields[str_replace($sequence,'',$item)]))
558
+ {
559
+ $buffer .= $fields[str_replace($sequence,'',$item)] . ": ". (is_array($value)?(implode(", ",$value)):($value)) . "\n\n";
560
+ $params[str_replace($sequence,'',$item)] = $value;
561
+ }
562
+
563
+ foreach ($_FILES as $item => $value)
564
+ if (isset($fields[str_replace($sequence,'',$item)]) && $this->check_upload($_FILES[$item]))
565
+ {
566
+ $buffer .= $fields[str_replace($sequence,'',$item)] . ": ". $value["name"] . "\n\n";
567
+ $params[str_replace($sequence,'',$item)] = $value["name"];
568
+ $movefile = wp_handle_upload( $_FILES[$item], array( 'test_form' => false ) );
569
+ if ( $movefile )
570
+ {
571
+ $params[str_replace($sequence,'',$item)."_link"] = $movefile["file"];
572
+ $params[str_replace($sequence,'',$item)."_url"] = $movefile["url"];
573
+ }
574
+ // else {print_r($movefile);exit;} // un-comment this line if the uploads aren't working
575
+ }
576
+ $buffer_A = $buffer;
577
+
578
+ $_SESSION['rand_code'.$sequence] = '';
579
+ setCookie('rand_code'.$sequence, '', time()+36000,"/");
580
+
581
+ // insert into database
582
+ //---------------------------
583
+ $wpdb->query("ALTER TABLE ".$wpdb->prefix.$this->table_messages." CHANGE `ipaddr` `ipaddr` VARCHAR(250)");
584
+ $to = $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field);
585
+ $rows_affected = $wpdb->insert( $wpdb->prefix.$this->table_messages, array( 'formid' => $this->item,
586
+ 'time' => current_time('mysql'),
587
+ 'ipaddr' => $this->getRealUserIP(),
588
+ 'notifyto' => (@$_POST[$to.$sequence]?$_POST[$to.$sequence]:''),
589
+ 'posted_data' => serialize($params),
590
+ 'data' =>$buffer_A
591
+ ) );
592
+ if (!$rows_affected)
593
+ {
594
+ echo 'Error saving data! Please try again.';
595
+ echo '<br /><br />If the error persists please be sure you are using the latest version and in that case contact support service at https://form2email.dwbooster.com/contact-us?debug=db';
596
+ exit;
597
+ }
598
+
599
+ $myrows = $wpdb->get_results( "SELECT MAX(id) as max_id FROM ".$wpdb->prefix.$this->table_messages );
600
+ $item_number = $myrows[0]->max_id;
601
+
602
+ $this->ready_to_go_reservation($item_number, "", $params);
603
+
604
+ if ($_POST[ $this->prefix."_pform_status"] == '1')
605
+ echo 'OK';
606
+ else
607
+ header("Location: ".$this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page));
608
+ exit();
609
+ }
610
+
611
+
612
+ function check_upload($uploadfiles) {
613
+ $filename = $uploadfiles['name'];
614
+ $filetype = wp_check_filetype( basename( $filename ), null );
615
+
616
+ if ( in_array ($filetype["ext"],array("php","asp","aspx","cgi","pl","perl","exe","cmd","js","msi")) )
617
+ return false;
618
+ else
619
+ return true;
620
+ }
621
+
622
+
623
+ function ready_to_go_reservation($itemnumber, $payer_email = "", $params = array())
624
+ {
625
+
626
+ global $wpdb;
627
+
628
+ $myrows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE id=%d", $itemnumber ) );
629
+
630
+ $mycalendarrows = $wpdb->get_results( $wpdb->prepare( 'SELECT * FROM '.$wpdb->prefix.$this->table_items.' WHERE `id`=%d', $myrows[0]->formid ) );
631
+
632
+ $this->item = $myrows[0]->formid;
633
+
634
+ $buffer_A = $myrows[0]->data;
635
+ $buffer = $buffer_A;
636
+
637
+ if ('true' == $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info))
638
+ {
639
+ $buffer .="ADDITIONAL INFORMATION\n"
640
+ ."*********************************\n"
641
+ ."IP: ".$myrows[0]->ipaddr."\n"
642
+ ."Server Time: ".date("Y-m-d H:i:s")."\n";
643
+ }
644
+
645
+ // 1- Send email
646
+ //---------------------------
647
+ $attachments = array();
648
+ if ('html' == $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format))
649
+ $message = str_replace('<%INFO%>',str_replace("\n","<br />",str_replace('<','&lt;',$buffer)),$this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message));
650
+ else
651
+ $message = str_replace('<%INFO%>',$buffer,$this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message));
652
+ $subject = $this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject);
653
+ foreach ($params as $item => $value)
654
+ {
655
+ $message = str_replace('<%'.$item.'%>',(is_array($value)?(implode(", ",$value)):($value)),$message);
656
+ $subject = str_replace('<%'.$item.'%>',(is_array($value)?(implode(", ",$value)):($value)),$subject);
657
+ if (strpos($item,"_link"))
658
+ $attachments[] = $value;
659
+ }
660
+
661
+ $message = str_replace('<%itemnumber%>',$itemnumber,$message);
662
+ $subject = str_replace('<%itemnumber%>',$itemnumber,$subject);
663
+
664
+ for ($i=0;$i<500;$i++)
665
+ {
666
+ $subject = str_replace('<%fieldname'.$i.'%>',"",$subject);
667
+ $message = str_replace('<%fieldname'.$i.'%>',"",$message);
668
+ }
669
+
670
+ $from = trim($this->get_option('fp_from_email', @CP_CFEMAIL_DEFAULT_fp_from_email));
671
+ $to = explode(",",$this->get_option('fp_destination_emails', @CP_CFEMAIL_DEFAULT_fp_destination_emails));
672
+ if ('html' == $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n";
673
+
674
+ $replyto = $myrows[0]->notifyto;
675
+ if ($this->get_option('fp_emailfrommethod', "fixed") == "customer")
676
+ $from_1 = $replyto;
677
+ else
678
+ $from_1 = $from;
679
+
680
+ if ($this->get_option('fp_enableemail', 'true') != 'false')
681
+ {
682
+ foreach ($to as $item)
683
+ if (trim($item) != '')
684
+ {
685
+ if (!strpos($from_1,">"))
686
+ $from_1 = '"'.$from_1.'" <'.$from_1.'>';
687
+ wp_mail(trim($item), $subject, $message,
688
+ "From: ".$from_1."\r\n".
689
+ ($replyto!=''?"Reply-To: \"$replyto\" <".$replyto.">\r\n":'').
690
+ $content_type.
691
+ "X-Mailer: PHP/" . phpversion(), $attachments);
692
+ }
693
+ }
694
+
695
+ // 2- Send copy to user
696
+ //---------------------------
697
+ $to = $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field);
698
+ $_POST[$to] = $myrows[0]->notifyto;
699
+ if ((trim($_POST[$to]) != '' || $payer_email != '') && 'true' == $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user))
700
+ {
701
+ if ('html' == $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format))
702
+ $message = str_replace('<%INFO%>',str_replace("\n","<br />",str_replace('<','&lt;',$buffer_A)).'</pre>',$this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message));
703
+ else
704
+ $message = str_replace('<%INFO%>',$buffer_A,$this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message));
705
+ $subject = $this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject);
706
+ foreach ($params as $item => $value)
707
+ {
708
+ $message = str_replace('<%'.$item.'%>',(is_array($value)?(implode(", ",$value)):($value)),$message);
709
+ $subject = str_replace('<%'.$item.'%>',(is_array($value)?(implode(", ",$value)):($value)),$subject);
710
+ }
711
+ if ('html' == $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n";
712
+
713
+ for ($i=0;$i<500;$i++)
714
+ {
715
+ $subject = str_replace('<%fieldname'.$i.'%>',"",$subject);
716
+ $message = str_replace('<%fieldname'.$i.'%>',"",$message);
717
+ }
718
+
719
+ if (!strpos($from,">"))
720
+ $from = '"'.$from.'" <'.$from.'>';
721
+
722
+ if ($_POST[$to] != '')
723
+ wp_mail(trim($_POST[$to]), $subject, $message,
724
+ "From: ".$from."\r\n".
725
+ $content_type.
726
+ "X-Mailer: PHP/" . phpversion());
727
+ if ($_POST[$to] != $payer_email && $payer_email != '')
728
+ wp_mail(trim($payer_email), $subject, $message,
729
+ "From: ".$from."\r\n".
730
+ $content_type.
731
+ "X-Mailer: PHP/" . phpversion());
732
+ }
733
+
734
+ }
735
+
736
+
737
+ function save_edition()
738
+ {
739
+ if (substr_count($_POST['editionarea'],"\\\""))
740
+ $_POST["editionarea"] = stripcslashes($_POST["editionarea"]);
741
+ if ($_POST["cfwpp_edit"] == 'js')
742
+ update_option('CP_CFTE_JS', base64_encode($_POST["editionarea"]));
743
+ else if ($_POST["cfwpp_edit"] == 'css')
744
+ update_option('CP_CFTE_CSS', base64_encode($_POST["editionarea"]));
745
+ }
746
+
747
+
748
+ function save_options()
749
+ {
750
+ global $wpdb;
751
+
752
+ $verify_nonce = wp_verify_nonce( $_POST['rsave'], 'cfpoll_update_actions_post');
753
+ if (!$verify_nonce)
754
+ {
755
+ echo 'Error: Form cannot be authenticated. Please contact our <a href="https://form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.';
756
+ return;
757
+ }
758
+
759
+ $this->item = $_POST[$this->prefix."_id"];
760
+
761
+ if (substr_count($_POST['form_structure'],"\\") > 30)
762
+ foreach ($_POST as $item => $value)
763
+ if (!is_array($value))
764
+ $_POST[$item] = stripcslashes($value);
765
+
766
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_enable", "VARCHAR(10)");
767
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_days", "VARCHAR(10)");
768
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_hour", "VARCHAR(10)");
769
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_emails", "text");
770
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_subject", "text");
771
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_emailformat", "VARCHAR(10)");
772
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_message", "text");
773
+ $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_page'," varchar(250) NOT NULL default ''");
774
+ $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_of'," varchar(250) NOT NULL default ''");
775
+ $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_submitbtn'," varchar(250) NOT NULL default ''");
776
+ $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_previousbtn'," varchar(250) NOT NULL default ''");
777
+ $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_nextbtn'," varchar(250) NOT NULL default ''");
778
+
779
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "onsubmitaction", "VARCHAR(10)");
780
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "fp_return_message", "text");
781
+ $this->add_field_verify($wpdb->prefix.$this->table_items, "fp_enableemail", "VARCHAR(10)");
782
+
783
+ $wpdb->update ( $wpdb->prefix.$this->table_items,
784
+ array(
785
+ 'form_structure' => $_POST['form_structure'],
786
+
787
+ 'fp_from_email' => $_POST['fp_from_email'],
788
+ 'fp_destination_emails' => $_POST['fp_destination_emails'],
789
+ 'fp_subject' => $_POST['fp_subject'],
790
+ 'fp_inc_additional_info' => $_POST['fp_inc_additional_info'],
791
+ 'fp_return_page' => $_POST['fp_return_page'],
792
+ 'fp_message' => $_POST['fp_message'],
793
+ 'fp_emailformat' => $_POST['fp_emailformat'],
794
+
795
+ 'cu_enable_copy_to_user' => $_POST['cu_enable_copy_to_user'],
796
+ 'cu_user_email_field' => $_POST['cu_user_email_field'],
797
+ 'cu_subject' => $_POST['cu_subject'],
798
+ 'cu_message' => $_POST['cu_message'],
799
+ 'cu_emailformat' => $_POST['cu_emailformat'],
800
+ 'fp_emailfrommethod' => $_POST['fp_emailfrommethod'],
801
+
802
+ 'onsubmitaction' => $_POST['onsubmitaction'],
803
+ 'fp_return_message' => $_POST['fp_return_message'],
804
+ 'fp_enableemail' => $_POST['fp_enableemail'],
805
+
806
+ 'vs_text_is_required' => $_POST['vs_text_is_required'],
807
+ 'vs_text_is_email' => $_POST['vs_text_is_email'],
808
+ 'vs_text_datemmddyyyy' => $_POST['vs_text_datemmddyyyy'],
809
+ 'vs_text_dateddmmyyyy' => $_POST['vs_text_dateddmmyyyy'],
810
+ 'vs_text_number' => $_POST['vs_text_number'],
811
+ 'vs_text_digits' => $_POST['vs_text_digits'],
812
+ 'vs_text_max' => $_POST['vs_text_max'],
813
+ 'vs_text_min' => $_POST['vs_text_min'],
814
+ 'vs_text_page' => $_POST['vs_text_page'],
815
+ 'vs_text_of' => $_POST['vs_text_of'],
816
+ 'vs_text_submitbtn' => $_POST['vs_text_submitbtn'],
817
+ 'vs_text_previousbtn' => $_POST['vs_text_previousbtn'],
818
+ 'vs_text_nextbtn' => $_POST['vs_text_nextbtn'],
819
+
820
+ 'rep_enable' => $_POST['rep_enable'],
821
+ 'rep_days' => $_POST['rep_days'],
822
+ 'rep_hour' => $_POST['rep_hour'],
823
+ 'rep_emails' => $_POST['rep_emails'],
824
+ 'rep_subject' => $_POST['rep_subject'],
825
+ 'rep_emailformat' => $_POST['rep_emailformat'],
826
+ 'rep_message' => $_POST['rep_message'],
827
+
828
+ 'cv_enable_captcha' => $_POST['cv_enable_captcha'],
829
+ 'cv_width' => $_POST['cv_width'],
830
+ 'cv_height' => $_POST['cv_height'],
831
+ 'cv_chars' => $_POST['cv_chars'],
832
+ 'cv_font' => $_POST['cv_font'],
833
+ 'cv_min_font_size' => $_POST['cv_min_font_size'],
834
+ 'cv_max_font_size' => $_POST['cv_max_font_size'],
835
+ 'cv_noise' => $_POST['cv_noise'],
836
+ 'cv_noise_length' => $_POST['cv_noise_length'],
837
+ 'cv_background' => str_replace('#','',$_POST['cv_background']),
838
+ 'cv_border' => str_replace('#','',$_POST['cv_border']),
839
+ 'cv_text_enter_valid_captcha' => $_POST['cv_text_enter_valid_captcha']
840
+ )
841
+ , array( 'id' => $this->item ));
842
+ }
843
+
844
+
845
+ function get_form_field_label ($fieldid, $form)
846
+ {
847
+ foreach($form as $item)
848
+ if ($item->name == $fieldid)
849
+ {
850
+ if (isset($item->shortlabel) && $item->shortlabel != '')
851
+ return $item->shortlabel;
852
+ else
853
+ return $item->title;
854
+ }
855
+ return $fieldid;
856
+ }
857
+
858
+
859
+ function export_csv ()
860
+ {
861
+ if (!is_admin())
862
+ return;
863
+ global $wpdb;
864
+
865
+ $this->item = intval($this->get_param("cal"));
866
+
867
+ if ($this->item)
868
+ {
869
+ $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)));
870
+ $form = $form[0];
871
+ }
872
+ else
873
+ $form = array();
874
+
875
+ $cond = '';
876
+ if ($this->get_param("search")) $cond .= " AND (data like '%".esc_sql($this->get_param("search"))."%' OR posted_data LIKE '%".esc_sql($this->get_param("search"))."%')";
877
+ if ($this->get_param("dfrom")) $cond .= " AND (`time` >= '".esc_sql($this->get_param("dfrom"))."')";
878
+ if ($this->get_param("dto")) $cond .= " AND (`time` <= '".esc_sql($this->get_param("dto"))." 23:59:59')";
879
+ if ($this->item != 0) $cond .= " AND formid=".intval($this->item);
880
+
881
+ $events = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE 1=1 ".$cond." ORDER BY `time` DESC" );
882
+
883
+ if ($this->include_user_data_csv)
884
+ $fields = array("ID","Form ID", "Time", "IP Address", "email");
885
+ else
886
+ $fields = array("ID","Form", "email");
887
+ $values = array();
888
+ foreach ($events as $item)
889
+ {
890
+ if ($this->include_user_data_csv)
891
+ $value = array($item->id,$item->formid, $item->time, $item->ipaddr, $item->notifyto);
892
+ else
893
+ $value = array($item->id,$this->get_option('form_name',''), $item->notifyto);
894
+ if ($item->posted_data)
895
+ $data = unserialize($item->posted_data);
896
+ else
897
+ $data = array();
898
+
899
+ $end = count($fields);
900
+ for ($i=0; $i<$end; $i++)
901
+ if (isset($data[$fields[$i]]) ){
902
+ $value[$i] = $data[$fields[$i]];
903
+ unset($data[$fields[$i]]);
904
+ }
905
+
906
+ if (is_array($data)) foreach ($data as $k => $d)
907
+ {
908
+ $fields[] = $k;
909
+ $value[] = $d;
910
+ }
911
+ $values[] = $value;
912
+ }
913
+
914
+ $filename = sanitize_file_name($this->get_option('form_name','export')).'_'.date("m_d_y");
915
+
916
+ header("Content-type: application/octet-stream");
917
+ header("Content-Disposition: attachment; filename=".$filename.".csv");
918
+
919
+ $end = count($fields);
920
+ for ($i=0; $i<$end; $i++)
921
+ echo '"'.str_replace('"','""', $this->get_form_field_label($fields[$i],$form)).'",';
922
+ echo "\n";
923
+ foreach ($values as $item)
924
+ {
925
+ for ($i=0; $i<$end; $i++)
926
+ {
927
+ if (!isset($item[$i]))
928
+ $item[$i] = '';
929
+ if (is_array($item[$i]))
930
+ $item[$i] = implode($item[$i],',');
931
+ echo '"'.str_replace('"','""', $item[$i]).'",';
932
+ }
933
+ echo "\n";
934
+ }
935
+
936
+ exit;
937
+ }
938
+
939
+ public function setId($id)
940
+ {
941
+ $this->item = $id;
942
+ }
943
+
944
+
945
+ public function translate_json($str)
946
+ {
947
+ $form_data = json_decode($this->cleanJSON($str));
948
+
949
+ $form_data[1][0]->title = __($form_data[1][0]->title,'contact-form-to-email');
950
+ $form_data[1][0]->description = __($form_data[1][0]->description,'contact-form-to-email');
951
+
952
+ for ($i=0; $i < count($form_data[0]); $i++)
953
+ {
954
+ $form_data[0][$i]->title = __($form_data[0][$i]->title,'contact-form-to-email');
955
+ $form_data[0][$i]->userhelpTooltip = __($form_data[0][$i]->userhelpTooltip,'contact-form-to-email');
956
+ $form_data[0][$i]->userhelp = __($form_data[0][$i]->userhelp,'contact-form-to-email');
957
+ if ($form_data[0][$i]->ftype == 'fCommentArea')
958
+ $form_data[0][$i]->userhelp = __($form_data[0][$i]->userhelp,'contact-form-to-email');
959
+ else
960
+ if ($form_data[0][$i]->ftype == 'fradio' || $form_data[0][$i]->ftype == 'fcheck' || $form_data[0][$i]->ftype == 'fradio')
961
+ {
962
+ for ($j=0; $j < count($form_data[0][$i]->choices); $j++)
963
+ $form_data[0][$i]->choices[$j] = __($form_data[0][$i]->choices[$j],'contact-form-to-email');
964
+ }
965
+ }
966
+ $str = json_encode($form_data);
967
+ return $str;
968
+ }
969
+
970
+
971
+ private function get_records_csv($formid, $form_name = "")
972
+ {
973
+ global $wpdb;
974
+
975
+ $saved_item = $this->item;
976
+ $this->item = intval($formid);
977
+
978
+ $last_sent_id = get_option('cp_cfte_last_sent_id_'.$formid, '0');
979
+ $events = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE formid=%d AND id>%d ORDER BY id ASC", $formid, $last_sent_id) );
980
+
981
+ if ($wpdb->num_rows <= 0) // if no rows, return empty
982
+ return '';
983
+
984
+ if ($this->item)
985
+ {
986
+ $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure)));
987
+ $form = $form[0];
988
+ }
989
+ else
990
+ $form = array();
991
+
992
+ $buffer = '';
993
+ if ($this->include_user_data_csv)
994
+ $fields = array("Submission ID","Form ID", "Time", "IP Address", "email");
995
+ else
996
+ $fields = array("Submission ID", "Form", "email");
997
+ $values = array();
998
+ foreach ($events as $item)
999
+ {
1000
+ if ($this->include_user_data_csv)
1001
+ $value = array($item->id, $item->formid, $item->time, $item->ipaddr, $item->notifyto);
1002
+ else
1003
+ $value = array($item->id, $form_name, $item->notifyto);
1004
+ $last_sent_id = $item->id;
1005
+ if ($item->posted_data)
1006
+ $data = unserialize($item->posted_data);
1007
+ else
1008
+ $data = array();
1009
+
1010
+ $end = count($fields);
1011
+ for ($i=0; $i<$end; $i++)
1012
+ if (isset($data[$fields[$i]]) ){
1013
+ $value[$i] = $data[$fields[$i]];
1014
+ unset($data[$fields[$i]]);
1015
+ }
1016
+
1017
+ if (is_array($data)) foreach ($data as $k => $d)
1018
+ {
1019
+ $fields[] = $k;
1020
+ $value[] = $d;
1021
+ }
1022
+ $values[] = $value;
1023
+ }
1024
+ update_option('cp_cfte_last_sent_id_'.$formid, $last_sent_id);
1025
+
1026
+ $end = count($fields);
1027
+ for ($i=0; $i<$end; $i++)
1028
+ $buffer .= '"'.str_replace('"','""', $this->get_form_field_label($fields[$i],$form)).'",';
1029
+ $buffer .= "\n";
1030
+ foreach ($values as $item)
1031
+ {
1032
+ for ($i=0; $i<$end; $i++)
1033
+ {
1034
+ if (!isset($item[$i]))
1035
+ $item[$i] = '';
1036
+ if (is_array($item[$i]))
1037
+ $item[$i] = implode($item[$i],',');
1038
+ $buffer .= '"'.str_replace('"','""', $item[$i]).'",';
1039
+ }
1040
+ $buffer .= "\n";
1041
+ }
1042
+
1043
+ $this->item = $saved_item;
1044
+ return $buffer;
1045
+
1046
+ }
1047
+
1048
+ private function check_reports() {
1049
+ global $wpdb;
1050
+
1051
+ $last_verified = get_option('cp_cfte_last_verified','');
1052
+ if ( $last_verified == '' || $last_verified < date("Y-m-d H:i:s", strtotime("-1 minutes")) ) // verification to don't check too fast to avoid overloading the site
1053
+ {
1054
+ update_option('cp_cfte_last_verified',date("Y-m-d H:i:s"));
1055
+
1056
+ // global reports for all forms
1057
+ if (get_option('cp_cfte_rep_enable', 'no') == 'yes' && get_option('cp_cfte_rep_days', '') != '' && get_option('cp_cfte_rep_emails', '') != '' )
1058
+ {
1059
+ $formid = 0;
1060
+ $verify_after = date("Y-m-d H:i:s", strtotime("-".get_option('cp_cfte_rep_days', '')." days"));
1061
+ $last_sent = get_option('cp_cfte_last_sent'.$formid, '');
1062
+ if ($last_sent == '' || $last_sent < $verify_after) // check if this form needs to check for a new report
1063
+ {
1064
+ update_option('cp_cfte_last_sent'.$formid, date("Y-m-d ".(get_option('cp_cfte_rep_hour', '')<'10'?'0':'').get_option('cp_cfte_rep_hour', '').":00:00"));
1065
+ $text = '';
1066
+ $forms = $wpdb->get_results("SELECT id,fp_from_email,form_name,rep_days,rep_hour,rep_emails,rep_subject,rep_emailformat,rep_message,rep_enable FROM ".$wpdb->prefix.$this->table_items." WHERE rep_emails<>'' AND rep_enable='yes'");
1067
+ $attachments = array();
1068
+ foreach ($forms as $form) // for each form with the reports enabled
1069
+ {
1070
+ $csv = $this->get_records_csv($form->id, $form->form_name);
1071
+ if ($csv != '')
1072
+ {
1073
+ $text = "- ".substr_count($csv,",\n\"").' submissions from '.$form->form_name."\n";
1074
+ $filename = sanitize_file_name($form->form_name).'_'.date("m_d_y");
1075
+ $filename = WP_CONTENT_DIR . '/uploads/'.$filename .'.csv';
1076
+ $handle = fopen($filename, 'w');
1077
+ fwrite($handle,$csv);
1078
+ fclose($handle);
1079
+ $attachments[] = $filename;
1080
+ }
1081
+ }
1082
+ if ('html' == get_option('cp_cfte_rep_emailformat','')) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n";
1083
+ if (count($attachments))
1084
+ wp_mail( str_replace(" ","",str_replace(";",",",get_option('cp_cfte_rep_emails',''))), get_option('cp_cfte_rep_subject',''), get_option('cp_cfte_rep_message','')."\n".$text,
1085
+ "From: \"".get_option('cp_cfte_fp_from_email','')."\" <".get_option('cp_cfte_fp_from_email','').">\r\n".
1086
+ $content_type.
1087
+ "X-Mailer: PHP/" . phpversion(),
1088
+ @$attachments);
1089
+ }
1090
+ }
1091
+
1092
+ // reports for specific forms
1093
+ $forms = $wpdb->get_results("SELECT id,form_name,fp_from_email,rep_days,rep_hour,rep_emails,rep_subject,rep_emailformat,rep_message,rep_enable FROM ".$wpdb->prefix.$this->table_items." WHERE rep_emails<>'' AND rep_enable='yes'");
1094
+ foreach ($forms as $form) // for each form with the reports enabled
1095
+ {
1096
+ $formid = $form->id;
1097
+ $verify_after = date("Y-m-d H:i:s", strtotime("-".$form->rep_days." days"));
1098
+ $last_sent = get_option('cp_cfte_last_sent'.$formid, '');
1099
+ if ($last_sent == '' || $last_sent < $verify_after) // check if this form needs to check for a new report
1100
+ {
1101
+ update_option('cp_cfte_last_sent'.$formid, date("Y-m-d ".($form->rep_hour<'10'?'0':'').$form->rep_hour.":00:00"));
1102
+ $csv = $this->get_records_csv($formid, $form->form_name);
1103
+ if ($csv != '')
1104
+ {
1105
+ $filename = sanitize_file_name($form->form_name).'_'.date("m_d_y");
1106
+ $filename = WP_CONTENT_DIR . '/uploads/'.$filename .'.csv';
1107
+ $handle = fopen($filename, 'w');
1108
+ fwrite($handle,$csv);
1109
+ fclose($handle);
1110
+ $attachments = array( $filename );
1111
+ if ('html' == $form->rep_emailformat) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n";
1112
+ wp_mail( str_replace(" ","",str_replace(";",",",$form->rep_emails)), $form->rep_subject, $form->rep_message,
1113
+ "From: \"".$form->fp_from_email."\" <".$form->fp_from_email.">\r\n".
1114
+ $content_type.
1115
+ "X-Mailer: PHP/" . phpversion(),
1116
+ @$attachments);
1117
+ }
1118
+ }
1119
+ } // end foreach
1120
+ } // end if
1121
+ } // end check_reports function
1122
+
1123
+
1124
+ } // end class
1125
+
1126
+
1127
+ ?>
cp-public-int.inc.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( !defined('CP_AUTH_INCLUDE') ) { echo 'Direct access not allowed.'; exit; } ?>
2
+ <?php
3
+ $custom_styles = base64_decode(get_option('CP_CFTE_CSS', ''));
4
+ if ($custom_styles != '')
5
+ echo '<style type="text/css">'.$custom_styles.'</style>';
6
+ $custom_scripts = base64_decode(get_option('CP_CFTE_JS', ''));
7
+ if ($custom_scripts != '')
8
+ echo '<script type="text/javascript">'.$custom_scripts.'</script>';
9
+ ?>
10
+ <form class="cpp_form" name="<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>" id="<?php echo $this->prefix; ?>_pform<?php echo '_'.$this->print_counter; ?>" action="<?php $this->get_site_url(); ?>" method="post" enctype="multipart/form-data" onsubmit="return <?php echo $this->prefix; ?>_pform_doValidate<?php echo '_'.$this->print_counter; ?>(this);"><input type="hidden" name="cp_pform_psequence" value="<?php echo '_'.$this->print_counter; ?>" /><input type="hidden" name="<?php echo $this->prefix; ?>_pform_process" value="1" /><input type="hidden" name="<?php echo $this->prefix; ?>_id" value="<?php echo $this->item; ?>" /><input type="hidden" name="cp_ref_page" value="<?php esc_attr($this->get_site_url()); ?>" /><input type="hidden" name="form_structure<?php echo '_'.$this->print_counter; ?>" id="form_structure<?php echo '_'.$this->print_counter; ?>" size="180" value="<?php echo str_replace('"','&quot;',str_replace("\r","",str_replace("\n","",esc_attr($this->cleanJSON($this->translate_json($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure))))))); ?>" /><input type="hidden" name="refpage<?php echo '_'.$this->print_counter; ?>" id="refpage<?php echo '_'.$this->print_counter; ?>" value=""><input type="hidden" name="<?php echo $this->prefix; ?>_pform_status" value="0" />
11
+ <div id="fbuilder">
12
+ <div id="fbuilder<?php echo '_'.$this->print_counter; ?>">
13
+ <div id="formheader<?php echo '_'.$this->print_counter; ?>"></div>
14
+ <div id="fieldlist<?php echo '_'.$this->print_counter; ?>"></div>
15
+ </div>
16
+ </div>
17
+ <div id="cpcaptchalayer<?php echo '_'.$this->print_counter; ?>" class="cpcaptchalayer">
18
+ <?php if ($this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha) != 'false') { ?>
19
+ <?php _e("Security Code",'contact-form-to-email'); ?>:<br />
20
+ <img src="<?php echo $this->get_site_url().'/?'.$this->prefix.'_captcha=captcha&ps=_'.$this->print_counter.'&inAdmin=1&width='.$this->get_option('cv_width', CP_CFEMAIL_DEFAULT_cv_width).'&height='.$this->get_option('cv_height', CP_CFEMAIL_DEFAULT_cv_height).'&letter_count='.$this->get_option('cv_chars', CP_CFEMAIL_DEFAULT_cv_chars).'&min_size='.$this->get_option('cv_min_font_size', CP_CFEMAIL_DEFAULT_cv_min_font_size).'&max_size='.$this->get_option('cv_max_font_size', CP_CFEMAIL_DEFAULT_cv_max_font_size).'&noise='.$this->get_option('cv_noise', CP_CFEMAIL_DEFAULT_cv_noise).'&noiselength='.$this->get_option('cv_noise_length', CP_CFEMAIL_DEFAULT_cv_noise_length).'&bcolor='.$this->get_option('cv_background', CP_CFEMAIL_DEFAULT_cv_background).'&border='.$this->get_option('cv_border', CP_CFEMAIL_DEFAULT_cv_border).'&font='.$this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font); ?>" id="captchaimg<?php echo '_'.$this->print_counter; ?>" alt="security code" border="0" />
21
+ <br /><?php _e("Please enter the security code",'contact-form-to-email'); ?>:<br />
22
+ <div class="dfield"><input type="text" size="20" name="hdcaptcha_<?php echo $this->prefix; ?>_post" id="hdcaptcha_<?php echo $this->prefix; ?>_post<?php echo '_'.$this->print_counter; ?>" value="" />
23
+ <div class="cpefb_error message" id="hdcaptcha_error<?php echo '_'.$this->print_counter; ?>" generated="true" style="display:none;position: absolute; left: 0px; top: 25px;"><?php echo esc_attr(__($this->get_option('cv_text_enter_valid_captcha', CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha),'contact-form-to-email')); ?></div>
24
+ </div><br />
25
+ <?php } ?>
26
+ </div>
27
+ <div id="cp_subbtn<?php echo '_'.$this->print_counter; ?>" class="cp_subbtn"><?php _e($button_label); ?></div>
28
+ </form>
cp_admin_int_edition.inc.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !is_admin() )
4
+ {
5
+ echo 'Direct access not allowed.';
6
+ exit;
7
+ }
8
+
9
+ global $wpdb;
10
+
11
+ $cpid = 'CP_CFTE';
12
+ $plugslug = $this->menu_parameter;
13
+
14
+ if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST[$cpid.'_post_edition'] ) )
15
+ echo "<div id='setting-error-settings_updated' class='updated settings-error'> <p><strong>Settings saved.</strong></p></div>";
16
+
17
+ if ($_GET["item"] == 'js')
18
+ $saved_contents = base64_decode(get_option($cpid.'_JS', ''));
19
+ else if ($_GET["item"] == 'css')
20
+ $saved_contents = base64_decode(get_option($cpid.'_CSS', ''));
21
+
22
+ ?>
23
+ <div class="wrap">
24
+ <h1>Customization / Edit Page</h1>
25
+
26
+
27
+
28
+ <input type="button" name="backbtn" value="Back to items list..." onclick="document.location='admin.php?page=<?php echo $plugslug; ?>';">
29
+ <br /><br />
30
+
31
+ <form method="post" action="" name="cpformconf">
32
+ <input name="<?php echo $cpid; ?>_post_edition" type="hidden" value="1" />
33
+ <input name="cfwpp_edit" type="hidden" value="<?php echo $_GET["item"]; ?>" />
34
+
35
+ <div id="normal-sortables" class="meta-box-sortables">
36
+
37
+ <textarea name="editionarea" id="editionarea" style="width:100%" rows="20"><?php echo $saved_contents; ?></textarea>
38
+
39
+ </div>
40
+
41
+
42
+ <p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="Save Changes" /></p>
43
+
44
+
45
+ </form>
46
+ </div>
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png ADDED
Binary file
css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png ADDED
Binary file
css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png ADDED
Binary file
css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png ADDED
Binary file
css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png ADDED
Binary file
css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png ADDED
Binary file
css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png ADDED
Binary file
css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png ADDED
Binary file
css/cupertino/images/ui-icons_2694e8_256x240.png ADDED
Binary file
css/cupertino/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
css/cupertino/images/ui-icons_3d80b3_256x240.png ADDED
Binary file
css/cupertino/images/ui-icons_72a7cf_256x240.png ADDED
Binary file
css/cupertino/images/ui-icons_ffffff_256x240.png ADDED
Binary file
css/cupertino/jquery-ui-1.8.20.custom.css ADDED
@@ -0,0 +1,565 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery UI CSS Framework 1.8.20
3
+ *
4
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
17
+ .ui-helper-clearfix:after { clear: both; }
18
+ .ui-helper-clearfix { zoom: 1; }
19
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
20
+
21
+
22
+ /* Interaction Cues
23
+ ----------------------------------*/
24
+ .ui-state-disabled { cursor: default !important; }
25
+
26
+
27
+ /* Icons
28
+ ----------------------------------*/
29
+
30
+ /* states and images */
31
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
32
+
33
+
34
+ /* Misc visuals
35
+ ----------------------------------*/
36
+
37
+ /* Overlays */
38
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
39
+
40
+
41
+ /*!
42
+ * jQuery UI CSS Framework 1.8.20
43
+ *
44
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
45
+ * Dual licensed under the MIT or GPL Version 2 licenses.
46
+ * http://jquery.org/license
47
+ *
48
+ * http://docs.jquery.com/UI/Theming/API
49
+ *
50
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
51
+ */
52
+
53
+
54
+ /* Component containers
55
+ ----------------------------------*/
56
+ .ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
57
+ .ui-widget .ui-widget { font-size: 1em; }
58
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
59
+ .ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
60
+ .ui-widget-content a { color: #362b36; }
61
+ .ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
62
+ .ui-widget-header a { color: #222222; }
63
+
64
+ /* Interaction states
65
+ ----------------------------------*/
66
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; }
67
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
68
+ .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 { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; }
69
+ .ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
70
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
71
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
72
+ .ui-widget :active { outline: none; }
73
+
74
+ /* Interaction Cues
75
+ ----------------------------------*/
76
+ .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; }
77
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
78
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
79
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
80
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
81
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
82
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
83
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
84
+
85
+ /* Icons
86
+ ----------------------------------*/
87
+
88
+ /* states and images */
89
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); }
90
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
91
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
92
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); }
93
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); }
94
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
95
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
96
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
97
+
98
+ /* positioning */
99
+ .ui-icon-carat-1-n { background-position: 0 0; }
100
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
101
+ .ui-icon-carat-1-e { background-position: -32px 0; }
102
+ .ui-icon-carat-1-se { background-position: -48px 0; }
103
+ .ui-icon-carat-1-s { background-position: -64px 0; }
104
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
105
+ .ui-icon-carat-1-w { background-position: -96px 0; }
106
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
107
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
108
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
109
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
110
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
111
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
112
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
113
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
114
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
115
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
116
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
117
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
118
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
119
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
120
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
121
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
122
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
123
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
124
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
125
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
126
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
127
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
128
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
129
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
130
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
131
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
132
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
133
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
134
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
135
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
136
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
137
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
138
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
139
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
140
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
141
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
142
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
143
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
144
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
145
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
146
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
147
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
148
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
149
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
150
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
151
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
152
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
153
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
154
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
155
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
156
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
157
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
158
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
159
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
160
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
161
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
162
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
163
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
164
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
165
+ .ui-icon-extlink { background-position: -32px -80px; }
166
+ .ui-icon-newwin { background-position: -48px -80px; }
167
+ .ui-icon-refresh { background-position: -64px -80px; }
168
+ .ui-icon-shuffle { background-position: -80px -80px; }
169
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
170
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
171
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
172
+ .ui-icon-folder-open { background-position: -16px -96px; }
173
+ .ui-icon-document { background-position: -32px -96px; }
174
+ .ui-icon-document-b { background-position: -48px -96px; }
175
+ .ui-icon-note { background-position: -64px -96px; }
176
+ .ui-icon-mail-closed { background-position: -80px -96px; }
177
+ .ui-icon-mail-open { background-position: -96px -96px; }
178
+ .ui-icon-suitcase { background-position: -112px -96px; }
179
+ .ui-icon-comment { background-position: -128px -96px; }
180
+ .ui-icon-person { background-position: -144px -96px; }
181
+ .ui-icon-print { background-position: -160px -96px; }
182
+ .ui-icon-trash { background-position: -176px -96px; }
183
+ .ui-icon-locked { background-position: -192px -96px; }
184
+ .ui-icon-unlocked { background-position: -208px -96px; }
185
+ .ui-icon-bookmark { background-position: -224px -96px; }
186
+ .ui-icon-tag { background-position: -240px -96px; }
187
+ .ui-icon-home { background-position: 0 -112px; }
188
+ .ui-icon-flag { background-position: -16px -112px; }
189
+ .ui-icon-calendar { background-position: -32px -112px; }
190
+ .ui-icon-cart { background-position: -48px -112px; }
191
+ .ui-icon-pencil { background-position: -64px -112px; }
192
+ .ui-icon-clock { background-position: -80px -112px; }
193
+ .ui-icon-disk { background-position: -96px -112px; }
194
+ .ui-icon-calculator { background-position: -112px -112px; }
195
+ .ui-icon-zoomin { background-position: -128px -112px; }
196
+ .ui-icon-zoomout { background-position: -144px -112px; }
197
+ .ui-icon-search { background-position: -160px -112px; }
198
+ .ui-icon-wrench { background-position: -176px -112px; }
199
+ .ui-icon-gear { background-position: -192px -112px; }
200
+ .ui-icon-heart { background-position: -208px -112px; }
201
+ .ui-icon-star { background-position: -224px -112px; }
202
+ .ui-icon-link { background-position: -240px -112px; }
203
+ .ui-icon-cancel { background-position: 0 -128px; }
204
+ .ui-icon-plus { background-position: -16px -128px; }
205
+ .ui-icon-plusthick { background-position: -32px -128px; }
206
+ .ui-icon-minus { background-position: -48px -128px; }
207
+ .ui-icon-minusthick { background-position: -64px -128px; }
208
+ .ui-icon-close { background-position: -80px -128px; }
209
+ .ui-icon-closethick { background-position: -96px -128px; }
210
+ .ui-icon-key { background-position: -112px -128px; }
211
+ .ui-icon-lightbulb { background-position: -128px -128px; }
212
+ .ui-icon-scissors { background-position: -144px -128px; }
213
+ .ui-icon-clipboard { background-position: -160px -128px; }
214
+ .ui-icon-copy { background-position: -176px -128px; }
215
+ .ui-icon-contact { background-position: -192px -128px; }
216
+ .ui-icon-image { background-position: -208px -128px; }
217
+ .ui-icon-video { background-position: -224px -128px; }
218
+ .ui-icon-script { background-position: -240px -128px; }
219
+ .ui-icon-alert { background-position: 0 -144px; }
220
+ .ui-icon-info { background-position: -16px -144px; }
221
+ .ui-icon-notice { background-position: -32px -144px; }
222
+ .ui-icon-help { background-position: -48px -144px; }
223
+ .ui-icon-check { background-position: -64px -144px; }
224
+ .ui-icon-bullet { background-position: -80px -144px; }
225
+ .ui-icon-radio-off { background-position: -96px -144px; }
226
+ .ui-icon-radio-on { background-position: -112px -144px; }
227
+ .ui-icon-pin-w { background-position: -128px -144px; }
228
+ .ui-icon-pin-s { background-position: -144px -144px; }
229
+ .ui-icon-play { background-position: 0 -160px; }
230
+ .ui-icon-pause { background-position: -16px -160px; }
231
+ .ui-icon-seek-next { background-position: -32px -160px; }
232
+ .ui-icon-seek-prev { background-position: -48px -160px; }
233
+ .ui-icon-seek-end { background-position: -64px -160px; }
234
+ .ui-icon-seek-start { background-position: -80px -160px; }
235
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
236
+ .ui-icon-seek-first { background-position: -80px -160px; }
237
+ .ui-icon-stop { background-position: -96px -160px; }
238
+ .ui-icon-eject { background-position: -112px -160px; }
239
+ .ui-icon-volume-off { background-position: -128px -160px; }
240
+ .ui-icon-volume-on { background-position: -144px -160px; }
241
+ .ui-icon-power { background-position: 0 -176px; }
242
+ .ui-icon-signal-diag { background-position: -16px -176px; }
243
+ .ui-icon-signal { background-position: -32px -176px; }
244
+ .ui-icon-battery-0 { background-position: -48px -176px; }
245
+ .ui-icon-battery-1 { background-position: -64px -176px; }
246
+ .ui-icon-battery-2 { background-position: -80px -176px; }
247
+ .ui-icon-battery-3 { background-position: -96px -176px; }
248
+ .ui-icon-circle-plus { background-position: 0 -192px; }
249
+ .ui-icon-circle-minus { background-position: -16px -192px; }
250
+ .ui-icon-circle-close { background-position: -32px -192px; }
251
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
252
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
253
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
254
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
255
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
256
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
257
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
258
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
259
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
260
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
261
+ .ui-icon-circle-check { background-position: -208px -192px; }
262
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
263
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
264
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
265
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
266
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
267
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
268
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
269
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
270
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
271
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
272
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
273
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
274
+
275
+
276
+ /* Misc visuals
277
+ ----------------------------------*/
278
+
279
+ /* Corner radius */
280
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
281
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
282
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
283
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
284
+
285
+ /* Overlays */
286
+ .ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
287
+ .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
288
+ * jQuery UI Resizable 1.8.20
289
+ *
290
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
291
+ * Dual licensed under the MIT or GPL Version 2 licenses.
292
+ * http://jquery.org/license
293
+ *
294
+ * http://docs.jquery.com/UI/Resizable#theming
295
+ */
296
+ .ui-resizable { position: relative;}
297
+ .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
298
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
299
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
300
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
301
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
302
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
303
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
304
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
305
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
306
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
307
+ * jQuery UI Selectable 1.8.20
308
+ *
309
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
310
+ * Dual licensed under the MIT or GPL Version 2 licenses.
311
+ * http://jquery.org/license
312
+ *
313
+ * http://docs.jquery.com/UI/Selectable#theming
314
+ */
315
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
316
+ /*!
317
+ * jQuery UI Accordion 1.8.20
318
+ *
319
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
320
+ * Dual licensed under the MIT or GPL Version 2 licenses.
321
+ * http://jquery.org/license
322
+ *
323
+ * http://docs.jquery.com/UI/Accordion#theming
324
+ */
325
+ /* IE/Win - Fix animation bug - #4615 */
326
+ .ui-accordion { width: 100%; }
327
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
328
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
329
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
330
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
331
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
332
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
333
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
334
+ .ui-accordion .ui-accordion-content-active { display: block; }
335
+ /*!
336
+ * jQuery UI Autocomplete 1.8.20
337
+ *
338
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
339
+ * Dual licensed under the MIT or GPL Version 2 licenses.
340
+ * http://jquery.org/license
341
+ *
342
+ * http://docs.jquery.com/UI/Autocomplete#theming
343
+ */
344
+ .ui-autocomplete { position: absolute; cursor: default; }
345
+
346
+ /* workarounds */
347
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
348
+
349
+ /*
350
+ * jQuery UI Menu 1.8.20
351
+ *
352
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
353
+ * Dual licensed under the MIT or GPL Version 2 licenses.
354
+ * http://jquery.org/license
355
+ *
356
+ * http://docs.jquery.com/UI/Menu#theming
357
+ */
358
+ .ui-menu {
359
+ list-style:none;
360
+ padding: 2px;
361
+ margin: 0;
362
+ display:block;
363
+ float: left;
364
+ }
365
+ .ui-menu .ui-menu {
366
+ margin-top: -3px;
367
+ }
368
+ .ui-menu .ui-menu-item {
369
+ margin:0;
370
+ padding: 0;
371
+ zoom: 1;
372
+ float: left;
373
+ clear: left;
374
+ width: 100%;
375
+ }
376
+ .ui-menu .ui-menu-item a {
377
+ text-decoration:none;
378
+ display:block;
379
+ padding:.2em .4em;
380
+ line-height:1.5;
381
+ zoom:1;
382
+ }
383
+ .ui-menu .ui-menu-item a.ui-state-hover,
384
+ .ui-menu .ui-menu-item a.ui-state-active {
385
+ font-weight: normal;
386
+ margin: -1px;
387
+ }
388
+ /*!
389
+ * jQuery UI Button 1.8.20
390
+ *
391
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
392
+ * Dual licensed under the MIT or GPL Version 2 licenses.
393
+ * http://jquery.org/license
394
+ *
395
+ * http://docs.jquery.com/UI/Button#theming
396
+ */
397
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
398
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
399
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
400
+ .ui-button-icons-only { width: 3.4em; }
401
+ button.ui-button-icons-only { width: 3.7em; }
402
+
403
+ /*button text element */
404
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
405
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
406
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
407
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
408
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
409
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
410
+ /* no icon support for input elements, provide padding by default */
411
+ input.ui-button { padding: .4em 1em; }
412
+
413
+ /*button icon element(s) */
414
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
415
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
416
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
417
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
418
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
419
+
420
+ /*button sets*/
421
+ .ui-buttonset { margin-right: 7px; }
422
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
423
+
424
+ /* workarounds */
425
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
426
+ /*!
427
+ * jQuery UI Dialog 1.8.20
428
+ *
429
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
430
+ * Dual licensed under the MIT or GPL Version 2 licenses.
431
+ * http://jquery.org/license
432
+ *
433
+ * http://docs.jquery.com/UI/Dialog#theming
434
+ */
435
+ .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
436
+ .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
437
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
438
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
439
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
440
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
441
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
442
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
443
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
444
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
445
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
446
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
447
+ /*!
448
+ * jQuery UI Slider 1.8.20
449
+ *
450
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
451
+ * Dual licensed under the MIT or GPL Version 2 licenses.
452
+ * http://jquery.org/license
453
+ *
454
+ * http://docs.jquery.com/UI/Slider#theming
455
+ */
456
+ .ui-slider { position: relative; text-align: left; }
457
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
458
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
459
+
460
+ .ui-slider-horizontal { height: .8em; }
461
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
462
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
463
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
464
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
465
+
466
+ .ui-slider-vertical { width: .8em; height: 100px; }
467
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
468
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
469
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
470
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
471
+ * jQuery UI Tabs 1.8.20
472
+ *
473
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
474
+ * Dual licensed under the MIT or GPL Version 2 licenses.
475
+ * http://jquery.org/license
476
+ *
477
+ * http://docs.jquery.com/UI/Tabs#theming
478
+ */
479
+
480
+ #tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; width:auto}
481
+ #tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
482
+ #tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none;width:auto }
483
+ #tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; width:auto}
484
+ #tabs .ui-tabs-nav li.ui-tabs-selected a, #tabs .ui-tabs-nav li.ui-state-disabled a, #tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; width:auto}
485
+ #tabs .ui-tabs-nav li a, #tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
486
+ #tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none;width:auto;float:none }
487
+ #tabs .ui-tabs-hide { display: none !important; }
488
+ /*!
489
+ * jQuery UI Datepicker 1.8.20
490
+ *
491
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
492
+ * Dual licensed under the MIT or GPL Version 2 licenses.
493
+ * http://jquery.org/license
494
+ *
495
+ * http://docs.jquery.com/UI/Datepicker#theming
496
+ */
497
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
498
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
499
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
500
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
501
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
502
+ .ui-datepicker .ui-datepicker-next { right:2px; }
503
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
504
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
505
+ .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; }
506
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
507
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
508
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
509
+ .ui-datepicker select.ui-datepicker-month,
510
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
511
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
512
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
513
+ .ui-datepicker td { border: 0; padding: 1px; }
514
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
515
+ .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; }
516
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
517
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
518
+
519
+ /* with multiple calendars */
520
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
521
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
522
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
523
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
524
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
525
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
526
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
527
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
528
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
529
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
530
+
531
+ /* RTL support */
532
+ .ui-datepicker-rtl { direction: rtl; }
533
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
534
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
535
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
536
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
537
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
538
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
539
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
540
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
541
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
542
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
543
+
544
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
545
+ .ui-datepicker-cover {
546
+ display: none; /*sorry for IE5*/
547
+ display/**/: block; /*sorry for IE5*/
548
+ position: absolute; /*must have*/
549
+ z-index: -1; /*must have*/
550
+ filter: mask(); /*must have*/
551
+ top: -4px; /*must have*/
552
+ left: -4px; /*must have*/
553
+ width: 200px; /*must have*/
554
+ height: 200px; /*must have*/
555
+ }/*!
556
+ * jQuery UI Progressbar 1.8.20
557
+ *
558
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
559
+ * Dual licensed under the MIT or GPL Version 2 licenses.
560
+ * http://jquery.org/license
561
+ *
562
+ * http://docs.jquery.com/UI/Progressbar#theming
563
+ */
564
+ .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
565
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
css/style.css ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .form-builder{font-size:11px;}
2
+ .clearer{clear:both;}
3
+ .column{float:left;}
4
+ .columnr{float:right;}
5
+ .width50{width:48%}
6
+ .width20{width:24%}
7
+ .width40{width:40%}
8
+ .width30{width:30%}
9
+ .padding10{padding:10px;}
10
+ .button, .form-builder .button{float:left;margin:5px 15px;}
11
+ .button.n span{color:#AED0EA}
12
+ #tabs{height:450px;overflow:auto}
13
+ #fbuilder{height:440px;overflow:auto;position:relative;}
14
+ #fbuilder .fields{border:1px solid transparent;padding:3px 10px 14px 10px;margin:5px 0px;display:block;position:relative}
15
+ #fbuilder .fields .arrow{position:absolute;left:-15px;top:20px;display:none}
16
+ #fbuilder .fields .remove{position:absolute;bottom:0;right:0;display:none;background-color:#fff;cursor:pointer}
17
+ .choicesSet{border:1px dashed #888;margin:10px 0px;padding:5px}
18
+ .choicesEdit input[type=text]{width:130px;}
19
+ .choicesEdit,.choicesEditDep{position:relative;}
20
+ .choicesSet .t{margin-left:18px;width:115px;float:left}
21
+ .choicesEdit .choice_add{position:absolute;top:5px;left:278px;cursor:pointer;}
22
+ .choicesEdit .choice_remove{position:absolute;top:5px;left:293px;cursor:pointer;}
23
+ .choicesEditDep .choice_addDep{position:absolute;top:5px;left:278px;cursor:pointer;}
24
+ .choicesEditDep .choice_removeDep{position:absolute;top:5px;left:293px;cursor:pointer;}
25
+ .choicesEditDep select{width:170px;}
26
+ .ui-widget-content .choice_addDep.ui-icon {background-image: url(cupertino/images/ui-icons_2e83ff_256x240.png); }
27
+ .ui-widget-content .choice_removeDep.ui-icon {background-image: url(cupertino/images/ui-icons_2e83ff_256x240.png); }
28
+ .showHideDependencies,.dep{float:right}
29
+ .choicesSet.hide {display:block;visibility: visible}
30
+ .choicesSet.hide .choicesEditDep{display:none}
31
+ .choicesSet.show .choicesEditDep{display:block}
32
+ a.helpfbuilder.dep{font-size:100%;padding-left:10px}
33
+ input [disabled] {background-color: #f00;}
34
+ input [readonly] {background-color: #f00;}
35
+ #fbuilder .fields.ui-selected{background-color:#DFEFFF;border:1px solid #C2D7EF}
36
+ #fbuilder .fields.ui-selected .arrow,#fbuilder .fields.ui-selected .remove{display:inline}
37
+ #fbuilder .fields.ui-over{border:1px dashed #888;}
38
+
39
+ #fbuilder .fform{border:1px solid transparent;padding:10px 10px 20px 10px;margin:5px 0px;display:block;position:relative}
40
+ #fbuilder .fform .arrow{position:absolute;left:-15px;top:20px;display:none}
41
+ #fbuilder .fform.ui-selected{background-color:#E7FFCF;border:1px solid #C2EF95}
42
+ #fbuilder .fform.ui-selected .arrow{display:inline}
43
+ #fbuilder .fform.ui-over{border:1px dashed #888;}
44
+ #fbuilder .fform h1{margin:5px 0px;padding:0px;}
45
+ input.disabled {background: #fff;color: #888;cursor: default;}
46
+ label1{display:inline}
47
+ .small{width:25%}
48
+ .medium{width:50%}
49
+ .large{width:100%}
50
+ textarea {resize: none}
51
+ .one_column{}
52
+ .two_column{float:left;width:48%}
53
+ .three_column{float:left;width:30%}
54
+ .side_by_side{float:left;}
55
+ .top_aligned .fields label{}
56
+ .top_aligned .fields .dfield{}
57
+ .left_aligned .fields label{float:left;width:31%}
58
+ .left_aligned .fields .dfield{float:left;width:65%;}
59
+ .right_aligned .fields label{float:left;width:31%;text-align:right;padding:3px 3px 0px 0px}
60
+ .right_aligned .fields .dfield{float:left;width:65%}
61
+ #fbuilder span.uh{display:block;font-size:80%;clear:both}
62
+ #fbuilder .section_break{border-top:1px dotted #555;clear:both}
63
+
64
+ #fbuilder .uh_phone{float:left;margin:0px 5px;font-size:80%;text-align:center;position: relative;}
65
+ #fbuilder .uh_phone input{text-align:center;font-size:100%;}
66
+ #fbuilder .uh_phone div.cpefb_error{display:block;white-space:nowrap;width:400px}
67
+
68
+ .eq_btn{width:45px;}
69
+ #fCalculated{
70
+ background: url("cupertino/images/ui-bg_glass_80_eebd4d_1x400.png") repeat-x scroll 50% 50% #EEBD4D;
71
+ border: 1px solid #D0771D;
72
+ color: #643F0D;
73
+ font-weight: bold;
74
+ }
75
+ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer;}
css/stylepublic.css ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .clearer{clear:both;}
2
+
3
+ #fbuilder{}
4
+ #fbuilder .fields,#fbuilder .fform{padding:5px 0px;}
5
+ #fbuilder .fform h1{margin:5px 0px;padding:0px;}
6
+
7
+ #fbuilder .small{width:25% !important;padding-left:0;padding-right:0;}
8
+ #fbuilder .medium{width:50% !important;padding-left:0;padding-right:0;}
9
+ #fbuilder .large{width:100% !important;padding-left:0;padding-right:0;}
10
+ .fields.column2{float:left;width:49.9%;}
11
+ .fields.column3{float:left;width:33.3%;}
12
+ .fields.column4{float:left;width:24.9%;}
13
+ .fields.column2 .large{width:98%;}
14
+ .fields.column3 .large{width:97%;}
15
+ .fields.column4 .large{width:96%;}
16
+
17
+ .one_column{}
18
+ .two_column{float:left;width:48%}
19
+ .three_column{float:left;width:30%}
20
+ .side_by_side{float:left;}
21
+ .dfield{position:relative}
22
+ .top_aligned .fields label{}
23
+ .top_aligned .fields .dfield{}
24
+ .left_aligned .fields label{float:left;width:31%}
25
+ .left_aligned .fields .dfield{float:left;width:65%;}
26
+ .left_aligned .cpfieldcaptcha,.left_aligned .pbSubmit{margin-left:31%;}
27
+ .right_aligned .fields label{float:left;width:31%;text-align:right;padding:3px 3px 0px 0px}
28
+ .right_aligned .fields .dfield{float:left;width:65%}
29
+ .right_aligned .cpfieldcaptcha,.right_aligned .pbSubmit{margin-left:31%;}
30
+
31
+ .cpefb_error{border1:1px solid red;}
32
+ .top_aligned .fields label.cpefb_error,.left_aligned .fields label.cpefb_error,.right_aligned .fields label.cpefb_error{display: block;border:0px;color:#f00;float:none;}
33
+
34
+ div.message{
35
+
36
+ }
37
+
38
+ div.cpefb_error{
39
+ background: #FDF9E5 ;
40
+ border:1px solid #f00;
41
+ opacity: 0.9;
42
+ margin-top:7px;
43
+ position:relative;
44
+ padding:0px 5px;
45
+ z-index:1000;
46
+ }
47
+ div.cpefb_error:after
48
+ {
49
+ content:"";
50
+ position:absolute;
51
+ background:transparent url("../images/tooltop.gif") no-repeat scroll 10px center;
52
+ color:red;
53
+ font-weight:bold;
54
+ height:8px;
55
+ width:100%;
56
+ top:-8px;
57
+ left:0px;
58
+ z-index:1000;
59
+ }
60
+
61
+ .ui-datepicker{ z-index: 9999 !important;}
62
+ #fbuilder span.uh{display:block;font-size:80%;clear:both}
63
+ #fbuilder .section_break{border-top:1px dotted #555;clear:both}
64
+
65
+ #fbuilder .uh_phone{float:left;margin:0px 5px;font-size:80%;text-align:center;position: relative;}
66
+ #fbuilder .uh_phone input{text-align:center;font-size:100%;}
67
+ #fbuilder .uh_phone div.cpefb_error{white-space:nowrap;}
68
+ .cpp_form { text-align:left}
69
+ #fbuilder .pbreak{display:none}
70
+ #fbuilder .pbreak.pb0{display:block}
71
+ #fbuilder .pbreak .pbPrevious,.pbreak .pbNext,.pbSubmit{background:#ccc;color:#000;display:block;float:left;cursor:pointer;margin:30px 10px 0px 0px;padding:5px 20px}
72
+ #fbuilder .pbreak.pb0 .pbPrevious{display:none}
73
+ #fbuilder .pbreak.pbEnd .pbNext{display:none}
74
+ .ignore{border:5px solid black}
75
+ .pbreak fieldset{border:1px solid #ccc;padding:10px}
76
+ .pbreak legend{border:1px solid #ccc;padding:5px 10px}
77
+ .cpcaptchalayer,.cp_subbtn{display:none}
78
+ #fbuilder input[type='radio'],#fbuilder input[type='checkbox']{width:auto}
79
+ .ui-tooltip.uh-tooltip{width:250px;font-size:10px;font-weight:normal;padding:5px;}
80
+ #fbuilder input[type="checkbox"]{-webkit-appearance:checkbox!important;}
81
+ #fbuilder input[type="radio"]{-webkit-appearance:radio!important;}
form-to-email.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Contact Form Email
4
+ Plugin URI: https://form2email.dwbooster.com/download
5
+ Description: Contact form that sends the data to email and also to a database list and CSV file.
6
+ Version: 1.2.30
7
+ Author: CodePeople
8
+ Author URI: https://form2email.dwbooster.com
9
+ Text Domain: contact-form-to-email
10
+ License: GPL
11
+ */
12
+
13
+ define('CP_CFEMAIL_DEFER_SCRIPTS_LOADING', (get_option('CP_CFTE_LOAD_SCRIPTS',"1") == "1"?true:false));
14
+
15
+ define('CP_CFEMAIL_DEFAULT_form_structure', '[[{"name":"email","index":0,"title":"Email","ftype":"femail","userhelp":"","csslayout":"","required":true,"predefined":"","size":"medium"},{"name":"subject","index":1,"title":"Subject","required":true,"ftype":"ftext","userhelp":"","csslayout":"","predefined":"","size":"medium"},{"name":"message","index":2,"size":"large","required":true,"title":"Message","ftype":"ftextarea","userhelp":"","csslayout":"","predefined":""}],[{"title":"Contact Form","description":"","formlayout":"top_aligned"}]]');
16
+
17
+ define('CP_CFEMAIL_DEFAULT_fp_subject', 'Contact from the website...');
18
+ define('CP_CFEMAIL_DEFAULT_fp_inc_additional_info', 'false');
19
+ define('CP_CFEMAIL_DEFAULT_fp_return_page', get_site_url());
20
+ define('CP_CFEMAIL_DEFAULT_fp_message', "The following contact message has been sent:\n\n<%INFO%>\n\n");
21
+
22
+ define('CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user', 'true');
23
+ define('CP_CFEMAIL_DEFAULT_cu_user_email_field', '');
24
+ define('CP_CFEMAIL_DEFAULT_cu_subject', 'Confirmation: Message received...');
25
+ define('CP_CFEMAIL_DEFAULT_cu_message', "Thank you for your message. We will reply you as soon as possible.\n\nThis is a copy of the data sent:\n\n<%INFO%>\n\nBest Regards.");
26
+ define('CP_CFEMAIL_DEFAULT_email_format','text');
27
+
28
+ define('CP_CFEMAIL_DEFAULT_vs_use_validation', 'true');
29
+
30
+ define('CP_CFEMAIL_DEFAULT_vs_text_is_required', 'This field is required.');
31
+ define('CP_CFEMAIL_DEFAULT_vs_text_is_email', 'Please enter a valid email address.');
32
+
33
+ define('CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy', 'Please enter a valid date with the format mm/dd/yyyy');
34
+ define('CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy', 'Please enter a valid date with the format dd/mm/yyyy');
35
+ define('CP_CFEMAIL_DEFAULT_vs_text_number', 'Please enter a valid number.');
36
+ define('CP_CFEMAIL_DEFAULT_vs_text_digits', 'Please enter only digits.');
37
+ define('CP_CFEMAIL_DEFAULT_vs_text_max', 'Please enter a value less than or equal to %0%.');
38
+ define('CP_CFEMAIL_DEFAULT_vs_text_min', 'Please enter a value greater than or equal to %0%.');
39
+
40
+ define('CP_CFEMAIL_DEFAULT_cv_enable_captcha', 'true');
41
+ define('CP_CFEMAIL_DEFAULT_cv_width', '170');
42
+ define('CP_CFEMAIL_DEFAULT_cv_height', '65');
43
+ define('CP_CFEMAIL_DEFAULT_cv_chars', '5');
44
+ define('CP_CFEMAIL_DEFAULT_cv_font', 'font-1.ttf');
45
+ define('CP_CFEMAIL_DEFAULT_cv_min_font_size', '25');
46
+ define('CP_CFEMAIL_DEFAULT_cv_max_font_size', '30');
47
+ define('CP_CFEMAIL_DEFAULT_cv_noise', '190');
48
+ define('CP_CFEMAIL_DEFAULT_cv_noise_length', '4');
49
+ define('CP_CFEMAIL_DEFAULT_cv_background', 'ffffff');
50
+ define('CP_CFEMAIL_DEFAULT_cv_border', '000000');
51
+ define('CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha', 'Please enter a valid captcha code.');
52
+
53
+
54
+ /* initialization / install */
55
+
56
+ include_once dirname( __FILE__ ) . '/classes/cp-base-class.inc.php';
57
+ include_once dirname( __FILE__ ) . '/cp-main-class.inc.php';
58
+
59
+ $cp_plugin = new CP_ContactFormToEmail;
60
+
61
+ register_activation_hook(__FILE__, array($cp_plugin,'install') );
62
+ add_action( 'media_buttons', array($cp_plugin, 'insert_button'), 11);
63
+ add_action( 'plugins_loaded', array($cp_plugin, 'data_management'));
64
+
65
+ function cfte_plugin_init() {
66
+ load_plugin_textdomain( 'contact-form-to-email', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
67
+ }
68
+ add_action('plugins_loaded', 'cfte_plugin_init');
69
+
70
+ if ( is_admin() ) {
71
+ add_action('admin_enqueue_scripts', array($cp_plugin,'insert_adminScripts'), 1);
72
+ add_filter("plugin_action_links_".plugin_basename(__FILE__), array($cp_plugin,'plugin_page_links'));
73
+ add_action('admin_menu', array($cp_plugin,'admin_menu') );
74
+ } else {
75
+ add_shortcode( $cp_plugin->shorttag, array($cp_plugin, 'filter_content') );
76
+ }
77
+
78
+ $codepeople_promote_banner_plugins[ 'contact-form-to-email' ] = array( 'plugin_name' => 'Contact Form Email', 'plugin_url' => 'https://wordpress.org/support/plugin/contact-form-to-email/reviews/#new-post');
79
+ require_once 'banner.php';
80
+
81
+
82
+ ?>
images/cp_form.gif ADDED
Binary file
images/tooltop.gif ADDED
Binary file
js/excanvas.min.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Copyright 2006 Google Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ document.createElement("canvas").getContext||(function(){var s=Math,j=s.round,F=s.sin,G=s.cos,V=s.abs,W=s.sqrt,k=10,v=k/2;function X(){return this.context_||(this.context_=new H(this))}var L=Array.prototype.slice;function Y(b,a){var c=L.call(arguments,2);return function(){return b.apply(a,c.concat(L.call(arguments)))}}var M={init:function(b){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var a=b||document;a.createElement("canvas");a.attachEvent("onreadystatechange",Y(this.init_,this,a))}},init_:function(b){b.namespaces.g_vml_||
15
+ b.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML");b.namespaces.g_o_||b.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML");if(!b.styleSheets.ex_canvas_){var a=b.createStyleSheet();a.owningElement.id="ex_canvas_";a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}var c=b.getElementsByTagName("canvas"),d=0;for(;d<c.length;d++)this.initElement(c[d])},
16
+ initElement:function(b){if(!b.getContext){b.getContext=X;b.innerHTML="";b.attachEvent("onpropertychange",Z);b.attachEvent("onresize",$);var a=b.attributes;if(a.width&&a.width.specified)b.style.width=a.width.nodeValue+"px";else b.width=b.clientWidth;if(a.height&&a.height.specified)b.style.height=a.height.nodeValue+"px";else b.height=b.clientHeight}return b}};function Z(b){var a=b.srcElement;switch(b.propertyName){case "width":a.style.width=a.attributes.width.nodeValue+"px";a.getContext().clearRect();
17
+ break;case "height":a.style.height=a.attributes.height.nodeValue+"px";a.getContext().clearRect();break}}function $(b){var a=b.srcElement;if(a.firstChild){a.firstChild.style.width=a.clientWidth+"px";a.firstChild.style.height=a.clientHeight+"px"}}M.init();var N=[],B=0;for(;B<16;B++){var C=0;for(;C<16;C++)N[B*16+C]=B.toString(16)+C.toString(16)}function I(){return[[1,0,0],[0,1,0],[0,0,1]]}function y(b,a){var c=I(),d=0;for(;d<3;d++){var f=0;for(;f<3;f++){var h=0,g=0;for(;g<3;g++)h+=b[d][g]*a[g][f];c[d][f]=
18
+ h}}return c}function O(b,a){a.fillStyle=b.fillStyle;a.lineCap=b.lineCap;a.lineJoin=b.lineJoin;a.lineWidth=b.lineWidth;a.miterLimit=b.miterLimit;a.shadowBlur=b.shadowBlur;a.shadowColor=b.shadowColor;a.shadowOffsetX=b.shadowOffsetX;a.shadowOffsetY=b.shadowOffsetY;a.strokeStyle=b.strokeStyle;a.globalAlpha=b.globalAlpha;a.arcScaleX_=b.arcScaleX_;a.arcScaleY_=b.arcScaleY_;a.lineScale_=b.lineScale_}function P(b){var a,c=1;b=String(b);if(b.substring(0,3)=="rgb"){var d=b.indexOf("(",3),f=b.indexOf(")",d+
19
+ 1),h=b.substring(d+1,f).split(",");a="#";var g=0;for(;g<3;g++)a+=N[Number(h[g])];if(h.length==4&&b.substr(3,1)=="a")c=h[3]}else a=b;return{color:a,alpha:c}}function aa(b){switch(b){case "butt":return"flat";case "round":return"round";case "square":default:return"square"}}function H(b){this.m_=I();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=k*1;this.globalAlpha=1;this.canvas=b;
20
+ var a=b.ownerDocument.createElement("div");a.style.width=b.clientWidth+"px";a.style.height=b.clientHeight+"px";a.style.overflow="hidden";a.style.position="absolute";b.appendChild(a);this.element_=a;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}var i=H.prototype;i.clearRect=function(){this.element_.innerHTML=""};i.beginPath=function(){this.currentPath_=[]};i.moveTo=function(b,a){var c=this.getCoords_(b,a);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};
21
+ i.lineTo=function(b,a){var c=this.getCoords_(b,a);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};i.bezierCurveTo=function(b,a,c,d,f,h){var g=this.getCoords_(f,h),l=this.getCoords_(b,a),e=this.getCoords_(c,d);Q(this,l,e,g)};function Q(b,a,c,d){b.currentPath_.push({type:"bezierCurveTo",cp1x:a.x,cp1y:a.y,cp2x:c.x,cp2y:c.y,x:d.x,y:d.y});b.currentX_=d.x;b.currentY_=d.y}i.quadraticCurveTo=function(b,a,c,d){var f=this.getCoords_(b,a),h=this.getCoords_(c,d),g={x:this.currentX_+
22
+ 0.6666666666666666*(f.x-this.currentX_),y:this.currentY_+0.6666666666666666*(f.y-this.currentY_)};Q(this,g,{x:g.x+(h.x-this.currentX_)/3,y:g.y+(h.y-this.currentY_)/3},h)};i.arc=function(b,a,c,d,f,h){c*=k;var g=h?"at":"wa",l=b+G(d)*c-v,e=a+F(d)*c-v,m=b+G(f)*c-v,r=a+F(f)*c-v;if(l==m&&!h)l+=0.125;var n=this.getCoords_(b,a),o=this.getCoords_(l,e),q=this.getCoords_(m,r);this.currentPath_.push({type:g,x:n.x,y:n.y,radius:c,xStart:o.x,yStart:o.y,xEnd:q.x,yEnd:q.y})};i.rect=function(b,a,c,d){this.moveTo(b,
23
+ a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath()};i.strokeRect=function(b,a,c,d){var f=this.currentPath_;this.beginPath();this.moveTo(b,a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath();this.stroke();this.currentPath_=f};i.fillRect=function(b,a,c,d){var f=this.currentPath_;this.beginPath();this.moveTo(b,a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath();this.fill();this.currentPath_=f};i.createLinearGradient=function(b,
24
+ a,c,d){var f=new D("gradient");f.x0_=b;f.y0_=a;f.x1_=c;f.y1_=d;return f};i.createRadialGradient=function(b,a,c,d,f,h){var g=new D("gradientradial");g.x0_=b;g.y0_=a;g.r0_=c;g.x1_=d;g.y1_=f;g.r1_=h;return g};i.drawImage=function(b){var a,c,d,f,h,g,l,e,m=b.runtimeStyle.width,r=b.runtimeStyle.height;b.runtimeStyle.width="auto";b.runtimeStyle.height="auto";var n=b.width,o=b.height;b.runtimeStyle.width=m;b.runtimeStyle.height=r;if(arguments.length==3){a=arguments[1];c=arguments[2];h=g=0;l=d=n;e=f=o}else if(arguments.length==
25
+ 5){a=arguments[1];c=arguments[2];d=arguments[3];f=arguments[4];h=g=0;l=n;e=o}else if(arguments.length==9){h=arguments[1];g=arguments[2];l=arguments[3];e=arguments[4];a=arguments[5];c=arguments[6];d=arguments[7];f=arguments[8]}else throw Error("Invalid number of arguments");var q=this.getCoords_(a,c),t=[];t.push(" <g_vml_:group",' coordsize="',k*10,",",k*10,'"',' coordorigin="0,0"',' style="width:',10,"px;height:",10,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]){var E=[];E.push("M11=",
26
+ this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",j(q.x/k),",","Dy=",j(q.y/k),"");var p=q,z=this.getCoords_(a+d,c),w=this.getCoords_(a,c+f),x=this.getCoords_(a+d,c+f);p.x=s.max(p.x,z.x,w.x,x.x);p.y=s.max(p.y,z.y,w.y,x.y);t.push("padding:0 ",j(p.x/k),"px ",j(p.y/k),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",E.join(""),", sizingmethod='clip');")}else t.push("top:",j(q.y/k),"px;left:",j(q.x/k),"px;");t.push(' ">','<g_vml_:image src="',b.src,
27
+ '"',' style="width:',k*d,"px;"," height:",k*f,'px;"',' cropleft="',h/n,'"',' croptop="',g/o,'"',' cropright="',(n-h-l)/n,'"',' cropbottom="',(o-g-e)/o,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",t.join(""))};i.stroke=function(b){var a=[],c=P(b?this.fillStyle:this.strokeStyle),d=c.color,f=c.alpha*this.globalAlpha;a.push("<g_vml_:shape",' filled="',!!b,'"',' style="position:absolute;width:',10,"px;height:",10,'px;"',' coordorigin="0 0" coordsize="',k*10," ",k*10,'"',' stroked="',
28
+ !b,'"',' path="');var h={x:null,y:null},g={x:null,y:null},l=0;for(;l<this.currentPath_.length;l++){var e=this.currentPath_[l];switch(e.type){case "moveTo":a.push(" m ",j(e.x),",",j(e.y));break;case "lineTo":a.push(" l ",j(e.x),",",j(e.y));break;case "close":a.push(" x ");e=null;break;case "bezierCurveTo":a.push(" c ",j(e.cp1x),",",j(e.cp1y),",",j(e.cp2x),",",j(e.cp2y),",",j(e.x),",",j(e.y));break;case "at":case "wa":a.push(" ",e.type," ",j(e.x-this.arcScaleX_*e.radius),",",j(e.y-this.arcScaleY_*e.radius),
29
+ " ",j(e.x+this.arcScaleX_*e.radius),",",j(e.y+this.arcScaleY_*e.radius)," ",j(e.xStart),",",j(e.yStart)," ",j(e.xEnd),",",j(e.yEnd));break}if(e){if(h.x==null||e.x<h.x)h.x=e.x;if(g.x==null||e.x>g.x)g.x=e.x;if(h.y==null||e.y<h.y)h.y=e.y;if(g.y==null||e.y>g.y)g.y=e.y}}a.push(' ">');if(b)if(typeof this.fillStyle=="object"){var m=this.fillStyle,r=0,n={x:0,y:0},o=0,q=1;if(m.type_=="gradient"){var t=m.x1_/this.arcScaleX_,E=m.y1_/this.arcScaleY_,p=this.getCoords_(m.x0_/this.arcScaleX_,m.y0_/this.arcScaleY_),
30
+ z=this.getCoords_(t,E);r=Math.atan2(z.x-p.x,z.y-p.y)*180/Math.PI;if(r<0)r+=360;if(r<1.0E-6)r=0}else{var p=this.getCoords_(m.x0_,m.y0_),w=g.x-h.x,x=g.y-h.y;n={x:(p.x-h.x)/w,y:(p.y-h.y)/x};w/=this.arcScaleX_*k;x/=this.arcScaleY_*k;var R=s.max(w,x);o=2*m.r0_/R;q=2*m.r1_/R-o}var u=m.colors_;u.sort(function(ba,ca){return ba.offset-ca.offset});var J=u.length,da=u[0].color,ea=u[J-1].color,fa=u[0].alpha*this.globalAlpha,ga=u[J-1].alpha*this.globalAlpha,S=[],l=0;for(;l<J;l++){var T=u[l];S.push(T.offset*q+
31
+ o+" "+T.color)}a.push('<g_vml_:fill type="',m.type_,'"',' method="none" focus="100%"',' color="',da,'"',' color2="',ea,'"',' colors="',S.join(","),'"',' opacity="',ga,'"',' g_o_:opacity2="',fa,'"',' angle="',r,'"',' focusposition="',n.x,",",n.y,'" />')}else a.push('<g_vml_:fill color="',d,'" opacity="',f,'" />');else{var K=this.lineScale_*this.lineWidth;if(K<1)f*=K;a.push("<g_vml_:stroke",' opacity="',f,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',aa(this.lineCap),
32
+ '"',' weight="',K,'px"',' color="',d,'" />')}a.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",a.join(""))};i.fill=function(){this.stroke(true)};i.closePath=function(){this.currentPath_.push({type:"close"})};i.getCoords_=function(b,a){var c=this.m_;return{x:k*(b*c[0][0]+a*c[1][0]+c[2][0])-v,y:k*(b*c[0][1]+a*c[1][1]+c[2][1])-v}};i.save=function(){var b={};O(this,b);this.aStack_.push(b);this.mStack_.push(this.m_);this.m_=y(I(),this.m_)};i.restore=function(){O(this.aStack_.pop(),
33
+ this);this.m_=this.mStack_.pop()};function ha(b){var a=0;for(;a<3;a++){var c=0;for(;c<2;c++)if(!isFinite(b[a][c])||isNaN(b[a][c]))return false}return true}function A(b,a,c){if(!!ha(a)){b.m_=a;if(c)b.lineScale_=W(V(a[0][0]*a[1][1]-a[0][1]*a[1][0]))}}i.translate=function(b,a){A(this,y([[1,0,0],[0,1,0],[b,a,1]],this.m_),false)};i.rotate=function(b){var a=G(b),c=F(b);A(this,y([[a,c,0],[-c,a,0],[0,0,1]],this.m_),false)};i.scale=function(b,a){this.arcScaleX_*=b;this.arcScaleY_*=a;A(this,y([[b,0,0],[0,a,
34
+ 0],[0,0,1]],this.m_),true)};i.transform=function(b,a,c,d,f,h){A(this,y([[b,a,0],[c,d,0],[f,h,1]],this.m_),true)};i.setTransform=function(b,a,c,d,f,h){A(this,[[b,a,0],[c,d,0],[f,h,1]],true)};i.clip=function(){};i.arcTo=function(){};i.createPattern=function(){return new U};function D(b){this.type_=b;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}D.prototype.addColorStop=function(b,a){a=P(a);this.colors_.push({offset:b,color:a.color,alpha:a.alpha})};function U(){}G_vmlCanvasManager=
35
+ M;CanvasRenderingContext2D=H;CanvasGradient=D;CanvasPattern=U})();
js/fbuilderf.jquery.js ADDED
@@ -0,0 +1,1329 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery.holdReady( true );
2
+ jQuery(window).on('load', function(){
3
+ (function($) {
4
+ $.fn.fbuilder = function(options){
5
+ var opt = $.extend({},
6
+ {
7
+ typeList:new Array({id:"ftext",name:"Single Line Text"},{id:"fnumber",name:"Number"},{id:"femail",name:"Email"},{id:"fdate",name:"Date"},{id:"ftextarea",name:"Text Area"},{id:"fcheck",name:"Checkboxes"},{id:"fradio",name:"Radio Buttons"},{id:"fdropdown",name:"Dropdown"},{id:"ffile",name:"Upload file"},{id:"fpassword",name:"Password"},{id:"fPhone",name:"Phone field"},{id:"fCommentArea",name:"Instruct. Text"},{id:"fSectionBreak",name:"Section break"},{id:"fPageBreak",name:"Page break"}),
8
+ pub:false,
9
+ identifier:"",
10
+ title:""
11
+ },options, true);
12
+ if (opt.pub)
13
+ {
14
+ opt.messages = $.extend({
15
+ previous: "Previous",
16
+ next: "Next",
17
+ page: "Page",
18
+ of: "of",
19
+ required: "This field is required.",
20
+ email: "Please enter a valid email address.",
21
+ datemmddyyyy: "Please enter a valid date with this format(mm/dd/yyyy)",
22
+ dateddmmyyyy: "Please enter a valid date with this format(dd/mm/yyyy)",
23
+ number: "Please enter a valid number.",
24
+ digits: "Please enter only digits.",
25
+ maxlength: $.validator.format("Please enter no more than {0} characters"),
26
+ minlength: $.validator.format("Please enter at least {0} characters."),
27
+ equalTo: "Please enter the same value again.",
28
+ max: $.validator.format("Please enter a value less than or equal to {0}."),
29
+ min: $.validator.format("Please enter a value greater than or equal to {0}.")
30
+ },opt.messages);
31
+ opt.messages.max = $.validator.format(opt.messages.max);
32
+ opt.messages.min = $.validator.format(opt.messages.min);
33
+ $.extend($.validator.messages, opt.messages);
34
+ }
35
+ getNameByIdFromType = function(id){
36
+ for (var i=0;i<opt.typeList.length;i++)
37
+ if (opt.typeList[i].id == id)
38
+ return opt.typeList[i].name;
39
+ return "";
40
+ }
41
+ if (!opt.pub)
42
+ {
43
+ for (var i=0;i<opt.typeList.length;i++)
44
+ $("#tabs-1").append('<div class="button width40 '+(((i>5) || (i%2==1))?"n":"itemForm")+'" id="'+opt.typeList[i].id+'">'+opt.typeList[i].name+'</div>');
45
+ $("#tabs-1").append('<div class="clearer"></div>');
46
+ }
47
+ if (!opt.pub) $( ".button").button();
48
+ var items = new Array();
49
+ var itemSelected = -2;
50
+ editItem = function(id) {
51
+ if (!opt.pub) $('#tabs').tabs("option", "active", 1);
52
+ try { $('#tabs-2').html(items[id].showAllSettings()); } catch (e) {}
53
+ itemSelected = id;
54
+ $(".helpfbuilder").click(function(){
55
+ alert($(this).attr("text"));
56
+ });
57
+ $("#sMinDate").change(function(){
58
+ items[id].minDate = $(this).val();
59
+ reloadItems();
60
+ });
61
+ $("#sMaxDate").change(function(){
62
+ items[id].maxDate = $(this).val();
63
+ reloadItems();
64
+ });
65
+ $("#sDefaultDate").change(function(){
66
+ items[id].defaultDate = $(this).val();
67
+ reloadItems();
68
+ });
69
+ $("#sTitle").keyup(function(){
70
+ var str = $(this).val();
71
+ items[id].title = str.replace(/\n/g,"<br />");
72
+ reloadItems();
73
+ });
74
+ $("#sName").keyup(function(){
75
+ items[id].name = $(this).val();
76
+ reloadItems();
77
+ });
78
+ $("#sShortlabel").keyup(function(){
79
+ items[id].shortlabel = $(this).val();
80
+ reloadItems();
81
+ });
82
+ $("#sPredefined").keyup(function(){
83
+ items[id].predefined = $(this).val();
84
+ reloadItems();
85
+ });
86
+ $("#sPredefinedClick").click(function(){
87
+ items[id].predefinedClick = $(this).is(':checked');
88
+ reloadItems();
89
+ });
90
+ $("#sEq").keyup(function(){
91
+ items[id].eq = $(this).val();
92
+ reloadItems();
93
+ });
94
+ $("#sSuffix").keyup(function(){
95
+ items[id].suffix = $(this).val();
96
+ reloadItems();
97
+ });
98
+ $("#sPrefix").keyup(function(){
99
+ items[id].prefix = $(this).val();
100
+ reloadItems();
101
+ });
102
+ $("#sDecimalSymbol").keyup(function(){
103
+ items[id].decimalsymbol = $(this).val();
104
+ reloadItems();
105
+ });
106
+ $("#sGroupingSymbol").keyup(function(){
107
+ items[id].groupingsymbol = $(this).val();
108
+ reloadItems();
109
+ });
110
+ $("#sDropdownRange").keyup(function(){
111
+ items[id].dropdownRange = $(this).val();
112
+ reloadItems();
113
+ });
114
+ $("#sRequired").click(function(){
115
+ items[id].required = $(this).is(':checked');
116
+ reloadItems();
117
+ });
118
+ $("#sReadOnly").click(function(){
119
+ items[id].readonly = $(this).is(':checked');
120
+ reloadItems();
121
+ });
122
+ $("#sShowDropdown").click(function(){
123
+ items[id].showDropdown = $(this).is(':checked');
124
+ if ($(this).is(':checked'))
125
+ $("#divdropdownRange").css("display","");
126
+ else
127
+ $("#divdropdownRange").css("display","none");
128
+ reloadItems();
129
+ });
130
+ $("#sSize").change(function(){
131
+ items[id].size = $(this).val();
132
+ reloadItems();
133
+ });
134
+ $("#sFormat").change(function(){
135
+ items[id].dformat = $(this).val();
136
+ reloadItems();
137
+ });
138
+ $("#sLayout").change(function(){
139
+ items[id].layout = $(this).val();
140
+ reloadItems();
141
+ });
142
+ $("#sMin").change(function(){
143
+ items[id].min = $(this).val();
144
+ reloadItems();
145
+ });
146
+ $("#sMax").change(function(){
147
+ items[id].max = $(this).val();
148
+ reloadItems();
149
+ });
150
+ $("#sMinlength").change(function(){
151
+ items[id].minlength = $(this).val();
152
+ reloadItems();
153
+ });
154
+ $("#sMaxlength").change(function(){
155
+ items[id].maxlength = $(this).val();
156
+ reloadItems();
157
+ });
158
+ $("#sEqualTo").change(function(){
159
+ items[id].equalTo = $(this).val();
160
+ reloadItems();
161
+ });
162
+ $(".showHideDependencies").click(function(){
163
+ if (items[id].showDep)
164
+ {
165
+ $(this).parent().removeClass("show");
166
+ $(this).parent().addClass("hide");
167
+ $(this).html("Show Dependencies");
168
+ items[id].showDep = false;
169
+ }
170
+ else
171
+ {
172
+ $(this).parent().addClass("show");
173
+ $(this).parent().removeClass("hide");
174
+ $(this).html("Hide Dependencies");
175
+ items[id].showDep = true;
176
+ }
177
+ return false;
178
+ });
179
+ $(".choice_remove").click(function(){
180
+ if (items[id].choices.length==1)
181
+ {
182
+ items[id].choices[0]="";
183
+ items[id].choicesVal[0]="";
184
+ items[id].choicesDep[0]=new Array();
185
+ }
186
+ else
187
+ {
188
+ items[id].choices.splice($(this).attr("i"),1);
189
+ items[id].choicesVal.splice($(this).attr("i"),1);
190
+ items[id].choicesDep.splice($(this).attr("i"),1);
191
+ }
192
+ if (items[id].ftype=="fcheck")
193
+ {
194
+ if (items[id].choiceSelected.length==1)
195
+ items[id].choiceSelected[0]="";
196
+ else
197
+ items[id].choiceSelected.splice($(this).attr("i"),1);
198
+ }
199
+ editItem(id);
200
+ reloadItems();
201
+ });
202
+ $(".choice_add").click(function(){
203
+ items[id].choices.splice($(this).attr("i")*1+1,0,"");
204
+ items[id].choicesVal.splice($(this).attr("i")*1+1,0,"");
205
+ items[id].choicesDep.splice($(this).attr("i")*1+1,0,new Array());
206
+ if (items[id].ftype=="fcheck")
207
+ items[id].choiceSelected.splice($(this).attr("i")*1+1,0,false);
208
+ editItem(id);
209
+ reloadItems();
210
+ });
211
+ $(".choice_text").keyup(function(){
212
+ if (items[id].choices[$(this).attr("i")] == items[id].choicesVal[$(this).attr("i")])
213
+ {
214
+ $("#"+$(this).attr("id")+"V"+$(this).attr("i")).val($(this).val());
215
+ items[id].choicesVal[$(this).attr("i")]= $(this).val();
216
+ }
217
+ items[id].choices[$(this).attr("i")]= $(this).val();
218
+ reloadItems();
219
+ });
220
+ $(".choice_value").keyup(function(){
221
+ items[id].choicesVal[$(this).attr("i")]= $(this).val();
222
+ reloadItems();
223
+ });
224
+ $(".choice_radio").click(function(){
225
+ if ($(this).is(':checked'))
226
+ items[id].choiceSelected = items[id].choicesVal[$(this).attr("i")];
227
+ reloadItems();
228
+ });
229
+ $(".choice_select").click(function(){
230
+ if ($(this).is(':checked'))
231
+ items[id].choiceSelected = items[id].choicesVal[$(this).attr("i")];
232
+ reloadItems();
233
+ });
234
+ $(".choice_check").click(function(){
235
+ if ($(this).is(':checked'))
236
+ items[id].choiceSelected[$(this).attr("i")] = true;
237
+ else
238
+ items[id].choiceSelected[$(this).attr("i")] = false;
239
+ reloadItems();
240
+ });
241
+ $("#sUserhelp").keyup(function(){
242
+ items[id].userhelp = $(this).val();
243
+ reloadItems();
244
+ });
245
+ $("#sUserhelpTooltip").click(function(){
246
+ items[id].userhelpTooltip = $(this).is(':checked');
247
+ reloadItems();
248
+ });
249
+ $("#sCsslayout").keyup(function(){
250
+ items[id].csslayout = $(this).val();
251
+ reloadItems();
252
+ });
253
+ $('.equalTo').each(function(){
254
+ var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
255
+ for (var i=0;i<items.length;i++)
256
+ if ((items[i].ftype=="ftext" || items[i].ftype=="femail" || items[i].ftype=="fpassword") && (items[i].name != $(this).attr("dname")))
257
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].title)+'</option>';
258
+ $(this).html(str);
259
+ });
260
+ $('.dependencies').each(function(){
261
+ var str = '<option value="" '+(("" == $(this).attr("dvalue"))?"selected":"")+'></option>';
262
+ for (var i=0;i<items.length;i++)
263
+ if (items[i].name != $(this).attr("dname"))
264
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $(this).attr("dvalue"))?"selected":"")+'>'+(items[i].title)+'</option>';
265
+ $(this).html(str);
266
+ });
267
+ $('.dependencies').change(function(){
268
+ items[id].choicesDep[$(this).attr("i")][$(this).attr("j")] = $(this).val();
269
+ reloadItems();
270
+ });
271
+ $(".choice_removeDep").click(function(){
272
+ if (items[id].choices.length==1)
273
+ items[id].choicesDep[$(this).attr("i")][0]="";
274
+ else
275
+ items[id].choicesDep[$(this).attr("i")].splice($(this).attr("j"),1);
276
+ editItem(id);
277
+ reloadItems();
278
+ });
279
+ $(".choice_addDep").click(function(){
280
+ items[id].choicesDep[$(this).attr("i")].splice($(this).attr("j")*1+1,0,"");
281
+ editItem(id);
282
+ reloadItems();
283
+ });
284
+ };
285
+ editForm = function() {
286
+ $('#tabs-3').html(theForm.showAllSettings());
287
+ itemSelected = -1;
288
+ $("#fTitle").keyup(function(){
289
+ theForm.title = $(this).val();
290
+ reloadItems();
291
+ });
292
+ $("#fDescription").keyup(function(){
293
+ theForm.description = $(this).val();
294
+ reloadItems();
295
+ });
296
+ $("#fLayout").change(function(){
297
+ theForm.formlayout = $(this).val();
298
+ reloadItems();
299
+ });
300
+
301
+ };
302
+ removeItem = function(index) {
303
+ items.splice(index,1);
304
+ for (var i=0;i<items.length;i++)
305
+ items[i].index = i;
306
+ $('#tabs').tabs("option", "active", 0);
307
+ reloadItems();
308
+ }
309
+ reloadItems = function() {
310
+ for (var i=0;i<showSettings.formlayoutList.length;i++)
311
+ $("#fieldlist"+opt.identifier).removeClass(showSettings.formlayoutList[i].id);
312
+ $("#fieldlist"+opt.identifier).addClass(theForm.formlayout);
313
+ $("#formheader"+opt.identifier).html(theForm.display());
314
+ $("#fieldlist"+opt.identifier).html("");
315
+ if (parseInt(itemSelected)==-1)
316
+ $(".fform").addClass("ui-selected");
317
+ else
318
+ $(".fform").removeClass("ui-selected");
319
+ for (var i=0;i<items.length;i++)
320
+ {
321
+ items[i].index = i;
322
+ $("#fieldlist"+opt.identifier).append(items[i].display());
323
+ if (i==itemSelected)
324
+ $("#field"+opt.identifier+"-"+i).addClass("ui-selected");
325
+ else
326
+ $("#field"+opt.identifier+"-"+i).removeClass("ui-selected");
327
+ $(".fields").mouseover(function() {
328
+ $(this).addClass("ui-over");
329
+ }).mouseout(function(){
330
+ $(this).removeClass("ui-over")
331
+ }).click(function(){
332
+ editItem($(this).attr("id").replace("field"+opt.identifier+"-",""));
333
+ $(this).siblings().removeClass("ui-selected");
334
+ $(this).addClass("ui-selected");
335
+ });
336
+ $(".field").focus(function(){
337
+ $(this).blur();
338
+ });
339
+ $("#field"+opt.identifier+"-"+i+" .remove").click(function(){
340
+ removeItem($(this).parent().attr("id").replace("field"+opt.identifier+"-",""));
341
+ });
342
+ }
343
+ if ($("#fieldlist"+opt.identifier).html() == "")
344
+ $("#saveForm").css("display","none");
345
+ else
346
+ $("#saveForm").css("display","none"); // changed "inline" to "none"
347
+ $(".fform").mouseover(function() {
348
+ $(this).addClass("ui-over");
349
+ }).mouseout(function(){
350
+ $(this).removeClass("ui-over")
351
+ }).click(function(){
352
+ $('#tabs').tabs("option", "active", 2);
353
+ editForm();
354
+ $(this).siblings().removeClass("ui-selected");
355
+ $(this).addClass("ui-selected");
356
+ });
357
+ ffunct.saveData("form_structure");
358
+ //email list
359
+ var str = "";
360
+ for (var i=0;i<items.length;i++)
361
+ if (items[i].ftype=="femail")
362
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $('#cu_user_email_field').attr("def"))?"selected":"")+'>'+(items[i].title)+'</option>';
363
+ $('#cu_user_email_field').html(str);
364
+ //field list for paypal request
365
+ if (($('#request_cost').length > 0) && ($('#request_cost').is('select')))
366
+ {
367
+ var str = "";
368
+ for (var i=0;i<items.length;i++)
369
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $('#request_cost').attr("def"))?"selected":"")+'>'+items[i].name+'('+(items[i].title)+')</option>';
370
+ $('#request_cost').html(str);
371
+ }
372
+ //request amount list
373
+ if ($('#paypal_price_field').length > 0)
374
+ {
375
+ var str = '<option value="" '+(('' == $('#paypal_price_field').attr("def"))?"selected":"")+'> ---- No ---- </option>';
376
+ for (var i=0;i<items.length;i++)
377
+ str += '<option value="'+items[i].name+'" '+((items[i].name == $('#paypal_price_field').attr("def"))?"selected":"")+'>'+(items[i].title)+'</option>';
378
+ $('#paypal_price_field').html(str);
379
+ }
380
+ }
381
+ function htmlEncode(value){
382
+ value = $('<div/>').text(value).html()
383
+ value = value.replace(/"/g, "&quot;");;
384
+ return value;
385
+ }
386
+ function showHideDep(){
387
+ function inArray(needle, haystack) {
388
+ for(var i = 0; i < haystack.length; i++) {
389
+ if(haystack[i] == needle) return true;
390
+ }
391
+ return false;
392
+ }
393
+ function removeFromArray(needle, haystack) {
394
+ for(var i = 0; i < haystack.length; i++) {
395
+ if(haystack[i] == needle)
396
+ {
397
+ haystack.splice(i,1);
398
+ i--;
399
+ }
400
+ }
401
+ return haystack;
402
+ }
403
+ var used = new Array();
404
+ var hideArray = new Array();
405
+ $(".depItem").each(function() {
406
+ var item = $(this);
407
+ try {
408
+ if ((item.parents("#fieldlist"+opt.identifier).length==1) && item.attr("dep") && item.attr("dep")!="" )
409
+ {
410
+ var d = item.attr("dep").split(",");
411
+ for (i=0;i<d.length;i++)
412
+ {
413
+ if (d[i]!="") d[i] = d[i]+opt.identifier;
414
+ if (d[i]!="" && !inArray(d[i],used) )//&& !inArray(d[i],hideArray)
415
+ {
416
+ try {
417
+ if ((item.is(':checked') || item.is(':selected') ) && (!inArray( ((item.hasClass("field"))?item.attr("id"):item.parents(".field").attr("id")) ,hideArray)) )
418
+ {
419
+ $("#"+d[i]).parents(".fields").css("display","");
420
+ $("#"+d[i]).parents(".fields").find(".field").each(function(){if (!$(this).hasClass("ignorepb"))$(this).removeClass("ignore");});
421
+ used[used.length] = d[i];
422
+ removeFromArray(d[i],hideArray);
423
+ }
424
+ else
425
+ {
426
+ $("#"+d[i]).parents(".fields").css("display","none");
427
+ $("#"+d[i]).parents(".fields").find(".field").each(function(){$(this).addClass("ignore");});
428
+ hideArray[hideArray.length] = d[i];
429
+ }
430
+ }catch(e){}
431
+ }
432
+ }
433
+ }
434
+ }catch(e){}
435
+ });
436
+ }
437
+ reloadItemsPublic = function() {
438
+ for (var i=0;i<showSettings.formlayoutList.length;i++)
439
+ $("#fieldlist"+opt.identifier).removeClass(showSettings.formlayoutList[i].id);
440
+ $("#fieldlist"+opt.identifier).html("").addClass(theForm.formlayout);
441
+ $("#formheader"+opt.identifier).html(theForm.show());
442
+ var page = 0;
443
+ $("#fieldlist"+opt.identifier).append('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
444
+ var itemsDates = new Array();
445
+ for (var i=0;i<items.length;i++)
446
+ {
447
+ items[i].index = i;
448
+ if (items[i].ftype=="fPageBreak")
449
+ {
450
+ page++;
451
+ $("#fieldlist"+opt.identifier).append('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
452
+ }
453
+ else
454
+ {
455
+ $("#fieldlist"+opt.identifier+" .pb"+page).append(items[i].show());
456
+ if (items[i].predefinedClick)
457
+ {
458
+ var cl = $("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).attr("class")+" predefinedClick";
459
+ $("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).attr("class",cl);
460
+ $("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).attr("predefined",items[i].predefined);
461
+ }
462
+ if (items[i].userhelpTooltip)
463
+ {
464
+ var uh = $("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).parents(".fields");
465
+ uh.find(".uh").css("display","none");
466
+ if (uh.find(".uh").text()!="")
467
+ uh.attr("uh",uh.find(".uh").text());
468
+ }
469
+ }
470
+ $(".fields").mouseover(function() {
471
+ $(this).addClass("ui-over");
472
+ }).mouseout(function(){
473
+ $(this).removeClass("ui-over")
474
+ }).click(function(){
475
+ editItem($(this).attr("id").replace("field"+opt.identifier+"-",""));
476
+ $(this).siblings().removeClass("ui-selected");
477
+ $(this).addClass("ui-selected");
478
+ });
479
+
480
+ if (items[i].ftype=="fdate")
481
+ itemsDates[itemsDates.length] = items[i];
482
+ }
483
+ if (page>0)
484
+ {
485
+ $("#fieldlist"+opt.identifier+" .pb"+page).addClass("pbEnd");
486
+ $("#fieldlist"+opt.identifier+" .pbreak").find(".field").addClass("ignore").addClass("ignorepb");
487
+ $("#fieldlist"+opt.identifier+" .pb0").find(".field").removeClass("ignore").removeClass("ignorepb");
488
+ $("#fieldlist"+opt.identifier+" .pbreak").each(function(index) {
489
+ var code = $(this).html();
490
+ var bSubmit = '';
491
+ if (index == page)
492
+ {
493
+ if ($("#cpcaptchalayer"+opt.identifier).html())
494
+ {
495
+ code += '<div class="fields cpfieldcaptcha" id="fieldcaptcha'+opt.identifier+'">'+$("#cpcaptchalayer"+opt.identifier).html()+'</div>';
496
+ $("#cpcaptchalayer"+opt.identifier).html("");
497
+ }
498
+ if ($("#cp_subbtn"+opt.identifier).html())
499
+ bSubmit = '<div class="pbSubmit">'+$("#cp_subbtn"+opt.identifier).html()+'</div>';
500
+ }
501
+ $(this).html('<fieldset><legend>'+opt.messages.page+' '+(index+1)+' '+opt.messages.of+' '+(page+1)+'</legend>'+code+'<div class="pbPrevious">'+opt.messages.previous+'</div><div class="pbNext">'+opt.messages.next+'</div>'+bSubmit+'<div class="clearer"></div></fieldset>');
502
+ });
503
+ $(".pbPrevious,.pbNext").bind("click", function() {
504
+ if ($(this).parents("form").valid())
505
+ {
506
+ var page = parseInt($(this).parents(".pbreak").attr("page"));
507
+ (($(this).hasClass("pbPrevious"))?page--:page++);
508
+ $("#fieldlist"+opt.identifier+" .pbreak").css("display","none");
509
+ $("#fieldlist"+opt.identifier+" .pbreak").find(".field").addClass("ignore").addClass("ignorepb");
510
+
511
+ $("#fieldlist"+opt.identifier+" .pb"+page).css("display","block");
512
+ $("#fieldlist"+opt.identifier+" .pb"+page).find(".field").removeClass("ignore").removeClass("ignorepb");
513
+ showHideDep();
514
+ }
515
+ return false;
516
+ });
517
+ }
518
+ else
519
+ {
520
+ if ($("#cpcaptchalayer"+opt.identifier).html())
521
+ {
522
+ $("#fieldlist"+opt.identifier+" .pb"+page).append('<div class="fields cpfieldcaptcha" id="fieldcaptcha'+opt.identifier+'">'+$("#cpcaptchalayer"+opt.identifier).html()+'</div>');
523
+ $("#cpcaptchalayer"+opt.identifier).html("");
524
+ }
525
+ if ($("#cp_subbtn"+opt.identifier).html())
526
+ $("#fieldlist"+opt.identifier+" .pb"+page).append('<div class="pbSubmit">'+$("#cp_subbtn"+opt.identifier).html()+'</div>');
527
+ }
528
+ $(".pbSubmit").bind("click", function() {
529
+ $(this).parents("#fieldlist"+opt.identifier).parents("form").submit();
530
+ });
531
+ $("#fieldlist"+opt.identifier+" .predefinedClick").bind("click", function() {
532
+ if ($(this).attr("predefined") == $(this).val())
533
+ $(this).val("");
534
+ });
535
+ $("#fieldlist"+opt.identifier+" .predefinedClick").blur("click", function() {
536
+ if ($(this).val()=="")
537
+ $(this).val($(this).attr("predefined"));
538
+ });
539
+ if (i>0)
540
+ {
541
+ for (var k=0;k<itemsDates.length;k++)
542
+ {
543
+ if (itemsDates[k].showDropdown)
544
+ $( "#"+itemsDates[k].name ).datepicker({changeMonth: true,changeYear: true,yearRange: itemsDates[k].dropdownRange,dateFormat: itemsDates[k].dformat.replace(/yyyy/g,"yy")});
545
+ else
546
+ $( "#"+itemsDates[k].name ).datepicker({ dateFormat: itemsDates[k].dformat.replace(/yyyy/g,"yy")});
547
+ $( "#"+itemsDates[k].name ).datepicker( "option", "minDate", itemsDates[k].minDate );
548
+ $( "#"+itemsDates[k].name ).datepicker( "option", "maxDate", itemsDates[k].maxDate );
549
+ $( "#"+itemsDates[k].name ).datepicker( "option", "defaultDate", itemsDates[k].defaultDate );
550
+ }
551
+ //$(".depItem").each(function() {
552
+ showHideDep();
553
+ //});
554
+ $.validator.addMethod("dateddmmyyyy", function(value, element) {
555
+ return this.optional(element) || /^(?:[1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])[\/\-](?:[1-9]|0[1-9]|1[0-2])[\/\-]\d{4}$/.test(value);
556
+ });
557
+
558
+ $.validator.addMethod("datemmddyyyy", function(value, element) {
559
+ return this.optional(element) || /^(?:[1-9]|0[1-9]|1[0-2])[\/\-](?:[1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])[\/\-]\d{4}$/.test(value);
560
+ });//{required: true, range: [11, 22]}
561
+
562
+
563
+
564
+ $(".depItemSel,.depItem").bind("change", function() {
565
+ showHideDep();
566
+ });
567
+ try {
568
+ $( "#fbuilder"+opt.identifier ).tooltip({show: false,hide:false,tooltipClass:"uh-tooltip",position: { my: "left top", at: "left bottom", collision: "none" },items: "[uh]",content: function (){return $(this).attr("uh");} });
569
+ } catch(e){}
570
+
571
+ }
572
+ }
573
+ var showSettings= {
574
+ sizeList:new Array({id:"small",name:"Small"},{id:"medium",name:"Medium"},{id:"large",name:"Large"}),
575
+ layoutList:new Array({id:"one_column",name:"One Column"},{id:"two_column",name:"Two Column"},{id:"three_column",name:"Three Column"},{id:"side_by_side",name:"Side by Side"}),
576
+ formlayoutList:new Array({id:"top_aligned",name:"Top Aligned"},{id:"left_aligned",name:"Left Aligned"},{id:"right_aligned",name:"Right Aligned"}),
577
+ showTitle: function(f,v) {
578
+ var str = '<label>Field Label</label><textarea class="large" name="sTitle" id="sTitle">'+v+'</textarea>';
579
+ if (v=="Page Break") str = "";
580
+ return '<label>Field Type: '+getNameByIdFromType(f)+'</label><br /><br />'+str;
581
+ },
582
+ showName: function(v1,v2) {
583
+ return '<div><label>Short label (optional) [<a class="helpfbuilder" text="The short label is used at title for the column when exporting the form data to CSV files.\n\nIf the short label is empty then, the field label will be used for the CSV file.">help?</a>] :</label><input class="large" name="sShortlabel" id="sShortlabel" value="'+v2+'" /></div>'+
584
+ '<div><label>Field tag for the message (optional):</label><input readonly="readonly" class="large" name="sNametag" id="sNametag" value="&lt;%'+v1+'%&gt;" />'+
585
+ '<input style="display:none" readonly="readonly" class="large" name="sName" id="sName" value="'+v1+'" /></div>';
586
+ },
587
+ showPredefined: function(v,c) {
588
+ return '<div><label>Predefined Value</label><textarea class="large" name="sPredefined" id="sPredefined">'+v+'</textarea><br /><input type="checkbox" name="sPredefinedClick" id="sPredefinedClick" '+((c)?"checked":"")+' value="1" > Hide predefined value on click.</div>';
589
+ },
590
+ showEqualTo: function(v,name) {
591
+ return '<div><label>Equal to [<a class="helpfbuilder" text="Use this field to create password confirmation field or email confirmation fields.\n\nSpecify this setting ONLY into the confirmation field, not in the original field.">help?</a>]</label><br /><select class="equalTo" name="sEqualTo" id="sEqualTo" dvalue="'+v+'" dname="'+name+'"></select></div>';
592
+ },
593
+ showRequired: function(v) {
594
+ return '<div><input type="checkbox" name="sRequired" id="sRequired" '+((v)?"checked":"")+'><label>Required</label></div>';
595
+ },
596
+ showSize: function(v) {
597
+ var str = "";
598
+ for (var i=0;i<this.sizeList.length;i++)
599
+ str += '<option value="'+this.sizeList[i].id+'" '+((this.sizeList[i].id==v)?"selected":"")+'>'+this.sizeList[i].name+'</option>';
600
+ return '<label>Field Size</label><br /><select name="sSize" id="sSize">'+str+'</select>';
601
+ },
602
+ showLayout: function(v) {
603
+ var str = "";
604
+ for (var i=0;i<this.layoutList.length;i++)
605
+ str += '<option value="'+this.layoutList[i].id+'" '+((this.layoutList[i].id==v)?"selected":"")+'>'+this.layoutList[i].name+'</option>';
606
+ return '<label>Field Layout</label><br /><select name="sLayout" id="sLayout">'+str+'</select>';
607
+ },
608
+ showUserhelp: function(v,c) {
609
+ return '<div><label>Instructions for User</label><textarea class="large" name="sUserhelp" id="sUserhelp">'+v+'</textarea><br /><input type="checkbox" name="sUserhelpTooltip" id="sUserhelpTooltip" '+((c)?"checked":"")+' value="1" > Show as floating tooltip.</div>';
610
+ },
611
+ showCsslayout: function(v) {
612
+ return '<label>Add Css Layout Keywords</label><input class="large" name="sCsslayout" id="sCsslayout" value="'+v+'" />';
613
+ }
614
+ };
615
+ var fform=function(){};
616
+ $.extend(fform.prototype,{
617
+ title:"Untitled Form",
618
+ description:"This is my form. Please fill it out. It's awesome!",
619
+ formlayout:"top_aligned",
620
+ display:function(){
621
+ return '<div class="fform" id="field"><div class="arrow ui-icon ui-icon-play "></div><h1>'+this.title+'</h1><span>'+this.description+'</span></div>';
622
+ },
623
+ show:function(){
624
+ return '<div class="fform" id="field"><h1>'+this.title+'</h1><span>'+this.description+'</span></div>';
625
+ },
626
+ showAllSettings:function(){
627
+ var str = "";
628
+ for (var i=0;i<showSettings.formlayoutList.length;i++)
629
+ str += '<option value="'+showSettings.formlayoutList[i].id+'" '+((showSettings.formlayoutList[i].id==this.formlayout)?"selected":"")+'>'+showSettings.formlayoutList[i].name+'</option>';
630
+ return '<div><label>Form Name</label><input class="large" name="fTitle" id="fTitle" value="'+htmlEncode(this.title)+'" /></div><div><label>Description</label><textarea class="large" name="fDescription" id="fDescription">'+this.description+'</textarea></div><div><label>Label Placement</label><br /><select name="fLayout" id="fLayout">'+str+'</select></div>';
631
+ }
632
+
633
+ });
634
+ var theForm = new fform();
635
+ var ffields=function(){};
636
+ $.extend(ffields.prototype, {
637
+ name:"",
638
+ shortlabel:"",
639
+ index:-1,
640
+ ftype:"",
641
+ userhelp:"",
642
+ userhelpTooltip:false,
643
+ csslayout:"",
644
+ init:function(){
645
+ },
646
+ showSpecialData:function(){
647
+ if(typeof this.showSpecialDataInstance != 'undefined')
648
+ return this.showSpecialDataInstance();
649
+ else
650
+ return "";
651
+ },
652
+ showEqualTo:function(){
653
+ if(typeof this.equalTo != 'undefined')
654
+ return showSettings.showEqualTo(this.equalTo,this.name);
655
+ else
656
+ return "";
657
+ },
658
+ showPredefined:function(){
659
+ if(typeof this.predefined != 'undefined')
660
+ return showSettings.showPredefined(this.predefined,this.predefinedClick);
661
+ else
662
+ return "";
663
+ },
664
+ showRequired:function(){
665
+ if(typeof this.required != 'undefined')
666
+ return showSettings.showRequired(this.required);
667
+ else
668
+ return "";
669
+ },
670
+ showSize:function(){
671
+ if(typeof this.size != 'undefined')
672
+ return showSettings.showSize(this.size);
673
+ else
674
+ return "";
675
+ },
676
+ showLayout:function(){
677
+ if(typeof this.layout != 'undefined')
678
+ return showSettings.showLayout(this.layout);
679
+ else
680
+ return "";
681
+ },
682
+ showRange:function(){
683
+ if(typeof this.min != 'undefined')
684
+ return this.showRangeIntance();
685
+ else
686
+ return "";
687
+ },
688
+ showFormat:function(){
689
+ if(typeof this.dformat != 'undefined')
690
+ try {
691
+ return this.showFormatIntance();
692
+ } catch(e) {return "";}
693
+ else
694
+ return "";
695
+ },
696
+ showChoice:function(){
697
+ if(typeof this.choices != 'undefined')
698
+ return this.showChoiceIntance();
699
+ else
700
+ return "";
701
+ },
702
+ showUserhelp:function(){
703
+ return ((this.ftype!="fPageBreak")?showSettings.showUserhelp(this.userhelp,this.userhelpTooltip):"");
704
+ },
705
+ showCsslayout:function(){
706
+ return ((this.ftype!="fPageBreak")?showSettings.showCsslayout(this.csslayout):"");
707
+ },
708
+ showAllSettings:function(){
709
+ return this.showTitle()+this.showName()+this.showSize()+this.showLayout()+this.showFormat()+this.showRange()+this.showRequired()+this.showSpecialData()+this.showEqualTo()+this.showPredefined()+this.showChoice()+this.showUserhelp()+this.showCsslayout();
710
+ },
711
+ showTitle:function(){
712
+ return showSettings.showTitle(this.ftype,this.title);
713
+ },
714
+ showName:function(){
715
+ return ((this.ftype!="fPageBreak")?showSettings.showName(this.name,this.shortlabel):"");
716
+ },
717
+ display:function(){
718
+ return 'Not available yet';
719
+ },
720
+ show:function(){
721
+ return 'Not available yet';
722
+ },
723
+ toJSON:function(){
724
+ str = '';
725
+ $.each( this, function(i, n){
726
+ if (typeof n!="function")
727
+ {
728
+ if (str!="")
729
+ str += ",";
730
+ str += '"'+i+'":'+n ;
731
+ }
732
+ });
733
+ return str;
734
+ }
735
+ });
736
+ var ftext=function(){};
737
+ $.extend(ftext.prototype,ffields.prototype,{
738
+ title:"Untitled",
739
+ ftype:"ftext",
740
+ predefined:"",
741
+ predefinedClick:false,
742
+ required:false,
743
+ size:"medium",
744
+ minlength:"",
745
+ maxlength:"",
746
+ equalTo:"",
747
+ display:function(){
748
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
749
+ },
750
+ show:function(){
751
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input id="'+this.name+'" name="'+this.name+'" minlength="'+(this.minlength)+'" maxlength="'+htmlEncode(this.maxlength)+'" '+((this.equalTo!="")?"equalTo=\"#"+htmlEncode(this.equalTo+opt.identifier)+"\"":"" )+' class="field '+this.size+((this.required)?" required":"")+'" type="text" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
752
+ },
753
+ showSpecialDataInstance: function() {
754
+ return '<div class="column"><label>Min length/characters</label><br /><input name="sMinlength" id="sMinlength" value="'+this.minlength+'"></div><div class="column"><label>Max length/characters</label><br /><input name="sMaxlength" id="sMaxlength" value="'+this.maxlength+'"></div><div class="clearer"></div>';
755
+ }
756
+ });
757
+ var fpassword=function(){};
758
+ $.extend(fpassword.prototype,ffields.prototype,{
759
+ title:"Untitled",
760
+ ftype:"fpassword",
761
+ predefined:"",
762
+ predefinedClick:false,
763
+ required:false,
764
+ size:"medium",
765
+ minlength:"",
766
+ maxlength:"",
767
+ equalTo:"",
768
+ display:function(){
769
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="password" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
770
+ },
771
+ show:function(){
772
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input id="'+this.name+'" name="'+this.name+'" minlength="'+(this.minlength)+'" maxlength="'+htmlEncode(this.maxlength)+'" '+((this.equalTo!="")?"equalTo=\"#"+htmlEncode(this.equalTo+opt.identifier)+"\"":"" )+' class="field '+this.size+((this.required)?" required":"")+'" type="password" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
773
+ },
774
+ showSpecialDataInstance: function() {
775
+ return '<div class="column"><label>Min length/characters</label><br /><input name="sMinlength" id="sMinlength" value="'+this.minlength+'"></div><div class="column"><label>Max length/characters</label><br /><input name="sMaxlength" id="sMaxlength" value="'+this.maxlength+'"></div><div class="clearer"></div>';
776
+ }
777
+ });
778
+ var femail=function(){};
779
+ $.extend(femail.prototype,ffields.prototype,{
780
+ title:"Email",
781
+ ftype:"femail",
782
+ predefined:"",
783
+ predefinedClick:false,
784
+ required:false,
785
+ size:"medium",
786
+ equalTo:"",
787
+ display:function(){
788
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="email" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
789
+ },
790
+ show:function(){
791
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input id="'+this.name+'" name="'+this.name+'" '+((this.equalTo!="")?"equalTo=\"#"+htmlEncode(this.equalTo+opt.identifier)+"\"":"" )+' class="field email '+this.size+((this.required)?" required":"")+'" type="email" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
792
+ },
793
+ showSpecialDataInstance: function() {
794
+ var str = "";
795
+ return str;
796
+ }
797
+ });
798
+ var fnumber=function(){};
799
+ $.extend(fnumber.prototype,ffields.prototype,{
800
+ title:"Number",
801
+ ftype:"fnumber",
802
+ predefined:"",
803
+ predefinedClick:false,
804
+ required:false,
805
+ size:"small",
806
+ min:"",
807
+ max:"",
808
+ dformat:"digits",
809
+ formats:new Array("digits","number"),
810
+ display:function(){
811
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="text" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
812
+ },
813
+ show:function(){
814
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input id="'+this.name+'" name="'+this.name+'" min="'+this.min+'" max="'+this.max+'" class="field '+this.dformat+' '+this.size+((this.required)?" required":"")+'" type="text" value="'+htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
815
+ },
816
+ showFormatIntance: function() {
817
+ var str = "";
818
+ for (var i=0;i<this.formats.length;i++)
819
+ str += '<option value="'+this.formats[i]+'" '+((this.formats[i]==this.dformat)?"selected":"")+'>'+this.formats[i]+'</option>';
820
+ return '<div><label>Number Format</label><br /><select name="sFormat" id="sFormat">'+str+'</select></div>';
821
+ },
822
+ showRangeIntance: function() {
823
+ return '<div class="column"><label>Min</label><br /><input name="sMin" id="sMin" value="'+this.min+'"></div><div class="column"><label>Max</label><br /><input name="sMax" id="sMax" value="'+this.max+'"></div><div class="clearer"></div>';
824
+ }
825
+ });
826
+ var fdate=function(){};
827
+ $.extend(fdate.prototype,ffields.prototype,{
828
+ title:"Date",
829
+ ftype:"fdate",
830
+ predefined:"",
831
+ predefinedClick:false,
832
+ size:"medium",
833
+ required:false,
834
+ dformat:"mm/dd/yyyy",
835
+ showDropdown:false,
836
+ dropdownRange:"-10:+10",
837
+ minDate:"",
838
+ maxDate:"",
839
+ defaultDate:"",
840
+ formats:new Array("mm/dd/yyyy","dd/mm/yyyy"),
841
+ display:function(){
842
+ return '';
843
+ },
844
+ show:function(){
845
+ return '';
846
+ },
847
+ showFormatIntance: function() {
848
+ var str = "";
849
+ for (var i=0;i<this.formats.length;i++)
850
+ str += '<option value="'+this.formats[i]+'" '+((this.formats[i]==this.dformat)?"selected":"")+'>'+this.formats[i]+'</option>';
851
+ return '<div><label>Date Format</label><br /><select name="sFormat" id="sFormat">'+str+'</select></div>';
852
+ },
853
+ showSpecialDataInstance: function() {
854
+ var str = "";
855
+ str += '<div><label>Default date [<a class="helpfbuilder" text="You can put one of the following type of values into this field:\n\nEmpty: Leave empty for current date.\n\nDate: A Fixed date with the same date format indicated in the &quot;Date Format&quot; drop-down field.\n\nNumber: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.\n\nString: A smart text indicating a relative date. Relative dates must contain value (number) and period pairs; valid periods are &quot;y&quot; for years, &quot;m&quot; for months, &quot;w&quot; for weeks, and &quot;d&quot; for days. For example, &quot;+1m +7d&quot; represents one month and seven days from today.">help?</a>]</label><br /><input class="medium" name="sDefaultDate" id="sDefaultDate" value="'+this.defaultDate+'" /></div>';
856
+ str += '<div><label>Min date [<a class="helpfbuilder" text="You can put one of the following type of values into this field:\n\nEmpty: No min Date.\n\nDate: A Fixed date with the same date format indicated in the &quot;Date Format&quot; drop-down field.\n\nNumber: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.\n\nString: A smart text indicating a relative date. Relative dates must contain value (number) and period pairs; valid periods are &quot;y&quot; for years, &quot;m&quot; for months, &quot;w&quot; for weeks, and &quot;d&quot; for days. For example, &quot;+1m +7d&quot; represents one month and seven days from today.">help?</a>]</label><br /><input class="medium" name="sMinDate" id="sMinDate" value="'+this.minDate+'" /></div>';
857
+ str += '<div><label>Max date [<a class="helpfbuilder" text="You can put one of the following type of values into this field:\n\nEmpty: No max Date.\n\nDate: A Fixed date with the same date format indicated in the &quot;Date Format&quot; drop-down field.\n\nNumber: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.\n\nString: A smart text indicating a relative date. Relative dates must contain value (number) and period pairs; valid periods are &quot;y&quot; for years, &quot;m&quot; for months, &quot;w&quot; for weeks, and &quot;d&quot; for days. For example, &quot;+1m +7d&quot; represents one month and seven days from today.">help?</a>]</label><br /><input class="medium" name="sMaxDate" id="sMaxDate" value="'+this.maxDate+'" /></div>';
858
+ str += '<div><input type="checkbox" name="sShowDropdown" id="sShowDropdown" '+((this.showDropdown)?"checked":"")+'/><label>Show Dropdown Year and Month</label><div id="divdropdownRange" style="display:'+((this.showDropdown)?"":"none")+'">Year Range [<a class="helpfbuilder" text="The range of years displayed in the year drop-down: either relative to today\'s year (&quot;-nn:+nn&quot;), absolute (&quot;nnnn:nnnn&quot;), or combinations of these formats (&quot;nnnn:-nn&quot;)">help?</a>]: <input type="text" name="sDropdownRange" id="sDropdownRange" value="'+htmlEncode(this.dropdownRange)+'"/></div></div>';
859
+ return str;
860
+ }
861
+ });
862
+ var ftextarea=function(){};
863
+ $.extend(ftextarea.prototype,ffields.prototype,{
864
+ title:"Untitled",
865
+ ftype:"ftextarea",
866
+ predefined:"",
867
+ predefinedClick:false,
868
+ required:false,
869
+ size:"medium",
870
+ minlength:"",
871
+ maxlength:"",
872
+ display:function(){
873
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><textarea class="field disabled '+this.size+'">'+this.predefined+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
874
+ },
875
+ show:function(){
876
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><textarea id="'+this.name+'" name="'+this.name+'" minlength="'+(this.minlength)+'" maxlength="'+htmlEncode(this.maxlength)+'" class="field '+this.size+((this.required)?" required":"")+'">'+this.predefined+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
877
+ },
878
+ showSpecialDataInstance: function() {
879
+ return '<div class="column"><label>Min length/characters</label><br /><input name="sMinlength" id="sMinlength" value="'+this.minlength+'"></div><div class="column"><label>Max length/characters</label><br /><input name="sMaxlength" id="sMaxlength" value="'+this.maxlength+'"></div><div class="clearer"></div>';
880
+ }
881
+ });
882
+ var ffile=function(){};
883
+ $.extend(ffile.prototype,ffields.prototype,{
884
+ title:"Untitled",
885
+ ftype:"ffile",
886
+ required:false,
887
+ size:"medium",
888
+ display:function(){
889
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input type="file" class="field disabled '+this.size+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
890
+ },
891
+ show:function(){
892
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input type="file" id="'+this.name+'" name="'+this.name+'" class="field '+this.size+((this.required)?" required":"")+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
893
+ }
894
+ });
895
+ var fSectionBreak=function(){};
896
+ $.extend(fSectionBreak.prototype,ffields.prototype,{
897
+ title:"Section Break",
898
+ ftype:"fSectionBreak",
899
+ userhelp:"A description of the section goes here.",
900
+ display:function(){
901
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
902
+ },
903
+ show:function(){
904
+ return '<div class="fields '+this.csslayout+' section_breaks" id="field'+opt.identifier+'-'+this.index+'"><div class="section_break" id="'+this.name+'" ></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
905
+ }
906
+ });
907
+ var fPageBreak=function(){};
908
+ $.extend(fPageBreak.prototype,ffields.prototype,{
909
+ title:"Page Break",
910
+ ftype:"fPageBreak",
911
+ display:function(){
912
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><div class="section_break"></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
913
+ },
914
+ show:function(){
915
+ return '<div class="fields '+this.csslayout+' section_breaks" id="field'+opt.identifier+'-'+this.index+'"><div class="section_break" id="'+this.name+'" ></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
916
+ }
917
+ });
918
+ var fPhone=function(){};
919
+ $.extend(fPhone.prototype,ffields.prototype,{
920
+ title:"Phone",
921
+ ftype:"fPhone",
922
+ required:false,
923
+ dformat:"### ### ####",
924
+ predefined:"888 888 8888",
925
+ display:function(){
926
+ var str = "";
927
+ var tmp = this.dformat.split(' ');
928
+ var tmpv = this.predefined.split(' ');
929
+ for (var i=0;i<tmpv.length;i++)
930
+ if ($.trim(tmpv[i])=="")
931
+ tmpv.splice(i,1);
932
+ for (var i=0;i<tmp.length;i++)
933
+ if ($.trim(tmp[i])!="")
934
+ 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>';
935
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
936
+ },
937
+ show:function(){
938
+ var str = "";
939
+ var tmp = this.dformat.split(' ');
940
+ var tmpv = this.predefined.split(' ');
941
+ for (var i=0;i<tmpv.length;i++)
942
+ if ($.trim(tmpv[i])=="")
943
+ tmpv.splice(i,1);
944
+ for (var i=0;i<tmp.length;i++)
945
+ if ($.trim(tmp[i])!="")
946
+ str += '<div class="uh_phone" ><input type="text" id="'+this.name+'_'+i+'" name="'+this.name+'_'+i+'" class="field digits '+((this.required)?" required":"")+'" style="width:'+(15*$.trim(tmp[i]).length)+'px" value="'+((tmpv[i])?tmpv[i]:"")+'" maxlength="'+$.trim(tmp[i]).length+'" minlength="'+$.trim(tmp[i]).length+'"/><div class="l">'+$.trim(tmp[i])+'</div></div>';
947
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input type="hidden" id="'+this.name+'" name="'+this.name+'" class="field " />'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
948
+ },
949
+ showFormatIntance: function() {
950
+ return '<div><label>Number Format</label><br /><input type="text" name="sFormat" id="sFormat" value="'+this.dformat+'" /></div>';
951
+ }
952
+ });
953
+ var fCommentArea=function(){};
954
+ $.extend(fCommentArea.prototype,ffields.prototype,{
955
+ title:"Comments here",
956
+ ftype:"fCommentArea",
957
+ userhelp:"A description of the section goes here.",
958
+ display:function(){
959
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
960
+ },
961
+ show:function(){
962
+ return '<div class="fields '+this.csslayout+' comment_area" id="field'+opt.identifier+'-'+this.index+'"><label id="'+this.name+'">'+this.title+'</label><span class="uh">'+this.userhelp+'</span><div class="clearer"></div></div>';
963
+ }
964
+ });
965
+ var fcheck=function(){};
966
+ $.extend(fcheck.prototype,ffields.prototype,{
967
+ title:"Check All That Apply",
968
+ ftype:"fcheck",
969
+ layout:"one_column",
970
+ required:false,
971
+ showDep:false,
972
+ init:function(){
973
+ this.choices = new Array("First Choice","Second Choice","Third Choice");
974
+ this.choicesVal = new Array("First Choice","Second Choice","Third Choice");
975
+ this.choiceSelected = new Array(false,false,false);
976
+ this.choicesDep = new Array(new Array(),new Array(),new Array());
977
+ },
978
+ display:function(){
979
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
980
+ var str = "";
981
+ for (var i=0;i<this.choices.length;i++)
982
+ str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/> '+this.choices[i]+'</div>';
983
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
984
+ },
985
+ show:function(){
986
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
987
+ var str = "";
988
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
989
+ {
990
+ this.choicesDep = new Array();
991
+ for (var i=0;i<this.choices.length;i++)
992
+ this.choicesDep[i] = new Array();
993
+ }
994
+ for (var i=0;i<this.choices.length;i++)
995
+ {
996
+ var classDep = "",attrDep = "";
997
+ var d = this.choicesDep;
998
+ if (d[i].length>0)
999
+ {
1000
+ classDep = " depItem";
1001
+ for (var j=0;j<d[i].length;j++)
1002
+ {
1003
+ attrDep += ","+d[i][j];
1004
+ }
1005
+ }
1006
+ str += '<div class="'+this.layout+'"><input name="'+this.name+'[]" '+((classDep!="")?"dep=\""+attrDep+"\"":"")+' id="'+this.name+'" class="field depItem group '+((this.required)?" required":"")+'" value="'+htmlEncode(this.choicesVal[i])+'" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/> <span>'+this.choices[i]+'</span></div>';
1007
+ }
1008
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
1009
+ },
1010
+ showChoiceIntance: function() {
1011
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1012
+ var l = this.choices;
1013
+ var lv = this.choicesVal;
1014
+ var v = this.choiceSelected;
1015
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
1016
+ {
1017
+ this.choicesDep = new Array();
1018
+ for (var i=0;i<l.length;i++)
1019
+ this.choicesDep[i] = new Array();
1020
+ }
1021
+ var d = this.choicesDep;
1022
+ var str = "";
1023
+ for (var i=0;i<l.length;i++)
1024
+ {
1025
+ str += '<div class="choicesEdit"><input class="choice_check" i="'+i+'" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/><input class="choice_text" i="'+i+'" type="text" name="sChoice'+this.name+'" id="sChoice'+this.name+'" value="'+htmlEncode(l[i])+'"/><input class="choice_value" i="'+i+'" type="text" name="sChoice'+this.name+'V'+i+'" id="sChoice'+this.name+'V'+i+'" value="'+htmlEncode(lv[i])+'"/><a class="choice_add ui-icon ui-icon-circle-plus" i="'+i+'" title="Add another choice."></a><a class="choice_remove ui-icon ui-icon-circle-minus" i="'+i+'" title="Delete this choice."></a></div>';
1026
+ for (var j=0;j<d[i].length;j++)
1027
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+j+'" dname="'+this.name+'" dvalue="'+d[i][j]+'" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+j+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+j+'" title="Delete this dependency."></a></div>';
1028
+ if (d[i].length==0)
1029
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+d[i].length+'" dname="'+this.name+'" dvalue="" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+d[i].length+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+d[i].length+'" title="Delete this dependency."></a></div>';
1030
+ }
1031
+ return '<div class="choicesSet '+((this.showDep)?"show":"hide")+'"><label>Choices</label> <a class="helpfbuilder dep" text="Dependencies are used to show/hide other fields depending of the option selected in this field.">help?</a> <a href="" class="showHideDependencies">'+((this.showDep)?"Hide":"Show")+' Dependencies</a><div><div class="t">Text</div><div class="t">Value</div><div class="clearer"></div></div>'+str+'</div>';
1032
+ }
1033
+ });
1034
+ var fradio=function(){};
1035
+ $.extend(fradio.prototype,ffields.prototype,{
1036
+ title:"Select a Choice",
1037
+ ftype:"fradio",
1038
+ layout:"one_column",
1039
+ required:false,
1040
+ choiceSelected:null,
1041
+ showDep:false,
1042
+ init:function(){
1043
+ this.choices = new Array("First Choice","Second Choice","Third Choice");
1044
+ this.choicesVal = new Array("First Choice","Second Choice","Third Choice");
1045
+ this.choicesDep = new Array(new Array(),new Array(),new Array());
1046
+ },
1047
+ display:function(){
1048
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1049
+ var str = "";
1050
+ for (var i=0;i<this.choices.length;i++)
1051
+ str += '<div class="'+this.layout+'"><input class="field" disabled="true" type="radio" i="'+i+'" '+((this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+this.choices[i]+'</div>';
1052
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
1053
+ },
1054
+ show:function(){
1055
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1056
+ var str = "";
1057
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
1058
+ {
1059
+ this.choicesDep = new Array();
1060
+ for (var i=0;i<this.choices.length;i++)
1061
+ this.choicesDep[i] = new Array();
1062
+ }
1063
+ for (var i=0;i<this.choices.length;i++)
1064
+ {
1065
+ var classDep = "",attrDep = "";
1066
+ var d = this.choicesDep;
1067
+ if (d[i].length>0)
1068
+ {
1069
+ classDep = " depItem";
1070
+ for (var j=0;j<d[i].length;j++)
1071
+ {
1072
+ attrDep += ","+d[i][j];
1073
+ }
1074
+ }
1075
+ str += '<div class="'+this.layout+'"><input name="'+this.name+'" id="'+this.name+'" '+((classDep!="")?"dep=\""+attrDep+"\"":"")+' class="field depItem group '+((this.required)?" required":"")+'" value="'+htmlEncode(this.choicesVal[i])+'" type="radio" i="'+i+'" '+((this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> <span>'+this.choices[i]+'</span></div>';
1076
+ }
1077
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield">'+str+'<span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
1078
+ },
1079
+ showChoiceIntance: function() {
1080
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1081
+ var l = this.choices;
1082
+ var lv = this.choicesVal;
1083
+ var v = this.choiceSelected;
1084
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
1085
+ {
1086
+ this.choicesDep = new Array();
1087
+ for (var i=0;i<l.length;i++)
1088
+ this.choicesDep[i] = new Array();
1089
+ }
1090
+ var d = this.choicesDep;
1091
+ var str = "";
1092
+ for (var i=0;i<l.length;i++)
1093
+ {
1094
+ str += '<div class="choicesEdit"><input class="choice_radio" i="'+i+'" type="radio" '+((this.choiceSelected==lv[i])?"checked":"")+' name="choice_radio" /><input class="choice_text" i="'+i+'" type="text" name="sChoice'+this.name+'" id="sChoice'+this.name+'" value="'+htmlEncode(l[i])+'"/><input class="choice_value" i="'+i+'" type="text" name="sChoice'+this.name+'V'+i+'" id="sChoice'+this.name+'V'+i+'" value="'+htmlEncode(lv[i])+'"/><a class="choice_add ui-icon ui-icon-circle-plus" i="'+i+'" title="Add another choice."></a><a class="choice_remove ui-icon ui-icon-circle-minus" i="'+i+'" title="Delete this choice."></a></div>';
1095
+ for (var j=0;j<d[i].length;j++)
1096
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+j+'" dname="'+this.name+'" dvalue="'+d[i][j]+'" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+j+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+j+'" title="Delete this dependency."></a></div>';
1097
+ if (d[i].length==0)
1098
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+d[i].length+'" dname="'+this.name+'" dvalue="" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+d[i].length+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+d[i].length+'" title="Delete this dependency."></a></div>';
1099
+ }
1100
+ return '<div class="choicesSet '+((this.showDep)?"show":"hide")+'"><label>Choices</label> <a class="helpfbuilder dep" text="Dependencies are used to show/hide other fields depending of the option selected in this field.">help?</a> <a href="" class="showHideDependencies">'+((this.showDep)?"Hide":"Show")+' Dependencies</a><div><div class="t">Text</div><div class="t">Value</div><div class="clearer"></div></div>'+str+'</div>';
1101
+ }
1102
+ });
1103
+ var fdropdown=function(){};
1104
+ $.extend(fdropdown.prototype,ffields.prototype,{
1105
+ title:"Select a Choice",
1106
+ ftype:"fdropdown",
1107
+ size:"medium",
1108
+ required:false,
1109
+ choiceSelected:"",
1110
+ showDep:false,
1111
+ init:function(){
1112
+ this.choices = new Array("First Choice","Second Choice","Third Choice");
1113
+ this.choicesVal = new Array("First Choice","Second Choice","Third Choice");
1114
+ this.choicesDep = new Array(new Array(),new Array(),new Array());
1115
+ },
1116
+ display:function(){
1117
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1118
+ return '<div class="fields" id="field'+opt.identifier+'-'+this.index+'"><div class="arrow ui-icon ui-icon-play "></div><div class="remove ui-icon ui-icon-trash "></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></div>';
1119
+ },
1120
+ show:function(){
1121
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1122
+ var l = this.choices;
1123
+ var v = this.choiceSelected;
1124
+ var str = "";
1125
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
1126
+ {
1127
+ this.choicesDep = new Array();
1128
+ for (var i=0;i<this.choices.length;i++)
1129
+ this.choicesDep[i] = new Array();
1130
+ }
1131
+ for (var i=0;i<this.choices.length;i++)
1132
+ {
1133
+ var classDep = "",attrDep = "";
1134
+ var d = this.choicesDep;
1135
+ if (d[i].length>0)
1136
+ {
1137
+ classDep = " depItem";
1138
+ for (var j=0;j<d[i].length;j++)
1139
+ {
1140
+ attrDep += ","+d[i][j];
1141
+ }
1142
+ }
1143
+ str += '<option '+((classDep!="")?"dep=\""+attrDep+"\"":"")+' '+((this.choiceSelected==this.choicesVal[i])?"selected":"")+' class="depItem" value="'+htmlEncode(this.choicesVal[i])+'">'+l[i]+'</option>';
1144
+ }
1145
+ return '<div class="fields '+this.csslayout+'" id="field'+opt.identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><select id="'+this.name+'" name="'+this.name+'" class="field depItemSel '+this.size+((this.required)?" required":"")+'" >'+str+'</select><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div><div class="clearer"></div></div>';
1146
+ },
1147
+ showChoiceIntance: function() {
1148
+ this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices.slice(0));
1149
+ var l = this.choices;
1150
+ var lv = this.choicesVal;
1151
+ var v = this.choiceSelected;
1152
+ if (!(typeof(this.choicesDep) != "undefined" && this.choicesDep !== null))
1153
+ {
1154
+ this.choicesDep = new Array();
1155
+ for (var i=0;i<l.length;i++)
1156
+ this.choicesDep[i] = new Array();
1157
+ }
1158
+ var d = this.choicesDep;
1159
+ var str = "";
1160
+ for (var i=0;i<l.length;i++)
1161
+ {
1162
+ str += '<div class="choicesEdit"><input class="choice_select" i="'+i+'" type="radio" '+((this.choiceSelected==lv[i])?"checked":"")+' name="choice_select" /><input class="choice_text" i="'+i+'" type="text" name="sChoice'+this.name+'" id="sChoice'+this.name+'" value="'+htmlEncode(l[i])+'"/><input class="choice_value" i="'+i+'" type="text" name="sChoice'+this.name+'V'+i+'" id="sChoice'+this.name+'V'+i+'" value="'+htmlEncode(lv[i])+'"/><a class="choice_add ui-icon ui-icon-circle-plus" i="'+i+'" title="Add another choice."></a><a class="choice_remove ui-icon ui-icon-circle-minus" i="'+i+'" title="Delete this choice."></a></div>';
1163
+ for (var j=0;j<d[i].length;j++)
1164
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+j+'" dname="'+this.name+'" dvalue="'+d[i][j]+'" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+j+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+j+'" title="Delete this dependency."></a></div>';
1165
+ if (d[i].length==0)
1166
+ str += '<div class="choicesEditDep">If selected show: <select class="dependencies" i="'+i+'" j="'+d[i].length+'" dname="'+this.name+'" dvalue="" ></select><a class="choice_addDep ui-icon ui-icon-circle-plus" i="'+i+'" j="'+d[i].length+'" title="Add another dependency."></a><a class="choice_removeDep ui-icon ui-icon-circle-minus" i="'+i+'" j="'+d[i].length+'" title="Delete this dependency."></a></div>';
1167
+ }
1168
+ return '<div class="choicesSet '+((this.showDep)?"show":"hide")+'"><label>Choices</label> <a class="helpfbuilder dep" text="Dependencies are used to show/hide other fields depending of the option selected in this field.">help?</a> <a href="" class="showHideDependencies">'+((this.showDep)?"Hide":"Show")+' Dependencies</a><div><div class="t">Text</div><div class="t">Value</div><div class="clearer"></div></div>'+str+'</div>';
1169
+ }
1170
+ });
1171
+ if (!opt.pub)
1172
+ {
1173
+ $("#fieldlist"+opt.identifier).sortable({
1174
+ start: function(event, ui) {
1175
+ var start_pos = ui.item.index();
1176
+ ui.item.data('start_pos', start_pos);
1177
+ },
1178
+ stop: function(event, ui) {
1179
+ var end_pos = parseInt(ui.item.index());
1180
+ var start_pos = parseInt(ui.item.data('start_pos'));
1181
+ var tmp = items[start_pos];
1182
+ if (end_pos > start_pos)
1183
+ {
1184
+ for (var i = start_pos; i<end_pos; i++)
1185
+ items[i] = items[i+1];
1186
+ }
1187
+ else
1188
+ {
1189
+ for (var i = start_pos; i>end_pos; i--)
1190
+ items[i] = items[i-1];
1191
+ }
1192
+ items[end_pos] = tmp;
1193
+
1194
+
1195
+ reloadItems();
1196
+ }
1197
+ });
1198
+ }
1199
+ if (!opt.pub)
1200
+ {
1201
+ $('#tabs').tabs({activate: function(event, ui) {
1202
+ if ($(this).tabs( "option", "active" )!=1)
1203
+ {
1204
+ $(".fields").removeClass("ui-selected");
1205
+ itemSelected = -2;
1206
+ if ($(this).tabs( "option", "active" )==2)
1207
+ {
1208
+ $(".fform").addClass("ui-selected");
1209
+ editForm();
1210
+ }
1211
+ else
1212
+ $(".fform").removeClass("ui-selected");
1213
+ }
1214
+ else
1215
+ {
1216
+ $(".fform").removeClass("ui-selected");
1217
+ if (itemSelected<0)
1218
+ $('#tabs-2').html('<b>No Field Selected</b><br />Please click on a field in the form preview on the right to change its properties.');
1219
+ }
1220
+ }
1221
+ });
1222
+ }
1223
+ loadtmp = function(p)
1224
+ {
1225
+
1226
+ if ( d = $.parseJSON(p))
1227
+ {
1228
+ if (d.length==2)
1229
+ {
1230
+ items = new Array();
1231
+ for (var i=0;i<d[0].length;i++)
1232
+ {
1233
+ var obj = eval("new "+d[0][i].ftype+"();");
1234
+ obj = $.extend(obj,d[0][i]);
1235
+ obj.name = obj.name+opt.identifier;
1236
+ items[items.length] = obj;
1237
+ }
1238
+ theForm = new fform();
1239
+ theForm = $.extend(theForm,d[1][0]);
1240
+ if (opt.pub)
1241
+ reloadItemsPublic();
1242
+ else
1243
+ reloadItems();
1244
+ }
1245
+ }
1246
+ }
1247
+ var ffunct = {
1248
+ getItems: function() {
1249
+ return items;
1250
+ },
1251
+ addItem: function(id) {
1252
+ var obj = eval("new "+id+"();")
1253
+ obj.init();
1254
+ var n = 0;
1255
+ for (var i=0;i<items.length;i++)
1256
+ {
1257
+ n1 = parseInt(items[i].name.replace(/fieldname/g,""));
1258
+ if (n1>n)
1259
+ n = n1;
1260
+ }
1261
+ $.extend(obj,{name:"fieldname"+(n+1)});
1262
+ items[items.length] = obj;
1263
+ reloadItems();
1264
+ },
1265
+ saveData:function(f){
1266
+ if (f!="")
1267
+ $("#"+f).val("["+ $.stringifyXX(items,false)+",["+ $.stringifyXX(theForm,false)+"]]");
1268
+ else
1269
+ {
1270
+ $.ajax({
1271
+ type: "POST",
1272
+ url: "process.php?act=save",
1273
+ data: "items="+ $.stringifyXX(items,true)+"&theForm="+ $.stringifyXX(theForm,true),
1274
+ dataType: "json",
1275
+ success: function (result) {
1276
+ alert("The form has been saved!!!");
1277
+ }
1278
+ });
1279
+ }
1280
+ },
1281
+ loadData:function(f){
1282
+
1283
+ if (f!="")
1284
+ loadtmp($("#"+f).val());
1285
+ else
1286
+ {
1287
+ $.ajax({async:false,
1288
+ url: "process.php?act=load",
1289
+ success: function (result) {
1290
+ loadtmp(result.toString());
1291
+ }
1292
+ });
1293
+ }
1294
+ },
1295
+ removeItem: removeItem,
1296
+ editItem:editItem
1297
+ }
1298
+ this.fBuild = ffunct;
1299
+ return this;
1300
+ }
1301
+
1302
+ var fcount = 1;
1303
+ var fnum = "_"+fcount;
1304
+ while (eval("typeof cp_contactformtoemail_fbuilder_config"+fnum+" != 'undefined'"))
1305
+ {
1306
+ try {
1307
+ var cp_contactformtoemail_fbuilder_config = eval("cp_contactformtoemail_fbuilder_config"+fnum);
1308
+ var f = $("#fbuilder"+fnum).fbuilder($.parseJSON(cp_contactformtoemail_fbuilder_config.obj));
1309
+ f.fBuild.loadData("form_structure"+fnum);
1310
+ $("#cp_contactformtoemail_pform"+fnum).validate({
1311
+ ignore:".ignore",
1312
+ errorElement: "div",
1313
+ errorPlacement: function(e, element) {
1314
+ if (element.hasClass('group'))
1315
+ element = element.parent();
1316
+ e.insertBefore(element);
1317
+ e.addClass('message'); // add a class to the wrapper
1318
+ e.css('position', 'absolute');
1319
+ e.css('left',0 );
1320
+ e.css('top',element.parent().outerHeight(true));
1321
+ }
1322
+ });
1323
+ } catch (e) {}
1324
+ fcount++;
1325
+ fnum = "_"+fcount;
1326
+ }
1327
+ })(jQuery);
1328
+ jQuery.holdReady(false);
1329
+ });
js/jQuery.stringify.js ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function(){
2
+ (function($) {
3
+ $.extend({
4
+
5
+ stringifyXX : function stringifyXX(obj) {
6
+ encodeParam = function(param,urlp) {
7
+ if (urlp)
8
+ {
9
+ param = param.replace(/&/g, "%26");
10
+ return encodeURI(param);
11
+ }
12
+ else
13
+ return param;
14
+ }
15
+ enc = function(param) {
16
+ param = param.replace(/\\/g, "\\\\");
17
+ param = param.replace(/\"/g, "\\\"");
18
+
19
+ return param;
20
+ }
21
+ var t = typeof (obj);
22
+ if (t != "object" || obj === null) {
23
+ // simple data type
24
+ if (t == "string") obj = '"' + obj + '"';
25
+ return encodeParam(String(obj));
26
+ } else {
27
+ // recurse array or object
28
+ var n, v, json = [], arr = (obj && obj.constructor == Array);
29
+
30
+ for (n in obj) {
31
+ //alert(n+"-----------"+obj[n]);
32
+ v = obj[n];
33
+ t = typeof(v);
34
+ if (t!="function")
35
+ //if (obj.hasOwnProperty(n))
36
+ {
37
+ if (t == "string") v = '"' + enc(v) + '"'; else if (t == "object" && v !== null) v = $.stringifyXX(v);
38
+ json.push((arr ? "" : '"' + n + '":') + String(v));
39
+ }
40
+ }
41
+ return encodeParam(arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
42
+ }
43
+ }
44
+ });
45
+ })(jQuery);
46
+ });
js/jquery.validate.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(window).on("load",function(){!function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return void(e&&e.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing"));var i=t.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(e.target).hasClass("cancel")&&(i.cancelSubmit=!0)}),this.submit(function(e){function s(){var s;return i.settings.submitHandler?(i.submitButton&&(s=t("<input type='hidden'/>").attr("name",i.submitButton.name).val(i.submitButton.value).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&s.remove(),!1):!0}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,s()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):s():(i.focusInvalid(),!1)})),i)},valid:function(){if(t(this[0]).is("form"))return this.validate().form();var e=!0,i=t(this[0].form).validate();return this.each(function(){e&=i.element(this)}),e},removeAttrs:function(e){var i={},s=this;return t.each(e.split(/\s/),function(t,e){i[e]=s.attr(e),s.removeAttr(e)}),i},rules:function(e,i){var s=this[0];if(e){var n=t.data(s.form,"validator").settings,r=n.rules,a=t.validator.staticRules(s);switch(e){case"add":t.extend(a,t.validator.normalizeRule(i)),r[s.name]=a,i.messages&&(n.messages[s.name]=t.extend(n.messages[s.name],i.messages));break;case"remove":if(!i)return delete r[s.name],a;var u={};return t.each(i.split(/\s/),function(t,e){u[e]=a[e],delete a[e]}),u}}var o=t.validator.normalizeRules(t.extend({},t.validator.metadataRules(s),t.validator.classRules(s),t.validator.attributeRules(s),t.validator.staticRules(s)),s);if(o.required){var l=o.required;delete o.required,o=t.extend({required:l},o)}return o}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+e.value)},filled:function(e){return!!t.trim(""+e.value)},unchecked:function(t){return!t.checked}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(new RegExp("\\{"+t+"\\}","g"),i)}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"cpefb_error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t,e){this.lastActive=t,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(t)).hide())},onfocusout:function(t,e){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){(t.name in this.submitted||t===this.lastElement)&&this.element(t)},onclick:function(t,e){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).addClass(i).removeClass(s):t(e).addClass(i).removeClass(s)},unhighlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).removeClass(i).addClass(s):t(e).removeClass(i).addClass(s)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function e(e){var i=t.data(this[0].form,"validator"),s="on"+e.type.replace(/^validate/,"");i.settings[s]&&i.settings[s].call(i,this[0],e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i=this.groups={};t.each(this.settings.groups,function(e,s){t.each(s.split(/\s/),function(t,s){i[s]=e})});var s=this.settings.rules;t.each(s,function(e,i){s[e]=t.validator.normalizeRule(i)}),t(this.currentForm).validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",e).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",e),this.settings.invalidHandler&&t(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){e=this.validationTargetFor(this.clean(e)),this.lastElement=e,this.prepareElement(e),this.currentElements=t(e);var i=this.check(e)!==!1;return i?delete this.invalid[e.name]:this.invalid[e.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),i},showErrors:function(e){if(e){t.extend(this.errorMap,e),this.errorList=[];for(var i in e)this.errorList.push({message:e[i],element:this.findByName(i)[0]});this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e=0;for(var i in t)e++;return e},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(e){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in i||!e.objectLength(t(this).rules())?!1:(i[this.name]=!0,!0)})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.replace(" ",".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i=t(e).val();return"string"==typeof i?i.replace(/\r/g,""):i},check:function(e){e=this.validationTargetFor(this.clean(e));var i,s=t(e).rules(),n=!1,r=this.elementValue(e);for(var a in s){var u={method:a,parameters:s[a]};try{if(i=t.validator.methods[a].call(this,r,e,u.parameters),"dependency-mismatch"===i){n=!0;continue}if(n=!1,"pending"===i)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!i)return this.formatAndAdd(e,u),!1}catch(o){throw this.settings.debug&&window.console&&console.log("exception occured when checking element "+e.id+", check the '"+u.method+"' method",o),o}}return n?void 0:(this.objectLength(s)&&this.successList.push(e),!0)},customMetaMessage:function(e,i){if(t.metadata){var s=this.settings.meta?t(e).metadata()[this.settings.meta]:t(e).metadata();return s&&s.messages&&s.messages[i]}},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t];return void 0},defaultMessage:function(e,i){return this.findDefined(this.customMessage(e.name,i),this.customMetaMessage(e,i),!this.settings.ignoreTitle&&e.title||void 0,t.validator.messages[i],"<strong>Warning: No message defined for "+e.name+"</strong>")},formatAndAdd:function(e,i){var s=this.defaultMessage(e,i.method),n=/\$?\{(\d+)\}/g;"function"==typeof s?s=s.call(this,i.parameters,e):n.test(s)&&(s=t.validator.format(s.replace(n,"{$1}"),i.parameters)),this.errorList.push({message:s,element:e}),this.errorMap[e.name]=s,this.submitted[e.name]=s},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e;for(t=0;this.errorList[t];t++){var i=this.errorList[t];this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message)}if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var s=this.errorsFor(e);s.length?(s.removeClass(this.settings.validClass).addClass(this.settings.errorClass),s.attr("generated")&&s.html(i)):(s=t("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(e),generated:!0}).addClass(this.settings.errorClass).html(i||""),this.settings.wrapper&&(s=s.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(s).length||(this.settings.errorPlacement?this.settings.errorPlacement(s,t(e)):s.insertAfter(e))),!i&&this.settings.success&&(s.text(""),"string"==typeof this.settings.success?s.addClass(this.settings.success):this.settings.success(s)),this.toShow=this.toShow.add(s)},errorsFor:function(e){var i=this.idOrName(e);return this.errors().filter(function(){return t(this).attr("for")===i})},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name).not(this.settings.ignore)[0]),t},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){var i=this.currentForm;return t(document.getElementsByName(e)).map(function(t,s){return s.form===i&&s.name===e&&s||null})},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case"select":return t("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return e.length},depend:function(t,e){return this.dependTypes[typeof t]?this.dependTypes[typeof t](t,e):!0},dependTypes:{"boolean":function(t,e){return t},string:function(e,i){return!!t(e,i.form).length},"function":function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[e.name],i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},s=t(e).attr("class");return s&&t.each(s.split(" "),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},attributeRules:function(e){var i={},s=t(e);for(var n in t.validator.methods){var r;"required"===n?(r=s.get(0).getAttribute(n),""===r?r=!0:"false"===r&&(r=!1),r=!!r):r=s.attr(n),r?i[n]=r:s[0].getAttribute("type")===n&&(i[n]=!0)}return i.maxlength&&/-1|2147483647|524288/.test(i.maxlength)&&delete i.maxlength,i},metadataRules:function(e){if(!t.metadata)return{};var i=t.data(e.form,"validator").settings.meta;return i?t(e).metadata()[i]:t(e).metadata()},staticRules:function(e){var i={},s=t.data(e.form,"validator");return s.settings.rules&&(i=t.validator.normalizeRule(s.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(s,n){if(n===!1)return void delete e[s];if(n.param||n.depends){var r=!0;switch(typeof n.depends){case"string":r=!!t(n.depends,i.form).length;break;case"function":r=n.depends.call(i,i)}r?e[s]=void 0!==n.param?n.param:!0:delete e[s]}}),t.each(e,function(s,n){e[s]=t.isFunction(n)?n(i):n}),t.each(["minlength","maxlength","min","max"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each(["rangelength","range"],function(){e[this]&&(e[this]=[Number(e[this][0]),Number(e[this][1])])}),t.validator.autoCreateRanges&&(e.min&&e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),e.minlength&&e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e.messages&&delete e.messages,e},normalizeRule:function(e){if("string"==typeof e){var i={};t.each(e.split(/\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,s){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==s?s:t.validator.messages[e],i.length<3&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,s){if(!this.depend(s,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var n=t(i).val();return n&&n.length>0}return this.checkable(i)?this.getLength(e,i)>0:t.trim(e).length>0},remote:function(e,i,s){if(this.optional(i))return"dependency-mismatch";var n=this.previousValue(i);if(this.settings.messages[i.name]||(this.settings.messages[i.name]={}),n.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=n.message,s="string"==typeof s&&{url:s}||s,this.pending[i.name])return"pending";if(n.old===e)return n.valid;n.old=e;var r=this;this.startRequest(i);var a={};return a[i.name]=e,t.ajax(t.extend(!0,{url:s,mode:"abort",port:"validate"+i.name,dataType:"json",data:a,success:function(s){r.settings.messages[i.name].remote=n.originalMessage;var a=s===!0;if(a){var u=r.formSubmitted;r.prepareElement(i),r.formSubmitted=u,r.successList.push(i),r.showErrors()}else{var o={},l=s||r.defaultMessage(i,"remote");o[i.name]=n.message=t.isFunction(l)?l(e):l,r.showErrors(o)}n.valid=a,r.stopRequest(i,a)}},s)),"pending"},minlength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||n>=s},maxlength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||s>=n},rangelength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||n>=s[0]&&n<=s[1]},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||i>=t},range:function(t,e,i){return this.optional(e)||t>=i[0]&&t<=i[1]},email:function(t,e){return this.optional(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t)},url:function(t,e){return this.optional(e)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(new Date(t))},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(t)},number:function(t,e){return this.optional(e)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;var i=0,s=0,n=!1;t=t.replace(/\D/g,"");for(var r=t.length-1;r>=0;r--){var a=t.charAt(r);s=parseInt(a,10),n&&(s*=2)>9&&(s-=9),i+=s,n=!n}return i%10===0},accept:function(t,e,i){return i="string"==typeof i?i.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(e)||t.match(new RegExp(".("+i+")$","i"))},equalTo:function(e,i,s){var n=t(s).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){t(i).valid()});return e===n.val()}}}),t.format=t.validator.format}(jQuery),function(t){var e={};if(t.ajaxPrefilter)t.ajaxPrefilter(function(t,i,s){var n=t.port;"abort"===t.mode&&(e[n]&&e[n].abort(),e[n]=s)});else{var i=t.ajax;t.ajax=function(s){var n=("mode"in s?s:t.ajaxSettings).mode,r=("port"in s?s:t.ajaxSettings).port;return"abort"===n?(e[r]&&e[r].abort(),e[r]=i.apply(this,arguments)):i.apply(this,arguments)}}}(jQuery),function(t){jQuery.event.special.focusin||jQuery.event.special.focusout||!document.addEventListener||t.each({focus:"focusin",blur:"focusout"},function(e,i){function s(e){return e=t.event.fix(e),e.type=i,t.event.dispatch.call(this,e)}t.event.special[i]={setup:function(){this.addEventListener(e,s,!0)},teardown:function(){this.removeEventListener(e,s,!0)},handler:function(e){var s=arguments;return s[0]=t.event.fix(e),s[0].type=i,t.event.dispatch.apply(this,s)}}}),t.extend(t.fn,{validateDelegate:function(e,i,s){return this.bind(i,function(i){var n=t(i.target);return n.is(e)?s.apply(n,arguments):void 0})}})}(jQuery)});
js/jquery.validate.original.js ADDED
@@ -0,0 +1,1250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * jQuery Validation Plugin @VERSION
3
+ *
4
+ * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
5
+ * http://docs.jquery.com/Plugins/Validation
6
+ *
7
+ * Copyright (c) 2012 Jörn Zaefferer
8
+ *
9
+ * Dual licensed under the MIT and GPL licenses:
10
+ * http://www.opensource.org/licenses/mit-license.php
11
+ * http://www.gnu.org/licenses/gpl.html
12
+ */
13
+ jQuery(window).on( 'load', function(){
14
+ (function($) {
15
+
16
+ $.extend($.fn, {
17
+ // http://docs.jquery.com/Plugins/Validation/validate
18
+ validate: function( options ) {
19
+ // if nothing is selected, return nothing; can't chain anyway
20
+ if (!this.length) {
21
+ if (options && options.debug && window.console) {
22
+ console.warn( "nothing selected, can't validate, returning nothing" );
23
+ }
24
+ return;
25
+ }
26
+
27
+ // check if a validator for this form was already created
28
+ var validator = $.data(this[0], 'validator');
29
+ if ( validator ) {
30
+ return validator;
31
+ }
32
+
33
+ // Add novalidate tag if HTML5.
34
+ this.attr('novalidate', 'novalidate');
35
+
36
+ validator = new $.validator( options, this[0] );
37
+ $.data(this[0], 'validator', validator);
38
+
39
+ if ( validator.settings.onsubmit ) {
40
+
41
+ this.validateDelegate( ":submit", "click", function(ev) {
42
+ if ( validator.settings.submitHandler ) {
43
+ validator.submitButton = ev.target;
44
+ }
45
+ // allow suppressing validation by adding a cancel class to the submit button
46
+ if ( $(ev.target).hasClass('cancel') ) {
47
+ validator.cancelSubmit = true;
48
+ }
49
+ });
50
+
51
+ // validate the form on submit
52
+ this.submit( function( event ) {
53
+ if ( validator.settings.debug ) {
54
+ // prevent form submit to be able to see console output
55
+ event.preventDefault();
56
+ }
57
+ function handle() {
58
+ var hidden;
59
+ if ( validator.settings.submitHandler ) {
60
+ if (validator.submitButton) {
61
+ // insert a hidden input as a replacement for the missing submit button
62
+ hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);
63
+ }
64
+ validator.settings.submitHandler.call( validator, validator.currentForm, event );
65
+ if (validator.submitButton) {
66
+ // and clean up afterwards; thanks to no-block-scope, hidden can be referenced
67
+ hidden.remove();
68
+ }
69
+ return false;
70
+ }
71
+ return true;
72
+ }
73
+
74
+ // prevent submit for invalid forms or custom submit handlers
75
+ if ( validator.cancelSubmit ) {
76
+ validator.cancelSubmit = false;
77
+ return handle();
78
+ }
79
+ if ( validator.form() ) {
80
+ if ( validator.pendingRequest ) {
81
+ validator.formSubmitted = true;
82
+ return false;
83
+ }
84
+ return handle();
85
+ } else {
86
+ validator.focusInvalid();
87
+ return false;
88
+ }
89
+ });
90
+ }
91
+
92
+ return validator;
93
+ },
94
+ // http://docs.jquery.com/Plugins/Validation/valid
95
+ valid: function() {
96
+ if ( $(this[0]).is('form')) {
97
+ return this.validate().form();
98
+ } else {
99
+ var valid = true;
100
+ var validator = $(this[0].form).validate();
101
+ this.each(function() {
102
+ valid &= validator.element(this);
103
+ });
104
+ return valid;
105
+ }
106
+ },
107
+ // attributes: space seperated list of attributes to retrieve and remove
108
+ removeAttrs: function(attributes) {
109
+ var result = {},
110
+ $element = this;
111
+ $.each(attributes.split(/\s/), function(index, value) {
112
+ result[value] = $element.attr(value);
113
+ $element.removeAttr(value);
114
+ });
115
+ return result;
116
+ },
117
+ // http://docs.jquery.com/Plugins/Validation/rules
118
+ rules: function(command, argument) {
119
+ var element = this[0];
120
+
121
+ if (command) {
122
+ var settings = $.data(element.form, 'validator').settings;
123
+ var staticRules = settings.rules;
124
+ var existingRules = $.validator.staticRules(element);
125
+ switch(command) {
126
+ case "add":
127
+ $.extend(existingRules, $.validator.normalizeRule(argument));
128
+ staticRules[element.name] = existingRules;
129
+ if (argument.messages) {
130
+ settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages );
131
+ }
132
+ break;
133
+ case "remove":
134
+ if (!argument) {
135
+ delete staticRules[element.name];
136
+ return existingRules;
137
+ }
138
+ var filtered = {};
139
+ $.each(argument.split(/\s/), function(index, method) {
140
+ filtered[method] = existingRules[method];
141
+ delete existingRules[method];
142
+ });
143
+ return filtered;
144
+ }
145
+ }
146
+
147
+ var data = $.validator.normalizeRules(
148
+ $.extend(
149
+ {},
150
+ $.validator.metadataRules(element),
151
+ $.validator.classRules(element),
152
+ $.validator.attributeRules(element),
153
+ $.validator.staticRules(element)
154
+ ), element);
155
+
156
+ // make sure required is at front
157
+ if (data.required) {
158
+ var param = data.required;
159
+ delete data.required;
160
+ data = $.extend({required: param}, data);
161
+ }
162
+
163
+ return data;
164
+ }
165
+ });
166
+
167
+ // Custom selectors
168
+ $.extend($.expr[":"], {
169
+ // http://docs.jquery.com/Plugins/Validation/blank
170
+ blank: function(a) {return !$.trim("" + a.value);},
171
+ // http://docs.jquery.com/Plugins/Validation/filled
172
+ filled: function(a) {return !!$.trim("" + a.value);},
173
+ // http://docs.jquery.com/Plugins/Validation/unchecked
174
+ unchecked: function(a) {return !a.checked;}
175
+ });
176
+
177
+ // constructor for validator
178
+ $.validator = function( options, form ) {
179
+ this.settings = $.extend( true, {}, $.validator.defaults, options );
180
+ this.currentForm = form;
181
+ this.init();
182
+ };
183
+
184
+ $.validator.format = function(source, params) {
185
+ if ( arguments.length === 1 ) {
186
+ return function() {
187
+ var args = $.makeArray(arguments);
188
+ args.unshift(source);
189
+ return $.validator.format.apply( this, args );
190
+ };
191
+ }
192
+ if ( arguments.length > 2 && params.constructor !== Array ) {
193
+ params = $.makeArray(arguments).slice(1);
194
+ }
195
+ if ( params.constructor !== Array ) {
196
+ params = [ params ];
197
+ }
198
+ $.each(params, function(i, n) {
199
+ source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
200
+ });
201
+ return source;
202
+ };
203
+
204
+ $.extend($.validator, {
205
+
206
+ defaults: {
207
+ messages: {},
208
+ groups: {},
209
+ rules: {},
210
+ errorClass: "cpefb_error",
211
+ validClass: "valid",
212
+ errorElement: "label",
213
+ focusInvalid: true,
214
+ errorContainer: $( [] ),
215
+ errorLabelContainer: $( [] ),
216
+ onsubmit: true,
217
+ ignore: ":hidden",
218
+ ignoreTitle: false,
219
+ onfocusin: function(element, event) {
220
+ this.lastActive = element;
221
+
222
+ // hide error label and remove error class on focus if enabled
223
+ if ( this.settings.focusCleanup && !this.blockFocusCleanup ) {
224
+ if ( this.settings.unhighlight ) {
225
+ this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
226
+ }
227
+ this.addWrapper(this.errorsFor(element)).hide();
228
+ }
229
+ },
230
+ onfocusout: function(element, event) {
231
+ if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) {
232
+ this.element(element);
233
+ }
234
+ },
235
+ onkeyup: function(element, event) {
236
+ if ( element.name in this.submitted || element === this.lastElement ) {
237
+ this.element(element);
238
+ }
239
+ },
240
+ onclick: function(element, event) {
241
+ // click on selects, radiobuttons and checkboxes
242
+ if ( element.name in this.submitted ) {
243
+ this.element(element);
244
+ }
245
+ // or option elements, check parent select in that case
246
+ else if (element.parentNode.name in this.submitted) {
247
+ this.element(element.parentNode);
248
+ }
249
+ },
250
+ highlight: function(element, errorClass, validClass) {
251
+ if (element.type === 'radio') {
252
+ this.findByName(element.name).addClass(errorClass).removeClass(validClass);
253
+ } else {
254
+ $(element).addClass(errorClass).removeClass(validClass);
255
+ }
256
+ },
257
+ unhighlight: function(element, errorClass, validClass) {
258
+ if (element.type === 'radio') {
259
+ this.findByName(element.name).removeClass(errorClass).addClass(validClass);
260
+ } else {
261
+ $(element).removeClass(errorClass).addClass(validClass);
262
+ }
263
+ }
264
+ },
265
+
266
+ // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults
267
+ setDefaults: function(settings) {
268
+ $.extend( $.validator.defaults, settings );
269
+ },
270
+
271
+ messages: {
272
+ required: "This field is required.",
273
+ remote: "Please fix this field.",
274
+ email: "Please enter a valid email address.",
275
+ url: "Please enter a valid URL.",
276
+ date: "Please enter a valid date.",
277
+ dateISO: "Please enter a valid date (ISO).",
278
+ number: "Please enter a valid number.",
279
+ digits: "Please enter only digits.",
280
+ creditcard: "Please enter a valid credit card number.",
281
+ equalTo: "Please enter the same value again.",
282
+ accept: "Please enter a value with a valid extension.",
283
+ maxlength: $.validator.format("Please enter no more than {0} characters."),
284
+ minlength: $.validator.format("Please enter at least {0} characters."),
285
+ rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
286
+ range: $.validator.format("Please enter a value between {0} and {1}."),
287
+ max: $.validator.format("Please enter a value less than or equal to {0}."),
288
+ min: $.validator.format("Please enter a value greater than or equal to {0}.")
289
+ },
290
+
291
+ autoCreateRanges: false,
292
+
293
+ prototype: {
294
+
295
+ init: function() {
296
+ this.labelContainer = $(this.settings.errorLabelContainer);
297
+ this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
298
+ this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer );
299
+ this.submitted = {};
300
+ this.valueCache = {};
301
+ this.pendingRequest = 0;
302
+ this.pending = {};
303
+ this.invalid = {};
304
+ this.reset();
305
+
306
+ var groups = (this.groups = {});
307
+ $.each(this.settings.groups, function(key, value) {
308
+ $.each(value.split(/\s/), function(index, name) {
309
+ groups[name] = key;
310
+ });
311
+ });
312
+ var rules = this.settings.rules;
313
+ $.each(rules, function(key, value) {
314
+ rules[key] = $.validator.normalizeRule(value);
315
+ });
316
+
317
+ function delegate(event) {
318
+ var validator = $.data(this[0].form, "validator"),
319
+ eventType = "on" + event.type.replace(/^validate/, "");
320
+ if (validator.settings[eventType]) {
321
+ validator.settings[eventType].call(validator, this[0], event);
322
+ }
323
+ }
324
+ $(this.currentForm)
325
+ .validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, " +
326
+ "[type='number'], [type='search'] ,[type='tel'], [type='url'], " +
327
+ "[type='email'], [type='datetime'], [type='date'], [type='month'], " +
328
+ "[type='week'], [type='time'], [type='datetime-local'], " +
329
+ "[type='range'], [type='color'] ",
330
+ "focusin focusout keyup", delegate)
331
+ .validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", delegate);
332
+
333
+ if (this.settings.invalidHandler) {
334
+ $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
335
+ }
336
+ },
337
+
338
+ // http://docs.jquery.com/Plugins/Validation/Validator/form
339
+ form: function() {
340
+ this.checkForm();
341
+ $.extend(this.submitted, this.errorMap);
342
+ this.invalid = $.extend({}, this.errorMap);
343
+ if (!this.valid()) {
344
+ $(this.currentForm).triggerHandler("invalid-form", [this]);
345
+ }
346
+ this.showErrors();
347
+ return this.valid();
348
+ },
349
+
350
+ checkForm: function() {
351
+ this.prepareForm();
352
+ for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
353
+ this.check( elements[i] );
354
+ }
355
+ return this.valid();
356
+ },
357
+
358
+ // http://docs.jquery.com/Plugins/Validation/Validator/element
359
+ element: function( element ) {
360
+ element = this.validationTargetFor( this.clean( element ) );
361
+ this.lastElement = element;
362
+ this.prepareElement( element );
363
+ this.currentElements = $(element);
364
+ var result = this.check( element ) !== false;
365
+ if (result) {
366
+ delete this.invalid[element.name];
367
+ } else {
368
+ this.invalid[element.name] = true;
369
+ }
370
+ if ( !this.numberOfInvalids() ) {
371
+ // Hide error containers on last error
372
+ this.toHide = this.toHide.add( this.containers );
373
+ }
374
+ this.showErrors();
375
+ return result;
376
+ },
377
+
378
+ // http://docs.jquery.com/Plugins/Validation/Validator/showErrors
379
+ showErrors: function(errors) {
380
+ if(errors) {
381
+ // add items to error list and map
382
+ $.extend( this.errorMap, errors );
383
+ this.errorList = [];
384
+ for ( var name in errors ) {
385
+ this.errorList.push({
386
+ message: errors[name],
387
+ element: this.findByName(name)[0]
388
+ });
389
+ }
390
+ // remove items from success list
391
+ this.successList = $.grep( this.successList, function(element) {
392
+ return !(element.name in errors);
393
+ });
394
+ }
395
+ if (this.settings.showErrors) {
396
+ this.settings.showErrors.call( this, this.errorMap, this.errorList );
397
+ } else {
398
+ this.defaultShowErrors();
399
+ }
400
+ },
401
+
402
+ // http://docs.jquery.com/Plugins/Validation/Validator/resetForm
403
+ resetForm: function() {
404
+ if ( $.fn.resetForm ) {
405
+ $( this.currentForm ).resetForm();
406
+ }
407
+ this.submitted = {};
408
+ this.lastElement = null;
409
+ this.prepareForm();
410
+ this.hideErrors();
411
+ this.elements().removeClass( this.settings.errorClass );
412
+ },
413
+
414
+ numberOfInvalids: function() {
415
+ return this.objectLength(this.invalid);
416
+ },
417
+
418
+ objectLength: function( obj ) {
419
+ var count = 0;
420
+ for ( var i in obj ) {
421
+ count++;
422
+ }
423
+ return count;
424
+ },
425
+
426
+ hideErrors: function() {
427
+ this.addWrapper( this.toHide ).hide();
428
+ },
429
+
430
+ valid: function() {
431
+ return this.size() === 0;
432
+ },
433
+
434
+ size: function() {
435
+ return this.errorList.length;
436
+ },
437
+
438
+ focusInvalid: function() {
439
+ if( this.settings.focusInvalid ) {
440
+ try {
441
+ $(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])
442
+ .filter(":visible")
443
+ .focus()
444
+ // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
445
+ .trigger("focusin");
446
+ } catch(e) {
447
+ // ignore IE throwing errors when focusing hidden elements
448
+ }
449
+ }
450
+ },
451
+
452
+ findLastActive: function() {
453
+ var lastActive = this.lastActive;
454
+ return lastActive && $.grep(this.errorList, function(n) {
455
+ return n.element.name === lastActive.name;
456
+ }).length === 1 && lastActive;
457
+ },
458
+
459
+ elements: function() {
460
+ var validator = this,
461
+ rulesCache = {};
462
+
463
+ // select all valid inputs inside the form (no submit or reset buttons)
464
+ return $(this.currentForm)
465
+ .find("input, select, textarea")
466
+ .not(":submit, :reset, :image, [disabled]")
467
+ .not( this.settings.ignore )
468
+ .filter(function() {
469
+ if ( !this.name && validator.settings.debug && window.console ) {
470
+ console.error( "%o has no name assigned", this);
471
+ }
472
+
473
+ // select only the first element for each name, and only those with rules specified
474
+ if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) {
475
+ return false;
476
+ }
477
+
478
+ rulesCache[this.name] = true;
479
+ return true;
480
+ });
481
+ },
482
+
483
+ clean: function( selector ) {
484
+ return $( selector )[0];
485
+ },
486
+
487
+ errors: function() {
488
+ var errorClass = this.settings.errorClass.replace(' ', '.');
489
+ return $( this.settings.errorElement + "." + errorClass, this.errorContext );
490
+ },
491
+
492
+ reset: function() {
493
+ this.successList = [];
494
+ this.errorList = [];
495
+ this.errorMap = {};
496
+ this.toShow = $([]);
497
+ this.toHide = $([]);
498
+ this.currentElements = $([]);
499
+ },
500
+
501
+ prepareForm: function() {
502
+ this.reset();
503
+ this.toHide = this.errors().add( this.containers );
504
+ },
505
+
506
+ prepareElement: function( element ) {
507
+ this.reset();
508
+ this.toHide = this.errorsFor(element);
509
+ },
510
+
511
+ elementValue: function( element ) {
512
+ var val = $(element).val();
513
+ if( typeof val === 'string' ) {
514
+ return val.replace(/\r/g, "");
515
+ }
516
+ return val;
517
+ },
518
+
519
+ check: function( element ) {
520
+ element = this.validationTargetFor( this.clean( element ) );
521
+
522
+ var rules = $(element).rules();
523
+ var dependencyMismatch = false;
524
+ var val = this.elementValue(element);
525
+ var result;
526
+
527
+ for (var method in rules ) {
528
+ var rule = { method: method, parameters: rules[method] };
529
+ try {
530
+
531
+ result = $.validator.methods[method].call( this, val, element, rule.parameters );
532
+
533
+ // if a method indicates that the field is optional and therefore valid,
534
+ // don't mark it as valid when there are no other rules
535
+ if ( result === "dependency-mismatch" ) {
536
+ dependencyMismatch = true;
537
+ continue;
538
+ }
539
+ dependencyMismatch = false;
540
+
541
+ if ( result === "pending" ) {
542
+ this.toHide = this.toHide.not( this.errorsFor(element) );
543
+ return;
544
+ }
545
+
546
+ if( !result ) {
547
+ this.formatAndAdd( element, rule );
548
+ return false;
549
+ }
550
+ } catch(e) {
551
+ if ( this.settings.debug && window.console ) {
552
+ console.log("exception occured when checking element " + element.id + ", check the '" + rule.method + "' method", e);
553
+ }
554
+ throw e;
555
+ }
556
+ }
557
+ if (dependencyMismatch) {
558
+ return;
559
+ }
560
+ if ( this.objectLength(rules) ) {
561
+ this.successList.push(element);
562
+ }
563
+ return true;
564
+ },
565
+
566
+ // return the custom message for the given element and validation method
567
+ // specified in the element's "messages" metadata
568
+ customMetaMessage: function(element, method) {
569
+ if (!$.metadata) {
570
+ return;
571
+ }
572
+ var meta = this.settings.meta ? $(element).metadata()[this.settings.meta] : $(element).metadata();
573
+ return meta && meta.messages && meta.messages[method];
574
+ },
575
+
576
+ // return the custom message for the given element name and validation method
577
+ customMessage: function( name, method ) {
578
+ var m = this.settings.messages[name];
579
+ return m && (m.constructor === String ? m : m[method]);
580
+ },
581
+
582
+ // return the first defined argument, allowing empty strings
583
+ findDefined: function() {
584
+ for(var i = 0; i < arguments.length; i++) {
585
+ if (arguments[i] !== undefined) {
586
+ return arguments[i];
587
+ }
588
+ }
589
+ return undefined;
590
+ },
591
+
592
+ defaultMessage: function( element, method) {
593
+ return this.findDefined(
594
+ this.customMessage( element.name, method ),
595
+ this.customMetaMessage( element, method ),
596
+ // title is never undefined, so handle empty string as undefined
597
+ !this.settings.ignoreTitle && element.title || undefined,
598
+ $.validator.messages[method],
599
+ "<strong>Warning: No message defined for " + element.name + "</strong>"
600
+ );
601
+ },
602
+
603
+ formatAndAdd: function( element, rule ) {
604
+ var message = this.defaultMessage( element, rule.method ),
605
+ theregex = /\$?\{(\d+)\}/g;
606
+ if ( typeof message === "function" ) {
607
+ message = message.call(this, rule.parameters, element);
608
+ } else if (theregex.test(message)) {
609
+ message = $.validator.format(message.replace(theregex, '{$1}'), rule.parameters);
610
+ }
611
+ this.errorList.push({
612
+ message: message,
613
+ element: element
614
+ });
615
+
616
+ this.errorMap[element.name] = message;
617
+ this.submitted[element.name] = message;
618
+ },
619
+
620
+ addWrapper: function(toToggle) {
621
+ if ( this.settings.wrapper ) {
622
+ toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );
623
+ }
624
+ return toToggle;
625
+ },
626
+
627
+ defaultShowErrors: function() {
628
+ var i, elements;
629
+ for ( i = 0; this.errorList[i]; i++ ) {
630
+ var error = this.errorList[i];
631
+ if ( this.settings.highlight ) {
632
+ this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
633
+ }
634
+ this.showLabel( error.element, error.message );
635
+ }
636
+ if( this.errorList.length ) {
637
+ this.toShow = this.toShow.add( this.containers );
638
+ }
639
+ if (this.settings.success) {
640
+ for ( i = 0; this.successList[i]; i++ ) {
641
+ this.showLabel( this.successList[i] );
642
+ }
643
+ }
644
+ if (this.settings.unhighlight) {
645
+ for ( i = 0, elements = this.validElements(); elements[i]; i++ ) {
646
+ this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
647
+ }
648
+ }
649
+ this.toHide = this.toHide.not( this.toShow );
650
+ this.hideErrors();
651
+ this.addWrapper( this.toShow ).show();
652
+ },
653
+
654
+ validElements: function() {
655
+ return this.currentElements.not(this.invalidElements());
656
+ },
657
+
658
+ invalidElements: function() {
659
+ return $(this.errorList).map(function() {
660
+ return this.element;
661
+ });
662
+ },
663
+
664
+ showLabel: function(element, message) {
665
+ var label = this.errorsFor( element );
666
+ if ( label.length ) {
667
+ // refresh error/success class
668
+ label.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );
669
+
670
+ // check if we have a generated label, replace the message then
671
+ if ( label.attr("generated") ) {
672
+ label.html(message);
673
+ }
674
+ } else {
675
+ // create label
676
+ label = $("<" + this.settings.errorElement + "/>")
677
+ .attr({"for": this.idOrName(element), generated: true})
678
+ .addClass(this.settings.errorClass)
679
+ .html(message || "");
680
+ if ( this.settings.wrapper ) {
681
+ // make sure the element is visible, even in IE
682
+ // actually showing the wrapped element is handled elsewhere
683
+ label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
684
+ }
685
+ if ( !this.labelContainer.append(label).length ) {
686
+ if ( this.settings.errorPlacement ) {
687
+ this.settings.errorPlacement(label, $(element) );
688
+ } else {
689
+ label.insertAfter(element);
690
+ }
691
+ }
692
+ }
693
+ if ( !message && this.settings.success ) {
694
+ label.text("");
695
+ if ( typeof this.settings.success === "string" ) {
696
+ label.addClass( this.settings.success );
697
+ } else {
698
+ this.settings.success( label );
699
+ }
700
+ }
701
+ this.toShow = this.toShow.add(label);
702
+ },
703
+
704
+ errorsFor: function(element) {
705
+ var name = this.idOrName(element);
706
+ return this.errors().filter(function() {
707
+ return $(this).attr('for') === name;
708
+ });
709
+ },
710
+
711
+ idOrName: function(element) {
712
+ return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
713
+ },
714
+
715
+ validationTargetFor: function(element) {
716
+ // if radio/checkbox, validate first element in group instead
717
+ if (this.checkable(element)) {
718
+ element = this.findByName( element.name ).not(this.settings.ignore)[0];
719
+ }
720
+ return element;
721
+ },
722
+
723
+ checkable: function( element ) {
724
+ return (/radio|checkbox/i).test(element.type);
725
+ },
726
+
727
+ findByName: function( name ) {
728
+ // select by name and filter by form for performance over form.find("[name=...]")
729
+ var form = this.currentForm;
730
+ return $(document.getElementsByName(name)).map(function(index, element) {
731
+ return element.form === form && element.name === name && element || null;
732
+ });
733
+ },
734
+
735
+ getLength: function(value, element) {
736
+ switch( element.nodeName.toLowerCase() ) {
737
+ case 'select':
738
+ return $("option:selected", element).length;
739
+ case 'input':
740
+ if( this.checkable( element) ) {
741
+ return this.findByName(element.name).filter(':checked').length;
742
+ }
743
+ }
744
+ return value.length;
745
+ },
746
+
747
+ depend: function(param, element) {
748
+ return this.dependTypes[typeof param] ? this.dependTypes[typeof param](param, element) : true;
749
+ },
750
+
751
+ dependTypes: {
752
+ "boolean": function(param, element) {
753
+ return param;
754
+ },
755
+ "string": function(param, element) {
756
+ return !!$(param, element.form).length;
757
+ },
758
+ "function": function(param, element) {
759
+ return param(element);
760
+ }
761
+ },
762
+
763
+ optional: function(element) {
764
+ var val = this.elementValue(element);
765
+ return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch";
766
+ },
767
+
768
+ startRequest: function(element) {
769
+ if (!this.pending[element.name]) {
770
+ this.pendingRequest++;
771
+ this.pending[element.name] = true;
772
+ }
773
+ },
774
+
775
+ stopRequest: function(element, valid) {
776
+ this.pendingRequest--;
777
+ // sometimes synchronization fails, make sure pendingRequest is never < 0
778
+ if (this.pendingRequest < 0) {
779
+ this.pendingRequest = 0;
780
+ }
781
+ delete this.pending[element.name];
782
+ if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {
783
+ $(this.currentForm).submit();
784
+ this.formSubmitted = false;
785
+ } else if (!valid && this.pendingRequest === 0 && this.formSubmitted) {
786
+ $(this.currentForm).triggerHandler("invalid-form", [this]);
787
+ this.formSubmitted = false;
788
+ }
789
+ },
790
+
791
+ previousValue: function(element) {
792
+ return $.data(element, "previousValue") || $.data(element, "previousValue", {
793
+ old: null,
794
+ valid: true,
795
+ message: this.defaultMessage( element, "remote" )
796
+ });
797
+ }
798
+
799
+ },
800
+
801
+ classRuleSettings: {
802
+ required: {required: true},
803
+ email: {email: true},
804
+ url: {url: true},
805
+ date: {date: true},
806
+ dateISO: {dateISO: true},
807
+ number: {number: true},
808
+ digits: {digits: true},
809
+ creditcard: {creditcard: true}
810
+ },
811
+
812
+ addClassRules: function(className, rules) {
813
+ if ( className.constructor === String ) {
814
+ this.classRuleSettings[className] = rules;
815
+ } else {
816
+ $.extend(this.classRuleSettings, className);
817
+ }
818
+ },
819
+
820
+ classRules: function(element) {
821
+ var rules = {};
822
+ var classes = $(element).attr('class');
823
+ if ( classes ) {
824
+ $.each(classes.split(' '), function() {
825
+ if (this in $.validator.classRuleSettings) {
826
+ $.extend(rules, $.validator.classRuleSettings[this]);
827
+ }
828
+ });
829
+ }
830
+ return rules;
831
+ },
832
+
833
+ attributeRules: function(element) {
834
+ var rules = {};
835
+ var $element = $(element);
836
+
837
+ for (var method in $.validator.methods) {
838
+ var value;
839
+
840
+ // support for <input required> in both html5 and older browsers
841
+ if (method === 'required') {
842
+ value = $element.get(0).getAttribute(method);
843
+ // Some browsers return an empty string for the required attribute
844
+ // and non-HTML5 browsers might have required="" markup
845
+ if (value === "") {
846
+ value = true;
847
+ } else if (value === "false") {
848
+ value = false;
849
+ }
850
+ // force non-HTML5 browsers to return bool
851
+ value = !!value;
852
+ } else {
853
+ value = $element.attr(method);
854
+ }
855
+
856
+ if (value) {
857
+ rules[method] = value;
858
+ } else if ($element[0].getAttribute("type") === method) {
859
+ rules[method] = true;
860
+ }
861
+ }
862
+
863
+ // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
864
+ if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
865
+ delete rules.maxlength;
866
+ }
867
+
868
+ return rules;
869
+ },
870
+
871
+ metadataRules: function(element) {
872
+ if (!$.metadata) {
873
+ return {};
874
+ }
875
+
876
+ var meta = $.data(element.form, 'validator').settings.meta;
877
+ return meta ?
878
+ $(element).metadata()[meta] :
879
+ $(element).metadata();
880
+ },
881
+
882
+ staticRules: function(element) {
883
+ var rules = {};
884
+ var validator = $.data(element.form, 'validator');
885
+ if (validator.settings.rules) {
886
+ rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
887
+ }
888
+ return rules;
889
+ },
890
+
891
+ normalizeRules: function(rules, element) {
892
+ // handle dependency check
893
+ $.each(rules, function(prop, val) {
894
+ // ignore rule when param is explicitly false, eg. required:false
895
+ if (val === false) {
896
+ delete rules[prop];
897
+ return;
898
+ }
899
+ if (val.param || val.depends) {
900
+ var keepRule = true;
901
+ switch (typeof val.depends) {
902
+ case "string":
903
+ keepRule = !!$(val.depends, element.form).length;
904
+ break;
905
+ case "function":
906
+ keepRule = val.depends.call(element, element);
907
+ break;
908
+ }
909
+ if (keepRule) {
910
+ rules[prop] = val.param !== undefined ? val.param : true;
911
+ } else {
912
+ delete rules[prop];
913
+ }
914
+ }
915
+ });
916
+
917
+ // evaluate parameters
918
+ $.each(rules, function(rule, parameter) {
919
+ rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
920
+ });
921
+
922
+ // clean number parameters
923
+ $.each(['minlength', 'maxlength', 'min', 'max'], function() {
924
+ if (rules[this]) {
925
+ rules[this] = Number(rules[this]);
926
+ }
927
+ });
928
+ $.each(['rangelength', 'range'], function() {
929
+ if (rules[this]) {
930
+ rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
931
+ }
932
+ });
933
+
934
+ if ($.validator.autoCreateRanges) {
935
+ // auto-create ranges
936
+ if (rules.min && rules.max) {
937
+ rules.range = [rules.min, rules.max];
938
+ delete rules.min;
939
+ delete rules.max;
940
+ }
941
+ if (rules.minlength && rules.maxlength) {
942
+ rules.rangelength = [rules.minlength, rules.maxlength];
943
+ delete rules.minlength;
944
+ delete rules.maxlength;
945
+ }
946
+ }
947
+
948
+ // To support custom messages in metadata ignore rule methods titled "messages"
949
+ if (rules.messages) {
950
+ delete rules.messages;
951
+ }
952
+
953
+ return rules;
954
+ },
955
+
956
+ // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
957
+ normalizeRule: function(data) {
958
+ if( typeof data === "string" ) {
959
+ var transformed = {};
960
+ $.each(data.split(/\s/), function() {
961
+ transformed[this] = true;
962
+ });
963
+ data = transformed;
964
+ }
965
+ return data;
966
+ },
967
+
968
+ // http://docs.jquery.com/Plugins/Validation/Validator/addMethod
969
+ addMethod: function(name, method, message) {
970
+ $.validator.methods[name] = method;
971
+ $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name];
972
+ if (method.length < 3) {
973
+ $.validator.addClassRules(name, $.validator.normalizeRule(name));
974
+ }
975
+ },
976
+
977
+ methods: {
978
+
979
+ // http://docs.jquery.com/Plugins/Validation/Methods/required
980
+ required: function(value, element, param) {
981
+ // check if dependency is met
982
+ if ( !this.depend(param, element) ) {
983
+ return "dependency-mismatch";
984
+ }
985
+ if ( element.nodeName.toLowerCase() === "select" ) {
986
+ // could be an array for select-multiple or a string, both are fine this way
987
+ var val = $(element).val();
988
+ return val && val.length > 0;
989
+ }
990
+ if ( this.checkable(element) ) {
991
+ return this.getLength(value, element) > 0;
992
+ }
993
+ return $.trim(value).length > 0;
994
+ },
995
+
996
+ // http://docs.jquery.com/Plugins/Validation/Methods/remote
997
+ remote: function(value, element, param) {
998
+ if ( this.optional(element) ) {
999
+ return "dependency-mismatch";
1000
+ }
1001
+
1002
+ var previous = this.previousValue(element);
1003
+ if (!this.settings.messages[element.name] ) {
1004
+ this.settings.messages[element.name] = {};
1005
+ }
1006
+ previous.originalMessage = this.settings.messages[element.name].remote;
1007
+ this.settings.messages[element.name].remote = previous.message;
1008
+
1009
+ param = typeof param === "string" && {url:param} || param;
1010
+
1011
+ if ( this.pending[element.name] ) {
1012
+ return "pending";
1013
+ }
1014
+ if ( previous.old === value ) {
1015
+ return previous.valid;
1016
+ }
1017
+
1018
+ previous.old = value;
1019
+ var validator = this;
1020
+ this.startRequest(element);
1021
+ var data = {};
1022
+ data[element.name] = value;
1023
+ $.ajax($.extend(true, {
1024
+ url: param,
1025
+ mode: "abort",
1026
+ port: "validate" + element.name,
1027
+ dataType: "json",
1028
+ data: data,
1029
+ success: function(response) {
1030
+ validator.settings.messages[element.name].remote = previous.originalMessage;
1031
+ var valid = response === true;
1032
+ if ( valid ) {
1033
+ var submitted = validator.formSubmitted;
1034
+ validator.prepareElement(element);
1035
+ validator.formSubmitted = submitted;
1036
+ validator.successList.push(element);
1037
+ validator.showErrors();
1038
+ } else {
1039
+ var errors = {};
1040
+ var message = response || validator.defaultMessage( element, "remote" );
1041
+ errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;
1042
+ validator.showErrors(errors);
1043
+ }
1044
+ previous.valid = valid;
1045
+ validator.stopRequest(element, valid);
1046
+ }
1047
+ }, param));
1048
+ return "pending";
1049
+ },
1050
+
1051
+ // http://docs.jquery.com/Plugins/Validation/Methods/minlength
1052
+ minlength: function(value, element, param) {
1053
+ var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
1054
+ return this.optional(element) || length >= param;
1055
+ },
1056
+
1057
+ // http://docs.jquery.com/Plugins/Validation/Methods/maxlength
1058
+ maxlength: function(value, element, param) {
1059
+ var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
1060
+ return this.optional(element) || length <= param;
1061
+ },
1062
+
1063
+ // http://docs.jquery.com/Plugins/Validation/Methods/rangelength
1064
+ rangelength: function(value, element, param) {
1065
+ var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
1066
+ return this.optional(element) || ( length >= param[0] && length <= param[1] );
1067
+ },
1068
+
1069
+ // http://docs.jquery.com/Plugins/Validation/Methods/min
1070
+ min: function( value, element, param ) {
1071
+ return this.optional(element) || value >= param;
1072
+ },
1073
+
1074
+ // http://docs.jquery.com/Plugins/Validation/Methods/max
1075
+ max: function( value, element, param ) {
1076
+ return this.optional(element) || value <= param;
1077
+ },
1078
+
1079
+ // http://docs.jquery.com/Plugins/Validation/Methods/range
1080
+ range: function( value, element, param ) {
1081
+ return this.optional(element) || ( value >= param[0] && value <= param[1] );
1082
+ },
1083
+
1084
+ // http://docs.jquery.com/Plugins/Validation/Methods/email
1085
+ email: function(value, element) {
1086
+ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
1087
+ return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value);
1088
+ },
1089
+
1090
+ // http://docs.jquery.com/Plugins/Validation/Methods/url
1091
+ url: function(value, element) {
1092
+ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
1093
+ return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
1094
+ },
1095
+
1096
+ // http://docs.jquery.com/Plugins/Validation/Methods/date
1097
+ date: function(value, element) {
1098
+ return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
1099
+ },
1100
+
1101
+ // http://docs.jquery.com/Plugins/Validation/Methods/dateISO
1102
+ dateISO: function(value, element) {
1103
+ return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value);
1104
+ },
1105
+
1106
+ // http://docs.jquery.com/Plugins/Validation/Methods/number
1107
+ number: function(value, element) {
1108
+ return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
1109
+ },
1110
+
1111
+ // http://docs.jquery.com/Plugins/Validation/Methods/digits
1112
+ digits: function(value, element) {
1113
+ return this.optional(element) || /^\d+$/.test(value);
1114
+ },
1115
+
1116
+ // http://docs.jquery.com/Plugins/Validation/Methods/creditcard
1117
+ // based on http://en.wikipedia.org/wiki/Luhn
1118
+ creditcard: function(value, element) {
1119
+ if ( this.optional(element) ) {
1120
+ return "dependency-mismatch";
1121
+ }
1122
+ // accept only spaces, digits and dashes
1123
+ if (/[^0-9 \-]+/.test(value)) {
1124
+ return false;
1125
+ }
1126
+ var nCheck = 0,
1127
+ nDigit = 0,
1128
+ bEven = false;
1129
+
1130
+ value = value.replace(/\D/g, "");
1131
+
1132
+ for (var n = value.length - 1; n >= 0; n--) {
1133
+ var cDigit = value.charAt(n);
1134
+ nDigit = parseInt(cDigit, 10);
1135
+ if (bEven) {
1136
+ if ((nDigit *= 2) > 9) {
1137
+ nDigit -= 9;
1138
+ }
1139
+ }
1140
+ nCheck += nDigit;
1141
+ bEven = !bEven;
1142
+ }
1143
+
1144
+ return (nCheck % 10) === 0;
1145
+ },
1146
+
1147
+ // http://docs.jquery.com/Plugins/Validation/Methods/accept
1148
+ accept: function(value, element, param) {
1149
+ param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
1150
+ return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
1151
+ },
1152
+
1153
+ // http://docs.jquery.com/Plugins/Validation/Methods/equalTo
1154
+ equalTo: function(value, element, param) {
1155
+ // bind to the blur event of the target in order to revalidate whenever the target field is updated
1156
+ // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead
1157
+ var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() {
1158
+ $(element).valid();
1159
+ });
1160
+ return value === target.val();
1161
+ }
1162
+
1163
+ }
1164
+
1165
+ });
1166
+
1167
+ // deprecated, use $.validator.format instead
1168
+ $.format = $.validator.format;
1169
+
1170
+ }(jQuery));
1171
+
1172
+ // ajax mode: abort
1173
+ // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
1174
+ // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
1175
+ (function($) {
1176
+ var pendingRequests = {};
1177
+ // Use a prefilter if available (1.5+)
1178
+ if ( $.ajaxPrefilter ) {
1179
+ $.ajaxPrefilter(function(settings, _, xhr) {
1180
+ var port = settings.port;
1181
+ if (settings.mode === "abort") {
1182
+ if ( pendingRequests[port] ) {
1183
+ pendingRequests[port].abort();
1184
+ }
1185
+ pendingRequests[port] = xhr;
1186
+ }
1187
+ });
1188
+ } else {
1189
+ // Proxy ajax
1190
+ var ajax = $.ajax;
1191
+ $.ajax = function(settings) {
1192
+ var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode,
1193
+ port = ( "port" in settings ? settings : $.ajaxSettings ).port;
1194
+ if (mode === "abort") {
1195
+ if ( pendingRequests[port] ) {
1196
+ pendingRequests[port].abort();
1197
+ }
1198
+ return (pendingRequests[port] = ajax.apply(this, arguments));
1199
+ }
1200
+ return ajax.apply(this, arguments);
1201
+ };
1202
+ }
1203
+ }(jQuery));
1204
+
1205
+ // provides cross-browser focusin and focusout events
1206
+ // IE has native support, in other browsers, use event caputuring (neither bubbles)
1207
+
1208
+ // provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
1209
+ // handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target
1210
+ (function($) {
1211
+ // only implement if not provided by jQuery core (since 1.4)
1212
+ // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs
1213
+ if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) {
1214
+ $.each({
1215
+ focus: 'focusin',
1216
+ blur: 'focusout'
1217
+ }, function( original, fix ){
1218
+ $.event.special[fix] = {
1219
+ setup:function() {
1220
+ this.addEventListener( original, handler, true );
1221
+ },
1222
+ teardown:function() {
1223
+ this.removeEventListener( original, handler, true );
1224
+ },
1225
+ handler: function(e) {
1226
+ var args = arguments;
1227
+ args[0] = $.event.fix(e);
1228
+ args[0].type = fix;
1229
+ return $.event.dispatch.apply(this, args);
1230
+ }
1231
+ };
1232
+ function handler(e) {
1233
+ e = $.event.fix(e);
1234
+ e.type = fix;
1235
+ return $.event.dispatch.call(this, e);
1236
+ }
1237
+ });
1238
+ }
1239
+ $.extend($.fn, {
1240
+ validateDelegate: function(delegate, type, handler) {
1241
+ return this.bind(type, function(event) {
1242
+ var target = $(event.target);
1243
+ if (target.is(delegate)) {
1244
+ return handler.apply(target, arguments);
1245
+ }
1246
+ });
1247
+ }
1248
+ });
1249
+ }(jQuery));
1250
+ });
languages/contact-form-to-email-ES.po ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2014-12-08 20:05+0100\n"
5
+ "PO-Revision-Date: 2015-04-20 17:58+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-Basepath: C:\\TORRE_F\\WorkII\\Developers4Web\\DWBooster.wordpress"
13
+ "\\components\\Contact Form to Email\\free\\contact-form-to-email\\languages"
14
+ "\\\n"
15
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
+ "Language: es_ES\n"
17
+ "X-Poedit-KeywordsList: _e;__;gettext\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ msgid "Please enter the security code"
21
+ msgstr "Por favor entre el código de seguridad"
22
+
23
+ msgid "Security Code (lowercase letters)"
24
+ msgstr "Código de seguridad"
languages/contact-form-to-email-af.mo ADDED
Binary file
languages/contact-form-to-email-af.po ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: af\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-pos"
18
+
19
+ # RevTran=Subjects
20
+ # RevTran=Subjects
21
+ msgid "Subject"
22
+ msgstr "Onderwerp"
23
+
24
+ msgid "Message"
25
+ msgstr "Boodskap"
26
+
27
+ # RevTran=Please enter the CAPTCHA verification code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Tik asb die captcha verifikasiekode."
30
+
31
+ # RevTran=Wrong captcha code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Verkeerde captcha kode. Probeer asseblief weer."
34
+
35
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
36
+ msgid "Please enter the security code"
37
+ msgstr "Voer asseblief die sekuriteit&#39;s kode"
38
+
39
+ msgid "Security Code"
40
+ msgstr "Sekuriteit Kode"
41
+
42
+ msgid "Coupon code"
43
+ msgstr "Koepon kode"
44
+
45
+ msgid "This field is required."
46
+ msgstr "Hierdie veld word vereis."
47
+
48
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Voer asseblief &#39;n geldige e-pos adres."
51
+
52
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "Voer asseblief &#39;n geldige captcha kode."
55
+
56
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "Tik &#39;n geldige datum met hierdie formaat (mm/dd/jjjj)"
59
+
60
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
61
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
62
+ msgstr "Tik &#39;n geldige datum met hierdie formaat (dd/mm/jjjj)"
63
+
64
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
65
+ msgid "Please enter a valid number."
66
+ msgstr "Tik &#39;n geldige nommer."
67
+
68
+ # RevTran=Enter only digits.
69
+ msgid "Please enter only digits."
70
+ msgstr "Tik net syfers."
71
+
72
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
73
+ msgid "Please enter a value less than or equal to {0}."
74
+ msgstr "Voer asseblief &#39;n waarde van minder as of gelyk aan {0}."
75
+
76
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
77
+ msgid "Please enter a value greater than or equal to {0}."
78
+ msgstr "Voer asseblief &#39;n waarde groter as of gelyk aan {0}."
languages/contact-form-to-email-ar.mo ADDED
Binary file
languages/contact-form-to-email-ar.po ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ar\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "البريد الإلكتروني"
18
+
19
+ msgid "Subject"
20
+ msgstr "الموضوع"
21
+
22
+ # RevTran=Mission:
23
+ msgid "Message"
24
+ msgstr "الرسالة"
25
+
26
+ # RevTran=Please enter the verification code CAPTCHA.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "الرجاء إدخال رمز التحقق CAPTCHA."
29
+
30
+ # RevTran=CAPTCHA incorrect code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "كود الكابتشا غير صحيحة. يرجى المحاولة مرة أخرى."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "الرجاء إدخال رمز الأمان"
36
+
37
+ # RevTran=Security code
38
+ msgid "Security Code"
39
+ msgstr "رمز الأمان"
40
+
41
+ msgid "Coupon code"
42
+ msgstr "رمز الكوبون"
43
+
44
+ # RevTran=This field is required
45
+ msgid "This field is required."
46
+ msgstr "هذا الحقل مطلوب"
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "يرجى إدخال عنوان بريد إلكتروني صالح."
50
+
51
+ # RevTran=Please enter the CAPTCHA valid code.
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "الرجاء إدخال رمز CAPTCHA صالح."
54
+
55
+ # RevTran=Please enter a valid date with this format (Day \\/month \\/year)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "الرجاء إدخال تاريخ صالح مع هذا الشكل (يوم/شهر/سنة)"
58
+
59
+ # RevTran=Please enter a valid date with this format (Day \\/month \\/year)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "الرجاء إدخال تاريخ صالح مع هذا الشكل (يوم/شهر/سنة)"
62
+
63
+ # RevTran=Please enter a valid year number
64
+ msgid "Please enter a valid number."
65
+ msgstr "الرجاء إدخال رقم عام صحيح"
66
+
67
+ # RevTran=Please enter only numbers.
68
+ msgid "Please enter only digits."
69
+ msgstr "الرجاء إدخال الأرقام فقط."
70
+
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "يرجى إدخال قيمة أقل من أو يساوي إلى {0}."
73
+
74
+ msgid "Please enter a value greater than or equal to {0}."
75
+ msgstr "يرجى إدخال قيمة أكبر من أو يساوي إلى {0}."
languages/contact-form-to-email-az.mo ADDED
Binary file
languages/contact-form-to-email-az.po ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: az\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Elektron poçt"
18
+
19
+ msgid "Subject"
20
+ msgstr "Subyekt"
21
+
22
+ msgid "Message"
23
+ msgstr "Çatdırış"
24
+
25
+ # RevTran=Enter the verification code Captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Captcha təsdiq kodunu daxil edin."
28
+
29
+ # RevTran=The wrong captcha code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Yanlış captcha kodu. Daha cəhd edin."
32
+
33
+ # RevTran=Enter the security code
34
+ msgid "Please enter the security code"
35
+ msgstr "Təhlükəsizlik kodunu daxil edin"
36
+
37
+ msgid "Security Code"
38
+ msgstr "Təhlükəsizlik Kodu"
39
+
40
+ # RevTran=Coupon Code
41
+ msgid "Coupon code"
42
+ msgstr "Kupon kodu"
43
+
44
+ msgid "This field is required."
45
+ msgstr "Bu sahədə tələb olunur."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Düzgün e-mail daxil edin."
49
+
50
+ # RevTran=Enter the captcha code.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Cari captcha kodunu daxil edin."
53
+
54
+ # RevTran=This format (mm \\/dd \\/year) and enter a valid date
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Bu format (mm/dd/il) ilə etibarlı tarixi daxil edin"
57
+
58
+ # RevTran=This format (dd \\/mm \\/year) and enter a valid date
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Bu format (dd/mm/il) ilə etibarlı tarixi daxil edin"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Cari nömrəsi daxil edin."
64
+
65
+ msgid "Please enter only digits."
66
+ msgstr "Yalnız rəqəm daxil edin."
67
+
68
+ # RevTran=A value less than or equal to {0} Enter.
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Daha az və ya {0} bərabər bir dəyər daxil edin."
71
+
72
+ # RevTran=Greater than or equal to {0} Please enter a value.
73
+ msgid "Please enter a value greater than or equal to {0}."
74
+ msgstr "Və ya daha çox üçün {0} bərabər bir dəyər daxil edin."
languages/contact-form-to-email-be_BY.mo ADDED
Binary file
languages/contact-form-to-email-be_BY.po ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: be_BY\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail address
17
+ msgid "Email"
18
+ msgstr "Электронная пошта"
19
+
20
+ msgid "Subject"
21
+ msgstr "Тэма"
22
+
23
+ msgid "Message"
24
+ msgstr "Паведамленьне"
25
+
26
+ # RevTran=Enter the captcha verification code.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Калі ласка, увядзіце капчу праверачны код."
29
+
30
+ # RevTran=Incorrect CAPTCHA Code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Няправільнае CAPTCHA Code. Калі ласка, паспрабуйце яшчэ раз."
33
+
34
+ # RevTran=Enter the security code
35
+ msgid "Please enter the security code"
36
+ msgstr "Калі ласка, увядзіце ахоўны код"
37
+
38
+ # RevTran=Security code
39
+ msgid "Security Code"
40
+ msgstr "Код бяспекі"
41
+
42
+ # RevTran=Coupon Code
43
+ msgid "Coupon code"
44
+ msgstr "Код купона"
45
+
46
+ # RevTran=Filling out this field is mandatory.
47
+ msgid "This field is required."
48
+ msgstr "Запаўненне дадзенага поля абавязкова."
49
+
50
+ # RevTran=Please enter a valid address.
51
+ msgid "Please enter a valid email address."
52
+ msgstr "Калі ласка, увядзіце верны адрас."
53
+
54
+ # RevTran=Enter the captcha.
55
+ msgid "Please enter a valid captcha code."
56
+ msgstr "Калі ласка, увядзіце капчу."
57
+
58
+ # RevTran=Enter the date in this format (mm \\/dd \\/yyyy)
59
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
60
+ msgstr "Калі ласка, увядзіце даты ў гэтым фармаце (мм/дд/гггг)"
61
+
62
+ # RevTran=Enter the date in this format (dd \\/mm \\/yyyy)
63
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
64
+ msgstr "Калі ласка, увядзіце даты ў гэтым фармаце (дд/мм/гггг)"
65
+
66
+ # RevTran=Enter the correct number.
67
+ msgid "Please enter a valid number."
68
+ msgstr "Калі ласка, увядзіце правільны нумар."
69
+
70
+ # RevTran=Enter only numbers.
71
+ msgid "Please enter only digits."
72
+ msgstr "Калі ласка, увядзіце толькі лічбы."
73
+
74
+ # RevTran=Enter a value that is less than or equal to {0}.
75
+ msgid "Please enter a value less than or equal to {0}."
76
+ msgstr "Калі ласка, увядзіце значэнне, якое менш або роўна {0}."
77
+
78
+ # RevTran=Enter a value greater than or equal to {0}.
79
+ msgid "Please enter a value greater than or equal to {0}."
80
+ msgstr "Калі ласка, увядзіце значэнне, большая ці роўнае {0}."
languages/contact-form-to-email-bg_BG.mo ADDED
Binary file
languages/contact-form-to-email-bg_BG.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: bg_BG\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Имейл"
18
+
19
+ msgid "Subject"
20
+ msgstr "Предмет"
21
+
22
+ msgid "Message"
23
+ msgstr "Съобщение"
24
+
25
+ # RevTran=Please enter the confirmation code Captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Моля, въведете кода за потвърждение Captcha."
28
+
29
+ # RevTran=Wrong code Captcha. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Грешен код Captcha. Моля, опитайте отново."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Моля, въведете кода за сигурност"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Код за сигурност"
38
+
39
+ msgid "Coupon code"
40
+ msgstr "Купон код"
41
+
42
+ # RevTran=This is a required field.
43
+ msgid "This field is required."
44
+ msgstr "Това поле е задължително."
45
+
46
+ # RevTran=Please enter a valid email address
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Моля въведете актуален имейл адрес"
49
+
50
+ # RevTran=Please, enter a valid keycode.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Моля, въведете валиден CAPTCHA кодекс."
53
+
54
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Моля въведете валидна дата с този формат (дд/мм/гггг)"
57
+
58
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Моля въведете валидна дата с този формат (дд/мм/гггг)"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Моля, въведете валиден номер."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Моля въведете само цифри."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Моля въведете стойност по-малка или равна на {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Моля, въведете стойност по-голяма от или равна на {0}."
languages/contact-form-to-email-bn_IN.mo ADDED
Binary file
languages/contact-form-to-email-bn_IN.po ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: bn_IN\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "ই-মেইল"
19
+
20
+ # RevTran=~Subject
21
+ msgid "Subject"
22
+ msgstr "বিষয় (~স)"
23
+
24
+ msgid "Message"
25
+ msgstr "বার্তা"
26
+
27
+ # RevTran=Captcha Please enter the verification code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "ক্যাপচা যাচাই কোড লিখুন দয়া করে."
30
+
31
+ # RevTran=The wrong captcha code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "ভুল ক্যাপচা কোড. আবার চেষ্টা করুন."
34
+
35
+ # RevTran=Enter the security code
36
+ msgid "Please enter the security code"
37
+ msgstr "নিরাপত্তা কোড লিখুন"
38
+
39
+ msgid "Security Code"
40
+ msgstr "নিরাপত্তা কোড"
41
+
42
+ # RevTran=Coupon Code
43
+ msgid "Coupon code"
44
+ msgstr "কুপন কোড"
45
+
46
+ msgid "This field is required."
47
+ msgstr "এই ক্ষেত্রটি প্রয়োজন বোধ করা হয়."
48
+
49
+ msgid "Please enter a valid email address."
50
+ msgstr "একটি বৈধ ইমেইল ঠিকানা লিখুন."
51
+
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "একটি বৈধ ক্যাপচা কোড লিখুন দয়া করে."
54
+
55
+ # RevTran=This format (mm \\/DD \\/YYYY) Please enter a valid date
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "এই বিন্যাস (মিমি/ডিডি/YYYY) সঙ্গে একটি বৈধ তারিখ লিখুন দয়া করে"
58
+
59
+ # RevTran=This format (DD \\/MM \\/YYYY) Please enter a valid date
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "এই ফরম্যাট (ডিডি/MM/YYYY) সঙ্গে একটি বৈধ তারিখ লিখুন দয়া করে"
62
+
63
+ msgid "Please enter a valid number."
64
+ msgstr "একটি বৈধ সংখ্যা লিখুন."
65
+
66
+ # RevTran=Please enter only numbers.
67
+ msgid "Please enter only digits."
68
+ msgstr "শুধুমাত্র সংখ্যা লিখুন."
69
+
70
+ # RevTran=Enter a value less than or equal to {0}.
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "কম বা {0} সমান একটি মান লিখুন."
73
+
74
+ # RevTran=S Enter a value greater than or equal to {0}.
75
+ msgid "Please enter a value greater than or equal to {0}."
76
+ msgstr "এর চেয়ে বড় বা {0} সমান একটি মান লিখুন."
languages/contact-form-to-email-bs_BA.mo ADDED
Binary file
languages/contact-form-to-email-bs_BA.po ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: bs_BA\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Subject"
20
+ msgstr "Subject"
21
+
22
+ msgid "Message"
23
+ msgstr "Message"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Molim unesite captcha provjeru koda."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Neispravan captcha koda. Pokušajte ponovno."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Molim vas unesite sigurnosni kod"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Sigurnosni kod"
36
+
37
+ msgid "Coupon code"
38
+ msgstr "Kupon kod"
39
+
40
+ msgid "This field is required."
41
+ msgstr "Ovo polje je obavezno."
42
+
43
+ msgid "Please enter a valid email address."
44
+ msgstr "Unesite ispravnu email adresu."
45
+
46
+ msgid "Please enter a valid captcha code."
47
+ msgstr "Unesite ispravnu captcha koda."
48
+
49
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
50
+ msgstr "Unesite ispravan datum s ovom formatu (mm / dd / yyyy)"
51
+
52
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
53
+ msgstr "Unesite ispravan datum s ovom formatu (dd / mm / gggg"
54
+
55
+ msgid "Please enter a valid number."
56
+ msgstr "Unesite ispravan broj."
57
+
58
+ msgid "Please enter only digits."
59
+ msgstr "Unesite samo cifre."
60
+
61
+ msgid "Please enter a value less than or equal to {0}."
62
+ msgstr "Unesite vrijednost manja od ili jednak {0}."
63
+
64
+ msgid "Please enter a value greater than or equal to {0}."
65
+ msgstr "Unesite vrijednost veca od ili jednak {0}."
languages/contact-form-to-email-ca.mo ADDED
Binary file
languages/contact-form-to-email-ca.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=iso-8859-1\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: ca\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ msgid "Email"
15
+ msgstr "Correu electrònic"
16
+
17
+ msgid "Subject"
18
+ msgstr "Subjecte"
19
+
20
+ msgid "Message"
21
+ msgstr "Missatge"
22
+
23
+ # RevTran=Please enter the verification code captcha.
24
+ msgid "Please enter the captcha verification code."
25
+ msgstr "Si us plau introduïu el codi de verificació captcha."
26
+
27
+ # RevTran=CAPTCHA Code incorrect. Please try it.
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Codi CAPTCHA incorrecta. Si us plau, torneu a intentar-ho."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Si us plau introduïu el codi de seguretat"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Codi de seguretat"
36
+
37
+ # RevTran=Coupon codes
38
+ msgid "Coupon code"
39
+ msgstr "Codi de descompte"
40
+
41
+ msgid "This field is required."
42
+ msgstr "Aquest camp és obligatori."
43
+
44
+ msgid "Please enter a valid email address."
45
+ msgstr "Introduïu una adreça de correu electrònic vàlida."
46
+
47
+ # RevTran=Please enter a valid Captcha code.
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Introdueix un codi Captcha vàlid."
50
+
51
+ # RevTran=Please enter a valid date in this format (dd \\ mm/\\/yyyy)
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr ""
54
+ "Si us plau, introdueixi una data vàlida amb aquest format (dd/mm/aaaa)"
55
+
56
+ # RevTran=Please enter a valid date in this format (dd \\ mm/\\/yyyy)
57
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
58
+ msgstr ""
59
+ "Si us plau, introdueixi una data vàlida amb aquest format (dd/mm/aaaa)"
60
+
61
+ # RevTran=Put a valid number.
62
+ msgid "Please enter a valid number."
63
+ msgstr "Posa un nombre vàlid."
64
+
65
+ # RevTran=Enter only digits.
66
+ msgid "Please enter only digits."
67
+ msgstr "Introduïu només dígits."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Si us plau, introduïu un valor menor o igual a {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Si us plau, introduïu un valor major o igual a {0}."
languages/contact-form-to-email-ckb.mo ADDED
Binary file
languages/contact-form-to-email-ckb.po ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ckb\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-peyam"
18
+
19
+ msgid "Subject"
20
+ msgstr "Mijar"
21
+
22
+ msgid "Message"
23
+ msgstr "Peyam"
24
+
25
+ # RevTran=Please enter the fax number.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Numra faksê bidine."
28
+
29
+ # RevTran=An incorrect password was entered. Please enter it again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Şîfreyeke çewt hate nivîsandin. Ji kerema xwe re dîsa biceribîne."
32
+
33
+ # RevTran=Please enter the fax number.
34
+ msgid "Please enter the security code"
35
+ msgstr "Numra faksê bidine."
36
+
37
+ # RevTran=Security
38
+ msgid "Security Code"
39
+ msgstr "Ewlehî"
40
+
41
+ # RevTran=CODE
42
+ msgid "Coupon code"
43
+ msgstr "KOD"
44
+
45
+ # RevTran=Area
46
+ msgid "This field is required."
47
+ msgstr "Qad"
48
+
49
+ # RevTran=The DTD could not be found. Please enter a valid path.
50
+ msgid "Please enter a valid email address."
51
+ msgstr "DTD nehate dîtin.Ji kerema xwe pêristeke derbasdar têkevinê."
52
+
53
+ # RevTran=The DTD could not be found. Please enter a valid path.
54
+ msgid "Please enter a valid captcha code."
55
+ msgstr "DTD nehate dîtin.Ji kerema xwe pêristeke derbasdar têkevinê."
56
+
57
+ # RevTran=The DTD could not be found. Please enter a valid path.
58
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
59
+ msgstr "DTD nehate dîtin.Ji kerema xwe pêristeke derbasdar têkevinê."
60
+
61
+ # RevTran=The DTD could not be found. Please enter a valid path.
62
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
63
+ msgstr "DTD nehate dîtin.Ji kerema xwe pêristeke derbasdar têkevinê."
64
+
65
+ # RevTran=Please enter the fax number.
66
+ msgid "Please enter a valid number."
67
+ msgstr "Numra faksê bidine."
68
+
69
+ # RevTran=Please enter your information.
70
+ msgid "Please enter only digits."
71
+ msgstr "Kerema xwe ra agahiyên xwe binivisîne"
72
+
73
+ # RevTran=&lt;= (Less than or equal to)
74
+ msgid "Please enter a value less than or equal to {0}."
75
+ msgstr "piçûk an jî wekhev e"
76
+
77
+ # RevTran=&gt;= (Greater than or equal to)
78
+ msgid "Please enter a value greater than or equal to {0}."
79
+ msgstr "mezin an jî wekhev e"
languages/contact-form-to-email-cs_CZ.mo ADDED
Binary file
languages/contact-form-to-email-cs_CZ.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: cs_CZ\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ # RevTran=Aim
20
+ msgid "Subject"
21
+ msgstr "Předmět"
22
+
23
+ # RevTran=Report
24
+ msgid "Message"
25
+ msgstr "Zpráva"
26
+
27
+ # RevTran=Please enter the verification code captcha.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Prosím, zadejte ověřovací kód captcha."
30
+
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Nesprávný captcha kód. Zkuste to prosím znovu."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "Prosím, zadejte bezpečnostní kód"
36
+
37
+ # RevTran=Security code:
38
+ msgid "Security Code"
39
+ msgstr "Bezpečnostní kód:"
40
+
41
+ # RevTran=Coupon Code
42
+ msgid "Coupon code"
43
+ msgstr "Kupon kód"
44
+
45
+ msgid "This field is required."
46
+ msgstr "Toto pole je povinné."
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Zadejte prosím platnou elektronickou adresu."
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Zadejte prosím platný captcha kód."
53
+
54
+ # RevTran=Please enter a valid date in this format (mm \\/dd \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Zadejte prosím platné datum v tomto formátu (mm/dd/rrrr)"
57
+
58
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Zadejte prosím platné datum v tomto formátu (dd/mm/rrrr)"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Zadejte prosím platné číslo."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Prosím, zadejte pouze číslice."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Prosím, zadejte hodnotu menší nebo rovnou {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Prosím, zadejte hodnotu větší než nebo rovno {0}."
languages/contact-form-to-email-da_DK.mo ADDED
Binary file
languages/contact-form-to-email-da_DK.po ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: da_DK\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Subject"
20
+ msgstr "Emne"
21
+
22
+ msgid "Message"
23
+ msgstr "Meddelelse"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Indtast venligst captcha bekræftelseskode."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Forkert captcha kode. Prøv venligst igen."
30
+
31
+ # RevTran=Enter the security code
32
+ msgid "Please enter the security code"
33
+ msgstr "Indtast sikkerhedskoden"
34
+
35
+ msgid "Security Code"
36
+ msgstr "Security Code"
37
+
38
+ msgid "Coupon code"
39
+ msgstr "Værdikuponkode"
40
+
41
+ # RevTran=This field is required
42
+ msgid "This field is required."
43
+ msgstr "Dette felt er påkrævet"
44
+
45
+ msgid "Please enter a valid email address."
46
+ msgstr "Indtast en gyldig e-mail-adresse"
47
+
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Angiv en gyldig captcha kode."
50
+
51
+ # RevTran=Enter a valid date in this format (dd \\/mm \\/yyyy)
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr "Indtast en gyldig dato med dette format (dd/mm/åååå)"
54
+
55
+ msgid "Please enter a valid number."
56
+ msgstr "Indtast venligst et gyldigt tal."
57
+
58
+ # RevTran=Enter only digits.
59
+ msgid "Please enter only digits."
60
+ msgstr "Indtast kun cifre."
61
+
62
+ msgid "Please enter a value less than or equal to {0}."
63
+ msgstr "Indtast venligst en værdi mindre end eller lig med {0}."
64
+
65
+ # RevTran=Enter a value greater than or equal to {0}.
66
+ msgid "Please enter a value greater than or equal to {0}."
67
+ msgstr "Angiv en værdi større end eller lig med {0}."
languages/contact-form-to-email-de_DE.mo ADDED
Binary file
languages/contact-form-to-email-de_DE.po ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2017-10-12 12:51+0200\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 2.0.4\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: de_DE\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "E-Mail"
19
+
20
+ # RevTran=Reference
21
+ msgid "Subject"
22
+ msgstr "Betreff"
23
+
24
+ msgid "Message"
25
+ msgstr "Nachricht"
26
+
27
+ # RevTran=Please enter the verification code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Bitte geben sie das Bestätigungscode."
30
+
31
+ # RevTran=Wrong Captcha code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Falsche Captcha-Code ein. Bitte versuchen Sie es erneut."
34
+
35
+ msgid "Please enter the security code"
36
+ msgstr "Bitte geben Sie den Sicherheitscode ein"
37
+
38
+ # RevTran=Security Code:
39
+ msgid "Security Code"
40
+ msgstr "Sicherheits-Code"
41
+
42
+ msgid "Coupon code"
43
+ msgstr "Belegnummer"
44
+
45
+ msgid "This field is required."
46
+ msgstr "Dieses Feld ist obligatorisch."
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein."
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Bitte geben Sie eine gültige Captcha-Code ein."
53
+
54
+ # RevTran=Please enter a valid date in this format (mm \\/dd \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Bitte geben Sie ein gültiges Datum in diesem Format (mm/dd/yyyy)"
57
+
58
+ msgid "Please enter a valid number."
59
+ msgstr "Bitte geben Sie eine gültige Zahl ein."
60
+
61
+ # RevTran=Please enter only numbers.
62
+ msgid "Please enter only digits."
63
+ msgstr "Bitte geben Sie nur Ziffern."
64
+
65
+ # RevTran=Please enter a value less than or equal to 0.
66
+ msgid "Please enter a value less than or equal to {0}."
67
+ msgstr "Bitte geben Sie einen Wert ein, der kleiner oder gleich 0 ist."
68
+
69
+ # RevTran=Please enter a value greater than or equal to 0.
70
+ msgid "Please enter a value greater than or equal to {0}."
71
+ msgstr "Bitte geben Sie einen Wert ein, der größer oder gleich 0 ist."
languages/contact-form-to-email-el.mo ADDED
Binary file
languages/contact-form-to-email-el.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: el\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Email"
18
+
19
+ msgid "Subject"
20
+ msgstr "Θέμα"
21
+
22
+ msgid "Message"
23
+ msgstr "Μήνυμα"
24
+
25
+ # RevTran=Please enter the verification code displayed.
26
+ # RevTran=Please enter the verification code displayed.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Παρακαλώ εισάγετε τον κωδικό επαλήθευσης που εμφανίζεται."
29
+
30
+ # RevTran=Invalid confirmation code. Please try again.
31
+ # RevTran=Invalid confirmation code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Λάθος κωδικός επαλήθευσης. Παρακαλώ δοκιμάστε ξανά."
34
+
35
+ msgid "Please enter the security code"
36
+ msgstr "Παρακαλώ εισάγετε τον κωδικό ασφαλείας"
37
+
38
+ msgid "Security Code"
39
+ msgstr "Κωδικός Ασφαλείας"
40
+
41
+ msgid "Coupon code"
42
+ msgstr "Ο κωδικός κουπονιού"
43
+
44
+ msgid "This field is required."
45
+ msgstr "Αυτό το πεδίο είναι υποχρεωτικό."
46
+
47
+ # RevTran=Please enter a valid email address
48
+ # RevTran=Please enter a valid email address
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου"
51
+
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "Παρακαλώ εισάγετε έναν έγκυρο κωδικό επαλήθευσης."
54
+
55
+ # RevTran=Please enter a valid date in this format (dd \\/dd \\/yyyy)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία με αυτή τη μορφή (ηη/μμ/εεεε)"
58
+
59
+ # RevTran=Please enter a valid date in this format (dd \\/dd \\/yyyy)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία με αυτή τη μορφή (ηη/μμ/εεεε)"
62
+
63
+ msgid "Please enter a valid number."
64
+ msgstr "Παρακαλώ εισάγετε έναν έγκυρο αριθμό."
65
+
66
+ msgid "Please enter only digits."
67
+ msgstr "Παρακαλώ εισάγετε μόνο ψηφία."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση με {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη από ή ίση με {0}."
languages/contact-form-to-email-eo_EO.mo ADDED
Binary file
languages/contact-form-to-email-eo_EO.po ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: eo_EO\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Retpoŝto"
18
+
19
+ # RevTran=subject
20
+ msgid "Subject"
21
+ msgstr "reserve Deputy"
22
+
23
+ msgid "Message"
24
+ msgstr "Mesaĝo"
25
+
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Bonvolu eniri la captcha verificación kodo."
28
+
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "Malĝustaj captcha kodo. Bonvolu provi denove."
31
+
32
+ msgid "Please enter the security code"
33
+ msgstr "Bonvolu eniri la sekureco kodo"
34
+
35
+ msgid "Security Code"
36
+ msgstr "Sekureca Kodo"
37
+
38
+ msgid "Coupon code"
39
+ msgstr "Kupono kodo"
40
+
41
+ msgid "This field is required."
42
+ msgstr "Tiu kampo estas bezonata."
43
+
44
+ msgid "Please enter a valid email address."
45
+ msgstr "Bonvolu entajpi validan retpoŝtadreson."
46
+
47
+ msgid "Please enter a valid captcha code."
48
+ msgstr "Bonvolu entajpi validan captcha kodo."
49
+
50
+ # RevTran=Please enter a valid date with this format (mm \\/dd \\/yyyy)
51
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
52
+ msgstr "Bonvolu entajpi validan daton kun tiu formato (mm/dd/jjjj)"
53
+
54
+ # RevTran=Please enter a valid date with this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
56
+ msgstr "Bonvolu entajpi validan daton kun tiu formato (tt/mm/jjjj)"
57
+
58
+ msgid "Please enter a valid number."
59
+ msgstr "Bonvolu entajpi validan ciferon."
60
+
61
+ # RevTran=Please enter only numbers.
62
+ msgid "Please enter only digits."
63
+ msgstr "Bonvolu eniri nur ciferoj."
64
+
65
+ msgid "Please enter a value less than or equal to {0}."
66
+ msgstr "Bonvolu entajpi valoron malpli ol aŭ egala al {0}."
67
+
68
+ msgid "Please enter a value greater than or equal to {0}."
69
+ msgstr "Bonvolu entajpi valoron pli granda ol aŭ egala al {0}."
languages/contact-form-to-email-es_ES.mo ADDED
Binary file
languages/contact-form-to-email-et.mo ADDED
Binary file
languages/contact-form-to-email-et.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:45+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: et\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-post"
18
+
19
+ msgid "Subject"
20
+ msgstr "Teema"
21
+
22
+ msgid "Message"
23
+ msgstr "Teade"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Palun sisesta captcha kontrollkood."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Vale captcha koodi. Palun proovige uuesti."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Palun sisesta turvakood"
33
+
34
+ # RevTran=security ID
35
+ msgid "Security Code"
36
+ msgstr "Turvakood"
37
+
38
+ # RevTran=Coupon Code
39
+ msgid "Coupon code"
40
+ msgstr "Kupongi kood"
41
+
42
+ # RevTran=This field is mandatory.
43
+ msgid "This field is required."
44
+ msgstr "See väli on kohustuslik."
45
+
46
+ # RevTran=Please enter a valid address
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Palume sisestada kehtiv aadress"
49
+
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Palun sisestage kehtiv captcha koodi."
52
+
53
+ # RevTran=Please enter dates in this format (dd \\/dd \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Palun sisestage kuupäevad seda formaati (pp/kk/aaaa)"
56
+
57
+ # RevTran=Please enter a valid date in the format (dd \\/dd \\/yyyy)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Palun sisestage kehtiv kuupäeva selles formaadis (pp/kk/aaaa)"
60
+
61
+ # RevTran=Please enter a number.
62
+ msgid "Please enter a valid number."
63
+ msgstr "Palun sisestage number."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Palun sisestage ainult numbrid."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Palun sisestage väärtus on väiksem või võrdne {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Palun sisestage väärtus on suurem kui või võrdne {0}."
languages/contact-form-to-email-eu.mo ADDED
Binary file
languages/contact-form-to-email-eu.po ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: eu\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Posta elektroniko"
18
+
19
+ # RevTran=Gaia
20
+ msgid "Subject"
21
+ msgstr "Gaia"
22
+
23
+ msgid "Message"
24
+ msgstr "Mezu"
25
+
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Mesedez sartu captcha egiaztapen-kodea."
28
+
29
+ # RevTran=Captcha code incorrect. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Captcha kode okerra. Mesedez, saiatu berriz."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Mesedez, sartu segurtasun kodea"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Segurtasun kodea"
38
+
39
+ msgid "Coupon code"
40
+ msgstr "Kupoi kodea"
41
+
42
+ msgid "This field is required."
43
+ msgstr "Eremu hau beharrezkoa da."
44
+
45
+ msgid "Please enter a valid email address."
46
+ msgstr "Sartu baliozko helbide elektronikoa."
47
+
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Sartu baliozko captcha kode bat."
50
+
51
+ # RevTran=Please enter a valid date in the following format (mm \\/dd \\/yyyy) with
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr "Mesedez sartu baliozko data formatu honetan (mm/ee/uuuu) ekin"
54
+
55
+ # RevTran=Please enter a valid date in the following format (dd \\/dd \\/yyyy) with
56
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
57
+ msgstr "Mesedez sartu baliozko data formatu honetan (ee/hh/uuuu) ekin"
58
+
59
+ msgid "Please enter a valid number."
60
+ msgstr "Sartu baliozko zenbaki bat."
61
+
62
+ msgid "Please enter only digits."
63
+ msgstr "Mesedez, sartu digituak bakarrik."
64
+
65
+ msgid "Please enter a value less than or equal to {0}."
66
+ msgstr "Mesedez, sartu balio bat baino gutxiago edo {0} berdina."
67
+
68
+ # RevTran=Please enter a value less than or equal to {0}.
69
+ msgid "Please enter a value greater than or equal to {0}."
70
+ msgstr "Mesedez sartu baino handiagoa edo {0} den balio bat."
languages/contact-form-to-email-fa_IR.mo ADDED
Binary file
languages/contact-form-to-email-fa_IR.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: fa_IR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "رایانامه"
18
+
19
+ msgid "Subject"
20
+ msgstr "فاعل"
21
+
22
+ msgid "Message"
23
+ msgstr "پیام"
24
+
25
+ # RevTran=Please enter the verification code image.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "لطفا کد تایید تصویر امنیتی را وارد کنید."
28
+
29
+ # RevTran=Image is incorrect. Please try again later.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "تصویر امنیتی اشتباه است. لطفا دوباره تلاش کنید."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "لطفا کد امنیتی را وارد کنید"
35
+
36
+ msgid "Security Code"
37
+ msgstr "کد امنیتی"
38
+
39
+ # RevTran=Coupon Code
40
+ msgid "Coupon code"
41
+ msgstr "کد کوپن"
42
+
43
+ msgid "This field is required."
44
+ msgstr "این فیلد الزامی است."
45
+
46
+ msgid "Please enter a valid email address."
47
+ msgstr "لطفا یک آدرس ایمیل معتبر وارد کنید."
48
+
49
+ # RevTran=Please enter a valid image.
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "لطفا یک تصویر امنیتی معتبر وارد کنید."
52
+
53
+ # RevTran=Please enter a valid date in the format (MM \\/DD \\/YYYY) Enter
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "لطفا یک تاریخ معتبر با این فرمت (MM/DD/YYYY) وارد کنید"
56
+
57
+ # RevTran=Please enter a valid date format (DD \\/MM \\/YYYY) Enter
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "لطفا یک تاریخ معتبر با این فرمت (DD/MM/YYYY) وارد کنید"
60
+
61
+ # RevTran=Please enter a valid phone number.
62
+ msgid "Please enter a valid number."
63
+ msgstr "لطفا یک شماره تلفن معتبر وارد کنید."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "لطفا فقط رقم وارد کنید."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "لطفا یک مقدار کمتر یا {0} برابر را وارد کنید."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "لطفا یک مقدار بزرگتر یا {0} برابر را وارد کنید."
languages/contact-form-to-email-fi.mo ADDED
Binary file
languages/contact-form-to-email-fi.po ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: fi\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ # RevTran=E-mail
18
+ msgid "Email"
19
+ msgstr "Sähköposti"
20
+
21
+ msgid "Subject"
22
+ msgstr "Aihe"
23
+
24
+ # RevTran=Nachricht
25
+ # RevTran=Nachricht
26
+ msgid "Message"
27
+ msgstr "Viesti"
28
+
29
+ # RevTran=Enter the captcha verification code.
30
+ # RevTran=Enter the captcha verification code.
31
+ msgid "Please enter the captcha verification code."
32
+ msgstr "Kirjoita captcha vahvistuskoodi."
33
+
34
+ # RevTran=Wrong captcha code. Please try again.
35
+ # RevTran=Wrong captcha code. Please try again.
36
+ msgid "Incorrect captcha code. Please try again."
37
+ msgstr "Väärä captcha koodin. Ole hyvä ja yritä uudelleen."
38
+
39
+ # RevTran=Enter security code
40
+ # RevTran=Enter security code
41
+ msgid "Please enter the security code"
42
+ msgstr "Syötä turvakoodi"
43
+
44
+ msgid "Security Code"
45
+ msgstr "Turvakoodi"
46
+
47
+ # RevTran=Coupon Code
48
+ # RevTran=Coupon Code
49
+ msgid "Coupon code"
50
+ msgstr "Kuponkikoodi"
51
+
52
+ msgid "This field is required."
53
+ msgstr "Tämä kenttä on pakollinen."
54
+
55
+ # RevTran=Please enter a valid email address
56
+ # RevTran=Please enter a valid email address
57
+ msgid "Please enter a valid email address."
58
+ msgstr "Kirjoita voimassa oleva sähköpostiosoite"
59
+
60
+ msgid "Please enter a valid captcha code."
61
+ msgstr "Anna kelvollinen captcha koodin."
62
+
63
+ # RevTran=Please enter a valid date in the format (mm \\/dd \\/yyyy)
64
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
65
+ msgstr "Anna kelvollinen päivämäärä tässä muodossa (kk/pp/vvvv)"
66
+
67
+ # RevTran=Please enter a valid date in this format (dd \\/m \\/yyyy)
68
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
69
+ msgstr "Anna kelvollinen päivämäärä tässä muodossa (pp/kk/vvvv)"
70
+
71
+ msgid "Please enter a valid number."
72
+ msgstr "Anna kelvollinen numero."
73
+
74
+ # RevTran=Just type in the numbers.
75
+ msgid "Please enter only digits."
76
+ msgstr "Kirjoita vain numeroita."
77
+
78
+ # RevTran=Enter a value less than or equal to {0}.
79
+ msgid "Please enter a value less than or equal to {0}."
80
+ msgstr "Syötä arvo pienempi tai yhtä suuri kuin {0}."
81
+
82
+ # RevTran=Enter the value is greater than or equal to {0}.
83
+ msgid "Please enter a value greater than or equal to {0}."
84
+ msgstr "Syötä arvo on suurempi tai yhtä suuri kuin {0}."
languages/contact-form-to-email-fr_CA.mo ADDED
Binary file
languages/contact-form-to-email-fr_CA.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2016-11-02 10:32+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.8.8\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: fr_FR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-Mail"
18
+
19
+ # RevTran=Purpose:
20
+ msgid "Subject"
21
+ msgstr "Objet"
22
+
23
+ msgid "Message"
24
+ msgstr "Message"
25
+
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Se il vous plait entrer le code de vérification de captcha."
28
+
29
+ # RevTran=Captcha incorrect code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Captcha code incorrect. Se il vous plait essayer à nouveau."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Merci d'entrer le code de sécurité"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "Code de sécurité"
39
+
40
+ # RevTran=Promo code
41
+ msgid "Coupon code"
42
+ msgstr "Code promo"
43
+
44
+ # RevTran=This field is required
45
+ msgid "This field is required."
46
+ msgstr "Ce champ est requis"
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Veuillez inscrire une adresse électronique valide."
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Se il vous plait entrer un code captcha valide."
53
+
54
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Se il vous plait entrer une date valide avec ce format (jj/mm/aaaa)"
57
+
58
+ # RevTran=Please enter a valid number
59
+ msgid "Please enter a valid number."
60
+ msgstr "Merci de saisir un nombre valide"
61
+
62
+ # RevTran=Please enter only numbers.
63
+ msgid "Please enter only digits."
64
+ msgstr "Se il vous plait saisir que des chiffres."
65
+
66
+ # RevTran=Please enter a value less than or equal to {0}
67
+ msgid "Please enter a value less than or equal to {0}."
68
+ msgstr "Veuillez entrer une valeur inférieure ou égale à {0}"
69
+
70
+ # RevTran=Please enter a value greater than or equal to {0}
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Veuillez entrer une valeur supérieure ou égale à {0}"
languages/contact-form-to-email-fr_FR.mo ADDED
Binary file
languages/contact-form-to-email-fr_FR.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2016-11-02 10:32+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.8.8\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: fr_FR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-Mail"
18
+
19
+ # RevTran=Purpose:
20
+ msgid "Subject"
21
+ msgstr "Objet"
22
+
23
+ msgid "Message"
24
+ msgstr "Message"
25
+
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Se il vous plait entrer le code de vérification de captcha."
28
+
29
+ # RevTran=Captcha incorrect code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Captcha code incorrect. Se il vous plait essayer à nouveau."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Merci d'entrer le code de sécurité"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "Code de sécurité"
39
+
40
+ # RevTran=Promo code
41
+ msgid "Coupon code"
42
+ msgstr "Code promo"
43
+
44
+ # RevTran=This field is required
45
+ msgid "This field is required."
46
+ msgstr "Ce champ est requis"
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Veuillez inscrire une adresse électronique valide."
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Se il vous plait entrer un code captcha valide."
53
+
54
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Se il vous plait entrer une date valide avec ce format (jj/mm/aaaa)"
57
+
58
+ # RevTran=Please enter a valid number
59
+ msgid "Please enter a valid number."
60
+ msgstr "Merci de saisir un nombre valide"
61
+
62
+ # RevTran=Please enter only numbers.
63
+ msgid "Please enter only digits."
64
+ msgstr "Se il vous plait saisir que des chiffres."
65
+
66
+ # RevTran=Please enter a value less than or equal to {0}
67
+ msgid "Please enter a value less than or equal to {0}."
68
+ msgstr "Veuillez entrer une valeur inférieure ou égale à {0}"
69
+
70
+ # RevTran=Please enter a value greater than or equal to {0}
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Veuillez entrer une valeur supérieure ou égale à {0}"
languages/contact-form-to-email-ga_IE.mo ADDED
Binary file
languages/contact-form-to-email-ga_IE.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=iso-8859-1\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: ga_IE\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ msgid "Email"
15
+ msgstr "Ríomhphost"
16
+
17
+ msgid "Subject"
18
+ msgstr "Ábhar"
19
+
20
+ msgid "Message"
21
+ msgstr "Teachtaireacht"
22
+
23
+ # RevTran=Enter the verification code captcha.
24
+ msgid "Please enter the captcha verification code."
25
+ msgstr "Cuir isteach an Cód fíorú captcha."
26
+
27
+ # RevTran=Wrong captcha code. Please try again.
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Cód captcha mícheart. Déan iarracht eile."
30
+
31
+ # RevTran=Enter the security code
32
+ msgid "Please enter the security code"
33
+ msgstr "Cuir isteach an Cód slándála"
34
+
35
+ msgid "Security Code"
36
+ msgstr "Cód Slándáil"
37
+
38
+ msgid "Coupon code"
39
+ msgstr "Cód cúpón"
40
+
41
+ msgid "This field is required."
42
+ msgstr "Tá an réimse ag teastáil."
43
+
44
+ msgid "Please enter a valid email address."
45
+ msgstr "Cuir isteach seoladh ríomhphoist bailí."
46
+
47
+ # RevTran=Enter the captcha code valid.
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Iontráil cód captcha bailí."
50
+
51
+ # RevTran=Enter a valid date in the following format (mm \\/ll \\/yyyy)
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr "Iontráil dáta bailí leis an bhformáid seo (mm/ll/bbbb)"
54
+
55
+ # RevTran=Enter a valid date in the following format (ll \\/mm \\/yyyy)
56
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
57
+ msgstr "Iontráil dáta bailí leis an bhformáid seo (ll/mm/bbbb)"
58
+
59
+ msgid "Please enter a valid number."
60
+ msgstr "Iontráil uimhir bhailí."
61
+
62
+ # RevTran=Enter only digits.
63
+ msgid "Please enter only digits."
64
+ msgstr "Cuir isteach amháin digití."
65
+
66
+ # RevTran=Enter a value less than or equal to {0}.
67
+ msgid "Please enter a value less than or equal to {0}."
68
+ msgstr "Iontráil ar luach níos lú ná nó cothrom le {0}."
69
+
70
+ # RevTran=Enter a value greater than or equal to {0}.
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Iontráil ar luach níos mó ná nó cothrom le {0}."
languages/contact-form-to-email-gl_ES.mo ADDED
Binary file
languages/contact-form-to-email-gl_ES.po ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: gl_ES\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Correo electrónico"
18
+
19
+ # RevTran=Issue
20
+ msgid "Subject"
21
+ msgstr "Asunto"
22
+
23
+ msgid "Message"
24
+ msgstr "Mensaxe"
25
+
26
+ # RevTran=Please enter the verification code captcha.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Por favor, introduza o código de verificación captcha."
29
+
30
+ # RevTran=Wrong captcha code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Código captcha incorrecto. Por favor, ténteo de novo."
33
+
34
+ # RevTran=Enter the security code
35
+ msgid "Please enter the security code"
36
+ msgstr "Introduza o código de seguridade"
37
+
38
+ # RevTran=Security code
39
+ msgid "Security Code"
40
+ msgstr "Código de seguridade"
41
+
42
+ msgid "Coupon code"
43
+ msgstr "Código do cupón"
44
+
45
+ msgid "This field is required."
46
+ msgstr "Este campo é obrigado."
47
+
48
+ # RevTran=Please enter an email address invalid.
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Por favor, introduce un enderezo de correo electrónico válido."
51
+
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "Por favor, introduce un código captcha válido."
54
+
55
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "Por favor, introduce unha data válida con este formato (dd/mm/aaaa)"
58
+
59
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "Por favor, introduce unha data válida con este formato (dd/mm/aaaa)"
62
+
63
+ msgid "Please enter a valid number."
64
+ msgstr "Por favor, introduce un número válido."
65
+
66
+ # RevTran=Enter only digits.
67
+ msgid "Please enter only digits."
68
+ msgstr "Escriba só díxitos."
69
+
70
+ msgid "Please enter a value less than or equal to {0}."
71
+ msgstr "Por favor, introduza un valor inferior ou igual a {0}."
72
+
73
+ msgid "Please enter a value greater than or equal to {0}."
74
+ msgstr "Por favor, introduce un valor maior ou igual a {0}."
languages/contact-form-to-email-he_IL.mo ADDED
Binary file
languages/contact-form-to-email-he_IL.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: he_IL\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "אי-מייל"
18
+
19
+ msgid "Subject"
20
+ msgstr "נושא"
21
+
22
+ msgid "Message"
23
+ msgstr "הודעה"
24
+
25
+ # RevTran=Please enter a valid email address.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "אנא הזן את קוד האימות captcha."
28
+
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "קוד שגוי captcha. נא נסה שוב."
31
+
32
+ # RevTran=Please enter a valid email address.
33
+ msgid "Please enter the security code"
34
+ msgstr "אנא הזן את קוד האבטחה"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "קוד אבטחה"
39
+
40
+ msgid "Coupon code"
41
+ msgstr "קוד קופון"
42
+
43
+ # RevTran=This field is required
44
+ msgid "This field is required."
45
+ msgstr "שדה זה נדרש"
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "אנא הזן כתובת דוא\"ל תקפה."
49
+
50
+ # RevTran=interest
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "נא להזין קוד חוקית captcha."
53
+
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "נא להקליד תאריך עם format(mm/dd/yyyy) הזה"
56
+
57
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
58
+ msgstr "נא להקליד תאריך עם format(dd/mm/yyyy) הזה"
59
+
60
+ msgid "Please enter a valid number."
61
+ msgstr "נא הזן מספר תקף."
62
+
63
+ # RevTran=turns on sounds only
64
+ msgid "Please enter only digits."
65
+ msgstr "אנא הזן ספרות בלבד."
66
+
67
+ # RevTran=Enter a value less than or equal to {0} ...
68
+ msgid "Please enter a value less than or equal to {0}."
69
+ msgstr "הזינו ערך קטן או שווה ל {0}."
70
+
71
+ # RevTran=Please enter a value greater than or equal to {0} ...
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "נא הזן ערך גדול או שווה ל {0}."
languages/contact-form-to-email-hi_IN.mo ADDED
Binary file
languages/contact-form-to-email-hi_IN.po ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: hi_IN\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "प-पत्र"
18
+
19
+ msgid "Subject"
20
+ msgstr "विषय"
21
+
22
+ msgid "Message"
23
+ msgstr "संदेश"
24
+
25
+ # RevTran=Captcha Enter the verification code.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "कैप्चा सत्यापन कोड दर्ज करें।"
28
+
29
+ # RevTran=Captcha code wrong. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "गलत कैप्चा कोड। पुन: प्रयास करें।"
32
+
33
+ # RevTran=Enter the security code
34
+ msgid "Please enter the security code"
35
+ msgstr "सुरक्षा कोड दर्ज करें"
36
+
37
+ # RevTran=Safety devices
38
+ msgid "Security Code"
39
+ msgstr "सुरक्षा कोड"
40
+
41
+ # RevTran=rathinavel
42
+ msgid "Coupon code"
43
+ msgstr "कूपन कोड"
44
+
45
+ msgid "This field is required."
46
+ msgstr "यह फ़ील्ड आवश्यक है।"
47
+
48
+ # RevTran=Please enter a valid e-mail address
49
+ msgid "Please enter a valid email address."
50
+ msgstr "एक मान्य ईमेल पता दर्ज करें."
51
+
52
+ # RevTran=Please enter a valid Captcha code.
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "एक वैध कैप्चा कोड दर्ज करें।"
55
+
56
+ # RevTran=The format (dd \\/mm \\/year), enter a valid date
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "इस प्रारूप (dd/mm/वर्ष) के साथ एक मान्य दिनांक दर्ज करें"
59
+
60
+ # RevTran=The format (dd \\/mm \\/year), enter a valid date
61
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
62
+ msgstr "इस प्रारूप (dd/mm/वर्ष) के साथ एक मान्य दिनांक दर्ज करें"
63
+
64
+ msgid "Please enter a valid number."
65
+ msgstr "एक मान्य नंबर दर्ज करें।"
66
+
67
+ # RevTran=Please enter only numbers.
68
+ msgid "Please enter only digits."
69
+ msgstr "केवल अंक दर्ज करें।"
70
+
71
+ # RevTran=Less than or equal to {0} Enter a value.
72
+ msgid "Please enter a value less than or equal to {0}."
73
+ msgstr "कम से कम या करने के लिए {0} बराबर एक मूल्य दर्ज करें।"
74
+
75
+ # RevTran=Greater than or equal to {0} Enter a value.
76
+ msgid "Please enter a value greater than or equal to {0}."
77
+ msgstr "से अधिक है या करने के लिए {0} बराबर एक मूल्य दर्ज करें।"
languages/contact-form-to-email-hr.mo ADDED
Binary file
languages/contact-form-to-email-hr.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: hr\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Elektronička pošta"
18
+
19
+ msgid "Subject"
20
+ msgstr "Predmet"
21
+
22
+ msgid "Message"
23
+ msgstr "Poruka"
24
+
25
+ # RevTran=Please enter the code captcha.
26
+ # RevTran=Please enter the code captcha.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Molimo unesite kôd captcha."
29
+
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Netočna captcha koda. Molimo pokušajte ponovno."
32
+
33
+ # RevTran=Enter the security code
34
+ msgid "Please enter the security code"
35
+ msgstr "Unesite sigurnosni kod"
36
+
37
+ msgid "Security Code"
38
+ msgstr "Sigurnosni kod"
39
+
40
+ # RevTran=Coupon Code
41
+ msgid "Coupon code"
42
+ msgstr "Kupon kod"
43
+
44
+ msgid "This field is required."
45
+ msgstr "Ovo polje je obavezno."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Unesite važeću e-mail adresu."
49
+
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Unesite valjanu captcha koda."
52
+
53
+ # RevTran=Please enter a valid date with the format (mm \\/dd \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Unesite valjani datum s ovom formatu (mm/dd/gggg)"
56
+
57
+ # RevTran=Please enter a valid date with this format (dd \\/mm \\/yyyy)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Unesite valjani datum s ovom formatu (dd/mm/gggg)"
60
+
61
+ msgid "Please enter a valid number."
62
+ msgstr "Unesite valjani broj."
63
+
64
+ # RevTran=Enter only digits.
65
+ msgid "Please enter only digits."
66
+ msgstr "Unesite samo znamenke."
67
+
68
+ # RevTran=Enter a value less than or equal to {0}.
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Unesite vrijednost manju ili jednaku {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Molimo unesite vrijednost veća od ili jednak {0}."
languages/contact-form-to-email-hu_HU.mo ADDED
Binary file
languages/contact-form-to-email-hu_HU.po ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: hu_HU\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail Address
17
+ msgid "Email"
18
+ msgstr "E-mail cím"
19
+
20
+ # RevTran=Object
21
+ msgid "Subject"
22
+ msgstr "Tárgy"
23
+
24
+ msgid "Message"
25
+ msgstr "Üzenet"
26
+
27
+ # RevTran=Please enter the captcha code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Kérjük, adja meg captcha ellenőrző kódot."
30
+
31
+ # RevTran=Wrong captcha code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Helytelen captcha kódot. Kérjük, próbálja újra."
34
+
35
+ msgid "Please enter the security code"
36
+ msgstr "Kérjük, írja be a biztonsági kódot"
37
+
38
+ msgid "Security Code"
39
+ msgstr "Biztonsági kód"
40
+
41
+ # RevTran=Coupon Code
42
+ msgid "Coupon code"
43
+ msgstr "Kupon kód"
44
+
45
+ msgid "This field is required."
46
+ msgstr "A mező kitöltése kötelező."
47
+
48
+ # RevTran=Please enter a valid email address
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Kérjük, adjon meg egy érvényes e-mail címet"
51
+
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "Adjon meg egy érvényes captcha kódot."
54
+
55
+ # RevTran=Please enter a valid date with this format (mm \\/dd \\/yyyy)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "Adjon meg egy érvényes dátumot ezzel a formátummal (mm/dd/yyyy)"
58
+
59
+ # RevTran=Please enter a valid date with this format (dd \\/mm \\/yyyy)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "Adjon meg egy érvényes dátumot ezzel a formátummal (dd/mm/yyyy)"
62
+
63
+ # RevTran=Please enter a valid integer value!
64
+ msgid "Please enter a valid number."
65
+ msgstr "Adjon meg egy érvényes számot."
66
+
67
+ # RevTran=Please enter only numbers.
68
+ msgid "Please enter only digits."
69
+ msgstr "Kérjük, adja csak számok."
70
+
71
+ # RevTran=Enter a value less than or equal to {0}.
72
+ msgid "Please enter a value less than or equal to {0}."
73
+ msgstr "Adjon meg egy értéket kisebb vagy egyenlő {0}."
74
+
75
+ # RevTran=Enter a value greater than or equal to {0}.
76
+ msgid "Please enter a value greater than or equal to {0}."
77
+ msgstr "Adjon meg egy értéket nagyobb vagy egyenlő {0}."
languages/contact-form-to-email-hy_AM.mo ADDED
Binary file
languages/contact-form-to-email-hy_AM.po ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: hy_AM\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ msgid "Email"
15
+ msgstr "Էլեկտրոնային փոստ"
16
+
17
+ msgid "Subject"
18
+ msgstr "Ենթակա"
19
+
20
+ msgid "Message"
21
+ msgstr "Հաղորդագրություն"
22
+
23
+ # RevTran=Please enter a captcha verification code.
24
+ msgid "Please enter the captcha verification code."
25
+ msgstr "Խնդրում ենք մուտքագրել captcha ստուգման կոդը."
26
+
27
+ # RevTran=The wrong captcha code. Please try again.
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Սխալ captcha կոդը. Խնդրում ենք կրկին փորձել:"
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Խնդրում ենք մուտքագրել անվտանգության կոդը"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Անվտանգության կոդ"
36
+
37
+ # RevTran=Coupon Code
38
+ msgid "Coupon code"
39
+ msgstr "Արժեկտրոնի կոդը"
40
+
41
+ msgid "This field is required."
42
+ msgstr "Այս դաշտը պարտադիր է:"
43
+
44
+ msgid "Please enter a valid email address."
45
+ msgstr "Խնդրում ենք մուտքագրեք էլ փոստի հասցե."
46
+
47
+ msgid "Please enter a valid captcha code."
48
+ msgstr "Խնդրում ենք մուտքագրել վավեր captcha կոդը."
49
+
50
+ # RevTran=Please enter a valid date format (mm \\/day \\/year)
51
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
52
+ msgstr "Խնդրում ենք մուտքագրել վավեր ամսաթիվ այս ձեւաչափով (մմ/օր/տարի)"
53
+
54
+ # RevTran=Please enter a valid date format (eg \\/month \\/year)
55
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
56
+ msgstr "Խնդրում ենք մուտքագրել վավեր ամսաթիվ այս ձեւաչափով (օր/ամիս/տարի)"
57
+
58
+ msgid "Please enter a valid number."
59
+ msgstr "Խնդրում ենք մուտքագրել վավեր թիվը."
60
+
61
+ # RevTran=Please enter only numbers.
62
+ msgid "Please enter only digits."
63
+ msgstr "Խնդրում ենք մուտքագրել միայն թվեր:"
64
+
65
+ msgid "Please enter a value less than or equal to {0}."
66
+ msgstr "Խնդրում ենք մուտքագրել մի արժեք պակաս է կամ հավասար է {0}."
67
+
68
+ msgid "Please enter a value greater than or equal to {0}."
69
+ msgstr "Խնդրում ենք մուտքագրել մի արժեք ավելի մեծ է կամ հավասար է {0}."
languages/contact-form-to-email-id_ID.mo ADDED
Binary file
languages/contact-form-to-email-id_ID.po ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:49+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: id_ID\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Email"
18
+
19
+ msgid "Subject"
20
+ msgstr "Subyek"
21
+
22
+ msgid "Message"
23
+ msgstr "Pesan"
24
+
25
+ # RevTran=Please enter the verification code captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Silakan masukkan kode verifikasi captcha."
28
+
29
+ # RevTran=The wrong captcha code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Kode captcha yang salah. Silakan coba lagi."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Silakan masukkan kode keamanan"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Kode Keamanan"
38
+
39
+ # RevTran=Coupon Code
40
+ msgid "Coupon code"
41
+ msgstr "Kode kupon"
42
+
43
+ msgid "This field is required."
44
+ msgstr "Bidang ini diperlukan."
45
+
46
+ # RevTran=Enter valid email adress
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Silakan masukkan alamat email yang valid."
49
+
50
+ # RevTran=Enter the captcha code valid.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Masukkan kode captcha yang valid."
53
+
54
+ # RevTran=Enter a valid date in this format (mm \\/dd \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Masukkan tanggal yang valid dengan format ini (mm/dd/yyyy)"
57
+
58
+ # RevTran=Enter a valid date in this format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Masukkan tanggal yang valid dengan format ini (dd/mm/yyyy)"
61
+
62
+ # RevTran=Enter a valid number.
63
+ msgid "Please enter a valid number."
64
+ msgstr "Masukkan nomor yang valid."
65
+
66
+ # RevTran=Enter only digits.
67
+ msgid "Please enter only digits."
68
+ msgstr "Masukkan hanya digit."
69
+
70
+ # RevTran=Enter a value less than or equal to {0}.
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "Masukkan nilai kurang dari atau sama dengan {0}."
73
+
74
+ # RevTran=Enter a value greater than or equal to {0}.
75
+ msgid "Please enter a value greater than or equal to {0}."
76
+ msgstr "Masukkan nilai yang lebih besar dari atau sama dengan {0}."
languages/contact-form-to-email-it_IT.mo ADDED
Binary file
languages/contact-form-to-email-it_IT.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:49+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: it_IT\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Subject"
20
+ msgstr "Oggetto"
21
+
22
+ msgid "Message"
23
+ msgstr "Messaggio"
24
+
25
+ # RevTran=Enter the verification code captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Inserisci il codice di verifica captcha."
28
+
29
+ # RevTran=Captcha code incorrectly. Try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Codice captcha non corretto. Riprova."
32
+
33
+ # RevTran=Please enter a security code.
34
+ msgid "Please enter the security code"
35
+ msgstr "Inserire un codice di sicurezza."
36
+
37
+ # RevTran=Security code
38
+ msgid "Security Code"
39
+ msgstr "Codice di sicurezza"
40
+
41
+ # RevTran=Coupon Code
42
+ msgid "Coupon code"
43
+ msgstr "Codice Coupon"
44
+
45
+ # RevTran=This field is mandatory
46
+ msgid "This field is required."
47
+ msgstr "Questo campo è obbligatorio."
48
+
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Inserisci un indirizzo e-mail valido."
51
+
52
+ # RevTran=Please enter a valid captcha.
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "Si prega di inserire un codice captcha valido."
55
+
56
+ # RevTran=Please enter a valid date in the following format (gg \\/mm \\/yyyy)
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "Si prega di inserire una data valida con questo formato (gg/mm/aaaa)"
59
+
60
+ msgid "Please enter a valid number."
61
+ msgstr "Specificare un numero valido."
62
+
63
+ # RevTran=Enter only digits.
64
+ msgid "Please enter only digits."
65
+ msgstr "Inserisci solo cifre."
66
+
67
+ # RevTran=Enter a value less than or equal to {0}.
68
+ msgid "Please enter a value less than or equal to {0}."
69
+ msgstr "Inserire un valore minore o uguale a {0}."
70
+
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Si prega di inserire un valore maggiore o uguale a {0}."
languages/contact-form-to-email-ja.mo ADDED
Binary file
languages/contact-form-to-email-ja.po ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: ja\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ msgid "Email"
15
+ msgstr "E メール"
16
+
17
+ msgid "Subject"
18
+ msgstr "件名"
19
+
20
+ msgid "Message"
21
+ msgstr "内容"
22
+
23
+ # RevTran=Please, enter verification code of CAPTCHA.
24
+ # RevTran=Please, enter verification code of CAPTCHA.
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "CAPTCHAの確認コードを入力してください。"
27
+
28
+ # RevTran=Illegal CAPTCHA code. Please try again.
29
+ # RevTran=Illegal CAPTCHA code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "不正なCAPTCHAのコード。もう一度やり直してください。"
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "セキュリティコードを入力してください"
35
+
36
+ # RevTran=Card security code
37
+ # RevTran=Card security code
38
+ msgid "Security Code"
39
+ msgstr "セキュリティコード"
40
+
41
+ msgid "Coupon code"
42
+ msgstr "クーポンコード"
43
+
44
+ # RevTran=
45
+ msgid "This field is required."
46
+ msgstr "このフィールドは必須です"
47
+
48
+ msgid "Please enter a valid email address."
49
+ msgstr "有効なメールアドレスを入力してください。"
50
+
51
+ # RevTran=Please enter a valid capture code.
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "有効なキャプチャコードを入力してください。"
54
+
55
+ # RevTran=Please enter a valid date in this format (MM \\/DD \\/YYYY)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "この形式(MM/DD/YYYY)で有効な日付を入力してください"
58
+
59
+ # RevTran=Please enter a valid date in this format (DD \\/MM \\/YYYY)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "この形式(DD/MM/YYYY)で有効な日付を入力してください"
62
+
63
+ msgid "Please enter a valid number."
64
+ msgstr "有効な数字を入力してください。"
65
+
66
+ # RevTran=Please enter only numbers.
67
+ msgid "Please enter only digits."
68
+ msgstr "数字のみを入力してください。"
69
+
70
+ # RevTran=Please enter a value less than or equal to 0.
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "0 以下の値を入力してください。"
73
+
74
+ # RevTran=Please enter a value greater than or equal to 0.
75
+ msgid "Please enter a value greater than or equal to {0}."
76
+ msgstr "0 以上の値を入力してください。"
languages/contact-form-to-email-ka_GE.mo ADDED
Binary file
languages/contact-form-to-email-ka_GE.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:49+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ka_GE\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "ელექტრონული ფოსტა"
18
+
19
+ # RevTran=Theme
20
+ msgid "Subject"
21
+ msgstr "თემა"
22
+
23
+ msgid "Message"
24
+ msgstr "შეტყობინება"
25
+
26
+ # RevTran=Please enter the captcha code.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "გთხოვთ შეიყვანოთ captcha კოდს."
29
+
30
+ # RevTran=The wrong security code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "არასწორი დამცავი კოდი. გთხოვთ ისევ სცადოთ."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "გთხოვთ შეიყვანოთ უსაფრთხოების კოდი"
36
+
37
+ # RevTran=Security code
38
+ msgid "Security Code"
39
+ msgstr "უსაფრთხოების კოდი"
40
+
41
+ msgid "Coupon code"
42
+ msgstr "კუპონის კოდი"
43
+
44
+ msgid "This field is required."
45
+ msgstr "ამ სფეროში აუცილებელია."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "გთხოვთ, შეიყვანოთ სწორი ელ-ფოსტის მისამართი."
49
+
50
+ # RevTran=Please enter the correct security code.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "გთხოვთ, შეიყვანოთ სწორი დამცავი კოდი."
53
+
54
+ # RevTran=Please enter a valid date in the format (mm \\/dd \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "გთხოვთ, შეიყვანოთ სწორი თარიღი ამ ფორმატში (mm/dd/yyyy)"
57
+
58
+ # RevTran=Please enter a valid date in the format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "გთხოვთ, შეიყვანოთ სწორი თარიღი ამ ფორმატში (dd/mm/yyyy)"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "გთხოვთ, შეიყვანოთ სწორი ნომერი."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "გთხოვთ შეიყვანოთ მხოლოდ ციფრები."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "გთხოვთ შეიყვანოთ ღირებულება ნაკლებია ან ტოლი {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "გთხოვთ შეიყვანოთ მნიშვნელობა მეტია ან ტოლია {0}."
languages/contact-form-to-email-ko_KR.mo ADDED
Binary file
languages/contact-form-to-email-ko_KR.po ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ko_KR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "이메일"
18
+
19
+ msgid "Subject"
20
+ msgstr "제목"
21
+
22
+ msgid "Message"
23
+ msgstr "메시지"
24
+
25
+ # RevTran=Please enter the CAPTCHA verification code.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "보안 문자 확인 코드를 입력하세요."
28
+
29
+ # RevTran=The wrong captcha code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "잘못된 보안 문자 코드. 다시 시도하십시오."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "보안 코드를 입력하세요"
35
+
36
+ msgid "Security Code"
37
+ msgstr "보안 코드"
38
+
39
+ # RevTran=Coupon codes
40
+ msgid "Coupon code"
41
+ msgstr "쿠폰 코드"
42
+
43
+ msgid "This field is required."
44
+ msgstr "이 필드는 필수입니다."
45
+
46
+ # RevTran=Please enter a valid address
47
+ msgid "Please enter a valid email address."
48
+ msgstr "유효한 주소를 입력하십시오."
49
+
50
+ # RevTran=Please enter a valid Captcha code.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "유효한 보안 문자 코드를 입력하세요."
53
+
54
+ # RevTran=This format (MM \\/DD \\/YYYY) Please enter a valid date
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "이 형식 (MM/DD/YYYY)로 유효한 날짜를 입력하세요"
57
+
58
+ # RevTran=Please enter a valid date in this format (day \\/mo \\/year)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "이 형식 (일/월/년)으로 유효한 날짜를 입력하세요"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "유효한 번호를 입력하십시오."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "숫자 만 입력하세요."
68
+
69
+ # RevTran=Less than or equal to {0}, enter the same value.
70
+ msgid "Please enter a value less than or equal to {0}."
71
+ msgstr "보다 작거나 {0} 같은 값을 입력하세요."
72
+
73
+ # RevTran=Greater than or equal to {0}, enter the same value.
74
+ msgid "Please enter a value greater than or equal to {0}."
75
+ msgstr "보다 크거나 {0} 같은 값을 입력하세요."
languages/contact-form-to-email-lt_LT.mo ADDED
Binary file
languages/contact-form-to-email-lt_LT.po ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: lt_LT\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "El. paštas"
19
+
20
+ # RevTran=Subject-matter
21
+ msgid "Subject"
22
+ msgstr "Dalykas"
23
+
24
+ msgid "Message"
25
+ msgstr "Pranešimas"
26
+
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Prašome įvesti captcha patvirtinimo kodą."
29
+
30
+ # RevTran=Wrong captcha code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Neteisingas captcha kodą. Bandykite dar kartą."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "Prašome įvesti apsaugos kodą"
36
+
37
+ # RevTran=Security code
38
+ msgid "Security Code"
39
+ msgstr "Apsaugos kodas"
40
+
41
+ # RevTran=Coupon Code
42
+ msgid "Coupon code"
43
+ msgstr "Kupono kodas"
44
+
45
+ msgid "This field is required."
46
+ msgstr "Šis laukas būtinas."
47
+
48
+ # RevTran=Please enter a valid e-mail address
49
+ msgid "Please enter a valid email address."
50
+ msgstr "Įveskite galiojantį el. pašto adresą"
51
+
52
+ msgid "Please enter a valid captcha code."
53
+ msgstr "Prašome įvesti galiojantį captcha kodą."
54
+
55
+ # RevTran=Please enter a valid date with this format (mm \\/dd \\/yyyy)
56
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
57
+ msgstr "Prašome įvesti galiojantį datą su šiuo formatu (mm/dd/yyyy)"
58
+
59
+ # RevTran=Please enter a valid date with this format (dd \\/mm \\/yyyy)
60
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
61
+ msgstr "Prašome įvesti galiojantį datą su šiuo formatu (dd/mm/yyyy)"
62
+
63
+ # RevTran=Please enter a valid account number.
64
+ msgid "Please enter a valid number."
65
+ msgstr "Įveskite teisingą sąskaitos numerį."
66
+
67
+ # RevTran=Please enter only numbers.
68
+ msgid "Please enter only digits."
69
+ msgstr "Prašome įvesti tik skaitmenis."
70
+
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "Prašome įvesti reikšmę mažesnis arba lygus {0}."
73
+
74
+ msgid "Please enter a value greater than or equal to {0}."
75
+ msgstr "Prašome įvesti reikšmę didesnę nei arba lygus {0}."
languages/contact-form-to-email-lv.mo ADDED
Binary file
languages/contact-form-to-email-lv.po ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: lv\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "E-pasts"
19
+
20
+ # RevTran=Topic
21
+ msgid "Subject"
22
+ msgstr "Temats"
23
+
24
+ # RevTran=alert
25
+ msgid "Message"
26
+ msgstr "ziņojums"
27
+
28
+ # RevTran=Enter the captcha verification code.
29
+ msgid "Please enter the captcha verification code."
30
+ msgstr "Ievadiet captcha verifikācijas kodu."
31
+
32
+ # RevTran=Wrong captcha code. Please try again.
33
+ msgid "Incorrect captcha code. Please try again."
34
+ msgstr "Nepareizs captcha kodu. Lūdzu, mēģiniet vēlreiz."
35
+
36
+ # RevTran=Enter the security code
37
+ msgid "Please enter the security code"
38
+ msgstr "Ievadiet drošības kodu"
39
+
40
+ msgid "Security Code"
41
+ msgstr "Drošības kods"
42
+
43
+ # RevTran=Coupon Code
44
+ msgid "Coupon code"
45
+ msgstr "Kupona kods"
46
+
47
+ msgid "This field is required."
48
+ msgstr "Šis lauks ir vajadzīgs."
49
+
50
+ # RevTran=Please enter a valid address
51
+ msgid "Please enter a valid email address."
52
+ msgstr "Lūdzu ievadiet derīgu adresi"
53
+
54
+ # RevTran=Please enter a valid CAPTCHA code.
55
+ msgid "Please enter a valid captcha code."
56
+ msgstr "Lūdzu, ievadiet derīgu CAPTCHA kodu."
57
+
58
+ # RevTran=Please enter a valid date with the format (mm \\/dd \\/yyyy)
59
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
60
+ msgstr "Lūdzu, ievadiet derīgu datumu ar šo formātu (mm/dd/gggg)"
61
+
62
+ # RevTran=Please enter a valid date with the format (dd \\/mm \\/yyyy)
63
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
64
+ msgstr "Lūdzu, ievadiet derīgu datumu ar šo formātu (dd/mm/gggg)"
65
+
66
+ msgid "Please enter a valid number."
67
+ msgstr "Lūdzu, ievadiet derīgu numuru."
68
+
69
+ # RevTran=Please enter only numbers.
70
+ msgid "Please enter only digits."
71
+ msgstr "Lūdzu, ievadiet tikai ciparus."
72
+
73
+ msgid "Please enter a value less than or equal to {0}."
74
+ msgstr "Lūdzu, ievadiet vērtība ir mazāka vai vienāda ar {0}."
75
+
76
+ msgid "Please enter a value greater than or equal to {0}."
77
+ msgstr "Lūdzu, ievadiet spēks ir lielāks par vai vienāds ar {0}."
languages/contact-form-to-email-mk_MK.mo ADDED
Binary file
languages/contact-form-to-email-mk_MK.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: mk_MK\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Електронско писмо"
18
+
19
+ msgid "Subject"
20
+ msgstr "Тема"
21
+
22
+ msgid "Message"
23
+ msgstr "Порака"
24
+
25
+ # RevTran=Please enter the CAPTCHA verification code.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Ве молиме внесете го CAPTCHA код за потврда."
28
+
29
+ # RevTran=Incorrect CAPTCHA code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Неправилна CAPTCHA код. Ве молиме обидете се повторно."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Ве молиме внесете ја безбедносната шифра"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Безбедносен код"
38
+
39
+ # RevTran=Coupon Code
40
+ msgid "Coupon code"
41
+ msgstr "Купони законик"
42
+
43
+ # RevTran=This field is mandatory.
44
+ msgid "This field is required."
45
+ msgstr "Ова поле е задолжително."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Ве молиме внесете валидна е-мејл адреса."
49
+
50
+ # RevTran=Please enter a valid CAPTCHA code.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Ве молиме внесете валидна CAPTCHA код."
53
+
54
+ # RevTran=Please enter a valid date in this format (MM \\/DD \\/YYYY)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Ве молиме внесете валидна датум со овој формат (MM/DD/YYYY)"
57
+
58
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Ве молиме внесете валидна датум со овој формат (дд/мм/гггг)"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Ве молиме внесете валидна број."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Внеси го само бројки."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Ве молиме внесете вредност помалку од или еднакво на {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Ве молиме внесете вредност е поголема или еднаква на {0}."
languages/contact-form-to-email-ml_IN.mo ADDED
Binary file
languages/contact-form-to-email-ml_IN.po ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ml_IN\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "ഇ-മെയിൽ"
18
+
19
+ msgid "Subject"
20
+ msgstr "Subject"
21
+
22
+ msgid "Message"
23
+ msgstr "Message"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Please enter the captcha verification code."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Incorrect captcha code. Please try again."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Please enter the security code"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Security Code"
36
+
37
+ msgid "Coupon code"
38
+ msgstr "Coupon code"
39
+
40
+ msgid "This field is required."
41
+ msgstr "This field is required."
42
+
43
+ # RevTran=Email
44
+ msgid "Please enter a valid email address."
45
+ msgstr "ഇ-മെയിൽ"
46
+
47
+ msgid "Please enter a valid captcha code."
48
+ msgstr "Please enter a valid captcha code."
49
+
50
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
51
+ msgstr "Please enter a valid date with this format(mm/dd/yyyy)"
52
+
53
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
54
+ msgstr "Please enter a valid date with this format(dd/mm/yyyy)"
55
+
56
+ msgid "Please enter a valid number."
57
+ msgstr "Please enter a valid number."
58
+
59
+ msgid "Please enter only digits."
60
+ msgstr "Please enter only digits."
61
+
62
+ msgid "Please enter a value less than or equal to {0}."
63
+ msgstr "Please enter a value less than or equal to {0}."
64
+
65
+ msgid "Please enter a value greater than or equal to {0}."
66
+ msgstr "Please enter a value greater than or equal to {0}."
languages/contact-form-to-email-ms_MY.mo ADDED
Binary file
languages/contact-form-to-email-ms_MY.po ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=iso-8859-1\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: ms_MY\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ # RevTran=Intan.01@gmail.com
15
+ msgid "Email"
16
+ msgstr "Emel"
17
+
18
+ # RevTran=subject syllabus
19
+ msgid "Subject"
20
+ msgstr "kemahiran hidup"
21
+
22
+ msgid "Message"
23
+ msgstr "Mesej"
24
+
25
+ # RevTran=Please enter the verification code captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Sila masukkan kod pengesahan captcha."
28
+
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "Kod captcha tidak betul. Sila cuba sekali lagi."
31
+
32
+ msgid "Please enter the security code"
33
+ msgstr "Sila masukkan kod keselamatan"
34
+
35
+ msgid "Security Code"
36
+ msgstr "Kod Keselamatan"
37
+
38
+ msgid "Coupon code"
39
+ msgstr "Kod kupon"
40
+
41
+ msgid "This field is required."
42
+ msgstr "Medan ini dikehendaki."
43
+
44
+ # RevTran=Please enter a valid email address
45
+ msgid "Please enter a valid email address."
46
+ msgstr "Sila masukkan alamat e-mel yang sah"
47
+
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Sila masukkan kod captcha yang sah."
50
+
51
+ # RevTran=Please enter a valid date with this format (mm \\/dd \\/yyyy)
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr "Sila masukkan tarikh yang sah dengan format ini (mm/dd/yyyy)"
54
+
55
+ # RevTran=Please enter a valid date with this format (dd \\/mm \\/yyyy)
56
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
57
+ msgstr "Sila masukkan tarikh yang sah dengan format ini (dd/mm/yyyy)"
58
+
59
+ msgid "Please enter a valid number."
60
+ msgstr "Sila masukkan nombor yang sah."
61
+
62
+ # RevTran=Please enter only numbers.
63
+ msgid "Please enter only digits."
64
+ msgstr "Sila masukkan hanya angka."
65
+
66
+ msgid "Please enter a value less than or equal to {0}."
67
+ msgstr "Sila masukkan nilai yang kurang daripada atau sama dengan {0}."
68
+
69
+ msgid "Please enter a value greater than or equal to {0}."
70
+ msgstr "Sila masukkan nilai yang lebih besar daripada atau sama dengan {0}."
languages/contact-form-to-email-mt_MT.mo ADDED
Binary file
languages/contact-form-to-email-mt_MT.po ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: mt_MT\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Posta elettronika"
18
+
19
+ # RevTran=Subject matter
20
+ msgid "Subject"
21
+ msgstr "Suġġett"
22
+
23
+ # RevTran=Message:
24
+ msgid "Message"
25
+ msgstr "Messaġġ:"
26
+
27
+ # RevTran=Please enter the verification code captcha.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Jekk jogħġbok daħħal il-kodiċi verifika captcha."
30
+
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Kodiċi captcha żbaljata. Jekk jogħġbok erġa &#39;pprova."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "Jekk jogħġbok daħħal il-kodiċi tas-sigurtà"
36
+
37
+ msgid "Security Code"
38
+ msgstr "Kodiċi tas-Sigurtà"
39
+
40
+ msgid "Coupon code"
41
+ msgstr "Kodiċi tal-kupun"
42
+
43
+ msgid "This field is required."
44
+ msgstr "Dan il-qasam hija meħtieġa."
45
+
46
+ msgid "Please enter a valid email address."
47
+ msgstr "Daħħal indirizz ta &#39;email validu."
48
+
49
+ msgid "Please enter a valid captcha code."
50
+ msgstr "Jekk joghgbok ikteb kodiċi captcha valida."
51
+
52
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
53
+ msgstr "Jekk joghgbok ikteb id-data valida ma dan il-format (mm/jj/ssss)"
54
+
55
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
56
+ msgstr "Jekk joghgbok ikteb id-data valida ma dan il-format (jj/xx/ssss)"
57
+
58
+ msgid "Please enter a valid number."
59
+ msgstr ""
60
+
61
+ msgid "Please enter only digits."
62
+ msgstr ""
63
+
64
+ msgid "Please enter a value less than or equal to {0}."
65
+ msgstr ""
66
+
67
+ msgid "Please enter a value greater than or equal to {0}."
68
+ msgstr ""
languages/contact-form-to-email-nb_NO.mo ADDED
Binary file
languages/contact-form-to-email-nb_NO.po ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: nb_NO\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-post"
18
+
19
+ msgid "Subject"
20
+ msgstr "Emne"
21
+
22
+ msgid "Message"
23
+ msgstr "Melding"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Vennligst skriv inn captcha bekreftelseskode."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Feil captcha-kode. Vennligst prøv igjen."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Vennligst oppgi sikkerhetskoden"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Sikkerhetskode"
36
+
37
+ msgid "Coupon code"
38
+ msgstr "Kupongkode"
39
+
40
+ # RevTran=This field is mandatory.
41
+ # RevTran=This field is mandatory.
42
+ msgid "This field is required."
43
+ msgstr "Dette feltet er obligatorisk."
44
+
45
+ msgid "Please enter a valid email address."
46
+ msgstr "Skriv inn en gyldig e-postadresse."
47
+
48
+ msgid "Please enter a valid captcha code."
49
+ msgstr "Skriv inn en gyldig captcha-kode."
50
+
51
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
52
+ msgstr "Skriv inn en gyldig dato med dette formatet (mm/dd/åååå)"
53
+
54
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
56
+ msgstr "Skriv inn en gyldig dato med dette formatet (dd/mm/åååå)"
57
+
58
+ msgid "Please enter a valid number."
59
+ msgstr "Skriv inn et gyldig nummer."
60
+
61
+ # RevTran=Enter only numbers.
62
+ msgid "Please enter only digits."
63
+ msgstr "Skriv inn bare tall."
64
+
65
+ # RevTran=Enter a value that is less than or equal to {0}.
66
+ msgid "Please enter a value less than or equal to {0}."
67
+ msgstr "Skriv inn en verdi som er mindre enn eller lik {0}."
68
+
69
+ # RevTran=Enter a value greater than or equal to {0}.
70
+ msgid "Please enter a value greater than or equal to {0}."
71
+ msgstr "Skriv inn en verdi som er større enn eller lik {0}."
languages/contact-form-to-email-nl_NL.mo ADDED
Binary file
languages/contact-form-to-email-nl_NL.po ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2015-09-05 17:49+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: nl_NL\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "E-mail"
19
+
20
+ msgid "Subject"
21
+ msgstr "Onderwerp"
22
+
23
+ msgid "Message"
24
+ msgstr "Bericht"
25
+
26
+ # RevTran=Enter the captcha verification code.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Vul de captcha verificatiecode."
29
+
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Onjuiste captcha code. Gelieve opnieuw te proberen."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Vul de beveiligingscode in"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "Beveiligingscode"
39
+
40
+ msgid "Coupon code"
41
+ msgstr "Kortingsbon-code"
42
+
43
+ msgid "This field is required."
44
+ msgstr "Dit veld is verplicht."
45
+
46
+ msgid "Please enter a valid email address."
47
+ msgstr "Voer alstublieft een geldig e-mailadres in."
48
+
49
+ # RevTran=Please enter a valid security code.
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Vul een geldig captcha code."
52
+
53
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Vul een geldige datum met dit formaat (dd/mm/jjjj)"
56
+
57
+ msgid "Please enter a valid number."
58
+ msgstr "Voer alstublieft een geldig getal in."
59
+
60
+ # RevTran=Enter only numbers.
61
+ msgid "Please enter only digits."
62
+ msgstr "Vul alleen cijfers."
63
+
64
+ # RevTran=Please enter a value less than or equal to 0.
65
+ msgid "Please enter a value less than or equal to {0}."
66
+ msgstr "Voer alstublieft een waarde van minder of gelijk aan 0 in."
67
+
68
+ # RevTran=Please enter a value greater than or equal to 0.
69
+ msgid "Please enter a value greater than or equal to {0}."
70
+ msgstr "Voer alstublieft een waarde groter of gelijk aan 0 in."
languages/contact-form-to-email-pa_IN.mo ADDED
Binary file
languages/contact-form-to-email-pa_IN.po ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: pa_IN\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "ਈ-ਮੇਲ"
18
+
19
+ msgid "Subject"
20
+ msgstr "ਵਿਸ਼ਾ"
21
+
22
+ msgid "Message"
23
+ msgstr "ਸੁਨੇਹਾ"
24
+
25
+ # RevTran=Enter the verification code CAPTCHA.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "ਕੈਪਟਚਾ ਤਸਦੀਕ ਕੋਡ ਦਰਜ ਕਰੋ."
28
+
29
+ # RevTran=The wrong captcha code. Please try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "ਗਲਤ ਕੈਪਟਚਾ ਦਾ ਕੋਡ ਹੈ. ਮੁੜ ਕੋਸ਼ਿਸ ਕਰੋ ਜੀ."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "ਸੁਰੱਖਿਆ ਕੋਡ ਦਿਓ ਜੀ"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "ਸੁਰੱਖਿਆ ਕੋਡ"
39
+
40
+ # RevTran=Coupon Code
41
+ msgid "Coupon code"
42
+ msgstr "ਕੂਪਨ ਕੋਡ"
43
+
44
+ msgid "This field is required."
45
+ msgstr "ਇਸ ਫੀਲਡ ਦੀ ਲੋੜ ਹੈ."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "ਇੱਕ ਜਾਇਜ ਈਮੇਲ ਪਤਾ ਦਰਜ ਕਰੋ."
49
+
50
+ # RevTran=Please enter a CAPTCHA code.
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "ਇੱਕ ਠੀਕ ਕੈਪਟਚਾ ਕੋਡ ਦਿਓ ਜੀ."
53
+
54
+ # RevTran=This format (MM \\/dd \\/year) Please enter a valid date
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "ਇਸ ਨੂੰ ਫਾਰਮੈਟ (MM/dd/ਿਾਲ) ਦੇ ਨਾਲ ਇੱਕ ਠੀਕ ਤਾਰੀਖ ਦਿਓ ਜੀ"
57
+
58
+ # RevTran=This format (dd \\/MM \\/year) Please enter a valid date
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "ਇਸ ਨੂੰ ਫਾਰਮੈਟ (dd/MM/ਿਾਲ) ਦੇ ਨਾਲ ਇੱਕ ਠੀਕ ਤਾਰੀਖ ਦਿਓ ਜੀ"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "ਇੱਕ ਯੋਗ ਨੰਬਰ ਦਿਓ ਜੀ."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "ਸਿਰਫ ਅੰਕ ਦਿਓ ਜੀ."
68
+
69
+ # RevTran=Less than or equal to {0} value.
70
+ msgid "Please enter a value less than or equal to {0}."
71
+ msgstr "ਵੱਧ ਘੱਟ ਜ {0} ਦੇ ਬਰਾਬਰ ਮੁੱਲ ਦਿਓ ਜੀ."
72
+
73
+ # RevTran=Than or equal to {0} value.
74
+ msgid "Please enter a value greater than or equal to {0}."
75
+ msgstr "ਵੱਧ ਜ {0} ਦੇ ਬਰਾਬਰ ਮੁੱਲ ਦਿਓ ਜੀ."
languages/contact-form-to-email-pl_PL.mo ADDED
Binary file
languages/contact-form-to-email-pl_PL.po ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: pl_PL\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ # RevTran=E-mail
15
+ msgid "Email"
16
+ msgstr "E-mail"
17
+
18
+ # RevTran=Courses
19
+ msgid "Subject"
20
+ msgstr "Przedmiot"
21
+
22
+ msgid "Message"
23
+ msgstr "Wiadomość"
24
+
25
+ # RevTran=Please enter the verification code
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Podaj kod weryfikacyjny"
28
+
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "Nieprawidłowy kod captcha. Prosimy spróbować ponownie."
31
+
32
+ msgid "Please enter the security code"
33
+ msgstr "Proszę wpisać kod zabezpieczający"
34
+
35
+ # RevTran=security code
36
+ msgid "Security Code"
37
+ msgstr "kod bezpieczeństwa"
38
+
39
+ # RevTran=coupon code
40
+ msgid "Coupon code"
41
+ msgstr "kod kuponu"
42
+
43
+ # RevTran=This field is necessary.
44
+ msgid "This field is required."
45
+ msgstr "Pole to jest konieczne."
46
+
47
+ # RevTran=Please enter a valid email address
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Wprowadź prawidłowy adres e-mail"
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Proszę podać poprawny kod captcha."
53
+
54
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Proszę podać poprawną datę w tym formacie (dd/mm/rrrr)"
57
+
58
+ # RevTran=Please enter a valid customer number.
59
+ msgid "Please enter a valid number."
60
+ msgstr "Wprowadź prawidłowy numer klienta."
61
+
62
+ # RevTran=Please enter only numbers.
63
+ msgid "Please enter only digits."
64
+ msgstr "Proszę wpisać tylko cyfry."
65
+
66
+ msgid "Please enter a value less than or equal to {0}."
67
+ msgstr "Prosimy podać wartość mniejszą lub równą {0}."
68
+
69
+ # RevTran=Enter a value greater than or equal to {0}.
70
+ msgid "Please enter a value greater than or equal to {0}."
71
+ msgstr "Wprowadź wartość większą lub równą {0}."
languages/contact-form-to-email-pt_BR.mo ADDED
Binary file
languages/contact-form-to-email-pt_BR.po ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: pt_BR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Assunto"
20
+ msgstr "Disciplina"
21
+
22
+ msgid "Message"
23
+ msgstr "Mensagem"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Por favor insira o código de verificação captcha."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Código captcha incorreta. Por favor, tente novamente."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Digite o código de segurança"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Código de Segurança"
36
+
37
+ msgid "Coupon code"
38
+ msgstr "Código do cupão"
39
+
40
+ msgid "This field is required."
41
+ msgstr "Este campo é obrigatório"
42
+
43
+ msgid "Please enter a valid email address."
44
+ msgstr "Por favor insira um endereço de email válido."
45
+
46
+ msgid "Please enter a valid captcha code."
47
+ msgstr "Por favor insira um código captcha válido."
48
+
49
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
50
+ msgstr "Por favor, insira uma data válida com este formato(mm/dd/yyyy)"
51
+
52
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
53
+ msgstr "Por favor, insira uma data válida com este formato(dd/mm/yyyy)"
54
+
55
+ msgid "Please enter a valid number."
56
+ msgstr "Por favor insira um número válido"
57
+
58
+ msgid "Please enter only digits."
59
+ msgstr "Digite apenas dígitos."
60
+
61
+ msgid "Please enter a value less than or equal to {0}."
62
+ msgstr "Por favor insira um valor inferior ou igual a {0}."
63
+
64
+ msgid "Please enter a value greater than or equal to {0}."
65
+ msgstr "Por favor insira um valor maior ou igual a {0}."
languages/contact-form-to-email-pt_PT.mo ADDED
Binary file
languages/contact-form-to-email-pt_PT.po ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: pt_PT\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Subject"
20
+ msgstr "Disciplina"
21
+
22
+ msgid "Message"
23
+ msgstr "Mensagem"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Por favor insira o código de verificação captcha."
27
+
28
+ msgid "Incorrect captcha code. Please try again."
29
+ msgstr "Código captcha incorreta. Por favor, tente novamente."
30
+
31
+ msgid "Please enter the security code"
32
+ msgstr "Digite o código de segurança"
33
+
34
+ msgid "Security Code"
35
+ msgstr "Código de Segurança"
36
+
37
+ msgid "Coupon code"
38
+ msgstr "Código do cupão"
39
+
40
+ msgid "This field is required."
41
+ msgstr "Este campo é obrigatório"
42
+
43
+ msgid "Please enter a valid email address."
44
+ msgstr "Por favor insira um endereço de email válido."
45
+
46
+ msgid "Please enter a valid captcha code."
47
+ msgstr "Por favor insira um código captcha válido."
48
+
49
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
50
+ msgstr "Por favor, insira uma data válida com este formato(mm/dd/yyyy)"
51
+
52
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
53
+ msgstr "Por favor, insira uma data válida com este formato(dd/mm/yyyy)"
54
+
55
+ msgid "Please enter a valid number."
56
+ msgstr "Por favor insira um número válido"
57
+
58
+ msgid "Please enter only digits."
59
+ msgstr "Digite apenas dígitos."
60
+
61
+ msgid "Please enter a value less than or equal to {0}."
62
+ msgstr "Por favor insira um valor inferior ou igual a {0}."
63
+
64
+ msgid "Please enter a value greater than or equal to {0}."
65
+ msgstr "Por favor insira um valor maior ou igual a {0}."
languages/contact-form-to-email-ro_RO.mo ADDED
Binary file
languages/contact-form-to-email-ro_RO.po ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ro_RO\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=Vitreous enamel
17
+ # RevTran=Vitreous enamel
18
+ msgid "Email"
19
+ msgstr "Email"
20
+
21
+ msgid "Subject"
22
+ msgstr "Subiect"
23
+
24
+ msgid "Message"
25
+ msgstr "Mesaj"
26
+
27
+ # RevTran=Please enter the verification code captcha.
28
+ # RevTran=Please enter the verification code captcha.
29
+ msgid "Please enter the captcha verification code."
30
+ msgstr "Va rugam sa introduceti codul de verificare captcha."
31
+
32
+ # RevTran=Captcha code incorrectly. Please try again.
33
+ # RevTran=Captcha code incorrectly. Please try again.
34
+ msgid "Incorrect captcha code. Please try again."
35
+ msgstr "Captcha code incorect. Vă rugăm să încercați din nou."
36
+
37
+ msgid "Please enter the security code"
38
+ msgstr "Va rugam sa introduceti codul de securitate"
39
+
40
+ msgid "Security Code"
41
+ msgstr "Cod de securitate"
42
+
43
+ # RevTran=Coupon
44
+ # RevTran=Coupon
45
+ msgid "Coupon code"
46
+ msgstr "Coduri promoționale"
47
+
48
+ msgid "This field is required."
49
+ msgstr "Acest câmp este obligatoriu."
50
+
51
+ # RevTran=Please enter a valid email address
52
+ # RevTran=Please enter a valid email address
53
+ msgid "Please enter a valid email address."
54
+ msgstr "Vă rugăm să introduceți o adresă de e-mail valabilă"
55
+
56
+ # RevTran=Please enter a valid captcha.
57
+ # RevTran=Please enter a valid captcha.
58
+ msgid "Please enter a valid captcha code."
59
+ msgstr "Vă rugăm să introduceți un cod captcha valid."
60
+
61
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
62
+ msgstr "Vă rugăm să introduceți o dată validă pentru acest format (mm/dd/yyyy)"
63
+
64
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
65
+ msgstr "Vă rugăm să introduceți o dată validă pentru acest format (dd/mm/yyyy)"
66
+
67
+ # RevTran=Please enter a Valid Telephone number
68
+ msgid "Please enter a valid number."
69
+ msgstr "Vă rugăm să introduceți un număr de telefon valid"
70
+
71
+ # RevTran=Please enter only numbers.
72
+ msgid "Please enter only digits."
73
+ msgstr "Vă rugăm să introduceți numai cifre."
74
+
75
+ msgid "Please enter a value less than or equal to {0}."
76
+ msgstr "Vă rugăm să introduceți o valoare mai mică sau egală cu {0}."
77
+
78
+ msgid "Please enter a value greater than or equal to {0}."
79
+ msgstr "Vă rugăm să introduceți o valoare mai mare sau egală cu {0}."
languages/contact-form-to-email-ru_RU.mo ADDED
Binary file
languages/contact-form-to-email-ru_RU.po ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "MIME-Version: 1.0\n"
4
+ "Content-Type: text/plain; charset=utf-8\n"
5
+ "Content-Transfer-Encoding: 8bit\n"
6
+ "X-Poedit-SourceCharset: iso-8859-1\n"
7
+ "Project-Id-Version: \n"
8
+ "POT-Creation-Date: \n"
9
+ "PO-Revision-Date: \n"
10
+ "Last-Translator: \n"
11
+ "Language-Team: \n"
12
+ "Language: ru\n"
13
+ "X-Generator: Poedit 1.6.10\n"
14
+
15
+ # RevTran=File details
16
+ msgid "Email"
17
+ msgstr "Email"
18
+
19
+ msgid "Subject"
20
+ msgstr "Предмет"
21
+
22
+ msgid "Message"
23
+ msgstr "Сообщение"
24
+
25
+ msgid "Please enter the captcha verification code."
26
+ msgstr "Пожалуйста, введите капчу проверочный код."
27
+
28
+ # RevTran=Incorrect CAPTCHA Code. Please try again.
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "Неправильное CAPTCHA Code. Пожалуйста, попробуйте еще раз."
31
+
32
+ msgid "Please enter the security code"
33
+ msgstr "Пожалуйста, введите защитный код"
34
+
35
+ # RevTran=Security Code*:
36
+ msgid "Security Code"
37
+ msgstr "Код безопасности*:"
38
+
39
+ msgid "Coupon code"
40
+ msgstr "Код купона"
41
+
42
+ # RevTran=This field is required
43
+ msgid "This field is required."
44
+ msgstr "Это поле обязательно для заполнения"
45
+
46
+ msgid "Please enter a valid email address."
47
+ msgstr "Введите действительный адрес электронной почты."
48
+
49
+ # RevTran=Please enter the captcha.
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Пожалуйста, введите капчу."
52
+
53
+ # RevTran=Please enter the date in this format (mm \\/dd \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Пожалуйста, введите даты в этом формате (мм/дд/гггг)"
56
+
57
+ # RevTran=Please enter the date in this format (dd \\/mm \\/yyyy)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Пожалуйста, введите даты в этом формате (дд/мм/гггг)"
60
+
61
+ # RevTran=Please enter a valid account number.
62
+ msgid "Please enter a valid number."
63
+ msgstr "Пожалуйста, введите действительный номер счета."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Пожалуйста, введите только цифры."
68
+
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Пожалуйста, введите значение меньше или равное {0}."
71
+
72
+ msgid "Please enter a value greater than or equal to {0}."
73
+ msgstr "Пожалуйста, введите значение, большее или равное {0}."
languages/contact-form-to-email-sk_SK.mo ADDED
Binary file
languages/contact-form-to-email-sk_SK.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: sk_SK\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "E-mail"
18
+
19
+ msgid "Subject"
20
+ msgstr "Predmet"
21
+
22
+ # RevTran=Administration
23
+ msgid "Message"
24
+ msgstr "Správa"
25
+
26
+ # RevTran=Please enter the verification code captcha.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Prosím, zadajte overovací kód captcha."
29
+
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Nesprávny captcha kód. Skúste to prosím znova."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Prosím, zadajte bezpečnostný kód"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Bezpečnostný kód"
38
+
39
+ # RevTran=Coupon Code
40
+ msgid "Coupon code"
41
+ msgstr "Kupon kód"
42
+
43
+ msgid "This field is required."
44
+ msgstr "Toto pole je povinné."
45
+
46
+ # RevTran=Please enter a valid address
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Zadajte platnú adresu."
49
+
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Zadajte prosím platný captcha kód."
52
+
53
+ # RevTran=Please enter a valid date in the following format (mm \\/dd \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Zadajte prosím platný dátum v tomto formáte (mm/dd/rrrr)"
56
+
57
+ # RevTran=Please enter a valid date in the following format (dd \\/mm \\/yyyy)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Zadajte prosím platný dátum v tomto formáte (dd/mm/rrrr)"
60
+
61
+ msgid "Please enter a valid number."
62
+ msgstr "Zadajte platné číslo."
63
+
64
+ # RevTran=Please enter only numbers.
65
+ msgid "Please enter only digits."
66
+ msgstr "Prosím, zadajte iba číslice."
67
+
68
+ msgid "Please enter a value less than or equal to {0}."
69
+ msgstr "Prosím, zadajte hodnotu menšiu alebo rovnú {0}."
70
+
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Prosím, zadajte hodnotu väčšiu alebo rovné {0}."
languages/contact-form-to-email-sl_SI.mo ADDED
Binary file
languages/contact-form-to-email-sl_SI.po ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: sl_SI\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Elektronska pošta"
18
+
19
+ # RevTran=Subject matter
20
+ msgid "Subject"
21
+ msgstr "Predmet"
22
+
23
+ msgid "Message"
24
+ msgstr "Sporočilo"
25
+
26
+ # RevTran=Enter the verification code captcha.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Vnesite kodo za preverjanje captcha."
29
+
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Nepravilno captcha kodo. Prosimo, poskusite znova."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Prosimo vnesite varnostno kodo"
35
+
36
+ # RevTran=Security code
37
+ msgid "Security Code"
38
+ msgstr "Varnostna koda"
39
+
40
+ # RevTran=Coupon Code
41
+ msgid "Coupon code"
42
+ msgstr "Kupon koda"
43
+
44
+ msgid "This field is required."
45
+ msgstr "To polje je obvezno."
46
+
47
+ # RevTran=Please enter a valid address
48
+ msgid "Please enter a valid email address."
49
+ msgstr "Vnesite veljaven e-poštni naslov."
50
+
51
+ msgid "Please enter a valid captcha code."
52
+ msgstr "Prosimo, vnesite veljaven captcha kodo."
53
+
54
+ # RevTran=Please enter a valid date in this format (mm \\/dd \\/yyyy)
55
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
56
+ msgstr "Prosimo, vnesite veljaven datum, s tem formatu (mm/dd/llll)"
57
+
58
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
59
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
60
+ msgstr "Prosimo, vnesite veljaven datum, s tem formatu (dd/mm/llll)"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Vnesite veljavno številko."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Vnesite samo številke."
68
+
69
+ # RevTran=Enter a value less than or equal to {0}.
70
+ msgid "Please enter a value less than or equal to {0}."
71
+ msgstr "Vnesite vrednost manjša ali enaka za {0}."
72
+
73
+ # RevTran=Enter a value greater than or equal to {0}.
74
+ msgid "Please enter a value greater than or equal to {0}."
75
+ msgstr "Vnesite vrednost je večja ali enaka do {0}."
languages/contact-form-to-email-sq.mo ADDED
Binary file
languages/contact-form-to-email-sq.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: sq\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=Outbox
17
+ msgid "Email"
18
+ msgstr "Posta elektronike"
19
+
20
+ msgid "Subject"
21
+ msgstr "Subjekti"
22
+
23
+ # RevTran=Messages
24
+ msgid "Message"
25
+ msgstr "Lajmi"
26
+
27
+ # RevTran=Please enter verification code captcha.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Ju lutemi shkruani kodin e verifikimit captcha."
30
+
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Kodi i pasaktë captcha. Ju lutemi provoni përsëri."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "Ju lutemi shkruani kodin e sigurisë"
36
+
37
+ msgid "Security Code"
38
+ msgstr "Kodi i sigurise"
39
+
40
+ # RevTran=Coupon Code
41
+ msgid "Coupon code"
42
+ msgstr "Kodi kupon"
43
+
44
+ msgid "This field is required."
45
+ msgstr "Kjo fushë është e nevojshme."
46
+
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Ju lutem shkruani një adresë e vlefshme email."
49
+
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Ju lutem shkruani një kod të vlefshme captcha."
52
+
53
+ # RevTran=Please enter a valid date in this format (mm \\/dd \\/yyyy)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Ju lutem, jepni një datë të vlefshme me këtë format (mm/dd/vvv)"
56
+
57
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Ju lutem, jepni një datë të vlefshme me këtë format (dd/mm/vvv)"
60
+
61
+ msgid "Please enter a valid number."
62
+ msgstr "Ju lutem shkruani një numër të vlefshme."
63
+
64
+ # RevTran=Please enter only numbers.
65
+ msgid "Please enter only digits."
66
+ msgstr "Ju lutem shkruani vetëm shifra."
67
+
68
+ msgid "Please enter a value less than or equal to {0}."
69
+ msgstr "Ju lutem shkruani një vlerë më pak se ose e barabartë {0} për të."
70
+
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "Ju lutemi hyjë një vlerë më të madhe se ose e barabartë {0} për të."
languages/contact-form-to-email-sr_RS.mo ADDED
Binary file
languages/contact-form-to-email-sr_RS.po ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:47+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: sr_RS\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Imejl"
18
+
19
+ msgid "Subject"
20
+ msgstr "Предмет"
21
+
22
+ msgid "Message"
23
+ msgstr "Poruka"
24
+
25
+ # RevTran=Please enter the area code Captcha verification.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Молимо вас да унесете позивни број Цаптцха верификација."
28
+
29
+ # RevTran=Improper Captcha code. Try again.
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "Неправилно Цаптцха код. Покушајте поново."
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "Молимо Вас да унесете сигурносни код"
35
+
36
+ msgid "Security Code"
37
+ msgstr "Сигурносни код"
38
+
39
+ # RevTran=Coupon Code
40
+ msgid "Coupon code"
41
+ msgstr "Код купона"
42
+
43
+ msgid "This field is required."
44
+ msgstr "Поље је обавезно."
45
+
46
+ # RevTran=Please enter a valid email address
47
+ msgid "Please enter a valid email address."
48
+ msgstr "Unesi važeću imejl adresu"
49
+
50
+ msgid "Please enter a valid captcha code."
51
+ msgstr "Унесите важећи цаптцха код."
52
+
53
+ # RevTran=Please enter a valid date with the format (mm \\/dd \\/iiii)
54
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
55
+ msgstr "Унесите важећи датум са овом формату (мм/дд/ииии)"
56
+
57
+ # RevTran=Please enter a valid date with the format (day \\/month \\/year)
58
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
59
+ msgstr "Унесите важећи датум са овом формату (дан/месец/година)"
60
+
61
+ msgid "Please enter a valid number."
62
+ msgstr "Унесите важећи број."
63
+
64
+ # RevTran=Please enter only numbers.
65
+ msgid "Please enter only digits."
66
+ msgstr "Молимо Вас да унесете само цифре."
67
+
68
+ # RevTran=Enter a value less than or equal to {0}.
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Унесите вриједност мања или једнака у {0}."
71
+
72
+ # RevTran=Enter a value greater than or equal to {0}.
73
+ msgid "Please enter a value greater than or equal to {0}."
74
+ msgstr "Унесите вриједност већу од или једнаку {0}."
languages/contact-form-to-email-sv_SE.mo ADDED
Binary file
languages/contact-form-to-email-sv_SE.po ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: sv_SE\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-Mail
17
+ msgid "Email"
18
+ msgstr "E-post"
19
+
20
+ msgid "Subject"
21
+ msgstr "Angående"
22
+
23
+ # RevTran=Notice
24
+ msgid "Message"
25
+ msgstr "Meddelande"
26
+
27
+ # RevTran=Enter the captcha verification code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Ange captcha verifieringskod."
30
+
31
+ # RevTran=Incorrect captcha code. Try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Felaktig captcha kod. Försök igen."
34
+
35
+ # RevTran=Enter the security code
36
+ msgid "Please enter the security code"
37
+ msgstr "Ange säkerhetskoden"
38
+
39
+ # RevTran=access code
40
+ msgid "Security Code"
41
+ msgstr "Säkerhetskod"
42
+
43
+ msgid "Coupon code"
44
+ msgstr "Kupongkod"
45
+
46
+ # RevTran=This field is required
47
+ msgid "This field is required."
48
+ msgstr "Detta fält är obligatoriskt"
49
+
50
+ msgid "Please enter a valid email address."
51
+ msgstr "Ange en giltig e-postadress."
52
+
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "Ange en giltig captcha-kod."
55
+
56
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "Ange ett giltigt datum med detta format (dd/mm/åååå)"
59
+
60
+ # RevTran=Please enter a valid date in this format (dd \\/mm \\/yyyy)
61
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
62
+ msgstr "Ange ett giltigt datum med detta format (dd/mm/åååå)"
63
+
64
+ # RevTran=Please enter a valid number
65
+ msgid "Please enter a valid number."
66
+ msgstr "Vänligen ange ett giltigt nummer"
67
+
68
+ # RevTran=Please enter only numbers.
69
+ msgid "Please enter only digits."
70
+ msgstr "Ange endast siffror."
71
+
72
+ # RevTran=Enter a value that is less than or equal to {0}.
73
+ msgid "Please enter a value less than or equal to {0}."
74
+ msgstr "Ange ett värde som är mindre än eller lika med {0}."
75
+
76
+ # RevTran=Enter a value greater than or equal to {0}.
77
+ msgid "Please enter a value greater than or equal to {0}."
78
+ msgstr "Ange ett värde som är större än eller lika med {0}."
languages/contact-form-to-email-ta.mo ADDED
Binary file
languages/contact-form-to-email-ta.po ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:46+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: ta\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "மின்னஞ்சல்"
19
+
20
+ # RevTran=Matter
21
+ msgid "Subject"
22
+ msgstr "பொருள்"
23
+
24
+ # RevTran=News
25
+ msgid "Message"
26
+ msgstr "செய்தி"
27
+
28
+ # RevTran=Enter the verification code captcha.
29
+ msgid "Please enter the captcha verification code."
30
+ msgstr "கேப்ட்சா சரிபார்ப்பு குறியீடு உள்ளிடவும்."
31
+
32
+ # RevTran=The wrong captcha code. Please try again.
33
+ msgid "Incorrect captcha code. Please try again."
34
+ msgstr "தவறான கேப்ட்சா குறியீடு. மீண்டும் முயற்சிக்கவும்."
35
+
36
+ # RevTran=Enter the security code
37
+ msgid "Please enter the security code"
38
+ msgstr "பாதுகாப்பு குறியீடு உள்ளிடவும்"
39
+
40
+ msgid "Security Code"
41
+ msgstr "பாதுகாப்பு குறியீடு"
42
+
43
+ # RevTran=Postal code
44
+ msgid "Coupon code"
45
+ msgstr "கூப்பன் குறியீடு"
46
+
47
+ msgid "This field is required."
48
+ msgstr "இந்த துறையில் தேவைப்படுகிறது."
49
+
50
+ msgid "Please enter a valid email address."
51
+ msgstr "ஒரு சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்."
52
+
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "ஒரு செல்லுபடியாகும் கேப்ட்சா குறியீடு உள்ளிடவும்."
55
+
56
+ # RevTran=This form (DD \\/MM \\/YYYY) Please enter a valid date
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "இந்த வடிவம் (DD/MM/YYYY) ஒரு செல்லுபடியாகும் தேதியை உள்ளிடவும்"
59
+
60
+ # RevTran=This form (DD \\/MM \\/YYYY) Please enter a valid date
61
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
62
+ msgstr "இந்த வடிவம் (DD/MM/YYYY) ஒரு செல்லுபடியாகும் தேதியை உள்ளிடவும்"
63
+
64
+ msgid "Please enter a valid number."
65
+ msgstr "சரியான எண் உள்ளிடவும்."
66
+
67
+ # RevTran=Please enter only numbers.
68
+ msgid "Please enter only digits."
69
+ msgstr "ஒரே இலக்கங்கள் உள்ளிடவும்."
70
+
71
+ msgid "Please enter a value less than or equal to {0}."
72
+ msgstr "குறைவாக அல்லது {0} சமமான மதிப்பை உள்ளிடவும்."
73
+
74
+ # RevTran=Enter a value greater than or equal to {0}.
75
+ msgid "Please enter a value greater than or equal to {0}."
76
+ msgstr "அதிகமான அல்லது {0} சமமான மதிப்பை உள்ளிடவும்."
languages/contact-form-to-email-th.mo ADDED
Binary file
languages/contact-form-to-email-th.po ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: th\n"
12
+ "X-Generator: Poedit 1.6.10\n"
13
+
14
+ msgid "Email"
15
+ msgstr "อีเมล"
16
+
17
+ # RevTran=Headline
18
+ msgid "Subject"
19
+ msgstr "หัวเรื่อง"
20
+
21
+ # RevTran=Messages
22
+ msgid "Message"
23
+ msgstr "ข้อความ"
24
+
25
+ # RevTran=Please check the comments.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "กรุณาใส่รหัสตรวจสอบแจ้งลบความคิดเห็น"
28
+
29
+ # RevTran=Report this comment to the wrong code. Please try again
30
+ msgid "Incorrect captcha code. Please try again."
31
+ msgstr "แจ้งลบความคิดเห็นที่ไม่ถูกต้องรหัส โปรดลองอีกครั้ง"
32
+
33
+ msgid "Please enter the security code"
34
+ msgstr "กรุณากรอกรหัสรักษาความปลอดภัย"
35
+
36
+ # RevTran=Security guard
37
+ msgid "Security Code"
38
+ msgstr "รหัสความปลอดภัย"
39
+
40
+ # RevTran=Character encoding
41
+ msgid "Coupon code"
42
+ msgstr "รหัสคูปอง"
43
+
44
+ # RevTran=This field is required
45
+ msgid "This field is required."
46
+ msgstr "ฟิลด์นี้จะต้อง"
47
+
48
+ # RevTran=Please enter a valid email address
49
+ msgid "Please enter a valid email address."
50
+ msgstr "กรุณาป้อนอีเมลที่ถูกต้อง"
51
+
52
+ # RevTran=Please enter the code, the comments are correct.
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "กรุณากรอกรหัสที่แจ้งลบความคิดเห็นที่ถูกต้อง"
55
+
56
+ # RevTran=Please enter a valid with this format (month \\/day \\/year).
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "กรุณากรอกวันที่ถูกต้องกับรูปแบบนี้ (เดือน/วัน/ปี)"
59
+
60
+ # RevTran=Please enter a valid with this format (dd \\/m \\/year).
61
+ msgid "Please enter a valid date with this format(dd/mm/yyyy)"
62
+ msgstr "กรุณากรอกวันที่ถูกต้องกับรูปแบบนี้ (วัน/เดือน/ปี)"
63
+
64
+ # RevTran=Please enter a valid number
65
+ msgid "Please enter a valid number."
66
+ msgstr "กรุณาใส่ตัวเลขที่ถูกต้อง"
67
+
68
+ # RevTran=Please enter only numeric characters
69
+ msgid "Please enter only digits."
70
+ msgstr "กรุณากรอกตัวอักษรตัวเลขเท่านั้น"
71
+
72
+ msgid "Please enter a value less than or equal to {0}."
73
+ msgstr "กรุณาป้อนค่าน้อยกว่าหรือเท่ากับ {0}"
74
+
75
+ msgid "Please enter a value greater than or equal to {0}."
76
+ msgstr "กรุณาป้อนค่ามากกว่าหรือเท่ากับ {0}"
languages/contact-form-to-email-tl.mo ADDED
Binary file
languages/contact-form-to-email-tl.po ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: tl\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "Email"
18
+
19
+ msgid "Subject"
20
+ msgstr "Paksa"
21
+
22
+ msgid "Message"
23
+ msgstr "Mensahe"
24
+
25
+ # RevTran=Please enter the verification code captcha.
26
+ msgid "Please enter the captcha verification code."
27
+ msgstr "Mangyaring ipasok ang verification code na captcha."
28
+
29
+ msgid "Incorrect captcha code. Please try again."
30
+ msgstr "Hindi tamang captcha code. Pakisubukang muli."
31
+
32
+ msgid "Please enter the security code"
33
+ msgstr "Mangyaring ipasok ang security code"
34
+
35
+ msgid "Security Code"
36
+ msgstr "Code ng Seguridad"
37
+
38
+ # RevTran=The coupon code
39
+ msgid "Coupon code"
40
+ msgstr "Ang code ng kupon"
41
+
42
+ msgid "This field is required."
43
+ msgstr "Ang patlang na ito ay kinakailangan."
44
+
45
+ # RevTran=Please enter a valid email address
46
+ msgid "Please enter a valid email address."
47
+ msgstr "Mangyaring magpasok ng isang wastong email address"
48
+
49
+ msgid "Please enter a valid captcha code."
50
+ msgstr "Mangyaring magpasok ng wastong captcha code."
51
+
52
+ # RevTran=Please enter a valid date format (mm \\/dd \\/yyyy)
53
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
54
+ msgstr "Mangyaring magpasok ng wastong petsa sa format (mm/dd/yyyy)"
55
+
56
+ msgid "Please enter a valid number."
57
+ msgstr "Mangyaring magpasok ng isang wastong numero."
58
+
59
+ msgid "Please enter only digits."
60
+ msgstr "Mangyaring ipasok lamang ang mga digit."
61
+
62
+ msgid "Please enter a value less than or equal to {0}."
63
+ msgstr ""
64
+ "Mangyaring magpasok ng isang halaga na mas mababa sa o katumbas ng {0}."
65
+
66
+ # RevTran=Please enter a value less than or equal to {0}.
67
+ msgid "Please enter a value greater than or equal to {0}."
68
+ msgstr ""
69
+ "Mangyaring magpasok ng isang halaga na mas mababa sa o katumbas ng {0}."
languages/contact-form-to-email-tr_TR.mo ADDED
Binary file
languages/contact-form-to-email-tr_TR.po ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: tr_TR\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail (*)
17
+ msgid "Email"
18
+ msgstr "E-posta"
19
+
20
+ # RevTran=Topic
21
+ msgid "Subject"
22
+ msgstr "Konu"
23
+
24
+ msgid "Message"
25
+ msgstr "Mesaj"
26
+
27
+ # RevTran=Please enter the Captcha code.
28
+ msgid "Please enter the captcha verification code."
29
+ msgstr "Captcha doğrulama kodunu giriniz."
30
+
31
+ # RevTran=Wrong Captcha code. Please try again.
32
+ msgid "Incorrect captcha code. Please try again."
33
+ msgstr "Yanlış Captcha kodu. Lütfen tekrar deneyin."
34
+
35
+ # RevTran=Please enter the code
36
+ msgid "Please enter the security code"
37
+ msgstr "Lütfen Kodu girin"
38
+
39
+ # RevTran=Security Code:
40
+ msgid "Security Code"
41
+ msgstr "Güvenlik Kodu:"
42
+
43
+ # RevTran=Coupon Code
44
+ msgid "Coupon code"
45
+ msgstr "Kupon kodu"
46
+
47
+ msgid "This field is required."
48
+ msgstr "Bu alan gereklidir."
49
+
50
+ # RevTran=Please enter a valid email address
51
+ msgid "Please enter a valid email address."
52
+ msgstr "Lütfen geçerli bir e-posta adresi girin."
53
+
54
+ # RevTran=Please enter a valid verification code.
55
+ msgid "Please enter a valid captcha code."
56
+ msgstr "Geçerli bir doğrulama kodunu giriniz."
57
+
58
+ # RevTran=In this format (aa \\/dd \\/yyyy) Enter a valid date
59
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
60
+ msgstr "Bu formatta (aa/gg/yyyy) geçerli bir tarih girin"
61
+
62
+ msgid "Please enter a valid number."
63
+ msgstr "Geçerli bir sayı giriniz."
64
+
65
+ msgid "Please enter only digits."
66
+ msgstr "Sadece basamak giriniz."
67
+
68
+ # RevTran=Or, enter a value equal to less than {0}.
69
+ msgid "Please enter a value less than or equal to {0}."
70
+ msgstr "Veya daha az {0} eşit bir değer girin."
71
+
72
+ # RevTran=Enter a value greater than or equal to {0}.
73
+ msgid "Please enter a value greater than or equal to {0}."
74
+ msgstr "Daha büyük veya {0} eşit bir değer girin."
languages/contact-form-to-email-uk.mo ADDED
Binary file
languages/contact-form-to-email-uk.po ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: uk\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ # RevTran=E-mail
17
+ msgid "Email"
18
+ msgstr "Електронна пошта"
19
+
20
+ msgid "Subject"
21
+ msgstr "Суб'єкт"
22
+
23
+ msgid "Message"
24
+ msgstr "Повідомлення"
25
+
26
+ # RevTran=Please enter the captcha code verification.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "Будь ласка, введіть капчу код перевірки."
29
+
30
+ # RevTran=Wrong CAPTCHA Code. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "Неправильне CAPTCHA Code. Будь ласка, спробуйте ще раз."
33
+
34
+ msgid "Please enter the security code"
35
+ msgstr "Будь ласка, введіть захисний код"
36
+
37
+ # RevTran=Security code
38
+ msgid "Security Code"
39
+ msgstr "Код доступу"
40
+
41
+ # RevTran=Coupon Code
42
+ msgid "Coupon code"
43
+ msgstr "Код купона"
44
+
45
+ # RevTran=INVALID LANGUAGE PAIR SPECIFIED. EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN. ALMOST ALL LANGUAGES SUPPORTED BUT SOME MAY HAVE NO CONTENT
46
+ msgid "This field is required."
47
+ msgstr "Заповнення даного поля обов&#39;язково."
48
+
49
+ # RevTran=Please enter a valid email address
50
+ msgid "Please enter a valid email address."
51
+ msgstr "Будь ласка, введіть дійсну адресу"
52
+
53
+ # RevTran=Please enter a captcha.
54
+ msgid "Please enter a valid captcha code."
55
+ msgstr "Будь ласка, введіть капчу."
56
+
57
+ # RevTran=Please enter in this format (mm \\/dd \\/yyyy)
58
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
59
+ msgstr "Будь ласка, введіть дати в цьому форматі (мм/дд/рррр)"
60
+
61
+ # RevTran=Please enter the correct number.
62
+ msgid "Please enter a valid number."
63
+ msgstr "Будь ласка, введіть правильний номер."
64
+
65
+ # RevTran=Please enter only numbers.
66
+ msgid "Please enter only digits."
67
+ msgstr "Будь ласка, введіть тільки цифри."
68
+
69
+ # RevTran=Please enter a value that is less than or equal to {0}.
70
+ msgid "Please enter a value less than or equal to {0}."
71
+ msgstr "Будь ласка, введіть значення, яке менше або дорівнює {0}."
72
+
73
+ msgid "Please enter a value greater than or equal to {0}."
74
+ msgstr "Будь ласка, введіть значення, більше або рівне {0}."
languages/contact-form-to-email-zh_CN.mo ADDED
Binary file
languages/contact-form-to-email-zh_CN.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: zh_CN\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "电子邮箱"
18
+
19
+ # RevTran=The theme
20
+ msgid "Subject"
21
+ msgstr "主题"
22
+
23
+ msgid "Message"
24
+ msgstr "留言"
25
+
26
+ # RevTran=Please enter the verification code.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "请输入验证码验证码。"
29
+
30
+ # RevTran=Captcha code is incorrect. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "不正确图形验证码。请重试。"
33
+
34
+ # RevTran=Please enter the verification code
35
+ msgid "Please enter the security code"
36
+ msgstr "请输入验证码"
37
+
38
+ # RevTran=CAPTCHA
39
+ msgid "Security Code"
40
+ msgstr "验证码"
41
+
42
+ msgid "Coupon code"
43
+ msgstr "优惠券代码"
44
+
45
+ # RevTran=This field is required
46
+ msgid "This field is required."
47
+ msgstr "此字段必填"
48
+
49
+ msgid "Please enter a valid email address."
50
+ msgstr "请输入一个有效的电子邮件地址。"
51
+
52
+ # RevTran=Please enter a valid Captcha code.
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "请输入有效的图形验证码。"
55
+
56
+ # RevTran=Please enter a valid date in this format (MM \\/DD \\/YYYY) of
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "请用此格式(MM/DD/YYYY)的有效输入日期"
59
+
60
+ msgid "Please enter a valid number."
61
+ msgstr "请输入一个有效的数字。"
62
+
63
+ # RevTran=Please enter only numbers.
64
+ msgid "Please enter only digits."
65
+ msgstr "请只输入数字。"
66
+
67
+ msgid "Please enter a value less than or equal to {0}."
68
+ msgstr "请输入一个值小于或等于{0}。"
69
+
70
+ # RevTran=Enter a value greater than or equal to {0}.
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "请输入值大于或等于{0}。"
languages/contact-form-to-email-zh_TW.mo ADDED
Binary file
languages/contact-form-to-email-zh_TW.po ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form to Email\n"
4
+ "POT-Creation-Date: 2013-09-01 17:05+0100\n"
5
+ "PO-Revision-Date: 2014-12-08 21:48+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.6.10\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
13
+ "Language: zh_TW\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+
16
+ msgid "Email"
17
+ msgstr "电子邮箱"
18
+
19
+ # RevTran=The theme
20
+ msgid "Subject"
21
+ msgstr "主题"
22
+
23
+ msgid "Message"
24
+ msgstr "留言"
25
+
26
+ # RevTran=Please enter the verification code.
27
+ msgid "Please enter the captcha verification code."
28
+ msgstr "请输入验证码验证码。"
29
+
30
+ # RevTran=Captcha code is incorrect. Please try again.
31
+ msgid "Incorrect captcha code. Please try again."
32
+ msgstr "不正确图形验证码。请重试。"
33
+
34
+ # RevTran=Please enter the verification code
35
+ msgid "Please enter the security code"
36
+ msgstr "请输入验证码"
37
+
38
+ # RevTran=CAPTCHA
39
+ msgid "Security Code"
40
+ msgstr "验证码"
41
+
42
+ msgid "Coupon code"
43
+ msgstr "优惠券代码"
44
+
45
+ # RevTran=This field is required
46
+ msgid "This field is required."
47
+ msgstr "此字段必填"
48
+
49
+ msgid "Please enter a valid email address."
50
+ msgstr "请输入一个有效的电子邮件地址。"
51
+
52
+ # RevTran=Please enter a valid Captcha code.
53
+ msgid "Please enter a valid captcha code."
54
+ msgstr "请输入有效的图形验证码。"
55
+
56
+ # RevTran=Please enter a valid date in this format (MM \\/DD \\/YYYY) of
57
+ msgid "Please enter a valid date with this format(mm/dd/yyyy)"
58
+ msgstr "请用此格式(MM/DD/YYYY)的有效输入日期"
59
+
60
+ msgid "Please enter a valid number."
61
+ msgstr "请输入一个有效的数字。"
62
+
63
+ # RevTran=Please enter only numbers.
64
+ msgid "Please enter only digits."
65
+ msgstr "请只输入数字。"
66
+
67
+ msgid "Please enter a value less than or equal to {0}."
68
+ msgstr "请输入一个值小于或等于{0}。"
69
+
70
+ # RevTran=Enter a value greater than or equal to {0}.
71
+ msgid "Please enter a value greater than or equal to {0}."
72
+ msgstr "请输入值大于或等于{0}。"