Version Description
- Fix update booking status with PHP 7
- Update auto shortcode redirect
=
Download this release
Release Info
Developer | leehld |
Plugin | WP Events Manager |
Version | 2.1.4 |
Comparing to | |
See all releases |
Version 2.1.4
- assets/css/admin/admin.css +302 -0
- assets/css/admin/admin.min.css +1 -0
- assets/css/datetimepicker/jquery.datetimepicker.min.css +1 -0
- assets/css/frontend/events.css +213 -0
- assets/css/frontend/events.min.css +1 -0
- assets/fonts/glyphicons-halflings-regular.eot +0 -0
- assets/fonts/glyphicons-halflings-regular.svg +288 -0
- assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- assets/fonts/glyphicons-halflings-regular.woff +0 -0
- assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- assets/fonts/icomoon.eot +0 -0
- assets/fonts/icomoon.svg +11 -0
- assets/fonts/icomoon.ttf +0 -0
- assets/fonts/icomoon.woff +0 -0
- assets/images/map-marker.png +0 -0
- assets/js/admin/admin-events.js +127 -0
- assets/js/admin/admin-events.min.js +1 -0
- assets/js/datetimepicker/jquery.datetimepicker.full.js +3192 -0
- assets/js/datetimepicker/jquery.datetimepicker.full.min.js +2 -0
- assets/js/datetimepicker/jquery.datetimepicker.min.js +2 -0
- assets/js/frontend/events.js +265 -0
- assets/js/frontend/events.min.js +1 -0
- assets/js/frontend/google-map.js +125 -0
- inc/abstracts/class-wpems-abstract-payment-gateway.php +111 -0
- inc/abstracts/class-wpems-abstract-setting.php +92 -0
- inc/admin/class-wpems-admin-assets.php +29 -0
- inc/admin/class-wpems-admin-menu.php +65 -0
- inc/admin/class-wpems-admin-metaboxes.php +92 -0
- inc/admin/class-wpems-admin-settings.php +202 -0
- inc/admin/class-wpems-admin-users.php +254 -0
- inc/admin/class-wpems-admin.php +22 -0
- inc/admin/metaboxes/class-wpems-admin-metabox-booking.php +28 -0
- inc/admin/metaboxes/class-wpems-admin-metabox-event.php +62 -0
- inc/admin/settings/class-wpems-admin-setting-checkout.php +121 -0
- inc/admin/settings/class-wpems-admin-setting-emails.php +89 -0
- inc/admin/settings/class-wpems-admin-setting-general.php +110 -0
- inc/admin/settings/class-wpems-admin-setting-pages.php +88 -0
- inc/admin/upgrades/upgrade-2.0.8.php +33 -0
- inc/admin/upgrades/upgrade-2.0.php +47 -0
- inc/admin/views/metaboxes/booking-actions.php +28 -0
- inc/admin/views/metaboxes/booking-details.php +77 -0
- inc/admin/views/metaboxes/event-settings.php +84 -0
- inc/admin/views/settings/checkbox.php +31 -0
- inc/admin/views/settings/image-size.php +45 -0
- inc/admin/views/settings/radio.php +37 -0
- inc/admin/views/settings/section-end.php +12 -0
- inc/admin/views/settings/section-start.php +18 -0
- inc/admin/views/settings/select-page.php +37 -0
- inc/admin/views/settings/select.php +40 -0
- inc/admin/views/settings/text.php +40 -0
- inc/admin/views/settings/textarea.php +30 -0
- inc/admin/views/settings/yes-no.php +31 -0
- inc/class-wpems-ajax.php +218 -0
- inc/class-wpems-assets.php +149 -0
- inc/class-wpems-autoloader.php +88 -0
- inc/class-wpems-booking.php +122 -0
- inc/class-wpems-event.php +178 -0
- inc/class-wpems-frontend-assets.php +46 -0
- inc/class-wpems-install.php +168 -0
- inc/class-wpems-payment-gateways.php +74 -0
- inc/class-wpems-post-types.php +494 -0
- inc/class-wpems-session.php +125 -0
- inc/class-wpems-settings.php +135 -0
- inc/class-wpems-shortcodes.php +259 -0
- inc/class-wpems-template.php +52 -0
- inc/class-wpems-user-process.php +226 -0
- inc/emails/class-wpems-register-event.php +78 -0
- inc/gateways/paypal/class-wpems-payment-gateway-paypal.php +251 -0
- inc/gateways/paypal/paypal.png +0 -0
- inc/libraries/bootstrap/css/bootstrap-theme.min.css +1 -0
- inc/libraries/bootstrap/css/bootstrap.min.css +9 -0
- inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.svg +228 -0
- inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- inc/libraries/bootstrap/js/bootstrap.min.js +6 -0
- inc/libraries/countdown/css/jquery.countdown.css +54 -0
- inc/libraries/countdown/js/jquery.countdown.min.js +6 -0
- inc/libraries/countdown/js/jquery.plugin.min.js +4 -0
- inc/libraries/magnific-popup/css/magnific-popup.css +429 -0
- inc/libraries/magnific-popup/js/jquery.magnific-popup.js +1860 -0
- inc/libraries/magnific-popup/js/jquery.magnific-popup.min.js +4 -0
- inc/libraries/owl-carousel/css/grabbing.png +0 -0
- inc/libraries/owl-carousel/css/owl.carousel.css +71 -0
- inc/libraries/owl-carousel/js/owl.carousel.min.js +47 -0
- inc/plugins/wp-events-manager-woo-payment.zip +0 -0
- inc/widgets/class-wpems-widget-countdown.php +174 -0
- inc/wpems-core-functions.php +1525 -0
- index.php +0 -0
- languages/wp-events-manager.pot +1333 -0
- license.txt +339 -0
- readme.txt +132 -0
- templates/archive-event.php +89 -0
- templates/content-event.php +82 -0
- templates/content-single-event.php +51 -0
- templates/emails/register-event.php +57 -0
- templates/loop/booking-form.php +55 -0
- templates/loop/content.php +11 -0
- templates/loop/countdown.php +20 -0
- templates/loop/excerpt.php +14 -0
- templates/loop/location.php +13 -0
- templates/loop/register.php +42 -0
- templates/loop/thumbnail.php +21 -0
- templates/loop/title.php +20 -0
- templates/notices/error.php +16 -0
- templates/notices/messages.php +15 -0
- templates/notices/success.php +11 -0
- templates/shortcodes/event-countdown.php +28 -0
- templates/shortcodes/event-list.php +79 -0
- templates/shortcodes/forgot-password.php +56 -0
- templates/shortcodes/form-login.php +44 -0
- templates/shortcodes/form-register.php +51 -0
- templates/shortcodes/register-completed.php +10 -0
- templates/shortcodes/register-error.php +8 -0
- templates/shortcodes/reset-password.php +71 -0
- templates/shortcodes/user-account.php +77 -0
- templates/shortcodes/user-cannot-register.php +7 -0
- templates/single-event.php +30 -0
- wp-events-manager.php +175 -0
assets/css/admin/admin.css
ADDED
@@ -0,0 +1,302 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tp_event_admin_widget {
|
2 |
+
max-height: 100px;
|
3 |
+
overflow: scroll;
|
4 |
+
border: 1px solid #dddddd;
|
5 |
+
padding: 5px 10px;
|
6 |
+
max-width: 100%;
|
7 |
+
overflow-x: hidden;
|
8 |
+
}
|
9 |
+
|
10 |
+
#event-settings-metabox .shortcode {
|
11 |
+
min-width: 300px;
|
12 |
+
}
|
13 |
+
|
14 |
+
.tp_event_widget_tab li {
|
15 |
+
display: inline-block;
|
16 |
+
}
|
17 |
+
|
18 |
+
.tp_event_admin_widget {
|
19 |
+
display: none;
|
20 |
+
}
|
21 |
+
|
22 |
+
.tp_event_admin_widget.active {
|
23 |
+
display: block;
|
24 |
+
}
|
25 |
+
|
26 |
+
.tp_event_setting_wrapper a.nav-tab:focus {
|
27 |
+
box-shadow: none;
|
28 |
+
}
|
29 |
+
|
30 |
+
.tp_event_wrapper_content table th {
|
31 |
+
text-align: left;
|
32 |
+
min-width: 300px;
|
33 |
+
max-width: 300px;
|
34 |
+
}
|
35 |
+
|
36 |
+
.tp_event_wrapper_content table p {
|
37 |
+
margin: 2px;
|
38 |
+
font-weight: normal;
|
39 |
+
}
|
40 |
+
|
41 |
+
.tp_event_wrapper_content table select,
|
42 |
+
.tp_event_wrapper_content table input[type="text"]
|
43 |
+
.tp_event_wrapper_content table input[type="email"] {
|
44 |
+
width: auto;
|
45 |
+
min-width: 250px;
|
46 |
+
}
|
47 |
+
|
48 |
+
#checkout h3 a {
|
49 |
+
font-size: 12px;
|
50 |
+
font-weight: 600;
|
51 |
+
padding: 0px 12px;
|
52 |
+
}
|
53 |
+
|
54 |
+
#checkout h3 a.active {
|
55 |
+
border-bottom: 1px solid #f1f1f1;
|
56 |
+
background: #f1f1f1;
|
57 |
+
color: #000;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* metabox
|
62 |
+
*/
|
63 |
+
#event-settings-metabox .inside {
|
64 |
+
margin: 0;
|
65 |
+
padding: 0;
|
66 |
+
overflow: hidden;
|
67 |
+
}
|
68 |
+
|
69 |
+
.event_meta_box_container {
|
70 |
+
overflow: hidden;
|
71 |
+
}
|
72 |
+
|
73 |
+
.event_meta_box_container .option_group {
|
74 |
+
border-bottom: 1px solid #eee;
|
75 |
+
}
|
76 |
+
|
77 |
+
.event_meta_box_container .form-field {
|
78 |
+
padding: 5px 20px 5px;
|
79 |
+
overflow: hidden;
|
80 |
+
}
|
81 |
+
|
82 |
+
.event_meta_box_container label {
|
83 |
+
width: 150px;
|
84 |
+
float: left;
|
85 |
+
display: block;
|
86 |
+
font-size: 12px;
|
87 |
+
}
|
88 |
+
|
89 |
+
.event_meta_box_container input[type="text"],
|
90 |
+
.event_meta_box_container input[type="email"],
|
91 |
+
.event_meta_box_container input[type="number"],
|
92 |
+
.event_meta_box_container textarea {
|
93 |
+
width: 50%;
|
94 |
+
float: left;
|
95 |
+
}
|
96 |
+
|
97 |
+
.event_metabox_setting {
|
98 |
+
position: relative;
|
99 |
+
float: left;
|
100 |
+
width: 20%;
|
101 |
+
margin: 0;
|
102 |
+
background-color: #fdfdfd;
|
103 |
+
border-right: 1px solid #dfdfdf;
|
104 |
+
box-sizing: border-box;
|
105 |
+
}
|
106 |
+
|
107 |
+
.event_metabox_setting:before {
|
108 |
+
display: block;
|
109 |
+
content: '';
|
110 |
+
position: absolute;
|
111 |
+
left: 0;
|
112 |
+
right: 0;
|
113 |
+
top: 100%;
|
114 |
+
width: 100%;
|
115 |
+
height: 1000px;
|
116 |
+
background-color: #fdfdfd;
|
117 |
+
border-right: 1px solid #dfdfdf;
|
118 |
+
}
|
119 |
+
|
120 |
+
.event_metabox_setting li {
|
121 |
+
margin: 0;
|
122 |
+
}
|
123 |
+
|
124 |
+
.event_metabox_setting li a {
|
125 |
+
text-decoration: none;
|
126 |
+
padding: 8px 12px;
|
127 |
+
display: block;
|
128 |
+
line-height: 20px;
|
129 |
+
font-size: 13px;
|
130 |
+
}
|
131 |
+
|
132 |
+
.event_metabox_setting li a:focus {
|
133 |
+
box-shadow: none;
|
134 |
+
}
|
135 |
+
|
136 |
+
.event_metabox_setting_container {
|
137 |
+
width: 80%;
|
138 |
+
float: left;
|
139 |
+
}
|
140 |
+
|
141 |
+
.event_auth_admin_table_booking td,
|
142 |
+
.event_auth_admin_table_booking th {
|
143 |
+
padding: 10px;
|
144 |
+
border: 1px solid;
|
145 |
+
}
|
146 |
+
|
147 |
+
.event_booking_status {
|
148 |
+
font-size: 13px;
|
149 |
+
font-weight: 500;
|
150 |
+
font-style: italic;
|
151 |
+
}
|
152 |
+
|
153 |
+
.event_booking_status.pending {
|
154 |
+
color: #DC3838;
|
155 |
+
}
|
156 |
+
|
157 |
+
.event_booking_status.processing {
|
158 |
+
color: #F9D209;
|
159 |
+
}
|
160 |
+
|
161 |
+
.event_booking_status.completed {
|
162 |
+
color: #38DC55;
|
163 |
+
}
|
164 |
+
|
165 |
+
/*booking details page*/
|
166 |
+
#event-booking-details {
|
167 |
+
margin: 20px;
|
168 |
+
}
|
169 |
+
|
170 |
+
#event-booking-details .booking-user-data, #event-booking-details .booking-data {
|
171 |
+
display: inline-block;
|
172 |
+
}
|
173 |
+
|
174 |
+
#event-booking-details .booking-user-data {
|
175 |
+
width: calc(100% - 200px);
|
176 |
+
position: relative;
|
177 |
+
}
|
178 |
+
|
179 |
+
#event-booking-details .booking-data {
|
180 |
+
width: 200px;
|
181 |
+
float: right;
|
182 |
+
}
|
183 |
+
|
184 |
+
#event-booking-details .booking-user-data .user-avatar, #event-booking-details .booking-user-data .order-user-meta {
|
185 |
+
display: inline-block;
|
186 |
+
}
|
187 |
+
|
188 |
+
#event-booking-details .booking-user-data .order-user-meta {
|
189 |
+
position: absolute;
|
190 |
+
margin-left: 20px;
|
191 |
+
}
|
192 |
+
|
193 |
+
#event-booking-details .booking-user-data .order-user-meta .user-display-name {
|
194 |
+
margin-bottom: 10px;
|
195 |
+
}
|
196 |
+
|
197 |
+
#event-booking-details .booking-user-data .order-user-meta .user-display-name a {
|
198 |
+
text-decoration: none;
|
199 |
+
margin-bottom: 10px;
|
200 |
+
}
|
201 |
+
|
202 |
+
#event-booking-details .booking-data .booking-data-number {
|
203 |
+
font-size: 24px;
|
204 |
+
font-weight: 700;
|
205 |
+
margin-bottom: 10px;
|
206 |
+
}
|
207 |
+
|
208 |
+
#event-booking-details .booking-data .booking-date {
|
209 |
+
font-size: 14px;
|
210 |
+
font-style: italic;
|
211 |
+
margin-bottom: 5px;
|
212 |
+
}
|
213 |
+
|
214 |
+
#event-booking-details table.booking-table {
|
215 |
+
width: 100%;
|
216 |
+
margin-top: 20px;
|
217 |
+
border: 1px solid #DDD;
|
218 |
+
}
|
219 |
+
|
220 |
+
#event-booking-details table.booking-table tr {
|
221 |
+
border-bottom: 1px solid #EEE;
|
222 |
+
}
|
223 |
+
|
224 |
+
#event-booking-details table.booking-table tr th {
|
225 |
+
height: 30px;
|
226 |
+
text-align: left;
|
227 |
+
font-size: 16px;
|
228 |
+
padding: 15px 10px;
|
229 |
+
border: 1px solid #DDD;
|
230 |
+
}
|
231 |
+
|
232 |
+
#event-booking-details table.booking-table tr td {
|
233 |
+
padding: 15px 10px;
|
234 |
+
font-size: 16px;
|
235 |
+
border: 1px solid #DDD;
|
236 |
+
}
|
237 |
+
|
238 |
+
#booking-status-side label {
|
239 |
+
display: block;
|
240 |
+
margin-bottom: 10px;
|
241 |
+
font-weight: bold;
|
242 |
+
}
|
243 |
+
|
244 |
+
#booking-status-side .booking-status-description {
|
245 |
+
font-size: smaller;
|
246 |
+
background: #CEE8FF;
|
247 |
+
padding: 5px;
|
248 |
+
font-style: italic;
|
249 |
+
color: #848484;
|
250 |
+
position: relative;
|
251 |
+
margin-top: 10px;
|
252 |
+
border-radius: 3px;
|
253 |
+
}
|
254 |
+
|
255 |
+
#booking-status-side .booking-status-description::before {
|
256 |
+
content: '';
|
257 |
+
border: 5px solid transparent;
|
258 |
+
border-bottom-color: #CEE8FF;
|
259 |
+
position: absolute;
|
260 |
+
top: -10px;
|
261 |
+
}
|
262 |
+
|
263 |
+
#booking-status-side textarea{
|
264 |
+
width: 100%;
|
265 |
+
}
|
266 |
+
|
267 |
+
.event-form-field .description {
|
268 |
+
font-style: italic;
|
269 |
+
margin-top: 5px;
|
270 |
+
}
|
271 |
+
|
272 |
+
.event_meta_box_container .event-meta-notice {
|
273 |
+
margin-left: 170px;
|
274 |
+
margin-top: -15px;
|
275 |
+
font-style: italic;
|
276 |
+
}
|
277 |
+
|
278 |
+
#event-time-metabox {
|
279 |
+
margin: 14px 0;
|
280 |
+
}
|
281 |
+
|
282 |
+
#event-time-metabox input {
|
283 |
+
display: inline-block;
|
284 |
+
}
|
285 |
+
|
286 |
+
#event-time-metabox #_date_start, #event-time-metabox #_date_end {
|
287 |
+
width: 100px;
|
288 |
+
margin-right: 4px;
|
289 |
+
}
|
290 |
+
|
291 |
+
#event-time-metabox #_time_start, #event-time-metabox #_time_end {
|
292 |
+
width: 75px;
|
293 |
+
}
|
294 |
+
|
295 |
+
#event-time-metabox .time-connect {
|
296 |
+
float: left;
|
297 |
+
margin: 5px 14px;
|
298 |
+
}
|
299 |
+
|
300 |
+
.post-type-event_auth_book #postbox-container-2{
|
301 |
+
margin-top: -20px;
|
302 |
+
}
|
assets/css/admin/admin.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.event_metabox_setting li a:focus,.tp_event_setting_wrapper a.nav-tab:focus{box-shadow:none}#event-settings-metabox .shortcode{min-width:300px}.tp_event_widget_tab li{display:inline-block}.tp_event_admin_widget{max-height:100px;overflow:scroll;border:1px solid #ddd;padding:5px 10px;max-width:100%;overflow-x:hidden;display:none}.tp_event_admin_widget.active{display:block}.tp_event_wrapper_content table th{text-align:left;min-width:300px;max-width:300px}.tp_event_wrapper_content table p{margin:2px;font-weight:400}.tp_event_wrapper_content table input[type=text] .tp_event_wrapper_content table input[type=email],.tp_event_wrapper_content table select{width:auto;min-width:250px}#checkout h3 a{font-size:12px;font-weight:600;padding:0 12px}#checkout h3 a.active{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.event_metabox_setting,.event_metabox_setting:before{background-color:#fdfdfd;border-right:1px solid #dfdfdf}#event-settings-metabox .inside{margin:0;padding:0;overflow:hidden}.event_meta_box_container{overflow:hidden}.event_meta_box_container .option_group{border-bottom:1px solid #eee}.event_meta_box_container .form-field{padding:5px 20px;overflow:hidden}.event_meta_box_container label{width:150px;float:left;display:block;font-size:12px}.event_meta_box_container input[type=text],.event_meta_box_container input[type=email],.event_meta_box_container input[type=number],.event_meta_box_container textarea{width:50%;float:left}.event_metabox_setting{position:relative;float:left;width:20%;margin:0;box-sizing:border-box}.event_metabox_setting:before{display:block;content:'';position:absolute;left:0;right:0;top:100%;width:100%;height:1000px}.event_metabox_setting li{margin:0}.event_metabox_setting li a{text-decoration:none;padding:8px 12px;display:block;line-height:20px;font-size:13px}#event-booking-details .booking-data,#event-booking-details .booking-user-data,#event-booking-details .booking-user-data .order-user-meta,#event-booking-details .booking-user-data .user-avatar,#event-time-metabox input{display:inline-block}.event_metabox_setting_container{width:80%;float:left}.event_auth_admin_table_booking td,.event_auth_admin_table_booking th{padding:10px;border:1px solid}.event_booking_status{font-size:13px;font-weight:500;font-style:italic}.event_booking_status.pending{color:#DC3838}.event_booking_status.processing{color:#F9D209}.event_booking_status.completed{color:#38DC55}#event-booking-details{margin:20px}#event-booking-details .booking-user-data{width:calc(100% - 200px);position:relative}#event-booking-details .booking-data{width:200px;float:right}#event-booking-details .booking-user-data .order-user-meta{position:absolute;margin-left:20px}#event-booking-details .booking-user-data .order-user-meta .user-display-name{margin-bottom:10px}#event-booking-details .booking-user-data .order-user-meta .user-display-name a{text-decoration:none;margin-bottom:10px}#event-booking-details .booking-data .booking-data-number{font-size:24px;font-weight:700;margin-bottom:10px}#event-booking-details .booking-data .booking-date{font-size:14px;font-style:italic;margin-bottom:5px}#event-booking-details table.booking-table{width:100%;margin-top:20px;border:1px solid #DDD}#event-booking-details table.booking-table tr{border-bottom:1px solid #EEE}#event-booking-details table.booking-table tr td,#event-booking-details table.booking-table tr th{padding:15px 10px;font-size:16px;border:1px solid #DDD}#event-booking-details table.booking-table tr th{height:30px;text-align:left}#booking-status-side label{display:block;margin-bottom:10px;font-weight:700}#booking-status-side .booking-status-description{font-size:smaller;background:#CEE8FF;padding:5px;font-style:italic;color:#848484;position:relative;margin-top:10px;border-radius:3px}#booking-status-side .booking-status-description::before{content:'';border:5px solid transparent;border-bottom-color:#CEE8FF;position:absolute;top:-10px}#booking-status-side textarea{width:100%}.event-form-field .description{font-style:italic;margin-top:5px}.event_meta_box_container .event-meta-notice{margin-left:170px;margin-top:-15px;font-style:italic}#event-time-metabox{margin:14px 0}#event-time-metabox #_date_end,#event-time-metabox #_date_start{width:100px;margin-right:4px}#event-time-metabox #_time_end,#event-time-metabox #_time_start{width:75px}#event-time-metabox .time-connect{float:left;margin:5px 14px}.post-type-event_auth_book #postbox-container-2{margin-top:-20px}
|
assets/css/datetimepicker/jquery.datetimepicker.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.xdsoft_datetimepicker{box-shadow:0 5px 15px -5px rgba(0,0,0,0.506);background:#fff;border-bottom:1px solid #bbb;border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:8px;padding-left:0;padding-top:2px;position:absolute;z-index:9999;-moz-box-sizing:border-box;box-sizing:border-box;display:none}.xdsoft_datetimepicker.xdsoft_rtl{padding:8px 0 8px 8px}.xdsoft_datetimepicker iframe{position:absolute;left:0;top:0;width:75px;height:210px;background:transparent;border:0}.xdsoft_datetimepicker button{border:none !important}.xdsoft_noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.xdsoft_noselect::selection{background:transparent}.xdsoft_noselect::-moz-selection{background:transparent}.xdsoft_datetimepicker.xdsoft_inline{display:inline-block;position:static;box-shadow:none}.xdsoft_datetimepicker *{-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0}.xdsoft_datetimepicker .xdsoft_datepicker,.xdsoft_datetimepicker .xdsoft_timepicker{display:none}.xdsoft_datetimepicker .xdsoft_datepicker.active,.xdsoft_datetimepicker .xdsoft_timepicker.active{display:block}.xdsoft_datetimepicker .xdsoft_datepicker{width:224px;float:left;margin-left:8px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{width:256px}.xdsoft_datetimepicker .xdsoft_timepicker{width:58px;float:left;text-align:center;margin-left:8px;margin-top:0}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{margin-top:8px;margin-bottom:3px}.xdsoft_datetimepicker .xdsoft_monthpicker{position:relative;text-align:center}.xdsoft_datetimepicker .xdsoft_label i,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC)}.xdsoft_datetimepicker .xdsoft_label i{opacity:.5;background-position:-92px -19px;display:inline-block;width:9px;height:20px;vertical-align:middle}.xdsoft_datetimepicker .xdsoft_prev{float:left;background-position:-20px 0}.xdsoft_datetimepicker .xdsoft_today_button{float:left;background-position:-70px 0;margin-left:5px}.xdsoft_datetimepicker .xdsoft_next{float:right;background-position:0 0}.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_today_button{background-color:transparent;background-repeat:no-repeat;border:0 none;cursor:pointer;display:block;height:30px;opacity:.5;-ms-filter:"alpha(opacity=50)";outline:medium none;overflow:hidden;padding:0;position:relative;text-indent:100%;white-space:nowrap;width:20px;min-width:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{float:none;background-position:-40px -15px;height:15px;width:30px;display:block;margin-left:14px;margin-top:7px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next{float:none;margin-left:0;margin-right:14px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{background-position:-40px 0;margin-bottom:7px;margin-top:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{height:151px;overflow:hidden;border-bottom:1px solid #ddd}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div{background:#f5f5f5;border-top:1px solid #ddd;color:#666;font-size:12px;text-align:center;border-collapse:collapse;cursor:pointer;border-bottom-width:0;height:25px;line-height:25px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:first-child{border-top-width:0}.xdsoft_datetimepicker .xdsoft_today_button:hover,.xdsoft_datetimepicker .xdsoft_next:hover,.xdsoft_datetimepicker .xdsoft_prev:hover{opacity:1;-ms-filter:"alpha(opacity=100)"}.xdsoft_datetimepicker .xdsoft_label{display:inline;position:relative;z-index:9999;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff;float:left;width:182px;text-align:center;cursor:pointer}.xdsoft_datetimepicker .xdsoft_label:hover>span{text-decoration:underline}.xdsoft_datetimepicker .xdsoft_label:hover i{opacity:1.0}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select{border:1px solid #ccc;position:absolute;right:0;top:30px;z-index:101;display:none;background:#fff;max-height:160px;overflow-y:hidden}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_monthselect{right:-7px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_yearselect{right:2px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#fff;background:#ff8000}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option{padding:2px 10px 2px 5px;text-decoration:none !important}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_month{width:100px;text-align:right}.xdsoft_datetimepicker .xdsoft_calendar{clear:both}.xdsoft_datetimepicker .xdsoft_year{width:48px;margin-left:5px}.xdsoft_datetimepicker .xdsoft_calendar table{border-collapse:collapse;width:100%}.xdsoft_datetimepicker .xdsoft_calendar td>div{padding-right:5px}.xdsoft_datetimepicker .xdsoft_calendar th{height:25px}.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{width:14.2857142%;background:#f5f5f5;border:1px solid #ddd;color:#666;font-size:12px;text-align:right;vertical-align:middle;padding:0;border-collapse:collapse;cursor:pointer;height:25px}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{width:12.5%}.xdsoft_datetimepicker .xdsoft_calendar th{background:#f1f1f1}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{color:#3af}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,.xdsoft_datetimepicker .xdsoft_time_box>div>div.xdsoft_disabled{opacity:.5;-ms-filter:"alpha(opacity=50)";cursor:default}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{opacity:.2;-ms-filter:"alpha(opacity=20)"}.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#fff !important;background:#ff8000 !important;box-shadow:none !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover{background:#3af !important;box-shadow:#178fe5 0 1px 3px 0 inset !important;color:#fff !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_disabled:hover{color:inherit !important;background:inherit !important;box-shadow:inherit !important}.xdsoft_datetimepicker .xdsoft_calendar th{font-weight:700;text-align:center;color:#999;cursor:default}.xdsoft_datetimepicker .xdsoft_copyright{color:#ccc !important;font-size:10px;clear:both;float:none;margin-left:8px}.xdsoft_datetimepicker .xdsoft_copyright a{color:#eee !important}.xdsoft_datetimepicker .xdsoft_copyright a:hover{color:#aaa !important}.xdsoft_time_box{position:relative;border:1px solid #ccc}.xdsoft_scrollbar>.xdsoft_scroller{background:#ccc !important;height:20px;border-radius:3px}.xdsoft_scrollbar{position:absolute;width:7px;right:0;top:0;bottom:0;cursor:pointer}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar{left:0;right:auto}.xdsoft_scroller_box{position:relative}.xdsoft_datetimepicker.xdsoft_dark{box-shadow:0 5px 15px -5px rgba(255,255,255,0.506);background:#000;border-bottom:1px solid #444;border-left:1px solid #333;border-right:1px solid #333;border-top:1px solid #333;color:#ccc}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{border-bottom:1px solid #222}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div{background:#0a0a0a;border-top:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{background-color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select{border:1px solid #333;background:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#000;background:#007fff}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==)}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0a0a0a;border:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0e0e0e}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{color:#c50}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#000 !important;background:#007fff !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{color:#666}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{color:#333 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{color:#111 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{color:#555 !important}.xdsoft_dark .xdsoft_time_box{border:1px solid #333}.xdsoft_dark .xdsoft_scrollbar>.xdsoft_scroller{background:#333 !important}.xdsoft_datetimepicker .xdsoft_save_selected{display:block;border:1px solid #ddd !important;margin-top:5px;width:100%;color:#454551;font-size:13px}.xdsoft_datetimepicker .blue-gradient-button{font-family:"museo-sans","Book Antiqua",sans-serif;font-size:12px;font-weight:300;color:#82878c;height:28px;position:relative;padding:4px 17px 4px 33px;border:1px solid #d7d8da;background:-moz-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(73%,#f4f8fa));background:-webkit-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-o-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-ms-linear-gradient(top,#fff 0,#f4f8fa 73%);background:linear-gradient(to bottom,#fff 0,#f4f8fa 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff',endColorstr='#f4f8fa',GradientType=0)}.xdsoft_datetimepicker .blue-gradient-button:hover,.xdsoft_datetimepicker .blue-gradient-button:focus,.xdsoft_datetimepicker .blue-gradient-button:hover span,.xdsoft_datetimepicker .blue-gradient-button:focus span{color:#454551;background:-moz-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f4f8fa),color-stop(73%,#FFF));background:-webkit-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-o-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-ms-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:linear-gradient(to bottom,#f4f8fa 0,#FFF 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f8fa',endColorstr='#FFF',GradientType=0)}
|
assets/css/frontend/events.css
ADDED
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tp_event_counter {
|
2 |
+
background-color: #ffb606;
|
3 |
+
height: auto;
|
4 |
+
overflow: hidden;
|
5 |
+
padding: 20px;
|
6 |
+
}
|
7 |
+
|
8 |
+
.countdown-section {
|
9 |
+
background: rgba(255, 255, 255, .2);
|
10 |
+
border: 1px solid rgba(255, 255, 255, .1);
|
11 |
+
padding: 10px;
|
12 |
+
}
|
13 |
+
|
14 |
+
.countdown-amount {
|
15 |
+
position: relative;
|
16 |
+
width: 50px;
|
17 |
+
height: 40px;
|
18 |
+
overflow: hidden;
|
19 |
+
}
|
20 |
+
|
21 |
+
.countdown-period {
|
22 |
+
|
23 |
+
}
|
24 |
+
|
25 |
+
.countdown-descr {
|
26 |
+
font-size: 13px !important;
|
27 |
+
}
|
28 |
+
|
29 |
+
@font-face {
|
30 |
+
font-family: 'icomoon';
|
31 |
+
src: url('../fonts/icomoon.eot?c3wvz6');
|
32 |
+
src: url('../fonts/icomoon.eot?c3wvz6#iefix') format('embedded-opentype'),
|
33 |
+
url('../fonts/icomoon.ttf?c3wvz6') format('truetype'),
|
34 |
+
url('../fonts/icomoon.woff?c3wvz6') format('woff'),
|
35 |
+
url('../fonts/icomoon.svg?c3wvz6#icomoon') format('svg');
|
36 |
+
font-weight: normal;
|
37 |
+
font-style: normal;
|
38 |
+
}
|
39 |
+
|
40 |
+
[class^="event-icon-"], [class*=" event-icon-"] {
|
41 |
+
/* use !important to prevent issues with browser extensions that change fonts */
|
42 |
+
font-family: 'icomoon' !important;
|
43 |
+
speak: none;
|
44 |
+
font-style: normal;
|
45 |
+
font-weight: normal;
|
46 |
+
font-variant: normal;
|
47 |
+
text-transform: none;
|
48 |
+
line-height: 1;
|
49 |
+
|
50 |
+
/* Better Font Rendering =========== */
|
51 |
+
-webkit-font-smoothing: antialiased;
|
52 |
+
-moz-osx-font-smoothing: grayscale;
|
53 |
+
}
|
54 |
+
|
55 |
+
.event-icon-spinner2:before {
|
56 |
+
content: "\e97b";
|
57 |
+
}
|
58 |
+
|
59 |
+
@keyframes anim-rotate {
|
60 |
+
0% {
|
61 |
+
transform: rotate(0);
|
62 |
+
}
|
63 |
+
100% {
|
64 |
+
transform: rotate(360deg);
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
.spinner {
|
69 |
+
display: inline-block;
|
70 |
+
line-height: 1;
|
71 |
+
margin: .5em;
|
72 |
+
animation: anim-rotate 2s infinite linear;
|
73 |
+
color: #fff;
|
74 |
+
text-shadow: 0 0 .25em rgba(255, 255, 255, .3);
|
75 |
+
}
|
76 |
+
|
77 |
+
/**end FONT**/
|
78 |
+
.event-lightbox-wrap .mfp-close {
|
79 |
+
display: none;
|
80 |
+
}
|
81 |
+
|
82 |
+
#event-lightbox {
|
83 |
+
display: none;
|
84 |
+
visibility: none;
|
85 |
+
position: relative;
|
86 |
+
width: 500px;
|
87 |
+
margin: 0 auto;
|
88 |
+
padding: 20px;
|
89 |
+
background-color: #fff;
|
90 |
+
}
|
91 |
+
|
92 |
+
#event-lightbox.event-fade {
|
93 |
+
display: block;
|
94 |
+
opacity: 0;
|
95 |
+
-webkit-backface-visibility: hidden;
|
96 |
+
/* ideally, transition speed should match zoom duration */
|
97 |
+
-webkit-transition: all 0.35s ease-in-out;
|
98 |
+
-moz-transition: all 0.35s ease-in-out;
|
99 |
+
-o-transition: all 0.35s ease-in-out;
|
100 |
+
transition: all 0.35s ease-in-out;
|
101 |
+
}
|
102 |
+
|
103 |
+
#event-lightbox.event-fade.event-in {
|
104 |
+
opacity: 1;
|
105 |
+
visibility: visible;
|
106 |
+
}
|
107 |
+
|
108 |
+
.tp-event-notice {
|
109 |
+
margin: 10px 0 2em !important;
|
110 |
+
position: relative;
|
111 |
+
list-style: none !important;
|
112 |
+
width: auto;
|
113 |
+
word-wrap: break-word;
|
114 |
+
}
|
115 |
+
|
116 |
+
.tp-event-notice.success {
|
117 |
+
color: #31708f;
|
118 |
+
background: #d9edf7;
|
119 |
+
padding: 10px 15px !important;
|
120 |
+
}
|
121 |
+
|
122 |
+
.tp-event-notice.error {
|
123 |
+
padding: 1em 2em 1em 1.5em !important;
|
124 |
+
background-color: #fdb494;
|
125 |
+
color: #515151;
|
126 |
+
border-left: 3px solid #c35a2c;
|
127 |
+
}
|
128 |
+
|
129 |
+
.form-row input,
|
130 |
+
.form-row input[type="text"],
|
131 |
+
.form-row input[type="email"],
|
132 |
+
.form-row input[type="checkbox"],
|
133 |
+
.form-row input[type="number"],
|
134 |
+
.form-row input[type="password"] {
|
135 |
+
border: 1px solid #eee;
|
136 |
+
background-color: transparent;
|
137 |
+
}
|
138 |
+
|
139 |
+
.form-row.has-error {
|
140 |
+
color: #a00;
|
141 |
+
}
|
142 |
+
|
143 |
+
.form-row.has-error input {
|
144 |
+
border-color: #a00;
|
145 |
+
}
|
146 |
+
|
147 |
+
.form-row.validated input {
|
148 |
+
border-color: #69bf29;
|
149 |
+
}
|
150 |
+
|
151 |
+
.event_auth_button {
|
152 |
+
background: #1a1a1a;
|
153 |
+
border: 0;
|
154 |
+
border-radius: 2px;
|
155 |
+
color: #fff;
|
156 |
+
font-family: Montserrat, "Helvetica Neue", sans-serif;
|
157 |
+
font-weight: 700;
|
158 |
+
letter-spacing: 0.046875em;
|
159 |
+
line-height: 1;
|
160 |
+
padding: 0.84375em 0.875em 0.78125em;
|
161 |
+
text-transform: uppercase;
|
162 |
+
}
|
163 |
+
|
164 |
+
.event_auth_button:hover {
|
165 |
+
background: #007acc;
|
166 |
+
cursor: pointer;
|
167 |
+
color: #fff;
|
168 |
+
}
|
169 |
+
|
170 |
+
.event_auth_payment_methods {
|
171 |
+
margin: 10px 0;
|
172 |
+
list-style: none;
|
173 |
+
padding: 10px;
|
174 |
+
border-radius: 3px;
|
175 |
+
background-color: #eee;
|
176 |
+
}
|
177 |
+
|
178 |
+
.single-tp_event .entry-summary {
|
179 |
+
margin-bottom: 0;
|
180 |
+
}
|
181 |
+
|
182 |
+
.post-type-archive-tp_event .entry-title, .tax-tp_event_category .entry-title, .entry-summary .entry-countdown, .entry-summary .entry-content {
|
183 |
+
margin-top: 20px;
|
184 |
+
}
|
185 |
+
|
186 |
+
.post-type-archive-tp_event ul, .tax-tp_event_category ul {
|
187 |
+
list-style-type: none;
|
188 |
+
}
|
189 |
+
|
190 |
+
.post-type-archive-tp_event ul li.tp_event, .tax-tp_event_category ul li.tp_event {
|
191 |
+
width: calc(50% - 30px);
|
192 |
+
float: left;
|
193 |
+
}
|
194 |
+
|
195 |
+
.post-type-archive-tp_event ul li.tp_event:nth-child(2n), .tax-tp_event_category ul li.tp_event:nth-child(2n) {
|
196 |
+
margin-left: 15px;
|
197 |
+
}
|
198 |
+
|
199 |
+
.post-type-archive-tp_event ul li.tp_event:nth-child(2n+1), .tax-tp_event_category ul li.tp_event:nth-child(2n+1) {
|
200 |
+
margin-right: 15px;
|
201 |
+
clear: both;
|
202 |
+
}
|
203 |
+
|
204 |
+
#content article.tp_single_event .entry-content {
|
205 |
+
float: none;
|
206 |
+
width: 100%;
|
207 |
+
}
|
208 |
+
|
209 |
+
.single-tp_event .entry-register a {
|
210 |
+
display: inline-block;
|
211 |
+
margin-top: -10px;
|
212 |
+
margin-bottom: 20px;
|
213 |
+
}
|
assets/css/frontend/events.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.tp_event_counter{background-color:#ffb606;height:auto;overflow:hidden;padding:20px}.countdown-section{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.1);padding:10px}.countdown-amount{position:relative;width:50px;height:40px;overflow:hidden}.countdown-descr{font-size:13px!important}@font-face{font-family:icomoon;src:url(../fonts/icomoon.eot?c3wvz6);src:url(../fonts/icomoon.eot?c3wvz6#iefix) format('embedded-opentype'),url(../fonts/icomoon.ttf?c3wvz6) format('truetype'),url(../fonts/icomoon.woff?c3wvz6) format('woff'),url(../fonts/icomoon.svg?c3wvz6#icomoon) format('svg');font-weight:400;font-style:normal}[class*=" event-icon-"],[class^=event-icon-]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.event-icon-spinner2:before{content:"\e97b"}@keyframes anim-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.spinner{display:inline-block;line-height:1;margin:.5em;animation:anim-rotate 2s infinite linear;color:#fff;text-shadow:0 0 .25em rgba(255,255,255,.3)}.event-lightbox-wrap .mfp-close{display:none}#event-lightbox{display:none;visibility:none;position:relative;width:500px;margin:0 auto;padding:20px;background-color:#fff}#event-lightbox.event-fade{display:block;opacity:0;-webkit-backface-visibility:hidden;-webkit-transition:all .35s ease-in-out;-moz-transition:all .35s ease-in-out;-o-transition:all .35s ease-in-out;transition:all .35s ease-in-out}#event-lightbox.event-fade.event-in{opacity:1;visibility:visible}.tp-event-notice{margin:10px 0 2em!important;position:relative;list-style:none!important;width:auto;word-wrap:break-word}.tp-event-notice.success{color:#31708f;background:#d9edf7;padding:10px 15px!important}.tp-event-notice.error{padding:1em 2em 1em 1.5em!important;background-color:#fdb494;color:#515151;border-left:3px solid #c35a2c}.form-row input,.form-row input[type=checkbox],.form-row input[type=number],.form-row input[type=password],.form-row input[type=text],.form-row input[type=email]{border:1px solid #eee;background-color:transparent}.form-row.has-error{color:#a00}.form-row.has-error input{border-color:#a00}.form-row.validated input{border-color:#69bf29}.event_auth_button{background:#1a1a1a;border:0;border-radius:2px;color:#fff;font-family:Montserrat,"Helvetica Neue",sans-serif;font-weight:700;letter-spacing:.046875em;line-height:1;padding:.84375em .875em .78125em;text-transform:uppercase}.event_auth_button:hover{background:#007acc;cursor:pointer;color:#fff}.event_auth_payment_methods{margin:10px 0;list-style:none;padding:10px;border-radius:3px;background-color:#eee}.single-tp_event .entry-summary{margin-bottom:0}.entry-summary .entry-content,.entry-summary .entry-countdown,.post-type-archive-tp_event .entry-title,.tax-tp_event_category .entry-title{margin-top:20px}.post-type-archive-tp_event ul,.tax-tp_event_category ul{list-style-type:none}.post-type-archive-tp_event ul li.tp_event,.tax-tp_event_category ul li.tp_event{width:calc(50% - 30px);float:left}.post-type-archive-tp_event ul li.tp_event:nth-child(2n),.tax-tp_event_category ul li.tp_event:nth-child(2n){margin-left:15px}.post-type-archive-tp_event ul li.tp_event:nth-child(2n+1),.tax-tp_event_category ul li.tp_event:nth-child(2n+1){margin-right:15px;clear:both}#content article.tp_single_event .entry-content{float:none;width:100%}.single-tp_event .entry-register a{display:inline-block;margin-top:-10px;margin-bottom:20px}
|
assets/fonts/glyphicons-halflings-regular.eot
ADDED
Binary file
|
assets/fonts/glyphicons-halflings-regular.svg
ADDED
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata></metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
7 |
+
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
8 |
+
<missing-glyph horiz-adv-x="500" />
|
9 |
+
<glyph horiz-adv-x="0" />
|
10 |
+
<glyph horiz-adv-x="400" />
|
11 |
+
<glyph unicode=" " />
|
12 |
+
<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
|
13 |
+
<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
|
14 |
+
<glyph unicode=" " />
|
15 |
+
<glyph unicode="¥" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
|
16 |
+
<glyph unicode=" " horiz-adv-x="650" />
|
17 |
+
<glyph unicode=" " horiz-adv-x="1300" />
|
18 |
+
<glyph unicode=" " horiz-adv-x="650" />
|
19 |
+
<glyph unicode=" " horiz-adv-x="1300" />
|
20 |
+
<glyph unicode=" " horiz-adv-x="433" />
|
21 |
+
<glyph unicode=" " horiz-adv-x="325" />
|
22 |
+
<glyph unicode=" " horiz-adv-x="216" />
|
23 |
+
<glyph unicode=" " horiz-adv-x="216" />
|
24 |
+
<glyph unicode=" " horiz-adv-x="162" />
|
25 |
+
<glyph unicode=" " horiz-adv-x="260" />
|
26 |
+
<glyph unicode=" " horiz-adv-x="72" />
|
27 |
+
<glyph unicode=" " horiz-adv-x="260" />
|
28 |
+
<glyph unicode=" " horiz-adv-x="325" />
|
29 |
+
<glyph unicode="€" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
|
30 |
+
<glyph unicode="₽" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
|
31 |
+
<glyph unicode="−" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
|
32 |
+
<glyph unicode="⌛" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
|
33 |
+
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
34 |
+
<glyph unicode="☁" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
|
35 |
+
<glyph unicode="⛺" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
|
36 |
+
<glyph unicode="✉" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
|
37 |
+
<glyph unicode="✏" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
|
38 |
+
<glyph unicode="" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
|
39 |
+
<glyph unicode="" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
|
40 |
+
<glyph unicode="" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
|
41 |
+
<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
|
42 |
+
<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
|
43 |
+
<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
|
44 |
+
<glyph unicode="" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
|
45 |
+
<glyph unicode="" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
|
46 |
+
<glyph unicode="" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
47 |
+
<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
|
48 |
+
<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
|
49 |
+
<glyph unicode="" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
|
50 |
+
<glyph unicode="" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
|
51 |
+
<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
|
52 |
+
<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
53 |
+
<glyph unicode="" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
|
54 |
+
<glyph unicode="" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
|
55 |
+
<glyph unicode="" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
|
56 |
+
<glyph unicode="" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
|
57 |
+
<glyph unicode="" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
|
58 |
+
<glyph unicode="" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
|
59 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
|
60 |
+
<glyph unicode="" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
|
61 |
+
<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
|
62 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
|
63 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
|
64 |
+
<glyph unicode="" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
|
65 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
|
66 |
+
<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
|
67 |
+
<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
|
68 |
+
<glyph unicode="" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
|
69 |
+
<glyph unicode="" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
|
70 |
+
<glyph unicode="" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
|
71 |
+
<glyph unicode="" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
|
72 |
+
<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
|
73 |
+
<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
|
74 |
+
<glyph unicode="" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
|
75 |
+
<glyph unicode="" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
|
76 |
+
<glyph unicode="" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
|
77 |
+
<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
|
78 |
+
<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
|
79 |
+
<glyph unicode="" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
|
80 |
+
<glyph unicode="" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
|
81 |
+
<glyph unicode="" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
|
82 |
+
<glyph unicode="" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
|
83 |
+
<glyph unicode="" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
|
84 |
+
<glyph unicode="" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
|
85 |
+
<glyph unicode="" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
|
86 |
+
<glyph unicode="" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
|
87 |
+
<glyph unicode="" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
|
88 |
+
<glyph unicode="" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
89 |
+
<glyph unicode="" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
90 |
+
<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
91 |
+
<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
92 |
+
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
93 |
+
<glyph unicode="" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
94 |
+
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
95 |
+
<glyph unicode="" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
|
96 |
+
<glyph unicode="" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
|
97 |
+
<glyph unicode="" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
|
98 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
|
99 |
+
<glyph unicode="" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
|
100 |
+
<glyph unicode="" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
|
101 |
+
<glyph unicode="" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
|
102 |
+
<glyph unicode="" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
|
103 |
+
<glyph unicode="" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
|
104 |
+
<glyph unicode="" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
|
105 |
+
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
|
106 |
+
<glyph unicode="" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
|
107 |
+
<glyph unicode="" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
|
108 |
+
<glyph unicode="" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
|
109 |
+
<glyph unicode="" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
|
110 |
+
<glyph unicode="" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
|
111 |
+
<glyph unicode="" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
|
112 |
+
<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
|
113 |
+
<glyph unicode="" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
114 |
+
<glyph unicode="" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
|
115 |
+
<glyph unicode="" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
|
116 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
|
117 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
|
118 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
|
119 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
|
120 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
|
121 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
|
122 |
+
<glyph unicode="" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
|
123 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
|
124 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
|
125 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
|
126 |
+
<glyph unicode="" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
|
127 |
+
<glyph unicode="" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
|
128 |
+
<glyph unicode="" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
|
129 |
+
<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
|
130 |
+
<glyph unicode="" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
|
131 |
+
<glyph unicode="" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
|
132 |
+
<glyph unicode="" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
|
133 |
+
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
|
134 |
+
<glyph unicode="" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
|
135 |
+
<glyph unicode="" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
|
136 |
+
<glyph unicode="" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
|
137 |
+
<glyph unicode="" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
|
138 |
+
<glyph unicode="" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
|
139 |
+
<glyph unicode="" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
|
140 |
+
<glyph unicode="" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
|
141 |
+
<glyph unicode="" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
|
142 |
+
<glyph unicode="" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
|
143 |
+
<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
|
144 |
+
<glyph unicode="" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
|
145 |
+
<glyph unicode="" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
|
146 |
+
<glyph unicode="" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
|
147 |
+
<glyph unicode="" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
148 |
+
<glyph unicode="" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
|
149 |
+
<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
|
150 |
+
<glyph unicode="" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
|
151 |
+
<glyph unicode="" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
152 |
+
<glyph unicode="" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
|
153 |
+
<glyph unicode="" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
|
154 |
+
<glyph unicode="" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
|
155 |
+
<glyph unicode="" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
|
156 |
+
<glyph unicode="" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
|
157 |
+
<glyph unicode="" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
|
158 |
+
<glyph unicode="" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
|
159 |
+
<glyph unicode="" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
|
160 |
+
<glyph unicode="" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
|
161 |
+
<glyph unicode="" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
162 |
+
<glyph unicode="" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
|
163 |
+
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
|
164 |
+
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
|
165 |
+
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
|
166 |
+
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
|
167 |
+
<glyph unicode="" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
|
168 |
+
<glyph unicode="" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
|
169 |
+
<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
|
170 |
+
<glyph unicode="" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
|
171 |
+
<glyph unicode="" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
|
172 |
+
<glyph unicode="" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
|
173 |
+
<glyph unicode="" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
|
174 |
+
<glyph unicode="" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
|
175 |
+
<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
|
176 |
+
<glyph unicode="" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
|
177 |
+
<glyph unicode="" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
|
178 |
+
<glyph unicode="" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
|
179 |
+
<glyph unicode="" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
|
180 |
+
<glyph unicode="" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
|
181 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
182 |
+
<glyph unicode="" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
|
183 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
|
184 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
|
185 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
|
186 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
|
187 |
+
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
|
188 |
+
<glyph unicode="" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
|
189 |
+
<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
|
190 |
+
<glyph unicode="" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
|
191 |
+
<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
|
192 |
+
<glyph unicode="" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
|
193 |
+
<glyph unicode="" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
|
194 |
+
<glyph unicode="" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
|
195 |
+
<glyph unicode="" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
|
196 |
+
<glyph unicode="" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
|
197 |
+
<glyph unicode="" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
|
198 |
+
<glyph unicode="" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
|
199 |
+
<glyph unicode="" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
|
200 |
+
<glyph unicode="" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
|
201 |
+
<glyph unicode="" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
|
202 |
+
<glyph unicode="" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
|
203 |
+
<glyph unicode="" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
|
204 |
+
<glyph unicode="" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
|
205 |
+
<glyph unicode="" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
|
206 |
+
<glyph unicode="" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
|
207 |
+
<glyph unicode="" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
|
208 |
+
<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
|
209 |
+
<glyph unicode="" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
|
210 |
+
<glyph unicode="" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
|
211 |
+
<glyph unicode="" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
|
212 |
+
<glyph unicode="" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
|
213 |
+
<glyph unicode="" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
|
214 |
+
<glyph unicode="" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
|
215 |
+
<glyph unicode="" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
216 |
+
<glyph unicode="" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
|
217 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
|
218 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
|
219 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
|
220 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
|
221 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
|
222 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
|
223 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
|
224 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
|
225 |
+
<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
|
226 |
+
<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
|
227 |
+
<glyph unicode="" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
|
228 |
+
<glyph unicode="" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
|
229 |
+
<glyph unicode="" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
|
230 |
+
<glyph unicode="" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
|
231 |
+
<glyph unicode="" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
|
232 |
+
<glyph unicode="" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
|
233 |
+
<glyph unicode="" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
|
234 |
+
<glyph unicode="" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
|
235 |
+
<glyph unicode="" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
|
236 |
+
<glyph unicode="" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
|
237 |
+
<glyph unicode="" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
|
238 |
+
<glyph unicode="" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
239 |
+
<glyph unicode="" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
240 |
+
<glyph unicode="" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
241 |
+
<glyph unicode="" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
242 |
+
<glyph unicode="" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
243 |
+
<glyph unicode="" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
244 |
+
<glyph unicode="" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
|
245 |
+
<glyph unicode="" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
|
246 |
+
<glyph unicode="" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
|
247 |
+
<glyph unicode="" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
|
248 |
+
<glyph unicode="" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
|
249 |
+
<glyph unicode="" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
|
250 |
+
<glyph unicode="" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
|
251 |
+
<glyph unicode="" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
|
252 |
+
<glyph unicode="" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
|
253 |
+
<glyph unicode="" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
|
254 |
+
<glyph unicode="" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
|
255 |
+
<glyph unicode="" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
|
256 |
+
<glyph unicode="" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
|
257 |
+
<glyph unicode="" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
|
258 |
+
<glyph unicode="" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
|
259 |
+
<glyph unicode="" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
260 |
+
<glyph unicode="" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
|
261 |
+
<glyph unicode="" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
|
262 |
+
<glyph unicode="" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
|
263 |
+
<glyph unicode="" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
|
264 |
+
<glyph unicode="" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
|
265 |
+
<glyph unicode="" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
|
266 |
+
<glyph unicode="" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
|
267 |
+
<glyph unicode="" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
|
268 |
+
<glyph unicode="" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
|
269 |
+
<glyph unicode="" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
|
270 |
+
<glyph unicode="" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
271 |
+
<glyph unicode="" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
|
272 |
+
<glyph unicode="" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
273 |
+
<glyph unicode="" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
|
274 |
+
<glyph unicode="" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
|
275 |
+
<glyph unicode="" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
|
276 |
+
<glyph unicode="" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
|
277 |
+
<glyph unicode="" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
|
278 |
+
<glyph unicode="" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
|
279 |
+
<glyph unicode="" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
|
280 |
+
<glyph unicode="" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
|
281 |
+
<glyph unicode="" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
|
282 |
+
<glyph unicode="" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
|
283 |
+
<glyph unicode="" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
|
284 |
+
<glyph unicode="" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
|
285 |
+
<glyph unicode="🔑" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
|
286 |
+
<glyph unicode="🚪" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
|
287 |
+
</font>
|
288 |
+
</defs></svg>
|
assets/fonts/glyphicons-halflings-regular.ttf
ADDED
Binary file
|
assets/fonts/glyphicons-halflings-regular.woff
ADDED
Binary file
|
assets/fonts/glyphicons-halflings-regular.woff2
ADDED
Binary file
|
assets/fonts/icomoon.eot
ADDED
Binary file
|
assets/fonts/icomoon.svg
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by IcoMoon</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="icomoon" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " horiz-adv-x="512" d="" />
|
10 |
+
<glyph unicode="" glyph-name="spinner2" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" />
|
11 |
+
</font></defs></svg>
|
assets/fonts/icomoon.ttf
ADDED
Binary file
|
assets/fonts/icomoon.woff
ADDED
Binary file
|
assets/images/map-marker.png
ADDED
Binary file
|
assets/js/admin/admin-events.js
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function ($) {
|
2 |
+
"use strict";
|
3 |
+
var TP_Event_Admin = {};
|
4 |
+
|
5 |
+
TP_Event_Admin.init = function () {
|
6 |
+
|
7 |
+
// widgets
|
8 |
+
var forms = $('#widgets-right .widget-content');
|
9 |
+
for (var i = 0; i <= forms.length; i++) {
|
10 |
+
var form = $(forms[i]);
|
11 |
+
|
12 |
+
form.find('.tp_event_admin_widget:first').addClass('active');
|
13 |
+
|
14 |
+
form.find('.tp_event_widget_tab li a:first').addClass('button-primary');
|
15 |
+
$(document).on('click', '.tp_event_widget_tab li a', function (e) {
|
16 |
+
e.preventDefault();
|
17 |
+
var tab_content = $(this).attr('data-tab'),
|
18 |
+
widget_content = $(this).parents('.widget-content'),
|
19 |
+
parent = $(this).parents('.tp_event_widget_tab');
|
20 |
+
parent.find('li a').removeClass('button-primary');
|
21 |
+
$(this).addClass('button-primary');
|
22 |
+
|
23 |
+
widget_content.find('.tp_event_admin_widget').removeClass('active');
|
24 |
+
widget_content.find('.tp_event_admin_widget[data-status="' + tab_content + '"]').addClass('active');
|
25 |
+
return false;
|
26 |
+
});
|
27 |
+
}
|
28 |
+
|
29 |
+
$('input[name="thimpress_events_email_enable"]').on('click', function () {
|
30 |
+
var toggle = !($(this).is(':checked'));
|
31 |
+
$('.email-setting-form-name, .email-setting-email-form, .email-setting-subject').toggleClass('hide-if-js', toggle);
|
32 |
+
});
|
33 |
+
|
34 |
+
$('input[name="thimpress_events_paypal_enable"]').on('click', function () {
|
35 |
+
var toggle = !($(this).is(':checked'));
|
36 |
+
$('.paypal-production-email, .paypal-sandbox-mode, .paypal-sandbox-email').toggleClass('hide-if-js', toggle);
|
37 |
+
});
|
38 |
+
|
39 |
+
$('input[name="thimpress_events_allow_register_event"]').on('click', function () {
|
40 |
+
var toggle = !($(this).is(':checked'));
|
41 |
+
$('.setting-currency, .setting-currency-position, .setting-currency-thousand, .setting-currency-separator, .setting-number-decimals').toggleClass('hide-if-js', toggle);
|
42 |
+
});
|
43 |
+
|
44 |
+
$(document).on('click', '.tp-event-dismiss-notice button', function (event) {
|
45 |
+
var parent = $(this).closest('.tp-event-dismiss-notice');
|
46 |
+
if (parent.length) {
|
47 |
+
event.preventDefault();
|
48 |
+
$.ajax({
|
49 |
+
url : ajaxurl,
|
50 |
+
type: 'POST',
|
51 |
+
data: {
|
52 |
+
action: 'event_remove_notice'
|
53 |
+
}
|
54 |
+
})
|
55 |
+
}
|
56 |
+
});
|
57 |
+
|
58 |
+
|
59 |
+
TP_Event_Admin.admin_meta_boxes.init();
|
60 |
+
};
|
61 |
+
|
62 |
+
// event meta boxes
|
63 |
+
TP_Event_Admin.admin_meta_boxes = {
|
64 |
+
init : function () {
|
65 |
+
var _doc = $(document);
|
66 |
+
_doc.on('click', '.event_meta_panel .open-extra', this.open_extra);
|
67 |
+
this.datetimepicker();
|
68 |
+
},
|
69 |
+
open_extra : function (e) {
|
70 |
+
e.preventDefault();
|
71 |
+
var _this = $(this),
|
72 |
+
_input_target = $('#' + _this.attr('data-target')),
|
73 |
+
_group = _input_target.parents('.option_group:first'),
|
74 |
+
_data_text = _this.attr('data-text'),
|
75 |
+
_text = _this.text();
|
76 |
+
|
77 |
+
if (_input_target.val() === 'yes') {
|
78 |
+
_group.addClass('hide-if-js');
|
79 |
+
_input_target.val('');
|
80 |
+
} else {
|
81 |
+
_group.removeClass('hide-if-js');
|
82 |
+
_input_target.val('yes');
|
83 |
+
}
|
84 |
+
|
85 |
+
_this.attr('data-text', _text).text(_data_text);
|
86 |
+
},
|
87 |
+
datetimepicker: function () {
|
88 |
+
var _date_from = $('#_date_start'),
|
89 |
+
_time_from = $('#_time_start'),
|
90 |
+
_date_end = $('#_date_end'),
|
91 |
+
_time_end = $('#_time_end');
|
92 |
+
|
93 |
+
_date_from.datetimepicker({
|
94 |
+
timepicker: false,
|
95 |
+
format : 'Y-m-d',
|
96 |
+
onShow : function (ct) {
|
97 |
+
this.setOptions({
|
98 |
+
maxDate: _date_end.val() ? _date_end.val() : false
|
99 |
+
});
|
100 |
+
}
|
101 |
+
});
|
102 |
+
_time_from.datetimepicker({
|
103 |
+
datepicker: false,
|
104 |
+
format : 'H:i'
|
105 |
+
});
|
106 |
+
_date_end.datetimepicker({
|
107 |
+
timepicker: false,
|
108 |
+
format : 'Y-m-d',
|
109 |
+
setDate : '+1',
|
110 |
+
onShow : function (ct) {
|
111 |
+
this.setOptions({
|
112 |
+
minDate: _date_from.val() ? _date_from.val() : false
|
113 |
+
});
|
114 |
+
}
|
115 |
+
});
|
116 |
+
_time_end.datetimepicker({
|
117 |
+
datepicker: false,
|
118 |
+
format : 'H:i'
|
119 |
+
});
|
120 |
+
}
|
121 |
+
|
122 |
+
};
|
123 |
+
|
124 |
+
$(document).ready(function () {
|
125 |
+
TP_Event_Admin.init();
|
126 |
+
});
|
127 |
+
})(jQuery);
|
assets/js/admin/admin-events.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(a){"use strict";var b={};b.init=function(){for(var c=a("#widgets-right .widget-content"),d=0;d<=c.length;d++){var e=a(c[d]);e.find(".tp_event_admin_widget:first").addClass("active"),e.find(".tp_event_widget_tab li a:first").addClass("button-primary"),a(document).on("click",".tp_event_widget_tab li a",function(b){b.preventDefault();var c=a(this).attr("data-tab"),d=a(this).parents(".widget-content"),e=a(this).parents(".tp_event_widget_tab");return e.find("li a").removeClass("button-primary"),a(this).addClass("button-primary"),d.find(".tp_event_admin_widget").removeClass("active"),d.find('.tp_event_admin_widget[data-status="'+c+'"]').addClass("active"),!1})}a('input[name="thimpress_events_email_enable"]').on("click",function(){var b=!a(this).is(":checked");a(".email-setting-form-name, .email-setting-email-form, .email-setting-subject").toggleClass("hide-if-js",b)}),a('input[name="thimpress_events_paypal_enable"]').on("click",function(){var b=!a(this).is(":checked");a(".paypal-production-email, .paypal-sandbox-mode, .paypal-sandbox-email").toggleClass("hide-if-js",b)}),a('input[name="thimpress_events_allow_register_event"]').on("click",function(){var b=!a(this).is(":checked");a(".setting-currency, .setting-currency-position, .setting-currency-thousand, .setting-currency-separator, .setting-number-decimals").toggleClass("hide-if-js",b)}),a(document).on("click",".tp-event-dismiss-notice button",function(b){var c=a(this).closest(".tp-event-dismiss-notice");c.length&&(b.preventDefault(),a.ajax({url:ajaxurl,type:"POST",data:{action:"event_remove_notice"}}))}),b.admin_meta_boxes.init()},b.admin_meta_boxes={init:function(){var b=a(document);b.on("click",".event_meta_panel .open-extra",this.open_extra),this.datetimepicker()},open_extra:function(b){b.preventDefault();var c=a(this),d=a("#"+c.attr("data-target")),e=d.parents(".option_group:first"),f=c.attr("data-text"),g=c.text();"yes"===d.val()?(e.addClass("hide-if-js"),d.val("")):(e.removeClass("hide-if-js"),d.val("yes")),c.attr("data-text",g).text(f)},datetimepicker:function(){var b=a("#_date_start"),c=a("#_time_start"),d=a("#_date_end"),e=a("#_time_end");b.datetimepicker({timepicker:!1,format:"Y-m-d",onShow:function(a){this.setOptions({maxDate:!!d.val()&&d.val()})}}),c.datetimepicker({datepicker:!1,format:"H:i"}),d.datetimepicker({timepicker:!1,format:"Y-m-d",setDate:"+1",onShow:function(a){this.setOptions({minDate:!!b.val()&&b.val()})}}),e.datetimepicker({datepicker:!1,format:"H:i"})}},a(document).ready(function(){b.init()})}(jQuery);
|
assets/js/datetimepicker/jquery.datetimepicker.full.js
ADDED
@@ -0,0 +1,3192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015
|
3 |
+
* @version 1.3.3
|
4 |
+
*
|
5 |
+
* Date formatter utility library that allows formatting date/time variables or Date objects using PHP DateTime format.
|
6 |
+
* @see http://php.net/manual/en/function.date.php
|
7 |
+
*
|
8 |
+
* For more JQuery plugins visit http://plugins.krajee.com
|
9 |
+
* For more Yii related demos visit http://demos.krajee.com
|
10 |
+
*/
|
11 |
+
var DateFormatter;
|
12 |
+
(function () {
|
13 |
+
"use strict";
|
14 |
+
|
15 |
+
var _compare, _lpad, _extend, defaultSettings, DAY, HOUR;
|
16 |
+
DAY = 1000 * 60 * 60 * 24;
|
17 |
+
HOUR = 3600;
|
18 |
+
|
19 |
+
_compare = function (str1, str2) {
|
20 |
+
return typeof(str1) === 'string' && typeof(str2) === 'string' && str1.toLowerCase() === str2.toLowerCase();
|
21 |
+
};
|
22 |
+
_lpad = function (value, length, char) {
|
23 |
+
var chr = char || '0', val = value.toString();
|
24 |
+
return val.length < length ? _lpad(chr + val, length) : val;
|
25 |
+
};
|
26 |
+
_extend = function (out) {
|
27 |
+
var i, obj;
|
28 |
+
out = out || {};
|
29 |
+
for (i = 1; i < arguments.length; i++) {
|
30 |
+
obj = arguments[i];
|
31 |
+
if (!obj) {
|
32 |
+
continue;
|
33 |
+
}
|
34 |
+
for (var key in obj) {
|
35 |
+
if (obj.hasOwnProperty(key)) {
|
36 |
+
if (typeof obj[key] === 'object') {
|
37 |
+
_extend(out[key], obj[key]);
|
38 |
+
} else {
|
39 |
+
out[key] = obj[key];
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
return out;
|
45 |
+
};
|
46 |
+
defaultSettings = {
|
47 |
+
dateSettings: {
|
48 |
+
days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
49 |
+
daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
50 |
+
months: [
|
51 |
+
'January', 'February', 'March', 'April', 'May', 'June', 'July',
|
52 |
+
'August', 'September', 'October', 'November', 'December'
|
53 |
+
],
|
54 |
+
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
55 |
+
meridiem: ['AM', 'PM'],
|
56 |
+
ordinal: function (number) {
|
57 |
+
var n = number % 10, suffixes = {1: 'st', 2: 'nd', 3: 'rd'};
|
58 |
+
return Math.floor(number % 100 / 10) === 1 || !suffixes[n] ? 'th' : suffixes[n];
|
59 |
+
}
|
60 |
+
},
|
61 |
+
separators: /[ \-+\/\.T:@]/g,
|
62 |
+
validParts: /[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,
|
63 |
+
intParts: /[djwNzmnyYhHgGis]/g,
|
64 |
+
tzParts: /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
|
65 |
+
tzClip: /[^-+\dA-Z]/g
|
66 |
+
};
|
67 |
+
|
68 |
+
DateFormatter = function (options) {
|
69 |
+
var self = this, config = _extend(defaultSettings, options);
|
70 |
+
self.dateSettings = config.dateSettings;
|
71 |
+
self.separators = config.separators;
|
72 |
+
self.validParts = config.validParts;
|
73 |
+
self.intParts = config.intParts;
|
74 |
+
self.tzParts = config.tzParts;
|
75 |
+
self.tzClip = config.tzClip;
|
76 |
+
};
|
77 |
+
|
78 |
+
DateFormatter.prototype = {
|
79 |
+
constructor: DateFormatter,
|
80 |
+
parseDate: function (vDate, vFormat) {
|
81 |
+
var self = this, vFormatParts, vDateParts, i, vDateFlag = false, vTimeFlag = false, vDatePart, iDatePart,
|
82 |
+
vSettings = self.dateSettings, vMonth, vMeriIndex, vMeriOffset, len, mer,
|
83 |
+
out = {date: null, year: null, month: null, day: null, hour: 0, min: 0, sec: 0};
|
84 |
+
if (!vDate) {
|
85 |
+
return undefined;
|
86 |
+
}
|
87 |
+
if (vDate instanceof Date) {
|
88 |
+
return vDate;
|
89 |
+
}
|
90 |
+
if (typeof vDate === 'number') {
|
91 |
+
return new Date(vDate);
|
92 |
+
}
|
93 |
+
if (vFormat === 'U') {
|
94 |
+
i = parseInt(vDate);
|
95 |
+
return i ? new Date(i * 1000) : vDate;
|
96 |
+
}
|
97 |
+
if (typeof vDate !== 'string') {
|
98 |
+
return '';
|
99 |
+
}
|
100 |
+
vFormatParts = vFormat.match(self.validParts);
|
101 |
+
if (!vFormatParts || vFormatParts.length === 0) {
|
102 |
+
throw new Error("Invalid date format definition.");
|
103 |
+
}
|
104 |
+
vDateParts = vDate.replace(self.separators, '\0').split('\0');
|
105 |
+
for (i = 0; i < vDateParts.length; i++) {
|
106 |
+
vDatePart = vDateParts[i];
|
107 |
+
iDatePart = parseInt(vDatePart);
|
108 |
+
switch (vFormatParts[i]) {
|
109 |
+
case 'y':
|
110 |
+
case 'Y':
|
111 |
+
len = vDatePart.length;
|
112 |
+
if (len === 2) {
|
113 |
+
out.year = parseInt((iDatePart < 70 ? '20' : '19') + vDatePart);
|
114 |
+
} else if (len === 4) {
|
115 |
+
out.year = iDatePart;
|
116 |
+
}
|
117 |
+
vDateFlag = true;
|
118 |
+
break;
|
119 |
+
case 'm':
|
120 |
+
case 'n':
|
121 |
+
case 'M':
|
122 |
+
case 'F':
|
123 |
+
if (isNaN(vDatePart)) {
|
124 |
+
vMonth = vSettings.monthsShort.indexOf(vDatePart);
|
125 |
+
if (vMonth > -1) {
|
126 |
+
out.month = vMonth + 1;
|
127 |
+
}
|
128 |
+
vMonth = vSettings.months.indexOf(vDatePart);
|
129 |
+
if (vMonth > -1) {
|
130 |
+
out.month = vMonth + 1;
|
131 |
+
}
|
132 |
+
} else {
|
133 |
+
if (iDatePart >= 1 && iDatePart <= 12) {
|
134 |
+
out.month = iDatePart;
|
135 |
+
}
|
136 |
+
}
|
137 |
+
vDateFlag = true;
|
138 |
+
break;
|
139 |
+
case 'd':
|
140 |
+
case 'j':
|
141 |
+
if (iDatePart >= 1 && iDatePart <= 31) {
|
142 |
+
out.day = iDatePart;
|
143 |
+
}
|
144 |
+
vDateFlag = true;
|
145 |
+
break;
|
146 |
+
case 'g':
|
147 |
+
case 'h':
|
148 |
+
vMeriIndex = (vFormatParts.indexOf('a') > -1) ? vFormatParts.indexOf('a') :
|
149 |
+
(vFormatParts.indexOf('A') > -1) ? vFormatParts.indexOf('A') : -1;
|
150 |
+
mer = vDateParts[vMeriIndex];
|
151 |
+
if (vMeriIndex > -1) {
|
152 |
+
vMeriOffset = _compare(mer, vSettings.meridiem[0]) ? 0 :
|
153 |
+
(_compare(mer, vSettings.meridiem[1]) ? 12 : -1);
|
154 |
+
if (iDatePart >= 1 && iDatePart <= 12 && vMeriOffset > -1) {
|
155 |
+
out.hour = iDatePart + vMeriOffset;
|
156 |
+
} else if (iDatePart >= 0 && iDatePart <= 23) {
|
157 |
+
out.hour = iDatePart;
|
158 |
+
}
|
159 |
+
} else if (iDatePart >= 0 && iDatePart <= 23) {
|
160 |
+
out.hour = iDatePart;
|
161 |
+
}
|
162 |
+
vTimeFlag = true;
|
163 |
+
break;
|
164 |
+
case 'G':
|
165 |
+
case 'H':
|
166 |
+
if (iDatePart >= 0 && iDatePart <= 23) {
|
167 |
+
out.hour = iDatePart;
|
168 |
+
}
|
169 |
+
vTimeFlag = true;
|
170 |
+
break;
|
171 |
+
case 'i':
|
172 |
+
if (iDatePart >= 0 && iDatePart <= 59) {
|
173 |
+
out.min = iDatePart;
|
174 |
+
}
|
175 |
+
vTimeFlag = true;
|
176 |
+
break;
|
177 |
+
case 's':
|
178 |
+
if (iDatePart >= 0 && iDatePart <= 59) {
|
179 |
+
out.sec = iDatePart;
|
180 |
+
}
|
181 |
+
vTimeFlag = true;
|
182 |
+
break;
|
183 |
+
}
|
184 |
+
}
|
185 |
+
if (vDateFlag === true && out.year && out.month && out.day) {
|
186 |
+
out.date = new Date(out.year, out.month - 1, out.day, out.hour, out.min, out.sec, 0);
|
187 |
+
} else {
|
188 |
+
if (vTimeFlag !== true) {
|
189 |
+
return false;
|
190 |
+
}
|
191 |
+
out.date = new Date(0, 0, 0, out.hour, out.min, out.sec, 0);
|
192 |
+
}
|
193 |
+
return out.date;
|
194 |
+
},
|
195 |
+
guessDate: function (vDateStr, vFormat) {
|
196 |
+
if (typeof vDateStr !== 'string') {
|
197 |
+
return vDateStr;
|
198 |
+
}
|
199 |
+
var self = this, vParts = vDateStr.replace(self.separators, '\0').split('\0'), vPattern = /^[djmn]/g,
|
200 |
+
vFormatParts = vFormat.match(self.validParts), vDate = new Date(), vDigit = 0, vYear, i, iPart, iSec;
|
201 |
+
|
202 |
+
if (!vPattern.test(vFormatParts[0])) {
|
203 |
+
return vDateStr;
|
204 |
+
}
|
205 |
+
|
206 |
+
for (i = 0; i < vParts.length; i++) {
|
207 |
+
vDigit = 2;
|
208 |
+
iPart = vParts[i];
|
209 |
+
iSec = parseInt(iPart.substr(0, 2));
|
210 |
+
switch (i) {
|
211 |
+
case 0:
|
212 |
+
if (vFormatParts[0] === 'm' || vFormatParts[0] === 'n') {
|
213 |
+
vDate.setMonth(iSec - 1);
|
214 |
+
} else {
|
215 |
+
vDate.setDate(iSec);
|
216 |
+
}
|
217 |
+
break;
|
218 |
+
case 1:
|
219 |
+
if (vFormatParts[0] === 'm' || vFormatParts[0] === 'n') {
|
220 |
+
vDate.setDate(iSec);
|
221 |
+
} else {
|
222 |
+
vDate.setMonth(iSec - 1);
|
223 |
+
}
|
224 |
+
break;
|
225 |
+
case 2:
|
226 |
+
vYear = vDate.getFullYear();
|
227 |
+
if (iPart.length < 4) {
|
228 |
+
vDate.setFullYear(parseInt(vYear.toString().substr(0, 4 - iPart.length) + iPart));
|
229 |
+
vDigit = iPart.length;
|
230 |
+
} else {
|
231 |
+
vDate.setFullYear = parseInt(iPart.substr(0, 4));
|
232 |
+
vDigit = 4;
|
233 |
+
}
|
234 |
+
break;
|
235 |
+
case 3:
|
236 |
+
vDate.setHours(iSec);
|
237 |
+
break;
|
238 |
+
case 4:
|
239 |
+
vDate.setMinutes(iSec);
|
240 |
+
break;
|
241 |
+
case 5:
|
242 |
+
vDate.setSeconds(iSec);
|
243 |
+
break;
|
244 |
+
}
|
245 |
+
if (iPart.substr(vDigit).length > 0) {
|
246 |
+
vParts.splice(i + 1, 0, iPart.substr(vDigit));
|
247 |
+
}
|
248 |
+
}
|
249 |
+
return vDate;
|
250 |
+
},
|
251 |
+
parseFormat: function (vChar, vDate) {
|
252 |
+
var self = this, vSettings = self.dateSettings, fmt, backspace = /\\?(.?)/gi, doFormat = function (t, s) {
|
253 |
+
return fmt[t] ? fmt[t]() : s;
|
254 |
+
};
|
255 |
+
fmt = {
|
256 |
+
/////////
|
257 |
+
// DAY //
|
258 |
+
/////////
|
259 |
+
/**
|
260 |
+
* Day of month with leading 0: `01..31`
|
261 |
+
* @return {string}
|
262 |
+
*/
|
263 |
+
d: function () {
|
264 |
+
return _lpad(fmt.j(), 2);
|
265 |
+
},
|
266 |
+
/**
|
267 |
+
* Shorthand day name: `Mon...Sun`
|
268 |
+
* @return {string}
|
269 |
+
*/
|
270 |
+
D: function () {
|
271 |
+
return vSettings.daysShort[fmt.w()];
|
272 |
+
},
|
273 |
+
/**
|
274 |
+
* Day of month: `1..31`
|
275 |
+
* @return {number}
|
276 |
+
*/
|
277 |
+
j: function () {
|
278 |
+
return vDate.getDate();
|
279 |
+
},
|
280 |
+
/**
|
281 |
+
* Full day name: `Monday...Sunday`
|
282 |
+
* @return {number}
|
283 |
+
*/
|
284 |
+
l: function () {
|
285 |
+
return vSettings.days[fmt.w()];
|
286 |
+
},
|
287 |
+
/**
|
288 |
+
* ISO-8601 day of week: `1[Mon]..7[Sun]`
|
289 |
+
* @return {number}
|
290 |
+
*/
|
291 |
+
N: function () {
|
292 |
+
return fmt.w() || 7;
|
293 |
+
},
|
294 |
+
/**
|
295 |
+
* Day of week: `0[Sun]..6[Sat]`
|
296 |
+
* @return {number}
|
297 |
+
*/
|
298 |
+
w: function () {
|
299 |
+
return vDate.getDay();
|
300 |
+
},
|
301 |
+
/**
|
302 |
+
* Day of year: `0..365`
|
303 |
+
* @return {number}
|
304 |
+
*/
|
305 |
+
z: function () {
|
306 |
+
var a = new Date(fmt.Y(), fmt.n() - 1, fmt.j()), b = new Date(fmt.Y(), 0, 1);
|
307 |
+
return Math.round((a - b) / DAY);
|
308 |
+
},
|
309 |
+
|
310 |
+
//////////
|
311 |
+
// WEEK //
|
312 |
+
//////////
|
313 |
+
/**
|
314 |
+
* ISO-8601 week number
|
315 |
+
* @return {number}
|
316 |
+
*/
|
317 |
+
W: function () {
|
318 |
+
var a = new Date(fmt.Y(), fmt.n() - 1, fmt.j() - fmt.N() + 3), b = new Date(a.getFullYear(), 0, 4);
|
319 |
+
return _lpad(1 + Math.round((a - b) / DAY / 7), 2);
|
320 |
+
},
|
321 |
+
|
322 |
+
///////////
|
323 |
+
// MONTH //
|
324 |
+
///////////
|
325 |
+
/**
|
326 |
+
* Full month name: `January...December`
|
327 |
+
* @return {string}
|
328 |
+
*/
|
329 |
+
F: function () {
|
330 |
+
return vSettings.months[vDate.getMonth()];
|
331 |
+
},
|
332 |
+
/**
|
333 |
+
* Month w/leading 0: `01..12`
|
334 |
+
* @return {string}
|
335 |
+
*/
|
336 |
+
m: function () {
|
337 |
+
return _lpad(fmt.n(), 2);
|
338 |
+
},
|
339 |
+
/**
|
340 |
+
* Shorthand month name; `Jan...Dec`
|
341 |
+
* @return {string}
|
342 |
+
*/
|
343 |
+
M: function () {
|
344 |
+
return vSettings.monthsShort[vDate.getMonth()];
|
345 |
+
},
|
346 |
+
/**
|
347 |
+
* Month: `1...12`
|
348 |
+
* @return {number}
|
349 |
+
*/
|
350 |
+
n: function () {
|
351 |
+
return vDate.getMonth() + 1;
|
352 |
+
},
|
353 |
+
/**
|
354 |
+
* Days in month: `28...31`
|
355 |
+
* @return {number}
|
356 |
+
*/
|
357 |
+
t: function () {
|
358 |
+
return (new Date(fmt.Y(), fmt.n(), 0)).getDate();
|
359 |
+
},
|
360 |
+
|
361 |
+
//////////
|
362 |
+
// YEAR //
|
363 |
+
//////////
|
364 |
+
/**
|
365 |
+
* Is leap year? `0 or 1`
|
366 |
+
* @return {number}
|
367 |
+
*/
|
368 |
+
L: function () {
|
369 |
+
var Y = fmt.Y();
|
370 |
+
return (Y % 4 === 0 && Y % 100 !== 0 || Y % 400 === 0) ? 1 : 0;
|
371 |
+
},
|
372 |
+
/**
|
373 |
+
* ISO-8601 year
|
374 |
+
* @return {number}
|
375 |
+
*/
|
376 |
+
o: function () {
|
377 |
+
var n = fmt.n(), W = fmt.W(), Y = fmt.Y();
|
378 |
+
return Y + (n === 12 && W < 9 ? 1 : n === 1 && W > 9 ? -1 : 0);
|
379 |
+
},
|
380 |
+
/**
|
381 |
+
* Full year: `e.g. 1980...2010`
|
382 |
+
* @return {number}
|
383 |
+
*/
|
384 |
+
Y: function () {
|
385 |
+
return vDate.getFullYear();
|
386 |
+
},
|
387 |
+
/**
|
388 |
+
* Last two digits of year: `00...99`
|
389 |
+
* @return {string}
|
390 |
+
*/
|
391 |
+
y: function () {
|
392 |
+
return fmt.Y().toString().slice(-2);
|
393 |
+
},
|
394 |
+
|
395 |
+
//////////
|
396 |
+
// TIME //
|
397 |
+
//////////
|
398 |
+
/**
|
399 |
+
* Meridian lower: `am or pm`
|
400 |
+
* @return {string}
|
401 |
+
*/
|
402 |
+
a: function () {
|
403 |
+
return fmt.A().toLowerCase();
|
404 |
+
},
|
405 |
+
/**
|
406 |
+
* Meridian upper: `AM or PM`
|
407 |
+
* @return {string}
|
408 |
+
*/
|
409 |
+
A: function () {
|
410 |
+
var n = fmt.G() < 12 ? 0 : 1;
|
411 |
+
return vSettings.meridiem[n];
|
412 |
+
},
|
413 |
+
/**
|
414 |
+
* Swatch Internet time: `000..999`
|
415 |
+
* @return {string}
|
416 |
+
*/
|
417 |
+
B: function () {
|
418 |
+
var H = vDate.getUTCHours() * HOUR, i = vDate.getUTCMinutes() * 60, s = vDate.getUTCSeconds();
|
419 |
+
return _lpad(Math.floor((H + i + s + HOUR) / 86.4) % 1000, 3);
|
420 |
+
},
|
421 |
+
/**
|
422 |
+
* 12-Hours: `1..12`
|
423 |
+
* @return {number}
|
424 |
+
*/
|
425 |
+
g: function () {
|
426 |
+
return fmt.G() % 12 || 12;
|
427 |
+
},
|
428 |
+
/**
|
429 |
+
* 24-Hours: `0..23`
|
430 |
+
* @return {number}
|
431 |
+
*/
|
432 |
+
G: function () {
|
433 |
+
return vDate.getHours();
|
434 |
+
},
|
435 |
+
/**
|
436 |
+
* 12-Hours with leading 0: `01..12`
|
437 |
+
* @return {string}
|
438 |
+
*/
|
439 |
+
h: function () {
|
440 |
+
return _lpad(fmt.g(), 2);
|
441 |
+
},
|
442 |
+
/**
|
443 |
+
* 24-Hours w/leading 0: `00..23`
|
444 |
+
* @return {string}
|
445 |
+
*/
|
446 |
+
H: function () {
|
447 |
+
return _lpad(fmt.G(), 2);
|
448 |
+
},
|
449 |
+
/**
|
450 |
+
* Minutes w/leading 0: `00..59`
|
451 |
+
* @return {string}
|
452 |
+
*/
|
453 |
+
i: function () {
|
454 |
+
return _lpad(vDate.getMinutes(), 2);
|
455 |
+
},
|
456 |
+
/**
|
457 |
+
* Seconds w/leading 0: `00..59`
|
458 |
+
* @return {string}
|
459 |
+
*/
|
460 |
+
s: function () {
|
461 |
+
return _lpad(vDate.getSeconds(), 2);
|
462 |
+
},
|
463 |
+
/**
|
464 |
+
* Microseconds: `000000-999000`
|
465 |
+
* @return {string}
|
466 |
+
*/
|
467 |
+
u: function () {
|
468 |
+
return _lpad(vDate.getMilliseconds() * 1000, 6);
|
469 |
+
},
|
470 |
+
|
471 |
+
//////////////
|
472 |
+
// TIMEZONE //
|
473 |
+
//////////////
|
474 |
+
/**
|
475 |
+
* Timezone identifier: `e.g. Atlantic/Azores, ...`
|
476 |
+
* @return {string}
|
477 |
+
*/
|
478 |
+
e: function () {
|
479 |
+
var str = /\((.*)\)/.exec(String(vDate))[1];
|
480 |
+
return str || 'Coordinated Universal Time';
|
481 |
+
},
|
482 |
+
/**
|
483 |
+
* Timezone abbreviation: `e.g. EST, MDT, ...`
|
484 |
+
* @return {string}
|
485 |
+
*/
|
486 |
+
T: function () {
|
487 |
+
var str = (String(vDate).match(self.tzParts) || [""]).pop().replace(self.tzClip, "");
|
488 |
+
return str || 'UTC';
|
489 |
+
},
|
490 |
+
/**
|
491 |
+
* DST observed? `0 or 1`
|
492 |
+
* @return {number}
|
493 |
+
*/
|
494 |
+
I: function () {
|
495 |
+
var a = new Date(fmt.Y(), 0), c = Date.UTC(fmt.Y(), 0),
|
496 |
+
b = new Date(fmt.Y(), 6), d = Date.UTC(fmt.Y(), 6);
|
497 |
+
return ((a - c) !== (b - d)) ? 1 : 0;
|
498 |
+
},
|
499 |
+
/**
|
500 |
+
* Difference to GMT in hour format: `e.g. +0200`
|
501 |
+
* @return {string}
|
502 |
+
*/
|
503 |
+
O: function () {
|
504 |
+
var tzo = vDate.getTimezoneOffset(), a = Math.abs(tzo);
|
505 |
+
return (tzo > 0 ? '-' : '+') + _lpad(Math.floor(a / 60) * 100 + a % 60, 4);
|
506 |
+
},
|
507 |
+
/**
|
508 |
+
* Difference to GMT with colon: `e.g. +02:00`
|
509 |
+
* @return {string}
|
510 |
+
*/
|
511 |
+
P: function () {
|
512 |
+
var O = fmt.O();
|
513 |
+
return (O.substr(0, 3) + ':' + O.substr(3, 2));
|
514 |
+
},
|
515 |
+
/**
|
516 |
+
* Timezone offset in seconds: `-43200...50400`
|
517 |
+
* @return {number}
|
518 |
+
*/
|
519 |
+
Z: function () {
|
520 |
+
return -vDate.getTimezoneOffset() * 60;
|
521 |
+
},
|
522 |
+
|
523 |
+
////////////////////
|
524 |
+
// FULL DATE TIME //
|
525 |
+
////////////////////
|
526 |
+
/**
|
527 |
+
* ISO-8601 date
|
528 |
+
* @return {string}
|
529 |
+
*/
|
530 |
+
c: function () {
|
531 |
+
return 'Y-m-d\\TH:i:sP'.replace(backspace, doFormat);
|
532 |
+
},
|
533 |
+
/**
|
534 |
+
* RFC 2822 date
|
535 |
+
* @return {string}
|
536 |
+
*/
|
537 |
+
r: function () {
|
538 |
+
return 'D, d M Y H:i:s O'.replace(backspace, doFormat);
|
539 |
+
},
|
540 |
+
/**
|
541 |
+
* Seconds since UNIX epoch
|
542 |
+
* @return {number}
|
543 |
+
*/
|
544 |
+
U: function () {
|
545 |
+
return vDate.getTime() / 1000 || 0;
|
546 |
+
}
|
547 |
+
};
|
548 |
+
return doFormat(vChar, vChar);
|
549 |
+
},
|
550 |
+
formatDate: function (vDate, vFormat) {
|
551 |
+
var self = this, i, n, len, str, vChar, vDateStr = '';
|
552 |
+
if (typeof vDate === 'string') {
|
553 |
+
vDate = self.parseDate(vDate, vFormat);
|
554 |
+
if (vDate === false) {
|
555 |
+
return false;
|
556 |
+
}
|
557 |
+
}
|
558 |
+
if (vDate instanceof Date) {
|
559 |
+
len = vFormat.length;
|
560 |
+
for (i = 0; i < len; i++) {
|
561 |
+
vChar = vFormat.charAt(i);
|
562 |
+
if (vChar === 'S') {
|
563 |
+
continue;
|
564 |
+
}
|
565 |
+
str = self.parseFormat(vChar, vDate);
|
566 |
+
if (i !== (len - 1) && self.intParts.test(vChar) && vFormat.charAt(i + 1) === 'S') {
|
567 |
+
n = parseInt(str);
|
568 |
+
str += self.dateSettings.ordinal(n);
|
569 |
+
}
|
570 |
+
vDateStr += str;
|
571 |
+
}
|
572 |
+
return vDateStr;
|
573 |
+
}
|
574 |
+
return '';
|
575 |
+
}
|
576 |
+
};
|
577 |
+
})();/**
|
578 |
+
* @preserve jQuery DateTimePicker plugin v2.5.4
|
579 |
+
* @homepage http://xdsoft.net/jqplugins/datetimepicker/
|
580 |
+
* @author Chupurnov Valeriy (<chupurnov@gmail.com>)
|
581 |
+
*/
|
582 |
+
/*global DateFormatter, document,window,jQuery,setTimeout,clearTimeout,HighlightedDate,getCurrentValue*/
|
583 |
+
;(function (factory) {
|
584 |
+
if ( typeof define === 'function' && define.amd ) {
|
585 |
+
// AMD. Register as an anonymous module.
|
586 |
+
define(['jquery', 'jquery-mousewheel'], factory);
|
587 |
+
} else if (typeof exports === 'object') {
|
588 |
+
// Node/CommonJS style for Browserify
|
589 |
+
module.exports = factory;
|
590 |
+
} else {
|
591 |
+
// Browser globals
|
592 |
+
factory(jQuery);
|
593 |
+
}
|
594 |
+
}(function ($) {
|
595 |
+
'use strict';
|
596 |
+
|
597 |
+
var currentlyScrollingTimeDiv = false;
|
598 |
+
|
599 |
+
var default_options = {
|
600 |
+
i18n: {
|
601 |
+
ar: { // Arabic
|
602 |
+
months: [
|
603 |
+
"كانون الثاني", "شباط", "آذار", "نيسان", "مايو", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"
|
604 |
+
],
|
605 |
+
dayOfWeekShort: [
|
606 |
+
"ن", "ث", "ع", "خ", "ج", "س", "ح"
|
607 |
+
],
|
608 |
+
dayOfWeek: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"]
|
609 |
+
},
|
610 |
+
ro: { // Romanian
|
611 |
+
months: [
|
612 |
+
"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
|
613 |
+
],
|
614 |
+
dayOfWeekShort: [
|
615 |
+
"Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"
|
616 |
+
],
|
617 |
+
dayOfWeek: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"]
|
618 |
+
},
|
619 |
+
id: { // Indonesian
|
620 |
+
months: [
|
621 |
+
"Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
|
622 |
+
],
|
623 |
+
dayOfWeekShort: [
|
624 |
+
"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"
|
625 |
+
],
|
626 |
+
dayOfWeek: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"]
|
627 |
+
},
|
628 |
+
is: { // Icelandic
|
629 |
+
months: [
|
630 |
+
"Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"
|
631 |
+
],
|
632 |
+
dayOfWeekShort: [
|
633 |
+
"Sun", "Mán", "Þrið", "Mið", "Fim", "Fös", "Lau"
|
634 |
+
],
|
635 |
+
dayOfWeek: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"]
|
636 |
+
},
|
637 |
+
bg: { // Bulgarian
|
638 |
+
months: [
|
639 |
+
"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
|
640 |
+
],
|
641 |
+
dayOfWeekShort: [
|
642 |
+
"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
|
643 |
+
],
|
644 |
+
dayOfWeek: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"]
|
645 |
+
},
|
646 |
+
fa: { // Persian/Farsi
|
647 |
+
months: [
|
648 |
+
'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'
|
649 |
+
],
|
650 |
+
dayOfWeekShort: [
|
651 |
+
'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
|
652 |
+
],
|
653 |
+
dayOfWeek: ["یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه", "یکشنبه"]
|
654 |
+
},
|
655 |
+
ru: { // Russian
|
656 |
+
months: [
|
657 |
+
'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
|
658 |
+
],
|
659 |
+
dayOfWeekShort: [
|
660 |
+
"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
|
661 |
+
],
|
662 |
+
dayOfWeek: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"]
|
663 |
+
},
|
664 |
+
uk: { // Ukrainian
|
665 |
+
months: [
|
666 |
+
'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'
|
667 |
+
],
|
668 |
+
dayOfWeekShort: [
|
669 |
+
"Ндл", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Сбт"
|
670 |
+
],
|
671 |
+
dayOfWeek: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"]
|
672 |
+
},
|
673 |
+
en: { // English
|
674 |
+
months: [
|
675 |
+
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
|
676 |
+
],
|
677 |
+
dayOfWeekShort: [
|
678 |
+
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
679 |
+
],
|
680 |
+
dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
|
681 |
+
},
|
682 |
+
el: { // Ελληνικά
|
683 |
+
months: [
|
684 |
+
"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
|
685 |
+
],
|
686 |
+
dayOfWeekShort: [
|
687 |
+
"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"
|
688 |
+
],
|
689 |
+
dayOfWeek: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"]
|
690 |
+
},
|
691 |
+
de: { // German
|
692 |
+
months: [
|
693 |
+
'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
|
694 |
+
],
|
695 |
+
dayOfWeekShort: [
|
696 |
+
"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"
|
697 |
+
],
|
698 |
+
dayOfWeek: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
|
699 |
+
},
|
700 |
+
nl: { // Dutch
|
701 |
+
months: [
|
702 |
+
"januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"
|
703 |
+
],
|
704 |
+
dayOfWeekShort: [
|
705 |
+
"zo", "ma", "di", "wo", "do", "vr", "za"
|
706 |
+
],
|
707 |
+
dayOfWeek: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"]
|
708 |
+
},
|
709 |
+
tr: { // Turkish
|
710 |
+
months: [
|
711 |
+
"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
|
712 |
+
],
|
713 |
+
dayOfWeekShort: [
|
714 |
+
"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"
|
715 |
+
],
|
716 |
+
dayOfWeek: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"]
|
717 |
+
},
|
718 |
+
fr: { //French
|
719 |
+
months: [
|
720 |
+
"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"
|
721 |
+
],
|
722 |
+
dayOfWeekShort: [
|
723 |
+
"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"
|
724 |
+
],
|
725 |
+
dayOfWeek: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
|
726 |
+
},
|
727 |
+
es: { // Spanish
|
728 |
+
months: [
|
729 |
+
"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
|
730 |
+
],
|
731 |
+
dayOfWeekShort: [
|
732 |
+
"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"
|
733 |
+
],
|
734 |
+
dayOfWeek: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"]
|
735 |
+
},
|
736 |
+
th: { // Thai
|
737 |
+
months: [
|
738 |
+
'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'
|
739 |
+
],
|
740 |
+
dayOfWeekShort: [
|
741 |
+
'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'
|
742 |
+
],
|
743 |
+
dayOfWeek: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"]
|
744 |
+
},
|
745 |
+
pl: { // Polish
|
746 |
+
months: [
|
747 |
+
"styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"
|
748 |
+
],
|
749 |
+
dayOfWeekShort: [
|
750 |
+
"nd", "pn", "wt", "śr", "cz", "pt", "sb"
|
751 |
+
],
|
752 |
+
dayOfWeek: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"]
|
753 |
+
},
|
754 |
+
pt: { // Portuguese
|
755 |
+
months: [
|
756 |
+
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
|
757 |
+
],
|
758 |
+
dayOfWeekShort: [
|
759 |
+
"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"
|
760 |
+
],
|
761 |
+
dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"]
|
762 |
+
},
|
763 |
+
ch: { // Simplified Chinese
|
764 |
+
months: [
|
765 |
+
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
|
766 |
+
],
|
767 |
+
dayOfWeekShort: [
|
768 |
+
"日", "一", "二", "三", "四", "五", "六"
|
769 |
+
]
|
770 |
+
},
|
771 |
+
se: { // Swedish
|
772 |
+
months: [
|
773 |
+
"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
|
774 |
+
],
|
775 |
+
dayOfWeekShort: [
|
776 |
+
"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
|
777 |
+
]
|
778 |
+
},
|
779 |
+
kr: { // Korean
|
780 |
+
months: [
|
781 |
+
"1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
|
782 |
+
],
|
783 |
+
dayOfWeekShort: [
|
784 |
+
"일", "월", "화", "수", "목", "금", "토"
|
785 |
+
],
|
786 |
+
dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
|
787 |
+
},
|
788 |
+
it: { // Italian
|
789 |
+
months: [
|
790 |
+
"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"
|
791 |
+
],
|
792 |
+
dayOfWeekShort: [
|
793 |
+
"Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"
|
794 |
+
],
|
795 |
+
dayOfWeek: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"]
|
796 |
+
},
|
797 |
+
da: { // Dansk
|
798 |
+
months: [
|
799 |
+
"January", "Februar", "Marts", "April", "Maj", "Juni", "July", "August", "September", "Oktober", "November", "December"
|
800 |
+
],
|
801 |
+
dayOfWeekShort: [
|
802 |
+
"Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
|
803 |
+
],
|
804 |
+
dayOfWeek: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"]
|
805 |
+
},
|
806 |
+
no: { // Norwegian
|
807 |
+
months: [
|
808 |
+
"Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"
|
809 |
+
],
|
810 |
+
dayOfWeekShort: [
|
811 |
+
"Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
|
812 |
+
],
|
813 |
+
dayOfWeek: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']
|
814 |
+
},
|
815 |
+
ja: { // Japanese
|
816 |
+
months: [
|
817 |
+
"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
|
818 |
+
],
|
819 |
+
dayOfWeekShort: [
|
820 |
+
"日", "月", "火", "水", "木", "金", "土"
|
821 |
+
],
|
822 |
+
dayOfWeek: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"]
|
823 |
+
},
|
824 |
+
vi: { // Vietnamese
|
825 |
+
months: [
|
826 |
+
"Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"
|
827 |
+
],
|
828 |
+
dayOfWeekShort: [
|
829 |
+
"CN", "T2", "T3", "T4", "T5", "T6", "T7"
|
830 |
+
],
|
831 |
+
dayOfWeek: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"]
|
832 |
+
},
|
833 |
+
sl: { // Slovenščina
|
834 |
+
months: [
|
835 |
+
"Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"
|
836 |
+
],
|
837 |
+
dayOfWeekShort: [
|
838 |
+
"Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"
|
839 |
+
],
|
840 |
+
dayOfWeek: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"]
|
841 |
+
},
|
842 |
+
cs: { // Čeština
|
843 |
+
months: [
|
844 |
+
"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
|
845 |
+
],
|
846 |
+
dayOfWeekShort: [
|
847 |
+
"Ne", "Po", "Út", "St", "Čt", "Pá", "So"
|
848 |
+
]
|
849 |
+
},
|
850 |
+
hu: { // Hungarian
|
851 |
+
months: [
|
852 |
+
"Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"
|
853 |
+
],
|
854 |
+
dayOfWeekShort: [
|
855 |
+
"Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo"
|
856 |
+
],
|
857 |
+
dayOfWeek: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"]
|
858 |
+
},
|
859 |
+
az: { //Azerbaijanian (Azeri)
|
860 |
+
months: [
|
861 |
+
"Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"
|
862 |
+
],
|
863 |
+
dayOfWeekShort: [
|
864 |
+
"B", "Be", "Ça", "Ç", "Ca", "C", "Ş"
|
865 |
+
],
|
866 |
+
dayOfWeek: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"]
|
867 |
+
},
|
868 |
+
bs: { //Bosanski
|
869 |
+
months: [
|
870 |
+
"Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
|
871 |
+
],
|
872 |
+
dayOfWeekShort: [
|
873 |
+
"Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
|
874 |
+
],
|
875 |
+
dayOfWeek: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"]
|
876 |
+
},
|
877 |
+
ca: { //Català
|
878 |
+
months: [
|
879 |
+
"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
|
880 |
+
],
|
881 |
+
dayOfWeekShort: [
|
882 |
+
"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"
|
883 |
+
],
|
884 |
+
dayOfWeek: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"]
|
885 |
+
},
|
886 |
+
'en-GB': { //English (British)
|
887 |
+
months: [
|
888 |
+
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
|
889 |
+
],
|
890 |
+
dayOfWeekShort: [
|
891 |
+
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
892 |
+
],
|
893 |
+
dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
|
894 |
+
},
|
895 |
+
et: { //"Eesti"
|
896 |
+
months: [
|
897 |
+
"Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"
|
898 |
+
],
|
899 |
+
dayOfWeekShort: [
|
900 |
+
"P", "E", "T", "K", "N", "R", "L"
|
901 |
+
],
|
902 |
+
dayOfWeek: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"]
|
903 |
+
},
|
904 |
+
eu: { //Euskara
|
905 |
+
months: [
|
906 |
+
"Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"
|
907 |
+
],
|
908 |
+
dayOfWeekShort: [
|
909 |
+
"Ig.", "Al.", "Ar.", "Az.", "Og.", "Or.", "La."
|
910 |
+
],
|
911 |
+
dayOfWeek: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata']
|
912 |
+
},
|
913 |
+
fi: { //Finnish (Suomi)
|
914 |
+
months: [
|
915 |
+
"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
|
916 |
+
],
|
917 |
+
dayOfWeekShort: [
|
918 |
+
"Su", "Ma", "Ti", "Ke", "To", "Pe", "La"
|
919 |
+
],
|
920 |
+
dayOfWeek: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"]
|
921 |
+
},
|
922 |
+
gl: { //Galego
|
923 |
+
months: [
|
924 |
+
"Xan", "Feb", "Maz", "Abr", "Mai", "Xun", "Xul", "Ago", "Set", "Out", "Nov", "Dec"
|
925 |
+
],
|
926 |
+
dayOfWeekShort: [
|
927 |
+
"Dom", "Lun", "Mar", "Mer", "Xov", "Ven", "Sab"
|
928 |
+
],
|
929 |
+
dayOfWeek: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"]
|
930 |
+
},
|
931 |
+
hr: { //Hrvatski
|
932 |
+
months: [
|
933 |
+
"Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
|
934 |
+
],
|
935 |
+
dayOfWeekShort: [
|
936 |
+
"Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
|
937 |
+
],
|
938 |
+
dayOfWeek: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"]
|
939 |
+
},
|
940 |
+
ko: { //Korean (한국어)
|
941 |
+
months: [
|
942 |
+
"1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
|
943 |
+
],
|
944 |
+
dayOfWeekShort: [
|
945 |
+
"일", "월", "화", "수", "목", "금", "토"
|
946 |
+
],
|
947 |
+
dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
|
948 |
+
},
|
949 |
+
lt: { //Lithuanian (lietuvių)
|
950 |
+
months: [
|
951 |
+
"Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio"
|
952 |
+
],
|
953 |
+
dayOfWeekShort: [
|
954 |
+
"Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš"
|
955 |
+
],
|
956 |
+
dayOfWeek: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"]
|
957 |
+
},
|
958 |
+
lv: { //Latvian (Latviešu)
|
959 |
+
months: [
|
960 |
+
"Janvāris", "Februāris", "Marts", "Aprīlis ", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"
|
961 |
+
],
|
962 |
+
dayOfWeekShort: [
|
963 |
+
"Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "St"
|
964 |
+
],
|
965 |
+
dayOfWeek: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"]
|
966 |
+
},
|
967 |
+
mk: { //Macedonian (Македонски)
|
968 |
+
months: [
|
969 |
+
"јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"
|
970 |
+
],
|
971 |
+
dayOfWeekShort: [
|
972 |
+
"нед", "пон", "вто", "сре", "чет", "пет", "саб"
|
973 |
+
],
|
974 |
+
dayOfWeek: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"]
|
975 |
+
},
|
976 |
+
mn: { //Mongolian (Монгол)
|
977 |
+
months: [
|
978 |
+
"1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар"
|
979 |
+
],
|
980 |
+
dayOfWeekShort: [
|
981 |
+
"Дав", "Мяг", "Лха", "Пүр", "Бсн", "Бям", "Ням"
|
982 |
+
],
|
983 |
+
dayOfWeek: ["Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба", "Ням"]
|
984 |
+
},
|
985 |
+
'pt-BR': { //Português(Brasil)
|
986 |
+
months: [
|
987 |
+
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
|
988 |
+
],
|
989 |
+
dayOfWeekShort: [
|
990 |
+
"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"
|
991 |
+
],
|
992 |
+
dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"]
|
993 |
+
},
|
994 |
+
sk: { //Slovenčina
|
995 |
+
months: [
|
996 |
+
"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
|
997 |
+
],
|
998 |
+
dayOfWeekShort: [
|
999 |
+
"Ne", "Po", "Ut", "St", "Št", "Pi", "So"
|
1000 |
+
],
|
1001 |
+
dayOfWeek: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"]
|
1002 |
+
},
|
1003 |
+
sq: { //Albanian (Shqip)
|
1004 |
+
months: [
|
1005 |
+
"Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"
|
1006 |
+
],
|
1007 |
+
dayOfWeekShort: [
|
1008 |
+
"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"
|
1009 |
+
],
|
1010 |
+
dayOfWeek: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"]
|
1011 |
+
},
|
1012 |
+
'sr-YU': { //Serbian (Srpski)
|
1013 |
+
months: [
|
1014 |
+
"Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
|
1015 |
+
],
|
1016 |
+
dayOfWeekShort: [
|
1017 |
+
"Ned", "Pon", "Uto", "Sre", "čet", "Pet", "Sub"
|
1018 |
+
],
|
1019 |
+
dayOfWeek: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"]
|
1020 |
+
},
|
1021 |
+
sr: { //Serbian Cyrillic (Српски)
|
1022 |
+
months: [
|
1023 |
+
"јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"
|
1024 |
+
],
|
1025 |
+
dayOfWeekShort: [
|
1026 |
+
"нед", "пон", "уто", "сре", "чет", "пет", "суб"
|
1027 |
+
],
|
1028 |
+
dayOfWeek: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"]
|
1029 |
+
},
|
1030 |
+
sv: { //Svenska
|
1031 |
+
months: [
|
1032 |
+
"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
|
1033 |
+
],
|
1034 |
+
dayOfWeekShort: [
|
1035 |
+
"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
|
1036 |
+
],
|
1037 |
+
dayOfWeek: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"]
|
1038 |
+
},
|
1039 |
+
'zh-TW': { //Traditional Chinese (繁體中文)
|
1040 |
+
months: [
|
1041 |
+
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
|
1042 |
+
],
|
1043 |
+
dayOfWeekShort: [
|
1044 |
+
"日", "一", "二", "三", "四", "五", "六"
|
1045 |
+
],
|
1046 |
+
dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
|
1047 |
+
},
|
1048 |
+
zh: { //Simplified Chinese (简体中文)
|
1049 |
+
months: [
|
1050 |
+
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
|
1051 |
+
],
|
1052 |
+
dayOfWeekShort: [
|
1053 |
+
"日", "一", "二", "三", "四", "五", "六"
|
1054 |
+
],
|
1055 |
+
dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
|
1056 |
+
},
|
1057 |
+
he: { //Hebrew (עברית)
|
1058 |
+
months: [
|
1059 |
+
'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'
|
1060 |
+
],
|
1061 |
+
dayOfWeekShort: [
|
1062 |
+
'א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו\'', 'שבת'
|
1063 |
+
],
|
1064 |
+
dayOfWeek: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"]
|
1065 |
+
},
|
1066 |
+
hy: { // Armenian
|
1067 |
+
months: [
|
1068 |
+
"Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"
|
1069 |
+
],
|
1070 |
+
dayOfWeekShort: [
|
1071 |
+
"Կի", "Երկ", "Երք", "Չոր", "Հնգ", "Ուրբ", "Շբթ"
|
1072 |
+
],
|
1073 |
+
dayOfWeek: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"]
|
1074 |
+
},
|
1075 |
+
kg: { // Kyrgyz
|
1076 |
+
months: [
|
1077 |
+
'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы'
|
1078 |
+
],
|
1079 |
+
dayOfWeekShort: [
|
1080 |
+
"Жек", "Дүй", "Шей", "Шар", "Бей", "Жум", "Ише"
|
1081 |
+
],
|
1082 |
+
dayOfWeek: [
|
1083 |
+
"Жекшемб", "Дүйшөмб", "Шейшемб", "Шаршемб", "Бейшемби", "Жума", "Ишенб"
|
1084 |
+
]
|
1085 |
+
},
|
1086 |
+
rm: { // Romansh
|
1087 |
+
months: [
|
1088 |
+
"Schaner", "Favrer", "Mars", "Avrigl", "Matg", "Zercladur", "Fanadur", "Avust", "Settember", "October", "November", "December"
|
1089 |
+
],
|
1090 |
+
dayOfWeekShort: [
|
1091 |
+
"Du", "Gli", "Ma", "Me", "Gie", "Ve", "So"
|
1092 |
+
],
|
1093 |
+
dayOfWeek: [
|
1094 |
+
"Dumengia", "Glindesdi", "Mardi", "Mesemna", "Gievgia", "Venderdi", "Sonda"
|
1095 |
+
]
|
1096 |
+
},
|
1097 |
+
ka: { // Georgian
|
1098 |
+
months: [
|
1099 |
+
'იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'
|
1100 |
+
],
|
1101 |
+
dayOfWeekShort: [
|
1102 |
+
"კვ", "ორშ", "სამშ", "ოთხ", "ხუთ", "პარ", "შაბ"
|
1103 |
+
],
|
1104 |
+
dayOfWeek: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"]
|
1105 |
+
},
|
1106 |
+
},
|
1107 |
+
value: '',
|
1108 |
+
rtl: false,
|
1109 |
+
|
1110 |
+
format: 'Y/m/d H:i',
|
1111 |
+
formatTime: 'H:i',
|
1112 |
+
formatDate: 'Y/m/d',
|
1113 |
+
|
1114 |
+
startDate: false, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05',
|
1115 |
+
step: 60,
|
1116 |
+
monthChangeSpinner: true,
|
1117 |
+
|
1118 |
+
closeOnDateSelect: false,
|
1119 |
+
closeOnTimeSelect: true,
|
1120 |
+
closeOnWithoutClick: true,
|
1121 |
+
closeOnInputClick: true,
|
1122 |
+
|
1123 |
+
timepicker: true,
|
1124 |
+
datepicker: true,
|
1125 |
+
weeks: false,
|
1126 |
+
|
1127 |
+
defaultTime: false, // use formatTime format (ex. '10:00' for formatTime: 'H:i')
|
1128 |
+
defaultDate: false, // use formatDate format (ex new Date() or '1986/12/08' or '-1970/01/05' or '-1970/01/05')
|
1129 |
+
|
1130 |
+
minDate: false,
|
1131 |
+
maxDate: false,
|
1132 |
+
minTime: false,
|
1133 |
+
maxTime: false,
|
1134 |
+
disabledMinTime: false,
|
1135 |
+
disabledMaxTime: false,
|
1136 |
+
|
1137 |
+
allowTimes: [],
|
1138 |
+
opened: false,
|
1139 |
+
initTime: true,
|
1140 |
+
inline: false,
|
1141 |
+
theme: '',
|
1142 |
+
|
1143 |
+
onSelectDate: function () {},
|
1144 |
+
onSelectTime: function () {},
|
1145 |
+
onChangeMonth: function () {},
|
1146 |
+
onGetWeekOfYear: function () {},
|
1147 |
+
onChangeYear: function () {},
|
1148 |
+
onChangeDateTime: function () {},
|
1149 |
+
onShow: function () {},
|
1150 |
+
onClose: function () {},
|
1151 |
+
onGenerate: function () {},
|
1152 |
+
|
1153 |
+
withoutCopyright: true,
|
1154 |
+
inverseButton: false,
|
1155 |
+
hours12: false,
|
1156 |
+
next: 'xdsoft_next',
|
1157 |
+
prev : 'xdsoft_prev',
|
1158 |
+
dayOfWeekStart: 0,
|
1159 |
+
parentID: 'body',
|
1160 |
+
timeHeightInTimePicker: 25,
|
1161 |
+
timepickerScrollbar: true,
|
1162 |
+
todayButton: true,
|
1163 |
+
prevButton: true,
|
1164 |
+
nextButton: true,
|
1165 |
+
defaultSelect: true,
|
1166 |
+
|
1167 |
+
scrollMonth: true,
|
1168 |
+
scrollTime: true,
|
1169 |
+
scrollInput: true,
|
1170 |
+
|
1171 |
+
lazyInit: false,
|
1172 |
+
mask: false,
|
1173 |
+
validateOnBlur: true,
|
1174 |
+
allowBlank: true,
|
1175 |
+
yearStart: 1950,
|
1176 |
+
yearEnd: 2050,
|
1177 |
+
monthStart: 0,
|
1178 |
+
monthEnd: 11,
|
1179 |
+
style: '',
|
1180 |
+
id: '',
|
1181 |
+
fixed: false,
|
1182 |
+
roundTime: 'round', // ceil, floor
|
1183 |
+
className: '',
|
1184 |
+
weekends: [],
|
1185 |
+
highlightedDates: [],
|
1186 |
+
highlightedPeriods: [],
|
1187 |
+
allowDates : [],
|
1188 |
+
allowDateRe : null,
|
1189 |
+
disabledDates : [],
|
1190 |
+
disabledWeekDays: [],
|
1191 |
+
yearOffset: 0,
|
1192 |
+
beforeShowDay: null,
|
1193 |
+
|
1194 |
+
enterLikeTab: true,
|
1195 |
+
showApplyButton: false
|
1196 |
+
};
|
1197 |
+
|
1198 |
+
var dateHelper = null,
|
1199 |
+
globalLocaleDefault = 'en',
|
1200 |
+
globalLocale = 'en';
|
1201 |
+
|
1202 |
+
var dateFormatterOptionsDefault = {
|
1203 |
+
meridiem: ['AM', 'PM']
|
1204 |
+
};
|
1205 |
+
|
1206 |
+
var initDateFormatter = function(){
|
1207 |
+
var locale = default_options.i18n[globalLocale],
|
1208 |
+
opts = {
|
1209 |
+
days: locale.dayOfWeek,
|
1210 |
+
daysShort: locale.dayOfWeekShort,
|
1211 |
+
months: locale.months,
|
1212 |
+
monthsShort: $.map(locale.months, function(n){ return n.substring(0, 3) }),
|
1213 |
+
};
|
1214 |
+
|
1215 |
+
dateHelper = new DateFormatter({
|
1216 |
+
dateSettings: $.extend({}, dateFormatterOptionsDefault, opts)
|
1217 |
+
});
|
1218 |
+
};
|
1219 |
+
|
1220 |
+
// for locale settings
|
1221 |
+
$.datetimepicker = {
|
1222 |
+
setLocale: function(locale){
|
1223 |
+
var newLocale = default_options.i18n[locale]?locale:globalLocaleDefault;
|
1224 |
+
if(globalLocale != newLocale){
|
1225 |
+
globalLocale = newLocale;
|
1226 |
+
// reinit date formatter
|
1227 |
+
initDateFormatter();
|
1228 |
+
}
|
1229 |
+
},
|
1230 |
+
setDateFormatter: function(dateFormatter) {
|
1231 |
+
dateHelper = dateFormatter;
|
1232 |
+
},
|
1233 |
+
RFC_2822: 'D, d M Y H:i:s O',
|
1234 |
+
ATOM: 'Y-m-d\TH:i:sP',
|
1235 |
+
ISO_8601: 'Y-m-d\TH:i:sO',
|
1236 |
+
RFC_822: 'D, d M y H:i:s O',
|
1237 |
+
RFC_850: 'l, d-M-y H:i:s T',
|
1238 |
+
RFC_1036: 'D, d M y H:i:s O',
|
1239 |
+
RFC_1123: 'D, d M Y H:i:s O',
|
1240 |
+
RSS: 'D, d M Y H:i:s O',
|
1241 |
+
W3C: 'Y-m-d\TH:i:sP'
|
1242 |
+
};
|
1243 |
+
|
1244 |
+
// first init date formatter
|
1245 |
+
initDateFormatter();
|
1246 |
+
|
1247 |
+
// fix for ie8
|
1248 |
+
if (!window.getComputedStyle) {
|
1249 |
+
window.getComputedStyle = function (el, pseudo) {
|
1250 |
+
this.el = el;
|
1251 |
+
this.getPropertyValue = function (prop) {
|
1252 |
+
var re = /(\-([a-z]){1})/g;
|
1253 |
+
if (prop === 'float') {
|
1254 |
+
prop = 'styleFloat';
|
1255 |
+
}
|
1256 |
+
if (re.test(prop)) {
|
1257 |
+
prop = prop.replace(re, function (a, b, c) {
|
1258 |
+
return c.toUpperCase();
|
1259 |
+
});
|
1260 |
+
}
|
1261 |
+
return el.currentStyle[prop] || null;
|
1262 |
+
};
|
1263 |
+
return this;
|
1264 |
+
};
|
1265 |
+
}
|
1266 |
+
if (!Array.prototype.indexOf) {
|
1267 |
+
Array.prototype.indexOf = function (obj, start) {
|
1268 |
+
var i, j;
|
1269 |
+
for (i = (start || 0), j = this.length; i < j; i += 1) {
|
1270 |
+
if (this[i] === obj) { return i; }
|
1271 |
+
}
|
1272 |
+
return -1;
|
1273 |
+
};
|
1274 |
+
}
|
1275 |
+
Date.prototype.countDaysInMonth = function () {
|
1276 |
+
return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();
|
1277 |
+
};
|
1278 |
+
$.fn.xdsoftScroller = function (percent) {
|
1279 |
+
return this.each(function () {
|
1280 |
+
var timeboxparent = $(this),
|
1281 |
+
pointerEventToXY = function (e) {
|
1282 |
+
var out = {x: 0, y: 0},
|
1283 |
+
touch;
|
1284 |
+
if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {
|
1285 |
+
touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
|
1286 |
+
out.x = touch.clientX;
|
1287 |
+
out.y = touch.clientY;
|
1288 |
+
} else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'mousemove' || e.type === 'mouseover' || e.type === 'mouseout' || e.type === 'mouseenter' || e.type === 'mouseleave') {
|
1289 |
+
out.x = e.clientX;
|
1290 |
+
out.y = e.clientY;
|
1291 |
+
}
|
1292 |
+
return out;
|
1293 |
+
},
|
1294 |
+
timebox,
|
1295 |
+
parentHeight,
|
1296 |
+
height,
|
1297 |
+
scrollbar,
|
1298 |
+
scroller,
|
1299 |
+
maximumOffset = 100,
|
1300 |
+
start = false,
|
1301 |
+
startY = 0,
|
1302 |
+
startTop = 0,
|
1303 |
+
h1 = 0,
|
1304 |
+
touchStart = false,
|
1305 |
+
startTopScroll = 0,
|
1306 |
+
calcOffset = function () {};
|
1307 |
+
if (percent === 'hide') {
|
1308 |
+
timeboxparent.find('.xdsoft_scrollbar').hide();
|
1309 |
+
return;
|
1310 |
+
}
|
1311 |
+
if (!$(this).hasClass('xdsoft_scroller_box')) {
|
1312 |
+
timebox = timeboxparent.children().eq(0);
|
1313 |
+
parentHeight = timeboxparent[0].clientHeight;
|
1314 |
+
height = timebox[0].offsetHeight;
|
1315 |
+
scrollbar = $('<div class="xdsoft_scrollbar"></div>');
|
1316 |
+
scroller = $('<div class="xdsoft_scroller"></div>');
|
1317 |
+
scrollbar.append(scroller);
|
1318 |
+
|
1319 |
+
timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);
|
1320 |
+
calcOffset = function calcOffset(event) {
|
1321 |
+
var offset = pointerEventToXY(event).y - startY + startTopScroll;
|
1322 |
+
if (offset < 0) {
|
1323 |
+
offset = 0;
|
1324 |
+
}
|
1325 |
+
if (offset + scroller[0].offsetHeight > h1) {
|
1326 |
+
offset = h1 - scroller[0].offsetHeight;
|
1327 |
+
}
|
1328 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [maximumOffset ? offset / maximumOffset : 0]);
|
1329 |
+
};
|
1330 |
+
|
1331 |
+
scroller
|
1332 |
+
.on('touchstart.xdsoft_scroller mousedown.xdsoft_scroller', function (event) {
|
1333 |
+
if (!parentHeight) {
|
1334 |
+
timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
|
1335 |
+
}
|
1336 |
+
|
1337 |
+
startY = pointerEventToXY(event).y;
|
1338 |
+
startTopScroll = parseInt(scroller.css('margin-top'), 10);
|
1339 |
+
h1 = scrollbar[0].offsetHeight;
|
1340 |
+
|
1341 |
+
if (event.type === 'mousedown' || event.type === 'touchstart') {
|
1342 |
+
if (document) {
|
1343 |
+
$(document.body).addClass('xdsoft_noselect');
|
1344 |
+
}
|
1345 |
+
$([document.body, window]).on('touchend mouseup.xdsoft_scroller', function arguments_callee() {
|
1346 |
+
$([document.body, window]).off('touchend mouseup.xdsoft_scroller', arguments_callee)
|
1347 |
+
.off('mousemove.xdsoft_scroller', calcOffset)
|
1348 |
+
.removeClass('xdsoft_noselect');
|
1349 |
+
});
|
1350 |
+
$(document.body).on('mousemove.xdsoft_scroller', calcOffset);
|
1351 |
+
} else {
|
1352 |
+
touchStart = true;
|
1353 |
+
event.stopPropagation();
|
1354 |
+
event.preventDefault();
|
1355 |
+
}
|
1356 |
+
})
|
1357 |
+
.on('touchmove', function (event) {
|
1358 |
+
if (touchStart) {
|
1359 |
+
event.preventDefault();
|
1360 |
+
calcOffset(event);
|
1361 |
+
}
|
1362 |
+
})
|
1363 |
+
.on('touchend touchcancel', function () {
|
1364 |
+
touchStart = false;
|
1365 |
+
startTopScroll = 0;
|
1366 |
+
});
|
1367 |
+
|
1368 |
+
timeboxparent
|
1369 |
+
.on('scroll_element.xdsoft_scroller', function (event, percentage) {
|
1370 |
+
if (!parentHeight) {
|
1371 |
+
timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percentage, true]);
|
1372 |
+
}
|
1373 |
+
percentage = percentage > 1 ? 1 : (percentage < 0 || isNaN(percentage)) ? 0 : percentage;
|
1374 |
+
|
1375 |
+
scroller.css('margin-top', maximumOffset * percentage);
|
1376 |
+
|
1377 |
+
setTimeout(function () {
|
1378 |
+
timebox.css('marginTop', -parseInt((timebox[0].offsetHeight - parentHeight) * percentage, 10));
|
1379 |
+
}, 10);
|
1380 |
+
})
|
1381 |
+
.on('resize_scroll.xdsoft_scroller', function (event, percentage, noTriggerScroll) {
|
1382 |
+
var percent, sh;
|
1383 |
+
parentHeight = timeboxparent[0].clientHeight;
|
1384 |
+
height = timebox[0].offsetHeight;
|
1385 |
+
percent = parentHeight / height;
|
1386 |
+
sh = percent * scrollbar[0].offsetHeight;
|
1387 |
+
if (percent > 1) {
|
1388 |
+
scroller.hide();
|
1389 |
+
} else {
|
1390 |
+
scroller.show();
|
1391 |
+
scroller.css('height', parseInt(sh > 10 ? sh : 10, 10));
|
1392 |
+
maximumOffset = scrollbar[0].offsetHeight - scroller[0].offsetHeight;
|
1393 |
+
if (noTriggerScroll !== true) {
|
1394 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [percentage || Math.abs(parseInt(timebox.css('marginTop'), 10)) / (height - parentHeight)]);
|
1395 |
+
}
|
1396 |
+
}
|
1397 |
+
});
|
1398 |
+
|
1399 |
+
timeboxparent.on('mousewheel', function (event) {
|
1400 |
+
var top = Math.abs(parseInt(timebox.css('marginTop'), 10));
|
1401 |
+
|
1402 |
+
top = top - (event.deltaY * 20);
|
1403 |
+
if (top < 0) {
|
1404 |
+
top = 0;
|
1405 |
+
}
|
1406 |
+
|
1407 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [top / (height - parentHeight)]);
|
1408 |
+
event.stopPropagation();
|
1409 |
+
return false;
|
1410 |
+
});
|
1411 |
+
|
1412 |
+
timeboxparent.on('touchstart', function (event) {
|
1413 |
+
start = pointerEventToXY(event);
|
1414 |
+
startTop = Math.abs(parseInt(timebox.css('marginTop'), 10));
|
1415 |
+
});
|
1416 |
+
|
1417 |
+
timeboxparent.on('touchmove', function (event) {
|
1418 |
+
if (start) {
|
1419 |
+
event.preventDefault();
|
1420 |
+
var coord = pointerEventToXY(event);
|
1421 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [(startTop - (coord.y - start.y)) / (height - parentHeight)]);
|
1422 |
+
}
|
1423 |
+
});
|
1424 |
+
|
1425 |
+
timeboxparent.on('touchend touchcancel', function () {
|
1426 |
+
start = false;
|
1427 |
+
startTop = 0;
|
1428 |
+
});
|
1429 |
+
}
|
1430 |
+
timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
|
1431 |
+
});
|
1432 |
+
};
|
1433 |
+
|
1434 |
+
$.fn.datetimepicker = function (opt, opt2) {
|
1435 |
+
var result = this,
|
1436 |
+
KEY0 = 48,
|
1437 |
+
KEY9 = 57,
|
1438 |
+
_KEY0 = 96,
|
1439 |
+
_KEY9 = 105,
|
1440 |
+
CTRLKEY = 17,
|
1441 |
+
DEL = 46,
|
1442 |
+
ENTER = 13,
|
1443 |
+
ESC = 27,
|
1444 |
+
BACKSPACE = 8,
|
1445 |
+
ARROWLEFT = 37,
|
1446 |
+
ARROWUP = 38,
|
1447 |
+
ARROWRIGHT = 39,
|
1448 |
+
ARROWDOWN = 40,
|
1449 |
+
TAB = 9,
|
1450 |
+
F5 = 116,
|
1451 |
+
AKEY = 65,
|
1452 |
+
CKEY = 67,
|
1453 |
+
VKEY = 86,
|
1454 |
+
ZKEY = 90,
|
1455 |
+
YKEY = 89,
|
1456 |
+
ctrlDown = false,
|
1457 |
+
options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
|
1458 |
+
|
1459 |
+
lazyInitTimer = 0,
|
1460 |
+
createDateTimePicker,
|
1461 |
+
destroyDateTimePicker,
|
1462 |
+
|
1463 |
+
lazyInit = function (input) {
|
1464 |
+
input
|
1465 |
+
.on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function initOnActionCallback() {
|
1466 |
+
if (input.is(':disabled') || input.data('xdsoft_datetimepicker')) {
|
1467 |
+
return;
|
1468 |
+
}
|
1469 |
+
clearTimeout(lazyInitTimer);
|
1470 |
+
lazyInitTimer = setTimeout(function () {
|
1471 |
+
|
1472 |
+
if (!input.data('xdsoft_datetimepicker')) {
|
1473 |
+
createDateTimePicker(input);
|
1474 |
+
}
|
1475 |
+
input
|
1476 |
+
.off('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', initOnActionCallback)
|
1477 |
+
.trigger('open.xdsoft');
|
1478 |
+
}, 100);
|
1479 |
+
});
|
1480 |
+
};
|
1481 |
+
|
1482 |
+
createDateTimePicker = function (input) {
|
1483 |
+
var datetimepicker = $('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),
|
1484 |
+
xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),
|
1485 |
+
datepicker = $('<div class="xdsoft_datepicker active"></div>'),
|
1486 |
+
month_picker = $('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button>' +
|
1487 |
+
'<div class="xdsoft_label xdsoft_month"><span></span><i></i></div>' +
|
1488 |
+
'<div class="xdsoft_label xdsoft_year"><span></span><i></i></div>' +
|
1489 |
+
'<button type="button" class="xdsoft_next"></button></div>'),
|
1490 |
+
calendar = $('<div class="xdsoft_calendar"></div>'),
|
1491 |
+
timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),
|
1492 |
+
timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),
|
1493 |
+
timebox = $('<div class="xdsoft_time_variant"></div>'),
|
1494 |
+
applyButton = $('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),
|
1495 |
+
|
1496 |
+
monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),
|
1497 |
+
yearselect = $('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),
|
1498 |
+
triggerAfterOpen = false,
|
1499 |
+
XDSoft_datetime,
|
1500 |
+
|
1501 |
+
xchangeTimer,
|
1502 |
+
timerclick,
|
1503 |
+
current_time_index,
|
1504 |
+
setPos,
|
1505 |
+
timer = 0,
|
1506 |
+
_xdsoft_datetime,
|
1507 |
+
forEachAncestorOf,
|
1508 |
+
throttle;
|
1509 |
+
|
1510 |
+
if (options.id) {
|
1511 |
+
datetimepicker.attr('id', options.id);
|
1512 |
+
}
|
1513 |
+
if (options.style) {
|
1514 |
+
datetimepicker.attr('style', options.style);
|
1515 |
+
}
|
1516 |
+
if (options.weeks) {
|
1517 |
+
datetimepicker.addClass('xdsoft_showweeks');
|
1518 |
+
}
|
1519 |
+
if (options.rtl) {
|
1520 |
+
datetimepicker.addClass('xdsoft_rtl');
|
1521 |
+
}
|
1522 |
+
|
1523 |
+
datetimepicker.addClass('xdsoft_' + options.theme);
|
1524 |
+
datetimepicker.addClass(options.className);
|
1525 |
+
|
1526 |
+
month_picker
|
1527 |
+
.find('.xdsoft_month span')
|
1528 |
+
.after(monthselect);
|
1529 |
+
month_picker
|
1530 |
+
.find('.xdsoft_year span')
|
1531 |
+
.after(yearselect);
|
1532 |
+
|
1533 |
+
month_picker
|
1534 |
+
.find('.xdsoft_month,.xdsoft_year')
|
1535 |
+
.on('touchstart mousedown.xdsoft', function (event) {
|
1536 |
+
var select = $(this).find('.xdsoft_select').eq(0),
|
1537 |
+
val = 0,
|
1538 |
+
top = 0,
|
1539 |
+
visible = select.is(':visible'),
|
1540 |
+
items,
|
1541 |
+
i;
|
1542 |
+
|
1543 |
+
month_picker
|
1544 |
+
.find('.xdsoft_select')
|
1545 |
+
.hide();
|
1546 |
+
if (_xdsoft_datetime.currentTime) {
|
1547 |
+
val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month') ? 'getMonth' : 'getFullYear']();
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
select[visible ? 'hide' : 'show']();
|
1551 |
+
for (items = select.find('div.xdsoft_option'), i = 0; i < items.length; i += 1) {
|
1552 |
+
if (items.eq(i).data('value') === val) {
|
1553 |
+
break;
|
1554 |
+
} else {
|
1555 |
+
top += items[0].offsetHeight;
|
1556 |
+
}
|
1557 |
+
}
|
1558 |
+
|
1559 |
+
select.xdsoftScroller(top / (select.children()[0].offsetHeight - (select[0].clientHeight)));
|
1560 |
+
event.stopPropagation();
|
1561 |
+
return false;
|
1562 |
+
});
|
1563 |
+
|
1564 |
+
month_picker
|
1565 |
+
.find('.xdsoft_select')
|
1566 |
+
.xdsoftScroller()
|
1567 |
+
.on('touchstart mousedown.xdsoft', function (event) {
|
1568 |
+
event.stopPropagation();
|
1569 |
+
event.preventDefault();
|
1570 |
+
})
|
1571 |
+
.on('touchstart mousedown.xdsoft', '.xdsoft_option', function () {
|
1572 |
+
if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
|
1573 |
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
1574 |
+
}
|
1575 |
+
|
1576 |
+
var year = _xdsoft_datetime.currentTime.getFullYear();
|
1577 |
+
if (_xdsoft_datetime && _xdsoft_datetime.currentTime) {
|
1578 |
+
_xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));
|
1579 |
+
}
|
1580 |
+
|
1581 |
+
$(this).parent().parent().hide();
|
1582 |
+
|
1583 |
+
datetimepicker.trigger('xchange.xdsoft');
|
1584 |
+
if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
|
1585 |
+
options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
1586 |
+
}
|
1587 |
+
|
1588 |
+
if (year !== _xdsoft_datetime.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
|
1589 |
+
options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
1590 |
+
}
|
1591 |
+
});
|
1592 |
+
|
1593 |
+
datetimepicker.getValue = function () {
|
1594 |
+
return _xdsoft_datetime.getCurrentTime();
|
1595 |
+
};
|
1596 |
+
|
1597 |
+
datetimepicker.setOptions = function (_options) {
|
1598 |
+
var highlightedDates = {};
|
1599 |
+
|
1600 |
+
options = $.extend(true, {}, options, _options);
|
1601 |
+
|
1602 |
+
if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {
|
1603 |
+
options.allowTimes = $.extend(true, [], _options.allowTimes);
|
1604 |
+
}
|
1605 |
+
|
1606 |
+
if (_options.weekends && $.isArray(_options.weekends) && _options.weekends.length) {
|
1607 |
+
options.weekends = $.extend(true, [], _options.weekends);
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
if (_options.allowDates && $.isArray(_options.allowDates) && _options.allowDates.length) {
|
1611 |
+
options.allowDates = $.extend(true, [], _options.allowDates);
|
1612 |
+
}
|
1613 |
+
|
1614 |
+
if (_options.allowDateRe && Object.prototype.toString.call(_options.allowDateRe)==="[object String]") {
|
1615 |
+
options.allowDateRe = new RegExp(_options.allowDateRe);
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
if (_options.highlightedDates && $.isArray(_options.highlightedDates) && _options.highlightedDates.length) {
|
1619 |
+
$.each(_options.highlightedDates, function (index, value) {
|
1620 |
+
var splitData = $.map(value.split(','), $.trim),
|
1621 |
+
exDesc,
|
1622 |
+
hDate = new HighlightedDate(dateHelper.parseDate(splitData[0], options.formatDate), splitData[1], splitData[2]), // date, desc, style
|
1623 |
+
keyDate = dateHelper.formatDate(hDate.date, options.formatDate);
|
1624 |
+
if (highlightedDates[keyDate] !== undefined) {
|
1625 |
+
exDesc = highlightedDates[keyDate].desc;
|
1626 |
+
if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
|
1627 |
+
highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
|
1628 |
+
}
|
1629 |
+
} else {
|
1630 |
+
highlightedDates[keyDate] = hDate;
|
1631 |
+
}
|
1632 |
+
});
|
1633 |
+
|
1634 |
+
options.highlightedDates = $.extend(true, [], highlightedDates);
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
if (_options.highlightedPeriods && $.isArray(_options.highlightedPeriods) && _options.highlightedPeriods.length) {
|
1638 |
+
highlightedDates = $.extend(true, [], options.highlightedDates);
|
1639 |
+
$.each(_options.highlightedPeriods, function (index, value) {
|
1640 |
+
var dateTest, // start date
|
1641 |
+
dateEnd,
|
1642 |
+
desc,
|
1643 |
+
hDate,
|
1644 |
+
keyDate,
|
1645 |
+
exDesc,
|
1646 |
+
style;
|
1647 |
+
if ($.isArray(value)) {
|
1648 |
+
dateTest = value[0];
|
1649 |
+
dateEnd = value[1];
|
1650 |
+
desc = value[2];
|
1651 |
+
style = value[3];
|
1652 |
+
}
|
1653 |
+
else {
|
1654 |
+
var splitData = $.map(value.split(','), $.trim);
|
1655 |
+
dateTest = dateHelper.parseDate(splitData[0], options.formatDate);
|
1656 |
+
dateEnd = dateHelper.parseDate(splitData[1], options.formatDate);
|
1657 |
+
desc = splitData[2];
|
1658 |
+
style = splitData[3];
|
1659 |
+
}
|
1660 |
+
|
1661 |
+
while (dateTest <= dateEnd) {
|
1662 |
+
hDate = new HighlightedDate(dateTest, desc, style);
|
1663 |
+
keyDate = dateHelper.formatDate(dateTest, options.formatDate);
|
1664 |
+
dateTest.setDate(dateTest.getDate() + 1);
|
1665 |
+
if (highlightedDates[keyDate] !== undefined) {
|
1666 |
+
exDesc = highlightedDates[keyDate].desc;
|
1667 |
+
if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
|
1668 |
+
highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
|
1669 |
+
}
|
1670 |
+
} else {
|
1671 |
+
highlightedDates[keyDate] = hDate;
|
1672 |
+
}
|
1673 |
+
}
|
1674 |
+
});
|
1675 |
+
|
1676 |
+
options.highlightedDates = $.extend(true, [], highlightedDates);
|
1677 |
+
}
|
1678 |
+
|
1679 |
+
if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {
|
1680 |
+
options.disabledDates = $.extend(true, [], _options.disabledDates);
|
1681 |
+
}
|
1682 |
+
|
1683 |
+
if (_options.disabledWeekDays && $.isArray(_options.disabledWeekDays) && _options.disabledWeekDays.length) {
|
1684 |
+
options.disabledWeekDays = $.extend(true, [], _options.disabledWeekDays);
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
if ((options.open || options.opened) && (!options.inline)) {
|
1688 |
+
input.trigger('open.xdsoft');
|
1689 |
+
}
|
1690 |
+
|
1691 |
+
if (options.inline) {
|
1692 |
+
triggerAfterOpen = true;
|
1693 |
+
datetimepicker.addClass('xdsoft_inline');
|
1694 |
+
input.after(datetimepicker).hide();
|
1695 |
+
}
|
1696 |
+
|
1697 |
+
if (options.inverseButton) {
|
1698 |
+
options.next = 'xdsoft_prev';
|
1699 |
+
options.prev = 'xdsoft_next';
|
1700 |
+
}
|
1701 |
+
|
1702 |
+
if (options.datepicker) {
|
1703 |
+
datepicker.addClass('active');
|
1704 |
+
} else {
|
1705 |
+
datepicker.removeClass('active');
|
1706 |
+
}
|
1707 |
+
|
1708 |
+
if (options.timepicker) {
|
1709 |
+
timepicker.addClass('active');
|
1710 |
+
} else {
|
1711 |
+
timepicker.removeClass('active');
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
if (options.value) {
|
1715 |
+
_xdsoft_datetime.setCurrentTime(options.value);
|
1716 |
+
if (input && input.val) {
|
1717 |
+
input.val(_xdsoft_datetime.str);
|
1718 |
+
}
|
1719 |
+
}
|
1720 |
+
|
1721 |
+
if (isNaN(options.dayOfWeekStart)) {
|
1722 |
+
options.dayOfWeekStart = 0;
|
1723 |
+
} else {
|
1724 |
+
options.dayOfWeekStart = parseInt(options.dayOfWeekStart, 10) % 7;
|
1725 |
+
}
|
1726 |
+
|
1727 |
+
if (!options.timepickerScrollbar) {
|
1728 |
+
timeboxparent.xdsoftScroller('hide');
|
1729 |
+
}
|
1730 |
+
|
1731 |
+
if (options.minDate && /^[\+\-](.*)$/.test(options.minDate)) {
|
1732 |
+
options.minDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.minDate), options.formatDate);
|
1733 |
+
}
|
1734 |
+
|
1735 |
+
if (options.maxDate && /^[\+\-](.*)$/.test(options.maxDate)) {
|
1736 |
+
options.maxDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.maxDate), options.formatDate);
|
1737 |
+
}
|
1738 |
+
|
1739 |
+
applyButton.toggle(options.showApplyButton);
|
1740 |
+
|
1741 |
+
month_picker
|
1742 |
+
.find('.xdsoft_today_button')
|
1743 |
+
.css('visibility', !options.todayButton ? 'hidden' : 'visible');
|
1744 |
+
|
1745 |
+
month_picker
|
1746 |
+
.find('.' + options.prev)
|
1747 |
+
.css('visibility', !options.prevButton ? 'hidden' : 'visible');
|
1748 |
+
|
1749 |
+
month_picker
|
1750 |
+
.find('.' + options.next)
|
1751 |
+
.css('visibility', !options.nextButton ? 'hidden' : 'visible');
|
1752 |
+
|
1753 |
+
setMask(options);
|
1754 |
+
|
1755 |
+
if (options.validateOnBlur) {
|
1756 |
+
input
|
1757 |
+
.off('blur.xdsoft')
|
1758 |
+
.on('blur.xdsoft', function () {
|
1759 |
+
if (options.allowBlank && (!$.trim($(this).val()).length || (typeof options.mask == "string" && $.trim($(this).val()) === options.mask.replace(/[0-9]/g, '_')))) {
|
1760 |
+
$(this).val(null);
|
1761 |
+
datetimepicker.data('xdsoft_datetime').empty();
|
1762 |
+
} else {
|
1763 |
+
var d = dateHelper.parseDate($(this).val(), options.format);
|
1764 |
+
if (d) { // parseDate() may skip some invalid parts like date or time, so make it clear for user: show parsed date/time
|
1765 |
+
$(this).val(dateHelper.formatDate(d, options.format));
|
1766 |
+
} else {
|
1767 |
+
var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
|
1768 |
+
splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
|
1769 |
+
|
1770 |
+
// parse the numbers as 0312 => 03:12
|
1771 |
+
if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
|
1772 |
+
$(this).val([splittedHours, splittedMinutes].map(function (item) {
|
1773 |
+
return item > 9 ? item : '0' + item;
|
1774 |
+
}).join(':'));
|
1775 |
+
} else {
|
1776 |
+
$(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
|
1777 |
+
}
|
1778 |
+
}
|
1779 |
+
datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
|
1780 |
+
}
|
1781 |
+
|
1782 |
+
datetimepicker.trigger('changedatetime.xdsoft');
|
1783 |
+
datetimepicker.trigger('close.xdsoft');
|
1784 |
+
});
|
1785 |
+
}
|
1786 |
+
options.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;
|
1787 |
+
|
1788 |
+
datetimepicker
|
1789 |
+
.trigger('xchange.xdsoft')
|
1790 |
+
.trigger('afterOpen.xdsoft');
|
1791 |
+
};
|
1792 |
+
|
1793 |
+
datetimepicker
|
1794 |
+
.data('options', options)
|
1795 |
+
.on('touchstart mousedown.xdsoft', function (event) {
|
1796 |
+
event.stopPropagation();
|
1797 |
+
event.preventDefault();
|
1798 |
+
yearselect.hide();
|
1799 |
+
monthselect.hide();
|
1800 |
+
return false;
|
1801 |
+
});
|
1802 |
+
|
1803 |
+
//scroll_element = timepicker.find('.xdsoft_time_box');
|
1804 |
+
timeboxparent.append(timebox);
|
1805 |
+
timeboxparent.xdsoftScroller();
|
1806 |
+
|
1807 |
+
datetimepicker.on('afterOpen.xdsoft', function () {
|
1808 |
+
timeboxparent.xdsoftScroller();
|
1809 |
+
});
|
1810 |
+
|
1811 |
+
datetimepicker
|
1812 |
+
.append(datepicker)
|
1813 |
+
.append(timepicker);
|
1814 |
+
|
1815 |
+
if (options.withoutCopyright !== true) {
|
1816 |
+
datetimepicker
|
1817 |
+
.append(xdsoft_copyright);
|
1818 |
+
}
|
1819 |
+
|
1820 |
+
datepicker
|
1821 |
+
.append(month_picker)
|
1822 |
+
.append(calendar)
|
1823 |
+
.append(applyButton);
|
1824 |
+
|
1825 |
+
$(options.parentID)
|
1826 |
+
.append(datetimepicker);
|
1827 |
+
|
1828 |
+
XDSoft_datetime = function () {
|
1829 |
+
var _this = this;
|
1830 |
+
_this.now = function (norecursion) {
|
1831 |
+
var d = new Date(),
|
1832 |
+
date,
|
1833 |
+
time;
|
1834 |
+
|
1835 |
+
if (!norecursion && options.defaultDate) {
|
1836 |
+
date = _this.strToDateTime(options.defaultDate);
|
1837 |
+
d.setFullYear(date.getFullYear());
|
1838 |
+
d.setMonth(date.getMonth());
|
1839 |
+
d.setDate(date.getDate());
|
1840 |
+
}
|
1841 |
+
|
1842 |
+
if (options.yearOffset) {
|
1843 |
+
d.setFullYear(d.getFullYear() + options.yearOffset);
|
1844 |
+
}
|
1845 |
+
|
1846 |
+
if (!norecursion && options.defaultTime) {
|
1847 |
+
time = _this.strtotime(options.defaultTime);
|
1848 |
+
d.setHours(time.getHours());
|
1849 |
+
d.setMinutes(time.getMinutes());
|
1850 |
+
}
|
1851 |
+
return d;
|
1852 |
+
};
|
1853 |
+
|
1854 |
+
_this.isValidDate = function (d) {
|
1855 |
+
if (Object.prototype.toString.call(d) !== "[object Date]") {
|
1856 |
+
return false;
|
1857 |
+
}
|
1858 |
+
return !isNaN(d.getTime());
|
1859 |
+
};
|
1860 |
+
|
1861 |
+
_this.setCurrentTime = function (dTime, requireValidDate) {
|
1862 |
+
if (typeof dTime === 'string') {
|
1863 |
+
_this.currentTime = _this.strToDateTime(dTime);
|
1864 |
+
}
|
1865 |
+
else if (_this.isValidDate(dTime)) {
|
1866 |
+
_this.currentTime = dTime;
|
1867 |
+
}
|
1868 |
+
else if (!dTime && !requireValidDate && options.allowBlank) {
|
1869 |
+
_this.currentTime = null;
|
1870 |
+
}
|
1871 |
+
else {
|
1872 |
+
_this.currentTime = _this.now();
|
1873 |
+
}
|
1874 |
+
|
1875 |
+
datetimepicker.trigger('xchange.xdsoft');
|
1876 |
+
};
|
1877 |
+
|
1878 |
+
_this.empty = function () {
|
1879 |
+
_this.currentTime = null;
|
1880 |
+
};
|
1881 |
+
|
1882 |
+
_this.getCurrentTime = function (dTime) {
|
1883 |
+
return _this.currentTime;
|
1884 |
+
};
|
1885 |
+
|
1886 |
+
_this.nextMonth = function () {
|
1887 |
+
|
1888 |
+
if (_this.currentTime === undefined || _this.currentTime === null) {
|
1889 |
+
_this.currentTime = _this.now();
|
1890 |
+
}
|
1891 |
+
|
1892 |
+
var month = _this.currentTime.getMonth() + 1,
|
1893 |
+
year;
|
1894 |
+
if (month === 12) {
|
1895 |
+
_this.currentTime.setFullYear(_this.currentTime.getFullYear() + 1);
|
1896 |
+
month = 0;
|
1897 |
+
}
|
1898 |
+
|
1899 |
+
year = _this.currentTime.getFullYear();
|
1900 |
+
|
1901 |
+
_this.currentTime.setDate(
|
1902 |
+
Math.min(
|
1903 |
+
new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
|
1904 |
+
_this.currentTime.getDate()
|
1905 |
+
)
|
1906 |
+
);
|
1907 |
+
_this.currentTime.setMonth(month);
|
1908 |
+
|
1909 |
+
if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
|
1910 |
+
options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
1911 |
+
}
|
1912 |
+
|
1913 |
+
if (year !== _this.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
|
1914 |
+
options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
1915 |
+
}
|
1916 |
+
|
1917 |
+
datetimepicker.trigger('xchange.xdsoft');
|
1918 |
+
return month;
|
1919 |
+
};
|
1920 |
+
|
1921 |
+
_this.prevMonth = function () {
|
1922 |
+
|
1923 |
+
if (_this.currentTime === undefined || _this.currentTime === null) {
|
1924 |
+
_this.currentTime = _this.now();
|
1925 |
+
}
|
1926 |
+
|
1927 |
+
var month = _this.currentTime.getMonth() - 1;
|
1928 |
+
if (month === -1) {
|
1929 |
+
_this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);
|
1930 |
+
month = 11;
|
1931 |
+
}
|
1932 |
+
_this.currentTime.setDate(
|
1933 |
+
Math.min(
|
1934 |
+
new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
|
1935 |
+
_this.currentTime.getDate()
|
1936 |
+
)
|
1937 |
+
);
|
1938 |
+
_this.currentTime.setMonth(month);
|
1939 |
+
if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
|
1940 |
+
options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
1941 |
+
}
|
1942 |
+
datetimepicker.trigger('xchange.xdsoft');
|
1943 |
+
return month;
|
1944 |
+
};
|
1945 |
+
|
1946 |
+
_this.getWeekOfYear = function (datetime) {
|
1947 |
+
if (options.onGetWeekOfYear && $.isFunction(options.onGetWeekOfYear)) {
|
1948 |
+
var week = options.onGetWeekOfYear.call(datetimepicker, datetime);
|
1949 |
+
if (typeof week !== 'undefined') {
|
1950 |
+
return week;
|
1951 |
+
}
|
1952 |
+
}
|
1953 |
+
var onejan = new Date(datetime.getFullYear(), 0, 1);
|
1954 |
+
//First week of the year is th one with the first Thursday according to ISO8601
|
1955 |
+
if(onejan.getDay()!=4)
|
1956 |
+
onejan.setMonth(0, 1 + ((4 - onejan.getDay()+ 7) % 7));
|
1957 |
+
return Math.ceil((((datetime - onejan) / 86400000) + onejan.getDay() + 1) / 7);
|
1958 |
+
};
|
1959 |
+
|
1960 |
+
_this.strToDateTime = function (sDateTime) {
|
1961 |
+
var tmpDate = [], timeOffset, currentTime;
|
1962 |
+
|
1963 |
+
if (sDateTime && sDateTime instanceof Date && _this.isValidDate(sDateTime)) {
|
1964 |
+
return sDateTime;
|
1965 |
+
}
|
1966 |
+
|
1967 |
+
tmpDate = /^(\+|\-)(.*)$/.exec(sDateTime);
|
1968 |
+
if (tmpDate) {
|
1969 |
+
tmpDate[2] = dateHelper.parseDate(tmpDate[2], options.formatDate);
|
1970 |
+
}
|
1971 |
+
if (tmpDate && tmpDate[2]) {
|
1972 |
+
timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;
|
1973 |
+
currentTime = new Date((_this.now(true)).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);
|
1974 |
+
} else {
|
1975 |
+
currentTime = sDateTime ? dateHelper.parseDate(sDateTime, options.format) : _this.now();
|
1976 |
+
}
|
1977 |
+
|
1978 |
+
if (!_this.isValidDate(currentTime)) {
|
1979 |
+
currentTime = _this.now();
|
1980 |
+
}
|
1981 |
+
|
1982 |
+
return currentTime;
|
1983 |
+
};
|
1984 |
+
|
1985 |
+
_this.strToDate = function (sDate) {
|
1986 |
+
if (sDate && sDate instanceof Date && _this.isValidDate(sDate)) {
|
1987 |
+
return sDate;
|
1988 |
+
}
|
1989 |
+
|
1990 |
+
var currentTime = sDate ? dateHelper.parseDate(sDate, options.formatDate) : _this.now(true);
|
1991 |
+
if (!_this.isValidDate(currentTime)) {
|
1992 |
+
currentTime = _this.now(true);
|
1993 |
+
}
|
1994 |
+
return currentTime;
|
1995 |
+
};
|
1996 |
+
|
1997 |
+
_this.strtotime = function (sTime) {
|
1998 |
+
if (sTime && sTime instanceof Date && _this.isValidDate(sTime)) {
|
1999 |
+
return sTime;
|
2000 |
+
}
|
2001 |
+
var currentTime = sTime ? dateHelper.parseDate(sTime, options.formatTime) : _this.now(true);
|
2002 |
+
if (!_this.isValidDate(currentTime)) {
|
2003 |
+
currentTime = _this.now(true);
|
2004 |
+
}
|
2005 |
+
return currentTime;
|
2006 |
+
};
|
2007 |
+
|
2008 |
+
_this.str = function () {
|
2009 |
+
return dateHelper.formatDate(_this.currentTime, options.format);
|
2010 |
+
};
|
2011 |
+
_this.currentTime = this.now();
|
2012 |
+
};
|
2013 |
+
|
2014 |
+
_xdsoft_datetime = new XDSoft_datetime();
|
2015 |
+
|
2016 |
+
applyButton.on('touchend click', function (e) {//pathbrite
|
2017 |
+
e.preventDefault();
|
2018 |
+
datetimepicker.data('changed', true);
|
2019 |
+
_xdsoft_datetime.setCurrentTime(getCurrentValue());
|
2020 |
+
input.val(_xdsoft_datetime.str());
|
2021 |
+
datetimepicker.trigger('close.xdsoft');
|
2022 |
+
});
|
2023 |
+
month_picker
|
2024 |
+
.find('.xdsoft_today_button')
|
2025 |
+
.on('touchend mousedown.xdsoft', function () {
|
2026 |
+
datetimepicker.data('changed', true);
|
2027 |
+
_xdsoft_datetime.setCurrentTime(0, true);
|
2028 |
+
datetimepicker.trigger('afterOpen.xdsoft');
|
2029 |
+
}).on('dblclick.xdsoft', function () {
|
2030 |
+
var currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate;
|
2031 |
+
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
|
2032 |
+
minDate = _xdsoft_datetime.strToDate(options.minDate);
|
2033 |
+
minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
|
2034 |
+
if (currentDate < minDate) {
|
2035 |
+
return;
|
2036 |
+
}
|
2037 |
+
maxDate = _xdsoft_datetime.strToDate(options.maxDate);
|
2038 |
+
maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());
|
2039 |
+
if (currentDate > maxDate) {
|
2040 |
+
return;
|
2041 |
+
}
|
2042 |
+
input.val(_xdsoft_datetime.str());
|
2043 |
+
input.trigger('change');
|
2044 |
+
datetimepicker.trigger('close.xdsoft');
|
2045 |
+
});
|
2046 |
+
month_picker
|
2047 |
+
.find('.xdsoft_prev,.xdsoft_next')
|
2048 |
+
.on('touchend mousedown.xdsoft', function () {
|
2049 |
+
var $this = $(this),
|
2050 |
+
timer = 0,
|
2051 |
+
stop = false;
|
2052 |
+
|
2053 |
+
(function arguments_callee1(v) {
|
2054 |
+
if ($this.hasClass(options.next)) {
|
2055 |
+
_xdsoft_datetime.nextMonth();
|
2056 |
+
} else if ($this.hasClass(options.prev)) {
|
2057 |
+
_xdsoft_datetime.prevMonth();
|
2058 |
+
}
|
2059 |
+
if (options.monthChangeSpinner) {
|
2060 |
+
if (!stop) {
|
2061 |
+
timer = setTimeout(arguments_callee1, v || 100);
|
2062 |
+
}
|
2063 |
+
}
|
2064 |
+
}(500));
|
2065 |
+
|
2066 |
+
$([document.body, window]).on('touchend mouseup.xdsoft', function arguments_callee2() {
|
2067 |
+
clearTimeout(timer);
|
2068 |
+
stop = true;
|
2069 |
+
$([document.body, window]).off('touchend mouseup.xdsoft', arguments_callee2);
|
2070 |
+
});
|
2071 |
+
});
|
2072 |
+
|
2073 |
+
timepicker
|
2074 |
+
.find('.xdsoft_prev,.xdsoft_next')
|
2075 |
+
.on('touchend mousedown.xdsoft', function () {
|
2076 |
+
var $this = $(this),
|
2077 |
+
timer = 0,
|
2078 |
+
stop = false,
|
2079 |
+
period = 110;
|
2080 |
+
(function arguments_callee4(v) {
|
2081 |
+
var pheight = timeboxparent[0].clientHeight,
|
2082 |
+
height = timebox[0].offsetHeight,
|
2083 |
+
top = Math.abs(parseInt(timebox.css('marginTop'), 10));
|
2084 |
+
if ($this.hasClass(options.next) && (height - pheight) - options.timeHeightInTimePicker >= top) {
|
2085 |
+
timebox.css('marginTop', '-' + (top + options.timeHeightInTimePicker) + 'px');
|
2086 |
+
} else if ($this.hasClass(options.prev) && top - options.timeHeightInTimePicker >= 0) {
|
2087 |
+
timebox.css('marginTop', '-' + (top - options.timeHeightInTimePicker) + 'px');
|
2088 |
+
}
|
2089 |
+
/**
|
2090 |
+
* Fixed bug:
|
2091 |
+
* When using css3 transition, it will cause a bug that you cannot scroll the timepicker list.
|
2092 |
+
* The reason is that the transition-duration time, if you set it to 0, all things fine, otherwise, this
|
2093 |
+
* would cause a bug when you use jquery.css method.
|
2094 |
+
* Let's say: * { transition: all .5s ease; }
|
2095 |
+
* jquery timebox.css('marginTop') will return the original value which is before you clicking the next/prev button,
|
2096 |
+
* meanwhile the timebox[0].style.marginTop will return the right value which is after you clicking the
|
2097 |
+
* next/prev button.
|
2098 |
+
*
|
2099 |
+
* What we should do:
|
2100 |
+
* Replace timebox.css('marginTop') with timebox[0].style.marginTop.
|
2101 |
+
*/
|
2102 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [Math.abs(parseInt(timebox[0].style.marginTop, 10) / (height - pheight))]);
|
2103 |
+
period = (period > 10) ? 10 : period - 10;
|
2104 |
+
if (!stop) {
|
2105 |
+
timer = setTimeout(arguments_callee4, v || period);
|
2106 |
+
}
|
2107 |
+
}(500));
|
2108 |
+
$([document.body, window]).on('touchend mouseup.xdsoft', function arguments_callee5() {
|
2109 |
+
clearTimeout(timer);
|
2110 |
+
stop = true;
|
2111 |
+
$([document.body, window])
|
2112 |
+
.off('touchend mouseup.xdsoft', arguments_callee5);
|
2113 |
+
});
|
2114 |
+
});
|
2115 |
+
|
2116 |
+
xchangeTimer = 0;
|
2117 |
+
// base handler - generating a calendar and timepicker
|
2118 |
+
datetimepicker
|
2119 |
+
.on('xchange.xdsoft', function (event) {
|
2120 |
+
clearTimeout(xchangeTimer);
|
2121 |
+
xchangeTimer = setTimeout(function () {
|
2122 |
+
|
2123 |
+
if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
|
2124 |
+
//In case blanks are allowed, delay construction until we have a valid date
|
2125 |
+
if (options.allowBlank)
|
2126 |
+
return;
|
2127 |
+
|
2128 |
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
2129 |
+
}
|
2130 |
+
|
2131 |
+
var table = '',
|
2132 |
+
start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),
|
2133 |
+
i = 0,
|
2134 |
+
j,
|
2135 |
+
today = _xdsoft_datetime.now(),
|
2136 |
+
maxDate = false,
|
2137 |
+
minDate = false,
|
2138 |
+
hDate,
|
2139 |
+
day,
|
2140 |
+
d,
|
2141 |
+
y,
|
2142 |
+
m,
|
2143 |
+
w,
|
2144 |
+
classes = [],
|
2145 |
+
customDateSettings,
|
2146 |
+
newRow = true,
|
2147 |
+
time = '',
|
2148 |
+
h = '',
|
2149 |
+
line_time,
|
2150 |
+
description;
|
2151 |
+
|
2152 |
+
while (start.getDay() !== options.dayOfWeekStart) {
|
2153 |
+
start.setDate(start.getDate() - 1);
|
2154 |
+
}
|
2155 |
+
|
2156 |
+
table += '<table><thead><tr>';
|
2157 |
+
|
2158 |
+
if (options.weeks) {
|
2159 |
+
table += '<th></th>';
|
2160 |
+
}
|
2161 |
+
|
2162 |
+
for (j = 0; j < 7; j += 1) {
|
2163 |
+
table += '<th>' + options.i18n[globalLocale].dayOfWeekShort[(j + options.dayOfWeekStart) % 7] + '</th>';
|
2164 |
+
}
|
2165 |
+
|
2166 |
+
table += '</tr></thead>';
|
2167 |
+
table += '<tbody>';
|
2168 |
+
|
2169 |
+
if (options.maxDate !== false) {
|
2170 |
+
maxDate = _xdsoft_datetime.strToDate(options.maxDate);
|
2171 |
+
maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate(), 23, 59, 59, 999);
|
2172 |
+
}
|
2173 |
+
|
2174 |
+
if (options.minDate !== false) {
|
2175 |
+
minDate = _xdsoft_datetime.strToDate(options.minDate);
|
2176 |
+
minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
|
2177 |
+
}
|
2178 |
+
|
2179 |
+
while (i < _xdsoft_datetime.currentTime.countDaysInMonth() || start.getDay() !== options.dayOfWeekStart || _xdsoft_datetime.currentTime.getMonth() === start.getMonth()) {
|
2180 |
+
classes = [];
|
2181 |
+
i += 1;
|
2182 |
+
|
2183 |
+
day = start.getDay();
|
2184 |
+
d = start.getDate();
|
2185 |
+
y = start.getFullYear();
|
2186 |
+
m = start.getMonth();
|
2187 |
+
w = _xdsoft_datetime.getWeekOfYear(start);
|
2188 |
+
description = '';
|
2189 |
+
|
2190 |
+
classes.push('xdsoft_date');
|
2191 |
+
|
2192 |
+
if (options.beforeShowDay && $.isFunction(options.beforeShowDay.call)) {
|
2193 |
+
customDateSettings = options.beforeShowDay.call(datetimepicker, start);
|
2194 |
+
} else {
|
2195 |
+
customDateSettings = null;
|
2196 |
+
}
|
2197 |
+
|
2198 |
+
if(options.allowDateRe && Object.prototype.toString.call(options.allowDateRe) === "[object RegExp]"){
|
2199 |
+
if(!options.allowDateRe.test(dateHelper.formatDate(start, options.formatDate))){
|
2200 |
+
classes.push('xdsoft_disabled');
|
2201 |
+
}
|
2202 |
+
} else if(options.allowDates && options.allowDates.length>0){
|
2203 |
+
if(options.allowDates.indexOf(dateHelper.formatDate(start, options.formatDate)) === -1){
|
2204 |
+
classes.push('xdsoft_disabled');
|
2205 |
+
}
|
2206 |
+
} else if ((maxDate !== false && start > maxDate) || (minDate !== false && start < minDate) || (customDateSettings && customDateSettings[0] === false)) {
|
2207 |
+
classes.push('xdsoft_disabled');
|
2208 |
+
} else if (options.disabledDates.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {
|
2209 |
+
classes.push('xdsoft_disabled');
|
2210 |
+
} else if (options.disabledWeekDays.indexOf(day) !== -1) {
|
2211 |
+
classes.push('xdsoft_disabled');
|
2212 |
+
}else if (input.is('[readonly]')) {
|
2213 |
+
classes.push('xdsoft_disabled');
|
2214 |
+
}
|
2215 |
+
|
2216 |
+
if (customDateSettings && customDateSettings[1] !== "") {
|
2217 |
+
classes.push(customDateSettings[1]);
|
2218 |
+
}
|
2219 |
+
|
2220 |
+
if (_xdsoft_datetime.currentTime.getMonth() !== m) {
|
2221 |
+
classes.push('xdsoft_other_month');
|
2222 |
+
}
|
2223 |
+
|
2224 |
+
if ((options.defaultSelect || datetimepicker.data('changed')) && dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {
|
2225 |
+
classes.push('xdsoft_current');
|
2226 |
+
}
|
2227 |
+
|
2228 |
+
if (dateHelper.formatDate(today, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {
|
2229 |
+
classes.push('xdsoft_today');
|
2230 |
+
}
|
2231 |
+
|
2232 |
+
if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {
|
2233 |
+
classes.push('xdsoft_weekend');
|
2234 |
+
}
|
2235 |
+
|
2236 |
+
if (options.highlightedDates[dateHelper.formatDate(start, options.formatDate)] !== undefined) {
|
2237 |
+
hDate = options.highlightedDates[dateHelper.formatDate(start, options.formatDate)];
|
2238 |
+
classes.push(hDate.style === undefined ? 'xdsoft_highlighted_default' : hDate.style);
|
2239 |
+
description = hDate.desc === undefined ? '' : hDate.desc;
|
2240 |
+
}
|
2241 |
+
|
2242 |
+
if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {
|
2243 |
+
classes.push(options.beforeShowDay(start));
|
2244 |
+
}
|
2245 |
+
|
2246 |
+
if (newRow) {
|
2247 |
+
table += '<tr>';
|
2248 |
+
newRow = false;
|
2249 |
+
if (options.weeks) {
|
2250 |
+
table += '<th>' + w + '</th>';
|
2251 |
+
}
|
2252 |
+
}
|
2253 |
+
|
2254 |
+
table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '" title="' + description + '">' +
|
2255 |
+
'<div>' + d + '</div>' +
|
2256 |
+
'</td>';
|
2257 |
+
|
2258 |
+
if (start.getDay() === options.dayOfWeekStartPrev) {
|
2259 |
+
table += '</tr>';
|
2260 |
+
newRow = true;
|
2261 |
+
}
|
2262 |
+
|
2263 |
+
start.setDate(d + 1);
|
2264 |
+
}
|
2265 |
+
table += '</tbody></table>';
|
2266 |
+
|
2267 |
+
calendar.html(table);
|
2268 |
+
|
2269 |
+
month_picker.find('.xdsoft_label span').eq(0).text(options.i18n[globalLocale].months[_xdsoft_datetime.currentTime.getMonth()]);
|
2270 |
+
month_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear());
|
2271 |
+
|
2272 |
+
// generate timebox
|
2273 |
+
time = '';
|
2274 |
+
h = '';
|
2275 |
+
m = '';
|
2276 |
+
|
2277 |
+
line_time = function line_time(h, m) {
|
2278 |
+
var now = _xdsoft_datetime.now(), optionDateTime, current_time,
|
2279 |
+
isALlowTimesInit = options.allowTimes && $.isArray(options.allowTimes) && options.allowTimes.length;
|
2280 |
+
now.setHours(h);
|
2281 |
+
h = parseInt(now.getHours(), 10);
|
2282 |
+
now.setMinutes(m);
|
2283 |
+
m = parseInt(now.getMinutes(), 10);
|
2284 |
+
optionDateTime = new Date(_xdsoft_datetime.currentTime);
|
2285 |
+
optionDateTime.setHours(h);
|
2286 |
+
optionDateTime.setMinutes(m);
|
2287 |
+
classes = [];
|
2288 |
+
if ((options.minDateTime !== false && options.minDateTime > optionDateTime) || (options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) {
|
2289 |
+
classes.push('xdsoft_disabled');
|
2290 |
+
} else if ((options.minDateTime !== false && options.minDateTime > optionDateTime) || ((options.disabledMinTime !== false && now.getTime() > _xdsoft_datetime.strtotime(options.disabledMinTime).getTime()) && (options.disabledMaxTime !== false && now.getTime() < _xdsoft_datetime.strtotime(options.disabledMaxTime).getTime()))) {
|
2291 |
+
classes.push('xdsoft_disabled');
|
2292 |
+
} else if (input.is('[readonly]')) {
|
2293 |
+
classes.push('xdsoft_disabled');
|
2294 |
+
}
|
2295 |
+
|
2296 |
+
current_time = new Date(_xdsoft_datetime.currentTime);
|
2297 |
+
current_time.setHours(parseInt(_xdsoft_datetime.currentTime.getHours(), 10));
|
2298 |
+
|
2299 |
+
if (!isALlowTimesInit) {
|
2300 |
+
current_time.setMinutes(Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step);
|
2301 |
+
}
|
2302 |
+
|
2303 |
+
if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && current_time.getHours() === parseInt(h, 10) && ((!isALlowTimesInit && options.step > 59) || current_time.getMinutes() === parseInt(m, 10))) {
|
2304 |
+
if (options.defaultSelect || datetimepicker.data('changed')) {
|
2305 |
+
classes.push('xdsoft_current');
|
2306 |
+
} else if (options.initTime) {
|
2307 |
+
classes.push('xdsoft_init_time');
|
2308 |
+
}
|
2309 |
+
}
|
2310 |
+
if (parseInt(today.getHours(), 10) === parseInt(h, 10) && parseInt(today.getMinutes(), 10) === parseInt(m, 10)) {
|
2311 |
+
classes.push('xdsoft_today');
|
2312 |
+
}
|
2313 |
+
time += '<div class="xdsoft_time ' + classes.join(' ') + '" data-hour="' + h + '" data-minute="' + m + '">' + dateHelper.formatDate(now, options.formatTime) + '</div>';
|
2314 |
+
};
|
2315 |
+
|
2316 |
+
if (!options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length) {
|
2317 |
+
for (i = 0, j = 0; i < (options.hours12 ? 12 : 24); i += 1) {
|
2318 |
+
for (j = 0; j < 60; j += options.step) {
|
2319 |
+
h = (i < 10 ? '0' : '') + i;
|
2320 |
+
m = (j < 10 ? '0' : '') + j;
|
2321 |
+
line_time(h, m);
|
2322 |
+
}
|
2323 |
+
}
|
2324 |
+
} else {
|
2325 |
+
for (i = 0; i < options.allowTimes.length; i += 1) {
|
2326 |
+
h = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();
|
2327 |
+
m = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();
|
2328 |
+
line_time(h, m);
|
2329 |
+
}
|
2330 |
+
}
|
2331 |
+
|
2332 |
+
timebox.html(time);
|
2333 |
+
|
2334 |
+
opt = '';
|
2335 |
+
i = 0;
|
2336 |
+
|
2337 |
+
for (i = parseInt(options.yearStart, 10) + options.yearOffset; i <= parseInt(options.yearEnd, 10) + options.yearOffset; i += 1) {
|
2338 |
+
opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getFullYear() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + i + '</div>';
|
2339 |
+
}
|
2340 |
+
yearselect.children().eq(0)
|
2341 |
+
.html(opt);
|
2342 |
+
|
2343 |
+
for (i = parseInt(options.monthStart, 10), opt = ''; i <= parseInt(options.monthEnd, 10); i += 1) {
|
2344 |
+
opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[globalLocale].months[i] + '</div>';
|
2345 |
+
}
|
2346 |
+
monthselect.children().eq(0).html(opt);
|
2347 |
+
$(datetimepicker)
|
2348 |
+
.trigger('generate.xdsoft');
|
2349 |
+
}, 10);
|
2350 |
+
event.stopPropagation();
|
2351 |
+
})
|
2352 |
+
.on('afterOpen.xdsoft', function () {
|
2353 |
+
if (options.timepicker) {
|
2354 |
+
var classType, pheight, height, top;
|
2355 |
+
if (timebox.find('.xdsoft_current').length) {
|
2356 |
+
classType = '.xdsoft_current';
|
2357 |
+
} else if (timebox.find('.xdsoft_init_time').length) {
|
2358 |
+
classType = '.xdsoft_init_time';
|
2359 |
+
}
|
2360 |
+
if (classType) {
|
2361 |
+
pheight = timeboxparent[0].clientHeight;
|
2362 |
+
height = timebox[0].offsetHeight;
|
2363 |
+
top = timebox.find(classType).index() * options.timeHeightInTimePicker + 1;
|
2364 |
+
if ((height - pheight) < top) {
|
2365 |
+
top = height - pheight;
|
2366 |
+
}
|
2367 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [parseInt(top, 10) / (height - pheight)]);
|
2368 |
+
} else {
|
2369 |
+
timeboxparent.trigger('scroll_element.xdsoft_scroller', [0]);
|
2370 |
+
}
|
2371 |
+
}
|
2372 |
+
});
|
2373 |
+
|
2374 |
+
timerclick = 0;
|
2375 |
+
calendar
|
2376 |
+
.on('touchend click.xdsoft', 'td', function (xdevent) {
|
2377 |
+
xdevent.stopPropagation(); // Prevents closing of Pop-ups, Modals and Flyouts in Bootstrap
|
2378 |
+
timerclick += 1;
|
2379 |
+
var $this = $(this),
|
2380 |
+
currentTime = _xdsoft_datetime.currentTime;
|
2381 |
+
|
2382 |
+
if (currentTime === undefined || currentTime === null) {
|
2383 |
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
2384 |
+
currentTime = _xdsoft_datetime.currentTime;
|
2385 |
+
}
|
2386 |
+
|
2387 |
+
if ($this.hasClass('xdsoft_disabled')) {
|
2388 |
+
return false;
|
2389 |
+
}
|
2390 |
+
|
2391 |
+
currentTime.setDate(1);
|
2392 |
+
currentTime.setFullYear($this.data('year'));
|
2393 |
+
currentTime.setMonth($this.data('month'));
|
2394 |
+
currentTime.setDate($this.data('date'));
|
2395 |
+
|
2396 |
+
datetimepicker.trigger('select.xdsoft', [currentTime]);
|
2397 |
+
|
2398 |
+
input.val(_xdsoft_datetime.str());
|
2399 |
+
|
2400 |
+
if (options.onSelectDate && $.isFunction(options.onSelectDate)) {
|
2401 |
+
options.onSelectDate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
|
2402 |
+
}
|
2403 |
+
|
2404 |
+
datetimepicker.data('changed', true);
|
2405 |
+
datetimepicker.trigger('xchange.xdsoft');
|
2406 |
+
datetimepicker.trigger('changedatetime.xdsoft');
|
2407 |
+
if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === false && !options.timepicker))) && !options.inline) {
|
2408 |
+
datetimepicker.trigger('close.xdsoft');
|
2409 |
+
}
|
2410 |
+
setTimeout(function () {
|
2411 |
+
timerclick = 0;
|
2412 |
+
}, 200);
|
2413 |
+
});
|
2414 |
+
|
2415 |
+
timebox
|
2416 |
+
.on('touchmove', 'div', function () { currentlyScrollingTimeDiv = true; })
|
2417 |
+
.on('touchend click.xdsoft', 'div', function (xdevent) {
|
2418 |
+
xdevent.stopPropagation();
|
2419 |
+
if (currentlyScrollingTimeDiv) {
|
2420 |
+
currentlyScrollingTimeDiv = false;
|
2421 |
+
return;
|
2422 |
+
}
|
2423 |
+
var $this = $(this),
|
2424 |
+
currentTime = _xdsoft_datetime.currentTime;
|
2425 |
+
|
2426 |
+
if (currentTime === undefined || currentTime === null) {
|
2427 |
+
_xdsoft_datetime.currentTime = _xdsoft_datetime.now();
|
2428 |
+
currentTime = _xdsoft_datetime.currentTime;
|
2429 |
+
}
|
2430 |
+
|
2431 |
+
if ($this.hasClass('xdsoft_disabled')) {
|
2432 |
+
return false;
|
2433 |
+
}
|
2434 |
+
currentTime.setHours($this.data('hour'));
|
2435 |
+
currentTime.setMinutes($this.data('minute'));
|
2436 |
+
datetimepicker.trigger('select.xdsoft', [currentTime]);
|
2437 |
+
|
2438 |
+
datetimepicker.data('input').val(_xdsoft_datetime.str());
|
2439 |
+
|
2440 |
+
if (options.onSelectTime && $.isFunction(options.onSelectTime)) {
|
2441 |
+
options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
|
2442 |
+
}
|
2443 |
+
datetimepicker.data('changed', true);
|
2444 |
+
datetimepicker.trigger('xchange.xdsoft');
|
2445 |
+
datetimepicker.trigger('changedatetime.xdsoft');
|
2446 |
+
if (options.inline !== true && options.closeOnTimeSelect === true) {
|
2447 |
+
datetimepicker.trigger('close.xdsoft');
|
2448 |
+
}
|
2449 |
+
});
|
2450 |
+
|
2451 |
+
datepicker
|
2452 |
+
.on('mousewheel.xdsoft', function (event) {
|
2453 |
+
if (!options.scrollMonth) {
|
2454 |
+
return true;
|
2455 |
+
}
|
2456 |
+
if (event.deltaY < 0) {
|
2457 |
+
_xdsoft_datetime.nextMonth();
|
2458 |
+
} else {
|
2459 |
+
_xdsoft_datetime.prevMonth();
|
2460 |
+
}
|
2461 |
+
return false;
|
2462 |
+
});
|
2463 |
+
|
2464 |
+
input
|
2465 |
+
.on('mousewheel.xdsoft', function (event) {
|
2466 |
+
if (!options.scrollInput) {
|
2467 |
+
return true;
|
2468 |
+
}
|
2469 |
+
if (!options.datepicker && options.timepicker) {
|
2470 |
+
current_time_index = timebox.find('.xdsoft_current').length ? timebox.find('.xdsoft_current').eq(0).index() : 0;
|
2471 |
+
if (current_time_index + event.deltaY >= 0 && current_time_index + event.deltaY < timebox.children().length) {
|
2472 |
+
current_time_index += event.deltaY;
|
2473 |
+
}
|
2474 |
+
if (timebox.children().eq(current_time_index).length) {
|
2475 |
+
timebox.children().eq(current_time_index).trigger('mousedown');
|
2476 |
+
}
|
2477 |
+
return false;
|
2478 |
+
}
|
2479 |
+
if (options.datepicker && !options.timepicker) {
|
2480 |
+
datepicker.trigger(event, [event.deltaY, event.deltaX, event.deltaY]);
|
2481 |
+
if (input.val) {
|
2482 |
+
input.val(_xdsoft_datetime.str());
|
2483 |
+
}
|
2484 |
+
datetimepicker.trigger('changedatetime.xdsoft');
|
2485 |
+
return false;
|
2486 |
+
}
|
2487 |
+
});
|
2488 |
+
|
2489 |
+
datetimepicker
|
2490 |
+
.on('changedatetime.xdsoft', function (event) {
|
2491 |
+
if (options.onChangeDateTime && $.isFunction(options.onChangeDateTime)) {
|
2492 |
+
var $input = datetimepicker.data('input');
|
2493 |
+
options.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input, event);
|
2494 |
+
delete options.value;
|
2495 |
+
$input.trigger('change');
|
2496 |
+
}
|
2497 |
+
})
|
2498 |
+
.on('generate.xdsoft', function () {
|
2499 |
+
if (options.onGenerate && $.isFunction(options.onGenerate)) {
|
2500 |
+
options.onGenerate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
|
2501 |
+
}
|
2502 |
+
if (triggerAfterOpen) {
|
2503 |
+
datetimepicker.trigger('afterOpen.xdsoft');
|
2504 |
+
triggerAfterOpen = false;
|
2505 |
+
}
|
2506 |
+
})
|
2507 |
+
.on('click.xdsoft', function (xdevent) {
|
2508 |
+
xdevent.stopPropagation();
|
2509 |
+
});
|
2510 |
+
|
2511 |
+
current_time_index = 0;
|
2512 |
+
|
2513 |
+
/**
|
2514 |
+
* Runs the callback for each of the specified node's ancestors.
|
2515 |
+
*
|
2516 |
+
* Return FALSE from the callback to stop ascending.
|
2517 |
+
*
|
2518 |
+
* @param {DOMNode} node
|
2519 |
+
* @param {Function} callback
|
2520 |
+
* @returns {undefined}
|
2521 |
+
*/
|
2522 |
+
forEachAncestorOf = function (node, callback) {
|
2523 |
+
do {
|
2524 |
+
node = node.parentNode;
|
2525 |
+
|
2526 |
+
if (callback(node) === false) {
|
2527 |
+
break;
|
2528 |
+
}
|
2529 |
+
} while (node.nodeName !== 'HTML');
|
2530 |
+
};
|
2531 |
+
|
2532 |
+
/**
|
2533 |
+
* Sets the position of the picker.
|
2534 |
+
*
|
2535 |
+
* @returns {undefined}
|
2536 |
+
*/
|
2537 |
+
setPos = function () {
|
2538 |
+
var dateInputOffset,
|
2539 |
+
dateInputElem,
|
2540 |
+
verticalPosition,
|
2541 |
+
left,
|
2542 |
+
position,
|
2543 |
+
datetimepickerElem,
|
2544 |
+
dateInputHasFixedAncestor,
|
2545 |
+
$dateInput,
|
2546 |
+
windowWidth,
|
2547 |
+
verticalAnchorEdge,
|
2548 |
+
datetimepickerCss,
|
2549 |
+
windowHeight,
|
2550 |
+
windowScrollTop;
|
2551 |
+
|
2552 |
+
$dateInput = datetimepicker.data('input');
|
2553 |
+
dateInputOffset = $dateInput.offset();
|
2554 |
+
dateInputElem = $dateInput[0];
|
2555 |
+
|
2556 |
+
verticalAnchorEdge = 'top';
|
2557 |
+
verticalPosition = (dateInputOffset.top + dateInputElem.offsetHeight) - 1;
|
2558 |
+
left = dateInputOffset.left;
|
2559 |
+
position = "absolute";
|
2560 |
+
|
2561 |
+
windowWidth = $(window).width();
|
2562 |
+
windowHeight = $(window).height();
|
2563 |
+
windowScrollTop = $(window).scrollTop();
|
2564 |
+
|
2565 |
+
if ((document.documentElement.clientWidth - dateInputOffset.left) < datepicker.parent().outerWidth(true)) {
|
2566 |
+
var diff = datepicker.parent().outerWidth(true) - dateInputElem.offsetWidth;
|
2567 |
+
left = left - diff;
|
2568 |
+
}
|
2569 |
+
|
2570 |
+
if ($dateInput.parent().css('direction') === 'rtl') {
|
2571 |
+
left -= (datetimepicker.outerWidth() - $dateInput.outerWidth());
|
2572 |
+
}
|
2573 |
+
|
2574 |
+
if (options.fixed) {
|
2575 |
+
verticalPosition -= windowScrollTop;
|
2576 |
+
left -= $(window).scrollLeft();
|
2577 |
+
position = "fixed";
|
2578 |
+
} else {
|
2579 |
+
dateInputHasFixedAncestor = false;
|
2580 |
+
|
2581 |
+
forEachAncestorOf(dateInputElem, function (ancestorNode) {
|
2582 |
+
if (window.getComputedStyle(ancestorNode).getPropertyValue('position') === 'fixed') {
|
2583 |
+
dateInputHasFixedAncestor = true;
|
2584 |
+
return false;
|
2585 |
+
}
|
2586 |
+
});
|
2587 |
+
|
2588 |
+
if (dateInputHasFixedAncestor) {
|
2589 |
+
position = 'fixed';
|
2590 |
+
|
2591 |
+
//If the picker won't fit entirely within the viewport then display it above the date input.
|
2592 |
+
if (verticalPosition + datetimepicker.outerHeight() > windowHeight + windowScrollTop) {
|
2593 |
+
verticalAnchorEdge = 'bottom';
|
2594 |
+
verticalPosition = (windowHeight + windowScrollTop) - dateInputOffset.top;
|
2595 |
+
} else {
|
2596 |
+
verticalPosition -= windowScrollTop;
|
2597 |
+
}
|
2598 |
+
} else {
|
2599 |
+
if (verticalPosition + dateInputElem.offsetHeight > windowHeight + windowScrollTop) {
|
2600 |
+
verticalPosition = dateInputOffset.top - dateInputElem.offsetHeight + 1;
|
2601 |
+
}
|
2602 |
+
}
|
2603 |
+
|
2604 |
+
if (verticalPosition < 0) {
|
2605 |
+
verticalPosition = 0;
|
2606 |
+
}
|
2607 |
+
|
2608 |
+
if (left + dateInputElem.offsetWidth > windowWidth) {
|
2609 |
+
left = windowWidth - dateInputElem.offsetWidth;
|
2610 |
+
}
|
2611 |
+
}
|
2612 |
+
|
2613 |
+
datetimepickerElem = datetimepicker[0];
|
2614 |
+
|
2615 |
+
forEachAncestorOf(datetimepickerElem, function (ancestorNode) {
|
2616 |
+
var ancestorNodePosition;
|
2617 |
+
|
2618 |
+
ancestorNodePosition = window.getComputedStyle(ancestorNode).getPropertyValue('position');
|
2619 |
+
|
2620 |
+
if (ancestorNodePosition === 'relative' && windowWidth >= ancestorNode.offsetWidth) {
|
2621 |
+
left = left - ((windowWidth - ancestorNode.offsetWidth) / 2);
|
2622 |
+
return false;
|
2623 |
+
}
|
2624 |
+
});
|
2625 |
+
|
2626 |
+
datetimepickerCss = {
|
2627 |
+
position: position,
|
2628 |
+
left: left,
|
2629 |
+
top: '', //Initialize to prevent previous values interfering with new ones.
|
2630 |
+
bottom: '' //Initialize to prevent previous values interfering with new ones.
|
2631 |
+
};
|
2632 |
+
|
2633 |
+
datetimepickerCss[verticalAnchorEdge] = verticalPosition;
|
2634 |
+
|
2635 |
+
datetimepicker.css(datetimepickerCss);
|
2636 |
+
};
|
2637 |
+
|
2638 |
+
datetimepicker
|
2639 |
+
.on('open.xdsoft', function (event) {
|
2640 |
+
var onShow = true;
|
2641 |
+
if (options.onShow && $.isFunction(options.onShow)) {
|
2642 |
+
onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
|
2643 |
+
}
|
2644 |
+
if (onShow !== false) {
|
2645 |
+
datetimepicker.show();
|
2646 |
+
setPos();
|
2647 |
+
$(window)
|
2648 |
+
.off('resize.xdsoft', setPos)
|
2649 |
+
.on('resize.xdsoft', setPos);
|
2650 |
+
|
2651 |
+
if (options.closeOnWithoutClick) {
|
2652 |
+
$([document.body, window]).on('touchstart mousedown.xdsoft', function arguments_callee6() {
|
2653 |
+
datetimepicker.trigger('close.xdsoft');
|
2654 |
+
$([document.body, window]).off('touchstart mousedown.xdsoft', arguments_callee6);
|
2655 |
+
});
|
2656 |
+
}
|
2657 |
+
}
|
2658 |
+
})
|
2659 |
+
.on('close.xdsoft', function (event) {
|
2660 |
+
var onClose = true;
|
2661 |
+
month_picker
|
2662 |
+
.find('.xdsoft_month,.xdsoft_year')
|
2663 |
+
.find('.xdsoft_select')
|
2664 |
+
.hide();
|
2665 |
+
if (options.onClose && $.isFunction(options.onClose)) {
|
2666 |
+
onClose = options.onClose.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
|
2667 |
+
}
|
2668 |
+
if (onClose !== false && !options.opened && !options.inline) {
|
2669 |
+
datetimepicker.hide();
|
2670 |
+
}
|
2671 |
+
event.stopPropagation();
|
2672 |
+
})
|
2673 |
+
.on('toggle.xdsoft', function () {
|
2674 |
+
if (datetimepicker.is(':visible')) {
|
2675 |
+
datetimepicker.trigger('close.xdsoft');
|
2676 |
+
} else {
|
2677 |
+
datetimepicker.trigger('open.xdsoft');
|
2678 |
+
}
|
2679 |
+
})
|
2680 |
+
.data('input', input);
|
2681 |
+
|
2682 |
+
timer = 0;
|
2683 |
+
|
2684 |
+
datetimepicker.data('xdsoft_datetime', _xdsoft_datetime);
|
2685 |
+
datetimepicker.setOptions(options);
|
2686 |
+
|
2687 |
+
function getCurrentValue() {
|
2688 |
+
var ct = false, time;
|
2689 |
+
|
2690 |
+
if (options.startDate) {
|
2691 |
+
ct = _xdsoft_datetime.strToDate(options.startDate);
|
2692 |
+
} else {
|
2693 |
+
ct = options.value || ((input && input.val && input.val()) ? input.val() : '');
|
2694 |
+
if (ct) {
|
2695 |
+
ct = _xdsoft_datetime.strToDateTime(ct);
|
2696 |
+
} else if (options.defaultDate) {
|
2697 |
+
ct = _xdsoft_datetime.strToDateTime(options.defaultDate);
|
2698 |
+
if (options.defaultTime) {
|
2699 |
+
time = _xdsoft_datetime.strtotime(options.defaultTime);
|
2700 |
+
ct.setHours(time.getHours());
|
2701 |
+
ct.setMinutes(time.getMinutes());
|
2702 |
+
}
|
2703 |
+
}
|
2704 |
+
}
|
2705 |
+
|
2706 |
+
if (ct && _xdsoft_datetime.isValidDate(ct)) {
|
2707 |
+
datetimepicker.data('changed', true);
|
2708 |
+
} else {
|
2709 |
+
ct = '';
|
2710 |
+
}
|
2711 |
+
|
2712 |
+
return ct || 0;
|
2713 |
+
}
|
2714 |
+
|
2715 |
+
function setMask(options) {
|
2716 |
+
|
2717 |
+
var isValidValue = function (mask, value) {
|
2718 |
+
var reg = mask
|
2719 |
+
.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
|
2720 |
+
.replace(/_/g, '{digit+}')
|
2721 |
+
.replace(/([0-9]{1})/g, '{digit$1}')
|
2722 |
+
.replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
|
2723 |
+
.replace(/\{digit[\+]\}/g, '[0-9_]{1}');
|
2724 |
+
return (new RegExp(reg)).test(value);
|
2725 |
+
},
|
2726 |
+
getCaretPos = function (input) {
|
2727 |
+
try {
|
2728 |
+
if (document.selection && document.selection.createRange) {
|
2729 |
+
var range = document.selection.createRange();
|
2730 |
+
return range.getBookmark().charCodeAt(2) - 2;
|
2731 |
+
}
|
2732 |
+
if (input.setSelectionRange) {
|
2733 |
+
return input.selectionStart;
|
2734 |
+
}
|
2735 |
+
} catch (e) {
|
2736 |
+
return 0;
|
2737 |
+
}
|
2738 |
+
},
|
2739 |
+
setCaretPos = function (node, pos) {
|
2740 |
+
node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node;
|
2741 |
+
if (!node) {
|
2742 |
+
return false;
|
2743 |
+
}
|
2744 |
+
if (node.createTextRange) {
|
2745 |
+
var textRange = node.createTextRange();
|
2746 |
+
textRange.collapse(true);
|
2747 |
+
textRange.moveEnd('character', pos);
|
2748 |
+
textRange.moveStart('character', pos);
|
2749 |
+
textRange.select();
|
2750 |
+
return true;
|
2751 |
+
}
|
2752 |
+
if (node.setSelectionRange) {
|
2753 |
+
node.setSelectionRange(pos, pos);
|
2754 |
+
return true;
|
2755 |
+
}
|
2756 |
+
return false;
|
2757 |
+
};
|
2758 |
+
if(options.mask) {
|
2759 |
+
input.off('keydown.xdsoft');
|
2760 |
+
}
|
2761 |
+
if (options.mask === true) {
|
2762 |
+
if (typeof moment != 'undefined') {
|
2763 |
+
options.mask = options.format
|
2764 |
+
.replace(/Y{4}/g, '9999')
|
2765 |
+
.replace(/Y{2}/g, '99')
|
2766 |
+
.replace(/M{2}/g, '19')
|
2767 |
+
.replace(/D{2}/g, '39')
|
2768 |
+
.replace(/H{2}/g, '29')
|
2769 |
+
.replace(/m{2}/g, '59')
|
2770 |
+
.replace(/s{2}/g, '59');
|
2771 |
+
} else {
|
2772 |
+
options.mask = options.format
|
2773 |
+
.replace(/Y/g, '9999')
|
2774 |
+
.replace(/F/g, '9999')
|
2775 |
+
.replace(/m/g, '19')
|
2776 |
+
.replace(/d/g, '39')
|
2777 |
+
.replace(/H/g, '29')
|
2778 |
+
.replace(/i/g, '59')
|
2779 |
+
.replace(/s/g, '59');
|
2780 |
+
}
|
2781 |
+
}
|
2782 |
+
|
2783 |
+
if ($.type(options.mask) === 'string') {
|
2784 |
+
if (!isValidValue(options.mask, input.val())) {
|
2785 |
+
input.val(options.mask.replace(/[0-9]/g, '_'));
|
2786 |
+
setCaretPos(input[0], 0);
|
2787 |
+
}
|
2788 |
+
|
2789 |
+
input.on('keydown.xdsoft', function (event) {
|
2790 |
+
var val = this.value,
|
2791 |
+
key = event.which,
|
2792 |
+
pos,
|
2793 |
+
digit;
|
2794 |
+
|
2795 |
+
if (((key >= KEY0 && key <= KEY9) || (key >= _KEY0 && key <= _KEY9)) || (key === BACKSPACE || key === DEL)) {
|
2796 |
+
pos = getCaretPos(this);
|
2797 |
+
digit = (key !== BACKSPACE && key !== DEL) ? String.fromCharCode((_KEY0 <= key && key <= _KEY9) ? key - KEY0 : key) : '_';
|
2798 |
+
|
2799 |
+
if ((key === BACKSPACE || key === DEL) && pos) {
|
2800 |
+
pos -= 1;
|
2801 |
+
digit = '_';
|
2802 |
+
}
|
2803 |
+
|
2804 |
+
while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
|
2805 |
+
pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
|
2806 |
+
}
|
2807 |
+
|
2808 |
+
val = val.substr(0, pos) + digit + val.substr(pos + 1);
|
2809 |
+
if ($.trim(val) === '') {
|
2810 |
+
val = options.mask.replace(/[0-9]/g, '_');
|
2811 |
+
} else {
|
2812 |
+
if (pos === options.mask.length) {
|
2813 |
+
event.preventDefault();
|
2814 |
+
return false;
|
2815 |
+
}
|
2816 |
+
}
|
2817 |
+
|
2818 |
+
pos += (key === BACKSPACE || key === DEL) ? 0 : 1;
|
2819 |
+
while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
|
2820 |
+
pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
|
2821 |
+
}
|
2822 |
+
|
2823 |
+
if (isValidValue(options.mask, val)) {
|
2824 |
+
this.value = val;
|
2825 |
+
setCaretPos(this, pos);
|
2826 |
+
} else if ($.trim(val) === '') {
|
2827 |
+
this.value = options.mask.replace(/[0-9]/g, '_');
|
2828 |
+
} else {
|
2829 |
+
input.trigger('error_input.xdsoft');
|
2830 |
+
}
|
2831 |
+
} else {
|
2832 |
+
if (([AKEY, CKEY, VKEY, ZKEY, YKEY].indexOf(key) !== -1 && ctrlDown) || [ESC, ARROWUP, ARROWDOWN, ARROWLEFT, ARROWRIGHT, F5, CTRLKEY, TAB, ENTER].indexOf(key) !== -1) {
|
2833 |
+
return true;
|
2834 |
+
}
|
2835 |
+
}
|
2836 |
+
|
2837 |
+
event.preventDefault();
|
2838 |
+
return false;
|
2839 |
+
});
|
2840 |
+
}
|
2841 |
+
}
|
2842 |
+
|
2843 |
+
_xdsoft_datetime.setCurrentTime(getCurrentValue());
|
2844 |
+
|
2845 |
+
input
|
2846 |
+
.data('xdsoft_datetimepicker', datetimepicker)
|
2847 |
+
.on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function () {
|
2848 |
+
if (input.is(':disabled') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) {
|
2849 |
+
return;
|
2850 |
+
}
|
2851 |
+
clearTimeout(timer);
|
2852 |
+
timer = setTimeout(function () {
|
2853 |
+
if (input.is(':disabled')) {
|
2854 |
+
return;
|
2855 |
+
}
|
2856 |
+
|
2857 |
+
triggerAfterOpen = true;
|
2858 |
+
_xdsoft_datetime.setCurrentTime(getCurrentValue(), true);
|
2859 |
+
if(options.mask) {
|
2860 |
+
setMask(options);
|
2861 |
+
}
|
2862 |
+
datetimepicker.trigger('open.xdsoft');
|
2863 |
+
}, 100);
|
2864 |
+
})
|
2865 |
+
.on('keydown.xdsoft', function (event) {
|
2866 |
+
var elementSelector,
|
2867 |
+
key = event.which;
|
2868 |
+
if ([ENTER].indexOf(key) !== -1 && options.enterLikeTab) {
|
2869 |
+
elementSelector = $("input:visible,textarea:visible,button:visible,a:visible");
|
2870 |
+
datetimepicker.trigger('close.xdsoft');
|
2871 |
+
elementSelector.eq(elementSelector.index(this) + 1).focus();
|
2872 |
+
return false;
|
2873 |
+
}
|
2874 |
+
if ([TAB].indexOf(key) !== -1) {
|
2875 |
+
datetimepicker.trigger('close.xdsoft');
|
2876 |
+
return true;
|
2877 |
+
}
|
2878 |
+
})
|
2879 |
+
.on('blur.xdsoft', function () {
|
2880 |
+
datetimepicker.trigger('close.xdsoft');
|
2881 |
+
});
|
2882 |
+
};
|
2883 |
+
destroyDateTimePicker = function (input) {
|
2884 |
+
var datetimepicker = input.data('xdsoft_datetimepicker');
|
2885 |
+
if (datetimepicker) {
|
2886 |
+
datetimepicker.data('xdsoft_datetime', null);
|
2887 |
+
datetimepicker.remove();
|
2888 |
+
input
|
2889 |
+
.data('xdsoft_datetimepicker', null)
|
2890 |
+
.off('.xdsoft');
|
2891 |
+
$(window).off('resize.xdsoft');
|
2892 |
+
$([window, document.body]).off('mousedown.xdsoft touchstart');
|
2893 |
+
if (input.unmousewheel) {
|
2894 |
+
input.unmousewheel();
|
2895 |
+
}
|
2896 |
+
}
|
2897 |
+
};
|
2898 |
+
$(document)
|
2899 |
+
.off('keydown.xdsoftctrl keyup.xdsoftctrl')
|
2900 |
+
.on('keydown.xdsoftctrl', function (e) {
|
2901 |
+
if (e.keyCode === CTRLKEY) {
|
2902 |
+
ctrlDown = true;
|
2903 |
+
}
|
2904 |
+
})
|
2905 |
+
.on('keyup.xdsoftctrl', function (e) {
|
2906 |
+
if (e.keyCode === CTRLKEY) {
|
2907 |
+
ctrlDown = false;
|
2908 |
+
}
|
2909 |
+
});
|
2910 |
+
|
2911 |
+
this.each(function () {
|
2912 |
+
var datetimepicker = $(this).data('xdsoft_datetimepicker'), $input;
|
2913 |
+
if (datetimepicker) {
|
2914 |
+
if ($.type(opt) === 'string') {
|
2915 |
+
switch (opt) {
|
2916 |
+
case 'show':
|
2917 |
+
$(this).select().focus();
|
2918 |
+
datetimepicker.trigger('open.xdsoft');
|
2919 |
+
break;
|
2920 |
+
case 'hide':
|
2921 |
+
datetimepicker.trigger('close.xdsoft');
|
2922 |
+
break;
|
2923 |
+
case 'toggle':
|
2924 |
+
datetimepicker.trigger('toggle.xdsoft');
|
2925 |
+
break;
|
2926 |
+
case 'destroy':
|
2927 |
+
destroyDateTimePicker($(this));
|
2928 |
+
break;
|
2929 |
+
case 'reset':
|
2930 |
+
this.value = this.defaultValue;
|
2931 |
+
if (!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(dateHelper.parseDate(this.value, options.format))) {
|
2932 |
+
datetimepicker.data('changed', false);
|
2933 |
+
}
|
2934 |
+
datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
|
2935 |
+
break;
|
2936 |
+
case 'validate':
|
2937 |
+
$input = datetimepicker.data('input');
|
2938 |
+
$input.trigger('blur.xdsoft');
|
2939 |
+
break;
|
2940 |
+
default:
|
2941 |
+
if (datetimepicker[opt] && $.isFunction(datetimepicker[opt])) {
|
2942 |
+
result = datetimepicker[opt](opt2);
|
2943 |
+
}
|
2944 |
+
}
|
2945 |
+
} else {
|
2946 |
+
datetimepicker
|
2947 |
+
.setOptions(opt);
|
2948 |
+
}
|
2949 |
+
return 0;
|
2950 |
+
}
|
2951 |
+
if ($.type(opt) !== 'string') {
|
2952 |
+
if (!options.lazyInit || options.open || options.inline) {
|
2953 |
+
createDateTimePicker($(this));
|
2954 |
+
} else {
|
2955 |
+
lazyInit($(this));
|
2956 |
+
}
|
2957 |
+
}
|
2958 |
+
});
|
2959 |
+
|
2960 |
+
return result;
|
2961 |
+
};
|
2962 |
+
|
2963 |
+
$.fn.datetimepicker.defaults = default_options;
|
2964 |
+
|
2965 |
+
function HighlightedDate(date, desc, style) {
|
2966 |
+
"use strict";
|
2967 |
+
this.date = date;
|
2968 |
+
this.desc = desc;
|
2969 |
+
this.style = style;
|
2970 |
+
}
|
2971 |
+
}));
|
2972 |
+
/*!
|
2973 |
+
* jQuery Mousewheel 3.1.13
|
2974 |
+
*
|
2975 |
+
* Copyright jQuery Foundation and other contributors
|
2976 |
+
* Released under the MIT license
|
2977 |
+
* http://jquery.org/license
|
2978 |
+
*/
|
2979 |
+
|
2980 |
+
(function (factory) {
|
2981 |
+
if ( typeof define === 'function' && define.amd ) {
|
2982 |
+
// AMD. Register as an anonymous module.
|
2983 |
+
define(['jquery'], factory);
|
2984 |
+
} else if (typeof exports === 'object') {
|
2985 |
+
// Node/CommonJS style for Browserify
|
2986 |
+
module.exports = factory;
|
2987 |
+
} else {
|
2988 |
+
// Browser globals
|
2989 |
+
factory(jQuery);
|
2990 |
+
}
|
2991 |
+
}(function ($) {
|
2992 |
+
|
2993 |
+
var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
|
2994 |
+
toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
|
2995 |
+
['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
|
2996 |
+
slice = Array.prototype.slice,
|
2997 |
+
nullLowestDeltaTimeout, lowestDelta;
|
2998 |
+
|
2999 |
+
if ( $.event.fixHooks ) {
|
3000 |
+
for ( var i = toFix.length; i; ) {
|
3001 |
+
$.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
|
3002 |
+
}
|
3003 |
+
}
|
3004 |
+
|
3005 |
+
var special = $.event.special.mousewheel = {
|
3006 |
+
version: '3.1.12',
|
3007 |
+
|
3008 |
+
setup: function() {
|
3009 |
+
if ( this.addEventListener ) {
|
3010 |
+
for ( var i = toBind.length; i; ) {
|
3011 |
+
this.addEventListener( toBind[--i], handler, false );
|
3012 |
+
}
|
3013 |
+
} else {
|
3014 |
+
this.onmousewheel = handler;
|
3015 |
+
}
|
3016 |
+
// Store the line height and page height for this particular element
|
3017 |
+
$.data(this, 'mousewheel-line-height', special.getLineHeight(this));
|
3018 |
+
$.data(this, 'mousewheel-page-height', special.getPageHeight(this));
|
3019 |
+
},
|
3020 |
+
|
3021 |
+
teardown: function() {
|
3022 |
+
if ( this.removeEventListener ) {
|
3023 |
+
for ( var i = toBind.length; i; ) {
|
3024 |
+
this.removeEventListener( toBind[--i], handler, false );
|
3025 |
+
}
|
3026 |
+
} else {
|
3027 |
+
this.onmousewheel = null;
|
3028 |
+
}
|
3029 |
+
// Clean up the data we added to the element
|
3030 |
+
$.removeData(this, 'mousewheel-line-height');
|
3031 |
+
$.removeData(this, 'mousewheel-page-height');
|
3032 |
+
},
|
3033 |
+
|
3034 |
+
getLineHeight: function(elem) {
|
3035 |
+
var $elem = $(elem),
|
3036 |
+
$parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
|
3037 |
+
if (!$parent.length) {
|
3038 |
+
$parent = $('body');
|
3039 |
+
}
|
3040 |
+
return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
|
3041 |
+
},
|
3042 |
+
|
3043 |
+
getPageHeight: function(elem) {
|
3044 |
+
return $(elem).height();
|
3045 |
+
},
|
3046 |
+
|
3047 |
+
settings: {
|
3048 |
+
adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
|
3049 |
+
normalizeOffset: true // calls getBoundingClientRect for each event
|
3050 |
+
}
|
3051 |
+
};
|
3052 |
+
|
3053 |
+
$.fn.extend({
|
3054 |
+
mousewheel: function(fn) {
|
3055 |
+
return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
|
3056 |
+
},
|
3057 |
+
|
3058 |
+
unmousewheel: function(fn) {
|
3059 |
+
return this.unbind('mousewheel', fn);
|
3060 |
+
}
|
3061 |
+
});
|
3062 |
+
|
3063 |
+
|
3064 |
+
function handler(event) {
|
3065 |
+
var orgEvent = event || window.event,
|
3066 |
+
args = slice.call(arguments, 1),
|
3067 |
+
delta = 0,
|
3068 |
+
deltaX = 0,
|
3069 |
+
deltaY = 0,
|
3070 |
+
absDelta = 0,
|
3071 |
+
offsetX = 0,
|
3072 |
+
offsetY = 0;
|
3073 |
+
event = $.event.fix(orgEvent);
|
3074 |
+
event.type = 'mousewheel';
|
3075 |
+
|
3076 |
+
// Old school scrollwheel delta
|
3077 |
+
if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }
|
3078 |
+
if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }
|
3079 |
+
if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }
|
3080 |
+
if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
|
3081 |
+
|
3082 |
+
// Firefox < 17 horizontal scrolling related to DOMMouseScroll event
|
3083 |
+
if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
|
3084 |
+
deltaX = deltaY * -1;
|
3085 |
+
deltaY = 0;
|
3086 |
+
}
|
3087 |
+
|
3088 |
+
// Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
|
3089 |
+
delta = deltaY === 0 ? deltaX : deltaY;
|
3090 |
+
|
3091 |
+
// New school wheel delta (wheel event)
|
3092 |
+
if ( 'deltaY' in orgEvent ) {
|
3093 |
+
deltaY = orgEvent.deltaY * -1;
|
3094 |
+
delta = deltaY;
|
3095 |
+
}
|
3096 |
+
if ( 'deltaX' in orgEvent ) {
|
3097 |
+
deltaX = orgEvent.deltaX;
|
3098 |
+
if ( deltaY === 0 ) { delta = deltaX * -1; }
|
3099 |
+
}
|
3100 |
+
|
3101 |
+
// No change actually happened, no reason to go any further
|
3102 |
+
if ( deltaY === 0 && deltaX === 0 ) { return; }
|
3103 |
+
|
3104 |
+
// Need to convert lines and pages to pixels if we aren't already in pixels
|
3105 |
+
// There are three delta modes:
|
3106 |
+
// * deltaMode 0 is by pixels, nothing to do
|
3107 |
+
// * deltaMode 1 is by lines
|
3108 |
+
// * deltaMode 2 is by pages
|
3109 |
+
if ( orgEvent.deltaMode === 1 ) {
|
3110 |
+
var lineHeight = $.data(this, 'mousewheel-line-height');
|
3111 |
+
delta *= lineHeight;
|
3112 |
+
deltaY *= lineHeight;
|
3113 |
+
deltaX *= lineHeight;
|
3114 |
+
} else if ( orgEvent.deltaMode === 2 ) {
|
3115 |
+
var pageHeight = $.data(this, 'mousewheel-page-height');
|
3116 |
+
delta *= pageHeight;
|
3117 |
+
deltaY *= pageHeight;
|
3118 |
+
deltaX *= pageHeight;
|
3119 |
+
}
|
3120 |
+
|
3121 |
+
// Store lowest absolute delta to normalize the delta values
|
3122 |
+
absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
|
3123 |
+
|
3124 |
+
if ( !lowestDelta || absDelta < lowestDelta ) {
|
3125 |
+
lowestDelta = absDelta;
|
3126 |
+
|
3127 |
+
// Adjust older deltas if necessary
|
3128 |
+
if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
|
3129 |
+
lowestDelta /= 40;
|
3130 |
+
}
|
3131 |
+
}
|
3132 |
+
|
3133 |
+
// Adjust older deltas if necessary
|
3134 |
+
if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
|
3135 |
+
// Divide all the things by 40!
|
3136 |
+
delta /= 40;
|
3137 |
+
deltaX /= 40;
|
3138 |
+
deltaY /= 40;
|
3139 |
+
}
|
3140 |
+
|
3141 |
+
// Get a whole, normalized value for the deltas
|
3142 |
+
delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
|
3143 |
+
deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
|
3144 |
+
deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
|
3145 |
+
|
3146 |
+
// Normalise offsetX and offsetY properties
|
3147 |
+
if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
|
3148 |
+
var boundingRect = this.getBoundingClientRect();
|
3149 |
+
offsetX = event.clientX - boundingRect.left;
|
3150 |
+
offsetY = event.clientY - boundingRect.top;
|
3151 |
+
}
|
3152 |
+
|
3153 |
+
// Add information to the event object
|
3154 |
+
event.deltaX = deltaX;
|
3155 |
+
event.deltaY = deltaY;
|
3156 |
+
event.deltaFactor = lowestDelta;
|
3157 |
+
event.offsetX = offsetX;
|
3158 |
+
event.offsetY = offsetY;
|
3159 |
+
// Go ahead and set deltaMode to 0 since we converted to pixels
|
3160 |
+
// Although this is a little odd since we overwrite the deltaX/Y
|
3161 |
+
// properties with normalized deltas.
|
3162 |
+
event.deltaMode = 0;
|
3163 |
+
|
3164 |
+
// Add event and delta to the front of the arguments
|
3165 |
+
args.unshift(event, delta, deltaX, deltaY);
|
3166 |
+
|
3167 |
+
// Clearout lowestDelta after sometime to better
|
3168 |
+
// handle multiple device types that give different
|
3169 |
+
// a different lowestDelta
|
3170 |
+
// Ex: trackpad = 3 and mouse wheel = 120
|
3171 |
+
if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
|
3172 |
+
nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
|
3173 |
+
|
3174 |
+
return ($.event.dispatch || $.event.handle).apply(this, args);
|
3175 |
+
}
|
3176 |
+
|
3177 |
+
function nullLowestDelta() {
|
3178 |
+
lowestDelta = null;
|
3179 |
+
}
|
3180 |
+
|
3181 |
+
function shouldAdjustOldDeltas(orgEvent, absDelta) {
|
3182 |
+
// If this is an older event and the delta is divisable by 120,
|
3183 |
+
// then we are assuming that the browser is treating this as an
|
3184 |
+
// older mouse wheel event and that we should divide the deltas
|
3185 |
+
// by 40 to try and get a more usable deltaFactor.
|
3186 |
+
// Side note, this actually impacts the reported scroll distance
|
3187 |
+
// in older browsers and can cause scrolling to be slower than native.
|
3188 |
+
// Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
|
3189 |
+
return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
|
3190 |
+
}
|
3191 |
+
|
3192 |
+
}));
|
assets/js/datetimepicker/jquery.datetimepicker.full.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
var DateFormatter;!function(){"use strict";var e,t,a,r,n,o;n=864e5,o=3600,e=function(e,t){return"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()},t=function(e,a,r){var n=r||"0",o=e.toString();return o.length<a?t(n+o,a):o},a=function(e){var t,r;for(e=e||{},t=1;t<arguments.length;t++)if(r=arguments[t])for(var n in r)r.hasOwnProperty(n)&&("object"==typeof r[n]?a(e[n],r[n]):e[n]=r[n]);return e},r={dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"],ordinal:function(e){var t=e%10,a={1:"st",2:"nd",3:"rd"};return 1!==Math.floor(e%100/10)&&a[t]?a[t]:"th"}},separators:/[ \-+\/\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,tzClip:/[^-+\dA-Z]/g},DateFormatter=function(e){var t=this,n=a(r,e);t.dateSettings=n.dateSettings,t.separators=n.separators,t.validParts=n.validParts,t.intParts=n.intParts,t.tzParts=n.tzParts,t.tzClip=n.tzClip},DateFormatter.prototype={constructor:DateFormatter,parseDate:function(t,a){var r,n,o,i,s,d,u,l,f,c,m=this,h=!1,g=!1,p=m.dateSettings,y={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!t)return void 0;if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("U"===a)return o=parseInt(t),o?new Date(1e3*o):t;if("string"!=typeof t)return"";if(r=a.match(m.validParts),!r||0===r.length)throw new Error("Invalid date format definition.");for(n=t.replace(m.separators,"\x00").split("\x00"),o=0;o<n.length;o++)switch(i=n[o],s=parseInt(i),r[o]){case"y":case"Y":f=i.length,2===f?y.year=parseInt((70>s?"20":"19")+i):4===f&&(y.year=s),h=!0;break;case"m":case"n":case"M":case"F":isNaN(i)?(d=p.monthsShort.indexOf(i),d>-1&&(y.month=d+1),d=p.months.indexOf(i),d>-1&&(y.month=d+1)):s>=1&&12>=s&&(y.month=s),h=!0;break;case"d":case"j":s>=1&&31>=s&&(y.day=s),h=!0;break;case"g":case"h":u=r.indexOf("a")>-1?r.indexOf("a"):r.indexOf("A")>-1?r.indexOf("A"):-1,c=n[u],u>-1?(l=e(c,p.meridiem[0])?0:e(c,p.meridiem[1])?12:-1,s>=1&&12>=s&&l>-1?y.hour=s+l:s>=0&&23>=s&&(y.hour=s)):s>=0&&23>=s&&(y.hour=s),g=!0;break;case"G":case"H":s>=0&&23>=s&&(y.hour=s),g=!0;break;case"i":s>=0&&59>=s&&(y.min=s),g=!0;break;case"s":s>=0&&59>=s&&(y.sec=s),g=!0}if(h===!0&&y.year&&y.month&&y.day)y.date=new Date(y.year,y.month-1,y.day,y.hour,y.min,y.sec,0);else{if(g!==!0)return!1;y.date=new Date(0,0,0,y.hour,y.min,y.sec,0)}return y.date},guessDate:function(e,t){if("string"!=typeof e)return e;var a,r,n,o,i=this,s=e.replace(i.separators,"\x00").split("\x00"),d=/^[djmn]/g,u=t.match(i.validParts),l=new Date,f=0;if(!d.test(u[0]))return e;for(r=0;r<s.length;r++){switch(f=2,n=s[r],o=parseInt(n.substr(0,2)),r){case 0:"m"===u[0]||"n"===u[0]?l.setMonth(o-1):l.setDate(o);break;case 1:"m"===u[0]||"n"===u[0]?l.setDate(o):l.setMonth(o-1);break;case 2:a=l.getFullYear(),n.length<4?(l.setFullYear(parseInt(a.toString().substr(0,4-n.length)+n)),f=n.length):(l.setFullYear=parseInt(n.substr(0,4)),f=4);break;case 3:l.setHours(o);break;case 4:l.setMinutes(o);break;case 5:l.setSeconds(o)}n.substr(f).length>0&&s.splice(r+1,0,n.substr(f))}return l},parseFormat:function(e,a){var r,i=this,s=i.dateSettings,d=/\\?(.?)/gi,u=function(e,t){return r[e]?r[e]():t};return r={d:function(){return t(r.j(),2)},D:function(){return s.daysShort[r.w()]},j:function(){return a.getDate()},l:function(){return s.days[r.w()]},N:function(){return r.w()||7},w:function(){return a.getDay()},z:function(){var e=new Date(r.Y(),r.n()-1,r.j()),t=new Date(r.Y(),0,1);return Math.round((e-t)/n)},W:function(){var e=new Date(r.Y(),r.n()-1,r.j()-r.N()+3),a=new Date(e.getFullYear(),0,4);return t(1+Math.round((e-a)/n/7),2)},F:function(){return s.months[a.getMonth()]},m:function(){return t(r.n(),2)},M:function(){return s.monthsShort[a.getMonth()]},n:function(){return a.getMonth()+1},t:function(){return new Date(r.Y(),r.n(),0).getDate()},L:function(){var e=r.Y();return e%4===0&&e%100!==0||e%400===0?1:0},o:function(){var e=r.n(),t=r.W(),a=r.Y();return a+(12===e&&9>t?1:1===e&&t>9?-1:0)},Y:function(){return a.getFullYear()},y:function(){return r.Y().toString().slice(-2)},a:function(){return r.A().toLowerCase()},A:function(){var e=r.G()<12?0:1;return s.meridiem[e]},B:function(){var e=a.getUTCHours()*o,r=60*a.getUTCMinutes(),n=a.getUTCSeconds();return t(Math.floor((e+r+n+o)/86.4)%1e3,3)},g:function(){return r.G()%12||12},G:function(){return a.getHours()},h:function(){return t(r.g(),2)},H:function(){return t(r.G(),2)},i:function(){return t(a.getMinutes(),2)},s:function(){return t(a.getSeconds(),2)},u:function(){return t(1e3*a.getMilliseconds(),6)},e:function(){var e=/\((.*)\)/.exec(String(a))[1];return e||"Coordinated Universal Time"},T:function(){var e=(String(a).match(i.tzParts)||[""]).pop().replace(i.tzClip,"");return e||"UTC"},I:function(){var e=new Date(r.Y(),0),t=Date.UTC(r.Y(),0),a=new Date(r.Y(),6),n=Date.UTC(r.Y(),6);return e-t!==a-n?1:0},O:function(){var e=a.getTimezoneOffset(),r=Math.abs(e);return(e>0?"-":"+")+t(100*Math.floor(r/60)+r%60,4)},P:function(){var e=r.O();return e.substr(0,3)+":"+e.substr(3,2)},Z:function(){return 60*-a.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(d,u)},r:function(){return"D, d M Y H:i:s O".replace(d,u)},U:function(){return a.getTime()/1e3||0}},u(e,e)},formatDate:function(e,t){var a,r,n,o,i,s=this,d="";if("string"==typeof e&&(e=s.parseDate(e,t),e===!1))return!1;if(e instanceof Date){for(n=t.length,a=0;n>a;a++)i=t.charAt(a),"S"!==i&&(o=s.parseFormat(i,e),a!==n-1&&s.intParts.test(i)&&"S"===t.charAt(a+1)&&(r=parseInt(o),o+=s.dateSettings.ordinal(r)),d+=o);return d}return""}}}(),function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";function t(e,t,a){this.date=e,this.desc=t,this.style=a}var a={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه","یکشنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,disabledMinTime:!1,disabledMaxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1},r=null,n="en",o="en",i={meridiem:["AM","PM"]},s=function(){var t=a.i18n[o],n={days:t.dayOfWeek,daysShort:t.dayOfWeekShort,months:t.months,monthsShort:e.map(t.months,function(e){return e.substring(0,3)})};r=new DateFormatter({dateSettings:e.extend({},i,n)})};e.datetimepicker={setLocale:function(e){var t=a.i18n[e]?e:n;o!=t&&(o=t,s())},setDateFormatter:function(e){r=e},RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},s(),window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var a=/(\-([a-z]){1})/g;return"float"===t&&(t="styleFloat"),a.test(t)&&(t=t.replace(a,function(e,t,a){return a.toUpperCase()})),e.currentStyle[t]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,r;for(a=t||0,r=this.length;r>a;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},e.fn.xdsoftScroller=function(t){return this.each(function(){var a,r,n,o,i,s=e(this),d=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):("mousedown"===e.type||"mouseup"===e.type||"mousemove"===e.type||"mouseover"===e.type||"mouseout"===e.type||"mouseenter"===e.type||"mouseleave"===e.type)&&(a.x=e.clientX,a.y=e.clientY),a},u=100,l=!1,f=0,c=0,m=0,h=!1,g=0,p=function(){};return"hide"===t?void s.find(".xdsoft_scrollbar").hide():(e(this).hasClass("xdsoft_scroller_box")||(a=s.children().eq(0),r=s[0].clientHeight,n=a[0].offsetHeight,o=e('<div class="xdsoft_scrollbar"></div>'),i=e('<div class="xdsoft_scroller"></div>'),o.append(i),s.addClass("xdsoft_scroller_box").append(o),p=function(e){var t=d(e).y-f+g;0>t&&(t=0),t+i[0].offsetHeight>m&&(t=m-i[0].offsetHeight),s.trigger("scroll_element.xdsoft_scroller",[u?t/u:0])},i.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(a){r||s.trigger("resize_scroll.xdsoft_scroller",[t]),f=d(a).y,g=parseInt(i.css("margin-top"),10),m=o[0].offsetHeight,"mousedown"===a.type||"touchstart"===a.type?(document&&e(document.body).addClass("xdsoft_noselect"),e([document.body,window]).on("touchend mouseup.xdsoft_scroller",function n(){e([document.body,window]).off("touchend mouseup.xdsoft_scroller",n).off("mousemove.xdsoft_scroller",p).removeClass("xdsoft_noselect")}),e(document.body).on("mousemove.xdsoft_scroller",p)):(h=!0,a.stopPropagation(),a.preventDefault())}).on("touchmove",function(e){h&&(e.preventDefault(),p(e))}).on("touchend touchcancel",function(){h=!1,g=0}),s.on("scroll_element.xdsoft_scroller",function(e,t){r||s.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=t>1?1:0>t||isNaN(t)?0:t,i.css("margin-top",u*t),setTimeout(function(){a.css("marginTop",-parseInt((a[0].offsetHeight-r)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,d){var l,f;r=s[0].clientHeight,n=a[0].offsetHeight,l=r/n,f=l*o[0].offsetHeight,l>1?i.hide():(i.show(),i.css("height",parseInt(f>10?f:10,10)),u=o[0].offsetHeight-i[0].offsetHeight,d!==!0&&s.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(a.css("marginTop"),10))/(n-r)]))}),s.on("mousewheel",function(e){var t=Math.abs(parseInt(a.css("marginTop"),10));return t-=20*e.deltaY,0>t&&(t=0),s.trigger("scroll_element.xdsoft_scroller",[t/(n-r)]),e.stopPropagation(),!1}),s.on("touchstart",function(e){l=d(e),c=Math.abs(parseInt(a.css("marginTop"),10))}),s.on("touchmove",function(e){if(l){e.preventDefault();var t=d(e);s.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-l.y))/(n-r)])}}),s.on("touchend touchcancel",function(){l=!1,c=0})),void s.trigger("resize_scroll.xdsoft_scroller",[t]))})},e.fn.datetimepicker=function(n,i){var s,d,u=this,l=48,f=57,c=96,m=105,h=17,g=46,p=13,y=27,v=8,b=37,D=38,k=39,x=40,T=9,S=116,w=65,O=67,M=86,_=90,W=89,F=!1,C=e.isPlainObject(n)||!n?e.extend(!0,{},a,n):e.extend(!0,{},a),P=0,A=function(e){e.on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function t(){e.is(":disabled")||e.data("xdsoft_datetimepicker")||(clearTimeout(P),P=setTimeout(function(){e.data("xdsoft_datetimepicker")||s(e),e.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",t).trigger("open.xdsoft")},100))})};return s=function(a){function i(){var e,t=!1;return C.startDate?t=j.strToDate(C.startDate):(t=C.value||(a&&a.val&&a.val()?a.val():""),t?t=j.strToDateTime(t):C.defaultDate&&(t=j.strToDateTime(C.defaultDate),C.defaultTime&&(e=j.strtotime(C.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes())))),t&&j.isValidDate(t)?J.data("changed",!0):t="",t||0}function s(t){var r=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},n=function(e){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();return t.getBookmark().charCodeAt(2)-2}if(e.setSelectionRange)return e.selectionStart}catch(a){return 0}},o=function(e,t){if(e="string"==typeof e||e instanceof String?document.getElementById(e):e,!e)return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return e.setSelectionRange?(e.setSelectionRange(t,t),!0):!1};t.mask&&a.off("keydown.xdsoft"),t.mask===!0&&(t.mask="undefined"!=typeof moment?t.format.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59"):t.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===e.type(t.mask)&&(r(t.mask,a.val())||(a.val(t.mask.replace(/[0-9]/g,"_")),o(a[0],0)),a.on("keydown.xdsoft",function(i){var s,d,u=this.value,C=i.which;if(C>=l&&f>=C||C>=c&&m>=C||C===v||C===g){for(s=n(this),d=C!==v&&C!==g?String.fromCharCode(C>=c&&m>=C?C-l:C):"_",C!==v&&C!==g||!s||(s-=1,d="_");/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===v||C===g?-1:1;if(u=u.substr(0,s)+d+u.substr(s+1),""===e.trim(u))u=t.mask.replace(/[0-9]/g,"_");else if(s===t.mask.length)return i.preventDefault(),!1;for(s+=C===v||C===g?0:1;/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===v||C===g?-1:1;r(t.mask,u)?(this.value=u,o(this,s)):""===e.trim(u)?this.value=t.mask.replace(/[0-9]/g,"_"):a.trigger("error_input.xdsoft")}else if(-1!==[w,O,M,_,W].indexOf(C)&&F||-1!==[y,D,x,b,k,S,h,T,p].indexOf(C))return!0;return i.preventDefault(),!1}))}var d,u,P,A,Y,j,H,J=e('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),z=e('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),I=e('<div class="xdsoft_datepicker active"></div>'),N=e('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'),L=e('<div class="xdsoft_calendar"></div>'),E=e('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),R=E.find(".xdsoft_time_box").eq(0),B=e('<div class="xdsoft_time_variant"></div>'),V=e('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),G=e('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),U=e('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),q=!1,X=0;C.id&&J.attr("id",C.id),C.style&&J.attr("style",C.style),C.weeks&&J.addClass("xdsoft_showweeks"),C.rtl&&J.addClass("xdsoft_rtl"),J.addClass("xdsoft_"+C.theme),J.addClass(C.className),N.find(".xdsoft_month span").after(G),N.find(".xdsoft_year span").after(U),N.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(t){var a,r,n=e(this).find(".xdsoft_select").eq(0),o=0,i=0,s=n.is(":visible");for(N.find(".xdsoft_select").hide(),j.currentTime&&(o=j.currentTime[e(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),n[s?"hide":"show"](),a=n.find("div.xdsoft_option"),r=0;r<a.length&&a.eq(r).data("value")!==o;r+=1)i+=a[0].offsetHeight;return n.xdsoftScroller(i/(n.children()[0].offsetHeight-n[0].clientHeight)),t.stopPropagation(),!1}),N.find(".xdsoft_select").xdsoftScroller().on("touchstart mousedown.xdsoft",function(e){e.stopPropagation(),e.preventDefault()}).on("touchstart mousedown.xdsoft",".xdsoft_option",function(){(void 0===j.currentTime||null===j.currentTime)&&(j.currentTime=j.now());var t=j.currentTime.getFullYear();j&&j.currentTime&&j.currentTime[e(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](e(this).data("value")),e(this).parent().parent().hide(),J.trigger("xchange.xdsoft"),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),t!==j.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(J,j.currentTime,J.data("input"))}),J.getValue=function(){return j.getCurrentTime()},J.setOptions=function(n){var o={};C=e.extend(!0,{},C,n),n.allowTimes&&e.isArray(n.allowTimes)&&n.allowTimes.length&&(C.allowTimes=e.extend(!0,[],n.allowTimes)),n.weekends&&e.isArray(n.weekends)&&n.weekends.length&&(C.weekends=e.extend(!0,[],n.weekends)),n.allowDates&&e.isArray(n.allowDates)&&n.allowDates.length&&(C.allowDates=e.extend(!0,[],n.allowDates)),n.allowDateRe&&"[object String]"===Object.prototype.toString.call(n.allowDateRe)&&(C.allowDateRe=new RegExp(n.allowDateRe)),n.highlightedDates&&e.isArray(n.highlightedDates)&&n.highlightedDates.length&&(e.each(n.highlightedDates,function(a,n){var i,s=e.map(n.split(","),e.trim),d=new t(r.parseDate(s[0],C.formatDate),s[1],s[2]),u=r.formatDate(d.date,C.formatDate);void 0!==o[u]?(i=o[u].desc,i&&i.length&&d.desc&&d.desc.length&&(o[u].desc=i+"\n"+d.desc)):o[u]=d}),C.highlightedDates=e.extend(!0,[],o)),n.highlightedPeriods&&e.isArray(n.highlightedPeriods)&&n.highlightedPeriods.length&&(o=e.extend(!0,[],C.highlightedDates),
|
2 |
+
e.each(n.highlightedPeriods,function(a,n){var i,s,d,u,l,f,c;if(e.isArray(n))i=n[0],s=n[1],d=n[2],c=n[3];else{var m=e.map(n.split(","),e.trim);i=r.parseDate(m[0],C.formatDate),s=r.parseDate(m[1],C.formatDate),d=m[2],c=m[3]}for(;s>=i;)u=new t(i,d,c),l=r.formatDate(i,C.formatDate),i.setDate(i.getDate()+1),void 0!==o[l]?(f=o[l].desc,f&&f.length&&u.desc&&u.desc.length&&(o[l].desc=f+"\n"+u.desc)):o[l]=u}),C.highlightedDates=e.extend(!0,[],o)),n.disabledDates&&e.isArray(n.disabledDates)&&n.disabledDates.length&&(C.disabledDates=e.extend(!0,[],n.disabledDates)),n.disabledWeekDays&&e.isArray(n.disabledWeekDays)&&n.disabledWeekDays.length&&(C.disabledWeekDays=e.extend(!0,[],n.disabledWeekDays)),!C.open&&!C.opened||C.inline||a.trigger("open.xdsoft"),C.inline&&(q=!0,J.addClass("xdsoft_inline"),a.after(J).hide()),C.inverseButton&&(C.next="xdsoft_prev",C.prev="xdsoft_next"),C.datepicker?I.addClass("active"):I.removeClass("active"),C.timepicker?E.addClass("active"):E.removeClass("active"),C.value&&(j.setCurrentTime(C.value),a&&a.val&&a.val(j.str)),C.dayOfWeekStart=isNaN(C.dayOfWeekStart)?0:parseInt(C.dayOfWeekStart,10)%7,C.timepickerScrollbar||R.xdsoftScroller("hide"),C.minDate&&/^[\+\-](.*)$/.test(C.minDate)&&(C.minDate=r.formatDate(j.strToDateTime(C.minDate),C.formatDate)),C.maxDate&&/^[\+\-](.*)$/.test(C.maxDate)&&(C.maxDate=r.formatDate(j.strToDateTime(C.maxDate),C.formatDate)),V.toggle(C.showApplyButton),N.find(".xdsoft_today_button").css("visibility",C.todayButton?"visible":"hidden"),N.find("."+C.prev).css("visibility",C.prevButton?"visible":"hidden"),N.find("."+C.next).css("visibility",C.nextButton?"visible":"hidden"),s(C),C.validateOnBlur&&a.off("blur.xdsoft").on("blur.xdsoft",function(){if(C.allowBlank&&(!e.trim(e(this).val()).length||"string"==typeof C.mask&&e.trim(e(this).val())===C.mask.replace(/[0-9]/g,"_")))e(this).val(null),J.data("xdsoft_datetime").empty();else{var t=r.parseDate(e(this).val(),C.format);if(t)e(this).val(r.formatDate(t,C.format));else{var a=+[e(this).val()[0],e(this).val()[1]].join(""),n=+[e(this).val()[2],e(this).val()[3]].join("");e(this).val(!C.datepicker&&C.timepicker&&a>=0&&24>a&&n>=0&&60>n?[a,n].map(function(e){return e>9?e:"0"+e}).join(":"):r.formatDate(j.now(),C.format))}J.data("xdsoft_datetime").setCurrentTime(e(this).val())}J.trigger("changedatetime.xdsoft"),J.trigger("close.xdsoft")}),C.dayOfWeekStartPrev=0===C.dayOfWeekStart?6:C.dayOfWeekStart-1,J.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},J.data("options",C).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),U.hide(),G.hide(),!1}),R.append(B),R.xdsoftScroller(),J.on("afterOpen.xdsoft",function(){R.xdsoftScroller()}),J.append(I).append(E),C.withoutCopyright!==!0&&J.append(z),I.append(N).append(L).append(V),e(C.parentID).append(J),d=function(){var t=this;t.now=function(e){var a,r,n=new Date;return!e&&C.defaultDate&&(a=t.strToDateTime(C.defaultDate),n.setFullYear(a.getFullYear()),n.setMonth(a.getMonth()),n.setDate(a.getDate())),C.yearOffset&&n.setFullYear(n.getFullYear()+C.yearOffset),!e&&C.defaultTime&&(r=t.strtotime(C.defaultTime),n.setHours(r.getHours()),n.setMinutes(r.getMinutes())),n},t.isValidDate=function(e){return"[object Date]"!==Object.prototype.toString.call(e)?!1:!isNaN(e.getTime())},t.setCurrentTime=function(e,a){t.currentTime="string"==typeof e?t.strToDateTime(e):t.isValidDate(e)?e:e||a||!C.allowBlank?t.now():null,J.trigger("xchange.xdsoft")},t.empty=function(){t.currentTime=null},t.getCurrentTime=function(){return t.currentTime},t.nextMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a,r=t.currentTime.getMonth()+1;return 12===r&&(t.currentTime.setFullYear(t.currentTime.getFullYear()+1),r=0),a=t.currentTime.getFullYear(),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),r+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(r),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),a!==t.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),r},t.prevMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a=t.currentTime.getMonth()-1;return-1===a&&(t.currentTime.setFullYear(t.currentTime.getFullYear()-1),a=11),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),a+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(a),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),a},t.getWeekOfYear=function(t){if(C.onGetWeekOfYear&&e.isFunction(C.onGetWeekOfYear)){var a=C.onGetWeekOfYear.call(J,t);if("undefined"!=typeof a)return a}var r=new Date(t.getFullYear(),0,1);return 4!=r.getDay()&&r.setMonth(0,1+(4-r.getDay()+7)%7),Math.ceil(((t-r)/864e5+r.getDay()+1)/7)},t.strToDateTime=function(e){var a,n,o=[];return e&&e instanceof Date&&t.isValidDate(e)?e:(o=/^(\+|\-)(.*)$/.exec(e),o&&(o[2]=r.parseDate(o[2],C.formatDate)),o&&o[2]?(a=o[2].getTime()-6e4*o[2].getTimezoneOffset(),n=new Date(t.now(!0).getTime()+parseInt(o[1]+"1",10)*a)):n=e?r.parseDate(e,C.format):t.now(),t.isValidDate(n)||(n=t.now()),n)},t.strToDate=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatDate):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.strtotime=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatTime):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.str=function(){return r.formatDate(t.currentTime,C.format)},t.currentTime=this.now()},j=new d,V.on("touchend click",function(e){e.preventDefault(),J.data("changed",!0),j.setCurrentTime(i()),a.val(j.str()),J.trigger("close.xdsoft")}),N.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){J.data("changed",!0),j.setCurrentTime(0,!0),J.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,r=j.getCurrentTime();r=new Date(r.getFullYear(),r.getMonth(),r.getDate()),e=j.strToDate(C.minDate),e=new Date(e.getFullYear(),e.getMonth(),e.getDate()),e>r||(t=j.strToDate(C.maxDate),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r>t||(a.val(j.str()),a.trigger("change"),J.trigger("close.xdsoft")))}),N.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1;!function n(e){t.hasClass(C.next)?j.nextMonth():t.hasClass(C.prev)&&j.prevMonth(),C.monthChangeSpinner&&(r||(a=setTimeout(n,e||100)))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function o(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",o)})}),E.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1,n=110;!function o(e){var i=R[0].clientHeight,s=B[0].offsetHeight,d=Math.abs(parseInt(B.css("marginTop"),10));t.hasClass(C.next)&&s-i-C.timeHeightInTimePicker>=d?B.css("marginTop","-"+(d+C.timeHeightInTimePicker)+"px"):t.hasClass(C.prev)&&d-C.timeHeightInTimePicker>=0&&B.css("marginTop","-"+(d-C.timeHeightInTimePicker)+"px"),R.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(B[0].style.marginTop,10)/(s-i))]),n=n>10?10:n-10,r||(a=setTimeout(o,e||n))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function i(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",i)})}),u=0,J.on("xchange.xdsoft",function(t){clearTimeout(u),u=setTimeout(function(){if(void 0===j.currentTime||null===j.currentTime){if(C.allowBlank)return;j.currentTime=j.now()}for(var t,i,s,d,u,l,f,c,m,h,g="",p=new Date(j.currentTime.getFullYear(),j.currentTime.getMonth(),1,12,0,0),y=0,v=j.now(),b=!1,D=!1,k=[],x=!0,T="",S="";p.getDay()!==C.dayOfWeekStart;)p.setDate(p.getDate()-1);for(g+="<table><thead><tr>",C.weeks&&(g+="<th></th>"),t=0;7>t;t+=1)g+="<th>"+C.i18n[o].dayOfWeekShort[(t+C.dayOfWeekStart)%7]+"</th>";for(g+="</tr></thead>",g+="<tbody>",C.maxDate!==!1&&(b=j.strToDate(C.maxDate),b=new Date(b.getFullYear(),b.getMonth(),b.getDate(),23,59,59,999)),C.minDate!==!1&&(D=j.strToDate(C.minDate),D=new Date(D.getFullYear(),D.getMonth(),D.getDate()));y<j.currentTime.countDaysInMonth()||p.getDay()!==C.dayOfWeekStart||j.currentTime.getMonth()===p.getMonth();)k=[],y+=1,s=p.getDay(),d=p.getDate(),u=p.getFullYear(),l=p.getMonth(),f=j.getWeekOfYear(p),h="",k.push("xdsoft_date"),c=C.beforeShowDay&&e.isFunction(C.beforeShowDay.call)?C.beforeShowDay.call(J,p):null,C.allowDateRe&&"[object RegExp]"===Object.prototype.toString.call(C.allowDateRe)?C.allowDateRe.test(r.formatDate(p,C.formatDate))||k.push("xdsoft_disabled"):C.allowDates&&C.allowDates.length>0?-1===C.allowDates.indexOf(r.formatDate(p,C.formatDate))&&k.push("xdsoft_disabled"):b!==!1&&p>b||D!==!1&&D>p||c&&c[0]===!1?k.push("xdsoft_disabled"):-1!==C.disabledDates.indexOf(r.formatDate(p,C.formatDate))?k.push("xdsoft_disabled"):-1!==C.disabledWeekDays.indexOf(s)?k.push("xdsoft_disabled"):a.is("[readonly]")&&k.push("xdsoft_disabled"),c&&""!==c[1]&&k.push(c[1]),j.currentTime.getMonth()!==l&&k.push("xdsoft_other_month"),(C.defaultSelect||J.data("changed"))&&r.formatDate(j.currentTime,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_current"),r.formatDate(v,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_today"),(0===p.getDay()||6===p.getDay()||-1!==C.weekends.indexOf(r.formatDate(p,C.formatDate)))&&k.push("xdsoft_weekend"),void 0!==C.highlightedDates[r.formatDate(p,C.formatDate)]&&(i=C.highlightedDates[r.formatDate(p,C.formatDate)],k.push(void 0===i.style?"xdsoft_highlighted_default":i.style),h=void 0===i.desc?"":i.desc),C.beforeShowDay&&e.isFunction(C.beforeShowDay)&&k.push(C.beforeShowDay(p)),x&&(g+="<tr>",x=!1,C.weeks&&(g+="<th>"+f+"</th>")),g+='<td data-date="'+d+'" data-month="'+l+'" data-year="'+u+'" class="xdsoft_date xdsoft_day_of_week'+p.getDay()+" "+k.join(" ")+'" title="'+h+'"><div>'+d+"</div></td>",p.getDay()===C.dayOfWeekStartPrev&&(g+="</tr>",x=!0),p.setDate(d+1);if(g+="</tbody></table>",L.html(g),N.find(".xdsoft_label span").eq(0).text(C.i18n[o].months[j.currentTime.getMonth()]),N.find(".xdsoft_label span").eq(1).text(j.currentTime.getFullYear()),T="",S="",l="",m=function(t,n){var o,i,s=j.now(),d=C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length;s.setHours(t),t=parseInt(s.getHours(),10),s.setMinutes(n),n=parseInt(s.getMinutes(),10),o=new Date(j.currentTime),o.setHours(t),o.setMinutes(n),k=[],C.minDateTime!==!1&&C.minDateTime>o||C.maxTime!==!1&&j.strtotime(C.maxTime).getTime()<s.getTime()||C.minTime!==!1&&j.strtotime(C.minTime).getTime()>s.getTime()?k.push("xdsoft_disabled"):C.minDateTime!==!1&&C.minDateTime>o||C.disabledMinTime!==!1&&s.getTime()>j.strtotime(C.disabledMinTime).getTime()&&C.disabledMaxTime!==!1&&s.getTime()<j.strtotime(C.disabledMaxTime).getTime()?k.push("xdsoft_disabled"):a.is("[readonly]")&&k.push("xdsoft_disabled"),i=new Date(j.currentTime),i.setHours(parseInt(j.currentTime.getHours(),10)),d||i.setMinutes(Math[C.roundTime](j.currentTime.getMinutes()/C.step)*C.step),(C.initTime||C.defaultSelect||J.data("changed"))&&i.getHours()===parseInt(t,10)&&(!d&&C.step>59||i.getMinutes()===parseInt(n,10))&&(C.defaultSelect||J.data("changed")?k.push("xdsoft_current"):C.initTime&&k.push("xdsoft_init_time")),parseInt(v.getHours(),10)===parseInt(t,10)&&parseInt(v.getMinutes(),10)===parseInt(n,10)&&k.push("xdsoft_today"),T+='<div class="xdsoft_time '+k.join(" ")+'" data-hour="'+t+'" data-minute="'+n+'">'+r.formatDate(s,C.formatTime)+"</div>"},C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length)for(y=0;y<C.allowTimes.length;y+=1)S=j.strtotime(C.allowTimes[y]).getHours(),l=j.strtotime(C.allowTimes[y]).getMinutes(),m(S,l);else for(y=0,t=0;y<(C.hours12?12:24);y+=1)for(t=0;60>t;t+=C.step)S=(10>y?"0":"")+y,l=(10>t?"0":"")+t,m(S,l);for(B.html(T),n="",y=0,y=parseInt(C.yearStart,10)+C.yearOffset;y<=parseInt(C.yearEnd,10)+C.yearOffset;y+=1)n+='<div class="xdsoft_option '+(j.currentTime.getFullYear()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+y+"</div>";for(U.children().eq(0).html(n),y=parseInt(C.monthStart,10),n="";y<=parseInt(C.monthEnd,10);y+=1)n+='<div class="xdsoft_option '+(j.currentTime.getMonth()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+C.i18n[o].months[y]+"</div>";G.children().eq(0).html(n),e(J).trigger("generate.xdsoft")},10),t.stopPropagation()}).on("afterOpen.xdsoft",function(){if(C.timepicker){var e,t,a,r;B.find(".xdsoft_current").length?e=".xdsoft_current":B.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=R[0].clientHeight,a=B[0].offsetHeight,r=B.find(e).index()*C.timeHeightInTimePicker+1,r>a-t&&(r=a-t),R.trigger("scroll_element.xdsoft_scroller",[parseInt(r,10)/(a-t)])):R.trigger("scroll_element.xdsoft_scroller",[0])}}),P=0,L.on("touchend click.xdsoft","td",function(t){t.stopPropagation(),P+=1;var r=e(this),n=j.currentTime;return(void 0===n||null===n)&&(j.currentTime=j.now(),n=j.currentTime),r.hasClass("xdsoft_disabled")?!1:(n.setDate(1),n.setFullYear(r.data("year")),n.setMonth(r.data("month")),n.setDate(r.data("date")),J.trigger("select.xdsoft",[n]),a.val(j.str()),C.onSelectDate&&e.isFunction(C.onSelectDate)&&C.onSelectDate.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),(P>1||C.closeOnDateSelect===!0||C.closeOnDateSelect===!1&&!C.timepicker)&&!C.inline&&J.trigger("close.xdsoft"),void setTimeout(function(){P=0},200))}),B.on("touchend click.xdsoft","div",function(t){t.stopPropagation();var a=e(this),r=j.currentTime;return(void 0===r||null===r)&&(j.currentTime=j.now(),r=j.currentTime),a.hasClass("xdsoft_disabled")?!1:(r.setHours(a.data("hour")),r.setMinutes(a.data("minute")),J.trigger("select.xdsoft",[r]),J.data("input").val(j.str()),C.onSelectTime&&e.isFunction(C.onSelectTime)&&C.onSelectTime.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),void(C.inline!==!0&&C.closeOnTimeSelect===!0&&J.trigger("close.xdsoft")))}),I.on("mousewheel.xdsoft",function(e){return C.scrollMonth?(e.deltaY<0?j.nextMonth():j.prevMonth(),!1):!0}),a.on("mousewheel.xdsoft",function(e){return C.scrollInput?!C.datepicker&&C.timepicker?(A=B.find(".xdsoft_current").length?B.find(".xdsoft_current").eq(0).index():0,A+e.deltaY>=0&&A+e.deltaY<B.children().length&&(A+=e.deltaY),B.children().eq(A).length&&B.children().eq(A).trigger("mousedown"),!1):C.datepicker&&!C.timepicker?(I.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),a.val&&a.val(j.str()),J.trigger("changedatetime.xdsoft"),!1):void 0:!0}),J.on("changedatetime.xdsoft",function(t){if(C.onChangeDateTime&&e.isFunction(C.onChangeDateTime)){var a=J.data("input");C.onChangeDateTime.call(J,j.currentTime,a,t),delete C.value,a.trigger("change")}}).on("generate.xdsoft",function(){C.onGenerate&&e.isFunction(C.onGenerate)&&C.onGenerate.call(J,j.currentTime,J.data("input")),q&&(J.trigger("afterOpen.xdsoft"),q=!1)}).on("click.xdsoft",function(e){e.stopPropagation()}),A=0,H=function(e,t){do if(e=e.parentNode,t(e)===!1)break;while("HTML"!==e.nodeName)},Y=function(){var t,a,r,n,o,i,s,d,u,l,f,c,m;if(d=J.data("input"),t=d.offset(),a=d[0],l="top",r=t.top+a.offsetHeight-1,n=t.left,o="absolute",u=e(window).width(),c=e(window).height(),m=e(window).scrollTop(),document.documentElement.clientWidth-t.left<I.parent().outerWidth(!0)){var h=I.parent().outerWidth(!0)-a.offsetWidth;n-=h}"rtl"===d.parent().css("direction")&&(n-=J.outerWidth()-d.outerWidth()),C.fixed?(r-=m,n-=e(window).scrollLeft(),o="fixed"):(s=!1,H(a,function(e){return"fixed"===window.getComputedStyle(e).getPropertyValue("position")?(s=!0,!1):void 0}),s?(o="fixed",r+J.outerHeight()>c+m?(l="bottom",r=c+m-t.top):r-=m):r+a.offsetHeight>c+m&&(r=t.top-a.offsetHeight+1),0>r&&(r=0),n+a.offsetWidth>u&&(n=u-a.offsetWidth)),i=J[0],H(i,function(e){var t;return t=window.getComputedStyle(e).getPropertyValue("position"),"relative"===t&&u>=e.offsetWidth?(n-=(u-e.offsetWidth)/2,!1):void 0}),f={position:o,left:n,top:"",bottom:""},f[l]=r,J.css(f)},J.on("open.xdsoft",function(t){var a=!0;C.onShow&&e.isFunction(C.onShow)&&(a=C.onShow.call(J,j.currentTime,J.data("input"),t)),a!==!1&&(J.show(),Y(),e(window).off("resize.xdsoft",Y).on("resize.xdsoft",Y),C.closeOnWithoutClick&&e([document.body,window]).on("touchstart mousedown.xdsoft",function r(){J.trigger("close.xdsoft"),e([document.body,window]).off("touchstart mousedown.xdsoft",r)}))}).on("close.xdsoft",function(t){var a=!0;N.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),C.onClose&&e.isFunction(C.onClose)&&(a=C.onClose.call(J,j.currentTime,J.data("input"),t)),a===!1||C.opened||C.inline||J.hide(),t.stopPropagation()}).on("toggle.xdsoft",function(){J.trigger(J.is(":visible")?"close.xdsoft":"open.xdsoft")}).data("input",a),X=0,J.data("xdsoft_datetime",j),J.setOptions(C),j.setCurrentTime(i()),a.data("xdsoft_datetimepicker",J).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){a.is(":disabled")||a.data("xdsoft_datetimepicker").is(":visible")&&C.closeOnInputClick||(clearTimeout(X),X=setTimeout(function(){a.is(":disabled")||(q=!0,j.setCurrentTime(i(),!0),C.mask&&s(C),J.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var a,r=t.which;return-1!==[p].indexOf(r)&&C.enterLikeTab?(a=e("input:visible,textarea:visible,button:visible,a:visible"),J.trigger("close.xdsoft"),a.eq(a.index(this)+1).focus(),!1):-1!==[T].indexOf(r)?(J.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){J.trigger("close.xdsoft")})},d=function(t){var a=t.data("xdsoft_datetimepicker");a&&(a.data("xdsoft_datetime",null),a.remove(),t.data("xdsoft_datetimepicker",null).off(".xdsoft"),e(window).off("resize.xdsoft"),e([window,document.body]).off("mousedown.xdsoft touchstart"),t.unmousewheel&&t.unmousewheel())},e(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(e){e.keyCode===h&&(F=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===h&&(F=!1)}),this.each(function(){var t,a=e(this).data("xdsoft_datetimepicker");if(a){if("string"===e.type(n))switch(n){case"show":e(this).select().focus(),a.trigger("open.xdsoft");break;case"hide":a.trigger("close.xdsoft");break;case"toggle":a.trigger("toggle.xdsoft");break;case"destroy":d(e(this));break;case"reset":this.value=this.defaultValue,this.value&&a.data("xdsoft_datetime").isValidDate(r.parseDate(this.value,C.format))||a.data("changed",!1),a.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":t=a.data("input"),t.trigger("blur.xdsoft");break;default:a[n]&&e.isFunction(a[n])&&(u=a[n](i))}else a.setOptions(n);return 0}"string"!==e.type(n)&&(!C.lazyInit||C.open||C.inline?s(e(this)):A(e(this)))}),u},e.fn.datetimepicker.defaults=a}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var i=t||window.event,s=d.call(arguments,1),u=0,f=0,c=0,m=0,h=0,g=0;if(t=e.event.fix(i),t.type="mousewheel","detail"in i&&(c=-1*i.detail),"wheelDelta"in i&&(c=i.wheelDelta),"wheelDeltaY"in i&&(c=i.wheelDeltaY),"wheelDeltaX"in i&&(f=-1*i.wheelDeltaX),"axis"in i&&i.axis===i.HORIZONTAL_AXIS&&(f=-1*c,c=0),u=0===c?f:c,"deltaY"in i&&(c=-1*i.deltaY,u=c),"deltaX"in i&&(f=i.deltaX,0===c&&(u=-1*f)),0!==c||0!==f){if(1===i.deltaMode){var p=e.data(this,"mousewheel-line-height");u*=p,c*=p,f*=p}else if(2===i.deltaMode){var y=e.data(this,"mousewheel-page-height");u*=y,c*=y,f*=y}if(m=Math.max(Math.abs(c),Math.abs(f)),(!o||o>m)&&(o=m,r(i,m)&&(o/=40)),r(i,m)&&(u/=40,f/=40,c/=40),u=Math[u>=1?"floor":"ceil"](u/o),f=Math[f>=1?"floor":"ceil"](f/o),c=Math[c>=1?"floor":"ceil"](c/o),l.settings.normalizeOffset&&this.getBoundingClientRect){var v=this.getBoundingClientRect();h=t.clientX-v.left,g=t.clientY-v.top}return t.deltaX=f,t.deltaY=c,t.deltaFactor=o,t.offsetX=h,t.offsetY=g,t.deltaMode=0,s.unshift(t,u,f,c),n&&clearTimeout(n),n=setTimeout(a,200),(e.event.dispatch||e.event.handle).apply(this,s)}}function a(){o=null}function r(e,t){return l.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120===0}var n,o,i=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],s="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],d=Array.prototype.slice;if(e.event.fixHooks)for(var u=i.length;u;)e.event.fixHooks[i[--u]]=e.event.mouseHooks;var l=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var a=s.length;a;)this.addEventListener(s[--a],t,!1);else this.onmousewheel=t;e.data(this,"mousewheel-line-height",l.getLineHeight(this)),e.data(this,"mousewheel-page-height",l.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var a=s.length;a;)this.removeEventListener(s[--a],t,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var a=e(t),r=a["offsetParent"in e.fn?"offsetParent":"parent"]();return r.length||(r=e("body")),parseInt(r.css("fontSize"),10)||parseInt(a.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});
|
assets/js/datetimepicker/jquery.datetimepicker.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";function t(e,t,a){this.date=e,this.desc=t,this.style=a}var a={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه","یکشنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,disabledMinTime:!1,disabledMaxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1},o=null,r="en",n="en",i={meridiem:["AM","PM"]},s=function(){var t=a.i18n[n],r={days:t.dayOfWeek,daysShort:t.dayOfWeekShort,months:t.months,monthsShort:e.map(t.months,function(e){return e.substring(0,3)})};o=new DateFormatter({dateSettings:e.extend({},i,r)})};e.datetimepicker={setLocale:function(e){var t=a.i18n[e]?e:r;n!=t&&(n=t,s())},setDateFormatter:function(e){o=e},RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},s(),window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var a=/(\-([a-z]){1})/g;return"float"===t&&(t="styleFloat"),a.test(t)&&(t=t.replace(a,function(e,t,a){return a.toUpperCase()})),e.currentStyle[t]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,o;for(a=t||0,o=this.length;o>a;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},e.fn.xdsoftScroller=function(t){return this.each(function(){var a,o,r,n,i,s=e(this),d=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):("mousedown"===e.type||"mouseup"===e.type||"mousemove"===e.type||"mouseover"===e.type||"mouseout"===e.type||"mouseenter"===e.type||"mouseleave"===e.type)&&(a.x=e.clientX,a.y=e.clientY),a},u=100,l=!1,f=0,c=0,m=0,h=!1,g=0,p=function(){};return"hide"===t?void s.find(".xdsoft_scrollbar").hide():(e(this).hasClass("xdsoft_scroller_box")||(a=s.children().eq(0),o=s[0].clientHeight,r=a[0].offsetHeight,n=e('<div class="xdsoft_scrollbar"></div>'),i=e('<div class="xdsoft_scroller"></div>'),n.append(i),s.addClass("xdsoft_scroller_box").append(n),p=function(e){var t=d(e).y-f+g;0>t&&(t=0),t+i[0].offsetHeight>m&&(t=m-i[0].offsetHeight),s.trigger("scroll_element.xdsoft_scroller",[u?t/u:0])},i.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(a){o||s.trigger("resize_scroll.xdsoft_scroller",[t]),f=d(a).y,g=parseInt(i.css("margin-top"),10),m=n[0].offsetHeight,"mousedown"===a.type||"touchstart"===a.type?(document&&e(document.body).addClass("xdsoft_noselect"),e([document.body,window]).on("touchend mouseup.xdsoft_scroller",function r(){e([document.body,window]).off("touchend mouseup.xdsoft_scroller",r).off("mousemove.xdsoft_scroller",p).removeClass("xdsoft_noselect")}),e(document.body).on("mousemove.xdsoft_scroller",p)):(h=!0,a.stopPropagation(),a.preventDefault())}).on("touchmove",function(e){h&&(e.preventDefault(),p(e))}).on("touchend touchcancel",function(){h=!1,g=0}),s.on("scroll_element.xdsoft_scroller",function(e,t){o||s.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=t>1?1:0>t||isNaN(t)?0:t,i.css("margin-top",u*t),setTimeout(function(){a.css("marginTop",-parseInt((a[0].offsetHeight-o)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,d){var l,f;o=s[0].clientHeight,r=a[0].offsetHeight,l=o/r,f=l*n[0].offsetHeight,l>1?i.hide():(i.show(),i.css("height",parseInt(f>10?f:10,10)),u=n[0].offsetHeight-i[0].offsetHeight,d!==!0&&s.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(a.css("marginTop"),10))/(r-o)]))}),s.on("mousewheel",function(e){var t=Math.abs(parseInt(a.css("marginTop"),10));return t-=20*e.deltaY,0>t&&(t=0),s.trigger("scroll_element.xdsoft_scroller",[t/(r-o)]),e.stopPropagation(),!1}),s.on("touchstart",function(e){l=d(e),c=Math.abs(parseInt(a.css("marginTop"),10))}),s.on("touchmove",function(e){if(l){e.preventDefault();var t=d(e);s.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-l.y))/(r-o)])}}),s.on("touchend touchcancel",function(){l=!1,c=0})),void s.trigger("resize_scroll.xdsoft_scroller",[t]))})},e.fn.datetimepicker=function(r,i){var s,d,u=this,l=48,f=57,c=96,m=105,h=17,g=46,p=13,y=27,k=8,b=37,x=38,v=39,D=40,T=9,S=116,O=65,w=67,M=86,_=90,W=89,F=!1,C=e.isPlainObject(r)||!r?e.extend(!0,{},a,r):e.extend(!0,{},a),A=0,P=function(e){e.on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function t(){e.is(":disabled")||e.data("xdsoft_datetimepicker")||(clearTimeout(A),A=setTimeout(function(){e.data("xdsoft_datetimepicker")||s(e),e.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",t).trigger("open.xdsoft")},100))})};return s=function(a){function i(){var e,t=!1;return C.startDate?t=J.strToDate(C.startDate):(t=C.value||(a&&a.val&&a.val()?a.val():""),t?t=J.strToDateTime(t):C.defaultDate&&(t=J.strToDateTime(C.defaultDate),C.defaultTime&&(e=J.strtotime(C.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes())))),t&&J.isValidDate(t)?Y.data("changed",!0):t="",t||0}function s(t){var o=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},r=function(e){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();return t.getBookmark().charCodeAt(2)-2}if(e.setSelectionRange)return e.selectionStart}catch(a){return 0}},n=function(e,t){if(e="string"==typeof e||e instanceof String?document.getElementById(e):e,!e)return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return e.setSelectionRange?(e.setSelectionRange(t,t),!0):!1};t.mask&&a.off("keydown.xdsoft"),t.mask===!0&&(t.mask="undefined"!=typeof moment?t.format.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59"):t.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===e.type(t.mask)&&(o(t.mask,a.val())||(a.val(t.mask.replace(/[0-9]/g,"_")),n(a[0],0)),a.on("keydown.xdsoft",function(i){var s,d,u=this.value,C=i.which;if(C>=l&&f>=C||C>=c&&m>=C||C===k||C===g){for(s=r(this),d=C!==k&&C!==g?String.fromCharCode(C>=c&&m>=C?C-l:C):"_",C!==k&&C!==g||!s||(s-=1,d="_");/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===k||C===g?-1:1;if(u=u.substr(0,s)+d+u.substr(s+1),""===e.trim(u))u=t.mask.replace(/[0-9]/g,"_");else if(s===t.mask.length)return i.preventDefault(),!1;for(s+=C===k||C===g?0:1;/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===k||C===g?-1:1;o(t.mask,u)?(this.value=u,n(this,s)):""===e.trim(u)?this.value=t.mask.replace(/[0-9]/g,"_"):a.trigger("error_input.xdsoft")}else if(-1!==[O,w,M,_,W].indexOf(C)&&F||-1!==[y,x,D,b,v,S,h,T,p].indexOf(C))return!0;return i.preventDefault(),!1}))}var d,u,A,P,j,J,H,Y=e('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),z=e('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),N=e('<div class="xdsoft_datepicker active"></div>'),I=e('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'),L=e('<div class="xdsoft_calendar"></div>'),R=e('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),V=R.find(".xdsoft_time_box").eq(0),E=e('<div class="xdsoft_time_variant"></div>'),B=e('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),G=e('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),q=e('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),K=!1,U=0;C.id&&Y.attr("id",C.id),C.style&&Y.attr("style",C.style),C.weeks&&Y.addClass("xdsoft_showweeks"),C.rtl&&Y.addClass("xdsoft_rtl"),Y.addClass("xdsoft_"+C.theme),Y.addClass(C.className),I.find(".xdsoft_month span").after(G),I.find(".xdsoft_year span").after(q),I.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(t){var a,o,r=e(this).find(".xdsoft_select").eq(0),n=0,i=0,s=r.is(":visible");for(I.find(".xdsoft_select").hide(),J.currentTime&&(n=J.currentTime[e(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),r[s?"hide":"show"](),a=r.find("div.xdsoft_option"),o=0;o<a.length&&a.eq(o).data("value")!==n;o+=1)i+=a[0].offsetHeight;return r.xdsoftScroller(i/(r.children()[0].offsetHeight-r[0].clientHeight)),t.stopPropagation(),!1}),I.find(".xdsoft_select").xdsoftScroller().on("touchstart mousedown.xdsoft",function(e){e.stopPropagation(),e.preventDefault()}).on("touchstart mousedown.xdsoft",".xdsoft_option",function(){(void 0===J.currentTime||null===J.currentTime)&&(J.currentTime=J.now());var t=J.currentTime.getFullYear();J&&J.currentTime&&J.currentTime[e(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](e(this).data("value")),e(this).parent().parent().hide(),Y.trigger("xchange.xdsoft"),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(Y,J.currentTime,Y.data("input")),t!==J.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(Y,J.currentTime,Y.data("input"))}),Y.getValue=function(){return J.getCurrentTime()},Y.setOptions=function(r){var n={};C=e.extend(!0,{},C,r),r.allowTimes&&e.isArray(r.allowTimes)&&r.allowTimes.length&&(C.allowTimes=e.extend(!0,[],r.allowTimes)),r.weekends&&e.isArray(r.weekends)&&r.weekends.length&&(C.weekends=e.extend(!0,[],r.weekends)),r.allowDates&&e.isArray(r.allowDates)&&r.allowDates.length&&(C.allowDates=e.extend(!0,[],r.allowDates)),r.allowDateRe&&"[object String]"===Object.prototype.toString.call(r.allowDateRe)&&(C.allowDateRe=new RegExp(r.allowDateRe)),r.highlightedDates&&e.isArray(r.highlightedDates)&&r.highlightedDates.length&&(e.each(r.highlightedDates,function(a,r){var i,s=e.map(r.split(","),e.trim),d=new t(o.parseDate(s[0],C.formatDate),s[1],s[2]),u=o.formatDate(d.date,C.formatDate);void 0!==n[u]?(i=n[u].desc,i&&i.length&&d.desc&&d.desc.length&&(n[u].desc=i+"\n"+d.desc)):n[u]=d}),C.highlightedDates=e.extend(!0,[],n)),r.highlightedPeriods&&e.isArray(r.highlightedPeriods)&&r.highlightedPeriods.length&&(n=e.extend(!0,[],C.highlightedDates),e.each(r.highlightedPeriods,function(a,r){var i,s,d,u,l,f,c;if(e.isArray(r))i=r[0],s=r[1],d=r[2],c=r[3];else{var m=e.map(r.split(","),e.trim);i=o.parseDate(m[0],C.formatDate),s=o.parseDate(m[1],C.formatDate),d=m[2],c=m[3]}for(;s>=i;)u=new t(i,d,c),l=o.formatDate(i,C.formatDate),i.setDate(i.getDate()+1),void 0!==n[l]?(f=n[l].desc,f&&f.length&&u.desc&&u.desc.length&&(n[l].desc=f+"\n"+u.desc)):n[l]=u}),C.highlightedDates=e.extend(!0,[],n)),r.disabledDates&&e.isArray(r.disabledDates)&&r.disabledDates.length&&(C.disabledDates=e.extend(!0,[],r.disabledDates)),r.disabledWeekDays&&e.isArray(r.disabledWeekDays)&&r.disabledWeekDays.length&&(C.disabledWeekDays=e.extend(!0,[],r.disabledWeekDays)),!C.open&&!C.opened||C.inline||a.trigger("open.xdsoft"),C.inline&&(K=!0,Y.addClass("xdsoft_inline"),a.after(Y).hide()),C.inverseButton&&(C.next="xdsoft_prev",C.prev="xdsoft_next"),C.datepicker?N.addClass("active"):N.removeClass("active"),C.timepicker?R.addClass("active"):R.removeClass("active"),C.value&&(J.setCurrentTime(C.value),a&&a.val&&a.val(J.str)),C.dayOfWeekStart=isNaN(C.dayOfWeekStart)?0:parseInt(C.dayOfWeekStart,10)%7,C.timepickerScrollbar||V.xdsoftScroller("hide"),C.minDate&&/^[\+\-](.*)$/.test(C.minDate)&&(C.minDate=o.formatDate(J.strToDateTime(C.minDate),C.formatDate)),C.maxDate&&/^[\+\-](.*)$/.test(C.maxDate)&&(C.maxDate=o.formatDate(J.strToDateTime(C.maxDate),C.formatDate)),B.toggle(C.showApplyButton),I.find(".xdsoft_today_button").css("visibility",C.todayButton?"visible":"hidden"),I.find("."+C.prev).css("visibility",C.prevButton?"visible":"hidden"),I.find("."+C.next).css("visibility",C.nextButton?"visible":"hidden"),s(C),C.validateOnBlur&&a.off("blur.xdsoft").on("blur.xdsoft",function(){if(C.allowBlank&&(!e.trim(e(this).val()).length||"string"==typeof C.mask&&e.trim(e(this).val())===C.mask.replace(/[0-9]/g,"_")))e(this).val(null),Y.data("xdsoft_datetime").empty();else{var t=o.parseDate(e(this).val(),C.format);if(t)e(this).val(o.formatDate(t,C.format));else{var a=+[e(this).val()[0],e(this).val()[1]].join(""),r=+[e(this).val()[2],e(this).val()[3]].join("");e(this).val(!C.datepicker&&C.timepicker&&a>=0&&24>a&&r>=0&&60>r?[a,r].map(function(e){return e>9?e:"0"+e}).join(":"):o.formatDate(J.now(),C.format))}Y.data("xdsoft_datetime").setCurrentTime(e(this).val())}Y.trigger("changedatetime.xdsoft"),Y.trigger("close.xdsoft")}),C.dayOfWeekStartPrev=0===C.dayOfWeekStart?6:C.dayOfWeekStart-1,Y.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},Y.data("options",C).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),q.hide(),G.hide(),!1}),V.append(E),V.xdsoftScroller(),Y.on("afterOpen.xdsoft",function(){V.xdsoftScroller()}),Y.append(N).append(R),C.withoutCopyright!==!0&&Y.append(z),N.append(I).append(L).append(B),e(C.parentID).append(Y),d=function(){var t=this;t.now=function(e){var a,o,r=new Date;return!e&&C.defaultDate&&(a=t.strToDateTime(C.defaultDate),r.setFullYear(a.getFullYear()),r.setMonth(a.getMonth()),r.setDate(a.getDate())),C.yearOffset&&r.setFullYear(r.getFullYear()+C.yearOffset),!e&&C.defaultTime&&(o=t.strtotime(C.defaultTime),r.setHours(o.getHours()),r.setMinutes(o.getMinutes())),r},t.isValidDate=function(e){return"[object Date]"!==Object.prototype.toString.call(e)?!1:!isNaN(e.getTime())},t.setCurrentTime=function(e,a){t.currentTime="string"==typeof e?t.strToDateTime(e):t.isValidDate(e)?e:e||a||!C.allowBlank?t.now():null,Y.trigger("xchange.xdsoft")},t.empty=function(){t.currentTime=null},t.getCurrentTime=function(){return t.currentTime},t.nextMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a,o=t.currentTime.getMonth()+1;return 12===o&&(t.currentTime.setFullYear(t.currentTime.getFullYear()+1),o=0),a=t.currentTime.getFullYear(),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),o+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(o),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(Y,J.currentTime,Y.data("input")),a!==t.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(Y,J.currentTime,Y.data("input")),Y.trigger("xchange.xdsoft"),o},t.prevMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a=t.currentTime.getMonth()-1;return-1===a&&(t.currentTime.setFullYear(t.currentTime.getFullYear()-1),a=11),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),a+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(a),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(Y,J.currentTime,Y.data("input")),Y.trigger("xchange.xdsoft"),a},t.getWeekOfYear=function(t){if(C.onGetWeekOfYear&&e.isFunction(C.onGetWeekOfYear)){var a=C.onGetWeekOfYear.call(Y,t);if("undefined"!=typeof a)return a}var o=new Date(t.getFullYear(),0,1);return 4!=o.getDay()&&o.setMonth(0,1+(4-o.getDay()+7)%7),Math.ceil(((t-o)/864e5+o.getDay()+1)/7)},t.strToDateTime=function(e){var a,r,n=[];return e&&e instanceof Date&&t.isValidDate(e)?e:(n=/^(\+|\-)(.*)$/.exec(e),n&&(n[2]=o.parseDate(n[2],C.formatDate)),n&&n[2]?(a=n[2].getTime()-6e4*n[2].getTimezoneOffset(),r=new Date(t.now(!0).getTime()+parseInt(n[1]+"1",10)*a)):r=e?o.parseDate(e,C.format):t.now(),t.isValidDate(r)||(r=t.now()),r)},t.strToDate=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?o.parseDate(e,C.formatDate):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.strtotime=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?o.parseDate(e,C.formatTime):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.str=function(){return o.formatDate(t.currentTime,C.format)},t.currentTime=this.now()},J=new d,B.on("touchend click",function(e){e.preventDefault(),Y.data("changed",!0),J.setCurrentTime(i()),a.val(J.str()),Y.trigger("close.xdsoft")}),I.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){
|
2 |
+
Y.data("changed",!0),J.setCurrentTime(0,!0),Y.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,o=J.getCurrentTime();o=new Date(o.getFullYear(),o.getMonth(),o.getDate()),e=J.strToDate(C.minDate),e=new Date(e.getFullYear(),e.getMonth(),e.getDate()),e>o||(t=J.strToDate(C.maxDate),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),o>t||(a.val(J.str()),a.trigger("change"),Y.trigger("close.xdsoft")))}),I.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,o=!1;!function r(e){t.hasClass(C.next)?J.nextMonth():t.hasClass(C.prev)&&J.prevMonth(),C.monthChangeSpinner&&(o||(a=setTimeout(r,e||100)))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function n(){clearTimeout(a),o=!0,e([document.body,window]).off("touchend mouseup.xdsoft",n)})}),R.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,o=!1,r=110;!function n(e){var i=V[0].clientHeight,s=E[0].offsetHeight,d=Math.abs(parseInt(E.css("marginTop"),10));t.hasClass(C.next)&&s-i-C.timeHeightInTimePicker>=d?E.css("marginTop","-"+(d+C.timeHeightInTimePicker)+"px"):t.hasClass(C.prev)&&d-C.timeHeightInTimePicker>=0&&E.css("marginTop","-"+(d-C.timeHeightInTimePicker)+"px"),V.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(E[0].style.marginTop,10)/(s-i))]),r=r>10?10:r-10,o||(a=setTimeout(n,e||r))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function i(){clearTimeout(a),o=!0,e([document.body,window]).off("touchend mouseup.xdsoft",i)})}),u=0,Y.on("xchange.xdsoft",function(t){clearTimeout(u),u=setTimeout(function(){if(void 0===J.currentTime||null===J.currentTime){if(C.allowBlank)return;J.currentTime=J.now()}for(var t,i,s,d,u,l,f,c,m,h,g="",p=new Date(J.currentTime.getFullYear(),J.currentTime.getMonth(),1,12,0,0),y=0,k=J.now(),b=!1,x=!1,v=[],D=!0,T="",S="";p.getDay()!==C.dayOfWeekStart;)p.setDate(p.getDate()-1);for(g+="<table><thead><tr>",C.weeks&&(g+="<th></th>"),t=0;7>t;t+=1)g+="<th>"+C.i18n[n].dayOfWeekShort[(t+C.dayOfWeekStart)%7]+"</th>";for(g+="</tr></thead>",g+="<tbody>",C.maxDate!==!1&&(b=J.strToDate(C.maxDate),b=new Date(b.getFullYear(),b.getMonth(),b.getDate(),23,59,59,999)),C.minDate!==!1&&(x=J.strToDate(C.minDate),x=new Date(x.getFullYear(),x.getMonth(),x.getDate()));y<J.currentTime.countDaysInMonth()||p.getDay()!==C.dayOfWeekStart||J.currentTime.getMonth()===p.getMonth();)v=[],y+=1,s=p.getDay(),d=p.getDate(),u=p.getFullYear(),l=p.getMonth(),f=J.getWeekOfYear(p),h="",v.push("xdsoft_date"),c=C.beforeShowDay&&e.isFunction(C.beforeShowDay.call)?C.beforeShowDay.call(Y,p):null,C.allowDateRe&&"[object RegExp]"===Object.prototype.toString.call(C.allowDateRe)?C.allowDateRe.test(o.formatDate(p,C.formatDate))||v.push("xdsoft_disabled"):C.allowDates&&C.allowDates.length>0?-1===C.allowDates.indexOf(o.formatDate(p,C.formatDate))&&v.push("xdsoft_disabled"):b!==!1&&p>b||x!==!1&&x>p||c&&c[0]===!1?v.push("xdsoft_disabled"):-1!==C.disabledDates.indexOf(o.formatDate(p,C.formatDate))?v.push("xdsoft_disabled"):-1!==C.disabledWeekDays.indexOf(s)?v.push("xdsoft_disabled"):a.is("[readonly]")&&v.push("xdsoft_disabled"),c&&""!==c[1]&&v.push(c[1]),J.currentTime.getMonth()!==l&&v.push("xdsoft_other_month"),(C.defaultSelect||Y.data("changed"))&&o.formatDate(J.currentTime,C.formatDate)===o.formatDate(p,C.formatDate)&&v.push("xdsoft_current"),o.formatDate(k,C.formatDate)===o.formatDate(p,C.formatDate)&&v.push("xdsoft_today"),(0===p.getDay()||6===p.getDay()||-1!==C.weekends.indexOf(o.formatDate(p,C.formatDate)))&&v.push("xdsoft_weekend"),void 0!==C.highlightedDates[o.formatDate(p,C.formatDate)]&&(i=C.highlightedDates[o.formatDate(p,C.formatDate)],v.push(void 0===i.style?"xdsoft_highlighted_default":i.style),h=void 0===i.desc?"":i.desc),C.beforeShowDay&&e.isFunction(C.beforeShowDay)&&v.push(C.beforeShowDay(p)),D&&(g+="<tr>",D=!1,C.weeks&&(g+="<th>"+f+"</th>")),g+='<td data-date="'+d+'" data-month="'+l+'" data-year="'+u+'" class="xdsoft_date xdsoft_day_of_week'+p.getDay()+" "+v.join(" ")+'" title="'+h+'"><div>'+d+"</div></td>",p.getDay()===C.dayOfWeekStartPrev&&(g+="</tr>",D=!0),p.setDate(d+1);if(g+="</tbody></table>",L.html(g),I.find(".xdsoft_label span").eq(0).text(C.i18n[n].months[J.currentTime.getMonth()]),I.find(".xdsoft_label span").eq(1).text(J.currentTime.getFullYear()),T="",S="",l="",m=function(t,r){var n,i,s=J.now(),d=C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length;s.setHours(t),t=parseInt(s.getHours(),10),s.setMinutes(r),r=parseInt(s.getMinutes(),10),n=new Date(J.currentTime),n.setHours(t),n.setMinutes(r),v=[],C.minDateTime!==!1&&C.minDateTime>n||C.maxTime!==!1&&J.strtotime(C.maxTime).getTime()<s.getTime()||C.minTime!==!1&&J.strtotime(C.minTime).getTime()>s.getTime()?v.push("xdsoft_disabled"):C.minDateTime!==!1&&C.minDateTime>n||C.disabledMinTime!==!1&&s.getTime()>J.strtotime(C.disabledMinTime).getTime()&&C.disabledMaxTime!==!1&&s.getTime()<J.strtotime(C.disabledMaxTime).getTime()?v.push("xdsoft_disabled"):a.is("[readonly]")&&v.push("xdsoft_disabled"),i=new Date(J.currentTime),i.setHours(parseInt(J.currentTime.getHours(),10)),d||i.setMinutes(Math[C.roundTime](J.currentTime.getMinutes()/C.step)*C.step),(C.initTime||C.defaultSelect||Y.data("changed"))&&i.getHours()===parseInt(t,10)&&(!d&&C.step>59||i.getMinutes()===parseInt(r,10))&&(C.defaultSelect||Y.data("changed")?v.push("xdsoft_current"):C.initTime&&v.push("xdsoft_init_time")),parseInt(k.getHours(),10)===parseInt(t,10)&&parseInt(k.getMinutes(),10)===parseInt(r,10)&&v.push("xdsoft_today"),T+='<div class="xdsoft_time '+v.join(" ")+'" data-hour="'+t+'" data-minute="'+r+'">'+o.formatDate(s,C.formatTime)+"</div>"},C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length)for(y=0;y<C.allowTimes.length;y+=1)S=J.strtotime(C.allowTimes[y]).getHours(),l=J.strtotime(C.allowTimes[y]).getMinutes(),m(S,l);else for(y=0,t=0;y<(C.hours12?12:24);y+=1)for(t=0;60>t;t+=C.step)S=(10>y?"0":"")+y,l=(10>t?"0":"")+t,m(S,l);for(E.html(T),r="",y=0,y=parseInt(C.yearStart,10)+C.yearOffset;y<=parseInt(C.yearEnd,10)+C.yearOffset;y+=1)r+='<div class="xdsoft_option '+(J.currentTime.getFullYear()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+y+"</div>";for(q.children().eq(0).html(r),y=parseInt(C.monthStart,10),r="";y<=parseInt(C.monthEnd,10);y+=1)r+='<div class="xdsoft_option '+(J.currentTime.getMonth()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+C.i18n[n].months[y]+"</div>";G.children().eq(0).html(r),e(Y).trigger("generate.xdsoft")},10),t.stopPropagation()}).on("afterOpen.xdsoft",function(){if(C.timepicker){var e,t,a,o;E.find(".xdsoft_current").length?e=".xdsoft_current":E.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=V[0].clientHeight,a=E[0].offsetHeight,o=E.find(e).index()*C.timeHeightInTimePicker+1,o>a-t&&(o=a-t),V.trigger("scroll_element.xdsoft_scroller",[parseInt(o,10)/(a-t)])):V.trigger("scroll_element.xdsoft_scroller",[0])}}),A=0,L.on("touchend click.xdsoft","td",function(t){t.stopPropagation(),A+=1;var o=e(this),r=J.currentTime;return(void 0===r||null===r)&&(J.currentTime=J.now(),r=J.currentTime),o.hasClass("xdsoft_disabled")?!1:(r.setDate(1),r.setFullYear(o.data("year")),r.setMonth(o.data("month")),r.setDate(o.data("date")),Y.trigger("select.xdsoft",[r]),a.val(J.str()),C.onSelectDate&&e.isFunction(C.onSelectDate)&&C.onSelectDate.call(Y,J.currentTime,Y.data("input"),t),Y.data("changed",!0),Y.trigger("xchange.xdsoft"),Y.trigger("changedatetime.xdsoft"),(A>1||C.closeOnDateSelect===!0||C.closeOnDateSelect===!1&&!C.timepicker)&&!C.inline&&Y.trigger("close.xdsoft"),void setTimeout(function(){A=0},200))}),E.on("touchend click.xdsoft","div",function(t){t.stopPropagation();var a=e(this),o=J.currentTime;return(void 0===o||null===o)&&(J.currentTime=J.now(),o=J.currentTime),a.hasClass("xdsoft_disabled")?!1:(o.setHours(a.data("hour")),o.setMinutes(a.data("minute")),Y.trigger("select.xdsoft",[o]),Y.data("input").val(J.str()),C.onSelectTime&&e.isFunction(C.onSelectTime)&&C.onSelectTime.call(Y,J.currentTime,Y.data("input"),t),Y.data("changed",!0),Y.trigger("xchange.xdsoft"),Y.trigger("changedatetime.xdsoft"),void(C.inline!==!0&&C.closeOnTimeSelect===!0&&Y.trigger("close.xdsoft")))}),N.on("mousewheel.xdsoft",function(e){return C.scrollMonth?(e.deltaY<0?J.nextMonth():J.prevMonth(),!1):!0}),a.on("mousewheel.xdsoft",function(e){return C.scrollInput?!C.datepicker&&C.timepicker?(P=E.find(".xdsoft_current").length?E.find(".xdsoft_current").eq(0).index():0,P+e.deltaY>=0&&P+e.deltaY<E.children().length&&(P+=e.deltaY),E.children().eq(P).length&&E.children().eq(P).trigger("mousedown"),!1):C.datepicker&&!C.timepicker?(N.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),a.val&&a.val(J.str()),Y.trigger("changedatetime.xdsoft"),!1):void 0:!0}),Y.on("changedatetime.xdsoft",function(t){if(C.onChangeDateTime&&e.isFunction(C.onChangeDateTime)){var a=Y.data("input");C.onChangeDateTime.call(Y,J.currentTime,a,t),delete C.value,a.trigger("change")}}).on("generate.xdsoft",function(){C.onGenerate&&e.isFunction(C.onGenerate)&&C.onGenerate.call(Y,J.currentTime,Y.data("input")),K&&(Y.trigger("afterOpen.xdsoft"),K=!1)}).on("click.xdsoft",function(e){e.stopPropagation()}),P=0,H=function(e,t){do if(e=e.parentNode,t(e)===!1)break;while("HTML"!==e.nodeName)},j=function(){var t,a,o,r,n,i,s,d,u,l,f,c,m;if(d=Y.data("input"),t=d.offset(),a=d[0],l="top",o=t.top+a.offsetHeight-1,r=t.left,n="absolute",u=e(window).width(),c=e(window).height(),m=e(window).scrollTop(),document.documentElement.clientWidth-t.left<N.parent().outerWidth(!0)){var h=N.parent().outerWidth(!0)-a.offsetWidth;r-=h}"rtl"===d.parent().css("direction")&&(r-=Y.outerWidth()-d.outerWidth()),C.fixed?(o-=m,r-=e(window).scrollLeft(),n="fixed"):(s=!1,H(a,function(e){return"fixed"===window.getComputedStyle(e).getPropertyValue("position")?(s=!0,!1):void 0}),s?(n="fixed",o+Y.outerHeight()>c+m?(l="bottom",o=c+m-t.top):o-=m):o+a.offsetHeight>c+m&&(o=t.top-a.offsetHeight+1),0>o&&(o=0),r+a.offsetWidth>u&&(r=u-a.offsetWidth)),i=Y[0],H(i,function(e){var t;return t=window.getComputedStyle(e).getPropertyValue("position"),"relative"===t&&u>=e.offsetWidth?(r-=(u-e.offsetWidth)/2,!1):void 0}),f={position:n,left:r,top:"",bottom:""},f[l]=o,Y.css(f)},Y.on("open.xdsoft",function(t){var a=!0;C.onShow&&e.isFunction(C.onShow)&&(a=C.onShow.call(Y,J.currentTime,Y.data("input"),t)),a!==!1&&(Y.show(),j(),e(window).off("resize.xdsoft",j).on("resize.xdsoft",j),C.closeOnWithoutClick&&e([document.body,window]).on("touchstart mousedown.xdsoft",function o(){Y.trigger("close.xdsoft"),e([document.body,window]).off("touchstart mousedown.xdsoft",o)}))}).on("close.xdsoft",function(t){var a=!0;I.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),C.onClose&&e.isFunction(C.onClose)&&(a=C.onClose.call(Y,J.currentTime,Y.data("input"),t)),a===!1||C.opened||C.inline||Y.hide(),t.stopPropagation()}).on("toggle.xdsoft",function(){Y.trigger(Y.is(":visible")?"close.xdsoft":"open.xdsoft")}).data("input",a),U=0,Y.data("xdsoft_datetime",J),Y.setOptions(C),J.setCurrentTime(i()),a.data("xdsoft_datetimepicker",Y).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){a.is(":disabled")||a.data("xdsoft_datetimepicker").is(":visible")&&C.closeOnInputClick||(clearTimeout(U),U=setTimeout(function(){a.is(":disabled")||(K=!0,J.setCurrentTime(i(),!0),C.mask&&s(C),Y.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var a,o=t.which;return-1!==[p].indexOf(o)&&C.enterLikeTab?(a=e("input:visible,textarea:visible,button:visible,a:visible"),Y.trigger("close.xdsoft"),a.eq(a.index(this)+1).focus(),!1):-1!==[T].indexOf(o)?(Y.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){Y.trigger("close.xdsoft")})},d=function(t){var a=t.data("xdsoft_datetimepicker");a&&(a.data("xdsoft_datetime",null),a.remove(),t.data("xdsoft_datetimepicker",null).off(".xdsoft"),e(window).off("resize.xdsoft"),e([window,document.body]).off("mousedown.xdsoft touchstart"),t.unmousewheel&&t.unmousewheel())},e(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(e){e.keyCode===h&&(F=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===h&&(F=!1)}),this.each(function(){var t,a=e(this).data("xdsoft_datetimepicker");if(a){if("string"===e.type(r))switch(r){case"show":e(this).select().focus(),a.trigger("open.xdsoft");break;case"hide":a.trigger("close.xdsoft");break;case"toggle":a.trigger("toggle.xdsoft");break;case"destroy":d(e(this));break;case"reset":this.value=this.defaultValue,this.value&&a.data("xdsoft_datetime").isValidDate(o.parseDate(this.value,C.format))||a.data("changed",!1),a.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":t=a.data("input"),t.trigger("blur.xdsoft");break;default:a[r]&&e.isFunction(a[r])&&(u=a[r](i))}else a.setOptions(r);return 0}"string"!==e.type(r)&&(!C.lazyInit||C.open||C.inline?s(e(this)):P(e(this)))}),u},e.fn.datetimepicker.defaults=a});
|
assets/js/frontend/events.js
ADDED
@@ -0,0 +1,265 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function ($) {
|
2 |
+
|
3 |
+
var TP_Event_Frontend = {
|
4 |
+
init : function () {
|
5 |
+
var $doc = $(document);
|
6 |
+
/**
|
7 |
+
* load register form
|
8 |
+
*/
|
9 |
+
$doc.on('click', '.event-load-booking-form', this.load_form_register);
|
10 |
+
$doc.on('submit', 'form.event_register:not(.active)', this.book_event_form);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Sanitize form field
|
14 |
+
*/
|
15 |
+
this.sanitize_form_field();
|
16 |
+
|
17 |
+
$doc.on('submit', '#event-lightbox .event-auth-form', this.ajax_login);
|
18 |
+
},
|
19 |
+
load_form_register : function (e) {
|
20 |
+
e.preventDefault();
|
21 |
+
var _this = $(this),
|
22 |
+
_event_id = _this.attr('data-event');
|
23 |
+
|
24 |
+
$.ajax({
|
25 |
+
url : WPEMS.ajaxurl,
|
26 |
+
type : 'POST',
|
27 |
+
dataType : 'html',
|
28 |
+
async : false,
|
29 |
+
data : {
|
30 |
+
event_id: _event_id,
|
31 |
+
nonce : WPEMS.register_button,
|
32 |
+
action : 'load_form_register'
|
33 |
+
},
|
34 |
+
beforeSend: function () {
|
35 |
+
_this.append('<i class="event-icon-spinner2 spinner"></i>');
|
36 |
+
}
|
37 |
+
})
|
38 |
+
.always(function () {
|
39 |
+
_this.find('.event-icon-spinner2').remove();
|
40 |
+
})
|
41 |
+
.done(function (html) {
|
42 |
+
TP_Event_Frontend.lightbox(html);
|
43 |
+
})
|
44 |
+
.fail(function () {
|
45 |
+
|
46 |
+
});
|
47 |
+
return false;
|
48 |
+
},
|
49 |
+
/**
|
50 |
+
* Ajax action register form
|
51 |
+
* @returns boolean
|
52 |
+
*/
|
53 |
+
book_event_form : function (e) {
|
54 |
+
e.preventDefault();
|
55 |
+
var _self = $(this),
|
56 |
+
_data = _self.serializeArray(),
|
57 |
+
button = _self.find('button[type="submit"]'),
|
58 |
+
_notices = _self.find('.tp-event-notice');
|
59 |
+
|
60 |
+
$.ajax({
|
61 |
+
url : WPEMS.ajaxurl,
|
62 |
+
type : 'POST',
|
63 |
+
data : _data,
|
64 |
+
dataType : 'json',
|
65 |
+
beforeSend: function () {
|
66 |
+
_notices.slideUp().remove();
|
67 |
+
button.addClass('event-register-loading');
|
68 |
+
_self.addClass('active');
|
69 |
+
}
|
70 |
+
}).done(function (res) {
|
71 |
+
button.removeClass('event-register-loading');
|
72 |
+
if (typeof res.status === 'undefined') {
|
73 |
+
TP_Event_Frontend.set_message(_self, WPEMS.something_wrong);
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
if (res.status === true && typeof res.url !== 'undefined' && res.url !== '') {
|
78 |
+
window.location.href = res.url;
|
79 |
+
}
|
80 |
+
|
81 |
+
if (res.status === true && res.url == '' && typeof res.event !== 'undefined') {
|
82 |
+
$.magnificPopup.close();
|
83 |
+
$('.woocommerce-message').hide();
|
84 |
+
setTimeout(function () {
|
85 |
+
$('.entry-register, .event_register_foot').append(
|
86 |
+
'<div class="woocommerce-message">' +
|
87 |
+
WPEMS.woo_cart_url +
|
88 |
+
'<p>' + '“' + res.event + '”' + WPEMS.add_to_cart + '</p>' +
|
89 |
+
'</div>'
|
90 |
+
)
|
91 |
+
}, 100);
|
92 |
+
}
|
93 |
+
|
94 |
+
if (typeof res.message !== 'undefined') {
|
95 |
+
TP_Event_Frontend.set_message(_self, res.message);
|
96 |
+
return;
|
97 |
+
}
|
98 |
+
|
99 |
+
}).fail(function () {
|
100 |
+
button.removeClass('event-register-loading');
|
101 |
+
TP_Event_Frontend.set_message(_self, WPEMS.something_wrong);
|
102 |
+
return;
|
103 |
+
}).always(function () {
|
104 |
+
_self.removeClass('active');
|
105 |
+
});
|
106 |
+
// button.removeClass('event-register-loading');
|
107 |
+
return false;
|
108 |
+
},
|
109 |
+
set_message : function (form, message) {
|
110 |
+
var html = '<div class="tp-event-notice error">';
|
111 |
+
html += '<div class="event_auth_register_message_error">' + message + '</div>';
|
112 |
+
html += '</div>';
|
113 |
+
form.find('.event_register_foot').append(html);
|
114 |
+
},
|
115 |
+
/**
|
116 |
+
* sanitize form field
|
117 |
+
* @returns null
|
118 |
+
*/
|
119 |
+
sanitize_form_field: function () {
|
120 |
+
var _form_fields = $('.form-row.form-required');
|
121 |
+
|
122 |
+
for (var i = 0; i < _form_fields.length; i++) {
|
123 |
+
var field = $(_form_fields[i]),
|
124 |
+
input = field.find('input');
|
125 |
+
|
126 |
+
input.on('blur', function (e) {
|
127 |
+
e.preventDefault();
|
128 |
+
var _this = $(this),
|
129 |
+
_form_row = _this.parents('.form-row:first');
|
130 |
+
if (!_form_row.hasClass('form-required')) return;
|
131 |
+
|
132 |
+
if (_this.val() == '') {
|
133 |
+
_form_row.removeClass('validated').addClass('has-error');
|
134 |
+
} else {
|
135 |
+
_form_row.removeClass('has-error').addClass('validated');
|
136 |
+
}
|
137 |
+
});
|
138 |
+
}
|
139 |
+
},
|
140 |
+
lightbox : function (content) {
|
141 |
+
var html = [];
|
142 |
+
html.push('<div id="event-lightbox">');
|
143 |
+
html.push(content);
|
144 |
+
html.push('</div>');
|
145 |
+
|
146 |
+
$.magnificPopup.open({
|
147 |
+
items : {
|
148 |
+
type: 'inline',
|
149 |
+
src : $(html.join(''))
|
150 |
+
},
|
151 |
+
mainClass: 'event-lightbox-wrap',
|
152 |
+
callbacks: {
|
153 |
+
open : function () {
|
154 |
+
var lightbox = $('#event-lightbox');
|
155 |
+
|
156 |
+
lightbox.addClass('event-fade');
|
157 |
+
var timeout = setTimeout(function () {
|
158 |
+
lightbox.addClass('event-in');
|
159 |
+
clearTimeout(timeout);
|
160 |
+
TP_Event_Frontend.sanitize_form_field();
|
161 |
+
}, 100);
|
162 |
+
},
|
163 |
+
close: function () {
|
164 |
+
var lightbox = $('#event-lightbox');
|
165 |
+
lightbox.remove();
|
166 |
+
}
|
167 |
+
}
|
168 |
+
});
|
169 |
+
},
|
170 |
+
ajax_login : function (e) {
|
171 |
+
e.preventDefault();
|
172 |
+
|
173 |
+
var _this = $(this),
|
174 |
+
_button = _this.find('#wp-submit'),
|
175 |
+
_lightbox = $('#event-lightbox'),
|
176 |
+
_data = _this.serializeArray();
|
177 |
+
|
178 |
+
$.ajax({
|
179 |
+
url : WPEMS.ajaxurl,
|
180 |
+
type : 'POST',
|
181 |
+
data : _data,
|
182 |
+
async : false,
|
183 |
+
beforeSend: function () {
|
184 |
+
// setTimeout( function(){
|
185 |
+
_lightbox.find('.tp-event-notice').slideUp().remove();
|
186 |
+
// } );
|
187 |
+
_button.addClass('event-register-loading');
|
188 |
+
}
|
189 |
+
}).always(function () {
|
190 |
+
_button.find('.event-icon-spinner2').remove();
|
191 |
+
}).done(function (res) {
|
192 |
+
if (typeof res.notices !== 'undefined') {
|
193 |
+
_this.before(res.notices);
|
194 |
+
}
|
195 |
+
|
196 |
+
if (typeof res.status !== 'undefined' && res.status === true) {
|
197 |
+
if (typeof res.redirect !== 'undefined' && res.redirect) {
|
198 |
+
window.location.href = res.redirect;
|
199 |
+
} else {
|
200 |
+
window.location.reload();
|
201 |
+
}
|
202 |
+
}
|
203 |
+
}).fail(function (jqXHR, textStatus, errorThrown) {
|
204 |
+
var html = '<ul class="tp-event-notice error">';
|
205 |
+
html += '<li>' + jqXHR + '</li>';
|
206 |
+
html += '</ul>';
|
207 |
+
_this.before(res.notices);
|
208 |
+
});
|
209 |
+
|
210 |
+
return false;
|
211 |
+
}
|
212 |
+
};
|
213 |
+
|
214 |
+
$(document).ready(function () {
|
215 |
+
|
216 |
+
TP_Event_Frontend.init();
|
217 |
+
|
218 |
+
// countdown each
|
219 |
+
var counts = $('.tp_event_counter');
|
220 |
+
for (var i = 0; i < counts.length; i++) {
|
221 |
+
var time = $(counts[i]).attr('data-time');
|
222 |
+
time = new Date(time);
|
223 |
+
|
224 |
+
var current_time = new Date(time - WPEMS.gmt_offset * 60 * 60 * 1000);
|
225 |
+
|
226 |
+
$(counts[i]).countdown({
|
227 |
+
labels : WPEMS.l18n.labels,
|
228 |
+
labels1 : WPEMS.l18n.labels1,
|
229 |
+
until : current_time,
|
230 |
+
serverSync: WPEMS.current_time
|
231 |
+
});
|
232 |
+
}
|
233 |
+
|
234 |
+
// owl-carausel
|
235 |
+
var carousels = $('.tp_event_owl_carousel');
|
236 |
+
for (var i = 0; i < carousels.length; i++) {
|
237 |
+
var data = $(carousels[i]).attr('data-countdown');
|
238 |
+
var options = {
|
239 |
+
navigation : true, // Show next and prev buttons
|
240 |
+
slideSpeed : 300,
|
241 |
+
paginationSpeed: 400,
|
242 |
+
singleItem : true
|
243 |
+
};
|
244 |
+
if (typeof data !== 'undefined') {
|
245 |
+
data = JSON.parse(data);
|
246 |
+
$.extend(options, data);
|
247 |
+
|
248 |
+
$.each(options, function (k, v) {
|
249 |
+
if (v === 'true') {
|
250 |
+
options[k] = true;
|
251 |
+
} else if (v === 'false') {
|
252 |
+
options[k] = false;
|
253 |
+
}
|
254 |
+
});
|
255 |
+
}
|
256 |
+
|
257 |
+
if (typeof options.slide === 'undefined' || options.slide === true) {
|
258 |
+
$(carousels[i]).owlCarousel(options);
|
259 |
+
} else {
|
260 |
+
$(carousels[i]).removeClass('owl-carousel');
|
261 |
+
}
|
262 |
+
}
|
263 |
+
});
|
264 |
+
|
265 |
+
})(jQuery);
|
assets/js/frontend/events.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(a){var b={init:function(){var b=a(document);b.on("click",".event-load-booking-form",this.load_form_register),b.on("submit","form.event_register:not(.active)",this.book_event_form),this.sanitize_form_field(),b.on("submit","#event-lightbox .event-auth-form",this.ajax_login)},load_form_register:function(c){c.preventDefault();var d=a(this),e=d.attr("data-event");return a.ajax({url:WPEMS.ajaxurl,type:"POST",dataType:"html",async:!1,data:{event_id:e,nonce:WPEMS.register_button,action:"load_form_register"},beforeSend:function(){d.append('<i class="event-icon-spinner2 spinner"></i>')}}).always(function(){d.find(".event-icon-spinner2").remove()}).done(function(a){b.lightbox(a)}).fail(function(){}),!1},book_event_form:function(c){c.preventDefault();var d=a(this),e=d.serializeArray(),f=d.find('button[type="submit"]'),g=d.find(".tp-event-notice");return a.ajax({url:WPEMS.ajaxurl,type:"POST",data:e,dataType:"json",beforeSend:function(){g.slideUp().remove(),f.addClass("event-register-loading"),d.addClass("active")}}).done(function(c){return f.removeClass("event-register-loading"),"undefined"==typeof c.status?void b.set_message(d,WPEMS.something_wrong):(c.status===!0&&"undefined"!=typeof c.url&&""!==c.url&&(window.location.href=c.url),c.status===!0&&""==c.url&&"undefined"!=typeof c.event&&(a.magnificPopup.close(),a(".woocommerce-message").hide(),setTimeout(function(){a(".entry-register, .event_register_foot").append('<div class="woocommerce-message">'+WPEMS.woo_cart_url+"<p>“"+c.event+"”"+WPEMS.add_to_cart+"</p></div>")},100)),"undefined"!=typeof c.message?void b.set_message(d,c.message):void 0)}).fail(function(){f.removeClass("event-register-loading"),b.set_message(d,WPEMS.something_wrong)}).always(function(){d.removeClass("active")}),!1},set_message:function(a,b){var c='<div class="tp-event-notice error">';c+='<div class="event_auth_register_message_error">'+b+"</div>",c+="</div>",a.find(".event_register_foot").append(c)},sanitize_form_field:function(){for(var b=a(".form-row.form-required"),c=0;c<b.length;c++){var d=a(b[c]),e=d.find("input");e.on("blur",function(b){b.preventDefault();var c=a(this),d=c.parents(".form-row:first");d.hasClass("form-required")&&(""==c.val()?d.removeClass("validated").addClass("has-error"):d.removeClass("has-error").addClass("validated"))})}},lightbox:function(c){var d=[];d.push('<div id="event-lightbox">'),d.push(c),d.push("</div>"),a.magnificPopup.open({items:{type:"inline",src:a(d.join(""))},mainClass:"event-lightbox-wrap",callbacks:{open:function(){var c=a("#event-lightbox");c.addClass("event-fade");var d=setTimeout(function(){c.addClass("event-in"),clearTimeout(d),b.sanitize_form_field()},100)},close:function(){var b=a("#event-lightbox");b.remove()}}})},ajax_login:function(b){b.preventDefault();var c=a(this),d=c.find("#wp-submit"),e=a("#event-lightbox"),f=c.serializeArray();return a.ajax({url:WPEMS.ajaxurl,type:"POST",data:f,async:!1,beforeSend:function(){e.find(".tp-event-notice").slideUp().remove(),d.addClass("event-register-loading")}}).always(function(){d.find(".event-icon-spinner2").remove()}).done(function(a){"undefined"!=typeof a.notices&&c.before(a.notices),"undefined"!=typeof a.status&&a.status===!0&&("undefined"!=typeof a.redirect&&a.redirect?window.location.href=a.redirect:window.location.reload())}).fail(function(a,b,d){var e='<ul class="tp-event-notice error">';e+="<li>"+a+"</li>",e+="</ul>",c.before(res.notices)}),!1}};a(document).ready(function(){b.init();for(var c=a(".tp_event_counter"),d=0;d<c.length;d++){var e=a(c[d]).attr("data-time");e=new Date(e);var f=new Date(e-60*WPEMS.gmt_offset*60*1e3);a(c[d]).countdown({labels:WPEMS.l18n.labels,labels1:WPEMS.l18n.label1,until:f,serverSync:WPEMS.current_time})}for(var g=a(".tp_event_owl_carousel"),d=0;d<g.length;d++){var h=a(g[d]).attr("data-countdown"),i={navigation:!0,slideSpeed:300,paginationSpeed:400,singleItem:!0};"undefined"!=typeof h&&(h=JSON.parse(h),a.extend(i,h),a.each(i,function(a,b){"true"===b?i[a]=!0:"false"===b&&(i[a]=!1)})),"undefined"==typeof i.slide||i.slide===!0?a(g[d]).owlCarousel(i):a(g[d]).removeClass("owl-carousel")}})}(jQuery);
|
assets/js/frontend/google-map.js
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* (c) Greg Priday, freely distributable under the terms of the GPL 2.0 license.
|
3 |
+
*/
|
4 |
+
|
5 |
+
function event_loadMap($) {
|
6 |
+
$('.event-google-map-canvas').each(function () {
|
7 |
+
var $$ = $(this);
|
8 |
+
// We use the ob_geocoder
|
9 |
+
var ob_geocoder = new google.maps.Geocoder();
|
10 |
+
ob_geocoder.geocode({'address': $$.data('address')}, function (results, status) {
|
11 |
+
if (status == google.maps.GeocoderStatus.OK) {
|
12 |
+
var zoom = Number($$.data('zoom'));
|
13 |
+
if (!zoom) zoom = 14;
|
14 |
+
var userMapTypeId = 'user_map_style';
|
15 |
+
var mapOptions = {
|
16 |
+
zoom : zoom,
|
17 |
+
scrollwheel : Boolean($$.data('scroll-zoom')),
|
18 |
+
// draggable: Boolean( $$.data('draggable') ),
|
19 |
+
center : results[0].geometry.location,
|
20 |
+
mapTypeControlOptions: {
|
21 |
+
mapTypeIds: [google.maps.MapTypeId.ROADMAP, userMapTypeId]
|
22 |
+
}
|
23 |
+
};
|
24 |
+
|
25 |
+
var map = new google.maps.Map($$.get(0), mapOptions);
|
26 |
+
|
27 |
+
var userMapOptions = {
|
28 |
+
name: $$.data('map-name')
|
29 |
+
};
|
30 |
+
|
31 |
+
var userMapStyles = $$.data('map-styles');
|
32 |
+
|
33 |
+
if (userMapStyles) {
|
34 |
+
var userMapType = new google.maps.StyledMapType(userMapStyles, userMapOptions);
|
35 |
+
|
36 |
+
map.mapTypes.set(userMapTypeId, userMapType);
|
37 |
+
map.setMapTypeId(userMapTypeId);
|
38 |
+
}
|
39 |
+
|
40 |
+
if (Boolean($$.data('marker-at-center'))) {
|
41 |
+
|
42 |
+
new google.maps.Marker({
|
43 |
+
position: results[0].geometry.location,
|
44 |
+
map : map,
|
45 |
+
// draggable: Boolean( $$.data('markers-draggable') ),
|
46 |
+
icon : $$.data('marker-icon'),
|
47 |
+
title : ''
|
48 |
+
});
|
49 |
+
}
|
50 |
+
var markerPositions = $$.data('marker-positions');
|
51 |
+
if (markerPositions && markerPositions.length) {
|
52 |
+
markerPositions.forEach(
|
53 |
+
function (mrkr) {
|
54 |
+
ob_geocoder.geocode({'address': mrkr.place}, function (res, status) {
|
55 |
+
if (status == google.maps.GeocoderStatus.OK) {
|
56 |
+
new google.maps.Marker({
|
57 |
+
position: res[0].geometry.location,
|
58 |
+
map : map,
|
59 |
+
// draggable: Boolean( $$.data('markers-draggable') ),
|
60 |
+
icon : $$.data('marker-icon'),
|
61 |
+
title : ''
|
62 |
+
});
|
63 |
+
}
|
64 |
+
});
|
65 |
+
}
|
66 |
+
);
|
67 |
+
}
|
68 |
+
var directions = $$.data('directions');
|
69 |
+
if (directions) {
|
70 |
+
|
71 |
+
if (directions.waypoints && directions.waypoints.length) {
|
72 |
+
directions.waypoints.map(
|
73 |
+
function (wypt) {
|
74 |
+
wypt.stopover = Boolean(wypt.stopover);
|
75 |
+
}
|
76 |
+
);
|
77 |
+
}
|
78 |
+
|
79 |
+
var directionsRenderer = new google.maps.DirectionsRenderer();
|
80 |
+
directionsRenderer.setMap(map);
|
81 |
+
|
82 |
+
var directionsService = new google.maps.DirectionsService();
|
83 |
+
directionsService.route({
|
84 |
+
origin : directions.origin,
|
85 |
+
destination : directions.destination,
|
86 |
+
travelMode : directions.travelMode.toUpperCase(),
|
87 |
+
avoidHighways : Boolean(directions.avoidHighways),
|
88 |
+
avoidTolls : Boolean(directions.avoidTolls),
|
89 |
+
waypoints : directions.waypoints,
|
90 |
+
optimizeWaypoints: Boolean(directions.optimizeWaypoints)
|
91 |
+
|
92 |
+
},
|
93 |
+
function (result, status) {
|
94 |
+
if (status == google.maps.DirectionsStatus.OK) {
|
95 |
+
directionsRenderer.setDirections(result);
|
96 |
+
}
|
97 |
+
});
|
98 |
+
}
|
99 |
+
}
|
100 |
+
else if (status == google.maps.GeocoderStatus.ZERO_RESULTS) {
|
101 |
+
$$.append('<div><p><strong>There were no results for the place you entered. Please try another.</strong></p></div>');
|
102 |
+
}
|
103 |
+
});
|
104 |
+
});
|
105 |
+
}
|
106 |
+
|
107 |
+
function ob_loadApi($) {
|
108 |
+
var apiKey = $('.event-google-map-canvas').data('api-key');
|
109 |
+
if (apiKey) {
|
110 |
+
var apiUrl = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=initialize';
|
111 |
+
if (apiKey) {
|
112 |
+
apiUrl += '&key=' + apiKey;
|
113 |
+
}
|
114 |
+
var script = $('<script type="text/javascript" src="' + apiUrl + '">');
|
115 |
+
$('body').append(script);
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
function initialize() {
|
120 |
+
event_loadMap(window.jQuery);
|
121 |
+
}
|
122 |
+
|
123 |
+
jQuery(function ($) {
|
124 |
+
ob_loadApi($);
|
125 |
+
});
|
inc/abstracts/class-wpems-abstract-payment-gateway.php
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
abstract class WPEMS_Abstract_Payment_Gateway {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* id of payment
|
11 |
+
* @var null
|
12 |
+
*/
|
13 |
+
protected $id = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* payment title
|
17 |
+
* @var null
|
18 |
+
*/
|
19 |
+
protected $title = null;
|
20 |
+
// is enable
|
21 |
+
public $is_enable = false;
|
22 |
+
// icon
|
23 |
+
public $icon = null;
|
24 |
+
|
25 |
+
public function __construct() {
|
26 |
+
add_action( 'event_admin_setting_page_checkout_section', array( $this, 'add_sections' ) );
|
27 |
+
add_action( 'event_auth_payment_gateways_select', array( $this, 'event_auth_gateways' ) );
|
28 |
+
}
|
29 |
+
|
30 |
+
public function add_sections( $sections ) {
|
31 |
+
$sections[$this->id] = $this->title;
|
32 |
+
return $sections;
|
33 |
+
}
|
34 |
+
|
35 |
+
public function get_title() {
|
36 |
+
return apply_filters( 'event_payment_title', $this->title, $this->id );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* payment process
|
41 |
+
* @return null
|
42 |
+
*/
|
43 |
+
protected function process( $event_id = false ) {
|
44 |
+
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* refund action
|
49 |
+
* @return null
|
50 |
+
*/
|
51 |
+
protected function refund() {
|
52 |
+
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* payment send email
|
57 |
+
* @return null
|
58 |
+
*/
|
59 |
+
public function send_email() {
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* admin setting fields
|
65 |
+
* @return array
|
66 |
+
*/
|
67 |
+
public function admin_fields() {
|
68 |
+
return array();
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* enable
|
73 |
+
* @return boolean
|
74 |
+
*/
|
75 |
+
public function is_enable() {
|
76 |
+
if ( wpems_get_option( $this->id . '_enable', 'yes' ) === 'yes' ) {
|
77 |
+
return $this->is_enable = true;
|
78 |
+
}
|
79 |
+
return $this->is_enable = false;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* event_auth_gateways fontend display
|
84 |
+
* @return html
|
85 |
+
*/
|
86 |
+
public function event_auth_gateways() {
|
87 |
+
$html = array();
|
88 |
+
|
89 |
+
$html[] = '<input id="payment_method_' . esc_attr( $this->id ) . '" type="radio" name="payment_method" value="' . esc_attr( $this->id ) . '"/>';
|
90 |
+
$html[] = '<label for="payment_method_' . esc_attr( $this->id ) . '"><img width="115" height="50" src="' . esc_attr( $this->_icon ) . '" /></label>';
|
91 |
+
|
92 |
+
echo implode( '', $html );
|
93 |
+
}
|
94 |
+
|
95 |
+
public function is_available() {
|
96 |
+
return true;
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* add notice message completed when payment completed
|
101 |
+
* @return null
|
102 |
+
*/
|
103 |
+
public function completed_process_message() {
|
104 |
+
if ( !tp_event_has_notice( 'success' ) ) {
|
105 |
+
tp_event_has_notice( 'success', __( 'Payment completed. We will send you email when payment method verify.', 'wp-events-manager' ) );
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
}
|
110 |
+
|
111 |
+
|
inc/abstracts/class-wpems-abstract-setting.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
abstract class WPEMS_Abstract_Setting {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Setting page id
|
9 |
+
* @var type string
|
10 |
+
*/
|
11 |
+
protected $id = null;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Setting page title
|
15 |
+
* @var type string
|
16 |
+
*/
|
17 |
+
protected $label = null;
|
18 |
+
|
19 |
+
public function __construct() {
|
20 |
+
add_filter( 'event_admin_settings_tabs_array', array( $this, 'add_setting_tab' ) );
|
21 |
+
add_action( 'event_admin_setting_sections_' . $this->id, array( $this, 'output_section' ) );
|
22 |
+
add_action( 'event_admin_setting_update_' . $this->id, array( $this, 'save' ) );
|
23 |
+
add_action( 'event_admin_setting_' . $this->id, array( $this, 'output' ) );
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get options setting page
|
28 |
+
* @return type array
|
29 |
+
*/
|
30 |
+
public function get_settings() {
|
31 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id, array() );
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get options setting page section
|
36 |
+
* @return type array
|
37 |
+
*/
|
38 |
+
public function get_sections() {
|
39 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id . '_section', array() );
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Add admin setting page 'event_admin_settings_tabs_array' callback
|
44 |
+
*
|
45 |
+
* @param array $tabs
|
46 |
+
*
|
47 |
+
* @return type
|
48 |
+
*/
|
49 |
+
public function add_setting_tab( $tabs ) {
|
50 |
+
$tabs[$this->id] = $this->label;
|
51 |
+
return $tabs;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Display section tabs of setting page 'event_admin_setting_sections_' . $this->id callback
|
56 |
+
*
|
57 |
+
* @param type $tab
|
58 |
+
*/
|
59 |
+
public function output_section( $tab ) {
|
60 |
+
global $current_section;
|
61 |
+
$sections = $this->get_sections();
|
62 |
+
if ( $sections ) {
|
63 |
+
echo '<ul class="subsubsub">';
|
64 |
+
$array_keys = array_keys( $sections );
|
65 |
+
foreach ( $sections as $id => $label ) {
|
66 |
+
echo '<li><a href="' . admin_url( 'admin.php?page=tp-event-setting&tab=' . $this->id . '§ion=' . sanitize_title( $id ) ) . '" class="' . ( $current_section === $id ? 'current' : '' ) . '">' . $label . '</a> ' . ( end( $array_keys ) == $id ? '' : '|' ) . ' </li>';
|
67 |
+
}
|
68 |
+
|
69 |
+
echo '</ul><br class="clear" />';
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Display Output settings
|
75 |
+
*
|
76 |
+
* @param type $tab
|
77 |
+
*/
|
78 |
+
public function output( $tab ) {
|
79 |
+
$settings = $this->get_settings();
|
80 |
+
WPEMS_Admin_Settings::render_fields( $settings );
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Save action callback
|
85 |
+
* @since 2.0
|
86 |
+
*/
|
87 |
+
public function save() {
|
88 |
+
$settings = $this->get_settings();
|
89 |
+
WPEMS_Admin_Settings::save_fields( $settings );
|
90 |
+
}
|
91 |
+
|
92 |
+
}
|
inc/admin/class-wpems-admin-assets.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
class WPEMS_Admin_Assets {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Register scripts
|
9 |
+
* @since 1.4.1.4
|
10 |
+
*/
|
11 |
+
public static function init() {
|
12 |
+
add_action( 'tp_event_before_enqueue_scripts', array( __CLASS__, 'register_scripts' ) );
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Register scripts
|
17 |
+
*
|
18 |
+
* @param type $hook
|
19 |
+
*/
|
20 |
+
public static function register_scripts( $hook ) {
|
21 |
+
WPEMS_Assets::register_script( 'wpems-admin-js', WPEMS_ASSETS_URI . '/js/admin/admin-events.js' );
|
22 |
+
WPEMS_Assets::register_style( 'wpems-admin-css', WPEMS_ASSETS_URI . '/css/admin/admin.css' );
|
23 |
+
WPEMS_Assets::register_script( 'wpems-admin-datetimepicker-full', WPEMS_ASSETS_URI . '/js/datetimepicker/jquery.datetimepicker.full.min.js' );
|
24 |
+
WPEMS_Assets::register_style( 'wpems-admin-datetimepicker-min', WPEMS_ASSETS_URI . '/css/datetimepicker/jquery.datetimepicker.min.css' );
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
28 |
+
|
29 |
+
WPEMS_Admin_Assets::init();
|
inc/admin/class-wpems-admin-menu.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Admin_Menu {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* menus
|
11 |
+
* @var array
|
12 |
+
*/
|
13 |
+
public $_menus = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* instead new class
|
17 |
+
* @var null
|
18 |
+
*/
|
19 |
+
static $_instance = null;
|
20 |
+
|
21 |
+
public function __construct() {
|
22 |
+
// admin menu
|
23 |
+
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
24 |
+
}
|
25 |
+
|
26 |
+
// add admin menu callback
|
27 |
+
public function admin_menu() {
|
28 |
+
/**
|
29 |
+
* menus
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
$menus = apply_filters( 'tp_event_admin_menu', $this->_menus );
|
33 |
+
add_menu_page( __( 'Events Manager', 'wp-events-manager' ), __( 'Events Manager', 'wp-events-manager' ), 'administrator', 'tp-event-setting', null, 'dashicons-calendar-alt', 4 );
|
34 |
+
if ( $menus ) {
|
35 |
+
foreach ( $menus as $menu ) {
|
36 |
+
call_user_func_array( 'add_submenu_page', $menu );
|
37 |
+
}
|
38 |
+
}
|
39 |
+
add_submenu_page( 'tp-event-setting', __( 'TP Event Users', 'wp-events-manager' ), __( 'Users', 'wp-events-manager' ), 'administrator', 'tp-event-users', array( 'WPEMS_Admin_Users', 'output' ) );
|
40 |
+
add_submenu_page( 'tp-event-setting', __( 'TP Event Settings', 'wp-events-manager' ), __( 'Settings', 'wp-events-manager' ), 'administrator', 'tp-event-setting', array( 'WPEMS_Admin_Settings', 'output' ) );
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* add menu item
|
45 |
+
*
|
46 |
+
* @param $params
|
47 |
+
*/
|
48 |
+
public function add_menu( $params ) {
|
49 |
+
$this->_menus[] = $params;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* instance
|
54 |
+
* @return object class
|
55 |
+
*/
|
56 |
+
public static function instance() {
|
57 |
+
if ( self::$_instance )
|
58 |
+
return self::$_instance;
|
59 |
+
|
60 |
+
return new self();
|
61 |
+
}
|
62 |
+
|
63 |
+
}
|
64 |
+
|
65 |
+
WPEMS_Admin_Menu::instance();
|
inc/admin/class-wpems-admin-metaboxes.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
class WPEMS_Admin_Metaboxes {
|
6 |
+
|
7 |
+
public static function init() {
|
8 |
+
add_action( 'add_meta_boxes', array( __CLASS__, 'add_meta_boxes' ), 0 );
|
9 |
+
add_action( 'save_post', array( __CLASS__, 'save_post_meta' ) );
|
10 |
+
add_action( 'admin_notices', array( __CLASS__, 'print_errors' ) );
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Save post meta
|
14 |
+
*/
|
15 |
+
add_action( 'tp_event_process_update_tp_event_meta', array( 'WPEMS_Admin_Metabox_Event', 'save' ), 10, 2 );
|
16 |
+
add_action( 'tp_event_process_update_event_auth_book_meta', array( 'WPEMS_Admin_Metabox_Booking', 'save' ), 10, 2 );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Add meta boxes
|
21 |
+
*/
|
22 |
+
public static function add_meta_boxes() {
|
23 |
+
add_meta_box(
|
24 |
+
'event-settings-metabox', __( 'Event Settings', 'wp-events-manager' ), array( 'WPEMS_Admin_Metabox_Event', 'render' ), 'tp_event', 'normal', 'high'
|
25 |
+
);
|
26 |
+
add_meta_box(
|
27 |
+
'booking-information-metabox', __( 'Booking Information', 'wp-events-manager' ), array( 'WPEMS_Admin_Metabox_Booking', 'render' ), 'event_auth_book', 'normal', 'default'
|
28 |
+
);
|
29 |
+
add_meta_box(
|
30 |
+
'booking-status-side', __( 'Booking Actions', 'wp-events-manager' ), array( 'WPEMS_Admin_Metabox_Booking', 'side' ), 'event_auth_book', 'side', 'high'
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Save post meta
|
36 |
+
*
|
37 |
+
* @param type $post_id
|
38 |
+
*
|
39 |
+
* @return boolean
|
40 |
+
*/
|
41 |
+
public static function save_post_meta( $post_id ) {
|
42 |
+
if ( empty( $_POST ) && defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
|
46 |
+
$post_type = get_post_type( $post_id );
|
47 |
+
if ( !in_array( $post_type, array( 'tp_event', 'event_auth_book' ) ) ) {
|
48 |
+
return false;
|
49 |
+
}
|
50 |
+
|
51 |
+
if ( $post_type == 'tp_event' && ( empty( $_POST['event-nonce'] ) || !wp_verify_nonce( $_POST['event-nonce'], 'event_nonce' ) ) ) {
|
52 |
+
return false;
|
53 |
+
} elseif ( $post_type == 'event_auth_book' && ( empty( $_POST['event-booking-nonce'] ) || !wp_verify_nonce( $_POST['event-booking-nonce'], 'event_booking_nonce' ) ) ) {
|
54 |
+
return false;
|
55 |
+
}
|
56 |
+
|
57 |
+
do_action( 'tp_event_process_update_' . $post_type . '_meta', $post_id, $_POST );
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Add error message save post meta
|
62 |
+
*
|
63 |
+
* @param type $message
|
64 |
+
*/
|
65 |
+
public static function add_error( $message = '' ) {
|
66 |
+
$error = get_option( 'tp_event_meta_box_error_messages', array() );
|
67 |
+
$error[] = $message;
|
68 |
+
update_option( 'tp_event_meta_box_error_messages', $error );
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Print notices error save post meta
|
73 |
+
* @return type
|
74 |
+
*/
|
75 |
+
public static function print_errors() {
|
76 |
+
$errors = get_option( 'tp_event_meta_box_error_messages' );
|
77 |
+
if ( !$errors ) {
|
78 |
+
return;
|
79 |
+
}
|
80 |
+
echo '<div id="event_error" class="error notice is-dismissible">';
|
81 |
+
|
82 |
+
foreach ( $errors as $error ) {
|
83 |
+
echo '<p>' . wp_kses_post( $error ) . '</p>';
|
84 |
+
}
|
85 |
+
|
86 |
+
echo '</div>';
|
87 |
+
delete_option( 'tp_event_meta_box_error_messages' );
|
88 |
+
}
|
89 |
+
|
90 |
+
}
|
91 |
+
|
92 |
+
WPEMS_Admin_Metaboxes::init();
|
inc/admin/class-wpems-admin-settings.php
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined( 'ABSPATH' ) || exit();
|
3 |
+
|
4 |
+
class WPEMS_Admin_Settings {
|
5 |
+
|
6 |
+
private static $messages = array();
|
7 |
+
|
8 |
+
public static function init() {
|
9 |
+
add_action( 'admin_init', array( __CLASS__, 'register_setting' ) );
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Get Setting Page
|
14 |
+
*/
|
15 |
+
public static function get_setting_pages() {
|
16 |
+
$settings = array();
|
17 |
+
$settings[] = require_once WPEMS_INC . 'admin/settings/class-wpems-admin-setting-general.php';
|
18 |
+
$settings[] = require_once WPEMS_INC . 'admin/settings/class-wpems-admin-setting-pages.php';
|
19 |
+
$settings[] = require_once WPEMS_INC . 'admin/settings/class-wpems-admin-setting-emails.php';
|
20 |
+
$settings[] = require_once WPEMS_INC . 'admin/settings/class-wpems-admin-setting-checkout.php';
|
21 |
+
return apply_filters( 'event_admin_setting_pages', $settings );
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Add message
|
26 |
+
*
|
27 |
+
* @param type $message
|
28 |
+
*
|
29 |
+
* @since 2.0
|
30 |
+
*/
|
31 |
+
public static function add_message( $message = '' ) {
|
32 |
+
self::$messages[] = $message;
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Display messages
|
37 |
+
* @since 2.0
|
38 |
+
*/
|
39 |
+
public static function show_messages() {
|
40 |
+
foreach ( self::$messages as $message ) {
|
41 |
+
echo '<div class="updated inline"><p>' . esc_html( $message ) . '</p></div>';
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Save event setting
|
47 |
+
* @since 2.0
|
48 |
+
*/
|
49 |
+
public static function save() {
|
50 |
+
if ( empty( $_POST['tp-event-settings-nonce'] ) || !wp_verify_nonce( $_POST['tp-event-settings-nonce'], 'tp-event-settings' ) ) {
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
global $current_tab;
|
54 |
+
|
55 |
+
do_action( 'event_admin_setting_update_' . $current_tab );
|
56 |
+
do_action( 'event_admin_setting_update', $current_tab );
|
57 |
+
|
58 |
+
self::add_message( __( 'Your settings have been saved.', 'wp-events-manager' ) );
|
59 |
+
do_action( 'event_admin_settings_updated', $_POST );
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Output page setting
|
64 |
+
* @since 2.0
|
65 |
+
*/
|
66 |
+
public static function output() {
|
67 |
+
global $current_tab, $current_section;
|
68 |
+
self::get_setting_pages();
|
69 |
+
$tabs = apply_filters( 'event_admin_settings_tabs_array', array() );
|
70 |
+
$current_tab = isset( $_GET['tab'] ) && $_GET['tab'] ? sanitize_text_field($_GET['tab']) : current( array_keys( $tabs ) );
|
71 |
+
$current_section = isset( $_GET['section'] ) && $_GET['section'] ? sanitize_text_field($_GET['section']) : '';
|
72 |
+
if ( !empty( $_POST ) ) {
|
73 |
+
self::save();
|
74 |
+
}
|
75 |
+
if ( $tabs ): ?>
|
76 |
+
<div class="wrap">
|
77 |
+
<form method="POST" name="tp_event_options" action="">
|
78 |
+
<h2 class="nav-tab-wrapper">
|
79 |
+
<?php foreach ( $tabs as $key => $title ): ?>
|
80 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=tp-event-setting&tab=' . $key ) ); ?>" class="nav-tab<?php echo $current_tab === $key ? ' nav-tab-active' : '' ?>" data-tab="<?php echo esc_attr( $key ) ?>">
|
81 |
+
<?php printf( '%s', $title ) ?>
|
82 |
+
</a>
|
83 |
+
<?php endforeach; ?>
|
84 |
+
</h2>
|
85 |
+
<div class="tp_event_wrapper_content">
|
86 |
+
<?php do_action( 'event_admin_setting_sections_' . $current_tab ); ?>
|
87 |
+
<!--Display message updated || error-->
|
88 |
+
<?php self::show_messages(); ?>
|
89 |
+
<?php do_action( 'event_admin_setting_' . $current_tab ); ?>
|
90 |
+
</div>
|
91 |
+
<p class="submit">
|
92 |
+
<?php wp_nonce_field( 'tp-event-settings', 'tp-event-settings-nonce' ); ?>
|
93 |
+
<input name="save" class="button-primary" type="submit" value="<?php esc_attr_e( 'Save changes', 'wp-events-manager' ); ?>" />
|
94 |
+
</p>
|
95 |
+
</form>
|
96 |
+
</div>
|
97 |
+
<?php endif;
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Render fields
|
102 |
+
*
|
103 |
+
* @param type $fields
|
104 |
+
*
|
105 |
+
* @return type mixed
|
106 |
+
*/
|
107 |
+
public static function render_fields( $fields = array() ) {
|
108 |
+
if ( empty( $fields ) ) {
|
109 |
+
return;
|
110 |
+
}
|
111 |
+
foreach ( $fields as $k => $field ) {
|
112 |
+
$field = wp_parse_args( $field, array(
|
113 |
+
'id' => '',
|
114 |
+
'class' => '',
|
115 |
+
'title' => '',
|
116 |
+
'desc' => '',
|
117 |
+
'default' => '',
|
118 |
+
'type' => '',
|
119 |
+
'placeholder' => '',
|
120 |
+
'options' => '',
|
121 |
+
'atts' => array()
|
122 |
+
) );
|
123 |
+
|
124 |
+
$custom_attr = '';
|
125 |
+
if ( !empty( $field['atts'] ) ) {
|
126 |
+
foreach ( $field['atts'] as $k => $val ) {
|
127 |
+
$custom_attr .= $k . '="' . $val . '"';
|
128 |
+
}
|
129 |
+
}
|
130 |
+
switch ( $field['type'] ) {
|
131 |
+
case 'section_start':
|
132 |
+
include( WPEMS_INC . 'admin/views/settings/section-start.php' );
|
133 |
+
break;
|
134 |
+
case 'section_end':
|
135 |
+
include( WPEMS_INC . 'admin/views/settings/section-end.php' );
|
136 |
+
break;
|
137 |
+
|
138 |
+
case 'select':
|
139 |
+
case 'multiselect':
|
140 |
+
include( WPEMS_INC . 'admin/views/settings/select.php' );
|
141 |
+
break;
|
142 |
+
|
143 |
+
case 'text':
|
144 |
+
case 'number':
|
145 |
+
case 'email':
|
146 |
+
case 'password':
|
147 |
+
include( WPEMS_INC . 'admin/views/settings/text.php' );
|
148 |
+
break;
|
149 |
+
|
150 |
+
case 'checkbox':
|
151 |
+
include( WPEMS_INC . 'admin/views/settings/checkbox.php' );
|
152 |
+
break;
|
153 |
+
|
154 |
+
case 'yes_no':
|
155 |
+
include( WPEMS_INC . 'admin/views/settings/yes-no.php' );
|
156 |
+
break;
|
157 |
+
|
158 |
+
case 'radio':
|
159 |
+
include( WPEMS_INC . 'admin/views/settings/radio.php' );
|
160 |
+
break;
|
161 |
+
|
162 |
+
case 'image_size':
|
163 |
+
include( WPEMS_INC . 'admin/views/settings/image-size.php' );
|
164 |
+
break;
|
165 |
+
|
166 |
+
case 'textarea':
|
167 |
+
include( WPEMS_INC . 'admin/views/settings/textarea.php' );
|
168 |
+
break;
|
169 |
+
|
170 |
+
case 'select_page':
|
171 |
+
include( WPEMS_INC . 'admin/views/settings/select-page.php' );
|
172 |
+
break;
|
173 |
+
|
174 |
+
default:
|
175 |
+
do_action( 'tp_event_setting_field_' . $field['id'], $field );
|
176 |
+
break;
|
177 |
+
}
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Save fields options
|
183 |
+
*
|
184 |
+
* @param type $settings
|
185 |
+
*
|
186 |
+
* @since 2.0
|
187 |
+
*/
|
188 |
+
public static function save_fields( $settings = array() ) {
|
189 |
+
foreach ( $settings as $setting ) {
|
190 |
+
if ( isset( $setting['id'] ) && array_key_exists( $setting['id'], $_POST ) ) {
|
191 |
+
update_option( $setting['id'], sanitize_text_field($_POST[$setting['id']]) );
|
192 |
+
}
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
public static function register_setting() {
|
197 |
+
register_setting( 'thimpress_events', 'thimpress_events' );
|
198 |
+
}
|
199 |
+
|
200 |
+
}
|
201 |
+
|
202 |
+
WPEMS_Admin_Settings::init();
|
inc/admin/class-wpems-admin-users.php
ADDED
@@ -0,0 +1,254 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
|
12 |
+
if ( !class_exists( 'WP_List_Table' ) ) {
|
13 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
14 |
+
}
|
15 |
+
|
16 |
+
class WPEMS_Admin_Users extends WP_List_Table {
|
17 |
+
|
18 |
+
public $items = null;
|
19 |
+
|
20 |
+
public function __construct() {
|
21 |
+
parent::__construct( array(
|
22 |
+
'singular' => __( 'user', 'wp-events-manager' ),
|
23 |
+
'plural' => __( 'users', 'wp-events-manager' ),
|
24 |
+
'ajax' => false
|
25 |
+
) );
|
26 |
+
}
|
27 |
+
|
28 |
+
public function load_users() {
|
29 |
+
global $wpdb;
|
30 |
+
if ( isset( $_GET['user_id'] ) && $_GET['user_id'] ) {
|
31 |
+
$query = $wpdb->prepare( "
|
32 |
+
SELECT user.* FROM $wpdb->users AS user
|
33 |
+
LEFT JOIN $wpdb->postmeta AS pm ON user.ID = pm.meta_value
|
34 |
+
LEFT JOIN $wpdb->posts AS book ON pm.post_id = book.ID
|
35 |
+
WHERE
|
36 |
+
pm.meta_key = %s
|
37 |
+
AND book.post_type = %s
|
38 |
+
AND book.post_status IN (%s,%s,%s,%s)
|
39 |
+
AND user.ID = %d
|
40 |
+
GROUP BY user.ID
|
41 |
+
", 'ea_booking_user_id', 'event_auth_book', 'ea-cancelled', 'ea-pending', 'ea-processing', 'ea-completed', absint( $_GET['user_id'] ) );
|
42 |
+
} else {
|
43 |
+
$query = $wpdb->prepare( "
|
44 |
+
SELECT user.* FROM $wpdb->users AS user
|
45 |
+
LEFT JOIN $wpdb->postmeta AS pm ON user.ID = pm.meta_value
|
46 |
+
LEFT JOIN $wpdb->posts AS book ON pm.post_id = book.ID
|
47 |
+
WHERE
|
48 |
+
pm.meta_key = %s
|
49 |
+
AND book.post_type = %s
|
50 |
+
AND book.post_status IN (%s,%s,%s,%s)
|
51 |
+
GROUP BY user.ID
|
52 |
+
", 'ea_booking_user_id', 'event_auth_book', 'ea-cancelled', 'ea-pending', 'ea-processing', 'ea-completed' );
|
53 |
+
}
|
54 |
+
|
55 |
+
$users = $wpdb->get_results( $query );
|
56 |
+
|
57 |
+
$results = array();
|
58 |
+
|
59 |
+
if ( $users ) {
|
60 |
+
foreach ( $users as $user ) {
|
61 |
+
// $approve = is_super_admin( $user->ID ) || get_user_meta( $user->ID, 'ea_user_approved', true ) ;
|
62 |
+
|
63 |
+
$booking_url = admin_url() . 'edit.php?post_type=event_auth_book&user_id=' . $user->ID;
|
64 |
+
$results[] = array(
|
65 |
+
'ID' => $user->ID,
|
66 |
+
'user_login' => sprintf( '<a href="%s">%s</a>', get_edit_user_link( $user->ID ), $user->user_login ),
|
67 |
+
'user_nicename' => $user->user_nicename,
|
68 |
+
'user_email' => $user->user_email,
|
69 |
+
'bookings' => sprintf( '<a href="%s">%s</a>', $booking_url, __( 'View', 'wp-events-manager' ) ),
|
70 |
+
// 'approved' => (boolean) $approve
|
71 |
+
);
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
return $results;
|
76 |
+
}
|
77 |
+
|
78 |
+
// $this->items is empty
|
79 |
+
public function no_items() {
|
80 |
+
_e( 'No users found.', 'wp-events-manager' );
|
81 |
+
}
|
82 |
+
|
83 |
+
// default columns
|
84 |
+
public function column_default( $item, $column ) {
|
85 |
+
switch ( $column ) {
|
86 |
+
case 'ID':
|
87 |
+
case 'user_login':
|
88 |
+
case 'user_nicename':
|
89 |
+
case 'user_email':
|
90 |
+
return $item[$column];
|
91 |
+
break;
|
92 |
+
case 'bookings':
|
93 |
+
return $item[$column];
|
94 |
+
break;
|
95 |
+
default:
|
96 |
+
return print_r( $item, true );
|
97 |
+
break;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
// sort columns
|
102 |
+
public function get_sortable_columns() {
|
103 |
+
$sortable = array(
|
104 |
+
'user_login' => array( 'user_login', false )
|
105 |
+
);
|
106 |
+
return $sortable;
|
107 |
+
}
|
108 |
+
|
109 |
+
public function get_columns() {
|
110 |
+
$columns = array(
|
111 |
+
'cb' => '<input type="checkbox" />',
|
112 |
+
'user_login' => __( 'Username', 'wp-events-manager' ),
|
113 |
+
'user_nicename' => __( 'Name', 'wp-events-manager' ),
|
114 |
+
'user_email' => __( 'Email', 'wp-events-manager' ),
|
115 |
+
'bookings' => __( 'Event Booking', 'wp-events-manager' )
|
116 |
+
);
|
117 |
+
return $columns;
|
118 |
+
}
|
119 |
+
|
120 |
+
public function sort_data( $a, $b ) {
|
121 |
+
$orderby = ( !empty( $_GET['orderby'] ) ) ? sanitize_text_field($_GET['orderby']) : 'user_login';
|
122 |
+
|
123 |
+
$order = ( !empty( $_GET['order'] ) ) ? sanitize_text_field($_GET['order']) : 'asc';
|
124 |
+
|
125 |
+
$result = strcmp( $a[$orderby], $b[$orderby] );
|
126 |
+
return ( $order === 'asc' ) ? $result : - $result;
|
127 |
+
}
|
128 |
+
|
129 |
+
// bulk action
|
130 |
+
public function get_bulk_actions() {
|
131 |
+
|
132 |
+
return array(
|
133 |
+
// 'approve' => __( 'Approve', 'wp-events-manager' ),
|
134 |
+
// 'unapprove' => __( 'Unapprove', 'wp-events-manager' )
|
135 |
+
);
|
136 |
+
}
|
137 |
+
|
138 |
+
// process bulk action
|
139 |
+
public function process_bulk_action() {
|
140 |
+
return;
|
141 |
+
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
|
142 |
+
if ( !isset( $_POST['action'] ) || !$_POST['action'] || !isset( $_POST['users'] ) || empty( $_POST['users'] ) ) {
|
143 |
+
return;
|
144 |
+
}
|
145 |
+
|
146 |
+
$action = sanitize_text_field( $_POST['action'] );
|
147 |
+
$users = absint($_POST['users']);
|
148 |
+
|
149 |
+
foreach ( $users as $user ) {
|
150 |
+
$status = get_user_meta( $user, 'ea_user_approved', true );
|
151 |
+
if ( $action === 'approve' || is_super_admin( $user ) ) {
|
152 |
+
update_user_meta( $user, 'ea_user_approved', true );
|
153 |
+
} else if ( $action === 'unapprove' ) {
|
154 |
+
delete_user_meta( $user, 'ea_user_approved' );
|
155 |
+
}
|
156 |
+
}
|
157 |
+
} else {
|
158 |
+
if ( !isset( $_REQUEST['page'] ) || $_REQUEST['page'] !== 'tp-event-users' ) {
|
159 |
+
return;
|
160 |
+
}
|
161 |
+
|
162 |
+
if ( !isset( $_REQUEST['event_nonce'] ) || !wp_verify_nonce( $_REQUEST['event_nonce'], 'event_auth_user_action' ) ) {
|
163 |
+
return;
|
164 |
+
}
|
165 |
+
|
166 |
+
if ( !isset( $_REQUEST['action'] ) || !$_REQUEST['action'] || !isset( $_REQUEST['user_id'] ) || !$_REQUEST['user_id'] ) {
|
167 |
+
return;
|
168 |
+
}
|
169 |
+
|
170 |
+
$action = sanitize_text_field( $_REQUEST['action'] );
|
171 |
+
$user_id = absint( sanitize_text_field( $_REQUEST['user_id'] ) );
|
172 |
+
|
173 |
+
if ( $action === 'approve' ) {
|
174 |
+
update_user_meta( $user_id, 'ea_user_approved', true );
|
175 |
+
} elseif ( $action === 'unapprove' ) {
|
176 |
+
delete_user_meta( $user_id, 'ea_user_approved' );
|
177 |
+
}
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
public function column_user_login( $item ) {
|
182 |
+
// $status = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ;
|
183 |
+
// $status = wp_nonce_url( $status, 'event_auth_user_action', 'event_nonce' );
|
184 |
+
$actions = array();
|
185 |
+
if ( isset( $item['approved'] ) && !$item['approved'] ) {
|
186 |
+
// $status_name = __( 'Approve', 'wp-events-manager' );
|
187 |
+
// $status = add_query_arg( array(
|
188 |
+
// 'action' => 'approve',
|
189 |
+
// 'user_id' => $item['ID']
|
190 |
+
// ), $status );
|
191 |
+
// $actions['edit'] = sprintf( __( '<a href="%s">%s</a>' ), $status, $status_name );
|
192 |
+
} else {
|
193 |
+
// $status_name = __( 'Unapprove', 'wp-events-manager' );
|
194 |
+
// $status = add_query_arg( array(
|
195 |
+
// 'action' => 'unapprove',
|
196 |
+
// 'user_id' => $item['ID']
|
197 |
+
// ), $status );
|
198 |
+
// $actions['spam'] = sprintf( __( '<a href="%s">%s</a>' ), $status, $status_name );
|
199 |
+
}
|
200 |
+
|
201 |
+
return sprintf( '%1$s %2$s', $item['user_login'], $this->row_actions( $actions ) );
|
202 |
+
}
|
203 |
+
|
204 |
+
public function column_cb( $item ) {
|
205 |
+
return sprintf(
|
206 |
+
'<input type="checkbox" name="users[]" value="%s" />', $item['ID']
|
207 |
+
);
|
208 |
+
}
|
209 |
+
|
210 |
+
public function prepare_items() {
|
211 |
+
// process bulk action
|
212 |
+
$this->process_bulk_action();
|
213 |
+
|
214 |
+
// load items
|
215 |
+
$this->items = $this->load_users();
|
216 |
+
|
217 |
+
$columns = $this->get_columns();
|
218 |
+
$hidden = array();
|
219 |
+
$sortable = $this->get_sortable_columns();
|
220 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
221 |
+
usort( $this->items, array( $this, 'sort_data' ) );
|
222 |
+
|
223 |
+
$per_page = 10;
|
224 |
+
$total_items = count( $this->items );
|
225 |
+
// pagination
|
226 |
+
if ( $total_items > $per_page ) {
|
227 |
+
$this->items = array_slice( $this->items, ( $this->get_pagenum() - 1 ) * $per_page, $per_page );
|
228 |
+
}
|
229 |
+
$this->set_pagination_args( array(
|
230 |
+
'total_items' => $total_items,
|
231 |
+
'per_page' => $per_page
|
232 |
+
) );
|
233 |
+
|
234 |
+
$this->items = $this->items;
|
235 |
+
}
|
236 |
+
|
237 |
+
public static function output() {
|
238 |
+
$user_table = new WPEMS_Admin_Users();
|
239 |
+
?>
|
240 |
+
<div class="wrap">
|
241 |
+
|
242 |
+
<h2><?php _e( 'Event Users', 'wp-events-manager' ); ?></h2>
|
243 |
+
|
244 |
+
<?php $user_table->prepare_items(); ?>
|
245 |
+
<form method="post">
|
246 |
+
<?php $user_table->display(); ?>
|
247 |
+
</form>
|
248 |
+
|
249 |
+
</div>
|
250 |
+
<?php
|
251 |
+
}
|
252 |
+
|
253 |
+
|
254 |
+
}
|
inc/admin/class-wpems-admin.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
class WPEMS_Admin {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
|
9 |
+
$this->_includes();
|
10 |
+
}
|
11 |
+
|
12 |
+
private function _includes() {
|
13 |
+
include( WPEMS_PATH . 'inc/admin/class-wpems-admin-menu.php' );
|
14 |
+
include( WPEMS_PATH . 'inc/admin/class-wpems-admin-assets.php' );
|
15 |
+
include( WPEMS_PATH . 'inc/admin/class-wpems-admin-metaboxes.php' );
|
16 |
+
include( WPEMS_PATH . 'inc/admin/class-wpems-admin-settings.php' );
|
17 |
+
include( WPEMS_PATH . 'inc/admin/class-wpems-admin-users.php' );
|
18 |
+
}
|
19 |
+
|
20 |
+
}
|
21 |
+
|
22 |
+
new WPEMS_Admin();
|
inc/admin/metaboxes/class-wpems-admin-metabox-booking.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined( 'ABSPATH' ) || exit();
|
3 |
+
|
4 |
+
class WPEMS_Admin_Metabox_Booking {
|
5 |
+
|
6 |
+
public static function save( $post_id, $posted ) {
|
7 |
+
if ( ! empty( $_POST['booking-status'] ) ) {
|
8 |
+
remove_action( 'tp_event_process_update_event_auth_book_meta', array( __CLASS__, 'save' ), 10, 3 );
|
9 |
+
$booking = WPEMS_Booking::instance( $post_id );
|
10 |
+
|
11 |
+
$status = sanitize_text_field( $_POST['booking-status'] );
|
12 |
+
$booking->update_status( $status );
|
13 |
+
add_action( 'tp_event_process_update_event_auth_book_meta', array( __CLASS__, 'save' ), 10, 3 );
|
14 |
+
}
|
15 |
+
if ( ! empty( $_POST['booking-notes'] ) ) {
|
16 |
+
update_post_meta( $post_id, 'ea_booking_note', sanitize_textarea_field( $_POST['booking-notes'] ) );
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
public static function render() {
|
21 |
+
require_once( WPEMS_INC . 'admin/views/metaboxes/booking-details.php' );
|
22 |
+
}
|
23 |
+
|
24 |
+
public static function side() {
|
25 |
+
require_once( WPEMS_INC . 'admin/views/metaboxes/booking-actions.php' );
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
inc/admin/metaboxes/class-wpems-admin-metabox-event.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
|
6 |
+
class WPEMS_Admin_Metabox_Event {
|
7 |
+
|
8 |
+
public static function save( $post_id, $posted ) {
|
9 |
+
if ( empty( $posted ) )
|
10 |
+
return;
|
11 |
+
|
12 |
+
foreach ( $posted as $name => $value ) {
|
13 |
+
if ( strpos( $name, 'tp_event_' ) !== 0 ) {
|
14 |
+
continue;
|
15 |
+
}
|
16 |
+
update_post_meta( $post_id, $name, $value );
|
17 |
+
}
|
18 |
+
// Start
|
19 |
+
$start = !empty( $_POST['tp_event_date_start'] ) ? sanitize_text_field( $_POST['tp_event_date_start'] ) : '';
|
20 |
+
$start .= $start && !empty( $_POST['tp_event_time_start'] ) ? ' ' . sanitize_text_field( $_POST['tp_event_time_start'] ) : '';
|
21 |
+
|
22 |
+
// End
|
23 |
+
$end = !empty( $_POST['tp_event_date_end'] ) ? sanitize_text_field( $_POST['tp_event_date_end'] ) : '';
|
24 |
+
$end .= $end && !empty( $_POST['tp_event_time_end'] ) ? ' ' . sanitize_text_field( $_POST['tp_event_time_end'] ) : '';
|
25 |
+
|
26 |
+
if ( ( $start && !$end ) || ( strtotime( $start ) >= strtotime( $end ) ) ) {
|
27 |
+
WPEMS_Admin_Metaboxes::add_error( __( 'Please make sure event time is validate', 'wp-events-manager' ) );
|
28 |
+
wp_update_post( array( 'ID' => $post_id, 'post_status' => 'publish' ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
$event_start = strtotime( $start );
|
32 |
+
$event_end = strtotime( $end );
|
33 |
+
|
34 |
+
$time = strtotime( current_time( 'Y-m-d H:i' ) );
|
35 |
+
|
36 |
+
$offset_time = get_option( 'gmt_offset' ) * 60 * 60;
|
37 |
+
|
38 |
+
$status = 'publish';
|
39 |
+
if ( $event_start && $event_end ) {
|
40 |
+
if ( $event_start > $time ) {
|
41 |
+
$status = 'tp-event-upcoming';
|
42 |
+
} else if ( $event_start <= $time && $time < $event_end ) {
|
43 |
+
$status = 'tp-event-happenning';
|
44 |
+
} else if ( $time >= $event_end ) {
|
45 |
+
$status = 'tp-event-expired';
|
46 |
+
}
|
47 |
+
|
48 |
+
wp_schedule_single_event( $event_start - $offset_time, 'tp_event_schedule_status', array( $post_id, 'tp-event-happenning' ) );
|
49 |
+
wp_schedule_single_event( $event_end - $offset_time, 'tp_event_schedule_status', array( $post_id, 'tp-event-expired' ) );
|
50 |
+
}
|
51 |
+
|
52 |
+
if ( !in_array( get_post_status( $post_id ), array( 'tp-event-upcoming', 'tp-event-happenning', 'tp-event-expired' ) ) ) {
|
53 |
+
wp_update_post( array( 'ID' => $post_id, 'post_status' => $status ) );
|
54 |
+
}
|
55 |
+
|
56 |
+
}
|
57 |
+
|
58 |
+
public static function render() {
|
59 |
+
require_once( WPEMS_INC . 'admin/views/metaboxes/event-settings.php' );
|
60 |
+
}
|
61 |
+
|
62 |
+
}
|
inc/admin/settings/class-wpems-admin-setting-checkout.php
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Admin_Setting_Checkout extends WPEMS_Abstract_Setting {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ID
|
11 |
+
* @var type mixed
|
12 |
+
*/
|
13 |
+
public $id = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Title
|
17 |
+
* @var type string
|
18 |
+
*/
|
19 |
+
public $label = null;
|
20 |
+
|
21 |
+
public function __construct() {
|
22 |
+
$this->id = 'event_checkout';
|
23 |
+
$this->label = __( 'Checkout', 'wp-events-manager' );
|
24 |
+
add_filter( 'event_admin_settings_tabs_array', array( $this, 'add_setting_tab' ) );
|
25 |
+
add_action( 'event_admin_setting_sections_' . $this->id, array( $this, 'output_section' ) );
|
26 |
+
add_action( 'event_admin_setting_update_' . $this->id, array( $this, 'save' ) );
|
27 |
+
add_action( 'event_admin_setting_' . $this->id, array( $this, 'output' ) );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Get options setting page
|
32 |
+
* @return type array
|
33 |
+
*/
|
34 |
+
public function get_settings() {
|
35 |
+
$prefix = 'thimpress_events_';
|
36 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id, array(
|
37 |
+
array(
|
38 |
+
'type' => 'section_start',
|
39 |
+
'id' => 'general_settings',
|
40 |
+
'title' => __( 'Checkout Process', 'wp-events-manager' ),
|
41 |
+
'desc' => __( 'General options for system', 'wp-events-manager' )
|
42 |
+
),
|
43 |
+
array(
|
44 |
+
'type' => 'select',
|
45 |
+
'title' => __( 'Booking times free event/email', 'wp-events-manager' ),
|
46 |
+
'desc' => __( 'This controls how many time booking free event of an email', 'wp-events-manager' ),
|
47 |
+
'id' => $prefix . 'email_register_times',
|
48 |
+
'options' => array(
|
49 |
+
'once' => __( 'Once', 'wp-events-manager' ),
|
50 |
+
'many' => __( 'Many', 'wp-events-manager' )
|
51 |
+
),
|
52 |
+
'default' => 'many'
|
53 |
+
),
|
54 |
+
array(
|
55 |
+
'type' => 'number',
|
56 |
+
'title' => __( 'Cancel payment status', 'wp-events-manager' ),
|
57 |
+
'desc' => __( 'How long cancel a payment (hour)', 'wp-events-manager' ),
|
58 |
+
'atts' => array(
|
59 |
+
'min' => 0,
|
60 |
+
'step' => 'any'
|
61 |
+
),
|
62 |
+
'id' => $prefix . 'cancel_payment',
|
63 |
+
'default' => 12,
|
64 |
+
'placeholder' => 12
|
65 |
+
),
|
66 |
+
array(
|
67 |
+
'type' => 'section_end',
|
68 |
+
'id' => 'general_settings'
|
69 |
+
)
|
70 |
+
) );
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Add Sections
|
75 |
+
*/
|
76 |
+
public function get_sections() {
|
77 |
+
$sections[''] = __( 'Checkout General', 'wp-events-manager' );
|
78 |
+
$payment_gateways = wpems_payment_gateways();
|
79 |
+
if ( $payment_gateways ) {
|
80 |
+
foreach ( $payment_gateways as $id => $gateway ) {
|
81 |
+
$sections[$id] = $gateway->title;
|
82 |
+
}
|
83 |
+
}
|
84 |
+
return $sections;
|
85 |
+
}
|
86 |
+
|
87 |
+
public function output( $tab ) {
|
88 |
+
global $current_section;
|
89 |
+
if ( $current_section ) {
|
90 |
+
$gateways = wpems_payment_gateways();
|
91 |
+
foreach ( $gateways as $gateway ) {
|
92 |
+
if ( $current_section === $gateway->id ) {
|
93 |
+
$fields = $gateway->admin_fields();
|
94 |
+
WPEMS_Admin_Settings::render_fields( $fields );
|
95 |
+
break;
|
96 |
+
}
|
97 |
+
}
|
98 |
+
} else {
|
99 |
+
parent::output( $tab );
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
public function save() {
|
104 |
+
global $current_section;
|
105 |
+
if ( $current_section ) {
|
106 |
+
$gateways = wpems_payment_gateways();
|
107 |
+
foreach ( $gateways as $gateway ) {
|
108 |
+
if ( $current_section === $gateway->id ) {
|
109 |
+
$fields = $gateway->admin_fields();
|
110 |
+
WPEMS_Admin_Settings::save_fields( $fields );
|
111 |
+
break;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
} else {
|
115 |
+
parent::save();
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
}
|
120 |
+
|
121 |
+
return new WPEMS_Admin_Setting_Checkout();
|
inc/admin/settings/class-wpems-admin-setting-emails.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Admin_Setting_Emails extends WPEMS_Abstract_Setting {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ID
|
11 |
+
* @var type mixed
|
12 |
+
*/
|
13 |
+
public $id = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Title
|
17 |
+
* @var type string
|
18 |
+
*/
|
19 |
+
public $label = null;
|
20 |
+
|
21 |
+
public function __construct() {
|
22 |
+
$this->id = 'event_emails';
|
23 |
+
$this->label = __( 'Emails', 'wp-events-manager' );
|
24 |
+
parent::__construct();
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Get options setting page
|
29 |
+
* @return type array
|
30 |
+
*/
|
31 |
+
public function get_settings() {
|
32 |
+
$prefix = 'thimpress_events_';
|
33 |
+
|
34 |
+
$register_event_mail = wpems_get_option( 'email_enable' );
|
35 |
+
|
36 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id, array(
|
37 |
+
array(
|
38 |
+
'type' => 'section_start',
|
39 |
+
'id' => 'email_settings',
|
40 |
+
'title' => __( 'Email Notifications', 'wp-events-manager' ),
|
41 |
+
),
|
42 |
+
array(
|
43 |
+
'type' => 'yes_no',
|
44 |
+
'title' => __( 'Event register', 'wp-events-manager' ),
|
45 |
+
'desc' => __( 'Send notify when user register event', 'wp-events-manager' ),
|
46 |
+
'id' => $prefix . 'email_enable',
|
47 |
+
'default' => 'yes'
|
48 |
+
),
|
49 |
+
array(
|
50 |
+
'type' => 'text',
|
51 |
+
'title' => __( 'From name', 'wp-events-manager' ),
|
52 |
+
'placeholder' => get_option( 'blogname' ),
|
53 |
+
'id' => $prefix . 'email_from_name',
|
54 |
+
'default' => get_option( 'blog_name' ),
|
55 |
+
'class' => 'email-setting-form-name' . ( $register_event_mail == 'no' ? ' hide-if-js' : '' )
|
56 |
+
),
|
57 |
+
array(
|
58 |
+
'type' => 'email',
|
59 |
+
'title' => __( 'Email from', 'wp-events-manager' ),
|
60 |
+
'placeholder' => get_option( 'admin_email' ),
|
61 |
+
'id' => $prefix . 'admin_email',
|
62 |
+
'default' => get_option( 'admin_email' ),
|
63 |
+
'class' => 'email-setting-email-form' . ( $register_event_mail == 'no' ? ' hide-if-js' : '' )
|
64 |
+
),
|
65 |
+
array(
|
66 |
+
'type' => 'text',
|
67 |
+
'title' => __( 'Subject', 'wp-events-manager' ),
|
68 |
+
'placeholder' => __( 'Register event', 'wp-events-manager' ),
|
69 |
+
'id' => $prefix . 'email_subject',
|
70 |
+
'default' => '',
|
71 |
+
'class' => 'email-setting-subject' . ( $register_event_mail == 'no' ? ' hide-if-js' : '' )
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'type' => 'checkbox',
|
75 |
+
'title' => __( 'Account register', 'wp-events-manager' ),
|
76 |
+
'desc' => __( 'Send notify when user register account', 'wp-events-manager' ),
|
77 |
+
'id' => $prefix . 'register_notify',
|
78 |
+
'default' => false
|
79 |
+
),
|
80 |
+
array(
|
81 |
+
'type' => 'section_end',
|
82 |
+
'id' => 'email_settings'
|
83 |
+
)
|
84 |
+
) );
|
85 |
+
}
|
86 |
+
|
87 |
+
}
|
88 |
+
|
89 |
+
return new WPEMS_Admin_Setting_Emails();
|
inc/admin/settings/class-wpems-admin-setting-general.php
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Admin_Setting_General extends WPEMS_Abstract_Setting {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ID
|
11 |
+
* @var type mixed
|
12 |
+
*/
|
13 |
+
public $id = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Title
|
17 |
+
* @var type string
|
18 |
+
*/
|
19 |
+
public $label = null;
|
20 |
+
|
21 |
+
public function __construct() {
|
22 |
+
$this->id = 'event_general';
|
23 |
+
$this->label = __( 'General', 'wp-events-manager' );
|
24 |
+
parent::__construct();
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Get options setting page
|
29 |
+
* @return type array
|
30 |
+
*/
|
31 |
+
public function get_settings() {
|
32 |
+
$prefix = 'thimpress_events_';
|
33 |
+
|
34 |
+
$allow_register_event = wpems_get_option( 'allow_register_event' );
|
35 |
+
|
36 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id, array(
|
37 |
+
// Currency
|
38 |
+
array(
|
39 |
+
'type' => 'section_start',
|
40 |
+
'id' => 'auth_currency_settings',
|
41 |
+
'title' => __( 'General Options', 'wp-events-manager' ),
|
42 |
+
),
|
43 |
+
array(
|
44 |
+
'type' => 'yes_no',
|
45 |
+
'title' => __( 'Event registration', 'wp-events-manager' ),
|
46 |
+
'desc' => __( 'Allows user register events', 'wp-events-manager' ),
|
47 |
+
'id' => $prefix . 'allow_register_event',
|
48 |
+
'default' => 'yes'
|
49 |
+
),
|
50 |
+
array(
|
51 |
+
'type' => 'select',
|
52 |
+
'title' => __( 'Currency', 'wp-events-manager' ),
|
53 |
+
'desc' => __( 'This controls what the currency prices', 'wp-events-manager' ),
|
54 |
+
'id' => $prefix . 'currency',
|
55 |
+
'options' => wpems_currencies(),
|
56 |
+
'default' => 'USD',
|
57 |
+
'class' => 'setting-currency' . ( $allow_register_event == 'no' ? ' hide-if-js' : '' ) . apply_filters( 'tp_event_currency_setting_fields_class', '' )
|
58 |
+
),
|
59 |
+
array(
|
60 |
+
'type' => 'select',
|
61 |
+
'title' => __( 'Currency Position', 'wp-events-manager' ),
|
62 |
+
'desc' => __( 'This controls the position of the currency symbol', 'wp-events-manager' ),
|
63 |
+
'id' => $prefix . 'currency_position',
|
64 |
+
'options' => array(
|
65 |
+
'left' => __( 'Left', 'wp-events-manager' ) . ' ' . '(£99.99)',
|
66 |
+
'right' => __( 'Right', 'wp-events-manager' ) . ' ' . '(99.99£)',
|
67 |
+
'left_space' => __( 'Left with space', 'wp-events-manager' ) . ' ' . '(£ 99.99)',
|
68 |
+
'right_space' => __( 'Right with space', 'wp-events-manager' ) . ' ' . '(99.99 £)',
|
69 |
+
),
|
70 |
+
'default' => 'left',
|
71 |
+
'class' => 'setting-currency-position' . ( $allow_register_event == 'no' ? ' hide-if-js' : '' ) . apply_filters( 'tp_event_currency_setting_fields_class', '' )
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'type' => 'text',
|
75 |
+
'title' => __( 'Thousand Separator', 'wp-events-manager' ),
|
76 |
+
'id' => $prefix . 'currency_thousand',
|
77 |
+
'default' => ',',
|
78 |
+
'class' => 'setting-currency-thousand' . ( $allow_register_event == 'no' ? ' hide-if-js' : '' ) . apply_filters( 'tp_event_currency_setting_fields_class', '' )
|
79 |
+
),
|
80 |
+
array(
|
81 |
+
'type' => 'text',
|
82 |
+
'title' => __( 'Decimal Separator', 'wp-events-manager' ),
|
83 |
+
'id' => $prefix . 'currency_separator',
|
84 |
+
'default' => '.',
|
85 |
+
'class' => 'setting-currency-separator' . ( $allow_register_event == 'no' ? ' hide-if-js' : '' ) . apply_filters( 'tp_event_currency_setting_fields_class', '' )
|
86 |
+
),
|
87 |
+
array(
|
88 |
+
'type' => 'number',
|
89 |
+
'title' => __( 'Number of Decimals', 'wp-events-manager' ),
|
90 |
+
'id' => $prefix . 'currency_num_decimal',
|
91 |
+
'atts' => array( 'step' => 'any' ),
|
92 |
+
'default' => '2',
|
93 |
+
'class' => 'setting-number-decimals' . ( $allow_register_event == 'no' ? ' hide-if-js' : '' ) . apply_filters( 'tp_event_currency_setting_fields_class', '' )
|
94 |
+
),
|
95 |
+
array(
|
96 |
+
'type' => 'text',
|
97 |
+
'title' => __( 'Google Map API Key', 'wp-events-manager' ),
|
98 |
+
'id' => $prefix . 'google_map_api_key',
|
99 |
+
'desc' => __( 'Refer on https://developers.google.com/maps/documentation/javascript/get-api-key#get-an-api-key', 'wp-events-manager' ),
|
100 |
+
),
|
101 |
+
array(
|
102 |
+
'type' => 'section_end',
|
103 |
+
'id' => 'auth_currency_settings'
|
104 |
+
),
|
105 |
+
) );
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
return new WPEMS_Admin_Setting_General();
|
inc/admin/settings/class-wpems-admin-setting-pages.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
class WPEMS_Admin_Setting_Pages extends WPEMS_Abstract_Setting {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* ID
|
15 |
+
* @var type mixed
|
16 |
+
*/
|
17 |
+
public $id = null;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Title
|
21 |
+
* @var type string
|
22 |
+
*/
|
23 |
+
public $label = null;
|
24 |
+
|
25 |
+
public function __construct() {
|
26 |
+
$this->id = 'event_pages';
|
27 |
+
$this->label = __( 'Pages', 'wp-events-manager' );
|
28 |
+
add_action( 'event_admin_setting_update_' . $this->id, array( $this, 'save' ) );
|
29 |
+
parent::__construct();
|
30 |
+
}
|
31 |
+
|
32 |
+
|
33 |
+
public function save() {
|
34 |
+
parent::save();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Get options setting page
|
39 |
+
* @return type array
|
40 |
+
*/
|
41 |
+
public function get_settings() {
|
42 |
+
$prefix = 'thimpress_events_';
|
43 |
+
return apply_filters( 'event_admin_setting_page_' . $this->id, array(
|
44 |
+
array(
|
45 |
+
'type' => 'section_start',
|
46 |
+
'id' => 'pages_settings',
|
47 |
+
'title' => __( 'Pages Settings', 'wp-events-manager' ),
|
48 |
+
),
|
49 |
+
array(
|
50 |
+
'type' => 'select_page',
|
51 |
+
'title' => __( 'Register Page', 'wp-events-manager' ),
|
52 |
+
'desc' => __( 'This controls which the register page', 'wp-events-manager' ),
|
53 |
+
'id' => $prefix . 'register_page_id',
|
54 |
+
),
|
55 |
+
array(
|
56 |
+
'type' => 'select_page',
|
57 |
+
'title' => __( 'Login Page', 'wp-events-manager' ),
|
58 |
+
'desc' => __( 'This controls which the login page', 'wp-events-manager' ),
|
59 |
+
'id' => $prefix . 'login_page_id',
|
60 |
+
),
|
61 |
+
array(
|
62 |
+
'type' => 'select_page',
|
63 |
+
'title' => __( 'Forgot Password', 'wp-events-manager' ),
|
64 |
+
'desc' => __( 'This controls which the forgot password page', 'wp-events-manager' ),
|
65 |
+
'id' => $prefix . 'forgot_password_page_id',
|
66 |
+
),
|
67 |
+
array(
|
68 |
+
'type' => 'select_page',
|
69 |
+
'title' => __( 'Reset Password', 'wp-events-manager' ),
|
70 |
+
'desc' => __( 'This controls which the reset password page', 'wp-events-manager' ),
|
71 |
+
'id' => $prefix . 'reset_password_page_id',
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'type' => 'select_page',
|
75 |
+
'title' => __( 'My Account', 'wp-events-manager' ),
|
76 |
+
'desc' => __( 'This controls which the user account page', 'wp-events-manager' ),
|
77 |
+
'id' => $prefix . 'account_page_id',
|
78 |
+
),
|
79 |
+
array(
|
80 |
+
'type' => 'section_end',
|
81 |
+
'id' => 'pages_settings'
|
82 |
+
)
|
83 |
+
) );
|
84 |
+
}
|
85 |
+
|
86 |
+
}
|
87 |
+
|
88 |
+
return new WPEMS_Admin_Setting_Pages();
|
inc/admin/upgrades/upgrade-2.0.8.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) || ! defined( 'WPEMS_INSTALLING' ) || ! WPEMS_INSTALLING ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Update event date meta
|
9 |
+
*/
|
10 |
+
$event_args = array(
|
11 |
+
'post_type' => 'tp_event',
|
12 |
+
'posts_per_page' => - 1,
|
13 |
+
'post_status' => 'any'
|
14 |
+
);
|
15 |
+
$events = new WP_Query( $event_args );
|
16 |
+
if ( $events->have_posts() ) {
|
17 |
+
while ( $events->have_posts() ) {
|
18 |
+
$events->the_post();
|
19 |
+
|
20 |
+
// update for event date meta
|
21 |
+
$start = get_post_meta( get_the_ID(), 'tp_event_date_start', true );
|
22 |
+
$end = get_post_meta( get_the_ID(), 'tp_event_date_end', true );
|
23 |
+
|
24 |
+
if ( $start ) {
|
25 |
+
update_post_meta( get_the_ID(), 'tp_event_date_start', date( 'Y-m-d', strtotime( $start ) ) );
|
26 |
+
}
|
27 |
+
if ( $end ) {
|
28 |
+
update_post_meta( get_the_ID(), 'tp_event_date_end', date( 'Y-m-d', strtotime( $end ) ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
}
|
32 |
+
wp_reset_query();
|
33 |
+
}
|
inc/admin/upgrades/upgrade-2.0.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) || !defined( 'WPEMS_INSTALLING' ) || !WPEMS_INSTALLING ) {
|
4 |
+
exit();
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Update post meta
|
9 |
+
*/
|
10 |
+
$event_args = array(
|
11 |
+
'post_type' => 'tp_event',
|
12 |
+
'posts_per_page' => - 1,
|
13 |
+
'post_status' => 'any'
|
14 |
+
);
|
15 |
+
$events = new WP_Query( $event_args );
|
16 |
+
if ( $events->have_posts() ) {
|
17 |
+
while ( $events->have_posts() ) {
|
18 |
+
$events->the_post();
|
19 |
+
|
20 |
+
// update for event auth
|
21 |
+
$qty = get_post_meta( get_the_ID(), 'thimpress_event_auth_quantity', true );
|
22 |
+
$price = get_post_meta( get_the_ID(), 'thimpress_event_auth_cost', true );
|
23 |
+
update_post_meta( get_the_ID(), 'tp_event_qty', absint( $qty ) );
|
24 |
+
update_post_meta( get_the_ID(), 'tp_event_price', absint( $price ) );
|
25 |
+
|
26 |
+
$start = strtotime( get_post_meta( get_the_ID(), 'tp_event_date_start', true ) . ' ' . get_post_meta( get_the_ID(), 'tp_event_time_start', true ) );
|
27 |
+
$end = strtotime( get_post_meta( get_the_ID(), 'tp_event_date_end', true ) . ' ' . get_post_meta( get_the_ID(), 'tp_event_time_end', true ) );
|
28 |
+
$time = current_time( 'timestamp' );
|
29 |
+
|
30 |
+
|
31 |
+
$status = 'publish';
|
32 |
+
if ( $start && $end ) {
|
33 |
+
if ( $start > $time ) {
|
34 |
+
$status = 'tp-event-upcoming';
|
35 |
+
} else if ( $start <= $time && $time < $end ) {
|
36 |
+
$status = 'tp-event-happenning';
|
37 |
+
} else if ( $time >= $end ) {
|
38 |
+
$status = 'tp-event-expired';
|
39 |
+
}
|
40 |
+
}
|
41 |
+
if ( in_array( get_post_status( get_the_ID() ), array( 'tp-event-upcoming', 'tp-event-happenning', 'tp-event-expired' ) ) ) {
|
42 |
+
wp_update_post( array( 'ID' => get_the_ID(), 'post_status' => $status ) );
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
46 |
+
wp_reset_query();
|
47 |
+
}
|
inc/admin/views/metaboxes/booking-actions.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
?>
|
11 |
+
|
12 |
+
<?php global $post; ?>
|
13 |
+
|
14 |
+
<?php $notes = get_post_meta( $post->ID, 'ea_booking_note', true ); ?>
|
15 |
+
|
16 |
+
<div id="event-booking-actions" class="booking-actions">
|
17 |
+
<label for="booking-status"><?php echo esc_html__( 'Booking Status', 'wp-events-manager' ); ?></label>
|
18 |
+
<select name="booking-status" id="booking-status">
|
19 |
+
<?php foreach ( wpems_get_payment_status() as $key => $text ) : ?>
|
20 |
+
<option value="<?php echo esc_attr( $key ) ?>"<?php echo get_post_status( $post->ID ) === $key ? ' selected' : '' ?>><?php printf( '%s', $text ) ?></option>
|
21 |
+
<?php endforeach; ?>
|
22 |
+
</select>
|
23 |
+
<p class="booking-status-description"><?php echo esc_html__( 'Update booking event status', 'wp-events-manager' ); ?></p>
|
24 |
+
</div>
|
25 |
+
<div id="event-booking-notes" class="booking-notes">
|
26 |
+
<label for="booking-notes"><?php echo esc_html__( 'Booking Notes', 'wp-events-manager' ); ?></label>
|
27 |
+
<textarea id="booking-notes" name="booking-notes" rows="3"><?php echo esc_html( $notes ); ?></textarea>
|
28 |
+
</div>
|
inc/admin/views/metaboxes/booking-details.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
global $post;
|
12 |
+
$booking = WPEMS_Booking::instance( $post->ID );
|
13 |
+
$user = get_userdata( $booking->user_id );
|
14 |
+
$prefix = 'tp_event_';
|
15 |
+
?>
|
16 |
+
|
17 |
+
<?php do_action( 'tp_event_admin_booking_metabox_before_fields', $post, $prefix ); ?>
|
18 |
+
|
19 |
+
<div id="event-booking-details" class="booking-details">
|
20 |
+
<div class="booking-user-data">
|
21 |
+
<div class="user-avatar">
|
22 |
+
<?php echo get_avatar( $booking->user_id, 120 ); ?>
|
23 |
+
</div>
|
24 |
+
<div class="order-user-meta">
|
25 |
+
<div class="user-display-name">
|
26 |
+
<?php echo sprintf( '<a href="%s">%s</a>', admin_url( 'admin.php?page=tp-event-users&user_id=' . $booking->user_id ), $user->data->user_nicename ); ?>
|
27 |
+
</div>
|
28 |
+
<div class="user-email">
|
29 |
+
<?php echo $user->user_email ? $user->user_email : ''; ?>
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
<div class="booking-data">
|
34 |
+
<h3 class="booking-data-number"><?php echo sprintf( esc_attr__( 'Order %s', 'wp-events-manager' ), wpems_format_ID( $post->ID ) ); ?></h3>
|
35 |
+
<div class="booking-date">
|
36 |
+
<?php echo sprintf( __( 'Date %s', 'wp-events-manager' ), $post->post_date ); ?>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
|
40 |
+
<h3><?php _e( 'Booking Details', 'wp-events-manager' ); ?></h3>
|
41 |
+
|
42 |
+
<table class="booking-table">
|
43 |
+
<thead>
|
44 |
+
<tr>
|
45 |
+
<th><?php _e( 'Item', 'wp-events-manager' ); ?></th>
|
46 |
+
<th><?php _e( 'Cost', 'wp-events-manager' ); ?></th>
|
47 |
+
<th><?php _e( 'Quantity', 'wp-events-manager' ); ?></th>
|
48 |
+
<th><?php _e( 'Payment Method', 'wp-events-manager' ) ?></th>
|
49 |
+
<th><?php _e( 'Amount', 'wp-events-manager' ); ?></th>
|
50 |
+
</tr>
|
51 |
+
</thead>
|
52 |
+
<tbody>
|
53 |
+
<tr data-item_id="<?php echo esc_attr( $booking->event_id ); ?>">
|
54 |
+
<?php $event = WPEMS_Event::instance( $booking->event_id ); ?>
|
55 |
+
<td><?php echo sprintf( '<a href="%s">%s</a>', get_edit_post_link( $booking->event_id ), get_the_title( $booking->event_id ) ) ?></td>
|
56 |
+
<td><?php echo sprintf( '%s', wpems_format_price( floatval( $event->price ) ) ) ?></td>
|
57 |
+
<td><?php echo sprintf( '%s', $booking->qty ) ?></td>
|
58 |
+
<td><?php echo sprintf( '%s', $booking->payment_id ? wpems_get_payment_title( $booking->payment_id ) : __( 'No payment', 'wp-events-manager' ) ) ?></td>
|
59 |
+
<td><?php echo sprintf( '%s', wpems_format_price( floatval( $booking->price ) ) ) ?></td>
|
60 |
+
</tr>
|
61 |
+
</tbody>
|
62 |
+
<tfoot>
|
63 |
+
<tr>
|
64 |
+
<td width="300" colspan="4"><?php _e( 'Sub Total', 'wp-events-manager' ); ?></td>
|
65 |
+
<td width="100"><span class="booking-subtotal"><?php ?></span></td>
|
66 |
+
</tr>
|
67 |
+
<tr>
|
68 |
+
<td colspan="4"><?php _e( 'Total', 'wp-events-manager' ); ?></td>
|
69 |
+
<td class="booking-total"><?php echo sprintf( '%s', wpems_format_price( floatval( $booking->price ) ) ) ?></td>
|
70 |
+
</tr>
|
71 |
+
</tfoot>
|
72 |
+
<?php wp_nonce_field( 'event_booking_nonce', 'event-booking-nonce' ); ?>
|
73 |
+
</table>
|
74 |
+
</div>
|
75 |
+
|
76 |
+
|
77 |
+
<?php do_action( 'tp_event_admin_booking_metabox_after_fields', $post, $prefix ); ?>
|
inc/admin/views/metaboxes/event-settings.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
global $post;
|
12 |
+
$post_id = $post->ID;
|
13 |
+
$prefix = 'tp_event_';
|
14 |
+
$date_start = get_post_meta( $post->ID, $prefix . 'date_start', true ) ? date( 'Y-m-d', strtotime( get_post_meta( $post->ID, $prefix . 'date_start', true ) ) ) : '';
|
15 |
+
$time_start = get_post_meta( $post->ID, $prefix . 'time_start', true ) ? date( 'H:i', strtotime( get_post_meta( $post->ID, $prefix . 'time_start', true ) ) ) : '';
|
16 |
+
|
17 |
+
$date_end = get_post_meta( $post->ID, $prefix . 'date_end', true ) ? date( 'Y-m-d', strtotime( get_post_meta( $post->ID, $prefix . 'date_end', true ) ) ) : '';
|
18 |
+
$time_end = get_post_meta( $post->ID, $prefix . 'time_end', true ) ? date( 'H:i', strtotime( get_post_meta( $post->ID, $prefix . 'time_end', true ) ) ) : '';
|
19 |
+
|
20 |
+
$qty = get_post_meta( $post_id, $prefix . 'qty', true );
|
21 |
+
$price = get_post_meta( $post_id, $prefix . 'price', true );
|
22 |
+
$location = get_post_meta( $post_id, $prefix . 'location', true );
|
23 |
+
$today = date( "Y-m-d", strtotime( 'today' ) );
|
24 |
+
$tomorrow = date( "Y-m-d", strtotime( 'tomorrow' ) );
|
25 |
+
?>
|
26 |
+
<div class="event_meta_box_container">
|
27 |
+
<div class="event_meta_panel">
|
28 |
+
<?php do_action( 'tp_event_admin_event_metabox_before_fields', $post, $prefix ); ?>
|
29 |
+
<div class="option_group">
|
30 |
+
<p class="form-field">
|
31 |
+
<label for="_qty"><?php _e( 'Quantity', 'wp-events-manager' ) ?></label>
|
32 |
+
<input type="number" min="0" step="1" class="short" name="<?php echo esc_attr( $prefix ) ?>qty" id="_qty" value="<?php echo esc_attr( absint( $qty ) ) ?>">
|
33 |
+
</p>
|
34 |
+
</div>
|
35 |
+
<div class="option_group">
|
36 |
+
<p class="form-field">
|
37 |
+
<label for="_price"><?php printf( '%s(%s)', __( 'Price', 'wp-events-manager' ), wpems_get_currency_symbol() ) ?></label>
|
38 |
+
<input type="number" step="any" min="0" class="short" name="<?php echo esc_attr( $prefix ) ?>price" id="_price" value="<?php echo esc_attr( floatval( $price ) ) ?>" />
|
39 |
+
</p>
|
40 |
+
<p class="event-meta-notice">
|
41 |
+
<?php echo esc_html__( 'Set 0 to make it becomes free event', 'wp-events-manager' ); ?>
|
42 |
+
</p>
|
43 |
+
</div>
|
44 |
+
|
45 |
+
<div class="option_group">
|
46 |
+
<div class="form-field" id="event-time-metabox">
|
47 |
+
<label><?php echo esc_html__( 'Start/End', 'wp-events-manager' ); ?></label>
|
48 |
+
<label hidden for="_date_start"></label>
|
49 |
+
<input type="text" class="short date-start" name="<?php echo esc_attr( $prefix ) ?>date_start" id="_date_start"
|
50 |
+
value="<?php echo $date_start ? esc_attr( $date_start ) : esc_attr( $today ); ?>">
|
51 |
+
<label hidden for="_time_start"></label>
|
52 |
+
<input type="text" class="short time-start" name="<?php echo esc_attr( $prefix ) ?>time_start" id="_time_start"
|
53 |
+
value="<?php echo $time_start ? esc_attr( $time_start ) : '' ?>">
|
54 |
+
<span class="time-connect"> <?php echo esc_html__( 'to', 'wp-events-manager' ); ?></span>
|
55 |
+
<label hidden for="_date_end"></label>
|
56 |
+
<input type="text" class="short date-end" name="<?php echo esc_attr( $prefix ) ?>date_end" id="_date_end"
|
57 |
+
value="<?php echo $date_end ? esc_attr( $date_end ) : esc_attr( $tomorrow ); ?>">
|
58 |
+
<label hidden for="_time_end"></label>
|
59 |
+
<input type="text" class="short time-end" name="<?php echo esc_attr( $prefix ) ?>time_end" id="_time_end"
|
60 |
+
value="<?php echo $time_end ? esc_attr( $time_end ) : '' ?>">
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
<div class="option_group">
|
64 |
+
<p class="form-field">
|
65 |
+
<label for="_location"><?php _e( 'Location', 'wp-events-manager' ) ?></label>
|
66 |
+
<input type="text" class="short" name="<?php echo esc_attr( $prefix ) ?>location" id="_location" value="<?php echo esc_attr( $location ) ?>">
|
67 |
+
</p>
|
68 |
+
<?php if ( !wpems_get_option( 'google_map_api_key' ) ): ?>
|
69 |
+
<p class="event-meta-notice">
|
70 |
+
<?php echo esc_html__( 'You need set up Google Map API Key to show map.', 'wp-events-manager' ); ?>
|
71 |
+
<a href="<?php echo esc_url( get_admin_url() . '/admin.php?page=tp-event-setting&tab=event_general' ); ?>"><?php echo esc_html__( 'Set up here' ) ?></a>
|
72 |
+
</p>
|
73 |
+
<?php endif; ?>
|
74 |
+
</div>
|
75 |
+
<div class="option_group">
|
76 |
+
<p class="form-field">
|
77 |
+
<label for="_shortcode"><?php _e( 'Shortcode', 'wp-events-manager' ) ?></label>
|
78 |
+
<input type="text" class="short" id="_shortcode" value="<?php echo esc_attr( '[wp_event_countdown event_id="' . $post->ID . '"]' ); ?>" readonly>
|
79 |
+
</p>
|
80 |
+
</div>
|
81 |
+
<?php wp_nonce_field( 'event_nonce', 'event-nonce' ); ?>
|
82 |
+
<?php do_action( 'tp_event_admin_event_metabox_after_fields', $post, $prefix ); ?>
|
83 |
+
</div>
|
84 |
+
</div>
|
inc/admin/views/settings/checkbox.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$val = wpems_get_option( $field['id'] );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<input type="hidden" name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>" value="0" />
|
23 |
+
<input type="checkbox" name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>" value="1"
|
24 |
+
<?php echo empty( $val ) ? checked( $field['default'], 1 ) : checked( $val, 1, false ); ?>
|
25 |
+
/>
|
26 |
+
|
27 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
28 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
29 |
+
<?php endif; ?>
|
30 |
+
</td>
|
31 |
+
</tr>
|
inc/admin/views/settings/image-size.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$width = wpems_get_option( $field['id'] . '_width', isset( $field['default']['width'] ) ? $field['default']['width'] : 270 );
|
12 |
+
$height = wpems_get_option( $field['id'] . '_height', isset( $field['default']['height'] ) ? $field['default']['height'] : 270 );
|
13 |
+
?>
|
14 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
15 |
+
<th scope="row">
|
16 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
17 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
18 |
+
<?php echo esc_html( $field['title'] ) ?>
|
19 |
+
</label>
|
20 |
+
<?php endif; ?>
|
21 |
+
</th>
|
22 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
23 |
+
<?php if ( isset( $field['id'] ) && isset( $field['options'] ) ) : ?>
|
24 |
+
|
25 |
+
<?php if ( isset( $field['options']['width'] ) ) : ?>
|
26 |
+
<input
|
27 |
+
type="number"
|
28 |
+
name="<?php echo esc_attr( $field['id'] ) ?>_width"
|
29 |
+
value="<?php echo esc_attr( $width ) ?>"
|
30 |
+
/> x
|
31 |
+
<?php endif; ?>
|
32 |
+
<?php if ( isset( $field['options']['height'] ) ) : ?>
|
33 |
+
<input
|
34 |
+
type="number"
|
35 |
+
name="<?php echo esc_attr( $field['id'] ) ?>_height"
|
36 |
+
value="<?php echo esc_attr( $height ) ?>"
|
37 |
+
/> px
|
38 |
+
<?php endif; ?>
|
39 |
+
|
40 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
41 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
42 |
+
<?php endif; ?>
|
43 |
+
<?php endif; ?>
|
44 |
+
</td>
|
45 |
+
</tr>
|
inc/admin/views/settings/radio.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$selected = wpems_get_option( $field['id'], isset( $field['default'] ) ? $field['default'] : '' );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<?php if ( isset( $field['options'] ) ) : ?>
|
23 |
+
<?php foreach ( $field['options'] as $val => $text ) : ?>
|
24 |
+
|
25 |
+
<label>
|
26 |
+
<input type="radio" name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>"<?php selected( $selected, $val ); ?>/>
|
27 |
+
<?php echo esc_html( $text ) ?>
|
28 |
+
</label>
|
29 |
+
|
30 |
+
<?php endforeach; ?>
|
31 |
+
|
32 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
33 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
34 |
+
<?php endif; ?>
|
35 |
+
<?php endif; ?>
|
36 |
+
</td>
|
37 |
+
</tr>
|
inc/admin/views/settings/section-end.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
echo '</table>';
|
12 |
+
do_action( 'tp_event_after_' . $field['id'] . '_after' );
|
inc/admin/views/settings/section-start.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
if ( isset( $field['title'] ) ) {
|
12 |
+
echo '<h3>' . esc_html( $field['title'] ) . '</h3>';
|
13 |
+
if ( isset( $field['desc'] ) ) {
|
14 |
+
echo '<span class="description">' . esc_html( $field['desc'] ) . '</span>';
|
15 |
+
}
|
16 |
+
do_action( 'tp_event_before_' . $field['id'] . '_fields' );
|
17 |
+
echo '<table class="form-table">';
|
18 |
+
}
|
inc/admin/views/settings/select-page.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$selected = wpems_get_option( $field['id'], 0 );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<?php if ( isset( $field['id'] ) ) : ?>
|
23 |
+
<?php wp_dropdown_pages(
|
24 |
+
array(
|
25 |
+
'show_option_none' => __( 'Select Page', 'wp-events-manager' ),
|
26 |
+
'option_none_value' => 0,
|
27 |
+
'name' => $field['id'],
|
28 |
+
'selected' => $selected
|
29 |
+
)
|
30 |
+
); ?>
|
31 |
+
|
32 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
33 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
34 |
+
<?php endif; ?>
|
35 |
+
<?php endif; ?>
|
36 |
+
</td>
|
37 |
+
</tr>
|
inc/admin/views/settings/select.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$selected = wpems_get_option( $field['id'], isset( $field['default'] ) ? $field['default'] : array() );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<?php if ( isset( $field['options'] ) ) : ?>
|
23 |
+
<select name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?><?php echo $field['type'] === 'multiselect' ? '[]' : '' ?>"
|
24 |
+
id="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>"
|
25 |
+
<?php echo ( $field['type'] === 'multiple' ) ? 'multiple="multiple"' : '' ?>
|
26 |
+
>
|
27 |
+
<?php foreach ( $field['options'] as $val => $text ) : ?>
|
28 |
+
<option value="<?php echo esc_attr( $val ) ?>"
|
29 |
+
<?php echo ( is_array( $selected ) && in_array( $val, $selected ) ) || $selected === $val ? ' selected' : '' ?>
|
30 |
+
>
|
31 |
+
<?php echo esc_html( $text ) ?>
|
32 |
+
</option>
|
33 |
+
<?php endforeach; ?>
|
34 |
+
</select>
|
35 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
36 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
37 |
+
<?php endif; ?>
|
38 |
+
<?php endif; ?>
|
39 |
+
</td>
|
40 |
+
</tr>
|
inc/admin/views/settings/text.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$value = wpems_get_option( $field['id'] ) ? wpems_get_option( $field['id'] ) : esc_attr( $field['default'] );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<input
|
23 |
+
type="<?php echo esc_attr( $field['type'] ) ?>"
|
24 |
+
name="<?php echo esc_attr( $field['id'] ) ?>"
|
25 |
+
value="<?php echo esc_attr( $value ) ?>"
|
26 |
+
class="regular-text"
|
27 |
+
placeholder="<?php echo esc_attr( $field['placeholder'] ) ?>"
|
28 |
+
<?php if ( $field['type'] === 'number' ) : ?>
|
29 |
+
|
30 |
+
<?php echo isset( $field['min'] ) && is_numeric( $field['min'] ) ? ' min="' . esc_attr( $field['min'] ) . '"' : '' ?>
|
31 |
+
<?php echo isset( $field['max'] ) && is_numeric( $field['max'] ) ? ' max="' . esc_attr( $field['max'] ) . '"' : '' ?>
|
32 |
+
<?php echo isset( $field['step'] ) ? ' step="' . esc_attr( $field['step'] ) . '"' : '' ?>
|
33 |
+
|
34 |
+
<?php endif; ?>
|
35 |
+
/>
|
36 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
37 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
38 |
+
<?php endif; ?>
|
39 |
+
</td>
|
40 |
+
</tr>
|
inc/admin/views/settings/textarea.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$content = wpems_get_option( $field['id'] );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<?php if ( isset( $field['id'] ) ) : ?>
|
23 |
+
<?php wp_editor( $content, $field['id'], isset( $field['options'] ) ? $field['options'] : array() ); ?>
|
24 |
+
|
25 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
26 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
27 |
+
<?php endif; ?>
|
28 |
+
<?php endif; ?>
|
29 |
+
</td>
|
30 |
+
</tr>
|
inc/admin/views/settings/yes-no.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
$val = wpems_get_option( $field['id'] );
|
12 |
+
?>
|
13 |
+
<tr valign="top" <?php echo $field['class'] ? 'class="' . $field['class'] . '"' : ''; ?>>
|
14 |
+
<th scope="row">
|
15 |
+
<?php if ( isset( $field['title'] ) ) : ?>
|
16 |
+
<label for="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>">
|
17 |
+
<?php echo esc_html( $field['title'] ) ?>
|
18 |
+
</label>
|
19 |
+
<?php endif; ?>
|
20 |
+
</th>
|
21 |
+
<td class="event-form-field event-form-field-<?php echo esc_attr( $field['type'] ) ?>">
|
22 |
+
<input type="hidden" name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>" value="no" />
|
23 |
+
<input type="checkbox" name="<?php echo isset( $field['id'] ) ? esc_attr( $field['id'] ) : '' ?>" value="yes"
|
24 |
+
<?php echo empty( $val ) ? checked( $field['default'], 'yes' ) : checked( $val, 'yes', false ); ?>
|
25 |
+
/>
|
26 |
+
|
27 |
+
<?php if ( isset( $field['desc'] ) ) : ?>
|
28 |
+
<div class="description"><?php echo esc_html( $field['desc'] ) ?></div>
|
29 |
+
<?php endif; ?>
|
30 |
+
</td>
|
31 |
+
</tr>
|
inc/class-wpems-ajax.php
ADDED
@@ -0,0 +1,218 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Ajax Process
|
9 |
+
*/
|
10 |
+
class WPEMS_Ajax {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
// actions with
|
14 |
+
// key is action ajax: wp_ajax_{action}
|
15 |
+
// value is allow ajax nopriv: wp_ajax_nopriv_{action}
|
16 |
+
$actions = array(
|
17 |
+
'event_remove_notice' => true,
|
18 |
+
'event_auth_register' => false,
|
19 |
+
'event_login_action' => true,
|
20 |
+
'load_form_register' => true
|
21 |
+
);
|
22 |
+
|
23 |
+
foreach ( $actions as $action => $nopriv ) {
|
24 |
+
add_action( 'wp_ajax_' . $action, array( $this, $action ) );
|
25 |
+
if ( $nopriv ) {
|
26 |
+
add_action( 'wp_ajax_nopriv_' . $action, array( $this, $action ) );
|
27 |
+
} else {
|
28 |
+
add_action( 'wp_ajax_nopriv_' . $action, array( $this, 'must_login' ) );
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Remove admin notice
|
35 |
+
*/
|
36 |
+
public function event_remove_notice() {
|
37 |
+
|
38 |
+
if ( is_multisite() ) {
|
39 |
+
update_site_option( 'thimpress_events_show_remove_event_auth_notice', 1 );
|
40 |
+
} else {
|
41 |
+
update_option( 'thimpress_events_show_remove_event_auth_notice', 1 );
|
42 |
+
}
|
43 |
+
wp_send_json( array(
|
44 |
+
'status' => true,
|
45 |
+
'message' => __( 'Remove admin notice successful', 'wp-events-manager' )
|
46 |
+
) );
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
+
/**
|
51 |
+
* load form register
|
52 |
+
* @return html login form if user not logged in || @return html register event form
|
53 |
+
*/
|
54 |
+
public function load_form_register() {
|
55 |
+
if ( empty( $_POST['nonce'] ) || !wp_verify_nonce( $_POST['nonce'], 'event-auth-register-nonce' ) ) {
|
56 |
+
return;
|
57 |
+
}
|
58 |
+
|
59 |
+
$event_id = !empty( $_POST['event_id'] ) ? absint( $_POST['event_id'] ) : 0;
|
60 |
+
|
61 |
+
if ( !$event_id ) {
|
62 |
+
wpems_add_notice( 'error', __( 'Event not found.', 'wp-events-manager' ) );
|
63 |
+
wpems_print_notices();
|
64 |
+
die();
|
65 |
+
} else if ( !is_user_logged_in() ) {
|
66 |
+
wpems_print_notices( 'error', __( 'You must login before register ', 'wp-events-manager' ) . sprintf( ' <strong>%s</strong>', get_the_title( $event_id ) ) );
|
67 |
+
die();
|
68 |
+
} else {
|
69 |
+
$event = new WPEMS_Event( $event_id );
|
70 |
+
$registered_time = $event->booked_quantity( get_current_user_id() );
|
71 |
+
ob_start();
|
72 |
+
if ( get_post_status( $event_id ) === 'tp-event-expired' ) {
|
73 |
+
wpems_print_notices( 'error', sprintf( '%s %s', get_the_title( $event_id ), __( 'has been expired', 'wp-events-manager' ) ) );
|
74 |
+
} else if ( $registered_time && wpems_get_option( 'email_register_times' ) === 'once' && $event->is_free() ) {
|
75 |
+
wpems_print_notices( 'error', __( 'You have registered this event before', 'wp-events-manager' ) );
|
76 |
+
} else if ( !$event->get_slot_available() ) {
|
77 |
+
wpems_print_notices( 'error', __( 'The event is full, the registration is closed', 'wp-events-manager' ) );
|
78 |
+
} else {
|
79 |
+
wpems_get_template( 'loop/booking-form.php', array( 'event_id' => $event_id ) );
|
80 |
+
}
|
81 |
+
echo ob_get_clean();
|
82 |
+
die();
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Login Ajax
|
88 |
+
*/
|
89 |
+
public function event_login_action() {
|
90 |
+
WPEMS_User_Process::process_login();
|
91 |
+
die();
|
92 |
+
}
|
93 |
+
|
94 |
+
// register event
|
95 |
+
public function event_auth_register() {
|
96 |
+
try {
|
97 |
+
// sanitize, validate data
|
98 |
+
if ( $_SERVER['REQUEST_METHOD'] !== 'POST' ) {
|
99 |
+
throw new Exception( __( 'Invalid request', 'wp-events-manager' ) );
|
100 |
+
}
|
101 |
+
|
102 |
+
if ( !isset( $_POST['action'] ) || !check_ajax_referer( 'event_auth_register_nonce', 'event_auth_register_nonce' ) ) {
|
103 |
+
throw new Exception( __( 'Invalid request', 'wp-events-manager' ) );
|
104 |
+
}
|
105 |
+
|
106 |
+
$event_id = false;
|
107 |
+
if ( !isset( $_POST['event_id'] ) || !is_numeric( $_POST['event_id'] ) ) {
|
108 |
+
throw new Exception( __( 'Invalid event request', 'wp-events-manager' ) );
|
109 |
+
} else {
|
110 |
+
$event_id = absint( sanitize_text_field( $_POST['event_id'] ) );
|
111 |
+
}
|
112 |
+
|
113 |
+
$qty = 0;
|
114 |
+
if ( !isset( $_POST['qty'] ) || !is_numeric( $_POST['qty'] ) ) {
|
115 |
+
throw new Exception( __( 'Quantity must integer', 'wp-events-manager' ) );
|
116 |
+
} else {
|
117 |
+
$qty = absint( sanitize_text_field( $_POST['qty'] ) );
|
118 |
+
}
|
119 |
+
|
120 |
+
// End sanitize, validate data
|
121 |
+
// load booking module
|
122 |
+
$booking = WPEMS_Booking::instance();
|
123 |
+
$event = WPEMS_Event::instance( $event_id );
|
124 |
+
|
125 |
+
$user = wp_get_current_user();
|
126 |
+
$registered = $event->booked_quantity( $user->ID );
|
127 |
+
|
128 |
+
if ( $event->is_free() && $registered != 0 && wpems_get_option( 'email_register_times', 'once' ) === 'once' ) {
|
129 |
+
throw new Exception( __( 'You are registered this event.', 'wp-events-manager' ) );
|
130 |
+
}
|
131 |
+
|
132 |
+
$payment_methods = wpems_payment_gateways();
|
133 |
+
|
134 |
+
$payment = isset( $_POST['payment_method'] ) ? sanitize_text_field( $_POST['payment_method'] ) : false;
|
135 |
+
|
136 |
+
// create new book return $booking_id if success and WP Error if fail
|
137 |
+
$args = apply_filters( 'tp_event_create_booking_args', array(
|
138 |
+
'event_id' => $event_id,
|
139 |
+
'qty' => $qty,
|
140 |
+
'price' => (float) $event->get_price() * $qty,
|
141 |
+
'payment_id' => $payment,
|
142 |
+
'currency' => wpems_get_currency()
|
143 |
+
) );
|
144 |
+
|
145 |
+
$payment = !empty( $payment_methods[$payment] ) ? $payment_methods[$payment] : false;
|
146 |
+
|
147 |
+
$return = array();
|
148 |
+
|
149 |
+
if ( $args['price'] > 0 && $payment && !$payment->is_available() ) {
|
150 |
+
throw new Exception( sprintf( '%s %s', get_title(), __( 'is not ready. Please contact administrator to setup payment gateways', 'wp-events-manager' ) ) );
|
151 |
+
}
|
152 |
+
|
153 |
+
if ( $payment->id == 'woo_payment' ) {
|
154 |
+
|
155 |
+
do_action( 'tp_event_register_event_action', $args );
|
156 |
+
$return = $payment->process( $event_id );
|
157 |
+
wp_send_json( $return );
|
158 |
+
|
159 |
+
} else {
|
160 |
+
|
161 |
+
$booking_id = $booking->create_booking( $args, $args['payment_id'] );
|
162 |
+
// create booking result
|
163 |
+
if ( is_wp_error( $booking_id ) ) {
|
164 |
+
throw new Exception( $booking_id->get_error_message() );
|
165 |
+
} else {
|
166 |
+
if ( $args['price'] == 0 ) {
|
167 |
+
// update booking status
|
168 |
+
$book = WPEMS_Booking::instance( $booking_id );
|
169 |
+
$book->update_status( 'pending' );
|
170 |
+
|
171 |
+
// user booking
|
172 |
+
$user = get_userdata( $book->user_id );
|
173 |
+
wpems_add_notice( 'success', sprintf( __( 'Book ID <strong>%s</strong> completed! We\'ll send mail to <strong>%s</strong> when it is approve.', 'wp-events-manager' ), wpems_format_ID( $booking_id ), $user->user_email ) );
|
174 |
+
wp_send_json( apply_filters( 'event_auth_register_ajax_result', array(
|
175 |
+
'status' => true,
|
176 |
+
'url' => wpems_account_url()
|
177 |
+
) ) );
|
178 |
+
} else if ( $payment ) {
|
179 |
+
|
180 |
+
$return = $payment->process( $booking_id );
|
181 |
+
if ( isset( $return['status'] ) && $return['status'] === false ) {
|
182 |
+
wp_delete_post( $booking_id );
|
183 |
+
}
|
184 |
+
wp_send_json( $return );
|
185 |
+
} else {
|
186 |
+
wp_send_json( array(
|
187 |
+
'status' => false,
|
188 |
+
'message' => __( 'Payment method is not available', 'wp-events-manager' )
|
189 |
+
) );
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
} catch ( Exception $e ) {
|
195 |
+
if ( $e ) {
|
196 |
+
wpems_add_notice( 'error', $e->getMessage() );
|
197 |
+
}
|
198 |
+
}
|
199 |
+
wpems_print_notices();
|
200 |
+
$message = ob_get_clean();
|
201 |
+
// allow hook
|
202 |
+
wp_send_json( array(
|
203 |
+
'status' => false,
|
204 |
+
'message' => $message
|
205 |
+
) );
|
206 |
+
die();
|
207 |
+
}
|
208 |
+
|
209 |
+
// ajax nopriv: user is not signin
|
210 |
+
public function must_login() {
|
211 |
+
wp_send_json( array( 'status' => false, 'message' => sprintf( __( 'You Must <a href="%s">Login</a>', 'wp-events-manager' ), tp_event_login_url() ) ) );
|
212 |
+
die();
|
213 |
+
}
|
214 |
+
|
215 |
+
}
|
216 |
+
|
217 |
+
// initialize ajax class process
|
218 |
+
new WPEMS_Ajax();
|
inc/class-wpems-assets.php
ADDED
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* DN_Assets class
|
7 |
+
*/
|
8 |
+
class WPEMS_Assets {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* styles
|
12 |
+
* @var type array
|
13 |
+
*/
|
14 |
+
public static $_styles = array();
|
15 |
+
|
16 |
+
/**
|
17 |
+
* scripts
|
18 |
+
* @var type array
|
19 |
+
*/
|
20 |
+
public static $_scripts = array();
|
21 |
+
|
22 |
+
/**
|
23 |
+
* localize
|
24 |
+
* @var type array
|
25 |
+
*/
|
26 |
+
public static $_localize_scripts = array();
|
27 |
+
|
28 |
+
public static function init() {
|
29 |
+
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) );
|
30 |
+
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) );
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* register script
|
35 |
+
*/
|
36 |
+
public static function register_script( $handle = '', $src = '', $deps = array(), $ver = false, $in_footer = true ) {
|
37 |
+
self::$_scripts[$handle] = array( $handle, self::_get_file_uri( $src ), $deps, $ver, $in_footer );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* register style
|
42 |
+
*/
|
43 |
+
public static function register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
|
44 |
+
self::$_styles[$handle] = array( $handle, self::_get_file_uri( $src ), $deps, $ver, $media );
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* localize_script scripts
|
49 |
+
*
|
50 |
+
* @param type $handle
|
51 |
+
* @param type $name
|
52 |
+
* @param type $data
|
53 |
+
*/
|
54 |
+
public static function localize_script( $handle, $name, $data ) {
|
55 |
+
self::$_localize_scripts[$handle] = array( $handle, $name, $data );
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* frontend enqueue scripts
|
60 |
+
*/
|
61 |
+
public static function enqueue_scripts( $hook ) {
|
62 |
+
/**
|
63 |
+
* Before enqueue scripts
|
64 |
+
*/
|
65 |
+
do_action( 'tp_event_before_enqueue_scripts', $hook );
|
66 |
+
|
67 |
+
wp_enqueue_script( 'jquery' );
|
68 |
+
// wp_dequeue_script( 'jquery-ui-datepicker' );
|
69 |
+
wp_enqueue_script( 'jquery-ui-core' );
|
70 |
+
wp_enqueue_script( 'wp-util' );
|
71 |
+
wp_enqueue_script( 'backbone' );
|
72 |
+
wp_enqueue_script( 'underscore' );
|
73 |
+
|
74 |
+
if ( self::$_scripts ) {
|
75 |
+
foreach ( self::$_scripts as $handle => $param ) {
|
76 |
+
call_user_func_array( 'wp_register_script', $param );
|
77 |
+
if ( array_key_exists( $handle, self::$_localize_scripts ) ) {
|
78 |
+
call_user_func_array( 'wp_localize_script', self::$_localize_scripts[$handle] );
|
79 |
+
}
|
80 |
+
wp_enqueue_script( $handle );
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
if ( self::$_styles ) {
|
85 |
+
foreach ( self::$_styles as $handle => $param ) {
|
86 |
+
call_user_func_array( 'wp_register_style', $param );
|
87 |
+
wp_enqueue_style( $handle );
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* After enqueue scripts
|
93 |
+
*/
|
94 |
+
do_action( 'tp_event_after_enqueue_scripts', $hook );
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Get file uri.
|
99 |
+
* if WP_DEBUG is FALSE will load minify file
|
100 |
+
*/
|
101 |
+
public static function _get_file_uri( $uri = '' ) {
|
102 |
+
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
103 |
+
return $uri;
|
104 |
+
}
|
105 |
+
$file = self::_get_path_by_uri( $uri );
|
106 |
+
$file_name = basename( $file );
|
107 |
+
$parse = explode( '.', $file_name );
|
108 |
+
/**
|
109 |
+
* file's extension '.js' or '.css'
|
110 |
+
*/
|
111 |
+
$file_type = end( $parse );
|
112 |
+
if ( in_array( 'min', $parse ) ) {
|
113 |
+
return $uri;
|
114 |
+
}
|
115 |
+
|
116 |
+
array_pop( $parse );
|
117 |
+
$parse[] = 'min';
|
118 |
+
$parse[] = $file_type;
|
119 |
+
$new_file = implode( '.', $parse );
|
120 |
+
|
121 |
+
$new_uri = str_replace( $file_name, $new_file, $uri );
|
122 |
+
$new_path = self::_get_path_by_uri( $new_uri );
|
123 |
+
if ( file_exists( $new_path ) ) {
|
124 |
+
return $new_uri;
|
125 |
+
}
|
126 |
+
return $uri;
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* get file path by uri
|
131 |
+
*
|
132 |
+
* @param type $uri
|
133 |
+
*/
|
134 |
+
public static function _get_path_by_uri( $uri = '' ) {
|
135 |
+
$base_url = trailingslashit( WPEMS_URI );
|
136 |
+
$path = trailingslashit( WPEMS_PATH );
|
137 |
+
|
138 |
+
/**
|
139 |
+
* file path
|
140 |
+
*/
|
141 |
+
return str_replace( $base_url, $path, $uri );
|
142 |
+
}
|
143 |
+
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* init
|
148 |
+
*/
|
149 |
+
WPEMS_Assets::init();
|
inc/class-wpems-autoloader.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Autoloader {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Path to the includes directory
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
private $include_path = '';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* The Constructor
|
17 |
+
*/
|
18 |
+
public function __construct() {
|
19 |
+
if ( function_exists( "__autoload" ) ) {
|
20 |
+
spl_autoload_register( "__autoload" );
|
21 |
+
}
|
22 |
+
|
23 |
+
spl_autoload_register( array( $this, 'autoload' ) );
|
24 |
+
|
25 |
+
$this->include_path = untrailingslashit( WPEMS_PATH ) . '/inc/';
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Take a class name and turn it into a file name
|
30 |
+
*
|
31 |
+
* @param string $class
|
32 |
+
*
|
33 |
+
* @return string
|
34 |
+
*/
|
35 |
+
private function get_file_name_from_class( $class ) {
|
36 |
+
return 'class-' . str_replace( array( 'tp_', '_' ), array( '', '-' ), $class ) . '.php';
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Include a class file
|
41 |
+
*
|
42 |
+
* @param string $path
|
43 |
+
*
|
44 |
+
* @return bool successful or not
|
45 |
+
*/
|
46 |
+
private function load_file( $path ) {
|
47 |
+
if ( $path && is_readable( $path ) ) {
|
48 |
+
include_once( $path );
|
49 |
+
return true;
|
50 |
+
}
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Auto-load WPEMS classes on demand to reduce memory consumption.
|
56 |
+
*
|
57 |
+
* @param string $class
|
58 |
+
*/
|
59 |
+
public function autoload( $class ) {
|
60 |
+
$class = strtolower( $class );
|
61 |
+
$file = $this->get_file_name_from_class( $class );
|
62 |
+
|
63 |
+
$path = $this->include_path;
|
64 |
+
|
65 |
+
// payment gateways
|
66 |
+
if ( strpos( $class, 'wpems_payment_gateway_' ) === 0 ) {
|
67 |
+
$path = $this->include_path . 'gateways/' . substr( str_replace( '_', '-', $class ), strlen( 'wpems_payment_gateway_' ) ) . '/';
|
68 |
+
}
|
69 |
+
// abstract class
|
70 |
+
if ( strpos( $class, 'wpems_abstract_' ) === 0 ) {
|
71 |
+
$path = $this->include_path . 'abstracts/';
|
72 |
+
}
|
73 |
+
|
74 |
+
// admin metaboxs
|
75 |
+
if ( strpos( $class, 'wpems_admin_metabox_' ) === 0 ) {
|
76 |
+
$path = $this->include_path . 'admin/metaboxes/';
|
77 |
+
}
|
78 |
+
|
79 |
+
// widgets
|
80 |
+
if ( stripos( $class, 'wpems_widget_' ) === 0 ) {
|
81 |
+
$path = $this->include_path . '/widgets/';
|
82 |
+
}
|
83 |
+
|
84 |
+
$this->load_file( $path . $file );
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
new WPEMS_Autoloader();
|
inc/class-wpems-booking.php
ADDED
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* WPEMS_Booking
|
9 |
+
*/
|
10 |
+
class WPEMS_Booking {
|
11 |
+
|
12 |
+
private static $instance = null;
|
13 |
+
public $post = null;
|
14 |
+
public $ID = null;
|
15 |
+
|
16 |
+
public function __construct( $id = null ) {
|
17 |
+
|
18 |
+
if ( is_numeric( $id ) && get_post_type( $id ) === 'event_auth_book' ) {
|
19 |
+
$this->post = get_post( $id );
|
20 |
+
} else if ( $id instanceof WP_Post || is_object( $id ) ) {
|
21 |
+
$this->post = $id;
|
22 |
+
}
|
23 |
+
|
24 |
+
if ( $this->post ) {
|
25 |
+
$this->ID = $this->post->ID;
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Megic method
|
32 |
+
*
|
33 |
+
* @param type $key
|
34 |
+
*
|
35 |
+
* @return mixed
|
36 |
+
*/
|
37 |
+
public function __get( $key = null ) {
|
38 |
+
|
39 |
+
switch ( $key ) {
|
40 |
+
|
41 |
+
default:
|
42 |
+
$result = get_post_meta( $this->ID, 'ea_booking_' . $key, true );
|
43 |
+
break;
|
44 |
+
}
|
45 |
+
|
46 |
+
return $result;
|
47 |
+
}
|
48 |
+
|
49 |
+
// create booking
|
50 |
+
public function create_booking( $args = array(), $payment ) {
|
51 |
+
|
52 |
+
// current user
|
53 |
+
$user = wp_get_current_user();
|
54 |
+
// merge argument
|
55 |
+
$args = wp_parse_args( $args, array(
|
56 |
+
'user_id' => $user->ID,
|
57 |
+
'event_id' => 0,
|
58 |
+
'qty' => 1,
|
59 |
+
'cost' => 0,
|
60 |
+
'payment_id' => false
|
61 |
+
) );
|
62 |
+
$booking_id = wp_insert_post( array(
|
63 |
+
'post_title' => sprintf( __( '%s booking event %s', 'wp-events-manager' ), $user->user_nicename, $args['event_id'] ),
|
64 |
+
'post_content' => sprintf( __( '%s booking event %s with %s slot', 'wp-events-manager' ), $user->user_nicename, $args['event_id'], $args['qty'] ),
|
65 |
+
'post_exceprt' => sprintf( __( '%s booking event %s with %s slot', 'wp-events-manager' ), $user->user_nicename, $args['event_id'], $args['qty'] ),
|
66 |
+
'post_status' => 'ea-pending',
|
67 |
+
'post_type' => 'event_auth_book'
|
68 |
+
) );
|
69 |
+
|
70 |
+
if ( is_wp_error( $booking_id ) ) {
|
71 |
+
return $booking_id;
|
72 |
+
} else {
|
73 |
+
foreach ( $args as $key => $val ) {
|
74 |
+
update_post_meta( $booking_id, 'ea_booking_' . $key, $val );
|
75 |
+
}
|
76 |
+
|
77 |
+
do_action( 'tp_event_create_new_booking', $booking_id, $args );
|
78 |
+
return $booking_id;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
// update status
|
83 |
+
public function update_status( $status = 'ea-completed' ) {
|
84 |
+
if ( !$this->post || $this->post->post_type !== 'event_auth_book' ) {
|
85 |
+
return;
|
86 |
+
}
|
87 |
+
if ( !$this->post || !$this->ID ) {
|
88 |
+
throw new Exception( sprintf( __( 'Booking ID #%s is not exists.', 'wp-events-manager' ), $this->ID ) );
|
89 |
+
}
|
90 |
+
$old_status = get_post_status( $this->ID );
|
91 |
+
|
92 |
+
if ( strpos( $status, 'ea-' ) === false ) {
|
93 |
+
$status = 'ea-' . $status;
|
94 |
+
}
|
95 |
+
|
96 |
+
$id = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );
|
97 |
+
|
98 |
+
if ( $id && !is_wp_error( $id ) ) {
|
99 |
+
// send email or anythings
|
100 |
+
do_action( 'tp_event_updated_status', $id, $old_status, $status );
|
101 |
+
|
102 |
+
do_action( 'tp_event_updated_status_' . $old_status . '_' . $status, $id, $old_status, $status );
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
public static function instance( $id = null ) {
|
107 |
+
$booking_id = null;
|
108 |
+
if ( is_numeric( $id ) && get_post_type( $id ) === 'event_auth_book' ) {
|
109 |
+
$post = get_post( $id );
|
110 |
+
$booking_id = $post->ID;
|
111 |
+
} else if ( $id instanceof WP_Post || is_object( $id ) ) {
|
112 |
+
$booking_id = $id->ID;
|
113 |
+
}
|
114 |
+
|
115 |
+
if ( !empty( self::$instance[$booking_id] ) ) {
|
116 |
+
return self::$instance[$booking_id];
|
117 |
+
}
|
118 |
+
|
119 |
+
return self::$instance[$booking_id] = new self( $booking_id );
|
120 |
+
}
|
121 |
+
|
122 |
+
}
|
inc/class-wpems-event.php
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Event {
|
8 |
+
|
9 |
+
public $post = null;
|
10 |
+
public $ID = null;
|
11 |
+
static $instance = null;
|
12 |
+
|
13 |
+
public function __construct( $id = null ) {
|
14 |
+
if ( is_numeric( $id ) && $id && get_post_type( $id ) === 'tp_event' ) {
|
15 |
+
$this->post = get_post( $id );
|
16 |
+
} else if ( $id instanceof WP_Post || is_object( $id ) ) {
|
17 |
+
$this->post = $id;
|
18 |
+
}
|
19 |
+
|
20 |
+
if ( $this->post ) {
|
21 |
+
$this->ID = $this->post->ID;
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Magic method
|
27 |
+
*
|
28 |
+
* @param type $key
|
29 |
+
*
|
30 |
+
* @return mixed
|
31 |
+
*/
|
32 |
+
public function __get( $key = null ) {
|
33 |
+
$result = null;
|
34 |
+
switch ( $key ) {
|
35 |
+
default:
|
36 |
+
$result = get_post_meta( $this->ID, 'tp_event_' . $key, true );
|
37 |
+
break;
|
38 |
+
}
|
39 |
+
return $result;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* get event title
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function get_title() {
|
47 |
+
return get_the_title( $this->ID );
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* is free
|
52 |
+
* @return type boolean
|
53 |
+
*/
|
54 |
+
public function is_free() {
|
55 |
+
return ( !$this->get_price() ) ? true : false;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* get price
|
60 |
+
* @return type float
|
61 |
+
*/
|
62 |
+
public function get_price() {
|
63 |
+
return floatval( $this->price );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* registered
|
68 |
+
* @global type $wpdb
|
69 |
+
* @return array
|
70 |
+
*/
|
71 |
+
public function load_registered() {
|
72 |
+
global $wpdb;
|
73 |
+
$query = $wpdb->prepare( "
|
74 |
+
SELECT booked.* FROM $wpdb->posts AS booked
|
75 |
+
LEFT JOIN $wpdb->postmeta AS event ON event.post_id = booked.ID
|
76 |
+
LEFT JOIN $wpdb->postmeta AS book_quanity ON book_quanity.post_id = booked.ID
|
77 |
+
LEFT JOIN $wpdb->postmeta AS user_booked ON user_booked.post_id = booked.ID
|
78 |
+
LEFT JOIN $wpdb->users AS user ON user.ID = user_booked.meta_value
|
79 |
+
WHERE booked.post_type = %s
|
80 |
+
AND event.meta_key = %s
|
81 |
+
AND event.meta_value = %d
|
82 |
+
AND user_booked.meta_key = %s
|
83 |
+
AND book_quanity.meta_key = %s
|
84 |
+
", 'event_auth_book', 'ea_booking_event_id', $this->ID, 'ea_booking_user_id', 'ea_booking_qty' );
|
85 |
+
|
86 |
+
return $wpdb->get_results( $query );
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* get available slot
|
91 |
+
* @return type
|
92 |
+
*/
|
93 |
+
public function get_slot_available() {
|
94 |
+
return apply_filters( 'event_slot_available', $this->qty - $this->booked_quantity() );
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* register time
|
99 |
+
* @return init
|
100 |
+
*/
|
101 |
+
public function get_registered_time() {
|
102 |
+
return apply_filters( 'event_registered_time', count( $this->load_registered() ) );
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* get booked quantity
|
107 |
+
* @global type $wpdb
|
108 |
+
*
|
109 |
+
* @param type $user_id
|
110 |
+
*
|
111 |
+
* @return init
|
112 |
+
*/
|
113 |
+
public function booked_quantity( $user_id = null ) {
|
114 |
+
global $wpdb;
|
115 |
+
|
116 |
+
if ( $user_id && is_numeric( $user_id ) ) {
|
117 |
+
$query = $wpdb->prepare( "
|
118 |
+
SELECT SUM( pm.meta_value ) AS qty FROM $wpdb->postmeta AS pm
|
119 |
+
INNER JOIN $wpdb->posts AS book ON book.ID = pm.post_id
|
120 |
+
INNER JOIN $wpdb->postmeta AS pm2 ON pm2.post_id = book.ID
|
121 |
+
INNER JOIN $wpdb->postmeta AS pm3 ON pm3.post_id = book.ID
|
122 |
+
INNER JOIN $wpdb->posts AS event ON event.ID = pm3.meta_value
|
123 |
+
INNER JOIN $wpdb->users AS user ON user.ID = pm2.meta_value
|
124 |
+
WHERE
|
125 |
+
pm.meta_key = %s
|
126 |
+
AND book.post_type = %s
|
127 |
+
AND pm2.meta_key = %s
|
128 |
+
AND pm3.meta_key = %s
|
129 |
+
AND event.ID = %d
|
130 |
+
AND event.post_type = %s
|
131 |
+
AND user.ID = %d
|
132 |
+
", 'ea_booking_qty', 'event_auth_book', 'ea_booking_user_id', 'ea_booking_event_id', $this->ID, 'tp_event', $user_id );
|
133 |
+
} else {
|
134 |
+
$query = $wpdb->prepare( "
|
135 |
+
SELECT SUM( pm.meta_value ) AS qty FROM $wpdb->postmeta AS pm
|
136 |
+
INNER JOIN $wpdb->posts AS book ON book.ID = pm.post_id
|
137 |
+
INNER JOIN $wpdb->postmeta AS pm2 ON pm2.post_id = book.ID
|
138 |
+
INNER JOIN $wpdb->postmeta AS pm3 ON pm3.post_id = book.ID
|
139 |
+
INNER JOIN $wpdb->posts AS event ON event.ID = pm3.meta_value
|
140 |
+
INNER JOIN $wpdb->users AS user ON user.ID = pm2.meta_value
|
141 |
+
WHERE
|
142 |
+
pm.meta_key = %s
|
143 |
+
AND book.post_type = %s
|
144 |
+
AND book.post_status = %s
|
145 |
+
AND pm2.meta_key = %s
|
146 |
+
AND pm3.meta_key = %s
|
147 |
+
AND event.ID = %d
|
148 |
+
AND event.post_type = %s
|
149 |
+
", 'ea_booking_qty', 'event_auth_book', 'ea-completed', 'ea_booking_user_id', 'ea_booking_event_id', $this->ID, 'tp_event' );
|
150 |
+
}
|
151 |
+
|
152 |
+
return apply_filters( 'event_auth_booked_quanity', (int) $wpdb->get_var( $query ) );
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* WPEMS_Event instance
|
157 |
+
*
|
158 |
+
* @param WP_Post $id
|
159 |
+
*
|
160 |
+
* @return type
|
161 |
+
*/
|
162 |
+
public static function instance( $id, $option = null ) {
|
163 |
+
$event_id = false;
|
164 |
+
if ( is_numeric( $id ) && $id && get_post_type( $id ) === 'tp_event' ) {
|
165 |
+
$post = get_post( $id );
|
166 |
+
$event_id = $post->ID;
|
167 |
+
} else if ( $id instanceof WP_Post || is_object( $id ) ) {
|
168 |
+
$event_id = $id->ID;
|
169 |
+
}
|
170 |
+
|
171 |
+
if ( !empty( self::$instance[$event_id] ) ) {
|
172 |
+
return self::$instance[$event_id];
|
173 |
+
}
|
174 |
+
|
175 |
+
return self::$instance[$event_id] = new self( $event_id );
|
176 |
+
}
|
177 |
+
|
178 |
+
}
|
inc/class-wpems-frontend-assets.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
class WPEMS_Frontend_Assets {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Register scripts
|
9 |
+
* @since 1.4.1.4
|
10 |
+
*/
|
11 |
+
public static function init() {
|
12 |
+
add_action( 'tp_event_before_enqueue_scripts', array( __CLASS__, 'register_scripts' ) );
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Register scripts
|
17 |
+
*
|
18 |
+
* @param type $hook
|
19 |
+
*/
|
20 |
+
public static function register_scripts( $hook ) {
|
21 |
+
WPEMS_Assets::register_script( 'wpems-countdown-plugin-js', WPEMS_LIB_URI . '/countdown/js/jquery.plugin.min.js' );
|
22 |
+
WPEMS_Assets::register_script( 'wpems-countdown-js', WPEMS_LIB_URI . '/countdown/js/jquery.countdown.min.js' );
|
23 |
+
WPEMS_Assets::register_style( 'wpems-countdown-css', WPEMS_LIB_URI . '/countdown/css/jquery.countdown.css' );
|
24 |
+
WPEMS_Assets::localize_script( 'wpems-countdown-js', 'WPEMS', wpems_l18n() );
|
25 |
+
|
26 |
+
// google map
|
27 |
+
if ( is_singular( 'tp_event' ) ) {
|
28 |
+
WPEMS_Assets::register_script( 'wpems-google-map', WPEMS_ASSETS_URI . '/js/frontend/google-map.js' );
|
29 |
+
}
|
30 |
+
|
31 |
+
// owl-carousel
|
32 |
+
WPEMS_Assets::register_script( 'wpems-owl-carousel-js', WPEMS_LIB_URI . '/owl-carousel/js/owl.carousel.min.js' );
|
33 |
+
WPEMS_Assets::register_style( 'wpems-owl-carousel-css', WPEMS_LIB_URI . '/owl-carousel/css/owl.carousel.css' );
|
34 |
+
|
35 |
+
// magnific-popup
|
36 |
+
WPEMS_Assets::register_script( 'wpems-magnific-popup-js', WPEMS_LIB_URI . '/magnific-popup/js/jquery.magnific-popup.min.js', array(), WPEMS_VER, true );
|
37 |
+
WPEMS_Assets::register_style( 'wpems-magnific-popup-css', WPEMS_LIB_URI . '/magnific-popup/css/magnific-popup.css', array() );
|
38 |
+
|
39 |
+
// events
|
40 |
+
WPEMS_Assets::register_script( 'wpems-frontend-js', WPEMS_ASSETS_URI . '/js/frontend/events.js' );
|
41 |
+
WPEMS_Assets::register_style( 'wpems-fronted-css', WPEMS_ASSETS_URI . '/css/frontend/events.css' );
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
WPEMS_Frontend_Assets::init();
|
inc/class-wpems-install.php
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Install {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* upgrade store
|
11 |
+
* @var type null || array
|
12 |
+
*/
|
13 |
+
public static $db_upgrade = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Init
|
17 |
+
*/
|
18 |
+
public static function init() {
|
19 |
+
self::$db_upgrade = array(
|
20 |
+
'2.0' => WPEMS_INC . 'admin/upgrades/upgrade-2.0.php',
|
21 |
+
'2.0.8' => WPEMS_INC . 'admin/upgrades/upgrade-2.0.8.php'
|
22 |
+
);
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* register_activation_hook callback
|
27 |
+
*/
|
28 |
+
public static function install() {
|
29 |
+
if ( ! defined( 'WPEMS_INSTALLING' ) ) {
|
30 |
+
define( 'WPEMS_INSTALLING', true );
|
31 |
+
if ( ! function_exists( 'get_plugin_data' ) ) {
|
32 |
+
require_once ABSPATH . '/wp-admin/includes/plugin.php';
|
33 |
+
}
|
34 |
+
|
35 |
+
$active_plugins = array();
|
36 |
+
|
37 |
+
$plugins = array(
|
38 |
+
'tp-event-auth/tp-event-auth.php',
|
39 |
+
'tp-event/tp-event.php'
|
40 |
+
);
|
41 |
+
|
42 |
+
foreach ( $plugins as $plugin ) {
|
43 |
+
if ( is_multisite() ) {
|
44 |
+
deactivate_plugins( $plugin, false, true );
|
45 |
+
} else {
|
46 |
+
deactivate_plugins( $plugin, false, false );
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Update options
|
52 |
+
*/
|
53 |
+
if ( ! get_option( 'thimpress-event-version' ) ) {
|
54 |
+
|
55 |
+
$prefix = 'thimpress_events';
|
56 |
+
$settings = get_option( $prefix );
|
57 |
+
if ( $settings ) {
|
58 |
+
foreach ( $settings as $name => $value ) {
|
59 |
+
if ( is_array( $value ) ) {
|
60 |
+
foreach ( $value as $n => $v ) {
|
61 |
+
if ( $name === 'email' ) {
|
62 |
+
if ( $n != 'email_subject' ) {
|
63 |
+
update_option( $prefix . '_' . $name . '_' . $n, $v );
|
64 |
+
} else {
|
65 |
+
update_option( $prefix . '_' . $n, $v );
|
66 |
+
}
|
67 |
+
} else if ( $name === 'checkout' ) {
|
68 |
+
if ( $n == 'paypal_sanbox_email' ) {
|
69 |
+
update_option( $prefix . '_paypal_sanbox_email', $v );
|
70 |
+
}
|
71 |
+
if ( $n == 'paypal_email' ) {
|
72 |
+
update_option( $prefix . '_paypal_email', $v );
|
73 |
+
}
|
74 |
+
if ( $n == 'paypal_enable' ) {
|
75 |
+
update_option( $prefix . '_paypal_enable', $v );
|
76 |
+
}
|
77 |
+
update_option( $prefix . '_' . $name . '_' . $n, $v );
|
78 |
+
} else {
|
79 |
+
update_option( $prefix . '_' . $n, $v );
|
80 |
+
}
|
81 |
+
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
/**
|
89 |
+
* Upgrade options
|
90 |
+
*/
|
91 |
+
self::upgrade_database();
|
92 |
+
/**
|
93 |
+
* Create Pages
|
94 |
+
*/
|
95 |
+
self::create_pages();
|
96 |
+
/**
|
97 |
+
* Update current version
|
98 |
+
*/
|
99 |
+
update_option( 'thimpress-event-version', WPEMS_VER );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* register_deactivation_hook callback
|
104 |
+
*/
|
105 |
+
public static function uninstall() {
|
106 |
+
if ( is_multisite() ) {
|
107 |
+
delete_site_option( 'thimpress_events_show_remove_event_auth_notice' );
|
108 |
+
} else {
|
109 |
+
delete_option( 'thimpress_events_show_remove_event_auth_notice' );
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Create pages
|
116 |
+
*/
|
117 |
+
public static function create_pages() {
|
118 |
+
$pages = array(
|
119 |
+
'register' => array(
|
120 |
+
'name' => _x( 'user-register', 'Page slug', 'wp-events-manager' ),
|
121 |
+
'title' => _x( 'User Register', 'Page title', 'wp-events-manager' ),
|
122 |
+
'content' => '[' . apply_filters( 'tp_event_register_shortcode_tag', 'wp_event_register' ) . ']'
|
123 |
+
),
|
124 |
+
'login' => array(
|
125 |
+
'name' => _x( 'user-login', 'Page slug', 'wp-events-manager' ),
|
126 |
+
'title' => _x( 'User Login', 'Page title', 'wp-events-manager' ),
|
127 |
+
'content' => '[' . apply_filters( 'tp_event_login_shortcode_tag', 'wp_event_login' ) . ']'
|
128 |
+
),
|
129 |
+
'forgot_password' => array(
|
130 |
+
'name' => _x( 'forgot-password', 'Page slug', 'wp-events-manager' ),
|
131 |
+
'title' => _x( 'Forgot Password', 'Page title', 'wp-events-manager' ),
|
132 |
+
'content' => '[' . apply_filters( 'tp_event_forgot_password_shortcode_tag', 'wp_event_forgot_password' ) . ']'
|
133 |
+
),
|
134 |
+
'reset_password' => array(
|
135 |
+
'name' => _x( 'reset-password', 'Page slug', 'wp-events-manager' ),
|
136 |
+
'title' => _x( 'Reset Password', 'Page title', 'wp-events-manager' ),
|
137 |
+
'content' => '[' . apply_filters( 'tp_event_reset_password_shortcode_tag', 'wp_event_reset_password' ) . ']'
|
138 |
+
),
|
139 |
+
'account' => array(
|
140 |
+
'name' => _x( 'user-account', 'Page slug', 'wp-events-manager' ),
|
141 |
+
'title' => _x( 'User Account', 'Page title', 'wp-events-manager' ),
|
142 |
+
'content' => '[' . apply_filters( 'tp_event_account_shortcode_tag', 'wp_event_account' ) . ']'
|
143 |
+
),
|
144 |
+
);
|
145 |
+
foreach ( $pages as $name => $page ) {
|
146 |
+
wpems_create_page( esc_sql( $page['name'] ), $name . '_page_id', $page['title'], $page['content'], ! empty( $page['parent'] ) ? wpems_get_page_id( $page['parent'] ) : '' );
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Upgrade Database
|
152 |
+
*/
|
153 |
+
public static function upgrade_database() {
|
154 |
+
$old_version = get_option( 'thimpress-event-version' );
|
155 |
+
foreach ( self::$db_upgrade as $ver => $file ) {
|
156 |
+
if ( ! $old_version || version_compare( $old_version, $ver, '<' ) ) {
|
157 |
+
require_once $file;
|
158 |
+
}
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
}
|
163 |
+
|
164 |
+
WPEMS_Install::init();
|
165 |
+
|
166 |
+
// active plugin
|
167 |
+
register_activation_hook( WPEMS_MAIN_FILE, array( 'WPEMS_Install', 'install' ) );
|
168 |
+
register_deactivation_hook( WPEMS_MAIN_FILE, array( 'WPEMS_Install', 'uninstall' ) );
|
inc/class-wpems-payment-gateways.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
class WPEMS_Payment_Gateways {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* gateways method
|
9 |
+
* @var type array
|
10 |
+
*/
|
11 |
+
public $gateways = array();
|
12 |
+
public static $instance = null;
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->init();
|
16 |
+
}
|
17 |
+
|
18 |
+
public function init() {
|
19 |
+
$payment_gateways = array( 'WPEMS_Payment_Gateway_Paypal' );
|
20 |
+
|
21 |
+
foreach ( $payment_gateways as $gateway ) {
|
22 |
+
$gateway = is_string( $gateway ) ? new $gateway : $gateway;
|
23 |
+
$this->gateways[$gateway->id] = $gateway;
|
24 |
+
}
|
25 |
+
|
26 |
+
return $this->gateways;
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Get payment gateways available
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
public function get_payment_gateways() {
|
35 |
+
$gateways = $this->gateways;
|
36 |
+
|
37 |
+
$gateways = apply_filters( 'wpems_payment_gateways', $gateways );
|
38 |
+
|
39 |
+
$available = array();
|
40 |
+
foreach ( $gateways as $id => $gateway ) {
|
41 |
+
if ( $gateway->is_available() ) {
|
42 |
+
$available[$id] = $gateway;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
return $available;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Get payment gateways enable
|
50 |
+
*
|
51 |
+
* @return array
|
52 |
+
*/
|
53 |
+
public function get_payment_gateways_enable() {
|
54 |
+
$gateways = $this->get_payment_gateways();
|
55 |
+
|
56 |
+
$enable = array();
|
57 |
+
foreach ( $gateways as $id => $gateway ) {
|
58 |
+
if ( $gateway->is_enable() ) {
|
59 |
+
$enable[$id] = $gateway;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
return $enable;
|
63 |
+
}
|
64 |
+
|
65 |
+
public static function instance() {
|
66 |
+
if ( !self::$instance ) {
|
67 |
+
self::$instance = new self();
|
68 |
+
}
|
69 |
+
return self::$instance;
|
70 |
+
}
|
71 |
+
|
72 |
+
}
|
73 |
+
|
74 |
+
WPEMS_Payment_Gateways::instance();
|
inc/class-wpems-post-types.php
ADDED
@@ -0,0 +1,494 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
exit();
|
4 |
+
}
|
5 |
+
|
6 |
+
/**
|
7 |
+
* register all post type
|
8 |
+
*/
|
9 |
+
class WPEMS_Custom_Post_Types {
|
10 |
+
|
11 |
+
public function __construct() {
|
12 |
+
|
13 |
+
// register post types
|
14 |
+
add_action( 'after_setup_theme', array( $this, 'register_event_post_type' ) );
|
15 |
+
add_action( 'init', array( $this, 'register_booking_post_type' ) );
|
16 |
+
|
17 |
+
// register event category
|
18 |
+
add_action( 'init', array( $this, 'register_event_category_tax' ) );
|
19 |
+
|
20 |
+
// register post type status
|
21 |
+
add_action( 'init', array( $this, 'register_event_status' ) );
|
22 |
+
add_action( 'init', array( $this, 'register_booking_status' ) );
|
23 |
+
|
24 |
+
// custom event post type column
|
25 |
+
add_filter( 'manage_tp_event_posts_columns', array( $this, 'event_columns' ) );
|
26 |
+
add_action( 'manage_tp_event_posts_custom_column', array( $this, 'event_column_content' ), 10, 2 );
|
27 |
+
add_filter( 'manage_edit-tp_event_sortable_columns', array( $this, 'sortable_columns' ) );
|
28 |
+
|
29 |
+
add_filter( 'manage_edit-tp_event_category_columns', array( $this, 'event_category_columns' ) );
|
30 |
+
|
31 |
+
add_filter( 'manage_event_auth_book_posts_columns', array( $this, 'booking_columns' ) );
|
32 |
+
add_action( 'manage_event_auth_book_posts_custom_column', array( $this, 'booking_column_content' ), 10, 2 );
|
33 |
+
|
34 |
+
add_filter( 'post_updated_messages', array( $this, 'update_message' ) );
|
35 |
+
// filter nav-menu
|
36 |
+
add_filter( 'nav_menu_meta_box_object', array( $this, 'nav_menu_event' ) );
|
37 |
+
|
38 |
+
if ( is_admin() ) {
|
39 |
+
// filter booking event by user ID
|
40 |
+
add_filter( 'parse_query', array( $this, 'request_query' ) );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Register event post type
|
46 |
+
*/
|
47 |
+
public function register_event_post_type() {
|
48 |
+
// post type
|
49 |
+
$labels = array(
|
50 |
+
'name' => _x( 'Events', 'post type general name', 'wp-events-manager' ),
|
51 |
+
'singular_name' => _x( 'Event', 'post type singular name', 'wp-events-manager' ),
|
52 |
+
'menu_name' => _x( 'Events', 'admin menu', 'wp-events-manager' ),
|
53 |
+
'name_admin_bar' => _x( 'Event', 'add new on admin bar', 'wp-events-manager' ),
|
54 |
+
'add_new' => _x( 'Add New', 'event', 'wp-events-manager' ),
|
55 |
+
'add_new_item' => __( 'Add New Event', 'wp-events-manager' ),
|
56 |
+
'new_item' => __( 'New Event', 'wp-events-manager' ),
|
57 |
+
'edit_item' => __( 'Edit Event', 'wp-events-manager' ),
|
58 |
+
'view_item' => __( 'View Event', 'wp-events-manager' ),
|
59 |
+
'all_items' => __( 'Events', 'wp-events-manager' ),
|
60 |
+
'search_items' => __( 'Search Events', 'wp-events-manager' ),
|
61 |
+
'parent_item_colon' => __( 'Parent Events:', 'wp-events-manager' ),
|
62 |
+
'not_found' => __( 'No events found.', 'wp-events-manager' ),
|
63 |
+
'not_found_in_trash' => __( 'No events found in Trash.', 'wp-events-manager' )
|
64 |
+
);
|
65 |
+
|
66 |
+
$args = array(
|
67 |
+
'labels' => $labels,
|
68 |
+
'description' => __( 'Event post type.', 'wp-events-manager' ),
|
69 |
+
'public' => true,
|
70 |
+
'publicly_queryable' => true,
|
71 |
+
'show_ui' => true,
|
72 |
+
'show_in_menu' => 'tp-event-setting',
|
73 |
+
'query_var' => true,
|
74 |
+
'rewrite' => array( 'slug' => _x( 'events', 'URL slug', 'wp-events-manager' ) ),
|
75 |
+
'taxonomies' => array( 'tp_event_category' ),
|
76 |
+
'capability_type' => 'post',
|
77 |
+
'map_meta_cap' => true,
|
78 |
+
'has_archive' => true,
|
79 |
+
'hierarchical' => true,
|
80 |
+
'menu_position' => 8,
|
81 |
+
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
|
82 |
+
);
|
83 |
+
|
84 |
+
$args = apply_filters( 'tp_event_register_event_post_type_args', $args );
|
85 |
+
register_post_type( 'tp_event', $args );
|
86 |
+
}
|
87 |
+
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Register booking event post type
|
91 |
+
*/
|
92 |
+
public function register_booking_post_type() {
|
93 |
+
// event auth book
|
94 |
+
$labels = array(
|
95 |
+
'name' => _x( 'Bookings', 'post type general name', 'wp-events-manager' ),
|
96 |
+
'singular_name' => _x( 'Booking', 'post type singular name', 'wp-events-manager' ),
|
97 |
+
'menu_name' => _x( 'Bookings', 'admin menu', 'wp-events-manager' ),
|
98 |
+
'name_admin_bar' => _x( 'Booking', 'add new on admin bar', 'wp-events-manager' ),
|
99 |
+
'add_new' => _x( 'Add New', 'book', 'wp-events-manager' ),
|
100 |
+
'add_new_item' => __( 'Add New Booking', 'wp-events-manager' ),
|
101 |
+
'new_item' => __( 'New Booking', 'wp-events-manager' ),
|
102 |
+
'edit_item' => __( 'Booking Details', 'wp-events-manager' ),
|
103 |
+
'view_item' => __( 'View Booking', 'wp-events-manager' ),
|
104 |
+
'all_items' => __( 'Bookings', 'wp-events-manager' ),
|
105 |
+
'search_items' => __( 'Search Books', 'wp-events-manager' ),
|
106 |
+
'parent_item_colon' => __( 'Parent Books:', 'wp-events-manager' ),
|
107 |
+
'not_found' => __( 'No books found.', 'wp-events-manager' ),
|
108 |
+
'not_found_in_trash' => __( 'No books found in Trash.', 'wp-events-manager' )
|
109 |
+
);
|
110 |
+
|
111 |
+
$args = array(
|
112 |
+
'labels' => $labels,
|
113 |
+
'description' => __( 'Description.', 'wp-events-manager' ),
|
114 |
+
'public' => true,
|
115 |
+
'publicly_queryable' => false,
|
116 |
+
'show_in_admin_bar' => false,
|
117 |
+
'show_ui' => true,
|
118 |
+
'show_in_menu' => 'tp-event-setting',
|
119 |
+
'query_var' => true,
|
120 |
+
'rewrite' => array( 'slug' => _x( 'event-book', 'URL slug', 'wp-events-manager' ) ),
|
121 |
+
'capability_type' => 'post',
|
122 |
+
'has_archive' => false,
|
123 |
+
'hierarchical' => false,
|
124 |
+
'menu_position' => null,
|
125 |
+
'supports' => false,
|
126 |
+
'capabilities' => array(
|
127 |
+
'create_posts' => 'do_not_allow'
|
128 |
+
),
|
129 |
+
'map_meta_cap' => true
|
130 |
+
);
|
131 |
+
|
132 |
+
$args = apply_filters( 'event_auth_book_args', $args );
|
133 |
+
register_post_type( 'event_auth_book', $args );
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Register event category taxonomy
|
138 |
+
*/
|
139 |
+
public function register_event_category_tax() {
|
140 |
+
|
141 |
+
$labels = array(
|
142 |
+
'name' => _x( 'Event Categories', 'taxonomy general name', 'wp-events-manager' ),
|
143 |
+
'singular_name' => _x( 'Event Category', 'taxonomy singular name', 'wp-events-manager' ),
|
144 |
+
'search_items' => __( 'Search Categories', 'wp-events-manager' ),
|
145 |
+
'all_items' => __( 'All Categories', 'wp-events-manager' ),
|
146 |
+
'parent_item' => __( 'Parent Category', 'wp-events-manager' ),
|
147 |
+
'parent_item_colon' => __( 'Parent Category:', 'wp-events-manager' ),
|
148 |
+
'edit_item' => __( 'Edit Category', 'wp-events-manager' ),
|
149 |
+
'update_item' => __( 'Update Category', 'wp-events-manager' ),
|
150 |
+
'add_new_item' => __( 'Add New Category', 'wp-events-manager' ),
|
151 |
+
'new_item_name' => __( 'New Category Name', 'wp-events-manager' ),
|
152 |
+
'menu_name' => __( 'Category', 'wp-events-manager' ),
|
153 |
+
);
|
154 |
+
|
155 |
+
$args = array(
|
156 |
+
'public' => true,
|
157 |
+
'hierarchical' => true,
|
158 |
+
'labels' => $labels,
|
159 |
+
'show_ui' => true,
|
160 |
+
'show_admin_column' => true,
|
161 |
+
'query_var' => true,
|
162 |
+
'rewrite' => array( 'slug' => 'tp-event-category' ),
|
163 |
+
);
|
164 |
+
|
165 |
+
register_taxonomy( 'tp_event_category', array( 'tp_event' ), $args );
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Register event status
|
170 |
+
*/
|
171 |
+
public function register_event_status() {
|
172 |
+
// post status // upcoming // expired // happening
|
173 |
+
|
174 |
+
register_post_status( 'tp-event-upcoming', apply_filters( 'tp_event_register_upcoming_status_args', array(
|
175 |
+
'label' => _x( 'Upcoming', 'wp-events-manager' ),
|
176 |
+
'public' => true,
|
177 |
+
'exclude_from_search' => false,
|
178 |
+
'show_in_admin_all_list' => true,
|
179 |
+
'show_in_admin_status_list' => true,
|
180 |
+
'label_count' => _n_noop( 'Upcoming <span class="count">(%s)</span>', 'Upcoming <span class="count">(%s)</span>' ),
|
181 |
+
) ) );
|
182 |
+
|
183 |
+
register_post_status( 'tp-event-happenning', apply_filters( 'tp_event_register_happening_status_args', array(
|
184 |
+
'label' => _x( 'Happening', 'wp-events-manager' ),
|
185 |
+
'public' => true,
|
186 |
+
'exclude_from_search' => false,
|
187 |
+
'show_in_admin_all_list' => true,
|
188 |
+
'show_in_admin_status_list' => true,
|
189 |
+
'label_count' => _n_noop( 'Happening <span class="count">(%s)</span>', 'Happening <span class="count">(%s)</span>' ),
|
190 |
+
) ) );
|
191 |
+
|
192 |
+
register_post_status( 'tp-event-expired', apply_filters( 'tp_event_register_expired_status_args', array(
|
193 |
+
'label' => _x( 'Expired', 'wp-events-manager' ),
|
194 |
+
'public' => true,
|
195 |
+
'exclude_from_search' => false,
|
196 |
+
'show_in_admin_all_list' => true,
|
197 |
+
'show_in_admin_status_list' => true,
|
198 |
+
'label_count' => _n_noop( 'Expired <span class="count">(%s)</span>', 'Expired <span class="count">(%s)</span>' ),
|
199 |
+
) ) );
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* Register booking status
|
204 |
+
*/
|
205 |
+
public function register_booking_status() {
|
206 |
+
|
207 |
+
register_post_status( 'ea-cancelled', apply_filters( 'event_auth_register_status_cancelled', array(
|
208 |
+
'label' => _x( 'Cancelled', 'Booking status', 'wp-events-manager' ),
|
209 |
+
'public' => true,
|
210 |
+
'exclude_from_search' => false,
|
211 |
+
'show_in_admin_all_list' => true,
|
212 |
+
'show_in_admin_status_list' => true,
|
213 |
+
'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>' ),
|
214 |
+
) ) );
|
215 |
+
|
216 |
+
register_post_status( 'ea-pending', apply_filters( 'event_auth_register_status_pending', array(
|
217 |
+
'label' => _x( 'Pending', 'Booking status', 'wp-events-manager' ),
|
218 |
+
'public' => true,
|
219 |
+
'exclude_from_search' => false,
|
220 |
+
'show_in_admin_all_list' => true,
|
221 |
+
'show_in_admin_status_list' => true,
|
222 |
+
'label_count' => _n_noop( 'Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>' ),
|
223 |
+
) ) );
|
224 |
+
|
225 |
+
register_post_status( 'ea-processing', apply_filters( 'event_auth_register_status_processing', array(
|
226 |
+
'label' => _x( 'Processing', 'Booking status', 'wp-events-manager' ),
|
227 |
+
'public' => true,
|
228 |
+
'exclude_from_search' => false,
|
229 |
+
'show_in_admin_all_list' => true,
|
230 |
+
'show_in_admin_status_list' => true,
|
231 |
+
'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>' ),
|
232 |
+
) ) );
|
233 |
+
|
234 |
+
register_post_status( 'ea-completed', apply_filters( 'event_auth_register_status_completed', array(
|
235 |
+
'label' => _x( 'Completed', 'Booking status', 'wp-events-manager' ),
|
236 |
+
'public' => true,
|
237 |
+
'exclude_from_search' => false,
|
238 |
+
'show_in_admin_all_list' => true,
|
239 |
+
'show_in_admin_status_list' => true,
|
240 |
+
'label_count' => _n_noop( 'Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>' ),
|
241 |
+
) ) );
|
242 |
+
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Custom event columns.
|
247 |
+
*
|
248 |
+
* @param $columns
|
249 |
+
*
|
250 |
+
* @return mixed
|
251 |
+
*/
|
252 |
+
public function event_columns( $columns ) {
|
253 |
+
unset( $columns['comments'], $columns['date'] );
|
254 |
+
$columns['start'] = __( 'Start', 'wp-events-manager' );
|
255 |
+
$columns['end'] = __( 'End', 'wp-events-manager' );
|
256 |
+
$columns['status'] = __( 'Status', 'wp-events-manager' );
|
257 |
+
$columns['price'] = __( 'Price', 'wp-events-manager' );
|
258 |
+
$columns['booked_slot'] = __( 'Booked / Total', 'wp-events-manager' );
|
259 |
+
|
260 |
+
return $columns;
|
261 |
+
}
|
262 |
+
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Custom event category columns.
|
266 |
+
*
|
267 |
+
* @param $columns
|
268 |
+
*
|
269 |
+
* @return mixed
|
270 |
+
*/
|
271 |
+
public function event_category_columns( $columns ) {
|
272 |
+
unset( $columns['posts'] );
|
273 |
+
|
274 |
+
return $columns;
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Event custom columns content
|
279 |
+
*
|
280 |
+
* @param type $column
|
281 |
+
* @param type $post_id
|
282 |
+
*/
|
283 |
+
public function event_column_content( $column, $post_id ) {
|
284 |
+
$event = WPEMS_Event::instance( $post_id );
|
285 |
+
switch ( $column ) {
|
286 |
+
case 'status' :
|
287 |
+
$status = get_post_status_object( get_post_status( $post_id ) );
|
288 |
+
echo $status->label;
|
289 |
+
break;
|
290 |
+
case 'start' :
|
291 |
+
$date_start = get_post_meta( $post_id, 'tp_event_date_start', true );
|
292 |
+
$time_start = get_post_meta( $post_id, 'tp_event_time_start', true );
|
293 |
+
if ( $date_start ) {
|
294 |
+
printf( '%s', date( get_option( 'date_format' ), strtotime( $date_start ) ) );
|
295 |
+
}
|
296 |
+
if ( $time_start ) {
|
297 |
+
printf( ' %s', date( get_option( 'time_format' ), strtotime( $time_start ) ) );
|
298 |
+
}
|
299 |
+
break;
|
300 |
+
case 'end' :
|
301 |
+
$date_end = get_post_meta( $post_id, 'tp_event_date_end', true );
|
302 |
+
$time_end = get_post_meta( $post_id, 'tp_event_time_end', true );
|
303 |
+
if ( $date_end ) {
|
304 |
+
printf( '%s', date( get_option( 'date_format' ), strtotime( $date_end ) ) );
|
305 |
+
}
|
306 |
+
if ( $time_end ) {
|
307 |
+
printf( ' %s', date( get_option( 'time_format' ), strtotime( $time_end ) ) );
|
308 |
+
}
|
309 |
+
break;
|
310 |
+
case 'price':
|
311 |
+
if ( $event->is_free() ) {
|
312 |
+
echo '<span class="event_auth_event_type">' . __( 'Free', 'wp-events-manager' ) . '</span>';
|
313 |
+
} else {
|
314 |
+
echo sprintf( __( '<span class="event_auth_event_type">%s/%s</span>', 'wp-events-manager' ), wpems_format_price( $event->get_price() ), __( 'slot', 'wp-events-manager' ) );
|
315 |
+
}
|
316 |
+
break;
|
317 |
+
case 'booked_slot':
|
318 |
+
$total = get_post_meta( $post_id, 'tp_event_qty', true ) ? get_post_meta( $post_id, 'tp_event_qty', true ) : esc_html__( 'Unlimited', 'wp-events-manager' );
|
319 |
+
echo sprintf( '%s / %s', $event->booked_quantity(), $total );
|
320 |
+
break;
|
321 |
+
default:
|
322 |
+
break;
|
323 |
+
}
|
324 |
+
}
|
325 |
+
|
326 |
+
|
327 |
+
/**
|
328 |
+
* Add booking custom columns
|
329 |
+
*
|
330 |
+
* @return array
|
331 |
+
*/
|
332 |
+
public function booking_columns() {
|
333 |
+
$columns = array();
|
334 |
+
// set
|
335 |
+
$columns['cb'] = __( '<label class="screen-reader-text __web-inspector-hide-shortcut__" for="cb-select-all-1">Select All</label><input id="cb-select-all-1" type="checkbox">' );
|
336 |
+
$columns['ID'] = __( 'ID', 'wp-events-manager' );
|
337 |
+
$columns['event'] = __( 'Event', 'wp-events-manager' );
|
338 |
+
$columns['user'] = __( 'User', 'wp-events-manager' );
|
339 |
+
$columns['booking_date'] = __( 'Date', 'wp-events-manager' );
|
340 |
+
$columns['cost'] = __( 'Cost', 'wp-events-manager' );
|
341 |
+
$columns['slot'] = __( 'Quantity', 'wp-events-manager' );
|
342 |
+
$columns['status'] = __( 'Status', 'wp-events-manager' );
|
343 |
+
|
344 |
+
return $columns;
|
345 |
+
}
|
346 |
+
|
347 |
+
/**
|
348 |
+
* Booking custom columns content
|
349 |
+
*
|
350 |
+
* @param $column
|
351 |
+
* @param $booking_id
|
352 |
+
*/
|
353 |
+
public function booking_column_content( $column, $booking_id ) {
|
354 |
+
$booking = WPEMS_Booking::instance( $booking_id );
|
355 |
+
switch ( $column ) {
|
356 |
+
case 'ID':
|
357 |
+
echo sprintf( '<a href="%s">%s</a>', get_edit_post_link( $booking->ID ), wpems_format_ID( $booking_id ) );
|
358 |
+
break;
|
359 |
+
case 'event':
|
360 |
+
echo sprintf( '<a href="%s">%s</a>', get_edit_post_link( $booking->event_id ), get_the_title( $booking->event_id ) );
|
361 |
+
break;
|
362 |
+
case 'user':
|
363 |
+
$user = get_userdata( $booking->user_id );
|
364 |
+
$return = array();
|
365 |
+
$return[] = sprintf( __( '<a href="%s">%s</a>', 'wp-events-manager' ), admin_url( 'admin.php?page=tp-event-users&user_id=' . $booking->user_id ), $user->display_name );
|
366 |
+
$return = implode( '', $return );
|
367 |
+
echo $return;
|
368 |
+
break;
|
369 |
+
case 'booking_date':
|
370 |
+
echo get_the_date( '', $booking->ID );
|
371 |
+
break;
|
372 |
+
case 'cost':
|
373 |
+
echo $booking->price > 0 ? wpems_format_price( $booking->price ) : __( 'Free', 'wp-events-manager' );
|
374 |
+
break;
|
375 |
+
case 'slot':
|
376 |
+
echo $booking->qty;
|
377 |
+
break;
|
378 |
+
case 'status':
|
379 |
+
$return = array();
|
380 |
+
$return[] = sprintf( '%s', wpems_booking_status( $booking_id ) );
|
381 |
+
$return[] = $booking->payment_id ? '<p>' . __( sprintf( '(via %s)', wpems_get_payment_title( $booking->payment_id ) ), 'wp-events-manager' ) . '</p>' : '';
|
382 |
+
$return = implode( '', $return );
|
383 |
+
echo $return;
|
384 |
+
break;
|
385 |
+
default:
|
386 |
+
break;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* sortable columns
|
392 |
+
*
|
393 |
+
* @param type $columns
|
394 |
+
*
|
395 |
+
* @return array
|
396 |
+
*/
|
397 |
+
public function sortable_columns( $columns ) {
|
398 |
+
return wp_parse_args( $columns, array( 'start' => 'start', 'end' => 'end' ) );
|
399 |
+
}
|
400 |
+
|
401 |
+
/**
|
402 |
+
* Filter booking event by user ID
|
403 |
+
*
|
404 |
+
* @param $query
|
405 |
+
*
|
406 |
+
* @return mixed
|
407 |
+
*/
|
408 |
+
public function request_query( $query ) {
|
409 |
+
global $typenow, $wp_query, $wp_post_statuses;
|
410 |
+
|
411 |
+
if ( isset( $_GET['user_id'] ) && 'event_auth_book' === $typenow ) {
|
412 |
+
// Status
|
413 |
+
$query->query_vars['meta_key'] = 'ea_booking_user_id';
|
414 |
+
$query->query_vars['meta_value'] = absint( sanitize_text_field( $_GET['user_id'] ) );
|
415 |
+
}
|
416 |
+
|
417 |
+
return $query;
|
418 |
+
}
|
419 |
+
|
420 |
+
/**
|
421 |
+
* Filter nav-menu
|
422 |
+
*
|
423 |
+
* @param null $object
|
424 |
+
*
|
425 |
+
* @return null
|
426 |
+
*/
|
427 |
+
public function nav_menu_event( $object = null ) {
|
428 |
+
if ( isset( $object->name ) && $object->name === 'tp_event' ) {
|
429 |
+
// default query
|
430 |
+
$object->_default_query = array(
|
431 |
+
'post_status' => array(
|
432 |
+
'tp-event-upcoming',
|
433 |
+
'tp-event-happenning',
|
434 |
+
'tp-event-expired'
|
435 |
+
)
|
436 |
+
);
|
437 |
+
}
|
438 |
+
|
439 |
+
return $object;
|
440 |
+
}
|
441 |
+
|
442 |
+
/**
|
443 |
+
* update post message
|
444 |
+
*
|
445 |
+
* @param type $messages
|
446 |
+
*
|
447 |
+
* @return type array
|
448 |
+
*/
|
449 |
+
public function update_message( $messages ) {
|
450 |
+
$post = get_post();
|
451 |
+
$post_type = get_post_type( $post );
|
452 |
+
$post_type_object = get_post_type_object( $post_type );
|
453 |
+
if ( $post_type !== 'tp_event' ) {
|
454 |
+
return $messages;
|
455 |
+
}
|
456 |
+
$messages['tp_event'] = array(
|
457 |
+
0 => '', // Unused. Messages start at index 1.
|
458 |
+
1 => __( 'Event updated.', 'wp-events-manager' ),
|
459 |
+
2 => __( 'Custom field updated.', 'wp-events-manager' ),
|
460 |
+
3 => __( 'Custom field deleted.', 'wp-events-manager' ),
|
461 |
+
4 => __( 'Event updated.', 'wp-events-manager' ),
|
462 |
+
/* translators: %s: date and time of the revision */
|
463 |
+
5 => isset( $_GET['revision'] ) ? sprintf( __( 'Book restored to revision from %s', 'wp-events-manager' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
|
464 |
+
6 => __( 'Event updated.', 'wp-events-manager' ),
|
465 |
+
7 => __( 'Event saved.', 'wp-events-manager' ),
|
466 |
+
8 => __( 'Event submitted.', 'wp-events-manager' ),
|
467 |
+
9 => sprintf(
|
468 |
+
__( 'Event scheduled for: <strong>%1$s</strong>.', 'wp-events-manager' ),
|
469 |
+
// translators: Publish box date format, see http://php.net/date
|
470 |
+
date_i18n( __( 'M j, Y @ G:i', 'wp-events-manager' ), strtotime( $post->post_date ) )
|
471 |
+
),
|
472 |
+
10 => __( 'Event draft updated.', 'wp-events-manager' )
|
473 |
+
);
|
474 |
+
|
475 |
+
if ( $post_type_object->publicly_queryable ) {
|
476 |
+
$permalink = get_permalink( $post->ID );
|
477 |
+
|
478 |
+
$view_link = sprintf( ' <a href="%s">%s</a>', esc_url( $permalink ), __( 'View event', 'wp-events-manager' ) );
|
479 |
+
$messages[ $post_type ][1] .= $view_link;
|
480 |
+
$messages[ $post_type ][6] .= $view_link;
|
481 |
+
$messages[ $post_type ][9] .= $view_link;
|
482 |
+
|
483 |
+
$preview_permalink = add_query_arg( 'preview', 'true', $permalink );
|
484 |
+
$preview_link = sprintf( ' <a target="_blank" href="%s">%s</a>', esc_url( $preview_permalink ), __( 'Preview event', 'wp-events-manager' ) );
|
485 |
+
$messages[ $post_type ][8] .= $preview_link;
|
486 |
+
$messages[ $post_type ][10] .= $preview_link;
|
487 |
+
}
|
488 |
+
|
489 |
+
return $messages;
|
490 |
+
}
|
491 |
+
|
492 |
+
}
|
493 |
+
|
494 |
+
new WPEMS_Custom_Post_Types();
|
inc/class-wpems-session.php
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Description of session
|
4 |
+
*
|
5 |
+
* @author ducnvtt
|
6 |
+
*/
|
7 |
+
|
8 |
+
class WPEMS_Session {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* array key of session or cookie
|
12 |
+
* @var type string
|
13 |
+
*/
|
14 |
+
private $_name = null;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* is change is TRUE if has change $_data
|
18 |
+
* @var type bool
|
19 |
+
*/
|
20 |
+
private $_is_changed = false;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* session data
|
24 |
+
* @var type array
|
25 |
+
*/
|
26 |
+
private $_data = array();
|
27 |
+
|
28 |
+
/**
|
29 |
+
* live time of cookie
|
30 |
+
* @var type timestamp
|
31 |
+
*/
|
32 |
+
private $_live_time = null;
|
33 |
+
|
34 |
+
public function __construct() {
|
35 |
+
$this->_name = 'event_auth_session_' . COOKIEHASH;
|
36 |
+
$this->_data = $this->get_session_data();
|
37 |
+
add_action( 'shutdown', array( $this, 'maybe_save_data' ), 0 );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* get data
|
42 |
+
*
|
43 |
+
* @param type $name
|
44 |
+
*/
|
45 |
+
public function __get( $name ) {
|
46 |
+
$this->get( $name );
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* set data
|
51 |
+
*
|
52 |
+
* @param type $name
|
53 |
+
* @param type $value
|
54 |
+
*/
|
55 |
+
public function __set( $name, $value ) {
|
56 |
+
$this->set( $name, $value );
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* isset array key data
|
61 |
+
*
|
62 |
+
* @param type $name
|
63 |
+
*
|
64 |
+
* @return type bool
|
65 |
+
*/
|
66 |
+
public function __isset( $name ) {
|
67 |
+
return isset( $this->_data[$name] );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* unset item data
|
72 |
+
*
|
73 |
+
* @param type $name
|
74 |
+
*/
|
75 |
+
public function __unset( $name ) {
|
76 |
+
if ( isset( $this->_data[$name] ) ) {
|
77 |
+
unset( $this->_data[$name] );
|
78 |
+
$this->_is_changed = true;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* get data
|
84 |
+
*
|
85 |
+
* @param type $name
|
86 |
+
* @param type $default
|
87 |
+
*
|
88 |
+
* @return type
|
89 |
+
*/
|
90 |
+
public function get( $name = null, $default = null ) {
|
91 |
+
return isset( $this->_data[$name] ) ? maybe_unserialize( $this->_data[$name] ) : $default;
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* set data
|
96 |
+
*
|
97 |
+
* @param type $name
|
98 |
+
* @param type $value
|
99 |
+
*/
|
100 |
+
public function set( $name = '', $value = '' ) {
|
101 |
+
if ( $name && $value !== $this->get( $name ) ) {
|
102 |
+
$this->_data[$name] = maybe_serialize( $value );
|
103 |
+
$this->_is_changed = true;
|
104 |
+
$this->maybe_save_data();
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* save session data
|
110 |
+
*/
|
111 |
+
public function maybe_save_data() {
|
112 |
+
if ( $this->_is_changed ) {
|
113 |
+
$_SESSION[$this->_name] = maybe_serialize( $this->_data );
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* get session data
|
119 |
+
* @return array
|
120 |
+
*/
|
121 |
+
private function get_session_data() {
|
122 |
+
return isset( $_SESSION[$this->_name] ) ? maybe_unserialize( $_SESSION[$this->_name] ) : array();
|
123 |
+
}
|
124 |
+
|
125 |
+
}
|
inc/class-wpems-settings.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit();
|
4 |
+
}
|
5 |
+
|
6 |
+
class WPEMS_Settings {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* $_options
|
10 |
+
* @var null
|
11 |
+
*/
|
12 |
+
public $_options = null;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* prefix option name
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
public $_prefix = 'thimpress_events';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* _instance
|
22 |
+
* @var null
|
23 |
+
*/
|
24 |
+
static $_instance = null;
|
25 |
+
|
26 |
+
public function __construct( $prefix = null ) {
|
27 |
+
if ( $prefix )
|
28 |
+
$this->_prefix = $prefix;
|
29 |
+
|
30 |
+
// load options
|
31 |
+
if ( !$this->_options )
|
32 |
+
$this->_options = $this->options();
|
33 |
+
}
|
34 |
+
|
35 |
+
public function __get( $id = null ) {
|
36 |
+
$settings = apply_filters( 'tp_event_settings_field', array() );
|
37 |
+
|
38 |
+
if ( isset( $settings[$id] ) ) {
|
39 |
+
return $settings[$id];
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* options load options
|
45 |
+
* @return array || null
|
46 |
+
*/
|
47 |
+
protected function options() {
|
48 |
+
|
49 |
+
if ( is_array( get_option( $this->_prefix, null ) ) ) {
|
50 |
+
return call_user_func_array( 'array_merge', get_option( $this->_prefix, null ) );
|
51 |
+
}
|
52 |
+
|
53 |
+
return get_option( $this->_prefix, null );
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* get_name_field
|
58 |
+
*
|
59 |
+
* @param $name of field option
|
60 |
+
*
|
61 |
+
* @return string name field
|
62 |
+
*/
|
63 |
+
public function get_field_name( $name = null ) {
|
64 |
+
if ( !$this->_prefix || !$name )
|
65 |
+
return;
|
66 |
+
|
67 |
+
return $this->_prefix . '[' . $name . ']';
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* get_name_field
|
72 |
+
*
|
73 |
+
* @param $name of field option
|
74 |
+
*
|
75 |
+
* @return string name field
|
76 |
+
*/
|
77 |
+
public function get_field_id( $name = null, $default = null ) {
|
78 |
+
if ( !$this->_prefix || !$name )
|
79 |
+
return;
|
80 |
+
|
81 |
+
return $this->_prefix . '_' . $name;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* get option value
|
86 |
+
*
|
87 |
+
* @param $name
|
88 |
+
*
|
89 |
+
* @return option value. array, string, boolean
|
90 |
+
*/
|
91 |
+
public function get( $name = null, $default = null ) {
|
92 |
+
if ( !$this->_options )
|
93 |
+
$this->_options = $this->options();
|
94 |
+
|
95 |
+
if ( $name && isset( $this->_options[$name] ) )
|
96 |
+
return $this->_options[$name];
|
97 |
+
|
98 |
+
return $default;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* get option value
|
103 |
+
*
|
104 |
+
* @param $name
|
105 |
+
*
|
106 |
+
* @return option value. array, string, boolean
|
107 |
+
*/
|
108 |
+
public function set( $name = null, $default = null ) {
|
109 |
+
if ( !$this->_options )
|
110 |
+
$this->_options = $this->options();
|
111 |
+
|
112 |
+
if ( $name && isset( $this->_options[$name] ) )
|
113 |
+
return $this->_options[$name];
|
114 |
+
|
115 |
+
return $default;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* instance
|
120 |
+
*
|
121 |
+
* @param $prefix
|
122 |
+
*
|
123 |
+
* @return object class
|
124 |
+
*/
|
125 |
+
public static function instance( $prefix = null ) {
|
126 |
+
|
127 |
+
if ( !empty( self::$_instance[$prefix] ) ) {
|
128 |
+
|
129 |
+
return $GLOBALS['event_auth_settings'] = self::$_instance[$prefix];
|
130 |
+
}
|
131 |
+
|
132 |
+
return $GLOBALS['event_auth_settings'] = self::$_instance[$prefix] = new self( $prefix );
|
133 |
+
}
|
134 |
+
|
135 |
+
}
|
inc/class-wpems-shortcodes.php
ADDED
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* WPEMS_Shortcodes class
|
13 |
+
*/
|
14 |
+
class WPEMS_Shortcodes {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Init shortcodes
|
18 |
+
*/
|
19 |
+
public static function init() {
|
20 |
+
add_action( 'tp_event_shortcode_wrapper_start', array( __CLASS__, 'shortcode_wrapper_start' ) );
|
21 |
+
add_action( 'tp_event_shortcode_wrapper_end', array( __CLASS__, 'shortcode_wrapper_end' ) );
|
22 |
+
|
23 |
+
$shortcodes = array(
|
24 |
+
'list_event' => __CLASS__ . '::list_event',
|
25 |
+
'register' => __CLASS__ . '::register',
|
26 |
+
'login' => __CLASS__ . '::login',
|
27 |
+
'forgot_password' => __CLASS__ . '::forgot_password',
|
28 |
+
'reset_password' => __CLASS__ . '::reset_password',
|
29 |
+
'account' => __CLASS__ . '::account',
|
30 |
+
'countdown' => __CLASS__ . '::countdown',
|
31 |
+
);
|
32 |
+
|
33 |
+
foreach ( $shortcodes as $shortcode => $function ) {
|
34 |
+
add_shortcode( apply_filters( "wp_event_{$shortcode}_shortcode_tag", 'wp_event_' . $shortcode ), $function );
|
35 |
+
}
|
36 |
+
|
37 |
+
add_action( 'template_redirect', array( __CLASS__, 'auto_shortcode' ) );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Redirect page
|
42 |
+
*/
|
43 |
+
public static function auto_shortcode() {
|
44 |
+
if ( ! is_page() ) {
|
45 |
+
return;
|
46 |
+
}
|
47 |
+
|
48 |
+
global $post;
|
49 |
+
|
50 |
+
if ( ! isset( $post->ID ) ) {
|
51 |
+
return;
|
52 |
+
}
|
53 |
+
|
54 |
+
$page_id = array();
|
55 |
+
|
56 |
+
if ( $register_id = wpems_get_page_id( 'register' ) ) {
|
57 |
+
$page_id[] = $register_id;
|
58 |
+
}
|
59 |
+
if ( $login_id = wpems_get_page_id( 'login' ) ) {
|
60 |
+
$page_id[] = $login_id;
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( is_user_logged_in() && in_array( $post->ID, $page_id ) ) {
|
64 |
+
wp_safe_redirect( home_url( '/' ) );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Shortcode wrapper start
|
70 |
+
*
|
71 |
+
* @param $shortcode
|
72 |
+
*/
|
73 |
+
public static function shortcode_wrapper_start( $shortcode ) {
|
74 |
+
echo '<div class="event-wrapper-shortcode ' . esc_attr( $shortcode ) . '">';
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Shortcode wrapper end
|
79 |
+
*/
|
80 |
+
public static function shortcode_wrapper_end() {
|
81 |
+
echo '</div>';
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Render shortcode
|
86 |
+
*
|
87 |
+
* @param string $shortcode
|
88 |
+
* @param string $template
|
89 |
+
* @param array $atts
|
90 |
+
*
|
91 |
+
* @return string
|
92 |
+
*/
|
93 |
+
public static function render( $shortcode = '', $template = '', $atts = array() ) {
|
94 |
+
ob_start();
|
95 |
+
do_action( 'tp_event_shortcode_wrapper_start', $shortcode );
|
96 |
+
wpems_get_template( 'shortcodes/' . $template, $atts );
|
97 |
+
do_action( 'tp_event_shortcode_wrapper_end', $shortcode );
|
98 |
+
|
99 |
+
return ob_get_clean();
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Shortcode show list event
|
104 |
+
*
|
105 |
+
* @param $atts
|
106 |
+
*
|
107 |
+
* @return string
|
108 |
+
*/
|
109 |
+
public static function list_event( $atts ) {
|
110 |
+
$args = array( 'post_type' => 'tp_event' );
|
111 |
+
|
112 |
+
return WPEMS_Shortcodes::render( 'list-event', 'event-list.php', array( 'args' => $args ) );
|
113 |
+
}
|
114 |
+
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Shortcode user register
|
118 |
+
*
|
119 |
+
* @param $atts
|
120 |
+
*
|
121 |
+
* @return string
|
122 |
+
*/
|
123 |
+
public static function register( $atts ) {
|
124 |
+
|
125 |
+
if ( ! wpems_get_page_id( 'register' ) ) {
|
126 |
+
return '';
|
127 |
+
}
|
128 |
+
if ( ! get_option( 'users_can_register' ) ) {
|
129 |
+
return WPEMS_Shortcodes::render( 'user-register', 'user-cannot-register.php' );
|
130 |
+
} elseif ( ! empty( $_REQUEST['registered'] ) ) {
|
131 |
+
$email = sanitize_email( $_REQUEST['registered'] );
|
132 |
+
$user = get_user_by( 'email', $email );
|
133 |
+
if ( $user && $user->ID ) {
|
134 |
+
wp_new_user_notification( $user->ID );
|
135 |
+
|
136 |
+
// register completed
|
137 |
+
return WPEMS_Shortcodes::render( 'user-register', 'register-completed.php' );
|
138 |
+
} else {
|
139 |
+
// error
|
140 |
+
return WPEMS_Shortcodes::render( 'user-register', 'register-error.php' );
|
141 |
+
}
|
142 |
+
} elseif ( ! is_user_logged_in() ) {
|
143 |
+
// show register form
|
144 |
+
return WPEMS_Shortcodes::render( 'user-register', 'form-register.php' );
|
145 |
+
}
|
146 |
+
|
147 |
+
return '';
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Shortcode user login
|
152 |
+
*
|
153 |
+
* @param $atts
|
154 |
+
*
|
155 |
+
* @return string
|
156 |
+
*/
|
157 |
+
public static function login( $atts ) {
|
158 |
+
if ( ! wpems_get_page_id( 'login' ) || is_user_logged_in() ) {
|
159 |
+
return '';
|
160 |
+
}
|
161 |
+
|
162 |
+
return WPEMS_Shortcodes::render( 'user-login', 'form-login.php' );
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Shortcode forgot password
|
167 |
+
*
|
168 |
+
* @param $atts
|
169 |
+
*
|
170 |
+
* @return string
|
171 |
+
*/
|
172 |
+
public static function forgot_password( $atts ) {
|
173 |
+
if ( ! wpems_get_page_id( 'forgot_password' ) ) {
|
174 |
+
return '';
|
175 |
+
}
|
176 |
+
|
177 |
+
$checkemail = isset( $_REQUEST['checkemail'] ) && $_REQUEST['checkemail'] === 'confirm' ? true : false;
|
178 |
+
if ( $checkemail ) {
|
179 |
+
wpems_add_notice( 'success', __( 'Check your email for a link to reset your password.', 'wp-events-manager' ) );
|
180 |
+
} else {
|
181 |
+
return WPEMS_Shortcodes::render( 'forgot-password', 'forgot-password.php' );
|
182 |
+
}
|
183 |
+
|
184 |
+
return '';
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Shortcode reset password
|
189 |
+
*
|
190 |
+
* @param $atts
|
191 |
+
*
|
192 |
+
* @return string
|
193 |
+
*/
|
194 |
+
public static function reset_password( $atts ) {
|
195 |
+
if ( ! wpems_get_page_id( 'reset_password' ) ) {
|
196 |
+
return '';
|
197 |
+
}
|
198 |
+
|
199 |
+
$atts = wp_parse_args( $atts, array(
|
200 |
+
'key' => isset( $_REQUEST['key'] ) ? sanitize_text_field( $_REQUEST['key'] ) : '',
|
201 |
+
'login' => isset( $_REQUEST['login'] ) ? sanitize_text_field( $_REQUEST['login'] ) : ''
|
202 |
+
) );
|
203 |
+
|
204 |
+
$atts = wp_parse_args( $atts, array(
|
205 |
+
'user_login' => '',
|
206 |
+
'redirect_to' => '',
|
207 |
+
'checkemail' => isset( $_REQUEST['checkemail'] ) && $_REQUEST['checkemail'] === 'confirm' ? true : false
|
208 |
+
) );
|
209 |
+
|
210 |
+
if ( $atts['checkemail'] ) {
|
211 |
+
wpems_add_notice( 'success', __( 'Check your email for a link to reset your password.', 'wp-events-manager' ) );
|
212 |
+
}
|
213 |
+
|
214 |
+
return WPEMS_Shortcodes::render( 'reset-password', 'reset-password.php', array( 'atts' => $atts ) );
|
215 |
+
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Shortcode user account
|
220 |
+
*
|
221 |
+
* @return string
|
222 |
+
*/
|
223 |
+
public static function account( $atts ) {
|
224 |
+
$user = wp_get_current_user();
|
225 |
+
$args = array(
|
226 |
+
'post_type' => 'event_auth_book',
|
227 |
+
'post_per_page' => - 1,
|
228 |
+
'order' => 'DESC',
|
229 |
+
'meta_query' => array(
|
230 |
+
array(
|
231 |
+
'key' => 'ea_booking_user_id',
|
232 |
+
'value' => $user->ID
|
233 |
+
),
|
234 |
+
),
|
235 |
+
);
|
236 |
+
|
237 |
+
return WPEMS_Shortcodes::render( 'user-account', 'user-account.php', array( 'args' => $args ) );
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Countdown time for event
|
242 |
+
*
|
243 |
+
* @param $atts
|
244 |
+
*
|
245 |
+
* @return string
|
246 |
+
*/
|
247 |
+
public static function countdown( $atts ) {
|
248 |
+
$atts = shortcode_atts(
|
249 |
+
array(
|
250 |
+
'event_id' => ''
|
251 |
+
), $atts
|
252 |
+
);
|
253 |
+
|
254 |
+
return WPEMS_Shortcodes::render( 'event-countdown', 'event-countdown.php', array( 'args' => $atts ) );
|
255 |
+
}
|
256 |
+
|
257 |
+
}
|
258 |
+
|
259 |
+
WPEMS_Shortcodes::init();
|
inc/class-wpems-template.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_Template {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Path to the includes directory
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
private $include_path = '';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* The Constructor
|
17 |
+
*/
|
18 |
+
public function __construct() {
|
19 |
+
add_filter( 'template_include', array( $this, 'template_loader' ) );
|
20 |
+
}
|
21 |
+
|
22 |
+
public function template_loader( $template ) {
|
23 |
+
$post_type = get_post_type();
|
24 |
+
|
25 |
+
$file = '';
|
26 |
+
$find = array();
|
27 |
+
if ( $post_type !== 'tp_event' )
|
28 |
+
return $template;
|
29 |
+
|
30 |
+
if ( is_post_type_archive( 'tp_event' ) || is_tax( 'tp_event_category' ) ) {
|
31 |
+
$file = 'archive-event.php';
|
32 |
+
$find[] = $file;
|
33 |
+
$find[] = wpems_template_path() . '/' . $file;
|
34 |
+
} else if ( is_single() ) {
|
35 |
+
$file = 'single-event.php';
|
36 |
+
$find[] = $file;
|
37 |
+
$find[] = wpems_template_path() . '/' . $file;
|
38 |
+
}
|
39 |
+
|
40 |
+
if ( $file ) {
|
41 |
+
$find[] = wpems_template_path() . $file;
|
42 |
+
$template = locate_template( array_unique( $find ) );
|
43 |
+
if ( !$template ) {
|
44 |
+
$template = untrailingslashit( WPEMS_PATH ) . '/templates/' . $file;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
return $template;
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
new WPEMS_Template();
|
inc/class-wpems-user-process.php
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
class WPEMS_User_Process {
|
8 |
+
|
9 |
+
private static $login_url = null;
|
10 |
+
private static $register_url = null;
|
11 |
+
private static $forgot_url = null;
|
12 |
+
private static $account_url = null;
|
13 |
+
private static $reset_url = null;
|
14 |
+
private static $session = null;
|
15 |
+
|
16 |
+
public static function init() {
|
17 |
+
/**
|
18 |
+
* Process Register
|
19 |
+
* Login
|
20 |
+
* Lost Password
|
21 |
+
* Reset Password
|
22 |
+
*/
|
23 |
+
add_action( 'init', array( __CLASS__, 'user_process_init' ), 10 );
|
24 |
+
add_action( 'init', array( __CLASS__, 'process_register' ), 50 );
|
25 |
+
add_action( 'init', array( __CLASS__, 'process_login' ), 50 );
|
26 |
+
add_action( 'init', array( __CLASS__, 'process_lost_password' ), 50 );
|
27 |
+
add_action( 'init', array( __CLASS__, 'process_reset_password' ), 50 );
|
28 |
+
|
29 |
+
// process
|
30 |
+
add_action( 'wp_logout', array( __CLASS__, 'wp_logout' ) );
|
31 |
+
}
|
32 |
+
|
33 |
+
public static function user_process_init() {
|
34 |
+
|
35 |
+
self::$login_url = wpems_login_url();
|
36 |
+
|
37 |
+
self::$register_url = wpems_register_url();
|
38 |
+
|
39 |
+
self::$forgot_url = wpems_forgot_password_url();
|
40 |
+
|
41 |
+
self::$account_url = wpems_account_url();
|
42 |
+
|
43 |
+
self::$reset_url = wpems_reset_password_url();
|
44 |
+
}
|
45 |
+
|
46 |
+
// redirect logout
|
47 |
+
public static function wp_logout() {
|
48 |
+
wpems_add_notice( 'success', sprintf( '%s', __( 'You have been sign out!', 'wp-events-manager' ) ) );
|
49 |
+
wp_safe_redirect( self::$login_url );
|
50 |
+
exit();
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Process Register
|
55 |
+
*/
|
56 |
+
public static function process_register() {
|
57 |
+
if ( empty( $_POST['auth-nonce'] ) || !wp_verify_nonce( $_POST['auth-nonce'], 'auth-reigter-nonce' ) ) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
$username = !empty( $_POST['user_login'] ) ? $_POST['user_login'] : '';
|
62 |
+
$email = !empty( $_POST['user_email'] ) ? $_POST['user_email'] : '';
|
63 |
+
$password = !empty( $_POST['user_pass'] ) ? $_POST['user_pass'] : '';
|
64 |
+
$password1 = !empty( $_POST['confirm_password'] ) ? $_POST['confirm_password'] : '';
|
65 |
+
|
66 |
+
$user_id = wpems_create_new_user( apply_filters( 'event_auth_user_process_register_data', array(
|
67 |
+
'username' => $username, 'email' => $email, 'password' => $password, 'confirm_password' => $password1
|
68 |
+
) ) );
|
69 |
+
|
70 |
+
if ( is_wp_error( $user_id ) ) {
|
71 |
+
$fields = array();
|
72 |
+
foreach ( $user_id->errors as $code => $message ) {
|
73 |
+
if ( !$message[0] )
|
74 |
+
continue;
|
75 |
+
if ( wpems_is_ajax() ) {
|
76 |
+
$fields[$code] = $message[0];
|
77 |
+
} else {
|
78 |
+
wpems_add_notice( 'error', $message[0] );
|
79 |
+
}
|
80 |
+
}
|
81 |
+
if ( wpems_is_ajax() ) {
|
82 |
+
wp_send_json( array( 'status' => false, 'fields' => $fields ) );
|
83 |
+
}
|
84 |
+
} else {
|
85 |
+
|
86 |
+
$url = wp_get_referer();
|
87 |
+
if ( !$url ) {
|
88 |
+
$url = self::$register_url;
|
89 |
+
}
|
90 |
+
|
91 |
+
// not enable option 'register_notify' login user now
|
92 |
+
$send_notify = wpems_get_option( 'register_notify', true );
|
93 |
+
if ( !$send_notify ) {
|
94 |
+
wp_set_auth_cookie( $user_id, true, is_ssl() );
|
95 |
+
} else {
|
96 |
+
$url = add_query_arg( 'registered', $email, self::$register_url );
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( wpems_is_ajax() ) {
|
100 |
+
wp_send_json( array( 'status' => true, 'redirect' => $url ) );
|
101 |
+
} else {
|
102 |
+
wp_safe_redirect( $url );
|
103 |
+
exit();
|
104 |
+
}
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Process Login
|
110 |
+
*/
|
111 |
+
public static function process_login() {
|
112 |
+
|
113 |
+
$nonce_value = isset( $_POST['_wpnonce'] ) ? sanitize_text_field( $_POST['_wpnonce'] ) : '';
|
114 |
+
$nonce_value = isset( $_POST['auth-nonce'] ) ? sanitize_text_field( $_POST['auth-nonce'] ) : $nonce_value;
|
115 |
+
|
116 |
+
if ( !wp_verify_nonce( $nonce_value, 'auth-login-nonce' ) ) {
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
$redirect = self::$account_url;
|
120 |
+
if ( !empty( $_POST['redirect_to'] ) && $_POST['redirect_to'] !== '/wp-admin/admin-ajax.php' ) {
|
121 |
+
$redirect = esc_url( $_POST['redirect_to'] );
|
122 |
+
} elseif ( wp_get_referer() ) {
|
123 |
+
$redirect = wp_get_referer();
|
124 |
+
}
|
125 |
+
|
126 |
+
$redirect = strpos( $redirect, '/wp-admin/admin-ajax.php' ) ? self::$account_url : $redirect;
|
127 |
+
|
128 |
+
try {
|
129 |
+
|
130 |
+
$creds = array();
|
131 |
+
$username = !empty( $_POST['user_login'] ) ? sanitize_text_field( trim( $_POST['user_login'] ) ) : '';
|
132 |
+
$password = !empty( $_POST['user_pass'] ) ? sanitize_text_field( trim( $_POST['user_pass'] ) ) : '';
|
133 |
+
|
134 |
+
$validation_error = new WP_Error();
|
135 |
+
$validation_error = apply_filters( 'event_auth_process_login_errors', $validation_error, $username, $password );
|
136 |
+
|
137 |
+
if ( $validation_error->get_error_code() ) {
|
138 |
+
wpems_add_notice( 'error', '<strong>' . __( 'ERROR', 'wp-events-manager' ) . ':</strong> ' . $validation_error->get_error_message() );
|
139 |
+
}
|
140 |
+
|
141 |
+
if ( empty( $username ) ) {
|
142 |
+
wpems_add_notice( 'error', '<strong>' . __( 'ERROR', 'wp-events-manager' ) . ':</strong> ' . __( 'Username is required.', 'wp-events-manager' ) );
|
143 |
+
}
|
144 |
+
|
145 |
+
if ( empty( $_POST['user_pass'] ) ) {
|
146 |
+
wpems_add_notice( 'error', '<strong>' . __( 'ERROR', 'wp-events-manager' ) . ':</strong> ' . __( 'Password is required.', 'wp-events-manager' ) );
|
147 |
+
}
|
148 |
+
|
149 |
+
if ( is_email( $username ) && apply_filters( 'event_auth_get_username_from_email', true ) ) {
|
150 |
+
$user = get_user_by( 'email', $username );
|
151 |
+
|
152 |
+
if ( isset( $user->user_login ) ) {
|
153 |
+
$creds['user_login'] = $user->user_login;
|
154 |
+
} else {
|
155 |
+
wpems_add_notice( 'error', '<strong>' . __( 'ERROR', 'wp-events-manager' ) . ':</strong> ' . __( 'A user could not be found with this email address.', 'wp-events-manager' ) );
|
156 |
+
}
|
157 |
+
} else {
|
158 |
+
$creds['user_login'] = $username;
|
159 |
+
}
|
160 |
+
|
161 |
+
$creds['user_password'] = $password;
|
162 |
+
$creds['remember'] = isset( $_POST['rememberme'] );
|
163 |
+
$secure_cookie = is_ssl() ? true : false;
|
164 |
+
|
165 |
+
if ( !wpems_has_notice( 'error' ) ) {
|
166 |
+
$user = wp_signon( apply_filters( 'event_auth_login_credentials', $creds ), $secure_cookie );
|
167 |
+
|
168 |
+
if ( is_wp_error( $user ) ) {
|
169 |
+
$message = $user->get_error_message();
|
170 |
+
$message = str_replace( wp_lostpassword_url(), self::$forgot_url, $message );
|
171 |
+
$message = str_replace( '<strong>' . esc_html( $creds['user_login'] ) . '</strong>', '<strong>' . esc_html( $username ) . '</strong>', $message );
|
172 |
+
wpems_add_notice( 'error', $message );
|
173 |
+
|
174 |
+
// break
|
175 |
+
throw new Exception;
|
176 |
+
} else {
|
177 |
+
wpems_add_notice( 'success', __( 'You have logged in', 'wp-events-manager' ) );
|
178 |
+
|
179 |
+
if ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) {
|
180 |
+
wp_redirect( apply_filters( 'event_auth_login_redirect', $redirect, $user ) );
|
181 |
+
exit;
|
182 |
+
} else {
|
183 |
+
$response = array();
|
184 |
+
$response['status'] = true;
|
185 |
+
$response['redirect'] = apply_filters( 'event_auth_ajax_login_redirect', $redirect );
|
186 |
+
ob_start();
|
187 |
+
wpems_print_notices();
|
188 |
+
$response['notices'] = ob_get_clean();
|
189 |
+
wp_send_json( $response );
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
} catch ( Exception $ex ) {
|
194 |
+
if ( $ex ) {
|
195 |
+
wpems_add_notice( 'error', $ex->getMessage() );
|
196 |
+
}
|
197 |
+
}
|
198 |
+
|
199 |
+
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
200 |
+
$response = array();
|
201 |
+
$response['status'] = false;
|
202 |
+
$response['redirect'] = apply_filters( 'event_auth_ajax_login_redirect', $redirect );
|
203 |
+
ob_start();
|
204 |
+
wpems_print_notices();
|
205 |
+
$response['notices'] = ob_get_clean();
|
206 |
+
wp_send_json( $response );
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
/**
|
211 |
+
* Process Lost Password
|
212 |
+
*/
|
213 |
+
public static function process_lost_password() {
|
214 |
+
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Process Reset Password
|
219 |
+
*/
|
220 |
+
public static function process_reset_password() {
|
221 |
+
|
222 |
+
}
|
223 |
+
|
224 |
+
}
|
225 |
+
|
226 |
+
WPEMS_User_Process::init();
|
inc/emails/class-wpems-register-event.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WPEMS_Email_Register_Event {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
|
14 |
+
add_action( 'tp_event_updated_status', array( $this, 'email_register' ), 10, 3 );
|
15 |
+
}
|
16 |
+
|
17 |
+
// send email
|
18 |
+
public function email_register( $booking_id, $old_status, $status ) {
|
19 |
+
|
20 |
+
if ( $old_status === $status ) {
|
21 |
+
return;
|
22 |
+
}
|
23 |
+
|
24 |
+
if ( !$booking_id ) {
|
25 |
+
throw new Exception( sprintf( __( 'Error %s booking ID', 'wp-events-manager' ), $booking_id ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( wpems_get_option( 'email_enable', 'yes' ) === 'no' ) {
|
29 |
+
return;
|
30 |
+
}
|
31 |
+
|
32 |
+
$booking = WPEMS_Booking::instance( $booking_id );
|
33 |
+
|
34 |
+
if ( $booking ) {
|
35 |
+
$user_id = $booking->user_id;
|
36 |
+
if ( !$user_id ) {
|
37 |
+
throw new Exception( __( 'User is not exists!', 'wp-events-manager' ) );
|
38 |
+
die();
|
39 |
+
}
|
40 |
+
$user = get_userdata( $user_id );
|
41 |
+
|
42 |
+
$email_subject = wpems_get_option( 'email_subject', '' );
|
43 |
+
|
44 |
+
$headers[] = 'Content-Type: text/html; charset=UTF-8';
|
45 |
+
// set mail from email
|
46 |
+
add_filter( 'wp_mail_from', array( $this, 'email_from' ) );
|
47 |
+
// set mail from name
|
48 |
+
add_filter( 'wp_mail_from_name', array( $this, 'from_name' ) );
|
49 |
+
|
50 |
+
if ( $user && $to = $user->data->user_email ) {
|
51 |
+
$email_content = wpems_get_template_content( 'emails/register-event.php', array( 'booking' => $booking, 'user' => $user ) );
|
52 |
+
|
53 |
+
return wp_mail( $to, $email_subject, stripslashes( $email_content ), $headers );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
// set from email
|
59 |
+
public function email_from( $email ) {
|
60 |
+
if ( $email = wpems_get_option( 'admin_email', get_option( 'admin_email' ) ) ) {
|
61 |
+
if ( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
|
62 |
+
return $email;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
return $email;
|
66 |
+
}
|
67 |
+
|
68 |
+
// set from name
|
69 |
+
public function from_name( $name ) {
|
70 |
+
if ( $name = wpems_get_option( 'email_from_name' ) ) {
|
71 |
+
return $name;
|
72 |
+
}
|
73 |
+
return $name;
|
74 |
+
}
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
new WPEMS_Email_Register_Event();
|
inc/gateways/paypal/class-wpems-payment-gateway-paypal.php
ADDED
@@ -0,0 +1,251 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
class WPEMS_Payment_Gateway_Paypal extends WPEMS_Abstract_Payment_Gateway {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* id of payment
|
10 |
+
* @var null
|
11 |
+
*/
|
12 |
+
public $id = 'paypal';
|
13 |
+
// title
|
14 |
+
public $title = null;
|
15 |
+
// email
|
16 |
+
protected $paypal_email = null;
|
17 |
+
// url
|
18 |
+
protected $paypal_url = null;
|
19 |
+
// payment url
|
20 |
+
protected $paypal_payment_url = null;
|
21 |
+
// enable
|
22 |
+
protected static $enable = false;
|
23 |
+
|
24 |
+
public function __construct() {
|
25 |
+
$this->title = __( 'PayPal', 'wp-events-manager' );
|
26 |
+
$this->icon = WPEMS_INC_URI . '/gateways/' . $this->id . '/' . $this->id . '.png';
|
27 |
+
parent::__construct();
|
28 |
+
|
29 |
+
// production environment
|
30 |
+
$this->paypal_url = 'https://www.paypal.com/';
|
31 |
+
$this->paypal_payment_url = 'https://www.paypal.com/cgi-bin/webscr';
|
32 |
+
$this->paypal_email = wpems_get_option( 'paypal_email' ) ? wpems_get_option( 'paypal_email' ) : '';
|
33 |
+
|
34 |
+
if ( wpems_get_option( 'paypal_sandbox_mode' ) ) {
|
35 |
+
$this->paypal_url = 'https://www.sandbox.paypal.com/';
|
36 |
+
$this->paypal_payment_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
|
37 |
+
$this->paypal_email = wpems_get_option( 'paypal_sanbox_email' ) ? wpems_get_option( 'paypal_sanbox_email' ) : '';
|
38 |
+
}
|
39 |
+
|
40 |
+
// // init process
|
41 |
+
add_action( 'init', array( $this, 'payment_validation' ), 99 );
|
42 |
+
}
|
43 |
+
|
44 |
+
/*
|
45 |
+
* Check gateway available
|
46 |
+
*/
|
47 |
+
public function is_available() {
|
48 |
+
return true;
|
49 |
+
}
|
50 |
+
|
51 |
+
/*
|
52 |
+
* Check gateway enable
|
53 |
+
*/
|
54 |
+
public function is_enable() {
|
55 |
+
self::$enable = !empty( $this->paypal_email ) && wpems_get_option( 'paypal_enable' ) === 'yes';
|
56 |
+
return apply_filters( 'tp_event_enable_paypal_payment', self::$enable );
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
// callback
|
61 |
+
public function payment_validation() {
|
62 |
+
if ( isset( $_GET['event-auth-paypal-payment'] ) && $_GET['event-auth-paypal-payment'] ) {
|
63 |
+
if ( !isset( $_GET['tp-event-paypal-nonce'] ) || !wp_verify_nonce( $_GET['tp-event-paypal-nonce'], 'tp-event-paypal-nonce' ) ) {
|
64 |
+
return;
|
65 |
+
}
|
66 |
+
|
67 |
+
if ( sanitize_text_field( $_GET['event-auth-paypal-payment'] ) === 'completed' ) {
|
68 |
+
wpems_add_notice( 'success', sprintf( __( 'Payment is completed. We will send you email when payment status is completed', 'wp-events-manager' ) ) );
|
69 |
+
} else if ( sanitize_text_field( $_GET['event-auth-paypal-payment'] ) === 'cancel' ) {
|
70 |
+
wpems_add_notice( 'success', sprintf( __( 'Booking is cancel.', 'wp-events-manager' ) ) );
|
71 |
+
}
|
72 |
+
// redirect
|
73 |
+
$url = add_query_arg( array( 'tp-event-paypal-nonce' => esc_url( $_GET['tp-event-paypal-nonce'] )), wpems_account_url() );
|
74 |
+
wp_redirect( $url );
|
75 |
+
exit();
|
76 |
+
}
|
77 |
+
|
78 |
+
// validate payment notify_url, update status
|
79 |
+
if ( !empty( $_POST ) && isset( $_POST['txn_type'] ) && $_POST['txn_type'] === 'web_accept' ) {
|
80 |
+
if ( !isset( $_POST['payment_status'] ) )
|
81 |
+
return;
|
82 |
+
|
83 |
+
if ( empty( $_POST['custom'] ) )
|
84 |
+
return;
|
85 |
+
|
86 |
+
// transaction object
|
87 |
+
$transaction_subject = stripcslashes( $_POST['custom'] );
|
88 |
+
$transaction_subject = json_decode( $transaction_subject );
|
89 |
+
|
90 |
+
$booking_id = false;
|
91 |
+
if ( !isset( $transaction_subject->booking_id ) || !$booking_id = $transaction_subject->booking_id )
|
92 |
+
return;
|
93 |
+
|
94 |
+
$book = WPEMS_Booking::instance( $booking_id );
|
95 |
+
|
96 |
+
// santitize
|
97 |
+
$pay_verify = array_merge( array( 'cmd' => '_notify-validate' ), array_map( 'stripcslashes', $_POST ) );
|
98 |
+
|
99 |
+
$paypal_api_url = isset( $_POST['test_ipn'] ) && $_POST['test_ipn'] == 1 ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr';
|
100 |
+
|
101 |
+
// $response = wp_remote_post( $paypal_api_url, array( 'body' => $pay_verify ) );
|
102 |
+
$params = array(
|
103 |
+
'body' => $pay_verify,
|
104 |
+
'timeout' => 60,
|
105 |
+
'httpversion' => '1.1',
|
106 |
+
'compress' => false,
|
107 |
+
'decompress' => false,
|
108 |
+
'user-agent' => 'Event'
|
109 |
+
);
|
110 |
+
$response = wp_safe_remote_post( $paypal_api_url, $params );
|
111 |
+
|
112 |
+
if ( !is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) === 200 ) {
|
113 |
+
$body = wp_remote_retrieve_body( $response );
|
114 |
+
|
115 |
+
if ( strtolower( $body ) === 'verified' ) {
|
116 |
+
// payment status
|
117 |
+
$payment_status = strtolower( $_POST['payment_status'] );
|
118 |
+
|
119 |
+
if ( in_array( $payment_status, array( 'pending', 'completed' ) ) ) {
|
120 |
+
$status = 'ea-completed';
|
121 |
+
$book->update_status( $status );
|
122 |
+
}
|
123 |
+
}
|
124 |
+
}
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* fields settings
|
130 |
+
* @return array
|
131 |
+
*/
|
132 |
+
public function admin_fields() {
|
133 |
+
$prefix = 'thimpress_events_';
|
134 |
+
$paypal_enable = wpems_get_option( 'paypal_enable' );
|
135 |
+
return apply_filters( 'tp_event_paypal_admin_fields', array(
|
136 |
+
array(
|
137 |
+
'type' => 'section_start',
|
138 |
+
'id' => 'paypal_settings',
|
139 |
+
'title' => __( 'Paypal Settings', 'wp-events-manager' ),
|
140 |
+
'desc' => esc_html__( 'Make payment via Paypal', 'wp-events-manager' )
|
141 |
+
),
|
142 |
+
array(
|
143 |
+
'type' => 'yes_no',
|
144 |
+
'title' => __( 'Enable', 'wp-events-manager' ),
|
145 |
+
'id' => $prefix . 'paypal_enable',
|
146 |
+
'default' => 'no',
|
147 |
+
'desc' => apply_filters( 'tp_event_filter_enable_paypal_gateway', '' )
|
148 |
+
),
|
149 |
+
array(
|
150 |
+
'type' => 'text',
|
151 |
+
'title' => __( 'Paypal email', 'wp-events-manager' ),
|
152 |
+
'id' => $prefix . 'paypal_email',
|
153 |
+
'default' => '',
|
154 |
+
'class' => 'paypal-production-email' . ( $paypal_enable == 'no' ? ' hide-if-js' : '' )
|
155 |
+
),
|
156 |
+
array(
|
157 |
+
'type' => 'checkbox',
|
158 |
+
'title' => __( 'Sandbox mode', 'wp-events-manager' ),
|
159 |
+
'id' => $prefix . 'paypal_sandbox_mode',
|
160 |
+
'default' => false,
|
161 |
+
'class' => 'paypal-sandbox-mode' . ( $paypal_enable == 'no' ? ' hide-if-js' : '' )
|
162 |
+
),
|
163 |
+
array(
|
164 |
+
'type' => 'text',
|
165 |
+
'title' => __( 'Paypal Sandbox email', 'wp-events-manager' ),
|
166 |
+
'id' => $prefix . 'paypal_sanbox_email',
|
167 |
+
'default' => '',
|
168 |
+
'class' => 'paypal-sandbox-email' . ( $paypal_enable == 'no' ? ' hide-if-js' : '' )
|
169 |
+
),
|
170 |
+
array(
|
171 |
+
'type' => 'section_end',
|
172 |
+
'id' => 'paypal_settings'
|
173 |
+
)
|
174 |
+
) );
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* get_item_name
|
179 |
+
* @return string
|
180 |
+
*/
|
181 |
+
public function get_item_name( $booking_id = null ) {
|
182 |
+
if ( !$booking_id )
|
183 |
+
return;
|
184 |
+
|
185 |
+
// book
|
186 |
+
$book = WPEMS_Booking::instance( $booking_id );
|
187 |
+
$description = sprintf( '%s(%s)', $book->post->post_title, wpems_format_price( $book->price, $book->currency ) );
|
188 |
+
|
189 |
+
return $description;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* checkout url
|
194 |
+
* @return url string
|
195 |
+
*/
|
196 |
+
public function checkout_url( $booking_id = false ) {
|
197 |
+
if ( !$booking_id ) {
|
198 |
+
wp_send_json( array(
|
199 |
+
'status' => false,
|
200 |
+
'message' => __( 'Booking ID is not exists!', 'wp-events-manager' )
|
201 |
+
) );
|
202 |
+
die();
|
203 |
+
}
|
204 |
+
// book
|
205 |
+
$book = wpems_get_booking( $booking_id );
|
206 |
+
|
207 |
+
// create nonce
|
208 |
+
$nonce = wp_create_nonce( 'tp-event-paypal-nonce' );
|
209 |
+
|
210 |
+
$user = get_userdata( $book->user_id );
|
211 |
+
$email = $user->user_email;
|
212 |
+
|
213 |
+
// query post
|
214 |
+
$query = array(
|
215 |
+
'cmd' => '_xclick',
|
216 |
+
'amount' => (float) $book->price,
|
217 |
+
'quantity' => '1',
|
218 |
+
'business' => $this->paypal_email, // business email paypal
|
219 |
+
'item_name' => $this->get_item_name( $booking_id ),
|
220 |
+
'currency_code' => wpems_get_currency(),
|
221 |
+
'notify_url' => home_url(),
|
222 |
+
'no_note' => '1',
|
223 |
+
'shipping' => '0',
|
224 |
+
'email' => $email,
|
225 |
+
'rm' => '2',
|
226 |
+
'no_shipping' => '1',
|
227 |
+
'return' => add_query_arg( array( 'event-auth-paypal-payment' => 'completed', 'tp-event-paypal-nonce' => $nonce ), wpems_account_url() ),
|
228 |
+
'cancel_return' => add_query_arg( array( 'event-auth-paypal-payment' => 'cancel', 'tp-event-paypal-nonce' => $nonce ), wpems_account_url() ),
|
229 |
+
'custom' => json_encode( array( 'booking_id' => $booking_id, 'user_id' => $book->user_id ) )
|
230 |
+
);
|
231 |
+
|
232 |
+
// allow hook paypal param
|
233 |
+
$query = apply_filters( 'tp_event_paypal_payment_params', $query );
|
234 |
+
|
235 |
+
return $this->paypal_payment_url . '?' . http_build_query( $query );
|
236 |
+
}
|
237 |
+
|
238 |
+
public function process( $amount = false ) {
|
239 |
+
if ( !$this->is_available() ) {
|
240 |
+
return array(
|
241 |
+
'status' => false,
|
242 |
+
'message' => __( 'Email Business PayPal is invalid. Please contact administrator to setup PayPal email.', 'wp-events-manager' )
|
243 |
+
);
|
244 |
+
}
|
245 |
+
return array(
|
246 |
+
'status' => true,
|
247 |
+
'url' => $this->checkout_url( $amount )
|
248 |
+
);
|
249 |
+
}
|
250 |
+
|
251 |
+
}
|
inc/gateways/paypal/paypal.png
ADDED
Binary file
|
inc/libraries/bootstrap/css/bootstrap-theme.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,0%,#e6e6e6,100%);background-image:-moz-linear-gradient(top,#fff 0,#e6e6e6 100%);background-image:linear-gradient(to bottom,#fff 0,#e6e6e6 100%);background-repeat:repeat-x;border-color:#e0e0e0;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0)}.btn-default:active,.btn-default.active{background-color:#e6e6e6;border-color:#e0e0e0}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;border-color:#2d6ca2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.btn-primary:active,.btn-primary.active{background-color:#3071a9;border-color:#2d6ca2}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;border-color:#419641;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.btn-success:active,.btn-success.active{background-color:#449d44;border-color:#419641}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;border-color:#eb9316;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.btn-warning:active,.btn-warning.active{background-color:#ec971f;border-color:#eb9316}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;border-color:#c12e2a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.btn-danger:active,.btn-danger.active{background-color:#c9302c;border-color:#c12e2a}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;border-color:#2aabd2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.btn-info:active,.btn-info.active{background-color:#31b0d5;border-color:#2aabd2}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff,0%,#f8f8f8,100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar .navbar-nav>.active>a{background-color:#f8f8f8}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c,0%,#222,100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0)}.navbar-inverse .navbar-nav>.active>a{background-color:#222}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#c8e5bc,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#b9def0,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#f8efc0,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede,0%,#e7c3c3,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca,0%,#3278b3,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5,0%,#e8e8e8,100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#d0e9c6,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#c4e3f3,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#faf2cc,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede,0%,#ebcccc,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}
|
inc/libraries/bootstrap/css/bootstrap.min.css
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Bootstrap v3.0.0
|
3 |
+
*
|
4 |
+
* Copyright 2013 Twitter, Inc
|
5 |
+
* Licensed under the Apache License v2.0
|
6 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
7 |
+
*
|
8 |
+
* Designed and built with all the love in the world by @mdo and @fat.
|
9 |
+
*//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}}
|
inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.eot
ADDED
Binary file
|
inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.svg
ADDED
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata></metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
7 |
+
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
8 |
+
<missing-glyph horiz-adv-x="500" />
|
9 |
+
<glyph />
|
10 |
+
<glyph />
|
11 |
+
<glyph unicode=" " />
|
12 |
+
<glyph unicode="*" d="M1100 500h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200z" />
|
13 |
+
<glyph unicode="+" d="M1100 400h-400v-400h-300v400h-400v300h400v400h300v-400h400v-300z" />
|
14 |
+
<glyph unicode=" " />
|
15 |
+
<glyph unicode=" " horiz-adv-x="652" />
|
16 |
+
<glyph unicode=" " horiz-adv-x="1304" />
|
17 |
+
<glyph unicode=" " horiz-adv-x="652" />
|
18 |
+
<glyph unicode=" " horiz-adv-x="1304" />
|
19 |
+
<glyph unicode=" " horiz-adv-x="434" />
|
20 |
+
<glyph unicode=" " horiz-adv-x="326" />
|
21 |
+
<glyph unicode=" " horiz-adv-x="217" />
|
22 |
+
<glyph unicode=" " horiz-adv-x="217" />
|
23 |
+
<glyph unicode=" " horiz-adv-x="163" />
|
24 |
+
<glyph unicode=" " horiz-adv-x="260" />
|
25 |
+
<glyph unicode=" " horiz-adv-x="72" />
|
26 |
+
<glyph unicode=" " horiz-adv-x="260" />
|
27 |
+
<glyph unicode=" " horiz-adv-x="326" />
|
28 |
+
<glyph unicode="€" d="M800 500h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257 q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406z" />
|
29 |
+
<glyph unicode="−" d="M1100 700h-900v-300h900v300z" />
|
30 |
+
<glyph unicode="☁" d="M178 300h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57z" />
|
31 |
+
<glyph unicode="✉" d="M1200 1100h-1200l600 -603zM300 600l-300 -300v600zM1200 900v-600l-300 300zM800 500l400 -400h-1200l400 400l200 -200z" />
|
32 |
+
<glyph unicode="✏" d="M1101 889l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13l-94 -97zM401 189l614 614l-214 214l-614 -614zM-13 -13l333 112l-223 223z" />
|
33 |
+
<glyph unicode="" horiz-adv-x="500" d="M0 0z" />
|
34 |
+
<glyph unicode="" d="M700 100h300v-100h-800v100h300v550l-500 550h1200l-500 -550v-550z" />
|
35 |
+
<glyph unicode="" d="M1000 934v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7q-79 -25 -122.5 -82t-25.5 -112t86 -75.5t147 5.5 q65 21 109 69t44 90v606z" />
|
36 |
+
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
|
37 |
+
<glyph unicode="" d="M649 949q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5t-94 124.5t-33.5 117.5q0 64 28 123t73 100.5t104.5 64t119 20.5 t120 -38.5t104.5 -104.5z" />
|
38 |
+
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM168 71l2 1z" />
|
39 |
+
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM747 331l-74 229l193 140h-235l-77 211l-78 -211h-239l196 -142l-73 -226l192 140zM168 71l2 1z" />
|
40 |
+
<glyph unicode="" d="M1200 143v-143h-1200v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100z" />
|
41 |
+
<glyph unicode="" d="M1200 1100v-1100h-1200v1100h1200zM200 1000h-100v-100h100v100zM900 1000h-600v-400h600v400zM1100 1000h-100v-100h100v100zM200 800h-100v-100h100v100zM1100 800h-100v-100h100v100zM200 600h-100v-100h100v100zM1100 600h-100v-100h100v100zM900 500h-600v-400h600 v400zM200 400h-100v-100h100v100zM1100 400h-100v-100h100v100zM200 200h-100v-100h100v100zM1100 200h-100v-100h100v100z" />
|
42 |
+
<glyph unicode="" d="M500 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400 q21 0 35.5 -14.5t14.5 -35.5zM500 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5z" />
|
43 |
+
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 250v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5 t14.5 -35.5z" />
|
44 |
+
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700 q21 0 35.5 -14.5t14.5 -35.5zM300 450v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-200q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM1200 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5z" />
|
45 |
+
<glyph unicode="" d="M448 34l818 820l-212 212l-607 -607l-206 207l-212 -212z" />
|
46 |
+
<glyph unicode="" d="M882 106l-282 282l-282 -282l-212 212l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282z" />
|
47 |
+
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM507 363q137 0 233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5t-234 -97t-97 -233 t97 -233t234 -97zM600 800h100v-200h-100v-100h-200v100h-100v200h100v100h200v-100z" />
|
48 |
+
<glyph unicode="" d="M913 432l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -141 -78 -262zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 801v-200h400v200h-400z" />
|
49 |
+
<glyph unicode="" d="M700 750v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5zM800 975v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123 t-123 184t-45.5 224.5q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155z" />
|
50 |
+
<glyph unicode="" d="M1200 1h-200v1200h200v-1200zM900 1h-200v800h200v-800zM600 1h-200v500h200v-500zM300 301h-200v-300h200v300z" />
|
51 |
+
<glyph unicode="" d="M488 183l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5 q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39zM600 815q89 0 152 -63 t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152q0 88 63 151t152 63z" />
|
52 |
+
<glyph unicode="" d="M900 1100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100zM800 1100v100h-300v-100h300zM200 900h900v-800q0 -41 -29.5 -71 t-70.5 -30h-700q-41 0 -70.5 30t-29.5 71v800zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
|
53 |
+
<glyph unicode="" d="M1301 601h-200v-600h-300v400h-300v-400h-300v600h-200l656 644z" />
|
54 |
+
<glyph unicode="" d="M600 700h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18v1150q0 11 7 18t18 7h475v-500zM1000 800h-300v300z" />
|
55 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 600h200 v-100h-300v400h100v-300z" />
|
56 |
+
<glyph unicode="" d="M721 400h-242l-40 -400h-539l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538zM712 500l-27 300h-170l-27 -300h224z" />
|
57 |
+
<glyph unicode="" d="M1100 400v-400h-1100v400h490l-290 300h200v500h300v-500h200l-290 -300h490zM988 300h-175v-100h175v100z" />
|
58 |
+
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 1012q-170 0 -291 -121t-121 -291t121 -291t291 -121t291 121 t121 291t-121 291t-291 121zM700 600h150l-250 -300l-250 300h150v300h200v-300z" />
|
59 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM850 600h-150 v-300h-200v300h-150l250 300z" />
|
60 |
+
<glyph unicode="" d="M0 500l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18v475zM903 1000h-606l-97 -500h200l50 -200h300l50 200h200z" />
|
61 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM797 598 l-297 -201v401z" />
|
62 |
+
<glyph unicode="" d="M1177 600h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123t-123 -184t-45.5 -224.5t45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123 t123 184t45.5 224.5z" />
|
63 |
+
<glyph unicode="" d="M700 800l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400zM500 400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122l-145 -145v400h400z" />
|
64 |
+
<glyph unicode="" d="M100 1200v-1200h1100v1200h-1100zM1100 100h-900v900h900v-900zM400 800h-100v100h100v-100zM1000 800h-500v100h500v-100zM400 600h-100v100h100v-100zM1000 600h-500v100h500v-100zM400 400h-100v100h100v-100zM1000 400h-500v100h500v-100zM400 200h-100v100h100v-100 zM1000 300h-500v-100h500v100z" />
|
65 |
+
<glyph unicode="" d="M200 0h-100v1100h100v-1100zM1100 600v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5z" />
|
66 |
+
<glyph unicode="" d="M1200 275v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5t-49.5 -227v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50 q11 0 18 7t7 18zM400 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14zM1000 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14z" />
|
67 |
+
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM971 600l141 -141l-71 -71l-141 141l-141 -141l-71 71l141 141l-141 141l71 71l141 -141l141 141l71 -71z" />
|
68 |
+
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
|
69 |
+
<glyph unicode="" d="M974 186l6 8q142 178 142 405q0 230 -144 408l-6 8l-83 -64l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8zM300 801l300 200v-800l-300 200h-300v400h300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257z" />
|
70 |
+
<glyph unicode="" d="M100 700h400v100h100v100h-100v300h-500v-600h100v100zM1200 700v500h-600v-200h100v-300h200v-300h300v200h-200v100h200zM100 1100h300v-300h-300v300zM800 800v300h300v-300h-300zM200 900h100v100h-100v-100zM900 1000h100v-100h-100v100zM300 600h-100v-100h-200 v-500h500v500h-200v100zM900 200v-100h-200v100h-100v100h100v200h-200v100h300v-300h200v-100h-100zM400 400v-300h-300v300h300zM300 200h-100v100h100v-100zM1100 300h100v-100h-100v100zM600 100h100v-100h-100v100zM1200 100v-100h-300v100h300z" />
|
71 |
+
<glyph unicode="" d="M100 1200h-100v-1000h100v1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 1200v-1000h-200v1000h200zM400 100v-100h-300v100h300zM500 91h100v-91h-100v91zM700 91h100v-91h-100v91zM1100 91v-91h-200v91h200z " />
|
72 |
+
<glyph unicode="" d="M1200 500l-500 -500l-699 700v475q0 10 7.5 17.5t17.5 7.5h474zM320 882q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71t29 -71q30 -30 71.5 -30t71.5 30z" />
|
73 |
+
<glyph unicode="" d="M1201 500l-500 -500l-699 700v475q0 11 7 18t18 7h474zM1501 500l-500 -500l-50 50l450 450l-700 700h100zM320 882q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71t30 -71q29 -30 71 -30t71 30z" />
|
74 |
+
<glyph unicode="" d="M1200 1200v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900v1025l175 175h925z" />
|
75 |
+
<glyph unicode="" d="M947 829l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18l-94 -346l40 -124h592zM1200 800v-700h-200v200h-800v-200h-200v700h200l100 -200h600l100 200h200zM881 176l38 -152q2 -10 -3.5 -17t-15.5 -7h-600q-10 0 -15.5 7t-3.5 17l38 152q2 10 11.5 17t19.5 7 h500q10 0 19.5 -7t11.5 -17z" />
|
76 |
+
<glyph unicode="" d="M1200 0v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417zM416 521l178 457l46 -140l116 -317 h-340z" />
|
77 |
+
<glyph unicode="" d="M100 1199h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111t-162 -38.5h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21 t-29 14t-49 14.5v70zM400 1079v-379h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400z" />
|
78 |
+
<glyph unicode="" d="M877 1200l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425z" />
|
79 |
+
<glyph unicode="" d="M1150 1200h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49v300h150h700zM100 1000v-800h75l-125 -167l-125 167h75v800h-75l125 167 l125 -167h-75z" />
|
80 |
+
<glyph unicode="" d="M950 1201h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50v300h150h700zM200 101h800v75l167 -125l-167 -125v75h-800v-75l-167 125l167 125 v-75z" />
|
81 |
+
<glyph unicode="" d="M700 950v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35zM1100 650v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1000 q21 0 35.5 15t14.5 35zM900 350v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" />
|
82 |
+
<glyph unicode="" d="M1000 950v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 650v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1100 q21 0 35.5 15t14.5 35zM1000 350v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" />
|
83 |
+
<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
84 |
+
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
85 |
+
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
|
86 |
+
<glyph unicode="" d="M400 1100h-100v-1100h100v1100zM700 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM1100 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM100 425v75h-201v100h201v75l166 -125zM900 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM1200 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" />
|
87 |
+
<glyph unicode="" d="M201 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM801 1100h100v-1100h-100v1100zM601 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM1101 425v75h200v100h-200v75l-167 -125zM401 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM701 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" />
|
88 |
+
<glyph unicode="" d="M900 925v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53zM1200 300l-300 300l300 300v-600z" />
|
89 |
+
<glyph unicode="" d="M1200 1056v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31zM1100 1000h-1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500zM476 750q0 -56 -39 -95t-95 -39t-95 39t-39 95t39 95t95 39t95 -39 t39 -95z" />
|
90 |
+
<glyph unicode="" d="M600 1213q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262q0 124 60.5 231.5t165 172t226.5 64.5zM599 514q107 0 182.5 75.5t75.5 182.5t-75.5 182 t-182.5 75t-182 -75.5t-75 -181.5q0 -107 75.5 -182.5t181.5 -75.5z" />
|
91 |
+
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 173v854q-176 0 -301.5 -125t-125.5 -302t125.5 -302t301.5 -125z " />
|
92 |
+
<glyph unicode="" d="M554 1295q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5zM455 296q-7 6 -18 17 t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156q14 -82 59.5 -136t136.5 -80z" />
|
93 |
+
<glyph unicode="" d="M1108 902l113 113l-21 85l-92 28l-113 -113zM1100 625v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125zM436 341l161 50l412 412l-114 113l-405 -405z" />
|
94 |
+
<glyph unicode="" d="M1100 453v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5z M813 431l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209z" />
|
95 |
+
<glyph unicode="" d="M1100 569v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69z M625 348l566 567l-136 137l-430 -431l-147 147l-136 -136z" />
|
96 |
+
<glyph unicode="" d="M900 303v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198l-300 300l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296z" />
|
97 |
+
<glyph unicode="" d="M900 0l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100z" />
|
98 |
+
<glyph unicode="" d="M1200 0l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100z" />
|
99 |
+
<glyph unicode="" d="M1200 0l-500 488v-488l-564 550l564 550v-487l500 487v-1100z" />
|
100 |
+
<glyph unicode="" d="M1100 550l-900 550v-1100z" />
|
101 |
+
<glyph unicode="" d="M500 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM900 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200 q21 0 35.5 14.5t14.5 35.5z" />
|
102 |
+
<glyph unicode="" d="M1100 150v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35z" />
|
103 |
+
<glyph unicode="" d="M500 0v488l-500 -488v1100l500 -487v487l564 -550z" />
|
104 |
+
<glyph unicode="" d="M1050 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488l-500 -488v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5z" />
|
105 |
+
<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5z" />
|
106 |
+
<glyph unicode="" d="M650 1064l-550 -564h1100zM1200 350v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
|
107 |
+
<glyph unicode="" d="M777 7l240 240l-353 353l353 353l-240 240l-592 -594z" />
|
108 |
+
<glyph unicode="" d="M513 -46l-241 240l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1z" />
|
109 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-200h-200v-200h200v-200h200v200h200v200h-200v200h-200z" />
|
110 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM300 700v-200h600v200h-600z" />
|
111 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM247 741l141 -141l-142 -141l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141 l-141 142z" />
|
112 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM546 623l-102 102l-174 -174l276 -277l411 411l-175 174z" />
|
113 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 500h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3 q-105 0 -172 -56t-67 -183h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5zM500 400v-100h200v100h-200z" />
|
114 |
+
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-100h200v100h-200zM400 700v-100h100v-200h-100v-100h400v100h-100v300h-300z" />
|
115 |
+
<glyph unicode="" d="M1200 700v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203zM700 500v-206q149 48 201 206h-201v200h200 q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210q24 -73 79.5 -127.5t130.5 -78.5v206h200z" />
|
116 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM844 735 l-135 -135l135 -135l-109 -109l-135 135l-135 -135l-109 109l135 135l-135 135l109 109l135 -135l135 135z" />
|
117 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM896 654 l-346 -345l-228 228l141 141l87 -87l204 205z" />
|
118 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM248 385l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5q0 -115 62 -215zM955 809l-564 -564q97 -59 209 -59q171 0 292.5 121.5 t121.5 292.5q0 112 -59 209z" />
|
119 |
+
<glyph unicode="" d="M1200 400h-600v-301l-600 448l600 453v-300h600v-300z" />
|
120 |
+
<glyph unicode="" d="M600 400h-600v300h600v300l600 -453l-600 -448v301z" />
|
121 |
+
<glyph unicode="" d="M1098 600h-298v-600h-300v600h-296l450 600z" />
|
122 |
+
<glyph unicode="" d="M998 600l-449 -600l-445 600h296v600h300v-600h298z" />
|
123 |
+
<glyph unicode="" d="M600 199v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453z" />
|
124 |
+
<glyph unicode="" d="M1200 1200h-400l129 -129l-294 -294l142 -142l294 294l129 -129v400zM565 423l-294 -294l129 -129h-400v400l129 -129l294 294z" />
|
125 |
+
<glyph unicode="" d="M871 730l129 -130h-400v400l129 -129l295 295l142 -141zM200 600h400v-400l-129 130l-295 -295l-142 141l295 295z" />
|
126 |
+
<glyph unicode="" d="M600 1177q118 0 224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5t45.5 224.5t123 184t184 123t224.5 45.5zM686 549l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5 l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5zM700 400h-200v-100h200v100z" />
|
127 |
+
<glyph unicode="" d="M1200 900h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100h100v-200h400v300h200v-300h400v200h100v100z M731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269zM481 900h-281q-3 0 14 48t35 96l18 47zM100 0h400v400h-400v-400zM700 400h400v-400h-400v400z" />
|
128 |
+
<glyph unicode="" d="M0 121l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55l-201 -202 v143zM692 611q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5t86.5 76.5q55 66 367 234z" />
|
129 |
+
<glyph unicode="" d="M1261 600l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5 t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30zM600 240q64 0 123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212 q0 85 46 158q-102 -87 -226 -258q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5zM484 762l-107 -106q49 -124 154 -191l105 105q-37 24 -75 72t-57 84z" />
|
130 |
+
<glyph unicode="" d="M906 1200l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148zM1261 600l-26 -40q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5 t-124 -100t-146.5 -79l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52zM513 264l37 141q-107 18 -178.5 101.5t-71.5 193.5q0 85 46 158q-102 -87 -226 -258q210 -282 393 -336z M484 762l-107 -106q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68z" />
|
131 |
+
<glyph unicode="" d="M-47 0h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66t50.5 -34zM700 200v100h-200v-100h-345l445 723l445 -723h-345zM700 700h-200v-100l100 -300l100 300v100z" />
|
132 |
+
<glyph unicode="" d="M800 711l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41q0 20 11 44.5t26 38.5 l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339z" />
|
133 |
+
<glyph unicode="" d="M941 800l-600 -600h-341v200h259l600 600h241v198l300 -295l-300 -300v197h-159zM381 678l141 142l-181 180h-341v-200h259zM1100 598l300 -295l-300 -300v197h-241l-181 181l141 142l122 -123h159v198z" />
|
134 |
+
<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
|
135 |
+
<glyph unicode="" d="M400 900h-300v300h300v-300zM1100 900h-300v300h300v-300zM1100 800v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5t-58 109.5t-31.5 116t-15 104t-3 83v200h300v-250q0 -113 6 -145 q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300z" />
|
136 |
+
<glyph unicode="" d="M902 184l226 227l-578 579l-580 -579l227 -227l352 353z" />
|
137 |
+
<glyph unicode="" d="M650 218l578 579l-226 227l-353 -353l-352 353l-227 -227z" />
|
138 |
+
<glyph unicode="" d="M1198 400v600h-796l215 -200h381v-400h-198l299 -283l299 283h-200zM-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196z" />
|
139 |
+
<glyph unicode="" d="M1050 1200h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35 q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43l-100 475q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5z" />
|
140 |
+
<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
|
141 |
+
<glyph unicode="" d="M201 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000zM1501 700l-300 -700h-1200l300 700h1200z" />
|
142 |
+
<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
|
143 |
+
<glyph unicode="" d="M900 303v197h-600v-197l-300 297l300 298v-198h600v198l300 -298z" />
|
144 |
+
<glyph unicode="" d="M31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM100 300h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM900 200h-100v-100h100v100z M1100 200h-100v-100h100v100z" />
|
145 |
+
<glyph unicode="" d="M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35zM325 800l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351v250v5 q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200zM-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5z" />
|
146 |
+
<glyph unicode="" d="M445 1180l-45 -233l-224 78l78 -225l-233 -44l179 -156l-179 -155l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180z" />
|
147 |
+
<glyph unicode="" d="M700 1200h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5zM700 925l-50 -225h450 v-125l-250 -375h-214l-136 100h-100v375l150 212l100 213h50v-175zM0 800v-600h200v600h-200z" />
|
148 |
+
<glyph unicode="" d="M700 0h-50q-27 0 -51 20t-38 48l-96 198l-145 196q-20 26 -20 63v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5zM200 400h-200v600h200 v-600zM700 275l-50 225h450v125l-250 375h-214l-136 -100h-100v-375l150 -212l100 -213h50v175z" />
|
149 |
+
<glyph unicode="" d="M364 873l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM408 792v-503 l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83zM208 200h-200v600h200v-600z" />
|
150 |
+
<glyph unicode="" d="M475 1104l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111t54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6zM370 946 l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100h222q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237zM1199 201h-200v600h200v-600z" />
|
151 |
+
<glyph unicode="" d="M1100 473v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90zM911 400h-503l-236 339 l83 86l183 -146q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294zM1000 200v-200h-600v200h600z" />
|
152 |
+
<glyph unicode="" d="M305 1104v200h600v-200h-600zM605 310l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15l-230 -362q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106z M905 804v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146l-83 86l237 339h503z" />
|
153 |
+
<glyph unicode="" d="M603 1195q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM598 701h-298v-201h300l-2 -194l402 294l-402 298v-197z" />
|
154 |
+
<glyph unicode="" d="M597 1195q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5zM200 600l400 -294v194h302v201h-300v197z" />
|
155 |
+
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM300 600h200v-300h200v300h200l-300 400z" />
|
156 |
+
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM500 900v-300h-200l300 -400l300 400h-200v300h-200z" />
|
157 |
+
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM627 1101q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6 q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55 t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q102 -2 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7 q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5 t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23q-19 -3 -37 0zM613 994q0 -18 8 -42.5t16.5 -44t9.5 -23.5q-9 2 -31 5t-36 5t-32 8t-30 14q3 12 16 30t16 25q10 -10 18.5 -10 t14 6t14.5 14.5t16 12.5z" />
|
158 |
+
<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
|
159 |
+
<glyph unicode="" d="M1100 1200v-100h-1000v100h1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
|
160 |
+
<glyph unicode="" d="M329 729l142 142l-200 200l129 129h-400v-400l129 129zM1200 1200v-400l-129 129l-200 -200l-142 142l200 200l-129 129h400zM271 129l129 -129h-400v400l129 -129l200 200l142 -142zM1071 271l129 129v-400h-400l129 129l-200 200l142 142z" />
|
161 |
+
<glyph unicode="" d="M596 1192q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1010q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM455 905 q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5t16 38.5t39 16.5zM708 821l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5 q0 32 20.5 56.5t51.5 29.5zM855 709q23 0 38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39q0 22 16 38t39 16zM345 709q23 0 39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39t15.5 38.5t38.5 15.5z" />
|
162 |
+
<glyph unicode="" d="M649 54l-16 22q-90 125 -293 323q-71 70 -104.5 105.5t-77 89.5t-61 99t-17.5 91q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-203 -198 -293 -323zM844 524l12 12 q64 62 97.5 97t64.5 79t31 72q0 71 -48 119t-105 48q-74 0 -132 -82l-118 -171l-114 174q-51 79 -123 79q-60 0 -109.5 -49t-49.5 -118q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203z" />
|
163 |
+
<glyph unicode="" d="M476 406l19 -17l105 105l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159q0 -93 66 -159zM123 193l141 -141q66 -66 159 -66q95 0 159 66 l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159q0 -94 66 -160z" />
|
164 |
+
<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM900 1000h-600v-700h600v700zM600 46q43 0 73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5t-73.5 -30.5t-30.5 -73.5 t30.5 -73.5t73.5 -30.5z" />
|
165 |
+
<glyph unicode="" d="M700 1029v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5 t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5zM600 755v274q-61 -8 -97.5 -37.5t-36.5 -102.5q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3zM700 548 v-311q170 18 170 151q0 64 -44 99.5t-126 60.5z" />
|
166 |
+
<glyph unicode="" d="M866 300l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5 t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94 q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30z" />
|
167 |
+
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1200l298 -300h-198v-900h-200v900h-198z" />
|
168 |
+
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-500h-100v100h-100v-100h-100v500h300zM901 1100h-100v-200h100v200zM700 500h300v-200h-99v-100h-100v100h99v100h-200v100zM800 100h200v-100h-300v200h100v-100z" />
|
169 |
+
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-200h-99v-100h-100v100h99v100h-200v100h300zM800 800h200v-100h-300v200h100v-100zM700 500h300v-500h-100v100h-100v-100h-100v500zM801 200h100v200h-100v-200z" />
|
170 |
+
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1100h-100v100h200v-500h-100v400zM1100 500v-500h-100v100h-200v400h300zM1001 400h-100v-200h100v200z" />
|
171 |
+
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1100 1200v-500h-100v100h-200v400h300zM1001 1100h-100v-200h100v200zM900 400h-100v100h200v-500h-100v400z" />
|
172 |
+
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
|
173 |
+
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
|
174 |
+
<glyph unicode="" d="M400 1100h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5z" />
|
175 |
+
<glyph unicode="" d="M700 0h-300q-163 0 -281.5 117.5t-118.5 282.5v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5zM400 800v-500l333 250z" />
|
176 |
+
<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM800 700h-500l250 -333z" />
|
177 |
+
<glyph unicode="" d="M1100 700v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM550 733l-250 -333h500z" />
|
178 |
+
<glyph unicode="" d="M500 1100h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200zM700 550l-400 -350v200h-300v300h300v200z" />
|
179 |
+
<glyph unicode="" d="M403 2l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32z" />
|
180 |
+
<glyph unicode="" d="M800 200h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185zM900 200v200h-300v300h300v200l400 -350z" />
|
181 |
+
<glyph unicode="" d="M1200 700l-149 149l-342 -353l-213 213l353 342l-149 149h500v-500zM1022 571l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5v-300 q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98z" />
|
182 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 794 q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
|
183 |
+
<glyph unicode="" d="M700 800v400h-300v-400h-300l445 -500l450 500h-295zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
184 |
+
<glyph unicode="" d="M400 700v-300h300v300h295l-445 500l-450 -500h300zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
185 |
+
<glyph unicode="" d="M405 400l596 596l-154 155l-442 -442l-150 151l-155 -155zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
186 |
+
<glyph unicode="" d="M409 1103l-97 97l-212 -212l97 -98zM650 861l-149 149l-212 -212l149 -149l-238 -248h700v699zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
187 |
+
<glyph unicode="" d="M539 950l-149 -149l212 -212l149 148l248 -237v700h-699zM297 709l-97 -97l212 -212l98 97zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
188 |
+
<glyph unicode="" d="M1200 1199v-1079l-475 272l-310 -393v416h-392zM1166 1148l-672 -712v-226z" />
|
189 |
+
<glyph unicode="" d="M1100 1000v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1200h-100v-200h100v200z" />
|
190 |
+
<glyph unicode="" d="M578 500h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120zM700 1200h-100v-200h100v200zM1300 538l-475 -476l-244 244l123 123l120 -120l353 352z" />
|
191 |
+
<glyph unicode="" d="M529 500h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170zM700 1200h-100v-200h100v200zM1167 6l-170 170l-170 -170l-127 127l170 170l-170 170l127 127l170 -170l170 170l127 -128 l-170 -169l170 -170z" />
|
192 |
+
<glyph unicode="" d="M700 500h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200zM700 1000h-100v200h100v-200zM1000 600h-200v-300h-200l300 -300l300 300h-200v300z" />
|
193 |
+
<glyph unicode="" d="M602 500h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200zM700 1000h-100v200h100v-200zM1000 300h200l-300 300l-300 -300h200v-300h200v300z" />
|
194 |
+
<glyph unicode="" d="M1200 900v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1200zM0 800v-550q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200zM100 500h400v-200h-400v200z" />
|
195 |
+
<glyph unicode="" d="M500 1000h400v198l300 -298l-300 -298v198h-400v200zM100 800v200h100v-200h-100zM400 800h-100v200h100v-200zM700 300h-400v-198l-300 298l300 298v-198h400v-200zM800 500h100v-200h-100v200zM1000 500v-200h100v200h-100z" />
|
196 |
+
<glyph unicode="" d="M1200 50v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM550 1200l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447l-100 203v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300z" />
|
197 |
+
<glyph unicode="" d="M1100 106v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394 q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5z" />
|
198 |
+
<glyph unicode="" d="M675 1000l-100 100h-375l-100 -100h400l200 -200v-98l295 98h105v200h-425zM500 300v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5zM100 800h300v-200h-300v200zM700 565l400 133 v-163l-400 -133v163zM100 500h300v-200h-300v200zM805 300l295 98v-298h-425l-100 -100h-375l-100 100h400l200 200h105z" />
|
199 |
+
<glyph unicode="" d="M179 1169l-162 -162q-1 -11 -0.5 -32.5t16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118 q17 17 20 41.5t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14z" />
|
200 |
+
<glyph unicode="" d="M1200 712v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40t-53.5 -36.5t-31 -27.5l-9 -10v-200q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38 t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5zM800 650l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5 t30 -27.5t12 -24l1 -10v-50z" />
|
201 |
+
<glyph unicode="" d="M175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250zM1200 100v-100h-1100v100h1100z" />
|
202 |
+
<glyph unicode="" d="M600 1100h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300v1000q0 41 29.5 70.5t70.5 29.5zM1000 800h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300v700q0 41 29.5 70.5t70.5 29.5zM400 0v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400h300z" />
|
203 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" />
|
204 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM400 600h-100v200h-100v-500h100v200h100v-200h100v500h-100v-200zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" />
|
205 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-500h300v100h-200v300h200v100h-300zM600 800v-500h300v100h-200v300h200v100h-300z" />
|
206 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM500 700l-300 -150l300 -150v300zM600 400l300 150l-300 150v-300z" />
|
207 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM900 800v-500h-700v500h700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM800 700h-130 q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300z" />
|
208 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 300h100v500h-200v-100h100v-400z M601 300h100v100h-100v-100z" />
|
209 |
+
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM300 700v100h-100v-500h300v400h-200zM800 300h100v500h-200v-100h100v-400zM401 400h-100v200h100v-200z M601 300h100v100h-100v-100z" />
|
210 |
+
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM1000 900h-900v-700h900v700zM400 700h-200v100h300v-300h-99v-100h-100v100h99v200zM800 700h-100v100h200v-500h-100v400zM201 400h100v-100 h-100v100zM701 300h-100v100h100v-100z" />
|
211 |
+
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700h-300 v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
|
212 |
+
<glyph unicode="" d="M596 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700v-100 h-100v100h-200v-100h200v-100h-200v-100h-100v400h300zM800 400h-100v100h100v-100z" />
|
213 |
+
<glyph unicode="" d="M800 300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h222v300h400v-300zM700 200h200l-300 -300 l-300 300h200v300h200v-300z" />
|
214 |
+
<glyph unicode="" d="M600 714l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h8zM700 -100h-200v300h-200l300 300 l300 -300h-200v-300z" />
|
215 |
+
<glyph unicode="" d="M700 200h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-155l-75 -45h350l-75 45v155z" />
|
216 |
+
<glyph unicode="" d="M700 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5 q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350z" />
|
217 |
+
<glyph unicode="💼" d="M800 1000h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100zM500 1000h200v100h-200v-100zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
|
218 |
+
<glyph unicode="📅" d="M1100 900v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1100zM0 800v-750q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100zM100 600h100v-100h-100v100zM300 600h100v-100h-100v100z M500 600h100v-100h-100v100zM700 600h100v-100h-100v100zM900 600h100v-100h-100v100zM100 400h100v-100h-100v100zM300 400h100v-100h-100v100zM500 400h100v-100h-100v100zM700 400h100v-100h-100v100zM900 400h100v-100h-100v100zM100 200h100v-100h-100v100zM300 200 h100v-100h-100v100zM500 200h100v-100h-100v100zM700 200h100v-100h-100v100zM900 200h100v-100h-100v100z" />
|
219 |
+
<glyph unicode="📌" d="M902 1185l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207l-380 -303l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15z" />
|
220 |
+
<glyph unicode="📎" d="M518 119l69 -60l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163t35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84 t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348 q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256z" />
|
221 |
+
<glyph unicode="📷" d="M1200 200v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5z M1000 700h-100v100h100v-100zM844 500q0 -100 -72 -172t-172 -72t-172 72t-72 172t72 172t172 72t172 -72t72 -172zM706 500q0 44 -31 75t-75 31t-75 -31t-31 -75t31 -75t75 -31t75 31t31 75z" />
|
222 |
+
<glyph unicode="🔒" d="M900 800h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
|
223 |
+
<glyph unicode="🔔" d="M1062 400h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94 q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327zM600 104q-54 0 -103 6q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6z" />
|
224 |
+
<glyph unicode="🔖" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
|
225 |
+
<glyph unicode="🔥" d="M400 755q2 -12 8 -41.5t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85t5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5 q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129 q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5z" />
|
226 |
+
<glyph unicode="🔧" d="M948 778l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138z" />
|
227 |
+
</font>
|
228 |
+
</defs></svg>
|
inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.ttf
ADDED
Binary file
|
inc/libraries/bootstrap/fonts/glyphicons-halflings-regular.woff
ADDED
Binary file
|
inc/libraries/bootstrap/js/bootstrap.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* bootstrap.js v3.0.0 by @fat and @mdo
|
3 |
+
* Copyright 2013 Twitter Inc.
|
4 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
5 |
+
*/
|
6 |
+
if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
|
inc/libraries/countdown/css/jquery.countdown.css
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* jQuery Countdown styles 2.0.0. */
|
2 |
+
.is-countdown {
|
3 |
+
border: 1px solid #ccc;
|
4 |
+
background-color: #eee;
|
5 |
+
}
|
6 |
+
.countdown-rtl {
|
7 |
+
direction: rtl;
|
8 |
+
}
|
9 |
+
.countdown-holding span {
|
10 |
+
color: #888;
|
11 |
+
}
|
12 |
+
.countdown-row {
|
13 |
+
clear: both;
|
14 |
+
width: 100%;
|
15 |
+
padding: 0px 2px;
|
16 |
+
text-align: center;
|
17 |
+
}
|
18 |
+
.countdown-show1 .countdown-section {
|
19 |
+
width: 98%;
|
20 |
+
}
|
21 |
+
.countdown-show2 .countdown-section {
|
22 |
+
width: 48%;
|
23 |
+
}
|
24 |
+
.countdown-show3 .countdown-section {
|
25 |
+
width: 32.5%;
|
26 |
+
}
|
27 |
+
.countdown-show4 .countdown-section {
|
28 |
+
width: 24.5%;
|
29 |
+
}
|
30 |
+
.countdown-show5 .countdown-section {
|
31 |
+
width: 19.5%;
|
32 |
+
}
|
33 |
+
.countdown-show6 .countdown-section {
|
34 |
+
width: 16.25%;
|
35 |
+
}
|
36 |
+
.countdown-show7 .countdown-section {
|
37 |
+
width: 14%;
|
38 |
+
}
|
39 |
+
.countdown-section {
|
40 |
+
display: block;
|
41 |
+
float: left;
|
42 |
+
font-size: 75%;
|
43 |
+
text-align: center;
|
44 |
+
}
|
45 |
+
.countdown-amount {
|
46 |
+
font-size: 200%;
|
47 |
+
}
|
48 |
+
.countdown-period {
|
49 |
+
display: block;
|
50 |
+
}
|
51 |
+
.countdown-descr {
|
52 |
+
display: block;
|
53 |
+
width: 100%;
|
54 |
+
}
|
inc/libraries/countdown/js/jquery.countdown.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* http://keith-wood.name/countdown.html
|
2 |
+
Countdown for jQuery v2.0.2.
|
3 |
+
Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.
|
4 |
+
Available under the MIT (http://keith-wood.name/licence.html) license.
|
5 |
+
Please attribute the author if you use it. */
|
6 |
+
(function($){var w='countdown';var Y=0;var O=1;var W=2;var D=3;var H=4;var M=5;var S=6;$.JQPlugin.createPlugin({name:w,defaultOptions:{until:null,since:null,timezone:null,serverSync:null,format:'dHMS',layout:'',compact:false,padZeroes:false,significant:0,description:'',expiryUrl:'',expiryText:'',alwaysExpire:false,onExpiry:null,onTick:null,tickInterval:1},regionalOptions:{'':{labels:['Years','Months','Weeks','Days','Hours','Minutes','Seconds'],labels1:['Year','Month','Week','Day','Hour','Minute','Second'],compactLabels:['y','m','w','d'],whichLabels:null,digits:['0','1','2','3','4','5','6','7','8','9'],timeSeparator:':',isRTL:false}},_getters:['getTimes'],_rtlClass:w+'-rtl',_sectionClass:w+'-section',_amountClass:w+'-amount',_periodClass:w+'-period',_rowClass:w+'-row',_holdingClass:w+'-holding',_showClass:w+'-show',_descrClass:w+'-descr',_timerElems:[],_init:function(){var c=this;this._super();this._serverSyncs=[];var d=(typeof Date.now=='function'?Date.now:function(){return new Date().getTime()});var e=(window.performance&&typeof window.performance.now=='function');function timerCallBack(a){var b=(a<1e12?(e?(performance.now()+performance.timing.navigationStart):d()):a||d());if(b-g>=1000){c._updateElems();g=b}f(timerCallBack)}var f=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||null;var g=0;if(!f||$.noRequestAnimationFrame){$.noRequestAnimationFrame=null;setInterval(function(){c._updateElems()},980)}else{g=window.animationStartTime||window.webkitAnimationStartTime||window.mozAnimationStartTime||window.oAnimationStartTime||window.msAnimationStartTime||d();f(timerCallBack)}},UTCDate:function(a,b,c,e,f,g,h,i){if(typeof b=='object'&&b.constructor==Date){i=b.getMilliseconds();h=b.getSeconds();g=b.getMinutes();f=b.getHours();e=b.getDate();c=b.getMonth();b=b.getFullYear()}var d=new Date();d.setUTCFullYear(b);d.setUTCDate(1);d.setUTCMonth(c||0);d.setUTCDate(e||1);d.setUTCHours(f||0);d.setUTCMinutes((g||0)-(Math.abs(a)<30?a*60:a));d.setUTCSeconds(h||0);d.setUTCMilliseconds(i||0);return d},periodsToSeconds:function(a){return a[0]*31557600+a[1]*2629800+a[2]*604800+a[3]*86400+a[4]*3600+a[5]*60+a[6]},resync:function(){var d=this;$('.'+this._getMarker()).each(function(){var a=$.data(this,d.name);if(a.options.serverSync){var b=null;for(var i=0;i<d._serverSyncs.length;i++){if(d._serverSyncs[i][0]==a.options.serverSync){b=d._serverSyncs[i];break}}if(b[2]==null){var c=($.isFunction(a.options.serverSync)?a.options.serverSync.apply(this,[]):null);b[2]=(c?new Date().getTime()-c.getTime():0)-b[1]}if(a._since){a._since.setMilliseconds(a._since.getMilliseconds()+b[2])}a._until.setMilliseconds(a._until.getMilliseconds()+b[2])}});for(var i=0;i<d._serverSyncs.length;i++){if(d._serverSyncs[i][2]!=null){d._serverSyncs[i][1]+=d._serverSyncs[i][2];delete d._serverSyncs[i][2]}}},_instSettings:function(a,b){return{_periods:[0,0,0,0,0,0,0]}},_addElem:function(a){if(!this._hasElem(a)){this._timerElems.push(a)}},_hasElem:function(a){return($.inArray(a,this._timerElems)>-1)},_removeElem:function(b){this._timerElems=$.map(this._timerElems,function(a){return(a==b?null:a)})},_updateElems:function(){for(var i=this._timerElems.length-1;i>=0;i--){this._updateCountdown(this._timerElems[i])}},_optionsChanged:function(a,b,c){if(c.layout){c.layout=c.layout.replace(/</g,'<').replace(/>/g,'>')}this._resetExtraLabels(b.options,c);var d=(b.options.timezone!=c.timezone);$.extend(b.options,c);this._adjustSettings(a,b,c.until!=null||c.since!=null||d);var e=new Date();if((b._since&&b._since<e)||(b._until&&b._until>e)){this._addElem(a[0])}this._updateCountdown(a,b)},_updateCountdown:function(a,b){a=a.jquery?a:$(a);b=b||this._getInst(a);if(!b){return}a.html(this._generateHTML(b)).toggleClass(this._rtlClass,b.options.isRTL);if($.isFunction(b.options.onTick)){var c=b._hold!='lap'?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date());if(b.options.tickInterval==1||this.periodsToSeconds(c)%b.options.tickInterval==0){b.options.onTick.apply(a[0],[c])}}var d=b._hold!='pause'&&(b._since?b._now.getTime()<b._since.getTime():b._now.getTime()>=b._until.getTime());if(d&&!b._expiring){b._expiring=true;if(this._hasElem(a[0])||b.options.alwaysExpire){this._removeElem(a[0]);if($.isFunction(b.options.onExpiry)){b.options.onExpiry.apply(a[0],[])}if(b.options.expiryText){var e=b.options.layout;b.options.layout=b.options.expiryText;this._updateCountdown(a[0],b);b.options.layout=e}if(b.options.expiryUrl){window.location=b.options.expiryUrl}}b._expiring=false}else if(b._hold=='pause'){this._removeElem(a[0])}},_resetExtraLabels:function(a,b){for(var n in b){if(n.match(/[Ll]abels[02-9]|compactLabels1/)){a[n]=b[n]}}for(var n in a){if(n.match(/[Ll]abels[02-9]|compactLabels1/)&&typeof b[n]==='undefined'){a[n]=null}}},_adjustSettings:function(a,b,c){var d=null;for(var i=0;i<this._serverSyncs.length;i++){if(this._serverSyncs[i][0]==b.options.serverSync){d=this._serverSyncs[i][1];break}}if(d!=null){var e=(b.options.serverSync?d:0);var f=new Date()}else{var g=($.isFunction(b.options.serverSync)?b.options.serverSync.apply(a[0],[]):null);var f=new Date();var e=(g?f.getTime()-g.getTime():0);this._serverSyncs.push([b.options.serverSync,e])}var h=b.options.timezone;h=(h==null?-f.getTimezoneOffset():h);if(c||(!c&&b._until==null&&b._since==null)){b._since=b.options.since;if(b._since!=null){b._since=this.UTCDate(h,this._determineTime(b._since,null));if(b._since&&e){b._since.setMilliseconds(b._since.getMilliseconds()+e)}}b._until=this.UTCDate(h,this._determineTime(b.options.until,f));if(e){b._until.setMilliseconds(b._until.getMilliseconds()+e)}}b._show=this._determineShow(b)},_preDestroy:function(a,b){this._removeElem(a[0]);a.empty()},pause:function(a){this._hold(a,'pause')},lap:function(a){this._hold(a,'lap')},resume:function(a){this._hold(a,null)},toggle:function(a){var b=$.data(a,this.name)||{};this[!b._hold?'pause':'resume'](a)},toggleLap:function(a){var b=$.data(a,this.name)||{};this[!b._hold?'lap':'resume'](a)},_hold:function(a,b){var c=$.data(a,this.name);if(c){if(c._hold=='pause'&&!b){c._periods=c._savePeriods;var d=(c._since?'-':'+');c[c._since?'_since':'_until']=this._determineTime(d+c._periods[0]+'y'+d+c._periods[1]+'o'+d+c._periods[2]+'w'+d+c._periods[3]+'d'+d+c._periods[4]+'h'+d+c._periods[5]+'m'+d+c._periods[6]+'s');this._addElem(a)}c._hold=b;c._savePeriods=(b=='pause'?c._periods:null);$.data(a,this.name,c);this._updateCountdown(a,c)}},getTimes:function(a){var b=$.data(a,this.name);return(!b?null:(b._hold=='pause'?b._savePeriods:(!b._hold?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date()))))},_determineTime:function(k,l){var m=this;var n=function(a){var b=new Date();b.setTime(b.getTime()+a*1000);return b};var o=function(a){a=a.toLowerCase();var b=new Date();var c=b.getFullYear();var d=b.getMonth();var e=b.getDate();var f=b.getHours();var g=b.getMinutes();var h=b.getSeconds();var i=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;var j=i.exec(a);while(j){switch(j[2]||'s'){case's':h+=parseInt(j[1],10);break;case'm':g+=parseInt(j[1],10);break;case'h':f+=parseInt(j[1],10);break;case'd':e+=parseInt(j[1],10);break;case'w':e+=parseInt(j[1],10)*7;break;case'o':d+=parseInt(j[1],10);e=Math.min(e,m._getDaysInMonth(c,d));break;case'y':c+=parseInt(j[1],10);e=Math.min(e,m._getDaysInMonth(c,d));break}j=i.exec(a)}return new Date(c,d,e,f,g,h,0)};var p=(k==null?l:(typeof k=='string'?o(k):(typeof k=='number'?n(k):k)));if(p)p.setMilliseconds(0);return p},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_normalLabels:function(a){return a},_generateHTML:function(c){var d=this;c._periods=(c._hold?c._periods:this._calculatePeriods(c,c._show,c.options.significant,new Date()));var e=false;var f=0;var g=c.options.significant;var h=$.extend({},c._show);for(var i=Y;i<=S;i++){e|=(c._show[i]=='?'&&c._periods[i]>0);h[i]=(c._show[i]=='?'&&!e?null:c._show[i]);f+=(h[i]?1:0);g-=(c._periods[i]>0?1:0)}var j=[false,false,false,false,false,false,false];for(var i=S;i>=Y;i--){if(c._show[i]){if(c._periods[i]){j[i]=true}else{j[i]=g>0;g--}}}var k=(c.options.compact?c.options.compactLabels:c.options.labels);var l=c.options.whichLabels||this._normalLabels;var m=function(a){var b=c.options['compactLabels'+l(c._periods[a])];return(h[a]?d._translateDigits(c,c._periods[a])+(b?b[a]:k[a])+' ':'')};var n=(c.options.padZeroes?2:1);var o=function(a){var b=c.options['labels'+l(c._periods[a])];return((!c.options.significant&&h[a])||(c.options.significant&&j[a])?'<span class="'+d._sectionClass+'">'+'<span class="'+d._amountClass+'">'+d._minDigits(c,c._periods[a],n)+'</span>'+'<span class="'+d._periodClass+'">'+(b?b[a]:k[a])+'</span></span>':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?'<span class="'+this._rowClass+' '+this._amountClass+(c._hold?' '+this._holdingClass:'')+'">'+m(Y)+m(O)+m(W)+m(D)+(h[H]?this._minDigits(c,c._periods[H],2):'')+(h[M]?(h[H]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[M],2):'')+(h[S]?(h[H]||h[M]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[S],2):''):'<span class="'+this._rowClass+' '+this._showClass+(c.options.significant||f)+(c._hold?' '+this._holdingClass:'')+'">'+o(Y)+o(O)+o(W)+o(D)+o(H)+o(M)+o(S))+'</span>'+(c.options.description?'<span class="'+this._rowClass+' '+this._descrClass+'">'+c.options.description+'</span>':'')))},_buildLayout:function(c,d,e,f,g,h){var j=c.options[f?'compactLabels':'labels'];var k=c.options.whichLabels||this._normalLabels;var l=function(a){return(c.options[(f?'compactLabels':'labels')+k(c._periods[a])]||j)[a]};var m=function(a,b){return c.options.digits[Math.floor(a/b)%10]};var o={desc:c.options.description,sep:c.options.timeSeparator,yl:l(Y),yn:this._minDigits(c,c._periods[Y],1),ynn:this._minDigits(c,c._periods[Y],2),ynnn:this._minDigits(c,c._periods[Y],3),y1:m(c._periods[Y],1),y10:m(c._periods[Y],10),y100:m(c._periods[Y],100),y1000:m(c._periods[Y],1000),ol:l(O),on:this._minDigits(c,c._periods[O],1),onn:this._minDigits(c,c._periods[O],2),onnn:this._minDigits(c,c._periods[O],3),o1:m(c._periods[O],1),o10:m(c._periods[O],10),o100:m(c._periods[O],100),o1000:m(c._periods[O],1000),wl:l(W),wn:this._minDigits(c,c._periods[W],1),wnn:this._minDigits(c,c._periods[W],2),wnnn:this._minDigits(c,c._periods[W],3),w1:m(c._periods[W],1),w10:m(c._periods[W],10),w100:m(c._periods[W],100),w1000:m(c._periods[W],1000),dl:l(D),dn:this._minDigits(c,c._periods[D],1),dnn:this._minDigits(c,c._periods[D],2),dnnn:this._minDigits(c,c._periods[D],3),d1:m(c._periods[D],1),d10:m(c._periods[D],10),d100:m(c._periods[D],100),d1000:m(c._periods[D],1000),hl:l(H),hn:this._minDigits(c,c._periods[H],1),hnn:this._minDigits(c,c._periods[H],2),hnnn:this._minDigits(c,c._periods[H],3),h1:m(c._periods[H],1),h10:m(c._periods[H],10),h100:m(c._periods[H],100),h1000:m(c._periods[H],1000),ml:l(M),mn:this._minDigits(c,c._periods[M],1),mnn:this._minDigits(c,c._periods[M],2),mnnn:this._minDigits(c,c._periods[M],3),m1:m(c._periods[M],1),m10:m(c._periods[M],10),m100:m(c._periods[M],100),m1000:m(c._periods[M],1000),sl:l(S),sn:this._minDigits(c,c._periods[S],1),snn:this._minDigits(c,c._periods[S],2),snnn:this._minDigits(c,c._periods[S],3),s1:m(c._periods[S],1),s10:m(c._periods[S],10),s100:m(c._periods[S],100),s1000:m(c._periods[S],1000)};var p=e;for(var i=Y;i<=S;i++){var q='yowdhms'.charAt(i);var r=new RegExp('\\{'+q+'<\\}([\\s\\S]*)\\{'+q+'>\\}','g');p=p.replace(r,((!g&&d[i])||(g&&h[i])?'$1':''))}$.each(o,function(n,v){var a=new RegExp('\\{'+n+'\\}','g');p=p.replace(a,v)});return p},_minDigits:function(a,b,c){b=''+b;if(b.length>=c){return this._translateDigits(a,b)}b='0000000000'+b;return this._translateDigits(a,b.substr(b.length-c))},_translateDigits:function(b,c){return(''+c).replace(/[0-9]/g,function(a){return b.options.digits[a]})},_determineShow:function(a){var b=a.options.format;var c=[];c[Y]=(b.match('y')?'?':(b.match('Y')?'!':null));c[O]=(b.match('o')?'?':(b.match('O')?'!':null));c[W]=(b.match('w')?'?':(b.match('W')?'!':null));c[D]=(b.match('d')?'?':(b.match('D')?'!':null));c[H]=(b.match('h')?'?':(b.match('H')?'!':null));c[M]=(b.match('m')?'?':(b.match('M')?'!':null));c[S]=(b.match('s')?'?':(b.match('S')?'!':null));return c},_calculatePeriods:function(c,d,e,f){c._now=f;c._now.setMilliseconds(0);var g=new Date(c._now.getTime());if(c._since){if(f.getTime()<c._since.getTime()){c._now=f=g}else{f=c._since}}else{g.setTime(c._until.getTime());if(f.getTime()>c._until.getTime()){c._now=f=g}}var h=[0,0,0,0,0,0,0];if(d[Y]||d[O]){var i=this._getDaysInMonth(f.getFullYear(),f.getMonth());var j=this._getDaysInMonth(g.getFullYear(),g.getMonth());var k=(g.getDate()==f.getDate()||(g.getDate()>=Math.min(i,j)&&f.getDate()>=Math.min(i,j)));var l=function(a){return(a.getHours()*60+a.getMinutes())*60+a.getSeconds()};var m=Math.max(0,(g.getFullYear()-f.getFullYear())*12+g.getMonth()-f.getMonth()+((g.getDate()<f.getDate()&&!k)||(k&&l(g)<l(f))?-1:0));h[Y]=(d[Y]?Math.floor(m/12):0);h[O]=(d[O]?m-h[Y]*12:0);f=new Date(f.getTime());var n=(f.getDate()==i);var o=this._getDaysInMonth(f.getFullYear()+h[Y],f.getMonth()+h[O]);if(f.getDate()>o){f.setDate(o)}f.setFullYear(f.getFullYear()+h[Y]);f.setMonth(f.getMonth()+h[O]);if(n){f.setDate(o)}}var p=Math.floor((g.getTime()-f.getTime())/1000);var q=function(a,b){h[a]=(d[a]?Math.floor(p/b):0);p-=h[a]*b};q(W,604800);q(D,86400);q(H,3600);q(M,60);q(S,1);if(p>0&&!c._since){var r=[1,12,4.3482,7,24,60,60];var s=S;var t=1;for(var u=S;u>=Y;u--){if(d[u]){if(h[s]>=t){h[s]=0;p=1}if(p>0){h[u]++;p=0;s=u;t=1}}t*=r[u]}}if(e){for(var u=Y;u<=S;u++){if(e&&h[u]){e--}else if(!e){h[u]=0}}}return h}})})(jQuery);
|
inc/libraries/countdown/js/jquery.plugin.min.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/** Abstract base class for collection plugins v1.0.1.
|
2 |
+
Written by Keith Wood (kbwood{at}iinet.com.au) December 2013.
|
3 |
+
Licensed under the MIT (http://keith-wood.name/licence.html) license. */
|
4 |
+
(function(){var j=false;window.JQClass=function(){};JQClass.classes={};JQClass.extend=function extender(f){var g=this.prototype;j=true;var h=new this();j=false;for(var i in f){h[i]=typeof f[i]=='function'&&typeof g[i]=='function'?(function(d,e){return function(){var b=this._super;this._super=function(a){return g[d].apply(this,a||[])};var c=e.apply(this,arguments);this._super=b;return c}})(i,f[i]):f[i]}function JQClass(){if(!j&&this._init){this._init.apply(this,arguments)}}JQClass.prototype=h;JQClass.prototype.constructor=JQClass;JQClass.extend=extender;return JQClass}})();(function($){JQClass.classes.JQPlugin=JQClass.extend({name:'plugin',defaultOptions:{},regionalOptions:{},_getters:[],_getMarker:function(){return'is-'+this.name},_init:function(){$.extend(this.defaultOptions,(this.regionalOptions&&this.regionalOptions[''])||{});var c=camelCase(this.name);$[c]=this;$.fn[c]=function(a){var b=Array.prototype.slice.call(arguments,1);if($[c]._isNotChained(a,b)){return $[c][a].apply($[c],[this[0]].concat(b))}return this.each(function(){if(typeof a==='string'){if(a[0]==='_'||!$[c][a]){throw'Unknown method: '+a;}$[c][a].apply($[c],[this].concat(b))}else{$[c]._attach(this,a)}})}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_isNotChained:function(a,b){if(a==='option'&&(b.length===0||(b.length===1&&typeof b[0]==='string'))){return true}return $.inArray(a,this._getters)>-1},_attach:function(a,b){a=$(a);if(a.hasClass(this._getMarker())){return}a.addClass(this._getMarker());b=$.extend({},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c);this._postAttach(a,c);this.option(a,b)},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(d){try{var f=d.data(this.name.toLowerCase())||'';f=f.replace(/'/g,'"');f=f.replace(/([a-zA-Z0-9]+):/g,function(a,b,i){var c=f.substring(0,i).match(/"/g);return(!c||c.length%2===0?'"'+b+'":':b+':')});f=$.parseJSON('{'+f+'}');for(var g in f){var h=f[g];if(typeof h==='string'&&h.match(/^new Date\((.*)\)$/)){f[g]=eval(h)}}return f}catch(e){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name);if(!b||(typeof b==='string'&&c==null)){var e=(d||{}).options;return(e&&b?e[b]:e)}if(!a.hasClass(this._getMarker())){return}var e=b||{};if(typeof b==='string'){e={};e[b]=c}this._optionsChanged(a,d,e);$.extend(d.options,e)},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}this._preDestroy(a,this._getInst(a));a.removeData(this.name).removeClass(this._getMarker())},_preDestroy:function(a,b){}});function camelCase(c){return c.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}$.JQPlugin={createPlugin:function(a,b){if(typeof a==='object'){b=a;a='JQPlugin'}a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b);new JQClass.classes[c]()}}})(jQuery);
|
inc/libraries/magnific-popup/css/magnific-popup.css
ADDED
@@ -0,0 +1,429 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Magnific Popup CSS */
|
2 |
+
.mfp-bg {
|
3 |
+
top: 0;
|
4 |
+
left: 0;
|
5 |
+
width: 100%;
|
6 |
+
height: 100%;
|
7 |
+
z-index: 1042;
|
8 |
+
overflow: hidden;
|
9 |
+
position: fixed;
|
10 |
+
background: #0b0b0b;
|
11 |
+
opacity: 0.8;
|
12 |
+
filter: alpha(opacity=80); }
|
13 |
+
|
14 |
+
.mfp-wrap {
|
15 |
+
top: 0;
|
16 |
+
left: 0;
|
17 |
+
width: 100%;
|
18 |
+
height: 100%;
|
19 |
+
z-index: 1043;
|
20 |
+
position: fixed;
|
21 |
+
outline: none !important;
|
22 |
+
-webkit-backface-visibility: hidden; }
|
23 |
+
|
24 |
+
.mfp-container {
|
25 |
+
text-align: center;
|
26 |
+
position: absolute;
|
27 |
+
width: 100%;
|
28 |
+
height: 100%;
|
29 |
+
left: 0;
|
30 |
+
top: 0;
|
31 |
+
padding: 0 8px;
|
32 |
+
-webkit-box-sizing: border-box;
|
33 |
+
-moz-box-sizing: border-box;
|
34 |
+
box-sizing: border-box; }
|
35 |
+
|
36 |
+
.mfp-container:before {
|
37 |
+
content: '';
|
38 |
+
display: inline-block;
|
39 |
+
height: 100%;
|
40 |
+
vertical-align: middle; }
|
41 |
+
|
42 |
+
.mfp-align-top .mfp-container:before {
|
43 |
+
display: none; }
|
44 |
+
|
45 |
+
.mfp-content {
|
46 |
+
position: relative;
|
47 |
+
display: inline-block;
|
48 |
+
vertical-align: middle;
|
49 |
+
margin: 0 auto;
|
50 |
+
text-align: left;
|
51 |
+
z-index: 1045; }
|
52 |
+
|
53 |
+
.mfp-inline-holder .mfp-content,
|
54 |
+
.mfp-ajax-holder .mfp-content {
|
55 |
+
width: 100%;
|
56 |
+
cursor: auto; }
|
57 |
+
|
58 |
+
.mfp-ajax-cur {
|
59 |
+
cursor: progress; }
|
60 |
+
|
61 |
+
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
62 |
+
cursor: -moz-zoom-out;
|
63 |
+
cursor: -webkit-zoom-out;
|
64 |
+
cursor: zoom-out; }
|
65 |
+
|
66 |
+
.mfp-zoom {
|
67 |
+
cursor: pointer;
|
68 |
+
cursor: -webkit-zoom-in;
|
69 |
+
cursor: -moz-zoom-in;
|
70 |
+
cursor: zoom-in; }
|
71 |
+
|
72 |
+
.mfp-auto-cursor .mfp-content {
|
73 |
+
cursor: auto; }
|
74 |
+
|
75 |
+
.mfp-close,
|
76 |
+
.mfp-arrow,
|
77 |
+
.mfp-preloader,
|
78 |
+
.mfp-counter {
|
79 |
+
-webkit-user-select: none;
|
80 |
+
-moz-user-select: none;
|
81 |
+
user-select: none; }
|
82 |
+
|
83 |
+
.mfp-loading.mfp-figure {
|
84 |
+
display: none; }
|
85 |
+
|
86 |
+
.mfp-hide {
|
87 |
+
display: none !important; }
|
88 |
+
|
89 |
+
.mfp-preloader {
|
90 |
+
color: #CCC;
|
91 |
+
position: absolute;
|
92 |
+
top: 50%;
|
93 |
+
width: auto;
|
94 |
+
text-align: center;
|
95 |
+
margin-top: -0.8em;
|
96 |
+
left: 8px;
|
97 |
+
right: 8px;
|
98 |
+
z-index: 1044; }
|
99 |
+
.mfp-preloader a {
|
100 |
+
color: #CCC; }
|
101 |
+
.mfp-preloader a:hover {
|
102 |
+
color: #FFF; }
|
103 |
+
|
104 |
+
.mfp-s-ready .mfp-preloader {
|
105 |
+
display: none; }
|
106 |
+
|
107 |
+
.mfp-s-error .mfp-content {
|
108 |
+
display: none; }
|
109 |
+
|
110 |
+
button.mfp-close,
|
111 |
+
button.mfp-arrow {
|
112 |
+
overflow: visible;
|
113 |
+
cursor: pointer;
|
114 |
+
background: transparent;
|
115 |
+
border: 0;
|
116 |
+
-webkit-appearance: none;
|
117 |
+
display: block;
|
118 |
+
outline: none;
|
119 |
+
padding: 0;
|
120 |
+
z-index: 1046;
|
121 |
+
-webkit-box-shadow: none;
|
122 |
+
box-shadow: none; }
|
123 |
+
|
124 |
+
button::-moz-focus-inner {
|
125 |
+
padding: 0;
|
126 |
+
border: 0; }
|
127 |
+
|
128 |
+
.mfp-close {
|
129 |
+
width: 44px;
|
130 |
+
height: 44px;
|
131 |
+
line-height: 44px;
|
132 |
+
position: absolute;
|
133 |
+
right: 0;
|
134 |
+
top: 0;
|
135 |
+
text-decoration: none;
|
136 |
+
text-align: center;
|
137 |
+
opacity: 0.65;
|
138 |
+
filter: alpha(opacity=65);
|
139 |
+
padding: 0 0 18px 10px;
|
140 |
+
color: #FFF;
|
141 |
+
font-style: normal;
|
142 |
+
font-size: 28px;
|
143 |
+
font-family: Arial, Baskerville, monospace; }
|
144 |
+
.mfp-close:hover,
|
145 |
+
.mfp-close:focus {
|
146 |
+
opacity: 1;
|
147 |
+
filter: alpha(opacity=100); }
|
148 |
+
.mfp-close:active {
|
149 |
+
top: 1px; }
|
150 |
+
|
151 |
+
.mfp-close-btn-in .mfp-close {
|
152 |
+
color: #333; }
|
153 |
+
|
154 |
+
.mfp-image-holder .mfp-close,
|
155 |
+
.mfp-iframe-holder .mfp-close {
|
156 |
+
color: #FFF;
|
157 |
+
right: -6px;
|
158 |
+
text-align: right;
|
159 |
+
padding-right: 6px;
|
160 |
+
width: 100%; }
|
161 |
+
|
162 |
+
.mfp-counter {
|
163 |
+
position: absolute;
|
164 |
+
top: 0;
|
165 |
+
right: 0;
|
166 |
+
color: #CCC;
|
167 |
+
font-size: 12px;
|
168 |
+
line-height: 18px;
|
169 |
+
white-space: nowrap; }
|
170 |
+
|
171 |
+
.mfp-arrow {
|
172 |
+
position: absolute;
|
173 |
+
opacity: 0.65;
|
174 |
+
filter: alpha(opacity=65);
|
175 |
+
margin: 0;
|
176 |
+
top: 50%;
|
177 |
+
margin-top: -55px;
|
178 |
+
padding: 0;
|
179 |
+
width: 90px;
|
180 |
+
height: 110px;
|
181 |
+
-webkit-tap-highlight-color: transparent; }
|
182 |
+
.mfp-arrow:active {
|
183 |
+
margin-top: -54px; }
|
184 |
+
.mfp-arrow:hover,
|
185 |
+
.mfp-arrow:focus {
|
186 |
+
opacity: 1;
|
187 |
+
filter: alpha(opacity=100); }
|
188 |
+
.mfp-arrow:before,
|
189 |
+
.mfp-arrow:after,
|
190 |
+
.mfp-arrow .mfp-b,
|
191 |
+
.mfp-arrow .mfp-a {
|
192 |
+
content: '';
|
193 |
+
display: block;
|
194 |
+
width: 0;
|
195 |
+
height: 0;
|
196 |
+
position: absolute;
|
197 |
+
left: 0;
|
198 |
+
top: 0;
|
199 |
+
margin-top: 35px;
|
200 |
+
margin-left: 35px;
|
201 |
+
border: medium inset transparent; }
|
202 |
+
.mfp-arrow:after,
|
203 |
+
.mfp-arrow .mfp-a {
|
204 |
+
border-top-width: 13px;
|
205 |
+
border-bottom-width: 13px;
|
206 |
+
top: 8px; }
|
207 |
+
.mfp-arrow:before,
|
208 |
+
.mfp-arrow .mfp-b {
|
209 |
+
border-top-width: 21px;
|
210 |
+
border-bottom-width: 21px;
|
211 |
+
opacity: 0.7; }
|
212 |
+
|
213 |
+
.mfp-arrow-left {
|
214 |
+
left: 0; }
|
215 |
+
.mfp-arrow-left:after,
|
216 |
+
.mfp-arrow-left .mfp-a {
|
217 |
+
border-right: 17px solid #FFF;
|
218 |
+
margin-left: 31px; }
|
219 |
+
.mfp-arrow-left:before,
|
220 |
+
.mfp-arrow-left .mfp-b {
|
221 |
+
margin-left: 25px;
|
222 |
+
border-right: 27px solid #3F3F3F; }
|
223 |
+
|
224 |
+
.mfp-arrow-right {
|
225 |
+
right: 0; }
|
226 |
+
.mfp-arrow-right:after,
|
227 |
+
.mfp-arrow-right .mfp-a {
|
228 |
+
border-left: 17px solid #FFF;
|
229 |
+
margin-left: 39px; }
|
230 |
+
.mfp-arrow-right:before,
|
231 |
+
.mfp-arrow-right .mfp-b {
|
232 |
+
border-left: 27px solid #3F3F3F; }
|
233 |
+
|
234 |
+
.mfp-iframe-holder {
|
235 |
+
padding-top: 40px;
|
236 |
+
padding-bottom: 40px; }
|
237 |
+
.mfp-iframe-holder .mfp-content {
|
238 |
+
line-height: 0;
|
239 |
+
width: 100%;
|
240 |
+
max-width: 900px; }
|
241 |
+
.mfp-iframe-holder .mfp-close {
|
242 |
+
top: -40px; }
|
243 |
+
|
244 |
+
.mfp-iframe-scaler {
|
245 |
+
width: 100%;
|
246 |
+
height: 0;
|
247 |
+
overflow: hidden;
|
248 |
+
padding-top: 56.25%; }
|
249 |
+
.mfp-iframe-scaler iframe {
|
250 |
+
position: absolute;
|
251 |
+
display: block;
|
252 |
+
top: 0;
|
253 |
+
left: 0;
|
254 |
+
width: 100%;
|
255 |
+
height: 100%;
|
256 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
257 |
+
background: #000; }
|
258 |
+
|
259 |
+
/* Main image in popup */
|
260 |
+
img.mfp-img {
|
261 |
+
width: auto;
|
262 |
+
max-width: 100%;
|
263 |
+
height: auto;
|
264 |
+
display: block;
|
265 |
+
line-height: 0;
|
266 |
+
-webkit-box-sizing: border-box;
|
267 |
+
-moz-box-sizing: border-box;
|
268 |
+
box-sizing: border-box;
|
269 |
+
padding: 40px 0 40px;
|
270 |
+
margin: 0 auto; }
|
271 |
+
|
272 |
+
/* The shadow behind the image */
|
273 |
+
.mfp-figure {
|
274 |
+
line-height: 0; }
|
275 |
+
.mfp-figure:after {
|
276 |
+
content: '';
|
277 |
+
position: absolute;
|
278 |
+
left: 0;
|
279 |
+
top: 40px;
|
280 |
+
bottom: 40px;
|
281 |
+
display: block;
|
282 |
+
right: 0;
|
283 |
+
width: auto;
|
284 |
+
height: auto;
|
285 |
+
z-index: -1;
|
286 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
287 |
+
background: #444; }
|
288 |
+
.mfp-figure small {
|
289 |
+
color: #BDBDBD;
|
290 |
+
display: block;
|
291 |
+
font-size: 12px;
|
292 |
+
line-height: 14px; }
|
293 |
+
.mfp-figure figure {
|
294 |
+
margin: 0; }
|
295 |
+
|
296 |
+
.mfp-bottom-bar {
|
297 |
+
margin-top: -36px;
|
298 |
+
position: absolute;
|
299 |
+
top: 100%;
|
300 |
+
left: 0;
|
301 |
+
width: 100%;
|
302 |
+
cursor: auto; }
|
303 |
+
|
304 |
+
.mfp-title {
|
305 |
+
text-align: left;
|
306 |
+
line-height: 18px;
|
307 |
+
color: #F3F3F3;
|
308 |
+
word-wrap: break-word;
|
309 |
+
padding-right: 36px; }
|
310 |
+
|
311 |
+
.mfp-image-holder .mfp-content {
|
312 |
+
max-width: 100%; }
|
313 |
+
|
314 |
+
.mfp-gallery .mfp-image-holder .mfp-figure {
|
315 |
+
cursor: pointer; }
|
316 |
+
|
317 |
+
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
318 |
+
/**
|
319 |
+
* Remove all paddings around the image on small screen
|
320 |
+
*/
|
321 |
+
.mfp-img-mobile .mfp-image-holder {
|
322 |
+
padding-left: 0;
|
323 |
+
padding-right: 0; }
|
324 |
+
.mfp-img-mobile img.mfp-img {
|
325 |
+
padding: 0; }
|
326 |
+
.mfp-img-mobile .mfp-figure:after {
|
327 |
+
top: 0;
|
328 |
+
bottom: 0; }
|
329 |
+
.mfp-img-mobile .mfp-figure small {
|
330 |
+
display: inline;
|
331 |
+
margin-left: 5px; }
|
332 |
+
.mfp-img-mobile .mfp-bottom-bar {
|
333 |
+
background: rgba(0, 0, 0, 0.6);
|
334 |
+
bottom: 0;
|
335 |
+
margin: 0;
|
336 |
+
top: auto;
|
337 |
+
padding: 3px 5px;
|
338 |
+
position: fixed;
|
339 |
+
-webkit-box-sizing: border-box;
|
340 |
+
-moz-box-sizing: border-box;
|
341 |
+
box-sizing: border-box; }
|
342 |
+
.mfp-img-mobile .mfp-bottom-bar:empty {
|
343 |
+
padding: 0; }
|
344 |
+
.mfp-img-mobile .mfp-counter {
|
345 |
+
right: 5px;
|
346 |
+
top: 3px; }
|
347 |
+
.mfp-img-mobile .mfp-close {
|
348 |
+
top: 0;
|
349 |
+
right: 0;
|
350 |
+
width: 35px;
|
351 |
+
height: 35px;
|
352 |
+
line-height: 35px;
|
353 |
+
background: rgba(0, 0, 0, 0.6);
|
354 |
+
position: fixed;
|
355 |
+
text-align: center;
|
356 |
+
padding: 0; } }
|
357 |
+
|
358 |
+
@media all and (max-width: 900px) {
|
359 |
+
.mfp-arrow {
|
360 |
+
-webkit-transform: scale(0.75);
|
361 |
+
transform: scale(0.75); }
|
362 |
+
.mfp-arrow-left {
|
363 |
+
-webkit-transform-origin: 0;
|
364 |
+
transform-origin: 0; }
|
365 |
+
.mfp-arrow-right {
|
366 |
+
-webkit-transform-origin: 100%;
|
367 |
+
transform-origin: 100%; }
|
368 |
+
.mfp-container {
|
369 |
+
padding-left: 6px;
|
370 |
+
padding-right: 6px; } }
|
371 |
+
|
372 |
+
.mfp-ie7 .mfp-img {
|
373 |
+
padding: 0; }
|
374 |
+
|
375 |
+
.mfp-ie7 .mfp-bottom-bar {
|
376 |
+
width: 600px;
|
377 |
+
left: 50%;
|
378 |
+
margin-left: -300px;
|
379 |
+
margin-top: 5px;
|
380 |
+
padding-bottom: 5px; }
|
381 |
+
|
382 |
+
.mfp-ie7 .mfp-container {
|
383 |
+
padding: 0; }
|
384 |
+
|
385 |
+
.mfp-ie7 .mfp-content {
|
386 |
+
padding-top: 44px; }
|
387 |
+
|
388 |
+
.mfp-ie7 .mfp-close {
|
389 |
+
top: 0;
|
390 |
+
right: 0;
|
391 |
+
padding-top: 0; }
|
392 |
+
|
393 |
+
|
394 |
+
/**
|
395 |
+
* custom
|
396 |
+
*/
|
397 |
+
/* overlay at start */
|
398 |
+
.mfp-fade.mfp-bg {
|
399 |
+
opacity: 0;
|
400 |
+
|
401 |
+
-webkit-transition: all 0.15s ease-out;
|
402 |
+
-moz-transition: all 0.15s ease-out;
|
403 |
+
transition: all 0.15s ease-out;
|
404 |
+
}
|
405 |
+
/* overlay animate in */
|
406 |
+
.mfp-fade.mfp-bg.mfp-ready {
|
407 |
+
opacity: 0.8;
|
408 |
+
}
|
409 |
+
/* overlay animate out */
|
410 |
+
.mfp-fade.mfp-bg.mfp-removing {
|
411 |
+
opacity: 0;
|
412 |
+
}
|
413 |
+
|
414 |
+
/* content at start */
|
415 |
+
.mfp-fade.mfp-wrap .mfp-content {
|
416 |
+
opacity: 0;
|
417 |
+
|
418 |
+
-webkit-transition: all 0.15s ease-out;
|
419 |
+
-moz-transition: all 0.15s ease-out;
|
420 |
+
transition: all 0.15s ease-out;
|
421 |
+
}
|
422 |
+
/* content animate it */
|
423 |
+
.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
|
424 |
+
opacity: 1;
|
425 |
+
}
|
426 |
+
/* content animate out */
|
427 |
+
.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
|
428 |
+
opacity: 0;
|
429 |
+
}
|
inc/libraries/magnific-popup/js/jquery.magnific-popup.js
ADDED
@@ -0,0 +1,1860 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! Magnific Popup - v1.1.0 - 2016-02-20
|
2 |
+
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
+
* Copyright (c) 2016 Dmitry Semenov; */
|
4 |
+
;(function (factory) {
|
5 |
+
if (typeof define === 'function' && define.amd) {
|
6 |
+
// AMD. Register as an anonymous module.
|
7 |
+
define(['jquery'], factory);
|
8 |
+
} else if (typeof exports === 'object') {
|
9 |
+
// Node/CommonJS
|
10 |
+
factory(require('jquery'));
|
11 |
+
} else {
|
12 |
+
// Browser globals
|
13 |
+
factory(window.jQuery || window.Zepto);
|
14 |
+
}
|
15 |
+
}(function($) {
|
16 |
+
|
17 |
+
/*>>core*/
|
18 |
+
/**
|
19 |
+
*
|
20 |
+
* Magnific Popup Core JS file
|
21 |
+
*
|
22 |
+
*/
|
23 |
+
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Private static constants
|
27 |
+
*/
|
28 |
+
var CLOSE_EVENT = 'Close',
|
29 |
+
BEFORE_CLOSE_EVENT = 'BeforeClose',
|
30 |
+
AFTER_CLOSE_EVENT = 'AfterClose',
|
31 |
+
BEFORE_APPEND_EVENT = 'BeforeAppend',
|
32 |
+
MARKUP_PARSE_EVENT = 'MarkupParse',
|
33 |
+
OPEN_EVENT = 'Open',
|
34 |
+
CHANGE_EVENT = 'Change',
|
35 |
+
NS = 'mfp',
|
36 |
+
EVENT_NS = '.' + NS,
|
37 |
+
READY_CLASS = 'mfp-ready',
|
38 |
+
REMOVING_CLASS = 'mfp-removing',
|
39 |
+
PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
|
40 |
+
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Private vars
|
44 |
+
*/
|
45 |
+
/*jshint -W079 */
|
46 |
+
var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
|
47 |
+
MagnificPopup = function(){},
|
48 |
+
_isJQ = !!(window.jQuery),
|
49 |
+
_prevStatus,
|
50 |
+
_window = $(window),
|
51 |
+
_document,
|
52 |
+
_prevContentType,
|
53 |
+
_wrapClasses,
|
54 |
+
_currPopupType;
|
55 |
+
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Private functions
|
59 |
+
*/
|
60 |
+
var _mfpOn = function(name, f) {
|
61 |
+
mfp.ev.on(NS + name + EVENT_NS, f);
|
62 |
+
},
|
63 |
+
_getEl = function(className, appendTo, html, raw) {
|
64 |
+
var el = document.createElement('div');
|
65 |
+
el.className = 'mfp-'+className;
|
66 |
+
if(html) {
|
67 |
+
el.innerHTML = html;
|
68 |
+
}
|
69 |
+
if(!raw) {
|
70 |
+
el = $(el);
|
71 |
+
if(appendTo) {
|
72 |
+
el.appendTo(appendTo);
|
73 |
+
}
|
74 |
+
} else if(appendTo) {
|
75 |
+
appendTo.appendChild(el);
|
76 |
+
}
|
77 |
+
return el;
|
78 |
+
},
|
79 |
+
_mfpTrigger = function(e, data) {
|
80 |
+
mfp.ev.triggerHandler(NS + e, data);
|
81 |
+
|
82 |
+
if(mfp.st.callbacks) {
|
83 |
+
// converts "mfpEventName" to "eventName" callback and triggers it if it's present
|
84 |
+
e = e.charAt(0).toLowerCase() + e.slice(1);
|
85 |
+
if(mfp.st.callbacks[e]) {
|
86 |
+
mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
},
|
90 |
+
_getCloseBtn = function(type) {
|
91 |
+
if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
|
92 |
+
mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
|
93 |
+
_currPopupType = type;
|
94 |
+
}
|
95 |
+
return mfp.currTemplate.closeBtn;
|
96 |
+
},
|
97 |
+
// Initialize Magnific Popup only when called at least once
|
98 |
+
_checkInstance = function() {
|
99 |
+
if(!$.magnificPopup.instance) {
|
100 |
+
/*jshint -W020 */
|
101 |
+
mfp = new MagnificPopup();
|
102 |
+
mfp.init();
|
103 |
+
$.magnificPopup.instance = mfp;
|
104 |
+
}
|
105 |
+
},
|
106 |
+
// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
|
107 |
+
supportsTransitions = function() {
|
108 |
+
var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
|
109 |
+
v = ['ms','O','Moz','Webkit']; // 'v' for vendor
|
110 |
+
|
111 |
+
if( s['transition'] !== undefined ) {
|
112 |
+
return true;
|
113 |
+
}
|
114 |
+
|
115 |
+
while( v.length ) {
|
116 |
+
if( v.pop() + 'Transition' in s ) {
|
117 |
+
return true;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
return false;
|
122 |
+
};
|
123 |
+
|
124 |
+
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Public functions
|
128 |
+
*/
|
129 |
+
MagnificPopup.prototype = {
|
130 |
+
|
131 |
+
constructor: MagnificPopup,
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Initializes Magnific Popup plugin.
|
135 |
+
* This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
|
136 |
+
*/
|
137 |
+
init: function() {
|
138 |
+
var appVersion = navigator.appVersion;
|
139 |
+
mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
|
140 |
+
mfp.isAndroid = (/android/gi).test(appVersion);
|
141 |
+
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
|
142 |
+
mfp.supportsTransition = supportsTransitions();
|
143 |
+
|
144 |
+
// We disable fixed positioned lightbox on devices that don't handle it nicely.
|
145 |
+
// If you know a better way of detecting this - let me know.
|
146 |
+
mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
|
147 |
+
_document = $(document);
|
148 |
+
|
149 |
+
mfp.popupsCache = {};
|
150 |
+
},
|
151 |
+
|
152 |
+
/**
|
153 |
+
* Opens popup
|
154 |
+
* @param data [description]
|
155 |
+
*/
|
156 |
+
open: function(data) {
|
157 |
+
|
158 |
+
var i;
|
159 |
+
|
160 |
+
if(data.isObj === false) {
|
161 |
+
// convert jQuery collection to array to avoid conflicts later
|
162 |
+
mfp.items = data.items.toArray();
|
163 |
+
|
164 |
+
mfp.index = 0;
|
165 |
+
var items = data.items,
|
166 |
+
item;
|
167 |
+
for(i = 0; i < items.length; i++) {
|
168 |
+
item = items[i];
|
169 |
+
if(item.parsed) {
|
170 |
+
item = item.el[0];
|
171 |
+
}
|
172 |
+
if(item === data.el[0]) {
|
173 |
+
mfp.index = i;
|
174 |
+
break;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
} else {
|
178 |
+
mfp.items = $.isArray(data.items) ? data.items : [data.items];
|
179 |
+
mfp.index = data.index || 0;
|
180 |
+
}
|
181 |
+
|
182 |
+
// if popup is already opened - we just update the content
|
183 |
+
if(mfp.isOpen) {
|
184 |
+
mfp.updateItemHTML();
|
185 |
+
return;
|
186 |
+
}
|
187 |
+
|
188 |
+
mfp.types = [];
|
189 |
+
_wrapClasses = '';
|
190 |
+
if(data.mainEl && data.mainEl.length) {
|
191 |
+
mfp.ev = data.mainEl.eq(0);
|
192 |
+
} else {
|
193 |
+
mfp.ev = _document;
|
194 |
+
}
|
195 |
+
|
196 |
+
if(data.key) {
|
197 |
+
if(!mfp.popupsCache[data.key]) {
|
198 |
+
mfp.popupsCache[data.key] = {};
|
199 |
+
}
|
200 |
+
mfp.currTemplate = mfp.popupsCache[data.key];
|
201 |
+
} else {
|
202 |
+
mfp.currTemplate = {};
|
203 |
+
}
|
204 |
+
|
205 |
+
|
206 |
+
|
207 |
+
mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
|
208 |
+
mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
|
209 |
+
|
210 |
+
if(mfp.st.modal) {
|
211 |
+
mfp.st.closeOnContentClick = false;
|
212 |
+
mfp.st.closeOnBgClick = false;
|
213 |
+
mfp.st.showCloseBtn = false;
|
214 |
+
mfp.st.enableEscapeKey = false;
|
215 |
+
}
|
216 |
+
|
217 |
+
|
218 |
+
// Building markup
|
219 |
+
// main containers are created only once
|
220 |
+
if(!mfp.bgOverlay) {
|
221 |
+
|
222 |
+
// Dark overlay
|
223 |
+
mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
|
224 |
+
mfp.close();
|
225 |
+
});
|
226 |
+
|
227 |
+
mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
|
228 |
+
if(mfp._checkIfClose(e.target)) {
|
229 |
+
mfp.close();
|
230 |
+
}
|
231 |
+
});
|
232 |
+
|
233 |
+
mfp.container = _getEl('container', mfp.wrap);
|
234 |
+
}
|
235 |
+
|
236 |
+
mfp.contentContainer = _getEl('content');
|
237 |
+
if(mfp.st.preloader) {
|
238 |
+
mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
|
239 |
+
}
|
240 |
+
|
241 |
+
|
242 |
+
// Initializing modules
|
243 |
+
var modules = $.magnificPopup.modules;
|
244 |
+
for(i = 0; i < modules.length; i++) {
|
245 |
+
var n = modules[i];
|
246 |
+
n = n.charAt(0).toUpperCase() + n.slice(1);
|
247 |
+
mfp['init'+n].call(mfp);
|
248 |
+
}
|
249 |
+
_mfpTrigger('BeforeOpen');
|
250 |
+
|
251 |
+
|
252 |
+
if(mfp.st.showCloseBtn) {
|
253 |
+
// Close button
|
254 |
+
if(!mfp.st.closeBtnInside) {
|
255 |
+
mfp.wrap.append( _getCloseBtn() );
|
256 |
+
} else {
|
257 |
+
_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
|
258 |
+
values.close_replaceWith = _getCloseBtn(item.type);
|
259 |
+
});
|
260 |
+
_wrapClasses += ' mfp-close-btn-in';
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
if(mfp.st.alignTop) {
|
265 |
+
_wrapClasses += ' mfp-align-top';
|
266 |
+
}
|
267 |
+
|
268 |
+
|
269 |
+
|
270 |
+
if(mfp.fixedContentPos) {
|
271 |
+
mfp.wrap.css({
|
272 |
+
overflow: mfp.st.overflowY,
|
273 |
+
overflowX: 'hidden',
|
274 |
+
overflowY: mfp.st.overflowY
|
275 |
+
});
|
276 |
+
} else {
|
277 |
+
mfp.wrap.css({
|
278 |
+
top: _window.scrollTop(),
|
279 |
+
position: 'absolute'
|
280 |
+
});
|
281 |
+
}
|
282 |
+
if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
|
283 |
+
mfp.bgOverlay.css({
|
284 |
+
height: _document.height(),
|
285 |
+
position: 'absolute'
|
286 |
+
});
|
287 |
+
}
|
288 |
+
|
289 |
+
|
290 |
+
|
291 |
+
if(mfp.st.enableEscapeKey) {
|
292 |
+
// Close on ESC key
|
293 |
+
_document.on('keyup' + EVENT_NS, function(e) {
|
294 |
+
if(e.keyCode === 27) {
|
295 |
+
mfp.close();
|
296 |
+
}
|
297 |
+
});
|
298 |
+
}
|
299 |
+
|
300 |
+
_window.on('resize' + EVENT_NS, function() {
|
301 |
+
mfp.updateSize();
|
302 |
+
});
|
303 |
+
|
304 |
+
|
305 |
+
if(!mfp.st.closeOnContentClick) {
|
306 |
+
_wrapClasses += ' mfp-auto-cursor';
|
307 |
+
}
|
308 |
+
|
309 |
+
if(_wrapClasses)
|
310 |
+
mfp.wrap.addClass(_wrapClasses);
|
311 |
+
|
312 |
+
|
313 |
+
// this triggers recalculation of layout, so we get it once to not to trigger twice
|
314 |
+
var windowHeight = mfp.wH = _window.height();
|
315 |
+
|
316 |
+
|
317 |
+
var windowStyles = {};
|
318 |
+
|
319 |
+
if( mfp.fixedContentPos ) {
|
320 |
+
if(mfp._hasScrollBar(windowHeight)){
|
321 |
+
var s = mfp._getScrollbarSize();
|
322 |
+
if(s) {
|
323 |
+
windowStyles.marginRight = s;
|
324 |
+
}
|
325 |
+
}
|
326 |
+
}
|
327 |
+
|
328 |
+
if(mfp.fixedContentPos) {
|
329 |
+
if(!mfp.isIE7) {
|
330 |
+
windowStyles.overflow = 'hidden';
|
331 |
+
} else {
|
332 |
+
// ie7 double-scroll bug
|
333 |
+
$('body, html').css('overflow', 'hidden');
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
|
338 |
+
|
339 |
+
var classesToadd = mfp.st.mainClass;
|
340 |
+
if(mfp.isIE7) {
|
341 |
+
classesToadd += ' mfp-ie7';
|
342 |
+
}
|
343 |
+
if(classesToadd) {
|
344 |
+
mfp._addClassToMFP( classesToadd );
|
345 |
+
}
|
346 |
+
|
347 |
+
// add content
|
348 |
+
mfp.updateItemHTML();
|
349 |
+
|
350 |
+
_mfpTrigger('BuildControls');
|
351 |
+
|
352 |
+
// remove scrollbar, add margin e.t.c
|
353 |
+
$('html').css(windowStyles);
|
354 |
+
|
355 |
+
// add everything to DOM
|
356 |
+
mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
|
357 |
+
|
358 |
+
// Save last focused element
|
359 |
+
mfp._lastFocusedEl = document.activeElement;
|
360 |
+
|
361 |
+
// Wait for next cycle to allow CSS transition
|
362 |
+
setTimeout(function() {
|
363 |
+
|
364 |
+
if(mfp.content) {
|
365 |
+
mfp._addClassToMFP(READY_CLASS);
|
366 |
+
mfp._setFocus();
|
367 |
+
} else {
|
368 |
+
// if content is not defined (not loaded e.t.c) we add class only for BG
|
369 |
+
mfp.bgOverlay.addClass(READY_CLASS);
|
370 |
+
}
|
371 |
+
|
372 |
+
// Trap the focus in popup
|
373 |
+
_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
|
374 |
+
|
375 |
+
}, 16);
|
376 |
+
|
377 |
+
mfp.isOpen = true;
|
378 |
+
mfp.updateSize(windowHeight);
|
379 |
+
_mfpTrigger(OPEN_EVENT);
|
380 |
+
|
381 |
+
return data;
|
382 |
+
},
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Closes the popup
|
386 |
+
*/
|
387 |
+
close: function() {
|
388 |
+
if(!mfp.isOpen) return;
|
389 |
+
_mfpTrigger(BEFORE_CLOSE_EVENT);
|
390 |
+
|
391 |
+
mfp.isOpen = false;
|
392 |
+
// for CSS3 animation
|
393 |
+
if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
|
394 |
+
mfp._addClassToMFP(REMOVING_CLASS);
|
395 |
+
setTimeout(function() {
|
396 |
+
mfp._close();
|
397 |
+
}, mfp.st.removalDelay);
|
398 |
+
} else {
|
399 |
+
mfp._close();
|
400 |
+
}
|
401 |
+
},
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Helper for close() function
|
405 |
+
*/
|
406 |
+
_close: function() {
|
407 |
+
_mfpTrigger(CLOSE_EVENT);
|
408 |
+
|
409 |
+
var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
|
410 |
+
|
411 |
+
mfp.bgOverlay.detach();
|
412 |
+
mfp.wrap.detach();
|
413 |
+
mfp.container.empty();
|
414 |
+
|
415 |
+
if(mfp.st.mainClass) {
|
416 |
+
classesToRemove += mfp.st.mainClass + ' ';
|
417 |
+
}
|
418 |
+
|
419 |
+
mfp._removeClassFromMFP(classesToRemove);
|
420 |
+
|
421 |
+
if(mfp.fixedContentPos) {
|
422 |
+
var windowStyles = {marginRight: ''};
|
423 |
+
if(mfp.isIE7) {
|
424 |
+
$('body, html').css('overflow', '');
|
425 |
+
} else {
|
426 |
+
windowStyles.overflow = '';
|
427 |
+
}
|
428 |
+
$('html').css(windowStyles);
|
429 |
+
}
|
430 |
+
|
431 |
+
_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
|
432 |
+
mfp.ev.off(EVENT_NS);
|
433 |
+
|
434 |
+
// clean up DOM elements that aren't removed
|
435 |
+
mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
|
436 |
+
mfp.bgOverlay.attr('class', 'mfp-bg');
|
437 |
+
mfp.container.attr('class', 'mfp-container');
|
438 |
+
|
439 |
+
// remove close button from target element
|
440 |
+
if(mfp.st.showCloseBtn &&
|
441 |
+
(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
|
442 |
+
if(mfp.currTemplate.closeBtn)
|
443 |
+
mfp.currTemplate.closeBtn.detach();
|
444 |
+
}
|
445 |
+
|
446 |
+
|
447 |
+
if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
|
448 |
+
$(mfp._lastFocusedEl).focus(); // put tab focus back
|
449 |
+
}
|
450 |
+
mfp.currItem = null;
|
451 |
+
mfp.content = null;
|
452 |
+
mfp.currTemplate = null;
|
453 |
+
mfp.prevHeight = 0;
|
454 |
+
|
455 |
+
_mfpTrigger(AFTER_CLOSE_EVENT);
|
456 |
+
},
|
457 |
+
|
458 |
+
updateSize: function(winHeight) {
|
459 |
+
|
460 |
+
if(mfp.isIOS) {
|
461 |
+
// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
|
462 |
+
var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
|
463 |
+
var height = window.innerHeight * zoomLevel;
|
464 |
+
mfp.wrap.css('height', height);
|
465 |
+
mfp.wH = height;
|
466 |
+
} else {
|
467 |
+
mfp.wH = winHeight || _window.height();
|
468 |
+
}
|
469 |
+
// Fixes #84: popup incorrectly positioned with position:relative on body
|
470 |
+
if(!mfp.fixedContentPos) {
|
471 |
+
mfp.wrap.css('height', mfp.wH);
|
472 |
+
}
|
473 |
+
|
474 |
+
_mfpTrigger('Resize');
|
475 |
+
|
476 |
+
},
|
477 |
+
|
478 |
+
/**
|
479 |
+
* Set content of popup based on current index
|
480 |
+
*/
|
481 |
+
updateItemHTML: function() {
|
482 |
+
var item = mfp.items[mfp.index];
|
483 |
+
|
484 |
+
// Detach and perform modifications
|
485 |
+
mfp.contentContainer.detach();
|
486 |
+
|
487 |
+
if(mfp.content)
|
488 |
+
mfp.content.detach();
|
489 |
+
|
490 |
+
if(!item.parsed) {
|
491 |
+
item = mfp.parseEl( mfp.index );
|
492 |
+
}
|
493 |
+
|
494 |
+
var type = item.type;
|
495 |
+
|
496 |
+
_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
|
497 |
+
// BeforeChange event works like so:
|
498 |
+
// _mfpOn('BeforeChange', function(e, prevType, newType) { });
|
499 |
+
|
500 |
+
mfp.currItem = item;
|
501 |
+
|
502 |
+
if(!mfp.currTemplate[type]) {
|
503 |
+
var markup = mfp.st[type] ? mfp.st[type].markup : false;
|
504 |
+
|
505 |
+
// allows to modify markup
|
506 |
+
_mfpTrigger('FirstMarkupParse', markup);
|
507 |
+
|
508 |
+
if(markup) {
|
509 |
+
mfp.currTemplate[type] = $(markup);
|
510 |
+
} else {
|
511 |
+
// if there is no markup found we just define that template is parsed
|
512 |
+
mfp.currTemplate[type] = true;
|
513 |
+
}
|
514 |
+
}
|
515 |
+
|
516 |
+
if(_prevContentType && _prevContentType !== item.type) {
|
517 |
+
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
|
518 |
+
}
|
519 |
+
|
520 |
+
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
|
521 |
+
mfp.appendContent(newContent, type);
|
522 |
+
|
523 |
+
item.preloaded = true;
|
524 |
+
|
525 |
+
_mfpTrigger(CHANGE_EVENT, item);
|
526 |
+
_prevContentType = item.type;
|
527 |
+
|
528 |
+
// Append container back after its content changed
|
529 |
+
mfp.container.prepend(mfp.contentContainer);
|
530 |
+
|
531 |
+
_mfpTrigger('AfterChange');
|
532 |
+
},
|
533 |
+
|
534 |
+
|
535 |
+
/**
|
536 |
+
* Set HTML content of popup
|
537 |
+
*/
|
538 |
+
appendContent: function(newContent, type) {
|
539 |
+
mfp.content = newContent;
|
540 |
+
|
541 |
+
if(newContent) {
|
542 |
+
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
|
543 |
+
mfp.currTemplate[type] === true) {
|
544 |
+
// if there is no markup, we just append close button element inside
|
545 |
+
if(!mfp.content.find('.mfp-close').length) {
|
546 |
+
mfp.content.append(_getCloseBtn());
|
547 |
+
}
|
548 |
+
} else {
|
549 |
+
mfp.content = newContent;
|
550 |
+
}
|
551 |
+
} else {
|
552 |
+
mfp.content = '';
|
553 |
+
}
|
554 |
+
|
555 |
+
_mfpTrigger(BEFORE_APPEND_EVENT);
|
556 |
+
mfp.container.addClass('mfp-'+type+'-holder');
|
557 |
+
|
558 |
+
mfp.contentContainer.append(mfp.content);
|
559 |
+
},
|
560 |
+
|
561 |
+
|
562 |
+
/**
|
563 |
+
* Creates Magnific Popup data object based on given data
|
564 |
+
* @param {int} index Index of item to parse
|
565 |
+
*/
|
566 |
+
parseEl: function(index) {
|
567 |
+
var item = mfp.items[index],
|
568 |
+
type;
|
569 |
+
|
570 |
+
if(item.tagName) {
|
571 |
+
item = { el: $(item) };
|
572 |
+
} else {
|
573 |
+
type = item.type;
|
574 |
+
item = { data: item, src: item.src };
|
575 |
+
}
|
576 |
+
|
577 |
+
if(item.el) {
|
578 |
+
var types = mfp.types;
|
579 |
+
|
580 |
+
// check for 'mfp-TYPE' class
|
581 |
+
for(var i = 0; i < types.length; i++) {
|
582 |
+
if( item.el.hasClass('mfp-'+types[i]) ) {
|
583 |
+
type = types[i];
|
584 |
+
break;
|
585 |
+
}
|
586 |
+
}
|
587 |
+
|
588 |
+
item.src = item.el.attr('data-mfp-src');
|
589 |
+
if(!item.src) {
|
590 |
+
item.src = item.el.attr('href');
|
591 |
+
}
|
592 |
+
}
|
593 |
+
|
594 |
+
item.type = type || mfp.st.type || 'inline';
|
595 |
+
item.index = index;
|
596 |
+
item.parsed = true;
|
597 |
+
mfp.items[index] = item;
|
598 |
+
_mfpTrigger('ElementParse', item);
|
599 |
+
|
600 |
+
return mfp.items[index];
|
601 |
+
},
|
602 |
+
|
603 |
+
|
604 |
+
/**
|
605 |
+
* Initializes single popup or a group of popups
|
606 |
+
*/
|
607 |
+
addGroup: function(el, options) {
|
608 |
+
var eHandler = function(e) {
|
609 |
+
e.mfpEl = this;
|
610 |
+
mfp._openClick(e, el, options);
|
611 |
+
};
|
612 |
+
|
613 |
+
if(!options) {
|
614 |
+
options = {};
|
615 |
+
}
|
616 |
+
|
617 |
+
var eName = 'click.magnificPopup';
|
618 |
+
options.mainEl = el;
|
619 |
+
|
620 |
+
if(options.items) {
|
621 |
+
options.isObj = true;
|
622 |
+
el.off(eName).on(eName, eHandler);
|
623 |
+
} else {
|
624 |
+
options.isObj = false;
|
625 |
+
if(options.delegate) {
|
626 |
+
el.off(eName).on(eName, options.delegate , eHandler);
|
627 |
+
} else {
|
628 |
+
options.items = el;
|
629 |
+
el.off(eName).on(eName, eHandler);
|
630 |
+
}
|
631 |
+
}
|
632 |
+
},
|
633 |
+
_openClick: function(e, el, options) {
|
634 |
+
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
|
635 |
+
|
636 |
+
|
637 |
+
if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
|
638 |
+
return;
|
639 |
+
}
|
640 |
+
|
641 |
+
var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
|
642 |
+
|
643 |
+
if(disableOn) {
|
644 |
+
if($.isFunction(disableOn)) {
|
645 |
+
if( !disableOn.call(mfp) ) {
|
646 |
+
return true;
|
647 |
+
}
|
648 |
+
} else { // else it's number
|
649 |
+
if( _window.width() < disableOn ) {
|
650 |
+
return true;
|
651 |
+
}
|
652 |
+
}
|
653 |
+
}
|
654 |
+
|
655 |
+
if(e.type) {
|
656 |
+
e.preventDefault();
|
657 |
+
|
658 |
+
// This will prevent popup from closing if element is inside and popup is already opened
|
659 |
+
if(mfp.isOpen) {
|
660 |
+
e.stopPropagation();
|
661 |
+
}
|
662 |
+
}
|
663 |
+
|
664 |
+
options.el = $(e.mfpEl);
|
665 |
+
if(options.delegate) {
|
666 |
+
options.items = el.find(options.delegate);
|
667 |
+
}
|
668 |
+
mfp.open(options);
|
669 |
+
},
|
670 |
+
|
671 |
+
|
672 |
+
/**
|
673 |
+
* Updates text on preloader
|
674 |
+
*/
|
675 |
+
updateStatus: function(status, text) {
|
676 |
+
|
677 |
+
if(mfp.preloader) {
|
678 |
+
if(_prevStatus !== status) {
|
679 |
+
mfp.container.removeClass('mfp-s-'+_prevStatus);
|
680 |
+
}
|
681 |
+
|
682 |
+
if(!text && status === 'loading') {
|
683 |
+
text = mfp.st.tLoading;
|
684 |
+
}
|
685 |
+
|
686 |
+
var data = {
|
687 |
+
status: status,
|
688 |
+
text: text
|
689 |
+
};
|
690 |
+
// allows to modify status
|
691 |
+
_mfpTrigger('UpdateStatus', data);
|
692 |
+
|
693 |
+
status = data.status;
|
694 |
+
text = data.text;
|
695 |
+
|
696 |
+
mfp.preloader.html(text);
|
697 |
+
|
698 |
+
mfp.preloader.find('a').on('click', function(e) {
|
699 |
+
e.stopImmediatePropagation();
|
700 |
+
});
|
701 |
+
|
702 |
+
mfp.container.addClass('mfp-s-'+status);
|
703 |
+
_prevStatus = status;
|
704 |
+
}
|
705 |
+
},
|
706 |
+
|
707 |
+
|
708 |
+
/*
|
709 |
+
"Private" helpers that aren't private at all
|
710 |
+
*/
|
711 |
+
// Check to close popup or not
|
712 |
+
// "target" is an element that was clicked
|
713 |
+
_checkIfClose: function(target) {
|
714 |
+
|
715 |
+
if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
|
716 |
+
return;
|
717 |
+
}
|
718 |
+
|
719 |
+
var closeOnContent = mfp.st.closeOnContentClick;
|
720 |
+
var closeOnBg = mfp.st.closeOnBgClick;
|
721 |
+
|
722 |
+
if(closeOnContent && closeOnBg) {
|
723 |
+
return true;
|
724 |
+
} else {
|
725 |
+
|
726 |
+
// We close the popup if click is on close button or on preloader. Or if there is no content.
|
727 |
+
if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
|
728 |
+
return true;
|
729 |
+
}
|
730 |
+
|
731 |
+
// if click is outside the content
|
732 |
+
if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
|
733 |
+
if(closeOnBg) {
|
734 |
+
// last check, if the clicked element is in DOM, (in case it's removed onclick)
|
735 |
+
if( $.contains(document, target) ) {
|
736 |
+
return true;
|
737 |
+
}
|
738 |
+
}
|
739 |
+
} else if(closeOnContent) {
|
740 |
+
return true;
|
741 |
+
}
|
742 |
+
|
743 |
+
}
|
744 |
+
return false;
|
745 |
+
},
|
746 |
+
_addClassToMFP: function(cName) {
|
747 |
+
mfp.bgOverlay.addClass(cName);
|
748 |
+
mfp.wrap.addClass(cName);
|
749 |
+
},
|
750 |
+
_removeClassFromMFP: function(cName) {
|
751 |
+
this.bgOverlay.removeClass(cName);
|
752 |
+
mfp.wrap.removeClass(cName);
|
753 |
+
},
|
754 |
+
_hasScrollBar: function(winHeight) {
|
755 |
+
return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
|
756 |
+
},
|
757 |
+
_setFocus: function() {
|
758 |
+
(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
|
759 |
+
},
|
760 |
+
_onFocusIn: function(e) {
|
761 |
+
if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
|
762 |
+
mfp._setFocus();
|
763 |
+
return false;
|
764 |
+
}
|
765 |
+
},
|
766 |
+
_parseMarkup: function(template, values, item) {
|
767 |
+
var arr;
|
768 |
+
if(item.data) {
|
769 |
+
values = $.extend(item.data, values);
|
770 |
+
}
|
771 |
+
_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
|
772 |
+
|
773 |
+
$.each(values, function(key, value) {
|
774 |
+
if(value === undefined || value === false) {
|
775 |
+
return true;
|
776 |
+
}
|
777 |
+
arr = key.split('_');
|
778 |
+
if(arr.length > 1) {
|
779 |
+
var el = template.find(EVENT_NS + '-'+arr[0]);
|
780 |
+
|
781 |
+
if(el.length > 0) {
|
782 |
+
var attr = arr[1];
|
783 |
+
if(attr === 'replaceWith') {
|
784 |
+
if(el[0] !== value[0]) {
|
785 |
+
el.replaceWith(value);
|
786 |
+
}
|
787 |
+
} else if(attr === 'img') {
|
788 |
+
if(el.is('img')) {
|
789 |
+
el.attr('src', value);
|
790 |
+
} else {
|
791 |
+
el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
|
792 |
+
}
|
793 |
+
} else {
|
794 |
+
el.attr(arr[1], value);
|
795 |
+
}
|
796 |
+
}
|
797 |
+
|
798 |
+
} else {
|
799 |
+
template.find(EVENT_NS + '-'+key).html(value);
|
800 |
+
}
|
801 |
+
});
|
802 |
+
},
|
803 |
+
|
804 |
+
_getScrollbarSize: function() {
|
805 |
+
// thx David
|
806 |
+
if(mfp.scrollbarSize === undefined) {
|
807 |
+
var scrollDiv = document.createElement("div");
|
808 |
+
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
|
809 |
+
document.body.appendChild(scrollDiv);
|
810 |
+
mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
811 |
+
document.body.removeChild(scrollDiv);
|
812 |
+
}
|
813 |
+
return mfp.scrollbarSize;
|
814 |
+
}
|
815 |
+
|
816 |
+
}; /* MagnificPopup core prototype end */
|
817 |
+
|
818 |
+
|
819 |
+
|
820 |
+
|
821 |
+
/**
|
822 |
+
* Public static functions
|
823 |
+
*/
|
824 |
+
$.magnificPopup = {
|
825 |
+
instance: null,
|
826 |
+
proto: MagnificPopup.prototype,
|
827 |
+
modules: [],
|
828 |
+
|
829 |
+
open: function(options, index) {
|
830 |
+
_checkInstance();
|
831 |
+
|
832 |
+
if(!options) {
|
833 |
+
options = {};
|
834 |
+
} else {
|
835 |
+
options = $.extend(true, {}, options);
|
836 |
+
}
|
837 |
+
|
838 |
+
options.isObj = true;
|
839 |
+
options.index = index || 0;
|
840 |
+
return this.instance.open(options);
|
841 |
+
},
|
842 |
+
|
843 |
+
close: function() {
|
844 |
+
return $.magnificPopup.instance && $.magnificPopup.instance.close();
|
845 |
+
},
|
846 |
+
|
847 |
+
registerModule: function(name, module) {
|
848 |
+
if(module.options) {
|
849 |
+
$.magnificPopup.defaults[name] = module.options;
|
850 |
+
}
|
851 |
+
$.extend(this.proto, module.proto);
|
852 |
+
this.modules.push(name);
|
853 |
+
},
|
854 |
+
|
855 |
+
defaults: {
|
856 |
+
|
857 |
+
// Info about options is in docs:
|
858 |
+
// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
|
859 |
+
|
860 |
+
disableOn: 0,
|
861 |
+
|
862 |
+
key: null,
|
863 |
+
|
864 |
+
midClick: false,
|
865 |
+
|
866 |
+
mainClass: '',
|
867 |
+
|
868 |
+
preloader: true,
|
869 |
+
|
870 |
+
focus: '', // CSS selector of input to focus after popup is opened
|
871 |
+
|
872 |
+
closeOnContentClick: false,
|
873 |
+
|
874 |
+
closeOnBgClick: true,
|
875 |
+
|
876 |
+
closeBtnInside: true,
|
877 |
+
|
878 |
+
showCloseBtn: true,
|
879 |
+
|
880 |
+
enableEscapeKey: true,
|
881 |
+
|
882 |
+
modal: false,
|
883 |
+
|
884 |
+
alignTop: false,
|
885 |
+
|
886 |
+
removalDelay: 0,
|
887 |
+
|
888 |
+
prependTo: null,
|
889 |
+
|
890 |
+
fixedContentPos: 'auto',
|
891 |
+
|
892 |
+
fixedBgPos: 'auto',
|
893 |
+
|
894 |
+
overflowY: 'auto',
|
895 |
+
|
896 |
+
closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>',
|
897 |
+
|
898 |
+
tClose: 'Close (Esc)',
|
899 |
+
|
900 |
+
tLoading: 'Loading...',
|
901 |
+
|
902 |
+
autoFocusLast: true
|
903 |
+
|
904 |
+
}
|
905 |
+
};
|
906 |
+
|
907 |
+
|
908 |
+
|
909 |
+
$.fn.magnificPopup = function(options) {
|
910 |
+
_checkInstance();
|
911 |
+
|
912 |
+
var jqEl = $(this);
|
913 |
+
|
914 |
+
// We call some API method of first param is a string
|
915 |
+
if (typeof options === "string" ) {
|
916 |
+
|
917 |
+
if(options === 'open') {
|
918 |
+
var items,
|
919 |
+
itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
|
920 |
+
index = parseInt(arguments[1], 10) || 0;
|
921 |
+
|
922 |
+
if(itemOpts.items) {
|
923 |
+
items = itemOpts.items[index];
|
924 |
+
} else {
|
925 |
+
items = jqEl;
|
926 |
+
if(itemOpts.delegate) {
|
927 |
+
items = items.find(itemOpts.delegate);
|
928 |
+
}
|
929 |
+
items = items.eq( index );
|
930 |
+
}
|
931 |
+
mfp._openClick({mfpEl:items}, jqEl, itemOpts);
|
932 |
+
} else {
|
933 |
+
if(mfp.isOpen)
|
934 |
+
mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
|
935 |
+
}
|
936 |
+
|
937 |
+
} else {
|
938 |
+
// clone options obj
|
939 |
+
options = $.extend(true, {}, options);
|
940 |
+
|
941 |
+
/*
|
942 |
+
* As Zepto doesn't support .data() method for objects
|
943 |
+
* and it works only in normal browsers
|
944 |
+
* we assign "options" object directly to the DOM element. FTW!
|
945 |
+
*/
|
946 |
+
if(_isJQ) {
|
947 |
+
jqEl.data('magnificPopup', options);
|
948 |
+
} else {
|
949 |
+
jqEl[0].magnificPopup = options;
|
950 |
+
}
|
951 |
+
|
952 |
+
mfp.addGroup(jqEl, options);
|
953 |
+
|
954 |
+
}
|
955 |
+
return jqEl;
|
956 |
+
};
|
957 |
+
|
958 |
+
/*>>core*/
|
959 |
+
|
960 |
+
/*>>inline*/
|
961 |
+
|
962 |
+
var INLINE_NS = 'inline',
|
963 |
+
_hiddenClass,
|
964 |
+
_inlinePlaceholder,
|
965 |
+
_lastInlineElement,
|
966 |
+
_putInlineElementsBack = function() {
|
967 |
+
if(_lastInlineElement) {
|
968 |
+
_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
|
969 |
+
_lastInlineElement = null;
|
970 |
+
}
|
971 |
+
};
|
972 |
+
|
973 |
+
$.magnificPopup.registerModule(INLINE_NS, {
|
974 |
+
options: {
|
975 |
+
hiddenClass: 'hide', // will be appended with `mfp-` prefix
|
976 |
+
markup: '',
|
977 |
+
tNotFound: 'Content not found'
|
978 |
+
},
|
979 |
+
proto: {
|
980 |
+
|
981 |
+
initInline: function() {
|
982 |
+
mfp.types.push(INLINE_NS);
|
983 |
+
|
984 |
+
_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
|
985 |
+
_putInlineElementsBack();
|
986 |
+
});
|
987 |
+
},
|
988 |
+
|
989 |
+
getInline: function(item, template) {
|
990 |
+
|
991 |
+
_putInlineElementsBack();
|
992 |
+
|
993 |
+
if(item.src) {
|
994 |
+
var inlineSt = mfp.st.inline,
|
995 |
+
el = $(item.src);
|
996 |
+
|
997 |
+
if(el.length) {
|
998 |
+
|
999 |
+
// If target element has parent - we replace it with placeholder and put it back after popup is closed
|
1000 |
+
var parent = el[0].parentNode;
|
1001 |
+
if(parent && parent.tagName) {
|
1002 |
+
if(!_inlinePlaceholder) {
|
1003 |
+
_hiddenClass = inlineSt.hiddenClass;
|
1004 |
+
_inlinePlaceholder = _getEl(_hiddenClass);
|
1005 |
+
_hiddenClass = 'mfp-'+_hiddenClass;
|
1006 |
+
}
|
1007 |
+
// replace target inline element with placeholder
|
1008 |
+
_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
mfp.updateStatus('ready');
|
1012 |
+
} else {
|
1013 |
+
mfp.updateStatus('error', inlineSt.tNotFound);
|
1014 |
+
el = $('<div>');
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
item.inlineElement = el;
|
1018 |
+
return el;
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
mfp.updateStatus('ready');
|
1022 |
+
mfp._parseMarkup(template, {}, item);
|
1023 |
+
return template;
|
1024 |
+
}
|
1025 |
+
}
|
1026 |
+
});
|
1027 |
+
|
1028 |
+
/*>>inline*/
|
1029 |
+
|
1030 |
+
/*>>ajax*/
|
1031 |
+
var AJAX_NS = 'ajax',
|
1032 |
+
_ajaxCur,
|
1033 |
+
_removeAjaxCursor = function() {
|
1034 |
+
if(_ajaxCur) {
|
1035 |
+
$(document.body).removeClass(_ajaxCur);
|
1036 |
+
}
|
1037 |
+
},
|
1038 |
+
_destroyAjaxRequest = function() {
|
1039 |
+
_removeAjaxCursor();
|
1040 |
+
if(mfp.req) {
|
1041 |
+
mfp.req.abort();
|
1042 |
+
}
|
1043 |
+
};
|
1044 |
+
|
1045 |
+
$.magnificPopup.registerModule(AJAX_NS, {
|
1046 |
+
|
1047 |
+
options: {
|
1048 |
+
settings: null,
|
1049 |
+
cursor: 'mfp-ajax-cur',
|
1050 |
+
tError: '<a href="%url%">The content</a> could not be loaded.'
|
1051 |
+
},
|
1052 |
+
|
1053 |
+
proto: {
|
1054 |
+
initAjax: function() {
|
1055 |
+
mfp.types.push(AJAX_NS);
|
1056 |
+
_ajaxCur = mfp.st.ajax.cursor;
|
1057 |
+
|
1058 |
+
_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
|
1059 |
+
_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
|
1060 |
+
},
|
1061 |
+
getAjax: function(item) {
|
1062 |
+
|
1063 |
+
if(_ajaxCur) {
|
1064 |
+
$(document.body).addClass(_ajaxCur);
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
mfp.updateStatus('loading');
|
1068 |
+
|
1069 |
+
var opts = $.extend({
|
1070 |
+
url: item.src,
|
1071 |
+
success: function(data, textStatus, jqXHR) {
|
1072 |
+
var temp = {
|
1073 |
+
data:data,
|
1074 |
+
xhr:jqXHR
|
1075 |
+
};
|
1076 |
+
|
1077 |
+
_mfpTrigger('ParseAjax', temp);
|
1078 |
+
|
1079 |
+
mfp.appendContent( $(temp.data), AJAX_NS );
|
1080 |
+
|
1081 |
+
item.finished = true;
|
1082 |
+
|
1083 |
+
_removeAjaxCursor();
|
1084 |
+
|
1085 |
+
mfp._setFocus();
|
1086 |
+
|
1087 |
+
setTimeout(function() {
|
1088 |
+
mfp.wrap.addClass(READY_CLASS);
|
1089 |
+
}, 16);
|
1090 |
+
|
1091 |
+
mfp.updateStatus('ready');
|
1092 |
+
|
1093 |
+
_mfpTrigger('AjaxContentAdded');
|
1094 |
+
},
|
1095 |
+
error: function() {
|
1096 |
+
_removeAjaxCursor();
|
1097 |
+
item.finished = item.loadError = true;
|
1098 |
+
mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
|
1099 |
+
}
|
1100 |
+
}, mfp.st.ajax.settings);
|
1101 |
+
|
1102 |
+
mfp.req = $.ajax(opts);
|
1103 |
+
|
1104 |
+
return '';
|
1105 |
+
}
|
1106 |
+
}
|
1107 |
+
});
|
1108 |
+
|
1109 |
+
/*>>ajax*/
|
1110 |
+
|
1111 |
+
/*>>image*/
|
1112 |
+
var _imgInterval,
|
1113 |
+
_getTitle = function(item) {
|
1114 |
+
if(item.data && item.data.title !== undefined)
|
1115 |
+
return item.data.title;
|
1116 |
+
|
1117 |
+
var src = mfp.st.image.titleSrc;
|
1118 |
+
|
1119 |
+
if(src) {
|
1120 |
+
if($.isFunction(src)) {
|
1121 |
+
return src.call(mfp, item);
|
1122 |
+
} else if(item.el) {
|
1123 |
+
return item.el.attr(src) || '';
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
return '';
|
1127 |
+
};
|
1128 |
+
|
1129 |
+
$.magnificPopup.registerModule('image', {
|
1130 |
+
|
1131 |
+
options: {
|
1132 |
+
markup: '<div class="mfp-figure">'+
|
1133 |
+
'<div class="mfp-close"></div>'+
|
1134 |
+
'<figure>'+
|
1135 |
+
'<div class="mfp-img"></div>'+
|
1136 |
+
'<figcaption>'+
|
1137 |
+
'<div class="mfp-bottom-bar">'+
|
1138 |
+
'<div class="mfp-title"></div>'+
|
1139 |
+
'<div class="mfp-counter"></div>'+
|
1140 |
+
'</div>'+
|
1141 |
+
'</figcaption>'+
|
1142 |
+
'</figure>'+
|
1143 |
+
'</div>',
|
1144 |
+
cursor: 'mfp-zoom-out-cur',
|
1145 |
+
titleSrc: 'title',
|
1146 |
+
verticalFit: true,
|
1147 |
+
tError: '<a href="%url%">The image</a> could not be loaded.'
|
1148 |
+
},
|
1149 |
+
|
1150 |
+
proto: {
|
1151 |
+
initImage: function() {
|
1152 |
+
var imgSt = mfp.st.image,
|
1153 |
+
ns = '.image';
|
1154 |
+
|
1155 |
+
mfp.types.push('image');
|
1156 |
+
|
1157 |
+
_mfpOn(OPEN_EVENT+ns, function() {
|
1158 |
+
if(mfp.currItem.type === 'image' && imgSt.cursor) {
|
1159 |
+
$(document.body).addClass(imgSt.cursor);
|
1160 |
+
}
|
1161 |
+
});
|
1162 |
+
|
1163 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1164 |
+
if(imgSt.cursor) {
|
1165 |
+
$(document.body).removeClass(imgSt.cursor);
|
1166 |
+
}
|
1167 |
+
_window.off('resize' + EVENT_NS);
|
1168 |
+
});
|
1169 |
+
|
1170 |
+
_mfpOn('Resize'+ns, mfp.resizeImage);
|
1171 |
+
if(mfp.isLowIE) {
|
1172 |
+
_mfpOn('AfterChange', mfp.resizeImage);
|
1173 |
+
}
|
1174 |
+
},
|
1175 |
+
resizeImage: function() {
|
1176 |
+
var item = mfp.currItem;
|
1177 |
+
if(!item || !item.img) return;
|
1178 |
+
|
1179 |
+
if(mfp.st.image.verticalFit) {
|
1180 |
+
var decr = 0;
|
1181 |
+
// fix box-sizing in ie7/8
|
1182 |
+
if(mfp.isLowIE) {
|
1183 |
+
decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
|
1184 |
+
}
|
1185 |
+
item.img.css('max-height', mfp.wH-decr);
|
1186 |
+
}
|
1187 |
+
},
|
1188 |
+
_onImageHasSize: function(item) {
|
1189 |
+
if(item.img) {
|
1190 |
+
|
1191 |
+
item.hasSize = true;
|
1192 |
+
|
1193 |
+
if(_imgInterval) {
|
1194 |
+
clearInterval(_imgInterval);
|
1195 |
+
}
|
1196 |
+
|
1197 |
+
item.isCheckingImgSize = false;
|
1198 |
+
|
1199 |
+
_mfpTrigger('ImageHasSize', item);
|
1200 |
+
|
1201 |
+
if(item.imgHidden) {
|
1202 |
+
if(mfp.content)
|
1203 |
+
mfp.content.removeClass('mfp-loading');
|
1204 |
+
|
1205 |
+
item.imgHidden = false;
|
1206 |
+
}
|
1207 |
+
|
1208 |
+
}
|
1209 |
+
},
|
1210 |
+
|
1211 |
+
/**
|
1212 |
+
* Function that loops until the image has size to display elements that rely on it asap
|
1213 |
+
*/
|
1214 |
+
findImageSize: function(item) {
|
1215 |
+
|
1216 |
+
var counter = 0,
|
1217 |
+
img = item.img[0],
|
1218 |
+
mfpSetInterval = function(delay) {
|
1219 |
+
|
1220 |
+
if(_imgInterval) {
|
1221 |
+
clearInterval(_imgInterval);
|
1222 |
+
}
|
1223 |
+
// decelerating interval that checks for size of an image
|
1224 |
+
_imgInterval = setInterval(function() {
|
1225 |
+
if(img.naturalWidth > 0) {
|
1226 |
+
mfp._onImageHasSize(item);
|
1227 |
+
return;
|
1228 |
+
}
|
1229 |
+
|
1230 |
+
if(counter > 200) {
|
1231 |
+
clearInterval(_imgInterval);
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
counter++;
|
1235 |
+
if(counter === 3) {
|
1236 |
+
mfpSetInterval(10);
|
1237 |
+
} else if(counter === 40) {
|
1238 |
+
mfpSetInterval(50);
|
1239 |
+
} else if(counter === 100) {
|
1240 |
+
mfpSetInterval(500);
|
1241 |
+
}
|
1242 |
+
}, delay);
|
1243 |
+
};
|
1244 |
+
|
1245 |
+
mfpSetInterval(1);
|
1246 |
+
},
|
1247 |
+
|
1248 |
+
getImage: function(item, template) {
|
1249 |
+
|
1250 |
+
var guard = 0,
|
1251 |
+
|
1252 |
+
// image load complete handler
|
1253 |
+
onLoadComplete = function() {
|
1254 |
+
if(item) {
|
1255 |
+
if (item.img[0].complete) {
|
1256 |
+
item.img.off('.mfploader');
|
1257 |
+
|
1258 |
+
if(item === mfp.currItem){
|
1259 |
+
mfp._onImageHasSize(item);
|
1260 |
+
|
1261 |
+
mfp.updateStatus('ready');
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
item.hasSize = true;
|
1265 |
+
item.loaded = true;
|
1266 |
+
|
1267 |
+
_mfpTrigger('ImageLoadComplete');
|
1268 |
+
|
1269 |
+
}
|
1270 |
+
else {
|
1271 |
+
// if image complete check fails 200 times (20 sec), we assume that there was an error.
|
1272 |
+
guard++;
|
1273 |
+
if(guard < 200) {
|
1274 |
+
setTimeout(onLoadComplete,100);
|
1275 |
+
} else {
|
1276 |
+
onLoadError();
|
1277 |
+
}
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
},
|
1281 |
+
|
1282 |
+
// image error handler
|
1283 |
+
onLoadError = function() {
|
1284 |
+
if(item) {
|
1285 |
+
item.img.off('.mfploader');
|
1286 |
+
if(item === mfp.currItem){
|
1287 |
+
mfp._onImageHasSize(item);
|
1288 |
+
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
item.hasSize = true;
|
1292 |
+
item.loaded = true;
|
1293 |
+
item.loadError = true;
|
1294 |
+
}
|
1295 |
+
},
|
1296 |
+
imgSt = mfp.st.image;
|
1297 |
+
|
1298 |
+
|
1299 |
+
var el = template.find('.mfp-img');
|
1300 |
+
if(el.length) {
|
1301 |
+
var img = document.createElement('img');
|
1302 |
+
img.className = 'mfp-img';
|
1303 |
+
if(item.el && item.el.find('img').length) {
|
1304 |
+
img.alt = item.el.find('img').attr('alt');
|
1305 |
+
}
|
1306 |
+
item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
|
1307 |
+
img.src = item.src;
|
1308 |
+
|
1309 |
+
// without clone() "error" event is not firing when IMG is replaced by new IMG
|
1310 |
+
// TODO: find a way to avoid such cloning
|
1311 |
+
if(el.is('img')) {
|
1312 |
+
item.img = item.img.clone();
|
1313 |
+
}
|
1314 |
+
|
1315 |
+
img = item.img[0];
|
1316 |
+
if(img.naturalWidth > 0) {
|
1317 |
+
item.hasSize = true;
|
1318 |
+
} else if(!img.width) {
|
1319 |
+
item.hasSize = false;
|
1320 |
+
}
|
1321 |
+
}
|
1322 |
+
|
1323 |
+
mfp._parseMarkup(template, {
|
1324 |
+
title: _getTitle(item),
|
1325 |
+
img_replaceWith: item.img
|
1326 |
+
}, item);
|
1327 |
+
|
1328 |
+
mfp.resizeImage();
|
1329 |
+
|
1330 |
+
if(item.hasSize) {
|
1331 |
+
if(_imgInterval) clearInterval(_imgInterval);
|
1332 |
+
|
1333 |
+
if(item.loadError) {
|
1334 |
+
template.addClass('mfp-loading');
|
1335 |
+
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
1336 |
+
} else {
|
1337 |
+
template.removeClass('mfp-loading');
|
1338 |
+
mfp.updateStatus('ready');
|
1339 |
+
}
|
1340 |
+
return template;
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
mfp.updateStatus('loading');
|
1344 |
+
item.loading = true;
|
1345 |
+
|
1346 |
+
if(!item.hasSize) {
|
1347 |
+
item.imgHidden = true;
|
1348 |
+
template.addClass('mfp-loading');
|
1349 |
+
mfp.findImageSize(item);
|
1350 |
+
}
|
1351 |
+
|
1352 |
+
return template;
|
1353 |
+
}
|
1354 |
+
}
|
1355 |
+
});
|
1356 |
+
|
1357 |
+
/*>>image*/
|
1358 |
+
|
1359 |
+
/*>>zoom*/
|
1360 |
+
var hasMozTransform,
|
1361 |
+
getHasMozTransform = function() {
|
1362 |
+
if(hasMozTransform === undefined) {
|
1363 |
+
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
|
1364 |
+
}
|
1365 |
+
return hasMozTransform;
|
1366 |
+
};
|
1367 |
+
|
1368 |
+
$.magnificPopup.registerModule('zoom', {
|
1369 |
+
|
1370 |
+
options: {
|
1371 |
+
enabled: false,
|
1372 |
+
easing: 'ease-in-out',
|
1373 |
+
duration: 300,
|
1374 |
+
opener: function(element) {
|
1375 |
+
return element.is('img') ? element : element.find('img');
|
1376 |
+
}
|
1377 |
+
},
|
1378 |
+
|
1379 |
+
proto: {
|
1380 |
+
|
1381 |
+
initZoom: function() {
|
1382 |
+
var zoomSt = mfp.st.zoom,
|
1383 |
+
ns = '.zoom',
|
1384 |
+
image;
|
1385 |
+
|
1386 |
+
if(!zoomSt.enabled || !mfp.supportsTransition) {
|
1387 |
+
return;
|
1388 |
+
}
|
1389 |
+
|
1390 |
+
var duration = zoomSt.duration,
|
1391 |
+
getElToAnimate = function(image) {
|
1392 |
+
var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
|
1393 |
+
transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
|
1394 |
+
cssObj = {
|
1395 |
+
position: 'fixed',
|
1396 |
+
zIndex: 9999,
|
1397 |
+
left: 0,
|
1398 |
+
top: 0,
|
1399 |
+
'-webkit-backface-visibility': 'hidden'
|
1400 |
+
},
|
1401 |
+
t = 'transition';
|
1402 |
+
|
1403 |
+
cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
|
1404 |
+
|
1405 |
+
newImg.css(cssObj);
|
1406 |
+
return newImg;
|
1407 |
+
},
|
1408 |
+
showMainContent = function() {
|
1409 |
+
mfp.content.css('visibility', 'visible');
|
1410 |
+
},
|
1411 |
+
openTimeout,
|
1412 |
+
animatedImg;
|
1413 |
+
|
1414 |
+
_mfpOn('BuildControls'+ns, function() {
|
1415 |
+
if(mfp._allowZoom()) {
|
1416 |
+
|
1417 |
+
clearTimeout(openTimeout);
|
1418 |
+
mfp.content.css('visibility', 'hidden');
|
1419 |
+
|
1420 |
+
// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
|
1421 |
+
|
1422 |
+
image = mfp._getItemToZoom();
|
1423 |
+
|
1424 |
+
if(!image) {
|
1425 |
+
showMainContent();
|
1426 |
+
return;
|
1427 |
+
}
|
1428 |
+
|
1429 |
+
animatedImg = getElToAnimate(image);
|
1430 |
+
|
1431 |
+
animatedImg.css( mfp._getOffset() );
|
1432 |
+
|
1433 |
+
mfp.wrap.append(animatedImg);
|
1434 |
+
|
1435 |
+
openTimeout = setTimeout(function() {
|
1436 |
+
animatedImg.css( mfp._getOffset( true ) );
|
1437 |
+
openTimeout = setTimeout(function() {
|
1438 |
+
|
1439 |
+
showMainContent();
|
1440 |
+
|
1441 |
+
setTimeout(function() {
|
1442 |
+
animatedImg.remove();
|
1443 |
+
image = animatedImg = null;
|
1444 |
+
_mfpTrigger('ZoomAnimationEnded');
|
1445 |
+
}, 16); // avoid blink when switching images
|
1446 |
+
|
1447 |
+
}, duration); // this timeout equals animation duration
|
1448 |
+
|
1449 |
+
}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
|
1450 |
+
|
1451 |
+
|
1452 |
+
// Lots of timeouts...
|
1453 |
+
}
|
1454 |
+
});
|
1455 |
+
_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
|
1456 |
+
if(mfp._allowZoom()) {
|
1457 |
+
|
1458 |
+
clearTimeout(openTimeout);
|
1459 |
+
|
1460 |
+
mfp.st.removalDelay = duration;
|
1461 |
+
|
1462 |
+
if(!image) {
|
1463 |
+
image = mfp._getItemToZoom();
|
1464 |
+
if(!image) {
|
1465 |
+
return;
|
1466 |
+
}
|
1467 |
+
animatedImg = getElToAnimate(image);
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
animatedImg.css( mfp._getOffset(true) );
|
1471 |
+
mfp.wrap.append(animatedImg);
|
1472 |
+
mfp.content.css('visibility', 'hidden');
|
1473 |
+
|
1474 |
+
setTimeout(function() {
|
1475 |
+
animatedImg.css( mfp._getOffset() );
|
1476 |
+
}, 16);
|
1477 |
+
}
|
1478 |
+
|
1479 |
+
});
|
1480 |
+
|
1481 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1482 |
+
if(mfp._allowZoom()) {
|
1483 |
+
showMainContent();
|
1484 |
+
if(animatedImg) {
|
1485 |
+
animatedImg.remove();
|
1486 |
+
}
|
1487 |
+
image = null;
|
1488 |
+
}
|
1489 |
+
});
|
1490 |
+
},
|
1491 |
+
|
1492 |
+
_allowZoom: function() {
|
1493 |
+
return mfp.currItem.type === 'image';
|
1494 |
+
},
|
1495 |
+
|
1496 |
+
_getItemToZoom: function() {
|
1497 |
+
if(mfp.currItem.hasSize) {
|
1498 |
+
return mfp.currItem.img;
|
1499 |
+
} else {
|
1500 |
+
return false;
|
1501 |
+
}
|
1502 |
+
},
|
1503 |
+
|
1504 |
+
// Get element postion relative to viewport
|
1505 |
+
_getOffset: function(isLarge) {
|
1506 |
+
var el;
|
1507 |
+
if(isLarge) {
|
1508 |
+
el = mfp.currItem.img;
|
1509 |
+
} else {
|
1510 |
+
el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
|
1511 |
+
}
|
1512 |
+
|
1513 |
+
var offset = el.offset();
|
1514 |
+
var paddingTop = parseInt(el.css('padding-top'),10);
|
1515 |
+
var paddingBottom = parseInt(el.css('padding-bottom'),10);
|
1516 |
+
offset.top -= ( $(window).scrollTop() - paddingTop );
|
1517 |
+
|
1518 |
+
|
1519 |
+
/*
|
1520 |
+
|
1521 |
+
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
|
1522 |
+
|
1523 |
+
*/
|
1524 |
+
var obj = {
|
1525 |
+
width: el.width(),
|
1526 |
+
// fix Zepto height+padding issue
|
1527 |
+
height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
|
1528 |
+
};
|
1529 |
+
|
1530 |
+
// I hate to do this, but there is no another option
|
1531 |
+
if( getHasMozTransform() ) {
|
1532 |
+
obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
|
1533 |
+
} else {
|
1534 |
+
obj.left = offset.left;
|
1535 |
+
obj.top = offset.top;
|
1536 |
+
}
|
1537 |
+
return obj;
|
1538 |
+
}
|
1539 |
+
|
1540 |
+
}
|
1541 |
+
});
|
1542 |
+
|
1543 |
+
|
1544 |
+
|
1545 |
+
/*>>zoom*/
|
1546 |
+
|
1547 |
+
/*>>iframe*/
|
1548 |
+
|
1549 |
+
var IFRAME_NS = 'iframe',
|
1550 |
+
_emptyPage = '//about:blank',
|
1551 |
+
|
1552 |
+
_fixIframeBugs = function(isShowing) {
|
1553 |
+
if(mfp.currTemplate[IFRAME_NS]) {
|
1554 |
+
var el = mfp.currTemplate[IFRAME_NS].find('iframe');
|
1555 |
+
if(el.length) {
|
1556 |
+
// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
|
1557 |
+
if(!isShowing) {
|
1558 |
+
el[0].src = _emptyPage;
|
1559 |
+
}
|
1560 |
+
|
1561 |
+
// IE8 black screen bug fix
|
1562 |
+
if(mfp.isIE8) {
|
1563 |
+
el.css('display', isShowing ? 'block' : 'none');
|
1564 |
+
}
|
1565 |
+
}
|
1566 |
+
}
|
1567 |
+
};
|
1568 |
+
|
1569 |
+
$.magnificPopup.registerModule(IFRAME_NS, {
|
1570 |
+
|
1571 |
+
options: {
|
1572 |
+
markup: '<div class="mfp-iframe-scaler">'+
|
1573 |
+
'<div class="mfp-close"></div>'+
|
1574 |
+
'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+
|
1575 |
+
'</div>',
|
1576 |
+
|
1577 |
+
srcAction: 'iframe_src',
|
1578 |
+
|
1579 |
+
// we don't care and support only one default type of URL by default
|
1580 |
+
patterns: {
|
1581 |
+
youtube: {
|
1582 |
+
index: 'youtube.com',
|
1583 |
+
id: 'v=',
|
1584 |
+
src: '//www.youtube.com/embed/%id%?autoplay=1'
|
1585 |
+
},
|
1586 |
+
vimeo: {
|
1587 |
+
index: 'vimeo.com/',
|
1588 |
+
id: '/',
|
1589 |
+
src: '//player.vimeo.com/video/%id%?autoplay=1'
|
1590 |
+
},
|
1591 |
+
gmaps: {
|
1592 |
+
index: '//maps.google.',
|
1593 |
+
src: '%id%&output=embed'
|
1594 |
+
}
|
1595 |
+
}
|
1596 |
+
},
|
1597 |
+
|
1598 |
+
proto: {
|
1599 |
+
initIframe: function() {
|
1600 |
+
mfp.types.push(IFRAME_NS);
|
1601 |
+
|
1602 |
+
_mfpOn('BeforeChange', function(e, prevType, newType) {
|
1603 |
+
if(prevType !== newType) {
|
1604 |
+
if(prevType === IFRAME_NS) {
|
1605 |
+
_fixIframeBugs(); // iframe if removed
|
1606 |
+
} else if(newType === IFRAME_NS) {
|
1607 |
+
_fixIframeBugs(true); // iframe is showing
|
1608 |
+
}
|
1609 |
+
}// else {
|
1610 |
+
// iframe source is switched, don't do anything
|
1611 |
+
//}
|
1612 |
+
});
|
1613 |
+
|
1614 |
+
_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
|
1615 |
+
_fixIframeBugs();
|
1616 |
+
});
|
1617 |
+
},
|
1618 |
+
|
1619 |
+
getIframe: function(item, template) {
|
1620 |
+
var embedSrc = item.src;
|
1621 |
+
var iframeSt = mfp.st.iframe;
|
1622 |
+
|
1623 |
+
$.each(iframeSt.patterns, function() {
|
1624 |
+
if(embedSrc.indexOf( this.index ) > -1) {
|
1625 |
+
if(this.id) {
|
1626 |
+
if(typeof this.id === 'string') {
|
1627 |
+
embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
|
1628 |
+
} else {
|
1629 |
+
embedSrc = this.id.call( this, embedSrc );
|
1630 |
+
}
|
1631 |
+
}
|
1632 |
+
embedSrc = this.src.replace('%id%', embedSrc );
|
1633 |
+
return false; // break;
|
1634 |
+
}
|
1635 |
+
});
|
1636 |
+
|
1637 |
+
var dataObj = {};
|
1638 |
+
if(iframeSt.srcAction) {
|
1639 |
+
dataObj[iframeSt.srcAction] = embedSrc;
|
1640 |
+
}
|
1641 |
+
mfp._parseMarkup(template, dataObj, item);
|
1642 |
+
|
1643 |
+
mfp.updateStatus('ready');
|
1644 |
+
|
1645 |
+
return template;
|
1646 |
+
}
|
1647 |
+
}
|
1648 |
+
});
|
1649 |
+
|
1650 |
+
|
1651 |
+
|
1652 |
+
/*>>iframe*/
|
1653 |
+
|
1654 |
+
/*>>gallery*/
|
1655 |
+
/**
|
1656 |
+
* Get looped index depending on number of slides
|
1657 |
+
*/
|
1658 |
+
var _getLoopedId = function(index) {
|
1659 |
+
var numSlides = mfp.items.length;
|
1660 |
+
if(index > numSlides - 1) {
|
1661 |
+
return index - numSlides;
|
1662 |
+
} else if(index < 0) {
|
1663 |
+
return numSlides + index;
|
1664 |
+
}
|
1665 |
+
return index;
|
1666 |
+
},
|
1667 |
+
_replaceCurrTotal = function(text, curr, total) {
|
1668 |
+
return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
|
1669 |
+
};
|
1670 |
+
|
1671 |
+
$.magnificPopup.registerModule('gallery', {
|
1672 |
+
|
1673 |
+
options: {
|
1674 |
+
enabled: false,
|
1675 |
+
arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
|
1676 |
+
preload: [0,2],
|
1677 |
+
navigateByImgClick: true,
|
1678 |
+
arrows: true,
|
1679 |
+
|
1680 |
+
tPrev: 'Previous (Left arrow key)',
|
1681 |
+
tNext: 'Next (Right arrow key)',
|
1682 |
+
tCounter: '%curr% of %total%'
|
1683 |
+
},
|
1684 |
+
|
1685 |
+
proto: {
|
1686 |
+
initGallery: function() {
|
1687 |
+
|
1688 |
+
var gSt = mfp.st.gallery,
|
1689 |
+
ns = '.mfp-gallery';
|
1690 |
+
|
1691 |
+
mfp.direction = true; // true - next, false - prev
|
1692 |
+
|
1693 |
+
if(!gSt || !gSt.enabled ) return false;
|
1694 |
+
|
1695 |
+
_wrapClasses += ' mfp-gallery';
|
1696 |
+
|
1697 |
+
_mfpOn(OPEN_EVENT+ns, function() {
|
1698 |
+
|
1699 |
+
if(gSt.navigateByImgClick) {
|
1700 |
+
mfp.wrap.on('click'+ns, '.mfp-img', function() {
|
1701 |
+
if(mfp.items.length > 1) {
|
1702 |
+
mfp.next();
|
1703 |
+
return false;
|
1704 |
+
}
|
1705 |
+
});
|
1706 |
+
}
|
1707 |
+
|
1708 |
+
_document.on('keydown'+ns, function(e) {
|
1709 |
+
if (e.keyCode === 37) {
|
1710 |
+
mfp.prev();
|
1711 |
+
} else if (e.keyCode === 39) {
|
1712 |
+
mfp.next();
|
1713 |
+
}
|
1714 |
+
});
|
1715 |
+
});
|
1716 |
+
|
1717 |
+
_mfpOn('UpdateStatus'+ns, function(e, data) {
|
1718 |
+
if(data.text) {
|
1719 |
+
data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
|
1720 |
+
}
|
1721 |
+
});
|
1722 |
+
|
1723 |
+
_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
|
1724 |
+
var l = mfp.items.length;
|
1725 |
+
values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
|
1726 |
+
});
|
1727 |
+
|
1728 |
+
_mfpOn('BuildControls' + ns, function() {
|
1729 |
+
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
|
1730 |
+
var markup = gSt.arrowMarkup,
|
1731 |
+
arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
|
1732 |
+
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
|
1733 |
+
|
1734 |
+
arrowLeft.click(function() {
|
1735 |
+
mfp.prev();
|
1736 |
+
});
|
1737 |
+
arrowRight.click(function() {
|
1738 |
+
mfp.next();
|
1739 |
+
});
|
1740 |
+
|
1741 |
+
mfp.container.append(arrowLeft.add(arrowRight));
|
1742 |
+
}
|
1743 |
+
});
|
1744 |
+
|
1745 |
+
_mfpOn(CHANGE_EVENT+ns, function() {
|
1746 |
+
if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
|
1747 |
+
|
1748 |
+
mfp._preloadTimeout = setTimeout(function() {
|
1749 |
+
mfp.preloadNearbyImages();
|
1750 |
+
mfp._preloadTimeout = null;
|
1751 |
+
}, 16);
|
1752 |
+
});
|
1753 |
+
|
1754 |
+
|
1755 |
+
_mfpOn(CLOSE_EVENT+ns, function() {
|
1756 |
+
_document.off(ns);
|
1757 |
+
mfp.wrap.off('click'+ns);
|
1758 |
+
mfp.arrowRight = mfp.arrowLeft = null;
|
1759 |
+
});
|
1760 |
+
|
1761 |
+
},
|
1762 |
+
next: function() {
|
1763 |
+
mfp.direction = true;
|
1764 |
+
mfp.index = _getLoopedId(mfp.index + 1);
|
1765 |
+
mfp.updateItemHTML();
|
1766 |
+
},
|
1767 |
+
prev: function() {
|
1768 |
+
mfp.direction = false;
|
1769 |
+
mfp.index = _getLoopedId(mfp.index - 1);
|
1770 |
+
mfp.updateItemHTML();
|
1771 |
+
},
|
1772 |
+
goTo: function(newIndex) {
|
1773 |
+
mfp.direction = (newIndex >= mfp.index);
|
1774 |
+
mfp.index = newIndex;
|
1775 |
+
mfp.updateItemHTML();
|
1776 |
+
},
|
1777 |
+
preloadNearbyImages: function() {
|
1778 |
+
var p = mfp.st.gallery.preload,
|
1779 |
+
preloadBefore = Math.min(p[0], mfp.items.length),
|
1780 |
+
preloadAfter = Math.min(p[1], mfp.items.length),
|
1781 |
+
i;
|
1782 |
+
|
1783 |
+
for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
|
1784 |
+
mfp._preloadItem(mfp.index+i);
|
1785 |
+
}
|
1786 |
+
for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
|
1787 |
+
mfp._preloadItem(mfp.index-i);
|
1788 |
+
}
|
1789 |
+
},
|
1790 |
+
_preloadItem: function(index) {
|
1791 |
+
index = _getLoopedId(index);
|
1792 |
+
|
1793 |
+
if(mfp.items[index].preloaded) {
|
1794 |
+
return;
|
1795 |
+
}
|
1796 |
+
|
1797 |
+
var item = mfp.items[index];
|
1798 |
+
if(!item.parsed) {
|
1799 |
+
item = mfp.parseEl( index );
|
1800 |
+
}
|
1801 |
+
|
1802 |
+
_mfpTrigger('LazyLoad', item);
|
1803 |
+
|
1804 |
+
if(item.type === 'image') {
|
1805 |
+
item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
|
1806 |
+
item.hasSize = true;
|
1807 |
+
}).on('error.mfploader', function() {
|
1808 |
+
item.hasSize = true;
|
1809 |
+
item.loadError = true;
|
1810 |
+
_mfpTrigger('LazyLoadError', item);
|
1811 |
+
}).attr('src', item.src);
|
1812 |
+
}
|
1813 |
+
|
1814 |
+
|
1815 |
+
item.preloaded = true;
|
1816 |
+
}
|
1817 |
+
}
|
1818 |
+
});
|
1819 |
+
|
1820 |
+
/*>>gallery*/
|
1821 |
+
|
1822 |
+
/*>>retina*/
|
1823 |
+
|
1824 |
+
var RETINA_NS = 'retina';
|
1825 |
+
|
1826 |
+
$.magnificPopup.registerModule(RETINA_NS, {
|
1827 |
+
options: {
|
1828 |
+
replaceSrc: function(item) {
|
1829 |
+
return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
|
1830 |
+
},
|
1831 |
+
ratio: 1 // Function or number. Set to 1 to disable.
|
1832 |
+
},
|
1833 |
+
proto: {
|
1834 |
+
initRetina: function() {
|
1835 |
+
if(window.devicePixelRatio > 1) {
|
1836 |
+
|
1837 |
+
var st = mfp.st.retina,
|
1838 |
+
ratio = st.ratio;
|
1839 |
+
|
1840 |
+
ratio = !isNaN(ratio) ? ratio : ratio();
|
1841 |
+
|
1842 |
+
if(ratio > 1) {
|
1843 |
+
_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
|
1844 |
+
item.img.css({
|
1845 |
+
'max-width': item.img[0].naturalWidth / ratio,
|
1846 |
+
'width': '100%'
|
1847 |
+
});
|
1848 |
+
});
|
1849 |
+
_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
|
1850 |
+
item.src = st.replaceSrc(item, ratio);
|
1851 |
+
});
|
1852 |
+
}
|
1853 |
+
}
|
1854 |
+
|
1855 |
+
}
|
1856 |
+
}
|
1857 |
+
});
|
1858 |
+
|
1859 |
+
/*>>retina*/
|
1860 |
+
_checkInstance(); }));
|
inc/libraries/magnific-popup/js/jquery.magnific-popup.min.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/*! Magnific Popup - v1.0.0 - 2015-12-16
|
2 |
+
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
+
* Copyright (c) 2015 Dmitry Semenov; */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});
|
inc/libraries/owl-carousel/css/grabbing.png
ADDED
Binary file
|
inc/libraries/owl-carousel/css/owl.carousel.css
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* Core Owl Carousel CSS File
|
3 |
+
* v1.3.3
|
4 |
+
*/
|
5 |
+
|
6 |
+
/* clearfix */
|
7 |
+
.owl-carousel .owl-wrapper:after {
|
8 |
+
content: ".";
|
9 |
+
display: block;
|
10 |
+
clear: both;
|
11 |
+
visibility: hidden;
|
12 |
+
line-height: 0;
|
13 |
+
height: 0;
|
14 |
+
}
|
15 |
+
/* display none until init */
|
16 |
+
.owl-carousel{
|
17 |
+
display: none;
|
18 |
+
position: relative;
|
19 |
+
width: 100%;
|
20 |
+
-ms-touch-action: pan-y;
|
21 |
+
}
|
22 |
+
.owl-carousel .owl-wrapper{
|
23 |
+
display: none;
|
24 |
+
position: relative;
|
25 |
+
-webkit-transform: translate3d(0px, 0px, 0px);
|
26 |
+
}
|
27 |
+
.owl-carousel .owl-wrapper-outer{
|
28 |
+
overflow: hidden;
|
29 |
+
position: relative;
|
30 |
+
width: 100%;
|
31 |
+
}
|
32 |
+
.owl-carousel .owl-wrapper-outer.autoHeight{
|
33 |
+
-webkit-transition: height 500ms ease-in-out;
|
34 |
+
-moz-transition: height 500ms ease-in-out;
|
35 |
+
-ms-transition: height 500ms ease-in-out;
|
36 |
+
-o-transition: height 500ms ease-in-out;
|
37 |
+
transition: height 500ms ease-in-out;
|
38 |
+
}
|
39 |
+
|
40 |
+
.owl-carousel .owl-item{
|
41 |
+
float: left;
|
42 |
+
}
|
43 |
+
.owl-controls .owl-page,
|
44 |
+
.owl-controls .owl-buttons div{
|
45 |
+
cursor: pointer;
|
46 |
+
}
|
47 |
+
.owl-controls {
|
48 |
+
-webkit-user-select: none;
|
49 |
+
-khtml-user-select: none;
|
50 |
+
-moz-user-select: none;
|
51 |
+
-ms-user-select: none;
|
52 |
+
user-select: none;
|
53 |
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
54 |
+
}
|
55 |
+
|
56 |
+
/* mouse grab icon */
|
57 |
+
.grabbing {
|
58 |
+
cursor:url(grabbing.png) 8 8, move;
|
59 |
+
}
|
60 |
+
|
61 |
+
/* fix */
|
62 |
+
.owl-carousel .owl-wrapper,
|
63 |
+
.owl-carousel .owl-item{
|
64 |
+
-webkit-backface-visibility: hidden;
|
65 |
+
-moz-backface-visibility: hidden;
|
66 |
+
-ms-backface-visibility: hidden;
|
67 |
+
-webkit-transform: translate3d(0,0,0);
|
68 |
+
-moz-transform: translate3d(0,0,0);
|
69 |
+
-ms-transform: translate3d(0,0,0);
|
70 |
+
}
|
71 |
+
|
inc/libraries/owl-carousel/js/owl.carousel.min.js
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g});
|
2 |
+
(function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath?
|
3 |
+
(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length;
|
4 |
+
this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&&
|
5 |
+
(this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this,
|
6 |
+
[this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}),
|
7 |
+
g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('<div class="owl-wrapper">').wrap('<div class="owl-item"></div>');this.$elem.find(".owl-wrapper").wrap('<div class="owl-wrapper-outer">');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")},
|
8 |
+
baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall=
|
9 |
+
!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;b<this.options.itemsCustom.length;b+=1)this.options.itemsCustom[b][0]<=a&&(this.options.items=this.options.itemsCustom[b][1]);else a<=this.options.itemsDesktop[0]&&!1!==this.options.itemsDesktop&&(this.options.items=this.options.itemsDesktop[1]),
|
10 |
+
a<=this.options.itemsDesktopSmall[0]&&!1!==this.options.itemsDesktopSmall&&(this.options.items=this.options.itemsDesktopSmall[1]),a<=this.options.itemsTablet[0]&&!1!==this.options.itemsTablet&&(this.options.items=this.options.itemsTablet[1]),a<=this.options.itemsTabletSmall[0]&&!1!==this.options.itemsTabletSmall&&(this.options.items=this.options.itemsTabletSmall[1]),a<=this.options.itemsMobile[0]&&!1!==this.options.itemsMobile&&(this.options.items=this.options.itemsMobile[1]);this.options.items>this.itemsAmount&&
|
11 |
+
!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a=
|
12 |
+
this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/
|
13 |
+
this.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e<this.itemsAmount;e+=1)b+=this.itemWidth,this.positionsInArray.push(-b),!0===this.options.scrollPerPage&&(c=f(this.$owlItems[e]),
|
14 |
+
c=c.data("owl-roundPages"),c!==a&&(this.pagesInArray[a]=this.positionsInArray[e],a=c))},buildControls:function(){if(!0===this.options.navigation||!0===this.options.pagination)this.owlControls=f('<div class="owl-controls"/>').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('<div class="owl-buttons"/>');a.owlControls.append(b);a.buttonPrev=
|
15 |
+
f("<div/>",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("<div/>",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper=
|
16 |
+
f('<div class="owl-pagination"/>');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c<this.itemsAmount;c+=1)0===c%this.options.items&&
|
17 |
+
(a+=1,b===c&&(e=this.itemsAmount-this.options.items),d=f("<div/>",{"class":"owl-page"}),g=f("<span></span>",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")===
|
18 |
+
f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem===
|
19 |
+
this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1;
|
20 |
+
this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0<this.currentItem&&this.currentItem<this.options.items?0:this.currentItem-(!0===this.options.scrollPerPage?
|
21 |
+
this.options.items:1);if(0>this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;"function"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0),
|
22 |
+
!0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},
|
23 |
+
c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem=
|
24 |
+
this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)},
|
25 |
+
checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))},
|
26 |
+
addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms ease",transition:"all "+a+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px, 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 0px)","-o-transform":"translate3d("+a+"px, 0px, 0px)","-ms-transform":"translate3d("+
|
27 |
+
a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement("div");a.style.cssText=" -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)";
|
28 |
+
a=a.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:
|
29 |
+
!1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return f(a.target).is("input, textarea, select, option")})},
|
30 |
+
gestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos;
|
31 |
+
"function"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8<d.newRelativeX||-8>d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10<d.newPosY||-10>d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)}
|
32 |
+
function c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}),
|
33 |
+
a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1;
|
34 |
+
!1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem=
|
35 |
+
a=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20<g&&"left"===a.moveDirection()?(c=g,a.currentItem=!0===a.options.scrollPerPage?f.inArray(c,a.positionsInArray):d):e+a.itemWidth/20<g&&e+a.itemWidth/20>(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)):
|
36 |
+
(c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return a},customEvents:function(){var a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)});
|
37 |
+
a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a<this.itemsAmount;a+=1)b=f(this.$owlItems[a]),"loaded"!==b.data("owl-loaded")&&(e=b.data("owl-item"),c=b.find(".lazyOwl"),"string"!==typeof c.data("src")?
|
38 |
+
b.data("owl-loaded","loaded"):(void 0===b.data("owl-loaded")&&(c.hide(),b.addClass("loading").data("owl-loaded","checked")),(d=!0===this.options.lazyFollow?e>=this.currentItem:!0)&&e<this.currentItem+this.options.items&&c.length&&this.lazyPreload(b,c)))},lazyPreload:function(a,b){function e(){a.data("owl-loaded","loaded").removeClass("loading");b.removeAttr("data-src");"fade"===d.options.lazyEffect?b.fadeIn(400):b.show();"function"===typeof d.options.afterLazyLoad&&d.options.afterLazyLoad.apply(this,
|
39 |
+
[d.$elem])}function c(){f+=1;d.completeImg(b.get(0))||!0===k?e():100>=f?g.setTimeout(c,100):e()}var d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b,
|
40 |
+
100):e.wrapperOuter.css("height","")}var e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a<this.currentItem+this.options.items;a+=1)this.visibleItems.push(a),!0===this.options.addClassActive&&f(this.$owlItems[a]).addClass("active");
|
41 |
+
this.owl.visibleItems=this.visibleItems},transitionTypes:function(a){this.outClass="owl-"+a+"-out";this.inClass="owl-"+a+"-in"},singleItemTransition:function(){var a=this,b=a.outClass,e=a.inClass,c=a.$owlItems.eq(a.currentItem),d=a.$owlItems.eq(a.prevItem),f=Math.abs(a.positionsInArray[a.currentItem])+a.positionsInArray[a.prevItem],g=Math.abs(a.positionsInArray[a.currentItem])+a.itemWidth/2;a.isTransition=!0;a.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":g+"px","-moz-perspective-origin":g+
|
42 |
+
"px","perspective-origin":g+"px"});d.css({position:"relative",left:f+"px"}).addClass(b).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endPrev=!0;d.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(d,b)});c.addClass(e).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endCurrent=!0;c.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(c,e)})},clearTransStyle:function(a,
|
43 |
+
b){a.css({position:"",left:""}).removeClass(b);this.endPrev&&this.endCurrent&&(this.$owlWrapper.removeClass("owl-origin"),this.isTransition=this.endCurrent=this.endPrev=!1)},owlStatus:function(){this.owl={userOptions:this.userOptions,baseElement:this.$elem,userItems:this.$userItems,owlItems:this.$owlItems,currentItem:this.currentItem,prevItem:this.prevItem,visibleItems:this.visibleItems,isTouch:this.browser.isTouch,browser:this.browser,dragDirection:this.dragDirection}},clearEvents:function(){this.$elem.off(".owl owl mousedown.disableTextSelect");
|
44 |
+
f(k).off(".owl owl");f(g).off("resize",this.resizer)},unWrap:function(){0!==this.$elem.children().length&&(this.$owlWrapper.unwrap(),this.$userItems.unwrap().unwrap(),this.owlControls&&this.owlControls.remove());this.clearEvents();this.$elem.attr("style",this.$elem.data("owl-originalStyles")||"").attr("class",this.$elem.data("owl-originalClasses"))},destroy:function(){this.stop();g.clearInterval(this.checkVisible);this.unWrap();this.$elem.removeData()},reinit:function(a){a=f.extend({},this.userOptions,
|
45 |
+
a);this.unWrap();this.init(a,this.$elem)},addItem:function(a,b){var e;if(!a)return!1;if(0===this.$elem.children().length)return this.$elem.append(a),this.setVars(),!1;this.unWrap();e=void 0===b||-1===b?-1:b;e>=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0===
|
46 |
+
f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,
|
47 |
+
responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document);
|
inc/plugins/wp-events-manager-woo-payment.zip
ADDED
Binary file
|
inc/widgets/class-wpems-widget-countdown.php
ADDED
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Adds Foo_Widget widget.
|
5 |
+
*/
|
6 |
+
class WPEMS_Widget_Countdown extends WP_Widget {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Register widget with WordPress.
|
10 |
+
*/
|
11 |
+
function __construct() {
|
12 |
+
parent::__construct(
|
13 |
+
'wpems_widget_countdown', // Base ID
|
14 |
+
__( 'WP Event Countdown', 'wp-events-manager' ), // Name
|
15 |
+
array( 'description' => __( 'Countdown timer for event', 'wp-events-manager' ), ) // Args
|
16 |
+
);
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Front-end display of widget.
|
21 |
+
*
|
22 |
+
* @see WP_Widget::widget()
|
23 |
+
*
|
24 |
+
* @param array $args Widget arguments.
|
25 |
+
* @param array $instance Saved values from database.
|
26 |
+
*/
|
27 |
+
public function widget( $args, $instance ) {
|
28 |
+
echo $args['before_widget'];
|
29 |
+
if ( !empty( $instance['title'] ) ) {
|
30 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
31 |
+
}
|
32 |
+
|
33 |
+
unset( $instance['title'] );
|
34 |
+
|
35 |
+
$html = array();
|
36 |
+
$html[] = '[wp_event_countdown';
|
37 |
+
|
38 |
+
foreach ( $instance as $key => $value ) {
|
39 |
+
if ( strpos( $key, 'wp_' ) !== 0 )
|
40 |
+
continue;
|
41 |
+
|
42 |
+
$key = substr( $key, 3 );
|
43 |
+
|
44 |
+
if ( $key == 'events' ) {
|
45 |
+
$value = array_values( $value );
|
46 |
+
$html[] = ' event_id="' . implode( ',', $value ) . '"';
|
47 |
+
} else {
|
48 |
+
$html[] = $key . '="' . $value . '"';
|
49 |
+
}
|
50 |
+
}
|
51 |
+
$html[] = ']';
|
52 |
+
echo do_shortcode( implode( ' ', $html ) );
|
53 |
+
echo $args['after_widget'];
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Back-end widget form.
|
58 |
+
*
|
59 |
+
* @see WP_Widget::form()
|
60 |
+
*
|
61 |
+
* @param array $instance Previously saved values from database.
|
62 |
+
*/
|
63 |
+
public function form( $instance ) {
|
64 |
+
$title = !empty( $instance['title'] ) ? $instance['title'] : '';
|
65 |
+
$selected = !empty( $instance['wp_events'] ) ? $instance['wp_events'] : array();
|
66 |
+
$nav = isset( $instance['wp_navigation'] ) ? $instance['wp_navigation'] : false;
|
67 |
+
$pagination = isset( $instance['wp_pagination'] ) ? $instance['wp_pagination'] : false;
|
68 |
+
$slide = isset( $instance['wp_slide'] ) ? $instance['wp_slide'] : false;
|
69 |
+
?>
|
70 |
+
<p>
|
71 |
+
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
|
72 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
|
73 |
+
</p>
|
74 |
+
<p>
|
75 |
+
<label for="<?php echo $this->get_field_id( 'wp_slide' ); ?>"><?php _e( 'Carousel Slide:' ); ?></label>
|
76 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'wp_slide' ); ?>" name="<?php echo $this->get_field_name( 'wp_slide' ); ?>" type="checkbox" value="true"<?php echo $slide == 'true' ? ' checked' : '' ?>>
|
77 |
+
</p>
|
78 |
+
<p>
|
79 |
+
<label for="<?php echo $this->get_field_id( 'wp_navigation' ); ?>"><?php _e( 'Navigation:' ); ?></label>
|
80 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'wp_navigation' ); ?>" name="<?php echo $this->get_field_name( 'wp_navigation' ); ?>" type="checkbox" value="true"<?php echo $nav == 'true' ? ' checked' : '' ?>>
|
81 |
+
</p>
|
82 |
+
<p>
|
83 |
+
<label for="<?php echo $this->get_field_id( 'wp_pagination' ); ?>"><?php _e( 'Pagiantion:' ); ?></label>
|
84 |
+
<input class="widefat" id="<?php echo $this->get_field_id( 'wp_pagination' ); ?>" name="<?php echo $this->get_field_name( 'wp_pagination' ); ?>" type="checkbox" value="true"<?php echo $pagination == 'true' ? ' checked' : '' ?>>
|
85 |
+
</p>
|
86 |
+
<p>
|
87 |
+
<label for="<?php echo $this->get_field_id( 'wp_events' ); ?>"><?php _e( 'Events:' ); ?></label>
|
88 |
+
<?php echo $this->events( $selected ) ?>
|
89 |
+
</p>
|
90 |
+
<?php
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Sanitize widget form values as they are saved.
|
95 |
+
*
|
96 |
+
* @see WP_Widget::update()
|
97 |
+
*
|
98 |
+
* @param array $new_instance Values just sent to be saved.
|
99 |
+
* @param array $old_instance Previously saved values from database.
|
100 |
+
*
|
101 |
+
* @return array Updated safe values to be saved.
|
102 |
+
*/
|
103 |
+
public function update( $new_instance, $old_instance ) {
|
104 |
+
$instance = array();
|
105 |
+
$instance['title'] = ( !empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
|
106 |
+
|
107 |
+
$instance['wp_events'] = isset( $new_instance['wp_events'] ) ? $new_instance['wp_events'] : array();
|
108 |
+
|
109 |
+
$instance['wp_slide'] = isset( $new_instance['wp_slide'] ) ? $new_instance['wp_slide'] : false;
|
110 |
+
|
111 |
+
$instance['wp_navigation'] = isset( $new_instance['wp_navigation'] ) ? $new_instance['wp_navigation'] : false;
|
112 |
+
|
113 |
+
$instance['wp_pagination'] = isset( $new_instance['wp_pagination'] ) ? $new_instance['wp_pagination'] : false;
|
114 |
+
return $instance;
|
115 |
+
}
|
116 |
+
|
117 |
+
public function events( $selected ) {
|
118 |
+
$status = array(
|
119 |
+
'tp-event-upcoming' => 'Upcoming',
|
120 |
+
'tp-event-happenning' => 'Happening',
|
121 |
+
'tp-event-expired' => 'Exprired'
|
122 |
+
);
|
123 |
+
$selected = array_map( 'intval', $selected );
|
124 |
+
|
125 |
+
$status = apply_filters( 'tp_event_widget_countdown', $status );
|
126 |
+
$i = 0;
|
127 |
+
?>
|
128 |
+
<ul class="tp_event_widget_tab">
|
129 |
+
<?php foreach ( $status as $key => $label ): ?>
|
130 |
+
|
131 |
+
<li>
|
132 |
+
<a href="#" data-tab="<?php echo esc_attr( $key ) ?>" class="button<?php echo ( $i === 0 ) ? esc_attr( ' button-primary' ) : ''; ?>">
|
133 |
+
<?php printf( '%s', $label ) ?>
|
134 |
+
</a>
|
135 |
+
</li>
|
136 |
+
<?php $i ++ ?>
|
137 |
+
<?php endforeach; ?>
|
138 |
+
</ul>
|
139 |
+
<?php $i = 0; ?>
|
140 |
+
<?php
|
141 |
+
foreach ( $status as $stt => $label ) {
|
142 |
+
$args = array(
|
143 |
+
'post_type' => 'tp_event',
|
144 |
+
'post_status' => $stt,
|
145 |
+
'posts_per_page' => - 1
|
146 |
+
);
|
147 |
+
|
148 |
+
$results = new WP_Query( $args );
|
149 |
+
if ( $results->have_posts() ):
|
150 |
+
?>
|
151 |
+
|
152 |
+
<div class="tp_event_admin_widget<?php echo ( $i === 0 ) ? esc_attr( ' active' ) : ''; ?>" data-status="<?php echo esc_attr( $stt ) ?>">
|
153 |
+
<ul>
|
154 |
+
<?php while ( $results->have_posts() ): $results->the_post(); ?>
|
155 |
+
|
156 |
+
<li>
|
157 |
+
<p>
|
158 |
+
<input id="<?php echo esc_attr( $this->id . '-' . get_the_ID() ); ?>" type="checkbox" name="<?php echo $this->get_field_name( 'wp_events' ) ?>[]" value="<?php echo esc_attr( get_the_ID() ); ?>" <?php echo ( in_array( get_the_ID(), $selected ) ) ? 'checked="checked"' : ''; ?>/>
|
159 |
+
<label for="<?php echo esc_attr( $this->id . '-' . get_the_ID() ); ?>"><?php the_title(); ?></label>
|
160 |
+
</p>
|
161 |
+
</li>
|
162 |
+
|
163 |
+
<?php endwhile;
|
164 |
+
wp_reset_postdata(); ?>
|
165 |
+
</ul>
|
166 |
+
</div>
|
167 |
+
|
168 |
+
<?php
|
169 |
+
$i ++;
|
170 |
+
endif;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
}
|
inc/wpems-core-functions.php
ADDED
@@ -0,0 +1,1525 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
add_action( 'widgets_init', 'wpems_register_countdown_widget' );
|
4 |
+
if ( ! function_exists( 'wpems_register_countdown_widget' ) ) {
|
5 |
+
|
6 |
+
function wpems_register_countdown_widget() {
|
7 |
+
register_widget( 'WPEMS_Widget_Countdown' );
|
8 |
+
}
|
9 |
+
|
10 |
+
}
|
11 |
+
|
12 |
+
if ( ! function_exists( 'wpems_get_template' ) ) {
|
13 |
+
|
14 |
+
function wpems_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
|
15 |
+
if ( $args && is_array( $args ) ) {
|
16 |
+
extract( $args );
|
17 |
+
}
|
18 |
+
|
19 |
+
$located = wpems_locate_template( $template_name, $template_path, $default_path );
|
20 |
+
|
21 |
+
if ( ! file_exists( $located ) ) {
|
22 |
+
_doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' );
|
23 |
+
|
24 |
+
return;
|
25 |
+
}
|
26 |
+
// Allow 3rd party plugin filter template file from their plugin
|
27 |
+
$located = apply_filters( 'wpems_get_template', $located, $template_name, $args, $template_path, $default_path );
|
28 |
+
|
29 |
+
do_action( 'tp_event_before_template_part', $template_name, $template_path, $located, $args );
|
30 |
+
|
31 |
+
include( $located );
|
32 |
+
|
33 |
+
do_action( 'tp_event_after_template_part', $template_name, $template_path, $located, $args );
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
if ( ! function_exists( 'wpems_template_path' ) ) {
|
39 |
+
|
40 |
+
function wpems_template_path() {
|
41 |
+
return apply_filters( 'wpems_template_path', 'wp-events-manager' );
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
if ( ! function_exists( 'wpems_get_template_part' ) ) {
|
47 |
+
|
48 |
+
function wpems_get_template_part( $slug, $name = '' ) {
|
49 |
+
$template = '';
|
50 |
+
|
51 |
+
// Look in yourtheme/slug-name.php and yourtheme/courses-manage/slug-name.php
|
52 |
+
if ( $name ) {
|
53 |
+
$template = locate_template( array(
|
54 |
+
"{$slug}-{$name}.php",
|
55 |
+
wpems_template_path() . "/{$slug}-{$name}.php"
|
56 |
+
) );
|
57 |
+
}
|
58 |
+
|
59 |
+
// Get default slug-name.php
|
60 |
+
if ( ! $template && $name && file_exists( WPEMS_PATH . "/templates/{$slug}-{$name}.php" ) ) {
|
61 |
+
$template = WPEMS_PATH . "/templates/{$slug}-{$name}.php";
|
62 |
+
}
|
63 |
+
|
64 |
+
// If template file doesn't exist, look in yourtheme/slug.php and yourtheme/courses-manage/slug.php
|
65 |
+
if ( ! $template ) {
|
66 |
+
$template = locate_template( array( "{$slug}.php", wpems_template_path() . "{$slug}.php" ) );
|
67 |
+
}
|
68 |
+
|
69 |
+
// Allow 3rd party plugin filter template file from their plugin
|
70 |
+
if ( $template ) {
|
71 |
+
$template = apply_filters( 'wpems_get_template_part', $template, $slug, $name );
|
72 |
+
}
|
73 |
+
if ( $template && file_exists( $template ) ) {
|
74 |
+
load_template( $template, false );
|
75 |
+
}
|
76 |
+
|
77 |
+
return $template;
|
78 |
+
}
|
79 |
+
|
80 |
+
}
|
81 |
+
|
82 |
+
if ( ! function_exists( 'wpems_get_template_content' ) ) {
|
83 |
+
function wpems_get_template_content( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
|
84 |
+
ob_start();
|
85 |
+
wpems_get_template( $template_name, $args, $template_path, $default_path );
|
86 |
+
|
87 |
+
return ob_get_clean();
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
if ( ! function_exists( 'wpems_locate_template' ) ) {
|
92 |
+
|
93 |
+
function wpems_locate_template( $template_name, $template_path = '', $default_path = '' ) {
|
94 |
+
|
95 |
+
if ( ! $template_path ) {
|
96 |
+
$template_path = wpems_template_path();
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( ! $default_path ) {
|
100 |
+
$default_path = WPEMS_PATH . '/templates/';
|
101 |
+
}
|
102 |
+
|
103 |
+
$template = null;
|
104 |
+
// Look within passed path within the theme - this is priority
|
105 |
+
$template = locate_template(
|
106 |
+
array(
|
107 |
+
trailingslashit( $template_path ) . $template_name,
|
108 |
+
$template_name
|
109 |
+
)
|
110 |
+
);
|
111 |
+
// Get default template
|
112 |
+
if ( ! $template ) {
|
113 |
+
$template = $default_path . $template_name;
|
114 |
+
}
|
115 |
+
|
116 |
+
// Return what we found
|
117 |
+
return apply_filters( 'wpems_locate_template', $template, $template_name, $template_path );
|
118 |
+
}
|
119 |
+
|
120 |
+
}
|
121 |
+
if ( ! function_exists( 'is_event_taxonomy' ) ) {
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Returns true when viewing a room taxonomy archive.
|
125 |
+
* @return bool
|
126 |
+
*/
|
127 |
+
function is_event_taxonomy() {
|
128 |
+
return is_tax( get_object_taxonomies( 'tp_event' ) );
|
129 |
+
}
|
130 |
+
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* template hook function
|
135 |
+
*/
|
136 |
+
add_filter( 'the_content', 'wpems_the_content' );
|
137 |
+
if ( ! function_exists( 'wpems_the_content' ) ) {
|
138 |
+
|
139 |
+
function wpems_the_content( $content ) {
|
140 |
+
return do_shortcode( $content );
|
141 |
+
}
|
142 |
+
|
143 |
+
}
|
144 |
+
add_filter( 'the_post', 'wpems_add_property_countdown' );
|
145 |
+
if ( ! function_exists( 'wpems_add_property_countdown' ) ) {
|
146 |
+
|
147 |
+
/**
|
148 |
+
* add property inside the loop
|
149 |
+
*
|
150 |
+
* @param [type] $post [description]
|
151 |
+
*
|
152 |
+
* @return [type] [description]
|
153 |
+
*/
|
154 |
+
function wpems_add_property_countdown( $post ) {
|
155 |
+
if ( $post->post_type !== 'tp_event' ) {
|
156 |
+
return $post;
|
157 |
+
}
|
158 |
+
$post_id = $post->ID;
|
159 |
+
$start = get_post_meta( $post_id, 'tp_event_date_start', true );
|
160 |
+
$end = get_post_meta( $post_id, 'tp_event_date_end', true );
|
161 |
+
|
162 |
+
$post->event_start = null;
|
163 |
+
if ( $start ) {
|
164 |
+
$post->event_start = date( 'Y-m-d H:i', strtotime( $post->tp_event_date_start . ' ' . $post->tp_event_time_start ) );
|
165 |
+
}
|
166 |
+
|
167 |
+
$post->event_end = null;
|
168 |
+
if ( $end ) {
|
169 |
+
$post->event_end = date( 'Y-m-d H:i', strtotime( $post->tp_event_date_end . ' ' . $post->tp_event_time_end ) );
|
170 |
+
}
|
171 |
+
|
172 |
+
$location = get_post_meta( $post->ID, 'wpems_event_location', true );
|
173 |
+
$post->location = $location;
|
174 |
+
|
175 |
+
return $post;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* get event start datetime
|
180 |
+
*
|
181 |
+
* @param string $format [description]
|
182 |
+
*
|
183 |
+
* @return [type] [description]
|
184 |
+
*/
|
185 |
+
function wpems_event_start( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
186 |
+
if ( ! $post ) {
|
187 |
+
$post = get_post();
|
188 |
+
}
|
189 |
+
|
190 |
+
if ( $l10 ) {
|
191 |
+
return date_i18n( $format, strtotime( $post->tp_event_date_start . ' ' . $post->tp_event_time_start ) );
|
192 |
+
} else {
|
193 |
+
return date( $format, strtotime( $post->tp_event_date_start . ' ' . $post->tp_event_time_start ) );
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* get event end datetime same as function
|
199 |
+
*
|
200 |
+
* @param string $format
|
201 |
+
*
|
202 |
+
* @return
|
203 |
+
*/
|
204 |
+
function wpems_event_end( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
205 |
+
if ( ! $post ) {
|
206 |
+
$post = get_post();
|
207 |
+
}
|
208 |
+
|
209 |
+
if ( $l10 ) {
|
210 |
+
return date_i18n( $format, strtotime( $post->tp_event_date_end . ' ' . $post->tp_event_time_end ) );
|
211 |
+
} else {
|
212 |
+
return date( $format, strtotime( $post->tp_event_date_end . ' ' . $post->tp_event_time_end ) );
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* get time event countdown
|
218 |
+
*
|
219 |
+
* @param string $format
|
220 |
+
*
|
221 |
+
* @return string
|
222 |
+
*/
|
223 |
+
function wpems_get_time( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
224 |
+
$current_time = current_time( 'timestamp' );
|
225 |
+
$start = wpems_event_start( 'Y-m-d H:i', $post );
|
226 |
+
$end = wpems_event_end( 'Y-m-d H:i', $post );
|
227 |
+
if ( $current_time < strtotime( $start ) ) {
|
228 |
+
return wpems_event_start( $format, $post, $l10 );
|
229 |
+
} else {
|
230 |
+
return wpems_event_end( $format, $post, $l10 );
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* get event location
|
236 |
+
*
|
237 |
+
* @param string $format
|
238 |
+
*
|
239 |
+
* @return string
|
240 |
+
*/
|
241 |
+
function wpems_event_location( $post = null ) {
|
242 |
+
if ( ! $post ) {
|
243 |
+
$post = get_post();
|
244 |
+
}
|
245 |
+
|
246 |
+
return get_post_meta( $post->ID, 'tp_event_location', true );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* get event booking note
|
251 |
+
*
|
252 |
+
* @param string $format
|
253 |
+
*
|
254 |
+
* @return string
|
255 |
+
*/
|
256 |
+
function wpems_get_booking_note( $post = null ) {
|
257 |
+
if ( ! $post ) {
|
258 |
+
$post = get_post();
|
259 |
+
}
|
260 |
+
|
261 |
+
return get_post_meta( $post->ID, 'ea_booking_note', true );
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* get event location map
|
266 |
+
*/
|
267 |
+
function wpems_get_location_map() {
|
268 |
+
if ( ! wpems_get_option( 'google_map_api_key' ) || ! wpems_event_location() ) {
|
269 |
+
return;
|
270 |
+
}
|
271 |
+
|
272 |
+
$map_args = apply_filters( 'tp_event_filter_event_location_map', array(
|
273 |
+
'height' => '300px',
|
274 |
+
'width' => '100%',
|
275 |
+
'map_id' => md5( wpems_event_location() ),
|
276 |
+
'map_data' => array(
|
277 |
+
'address' => wpems_event_location(),
|
278 |
+
'zoom' => 14,
|
279 |
+
'scroll-zoom' => true,
|
280 |
+
'draggable' => false,
|
281 |
+
'api-key' => wpems_get_option( 'google_map_api_key' ),
|
282 |
+
'marker-icon' => apply_filters( 'tp-event-map-marker', WPEMS_ASSETS_URI . 'images/map-marker.png' ),
|
283 |
+
'marker-at-center' => true,
|
284 |
+
)
|
285 |
+
) );
|
286 |
+
|
287 |
+
?>
|
288 |
+
<div class="event-google-map-canvas" style="height: <?php echo $map_args['height']; ?>; width: <?php echo $map_args['width']; ?>" id="map-canvas-<?php echo $map_args['map_id']; ?>"
|
289 |
+
<?php foreach ( $map_args['map_data'] as $key => $val ) : ?>
|
290 |
+
<?php if ( ! empty( $val ) ) : ?>
|
291 |
+
data-<?php echo esc_attr( $key ) . '="' . esc_attr( $val ) . '"' ?>
|
292 |
+
<?php endif ?>
|
293 |
+
<?php endforeach; ?>
|
294 |
+
></div>
|
295 |
+
<?php
|
296 |
+
}
|
297 |
+
|
298 |
+
}
|
299 |
+
add_action( 'tp_event_before_main_content', 'wpems_before_main_content' );
|
300 |
+
if ( ! function_exists( 'wpems_before_main_content' ) ) {
|
301 |
+
|
302 |
+
function wpems_before_main_content() {
|
303 |
+
|
304 |
+
}
|
305 |
+
|
306 |
+
}
|
307 |
+
|
308 |
+
add_action( 'tp_event_after_main_content', 'wpems_after_main_content' );
|
309 |
+
if ( ! function_exists( 'wpems_after_main_content' ) ) {
|
310 |
+
|
311 |
+
function wpems_after_main_content() {
|
312 |
+
|
313 |
+
}
|
314 |
+
|
315 |
+
}
|
316 |
+
|
317 |
+
add_action( 'tp_event_before_single_event', 'wpems_before_single_event' );
|
318 |
+
if ( ! function_exists( 'wpems_before_single_event' ) ) {
|
319 |
+
|
320 |
+
function wpems_before_single_event() {
|
321 |
+
|
322 |
+
}
|
323 |
+
|
324 |
+
}
|
325 |
+
|
326 |
+
add_action( 'tp_event_after_single_event', 'wpems_after_single_event' );
|
327 |
+
if ( ! function_exists( 'wpems_after_single_event' ) ) {
|
328 |
+
|
329 |
+
function wpems_after_single_event() {
|
330 |
+
|
331 |
+
}
|
332 |
+
|
333 |
+
}
|
334 |
+
|
335 |
+
/* template hook */
|
336 |
+
add_action( 'tp_event_single_event_title', 'wpems_single_event_title' );
|
337 |
+
if ( ! function_exists( 'wpems_single_event_title' ) ) {
|
338 |
+
|
339 |
+
function wpems_single_event_title() {
|
340 |
+
wpems_get_template( 'loop/title.php' );
|
341 |
+
}
|
342 |
+
|
343 |
+
}
|
344 |
+
|
345 |
+
add_action( 'tp_event_single_event_thumbnail', 'wpems_single_event_thumbnail' );
|
346 |
+
if ( ! function_exists( 'wpems_single_event_thumbnail' ) ) {
|
347 |
+
|
348 |
+
function wpems_single_event_thumbnail() {
|
349 |
+
wpems_get_template( 'loop/thumbnail.php' );
|
350 |
+
}
|
351 |
+
|
352 |
+
}
|
353 |
+
|
354 |
+
add_action( 'tp_event_loop_event_countdown', 'wpems_loop_event_countdown' );
|
355 |
+
if ( ! function_exists( 'wpems_loop_event_countdown' ) ) {
|
356 |
+
|
357 |
+
function wpems_loop_event_countdown() {
|
358 |
+
wpems_get_template( 'loop/countdown.php' );
|
359 |
+
}
|
360 |
+
|
361 |
+
}
|
362 |
+
|
363 |
+
add_action( 'tp_event_single_event_content', 'wpems_single_event_content' );
|
364 |
+
if ( ! function_exists( 'wpems_single_event_content' ) ) {
|
365 |
+
|
366 |
+
function wpems_single_event_content() {
|
367 |
+
if ( ! is_singular( 'tp_event' ) || ! in_the_loop() ) {
|
368 |
+
wpems_get_template( 'loop/excerpt.php' );
|
369 |
+
} else {
|
370 |
+
wpems_get_template( 'loop/content.php' );
|
371 |
+
}
|
372 |
+
}
|
373 |
+
|
374 |
+
}
|
375 |
+
|
376 |
+
add_action( 'tp_event_after_single_event', 'wpems_single_event_register' );
|
377 |
+
if ( ! function_exists( 'wpems_single_event_register' ) ) {
|
378 |
+
|
379 |
+
function wpems_single_event_register() {
|
380 |
+
wpems_get_template( 'loop/register.php' );
|
381 |
+
}
|
382 |
+
|
383 |
+
}
|
384 |
+
|
385 |
+
add_action( 'tp_event_loop_event_location', 'wpems_loop_event_location' );
|
386 |
+
if ( ! function_exists( 'wpems_loop_event_location' ) ) {
|
387 |
+
|
388 |
+
function wpems_loop_event_location() {
|
389 |
+
wpems_get_template( 'loop/location.php' );
|
390 |
+
}
|
391 |
+
|
392 |
+
}
|
393 |
+
|
394 |
+
// l18n
|
395 |
+
if ( ! function_exists( 'wpems_l18n' ) ) {
|
396 |
+
function wpems_l18n() {
|
397 |
+
return apply_filters( 'thimpress_event_l18n', array(
|
398 |
+
'gmt_offset' => esc_js( get_option( 'gmt_offset' ) ),
|
399 |
+
'current_time' => esc_js( date( 'M j, Y H:i:s O', strtotime( current_time( 'Y-m-d H:i' ) ) ) ),
|
400 |
+
'l18n' => array(
|
401 |
+
'labels' => array(
|
402 |
+
__( 'Years', 'wp-events-manager' ),
|
403 |
+
__( 'Months', 'wp-events-manager' ),
|
404 |
+
__( 'Weeks', 'wp-events-manager' ),
|
405 |
+
__( 'Days', 'wp-events-manager' ),
|
406 |
+
__( 'Hours', 'wp-events-manager' ),
|
407 |
+
__( 'Minutes', 'wp-events-manager' ),
|
408 |
+
__( 'Seconds', 'wp-events-manager' ),
|
409 |
+
),
|
410 |
+
'labels1' => array(
|
411 |
+
__( 'Year', 'wp-events-manager' ),
|
412 |
+
__( 'Month', 'wp-events-manager' ),
|
413 |
+
__( 'Week', 'wp-events-manager' ),
|
414 |
+
__( 'Day', 'wp-events-manager' ),
|
415 |
+
__( 'Hour', 'wp-events-manager' ),
|
416 |
+
__( 'Minute', 'wp-events-manager' ),
|
417 |
+
__( 'Second', 'wp-events-manager' ),
|
418 |
+
)
|
419 |
+
),
|
420 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
421 |
+
'something_wrong' => __( 'Something went wrong', 'wp-events-manager' ),
|
422 |
+
'register_button' => wp_create_nonce( 'event-auth-register-nonce' )
|
423 |
+
) );
|
424 |
+
}
|
425 |
+
}
|
426 |
+
|
427 |
+
if ( ! function_exists( 'wpems_get_option' ) ) {
|
428 |
+
|
429 |
+
/**
|
430 |
+
* wpems_get_option
|
431 |
+
*
|
432 |
+
* @param type $name
|
433 |
+
* @param type $default
|
434 |
+
*
|
435 |
+
* @return type
|
436 |
+
*/
|
437 |
+
function wpems_get_option( $name, $default = null ) {
|
438 |
+
if ( strpos( $name, 'thimpress_events_' ) !== 0 ) {
|
439 |
+
$name = 'thimpress_events_' . $name;
|
440 |
+
}
|
441 |
+
|
442 |
+
return get_option( $name, $default );
|
443 |
+
}
|
444 |
+
|
445 |
+
}
|
446 |
+
|
447 |
+
if ( ! function_exists( 'wpems_update_option' ) ) {
|
448 |
+
|
449 |
+
/**
|
450 |
+
* wpems_get_option
|
451 |
+
*
|
452 |
+
* @param type $name
|
453 |
+
* @param type $default
|
454 |
+
*
|
455 |
+
* @return type
|
456 |
+
*/
|
457 |
+
function wpems_update_option( $name, $default = null ) {
|
458 |
+
return update_option( 'thimpress_events_' . $name, $default );
|
459 |
+
}
|
460 |
+
|
461 |
+
}
|
462 |
+
|
463 |
+
/**
|
464 |
+
* Create Wordpress Page
|
465 |
+
*/
|
466 |
+
if ( ! function_exists( 'wpems_create_page' ) ) {
|
467 |
+
function wpems_create_page( $slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0 ) {
|
468 |
+
global $wpdb;
|
469 |
+
|
470 |
+
$option_value = wpems_get_option( $option );
|
471 |
+
|
472 |
+
if ( $option_value > 0 ) {
|
473 |
+
$page_object = get_post( $option_value );
|
474 |
+
|
475 |
+
if ( $page_object && 'page' === $page_object->post_type && ! in_array( $page_object->post_status, array(
|
476 |
+
'pending',
|
477 |
+
'trash',
|
478 |
+
'future',
|
479 |
+
'auto-draft'
|
480 |
+
) )
|
481 |
+
) {
|
482 |
+
// Valid page is already in place
|
483 |
+
return $page_object->ID;
|
484 |
+
}
|
485 |
+
}
|
486 |
+
|
487 |
+
if ( strlen( $page_content ) > 0 ) {
|
488 |
+
// Search for an existing page with the specified page content (typically a shortcode)
|
489 |
+
$valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) );
|
490 |
+
} else {
|
491 |
+
// Search for an existing page with the specified page slug
|
492 |
+
$valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_name = %s LIMIT 1;", $slug ) );
|
493 |
+
}
|
494 |
+
|
495 |
+
$valid_page_found = apply_filters( 'event_auth_create_page_id', $valid_page_found, $slug, $page_content );
|
496 |
+
|
497 |
+
if ( $valid_page_found ) {
|
498 |
+
if ( $option ) {
|
499 |
+
wpems_update_option( $option, $valid_page_found );
|
500 |
+
}
|
501 |
+
|
502 |
+
return $valid_page_found;
|
503 |
+
}
|
504 |
+
|
505 |
+
// Search for a matching valid trashed page
|
506 |
+
if ( strlen( $page_content ) > 0 ) {
|
507 |
+
// Search for an existing page with the specified page content (typically a shortcode)
|
508 |
+
$trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) );
|
509 |
+
} else {
|
510 |
+
// Search for an existing page with the specified page slug
|
511 |
+
$trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug ) );
|
512 |
+
}
|
513 |
+
|
514 |
+
if ( $trashed_page_found ) {
|
515 |
+
$page_id = $trashed_page_found;
|
516 |
+
$page_data = array(
|
517 |
+
'ID' => $page_id,
|
518 |
+
'post_status' => 'publish',
|
519 |
+
);
|
520 |
+
wp_update_post( $page_data );
|
521 |
+
} else {
|
522 |
+
$page_data = array(
|
523 |
+
'post_status' => 'publish',
|
524 |
+
'post_type' => 'page',
|
525 |
+
'post_author' => 1,
|
526 |
+
'post_name' => $slug,
|
527 |
+
'post_title' => $page_title,
|
528 |
+
'post_content' => $page_content,
|
529 |
+
'post_parent' => $post_parent,
|
530 |
+
'comment_status' => 'closed'
|
531 |
+
);
|
532 |
+
$page_id = wp_insert_post( $page_data );
|
533 |
+
}
|
534 |
+
|
535 |
+
if ( $option ) {
|
536 |
+
wpems_update_option( $option, $page_id );
|
537 |
+
}
|
538 |
+
|
539 |
+
return $page_id;
|
540 |
+
}
|
541 |
+
}
|
542 |
+
|
543 |
+
if ( ! function_exists( 'wpems_get_page_id' ) ) {
|
544 |
+
|
545 |
+
function wpems_get_page_id( $name = null ) {
|
546 |
+
$prefix = 'thimpress_events_';
|
547 |
+
|
548 |
+
return apply_filters( 'tp_event_get_page_id', wpems_get_option( $prefix . $name . '_page_id' ) );
|
549 |
+
}
|
550 |
+
|
551 |
+
}
|
552 |
+
|
553 |
+
add_action( 'tp_event_schedule_status', 'wpems_schedule_update_status', 10, 2 );
|
554 |
+
if ( ! function_exists( 'wpems_schedule_update_status' ) ) {
|
555 |
+
|
556 |
+
function wpems_schedule_update_status( $post_id, $status ) {
|
557 |
+
if ( $fo = fopen( ABSPATH . '/text.txt', 'a' ) ) {
|
558 |
+
fwrite( $fo, $post_id );
|
559 |
+
fclose( $fo );
|
560 |
+
}
|
561 |
+
wp_clear_scheduled_hook( 'tp_event_schedule_status', array( $post_id, $status ) );
|
562 |
+
$old_status = get_post_status( $post_id );
|
563 |
+
|
564 |
+
if ( $old_status !== $status && in_array( $status, array(
|
565 |
+
'tp-event-upcoming',
|
566 |
+
'tp-event-happenning',
|
567 |
+
'tp-event-expired'
|
568 |
+
) )
|
569 |
+
) {
|
570 |
+
$post = wpems_add_property_countdown( get_post( $post_id ) );
|
571 |
+
|
572 |
+
$current_time = strtotime( current_time( 'Y-m-d H:i' ) );
|
573 |
+
$event_start = strtotime( $post->event_start );
|
574 |
+
$event_end = strtotime( $post->event_end );
|
575 |
+
|
576 |
+
if ( $status === 'tp-event-expired' && $current_time < $event_end ) {
|
577 |
+
return;
|
578 |
+
}
|
579 |
+
|
580 |
+
if ( $status === 'tp-event-happenning' && $current_time < $event_start ) {
|
581 |
+
return;
|
582 |
+
}
|
583 |
+
|
584 |
+
wp_update_post( array( 'ID' => $post_id, 'post_status' => $status ) );
|
585 |
+
}
|
586 |
+
}
|
587 |
+
}
|
588 |
+
|
589 |
+
if ( ! function_exists( 'wpems_login_url' ) ) {
|
590 |
+
|
591 |
+
function wpems_login_url() {
|
592 |
+
$url = get_permalink( wpems_get_page_id( 'login' ) );
|
593 |
+
if ( ! $url ) {
|
594 |
+
$url = wp_login_url();
|
595 |
+
}
|
596 |
+
|
597 |
+
return apply_filters( 'tp_event_login_url', $url );
|
598 |
+
}
|
599 |
+
|
600 |
+
}
|
601 |
+
|
602 |
+
if ( ! function_exists( 'wpems_register_url' ) ) {
|
603 |
+
|
604 |
+
function wpems_register_url() {
|
605 |
+
$url = get_permalink( wpems_get_page_id( 'register' ) );
|
606 |
+
if ( ! $url ) {
|
607 |
+
$url = wp_registration_url();
|
608 |
+
}
|
609 |
+
|
610 |
+
return apply_filters( 'tp_event_register_url', $url );
|
611 |
+
}
|
612 |
+
|
613 |
+
}
|
614 |
+
|
615 |
+
if ( ! function_exists( 'wpems_forgot_password_url' ) ) {
|
616 |
+
|
617 |
+
function wpems_forgot_password_url() {
|
618 |
+
$url = get_permalink( wpems_get_page_id( 'forgot_password' ) );
|
619 |
+
if ( ! $url ) {
|
620 |
+
$url = wp_lostpassword_url();
|
621 |
+
}
|
622 |
+
|
623 |
+
return apply_filters( 'tp_event_forgot_password_url', $url );
|
624 |
+
}
|
625 |
+
|
626 |
+
}
|
627 |
+
|
628 |
+
|
629 |
+
if ( ! function_exists( 'wpems_reset_password_url' ) ) {
|
630 |
+
|
631 |
+
function wpems_reset_password_url() {
|
632 |
+
$url = get_permalink( wpems_get_page_id( 'reset_password' ) );
|
633 |
+
if ( ! $url ) {
|
634 |
+
$url = add_query_arg( 'action', 'rp', wp_login_url() );
|
635 |
+
}
|
636 |
+
|
637 |
+
return apply_filters( 'tp_event_reset_password_url', $url );
|
638 |
+
}
|
639 |
+
|
640 |
+
}
|
641 |
+
|
642 |
+
if ( ! function_exists( 'wpems_account_url' ) ) {
|
643 |
+
|
644 |
+
function wpems_account_url() {
|
645 |
+
$url = get_permalink( wpems_get_page_id( 'account' ) );
|
646 |
+
if ( ! $url ) {
|
647 |
+
$url = home_url();
|
648 |
+
}
|
649 |
+
|
650 |
+
return apply_filters( 'wpems_account_url', $url );
|
651 |
+
}
|
652 |
+
|
653 |
+
}
|
654 |
+
|
655 |
+
if ( ! function_exists( 'wpems_get_current_url' ) ) {
|
656 |
+
|
657 |
+
function wpems_get_current_url() {
|
658 |
+
return ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
659 |
+
}
|
660 |
+
|
661 |
+
}
|
662 |
+
|
663 |
+
if ( ! function_exists( 'wpems_add_notice' ) ) {
|
664 |
+
function wpems_add_notice( $type = 'error', $msg = '' ) {
|
665 |
+
if ( ! $msg ) {
|
666 |
+
return;
|
667 |
+
}
|
668 |
+
$notices = WPEMS()->_session->get( 'notices', array() );
|
669 |
+
if ( ! isset( $notices[ $type ] ) ) {
|
670 |
+
$notices[ $type ] = array();
|
671 |
+
}
|
672 |
+
$notices[ $type ][] = $msg;
|
673 |
+
WPEMS()->_session->set( 'notices', $notices );
|
674 |
+
}
|
675 |
+
|
676 |
+
}
|
677 |
+
|
678 |
+
if ( ! function_exists( 'wpems_get_notice' ) ) {
|
679 |
+
|
680 |
+
function wpems_get_notice( $type = null ) {
|
681 |
+
if ( $type ) {
|
682 |
+
$notices = WPEMS()->_session->get( 'notices', array() );
|
683 |
+
|
684 |
+
return isset( $notices[ $type ] ) ? $notices[ $type ] : array();
|
685 |
+
}
|
686 |
+
}
|
687 |
+
|
688 |
+
}
|
689 |
+
|
690 |
+
if ( ! function_exists( 'wpems_has_notice' ) ) {
|
691 |
+
|
692 |
+
function wpems_has_notice( $type = null ) {
|
693 |
+
if ( $type ) {
|
694 |
+
$notices = WPEMS()->_session->get( 'notices', array() );
|
695 |
+
|
696 |
+
return isset( $notices[ $type ] );
|
697 |
+
}
|
698 |
+
}
|
699 |
+
|
700 |
+
}
|
701 |
+
|
702 |
+
if ( ! function_exists( 'wpems_print_notices' ) ) {
|
703 |
+
|
704 |
+
function wpems_print_notices() {
|
705 |
+
if ( $notices = WPEMS()->_session->get( 'notices', array() ) ) {
|
706 |
+
ob_start();
|
707 |
+
wpems_get_template( 'notices/messages.php', array( 'messages' => $notices ) );
|
708 |
+
$html = ob_get_clean();
|
709 |
+
echo $html;
|
710 |
+
WPEMS()->_session->set( 'notices', array() );
|
711 |
+
}
|
712 |
+
|
713 |
+
}
|
714 |
+
|
715 |
+
}
|
716 |
+
|
717 |
+
if ( ! function_exists( 'wpems_print_notice' ) ) {
|
718 |
+
|
719 |
+
function wpems_print_notice( $type = 'success', $message ) {
|
720 |
+
if ( 'success' === $type ) {
|
721 |
+
$message = apply_filters( 'tp_event_add_message', $message );
|
722 |
+
}
|
723 |
+
|
724 |
+
wpems_get_template( "notices/{$type}.php", array(
|
725 |
+
'messages' => array( apply_filters( 'tp_event_add_message_' . $type, $message ) )
|
726 |
+
) );
|
727 |
+
}
|
728 |
+
|
729 |
+
}
|
730 |
+
|
731 |
+
if ( ! function_exists( 'wpems_get_currency' ) ) {
|
732 |
+
|
733 |
+
function wpems_get_currency() {
|
734 |
+
return apply_filters( 'tp_event_get_currency', wpems_get_option( 'currency', 'USD' ) );
|
735 |
+
}
|
736 |
+
|
737 |
+
}
|
738 |
+
|
739 |
+
/**
|
740 |
+
* Get the list of common currencies
|
741 |
+
*
|
742 |
+
* @return mixed
|
743 |
+
*/
|
744 |
+
if ( ! function_exists( 'wpems_currencies' ) ) {
|
745 |
+
|
746 |
+
function wpems_currencies() {
|
747 |
+
$currencies = array(
|
748 |
+
'AED' => 'United Arab Emirates dirham (د.إ)',
|
749 |
+
'AUD' => 'Australian dollars ($)',
|
750 |
+
'BDT' => 'Bangladeshi taka (৳ )',
|
751 |
+
'BRL' => 'Brazilian real (R$)',
|
752 |
+
'BGN' => 'Bulgarian lev (лв.)',
|
753 |
+
'CAD' => 'Canadian dollar ($)',
|
754 |
+
'CLP' => 'Chilean peso ($)',
|
755 |
+
'CNY' => 'Chinese yuan (¥)',
|
756 |
+
'COP' => 'Colombian peso ($)',
|
757 |
+
'CZK' => 'Czech koruna (Kč)',
|
758 |
+
'DKK' => 'Danish krone (kr.)',
|
759 |
+
'DOP' => 'Dominican peso (RD$)',
|
760 |
+
'EUR' => 'Euro (€)',
|
761 |
+
'HKD' => 'Hong Kong dollar ($)',
|
762 |
+
'HRK' => 'Croatia kuna (Kn)',
|
763 |
+
'HUF' => 'Hungarian forint (Ft)',
|
764 |
+
'ISK' => 'Icelandic krona (Kr.)',
|
765 |
+
'IDR' => 'Indonesia rupiah (Rp)',
|
766 |
+
'INR' => 'Indian rupee (Rs.)',
|
767 |
+
'NPR' => 'Nepali rupee (Rs.)',
|
768 |
+
'ILS' => 'Israeli shekel (₪)',
|
769 |
+
'JPY' => 'Japanese yen (¥)',
|
770 |
+
'KIP' => 'Lao kip (₭)',
|
771 |
+
'KRW' => 'South Korean won (₩)',
|
772 |
+
'MYR' => 'Malaysian ringgit (RM)',
|
773 |
+
'MXN' => 'Mexican peso ($)',
|
774 |
+
'NGN' => 'Nigerian naira (₦)',
|
775 |
+
'NOK' => 'Norwegian krone (kr)',
|
776 |
+
'NZD' => 'New Zealand dollar ($)',
|
777 |
+
'PYG' => 'Paraguayan guaraní (₲)',
|
778 |
+
'PHP' => 'Philippine peso (₱)',
|
779 |
+
'PLN' => 'Polish zloty (zł)',
|
780 |
+
'GBP' => 'Pound sterling (£)',
|
781 |
+
'RON' => 'Romanian leu (lei)',
|
782 |
+
'RUB' => 'Russian ruble (руб.)',
|
783 |
+
'SGD' => 'Singapore dollar ($)',
|
784 |
+
'ZAR' => 'South African rand (R)',
|
785 |
+
'SEK' => 'Swedish krona (kr)',
|
786 |
+
'CHF' => 'Swiss franc (CHF)',
|
787 |
+
'TWD' => 'Taiwan New dollar (NT$)',
|
788 |
+
'THB' => 'Thai baht (฿)',
|
789 |
+
'TRY' => 'Turkish lira (₺)',
|
790 |
+
'USD' => 'United States dollar ($)',
|
791 |
+
'VND' => 'Vietnamese đồng (₫)',
|
792 |
+
'EGP' => 'Egyptian pound (EGP)'
|
793 |
+
);
|
794 |
+
|
795 |
+
return apply_filters( 'wpems_currencies', $currencies );
|
796 |
+
}
|
797 |
+
|
798 |
+
}
|
799 |
+
|
800 |
+
if ( ! function_exists( 'wpems_get_currency_symbol' ) ) {
|
801 |
+
|
802 |
+
function wpems_get_currency_symbol( $currency = '' ) {
|
803 |
+
if ( ! $currency ) {
|
804 |
+
$currency = wpems_get_currency();
|
805 |
+
}
|
806 |
+
|
807 |
+
switch ( $currency ) {
|
808 |
+
case 'AED' :
|
809 |
+
$currency_symbol = 'د.إ';
|
810 |
+
break;
|
811 |
+
case 'AUD' :
|
812 |
+
case 'CAD' :
|
813 |
+
case 'CLP' :
|
814 |
+
case 'COP' :
|
815 |
+
case 'HKD' :
|
816 |
+
case 'MXN' :
|
817 |
+
case 'NZD' :
|
818 |
+
case 'SGD' :
|
819 |
+
case 'USD' :
|
820 |
+
$currency_symbol = '$';
|
821 |
+
break;
|
822 |
+
case 'BDT':
|
823 |
+
$currency_symbol = '৳ ';
|
824 |
+
break;
|
825 |
+
case 'BGN' :
|
826 |
+
$currency_symbol = 'лв.';
|
827 |
+
break;
|
828 |
+
case 'BRL' :
|
829 |
+
$currency_symbol = 'R$';
|
830 |
+
break;
|
831 |
+
case 'CHF' :
|
832 |
+
$currency_symbol = 'CHF';
|
833 |
+
break;
|
834 |
+
case 'CNY' :
|
835 |
+
case 'JPY' :
|
836 |
+
case 'RMB' :
|
837 |
+
$currency_symbol = '¥';
|
838 |
+
break;
|
839 |
+
case 'CZK' :
|
840 |
+
$currency_symbol = 'Kč';
|
841 |
+
break;
|
842 |
+
case 'DKK' :
|
843 |
+
$currency_symbol = 'kr.';
|
844 |
+
break;
|
845 |
+
case 'DOP' :
|
846 |
+
$currency_symbol = 'RD$';
|
847 |
+
break;
|
848 |
+
case 'EGP' :
|
849 |
+
$currency_symbol = 'EGP';
|
850 |
+
break;
|
851 |
+
case 'EUR' :
|
852 |
+
$currency_symbol = '€';
|
853 |
+
break;
|
854 |
+
case 'GBP' :
|
855 |
+
$currency_symbol = '£';
|
856 |
+
break;
|
857 |
+
case 'HRK' :
|
858 |
+
$currency_symbol = 'Kn';
|
859 |
+
break;
|
860 |
+
case 'HUF' :
|
861 |
+
$currency_symbol = 'Ft';
|
862 |
+
break;
|
863 |
+
case 'IDR' :
|
864 |
+
$currency_symbol = 'Rp';
|
865 |
+
break;
|
866 |
+
case 'ILS' :
|
867 |
+
$currency_symbol = '₪';
|
868 |
+
break;
|
869 |
+
case 'INR' :
|
870 |
+
$currency_symbol = 'Rs.';
|
871 |
+
break;
|
872 |
+
case 'ISK' :
|
873 |
+
$currency_symbol = 'Kr.';
|
874 |
+
break;
|
875 |
+
case 'KIP' :
|
876 |
+
$currency_symbol = '₭';
|
877 |
+
break;
|
878 |
+
case 'KRW' :
|
879 |
+
$currency_symbol = '₩';
|
880 |
+
break;
|
881 |
+
case 'MYR' :
|
882 |
+
$currency_symbol = 'RM';
|
883 |
+
break;
|
884 |
+
case 'NGN' :
|
885 |
+
$currency_symbol = '₦';
|
886 |
+
break;
|
887 |
+
case 'NOK' :
|
888 |
+
$currency_symbol = 'kr';
|
889 |
+
break;
|
890 |
+
case 'NPR' :
|
891 |
+
$currency_symbol = 'Rs.';
|
892 |
+
break;
|
893 |
+
case 'PHP' :
|
894 |
+
$currency_symbol = '₱';
|
895 |
+
break;
|
896 |
+
case 'PLN' :
|
897 |
+
$currency_symbol = 'zł';
|
898 |
+
break;
|
899 |
+
case 'PYG' :
|
900 |
+
$currency_symbol = '₲';
|
901 |
+
break;
|
902 |
+
case 'RON' :
|
903 |
+
$currency_symbol = 'lei';
|
904 |
+
break;
|
905 |
+
case 'RUB' :
|
906 |
+
$currency_symbol = 'руб.';
|
907 |
+
break;
|
908 |
+
case 'SEK' :
|
909 |
+
$currency_symbol = 'kr';
|
910 |
+
break;
|
911 |
+
case 'THB' :
|
912 |
+
$currency_symbol = '฿';
|
913 |
+
break;
|
914 |
+
case 'TRY' :
|
915 |
+
$currency_symbol = '₺';
|
916 |
+
break;
|
917 |
+
case 'TWD' :
|
918 |
+
$currency_symbol = 'NT$';
|
919 |
+
break;
|
920 |
+
case 'UAH' :
|
921 |
+
$currency_symbol = '₴';
|
922 |
+
break;
|
923 |
+
case 'VND' :
|
924 |
+
$currency_symbol = '₫';
|
925 |
+
break;
|
926 |
+
case 'ZAR' :
|
927 |
+
$currency_symbol = 'R';
|
928 |
+
break;
|
929 |
+
default :
|
930 |
+
$currency_symbol = $currency;
|
931 |
+
break;
|
932 |
+
}
|
933 |
+
|
934 |
+
return apply_filters( 'tp_event_currency_symbol', $currency_symbol, $currency );
|
935 |
+
}
|
936 |
+
|
937 |
+
}
|
938 |
+
|
939 |
+
if ( ! function_exists( 'wpems_format_price' ) ) {
|
940 |
+
function wpems_format_price( $price, $with_currency = true ) {
|
941 |
+
$position = wpems_get_option( 'currency_position', 'left_space' );
|
942 |
+
$price_thousands_separator = wpems_get_option( 'currency_thousand', '.' );
|
943 |
+
$price_decimals_separator = wpems_get_option( 'currency_separator', ',' );
|
944 |
+
$price_number_of_decimal = wpems_get_option( 'currency_num_decimal', 2 );
|
945 |
+
if ( ! is_numeric( $price ) ) {
|
946 |
+
$price = 0;
|
947 |
+
}
|
948 |
+
|
949 |
+
$price = apply_filters( 'tp_event_price_switcher', $price );
|
950 |
+
$before = $after = '';
|
951 |
+
if ( $with_currency ) {
|
952 |
+
if ( gettype( $with_currency ) != 'string' ) {
|
953 |
+
$currency = wpems_get_currency_symbol();
|
954 |
+
} else {
|
955 |
+
$currency = wpems_get_currency_symbol( $with_currency );
|
956 |
+
}
|
957 |
+
|
958 |
+
switch ( $position ) {
|
959 |
+
default:
|
960 |
+
$before = $currency;
|
961 |
+
break;
|
962 |
+
case 'left_space':
|
963 |
+
$before = $currency . ' ';
|
964 |
+
break;
|
965 |
+
case 'right':
|
966 |
+
$after = $currency;
|
967 |
+
break;
|
968 |
+
case 'right_space':
|
969 |
+
$after = ' ' . $currency;
|
970 |
+
}
|
971 |
+
}
|
972 |
+
|
973 |
+
$price_format = $before
|
974 |
+
. number_format(
|
975 |
+
$price, $price_number_of_decimal, $price_decimals_separator, $price_thousands_separator
|
976 |
+
) . $after;
|
977 |
+
|
978 |
+
return apply_filters( 'tp_event_price_format', $price_format, $price, $with_currency );
|
979 |
+
}
|
980 |
+
}
|
981 |
+
|
982 |
+
if ( ! function_exists( 'wpems_payment_gateways' ) ) {
|
983 |
+
|
984 |
+
// List payment gateways
|
985 |
+
function wpems_payment_gateways() {
|
986 |
+
return WPEMS_Payment_Gateways::instance()->get_payment_gateways();
|
987 |
+
|
988 |
+
}
|
989 |
+
}
|
990 |
+
|
991 |
+
if ( ! function_exists( 'wpems_gateways_enable' ) ) {
|
992 |
+
|
993 |
+
// List payment gateways
|
994 |
+
function wpems_gateways_enable() {
|
995 |
+
return WPEMS_Payment_Gateways::instance()->get_payment_gateways_enable();
|
996 |
+
|
997 |
+
}
|
998 |
+
}
|
999 |
+
|
1000 |
+
if ( ! function_exists( 'wpems_get_payment_title' ) ) {
|
1001 |
+
|
1002 |
+
// List payments gateway title
|
1003 |
+
function wpems_get_payment_title( $payment_id = null ) {
|
1004 |
+
$payments = wpems_payment_gateways();
|
1005 |
+
|
1006 |
+
return isset( $payments[ $payment_id ] ) ? $payments[ $payment_id ]->title : '';
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
if ( ! function_exists( 'wpems_format_ID' ) ) {
|
1012 |
+
|
1013 |
+
// format ID
|
1014 |
+
function wpems_format_ID( $id = null ) {
|
1015 |
+
return '#' . $id;
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
if ( ! function_exists( 'wpems_booking_status' ) ) {
|
1021 |
+
|
1022 |
+
// booking status title
|
1023 |
+
function wpems_booking_status( $id = null ) {
|
1024 |
+
if ( $id ) {
|
1025 |
+
$status = get_post_status( $id );
|
1026 |
+
if ( strpos( $status, 'ea-' ) === 0 ) {
|
1027 |
+
$status = str_replace( 'ea-', '', $status );
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
$return = '';
|
1031 |
+
switch ( $status ) {
|
1032 |
+
case 'cancelled':
|
1033 |
+
# code...
|
1034 |
+
$return = sprintf( __( '<span class="event_booking_status cancelled">%s</span>', 'wp-events-manager' ), ucfirst( $status ) );
|
1035 |
+
break;
|
1036 |
+
case 'pending':
|
1037 |
+
# code...
|
1038 |
+
$return = sprintf( __( '<span class="event_booking_status pending">%s</span>', 'wp-events-manager' ), ucfirst( $status ) );
|
1039 |
+
break;
|
1040 |
+
case 'processing':
|
1041 |
+
# code...
|
1042 |
+
$return = sprintf( __( '<span class="event_booking_status processing">%s</span>', 'wp-events-manager' ), ucfirst( $status ) );
|
1043 |
+
break;
|
1044 |
+
case 'completed':
|
1045 |
+
# code...
|
1046 |
+
$return = sprintf( __( '<span class="event_booking_status completed">%s</span>', 'wp-events-manager' ), ucfirst( $status ) );
|
1047 |
+
break;
|
1048 |
+
default:
|
1049 |
+
# code...
|
1050 |
+
break;
|
1051 |
+
}
|
1052 |
+
|
1053 |
+
return $return;
|
1054 |
+
}
|
1055 |
+
}
|
1056 |
+
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
if ( ! function_exists( 'wpems_get_payment_status' ) ) {
|
1060 |
+
|
1061 |
+
function wpems_get_payment_status() {
|
1062 |
+
return apply_filters( 'wpems_get_payment_status', array(
|
1063 |
+
'ea-cancelled' => sprintf( __( '<span class="event_booking_status cancelled">%s</span>', 'wp-events-manager' ), __( 'Cancelled', 'wp-events-manager' ) ),
|
1064 |
+
'ea-pending' => sprintf( __( '<span class="event_booking_status pending">%s</span>', 'wp-events-manager' ), __( 'Pending', 'wp-events-manager' ) ),
|
1065 |
+
'ea-processing' => sprintf( __( '<span class="event_booking_status processing">%s</span>', 'wp-events-manager' ), __( 'Processing', 'wp-events-manager' ) ),
|
1066 |
+
'ea-completed' => sprintf( __( '<span class="event_booking_status completed">%s</span>', 'wp-events-manager' ), __( 'Completed', 'wp-events-manager' ) ),
|
1067 |
+
) );
|
1068 |
+
}
|
1069 |
+
|
1070 |
+
}
|
1071 |
+
|
1072 |
+
if ( ! function_exists( 'wpems_is_ajax' ) ) {
|
1073 |
+
/**
|
1074 |
+
* is processing ajax request
|
1075 |
+
*/
|
1076 |
+
function wpems_is_ajax() {
|
1077 |
+
return defined( 'DOING_AJAX' ) && DOING_AJAX;
|
1078 |
+
}
|
1079 |
+
}
|
1080 |
+
|
1081 |
+
if ( ! function_exists( 'tp_event_create_new_user' ) ) {
|
1082 |
+
|
1083 |
+
/**
|
1084 |
+
* create new user
|
1085 |
+
*
|
1086 |
+
* @param type $username
|
1087 |
+
* @param type $email
|
1088 |
+
* @param type $password
|
1089 |
+
*
|
1090 |
+
* @return WP_Error or $user_id created
|
1091 |
+
*/
|
1092 |
+
function wpems_create_new_user( $cred = array() ) {
|
1093 |
+
$cred = wp_parse_args( $cred, array(
|
1094 |
+
'username' => '',
|
1095 |
+
'email' => '',
|
1096 |
+
'password' => ''
|
1097 |
+
) );
|
1098 |
+
$username = $cred['username'];
|
1099 |
+
$email = $cred['email'];
|
1100 |
+
$password = $cred['password'];
|
1101 |
+
|
1102 |
+
$errors = new WP_Error();
|
1103 |
+
if ( ! empty( $cred['confirm_password'] ) ) {
|
1104 |
+
$confirm_password = $cred['confirm_password'];
|
1105 |
+
if ( $password && $confirm_password && $confirm_password !== $confirm_password ) {
|
1106 |
+
$errors->add( 'confirm_password', __( 'Confirm Password is not match.', 'wp-events-manager' ) );
|
1107 |
+
}
|
1108 |
+
}
|
1109 |
+
/**
|
1110 |
+
* Validate username
|
1111 |
+
*/
|
1112 |
+
if ( ! $username ) {
|
1113 |
+
$errors->add( 'user_login', sprintf( '<strong>%s</strong>%s', __( 'ERROR: ', 'wp-events-manager' ), __( 'Username is required field.', 'wp-events-manager' ) ) );
|
1114 |
+
} else if ( username_exists( $username ) ) {
|
1115 |
+
$errors->add( 'user_login', __( 'Username is already exists.', 'wp-events-manager' ) );
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
/**
|
1119 |
+
* Validate email
|
1120 |
+
*/
|
1121 |
+
if ( ! $email || ! is_email( $email ) ) {
|
1122 |
+
$errors->add( 'user_email', sprintf( '<strong>%s</strong>%s', __( 'ERROR: ', 'wp-events-manager' ), __( 'Please provide a valid email address.', 'wp-events-manager' ) ) );
|
1123 |
+
} else if ( email_exists( $email ) ) {
|
1124 |
+
$errors->add( 'user_email', sprintf( '<strong>%s</strong>%s', __( 'ERROR: ', 'wp-events-manager' ), __( 'An account is already registered with your email address. Please login.', 'wp-events-manager' ) ) );
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
if ( empty( $password ) ) {
|
1128 |
+
$errors->add( 'password', sprintf( '<strong>%s</strong>%s', __( 'ERROR: ', 'wp-events-manager' ), __( 'Password is required field.', 'wp-events-manager' ) ) );
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
$errors = apply_filters( 'tp_event_register_errors', $errors, $username, $email, $password );
|
1132 |
+
if ( $errors->get_error_code() ) {
|
1133 |
+
return $errors;
|
1134 |
+
}
|
1135 |
+
|
1136 |
+
$userdata = apply_filters( 'tp_event_create_new_user_data', array(
|
1137 |
+
'user_login' => $username,
|
1138 |
+
'user_email' => $email,
|
1139 |
+
'user_pass' => $password
|
1140 |
+
) );
|
1141 |
+
|
1142 |
+
$user_id = wp_insert_user( $userdata );
|
1143 |
+
/*
|
1144 |
+
* Insert new user return WP_Error
|
1145 |
+
*/
|
1146 |
+
if ( is_wp_error( $user_id ) ) {
|
1147 |
+
$errors->add( 'insert_user_error', sprintf( '<strong>%s</strong>%s', __( 'ERROR: ', 'wp-events-manager' ), __( 'Couldn\'t register.', 'wp-events-manager' ) ) );
|
1148 |
+
|
1149 |
+
return $errors;
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
do_action( 'tp_event_create_new_user', $user_id, $userdata );
|
1153 |
+
|
1154 |
+
return $user_id;
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
if ( ! function_exists( 'tp_event_get_booking' ) ) {
|
1160 |
+
|
1161 |
+
/**
|
1162 |
+
* Get Booking
|
1163 |
+
*
|
1164 |
+
* @param type $booking_id
|
1165 |
+
*
|
1166 |
+
* @return WPEMS_Booking
|
1167 |
+
*/
|
1168 |
+
function wpems_get_booking( $booking_id ) {
|
1169 |
+
return WPEMS_Booking::instance( $booking_id );
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
}
|
1173 |
+
|
1174 |
+
// filter shortcode
|
1175 |
+
add_filter( 'the_content', 'wpems_content_filter', 1 );
|
1176 |
+
if ( ! function_exists( 'wpems_content_filter' ) ) {
|
1177 |
+
function wpems_content_filter( $content ) {
|
1178 |
+
|
1179 |
+
$filter = false;
|
1180 |
+
|
1181 |
+
if ( ( $login_page_id = wpems_get_page_id( 'login' ) ) && is_page( $login_page_id ) ) {
|
1182 |
+
if ( ! preg_match( '/\[wp_event_login\s?(.*)\]/', $content ) ) {
|
1183 |
+
$filter = true;
|
1184 |
+
$content = $content . '[wp_event_login]';
|
1185 |
+
}
|
1186 |
+
} else if ( ( $register_page_id = wpems_get_page_id( 'register' ) ) && is_page( $register_page_id ) ) {
|
1187 |
+
if ( ! preg_match( '/\[wp_event_register\s?(.*)\]/', $content ) ) {
|
1188 |
+
$filter = true;
|
1189 |
+
$content = $content . '[wp_event_register]';
|
1190 |
+
}
|
1191 |
+
} else if ( ( $forgot_page_id = wpems_get_page_id( 'forgot_password' ) ) && is_page( $forgot_page_id ) ) {
|
1192 |
+
if ( ! preg_match( '/\[wp_event_forgot_password\s?(.*)\]/', $content ) ) {
|
1193 |
+
$filter = true;
|
1194 |
+
$content = $content . '[wp_event_forgot_password]';
|
1195 |
+
}
|
1196 |
+
|
1197 |
+
} else if ( ( $reset_page_id = wpems_get_page_id( 'reset_password' ) ) && is_page( $reset_page_id ) ) {
|
1198 |
+
if ( ! preg_match( '/\[wp_event_reset_password\s?(.*)\]/', $content ) ) {
|
1199 |
+
$filter = true;
|
1200 |
+
$content = $content . '[wp_event_reset_password]';
|
1201 |
+
}
|
1202 |
+
} else if ( ( $account_page_id = wpems_get_page_id( 'account' ) ) && is_page( $account_page_id ) ) {
|
1203 |
+
if ( ! preg_match( '/\[wp_event_account\s?(.*)\]/', $content ) ) {
|
1204 |
+
$filter = true;
|
1205 |
+
$content = $content . '[wp_event_account]';
|
1206 |
+
}
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
if ( $filter ) {
|
1210 |
+
$has_filter = false;
|
1211 |
+
if ( has_filter( 'the_content', 'wpautop' ) ) {
|
1212 |
+
$has_filter = true;
|
1213 |
+
remove_filter( 'the_content', 'wpautop' );
|
1214 |
+
}
|
1215 |
+
|
1216 |
+
$content = do_shortcode( $content );
|
1217 |
+
|
1218 |
+
if ( $has_filter ) {
|
1219 |
+
add_filter( 'the_content', 'wpautop' );
|
1220 |
+
}
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
return $content;
|
1224 |
+
}
|
1225 |
+
|
1226 |
+
}
|
1227 |
+
|
1228 |
+
add_action( 'tp_event_create_new_booking', 'wpems_cancel_booking', 10, 1 );
|
1229 |
+
add_action( 'tp_event_updated_status', 'wpems_cancel_booking', 10, 1 );
|
1230 |
+
if ( ! function_exists( 'wpems_cancel_booking' ) ) {
|
1231 |
+
|
1232 |
+
function wpems_cancel_booking( $booking_id ) {
|
1233 |
+
$post_status = get_post_status( $booking_id );
|
1234 |
+
if ( $post_status === 'ea-pending' ) {
|
1235 |
+
wp_clear_scheduled_hook( 'tp_event_cancel_payment_booking', array( $booking_id ) );
|
1236 |
+
$time = wpems_get_option( 'cancel_payment', 12 ) * HOUR_IN_SECONDS;
|
1237 |
+
wp_schedule_single_event( time() + $time, 'wpems_cancel_payment_booking', array( $booking_id ) );
|
1238 |
+
}
|
1239 |
+
}
|
1240 |
+
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
// cancel payment order
|
1244 |
+
add_action( 'tp_event_cancel_payment_booking', 'wpems_cancel_payment_booking' );
|
1245 |
+
if ( ! function_exists( 'wpems_cancel_payment_booking' ) ) {
|
1246 |
+
|
1247 |
+
function wpems_cancel_payment_booking( $booking_id ) {
|
1248 |
+
$post_status = get_post_status( $booking_id );
|
1249 |
+
|
1250 |
+
if ( $post_status === 'ea-pending' ) {
|
1251 |
+
wp_update_post( array(
|
1252 |
+
'ID' => $booking_id,
|
1253 |
+
'post_status' => 'ea-cancelled'
|
1254 |
+
) );
|
1255 |
+
}
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
}
|
1259 |
+
|
1260 |
+
// Update functions from version 1.4
|
1261 |
+
if ( ! function_exists( 'event_get_option' ) ) {
|
1262 |
+
|
1263 |
+
/**
|
1264 |
+
* event_get_option
|
1265 |
+
*
|
1266 |
+
* @param type $name
|
1267 |
+
* @param type $default
|
1268 |
+
*
|
1269 |
+
* @return type
|
1270 |
+
*/
|
1271 |
+
function event_get_option( $name, $default = null ) {
|
1272 |
+
if ( strpos( $name, 'thimpress_events_' ) !== 0 ) {
|
1273 |
+
$name = 'thimpress_events_' . $name;
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
return get_option( $name, $default );
|
1277 |
+
}
|
1278 |
+
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
// Add event category tab in admin table page
|
1282 |
+
add_action( 'all_admin_notices', 'wpems_admin_table_tabs' );
|
1283 |
+
function wpems_admin_table_tabs() {
|
1284 |
+
if ( ! is_admin() ) {
|
1285 |
+
return;
|
1286 |
+
}
|
1287 |
+
$admin_tabs = apply_filters(
|
1288 |
+
'tp_event_admin_event_tab_info',
|
1289 |
+
array(
|
1290 |
+
10 => array(
|
1291 |
+
'link' => 'edit.php?post_type=tp_event',
|
1292 |
+
'name' => __( 'Events', 'wp-events-manager' ),
|
1293 |
+
'id' => 'edit-tp_event'
|
1294 |
+
),
|
1295 |
+
20 => array(
|
1296 |
+
'link' => 'edit-tags.php?taxonomy=tp_event_category&post_type=tp_event',
|
1297 |
+
'name' => __( 'Categories', 'wp-events-manager' ),
|
1298 |
+
'id' => 'edit-tp_event_category'
|
1299 |
+
)
|
1300 |
+
)
|
1301 |
+
);
|
1302 |
+
ksort( $admin_tabs );
|
1303 |
+
$tabs = array();
|
1304 |
+
foreach ( $admin_tabs as $key => $value ) {
|
1305 |
+
array_push( $tabs, $key );
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
$pages = apply_filters( 'tp-event_admin_tabs_on_pages', array(
|
1309 |
+
'edit-tp_event',
|
1310 |
+
'edit-tp_event_category',
|
1311 |
+
'tp_event'
|
1312 |
+
) );
|
1313 |
+
|
1314 |
+
$admin_tabs_on_page = array();
|
1315 |
+
foreach ( $pages as $page ) {
|
1316 |
+
$admin_tabs_on_page[ $page ] = $tabs;
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
$current_page_id = get_current_screen()->id;
|
1320 |
+
$current_user = wp_get_current_user();
|
1321 |
+
if ( ! in_array( 'administrator', $current_user->roles ) ) {
|
1322 |
+
return;
|
1323 |
+
}
|
1324 |
+
if ( ! empty( $admin_tabs_on_page[ $current_page_id ] ) && count( $admin_tabs_on_page[ $current_page_id ] ) ) { ?>
|
1325 |
+
<h2 class="nav-tab-wrapper event-nav-tab-wrapper">
|
1326 |
+
<?php foreach ( $admin_tabs_on_page[ $current_page_id ] as $admin_tab_id ) {
|
1327 |
+
$class = ( $admin_tabs[ $admin_tab_id ]['id'] == $current_page_id ? 'nav-tab nav-tab-active' : 'nav-tab' );
|
1328 |
+
echo '<a href="' . admin_url( $admin_tabs[ $admin_tab_id ]["link"] ) . '" class="' . $class . ' nav-tab-' . $admin_tabs[ $admin_tab_id ]["id"] . '">' . $admin_tabs[ $admin_tab_id ]["name"] . '</a>';
|
1329 |
+
} ?>
|
1330 |
+
</h2>
|
1331 |
+
<?php
|
1332 |
+
}
|
1333 |
+
}
|
1334 |
+
|
1335 |
+
if ( is_multisite() ) {
|
1336 |
+
if ( ( file_exists( ABSPATH . 'wp-content/plugins/tp-event-auth/tp-event-auth.php' ) || file_exists( ABSPATH . 'wp-content/plugins/tp-event/tp-event.php' ) ) && ! get_site_option( 'thimpress_events_show_remove_event_auth_notice' ) ) {
|
1337 |
+
add_action( 'network_admin_notices', 'wpems_show_remove_tp_event_notice' );
|
1338 |
+
add_action( 'admin_notices', 'wpems_show_remove_tp_event_notice' );
|
1339 |
+
}
|
1340 |
+
} else {
|
1341 |
+
if ( ( file_exists( ABSPATH . 'wp-content/plugins/tp-event-auth/tp-event-auth.php' ) || file_exists( ABSPATH . 'wp-content/plugins/tp-event/tp-event.php' ) ) && ! get_option( 'thimpress_events_show_remove_event_auth_notice' ) ) {
|
1342 |
+
add_action( 'admin_notices', 'wpems_show_remove_tp_event_notice' );
|
1343 |
+
}
|
1344 |
+
}
|
1345 |
+
|
1346 |
+
/**
|
1347 |
+
* Show notice required remove event auth add-on
|
1348 |
+
*/
|
1349 |
+
|
1350 |
+
function wpems_show_remove_tp_event_notice() { ?>
|
1351 |
+
<div class="notice notice-error tp-event-dismiss-notice is-dismissible">
|
1352 |
+
<p><?php echo __( wp_kses( '<strong>WP Events Manager</strong> plugin version ' . WPEMS_VER . ' is an upgrade of <strong>Thim Events</strong> plugin and already included <strong>Thim Event Authentication</strong> add-on. Please deactivate and delete <strong>Thim Events/Thim Event Authentication</strong>.', array( 'strong' => array() ) ), 'wp-events-manager' ); ?></p>
|
1353 |
+
</div>
|
1354 |
+
<?php }
|
1355 |
+
|
1356 |
+
/*
|
1357 |
+
* Post type admin order
|
1358 |
+
*/
|
1359 |
+
if ( ! function_exists( 'wpems_post_type_admin_order' ) ) {
|
1360 |
+
function wpems_post_type_admin_order( $wp_query ) {
|
1361 |
+
if ( is_admin() && ! isset( $_GET['orderby'] ) ) {
|
1362 |
+
// Get the post type from the query
|
1363 |
+
$post_type = $wp_query->query['post_type'];
|
1364 |
+
if ( in_array( $post_type, array( 'tp_event', 'event_auth_book' ) ) ) {
|
1365 |
+
$wp_query->set( 'orderby', 'date' );
|
1366 |
+
$wp_query->set( 'order', 'DESC' );
|
1367 |
+
}
|
1368 |
+
}
|
1369 |
+
}
|
1370 |
+
}
|
1371 |
+
add_filter( 'pre_get_posts', 'wpems_post_type_admin_order' );
|
1372 |
+
|
1373 |
+
|
1374 |
+
//=============================================================================================================================================
|
1375 |
+
|
1376 |
+
/**
|
1377 |
+
* Support old functions
|
1378 |
+
*/
|
1379 |
+
|
1380 |
+
|
1381 |
+
/**
|
1382 |
+
* get event start datetime
|
1383 |
+
*
|
1384 |
+
* @param string $format [description]
|
1385 |
+
*
|
1386 |
+
* @return [type] [description]
|
1387 |
+
*/
|
1388 |
+
|
1389 |
+
if ( ! function_exists( 'tp_event_start' ) ) {
|
1390 |
+
function tp_event_start( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
1391 |
+
if ( ! $post ) {
|
1392 |
+
$post = get_post();
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
if ( $l10 ) {
|
1396 |
+
return date_i18n( $format, strtotime( $post->tp_event_date_start . ' ' . $post->tp_event_time_start ) );
|
1397 |
+
} else {
|
1398 |
+
return date( $format, strtotime( $post->tp_event_date_start . ' ' . $post->tp_event_time_start ) );
|
1399 |
+
}
|
1400 |
+
}
|
1401 |
+
}
|
1402 |
+
|
1403 |
+
/**
|
1404 |
+
* get event end datetime same as function
|
1405 |
+
*
|
1406 |
+
* @param string $format
|
1407 |
+
*
|
1408 |
+
* @return
|
1409 |
+
*/
|
1410 |
+
if ( ! function_exists( 'tp_event_end' ) ) {
|
1411 |
+
function tp_event_end( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
1412 |
+
if ( ! $post ) {
|
1413 |
+
$post = get_post();
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
if ( $l10 ) {
|
1417 |
+
return date_i18n( $format, strtotime( $post->tp_event_date_end . ' ' . $post->tp_event_time_end ) );
|
1418 |
+
} else {
|
1419 |
+
return date( $format, strtotime( $post->tp_event_date_end . ' ' . $post->tp_event_time_end ) );
|
1420 |
+
}
|
1421 |
+
}
|
1422 |
+
}
|
1423 |
+
|
1424 |
+
/**
|
1425 |
+
* get time event countdown
|
1426 |
+
*
|
1427 |
+
* @param string $format
|
1428 |
+
*
|
1429 |
+
* @return string
|
1430 |
+
*/
|
1431 |
+
if ( ! function_exists( 'tp_event_get_time' ) ) {
|
1432 |
+
function tp_event_get_time( $format = 'Y-m-d H:i', $post = null, $l10 = true ) {
|
1433 |
+
$current_time = current_time( 'timestamp' );
|
1434 |
+
$start = wpems_event_start( 'Y-m-d H:i', $post );
|
1435 |
+
$end = wpems_event_end( 'Y-m-d H:i', $post );
|
1436 |
+
if ( $current_time < strtotime( $start ) ) {
|
1437 |
+
return wpems_event_start( $format, $post, $l10 );
|
1438 |
+
} else {
|
1439 |
+
return wpems_event_end( $format, $post, $l10 );
|
1440 |
+
}
|
1441 |
+
}
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
/**
|
1445 |
+
* get event location
|
1446 |
+
*
|
1447 |
+
* @param string $format
|
1448 |
+
*
|
1449 |
+
* @return string
|
1450 |
+
*/
|
1451 |
+
if ( ! function_exists( 'tp_event_location' ) ) {
|
1452 |
+
function tp_event_location( $post = null ) {
|
1453 |
+
if ( ! $post ) {
|
1454 |
+
$post = get_post();
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
return get_post_meta( $post->ID, 'tp_event_location', true );
|
1458 |
+
}
|
1459 |
+
}
|
1460 |
+
|
1461 |
+
|
1462 |
+
if ( ! function_exists( 'tp_event_get_template' ) ) {
|
1463 |
+
|
1464 |
+
function tp_event_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
|
1465 |
+
if ( $args && is_array( $args ) ) {
|
1466 |
+
extract( $args );
|
1467 |
+
}
|
1468 |
+
|
1469 |
+
$located = tp_event_locate_template( $template_name, $template_path, $default_path );
|
1470 |
+
|
1471 |
+
if ( ! file_exists( $located ) ) {
|
1472 |
+
_doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' );
|
1473 |
+
|
1474 |
+
return;
|
1475 |
+
}
|
1476 |
+
// Allow 3rd party plugin filter template file from their plugin
|
1477 |
+
$located = apply_filters( 'tp_event_get_template', $located, $template_name, $args, $template_path, $default_path );
|
1478 |
+
|
1479 |
+
do_action( 'tp_event_before_template_part', $template_name, $template_path, $located, $args );
|
1480 |
+
|
1481 |
+
include( $located );
|
1482 |
+
|
1483 |
+
do_action( 'tp_event_after_template_part', $template_name, $template_path, $located, $args );
|
1484 |
+
}
|
1485 |
+
|
1486 |
+
}
|
1487 |
+
|
1488 |
+
if ( ! function_exists( 'tp_event_template_path' ) ) {
|
1489 |
+
|
1490 |
+
function tp_event_template_path() {
|
1491 |
+
return apply_filters( 'tp_event_template_path', 'wp-events-manager' );
|
1492 |
+
}
|
1493 |
+
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
if ( !function_exists( 'tp_event_locate_template' ) ) {
|
1497 |
+
|
1498 |
+
function tp_event_locate_template( $template_name, $template_path = '', $default_path = '' ) {
|
1499 |
+
|
1500 |
+
if ( !$template_path ) {
|
1501 |
+
$template_path = tp_event_template_path();
|
1502 |
+
}
|
1503 |
+
|
1504 |
+
if ( !$default_path ) {
|
1505 |
+
$default_path = WPEMS_PATH . '/templates/';
|
1506 |
+
}
|
1507 |
+
|
1508 |
+
$template = null;
|
1509 |
+
// Look within passed path within the theme - this is priority
|
1510 |
+
$template = locate_template(
|
1511 |
+
array(
|
1512 |
+
trailingslashit( $template_path ) . $template_name,
|
1513 |
+
$template_name
|
1514 |
+
)
|
1515 |
+
);
|
1516 |
+
// Get default template
|
1517 |
+
if ( !$template ) {
|
1518 |
+
$template = $default_path . $template_name;
|
1519 |
+
}
|
1520 |
+
|
1521 |
+
// Return what we found
|
1522 |
+
return apply_filters( 'tp_event_locate_template', $template, $template_name, $template_path );
|
1523 |
+
}
|
1524 |
+
|
1525 |
+
}
|
index.php
ADDED
File without changes
|
languages/wp-events-manager.pot
ADDED
@@ -0,0 +1,1333 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2017-04-14 14:39+0700\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
20 |
+
|
21 |
+
#: trunk/inc/class-wpems-ajax.php:41
|
22 |
+
msgid "Remove admin notice successful"
|
23 |
+
msgstr ""
|
24 |
+
|
25 |
+
#: trunk/inc/class-wpems-ajax.php:58
|
26 |
+
msgid "Event not found."
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#: trunk/inc/class-wpems-ajax.php:62
|
30 |
+
msgid "You must login before register "
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#: trunk/inc/class-wpems-ajax.php:69
|
34 |
+
msgid "has been expired"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: trunk/inc/class-wpems-ajax.php:71
|
38 |
+
msgid "You have registered this event before"
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
#: trunk/inc/class-wpems-ajax.php:73
|
42 |
+
msgid "The event is full, the registration is closed"
|
43 |
+
msgstr ""
|
44 |
+
|
45 |
+
#: trunk/inc/class-wpems-ajax.php:95 trunk/inc/class-wpems-ajax.php:99
|
46 |
+
msgid "Invalid request"
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: trunk/inc/class-wpems-ajax.php:104
|
50 |
+
msgid "Invalid event request"
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: trunk/inc/class-wpems-ajax.php:111
|
54 |
+
msgid "Quantity must integer"
|
55 |
+
msgstr ""
|
56 |
+
|
57 |
+
#: trunk/inc/class-wpems-ajax.php:125
|
58 |
+
msgid "You are registered this event."
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: trunk/inc/class-wpems-ajax.php:146
|
62 |
+
msgid "is not ready. Please contact administrator to setup payment gateways"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: trunk/inc/class-wpems-ajax.php:169
|
66 |
+
#, php-format
|
67 |
+
msgid ""
|
68 |
+
"Book ID <strong>%s</strong> completed! We'll send mail to <strong>%s</"
|
69 |
+
"strong> when it is approve."
|
70 |
+
msgstr ""
|
71 |
+
|
72 |
+
#: trunk/inc/class-wpems-ajax.php:184
|
73 |
+
msgid "Payment method is not available"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: trunk/inc/class-wpems-ajax.php:207
|
77 |
+
#, php-format
|
78 |
+
msgid "You Must <a href=\"%s\">Login</a>"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: trunk/inc/class-wpems-booking.php:63
|
82 |
+
#, php-format
|
83 |
+
msgid "%s booking event %s"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: trunk/inc/class-wpems-booking.php:64 trunk/inc/class-wpems-booking.php:65
|
87 |
+
#, php-format
|
88 |
+
msgid "%s booking event %s with %s slot"
|
89 |
+
msgstr ""
|
90 |
+
|
91 |
+
#: trunk/inc/class-wpems-booking.php:88
|
92 |
+
#, php-format
|
93 |
+
msgid "Booking ID #%s is not exists."
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
+
#: trunk/inc/class-wpems-install.php:114
|
97 |
+
msgctxt "Page slug"
|
98 |
+
msgid "user-register"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: trunk/inc/class-wpems-install.php:115
|
102 |
+
msgctxt "Page title"
|
103 |
+
msgid "User Register"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: trunk/inc/class-wpems-install.php:119
|
107 |
+
msgctxt "Page slug"
|
108 |
+
msgid "user-login"
|
109 |
+
msgstr ""
|
110 |
+
|
111 |
+
#: trunk/inc/class-wpems-install.php:120
|
112 |
+
msgctxt "Page title"
|
113 |
+
msgid "User Login"
|
114 |
+
msgstr ""
|
115 |
+
|
116 |
+
#: trunk/inc/class-wpems-install.php:124
|
117 |
+
msgctxt "Page slug"
|
118 |
+
msgid "forgot-password"
|
119 |
+
msgstr ""
|
120 |
+
|
121 |
+
#: trunk/inc/class-wpems-install.php:125
|
122 |
+
msgctxt "Page title"
|
123 |
+
msgid "Forgot Password"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: trunk/inc/class-wpems-install.php:129
|
127 |
+
msgctxt "Page slug"
|
128 |
+
msgid "reset-password"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: trunk/inc/class-wpems-install.php:130
|
132 |
+
msgctxt "Page title"
|
133 |
+
msgid "Reset Password"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: trunk/inc/class-wpems-install.php:134
|
137 |
+
msgctxt "Page slug"
|
138 |
+
msgid "user-account"
|
139 |
+
msgstr ""
|
140 |
+
|
141 |
+
#: trunk/inc/class-wpems-install.php:135
|
142 |
+
msgctxt "Page title"
|
143 |
+
msgid "User Account"
|
144 |
+
msgstr ""
|
145 |
+
|
146 |
+
#: trunk/inc/class-wpems-post-types.php:48
|
147 |
+
msgctxt "post type general name"
|
148 |
+
msgid "Events"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: trunk/inc/class-wpems-post-types.php:49
|
152 |
+
msgctxt "post type singular name"
|
153 |
+
msgid "Event"
|
154 |
+
msgstr ""
|
155 |
+
|
156 |
+
#: trunk/inc/class-wpems-post-types.php:50
|
157 |
+
msgctxt "admin menu"
|
158 |
+
msgid "Events"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: trunk/inc/class-wpems-post-types.php:51
|
162 |
+
msgctxt "add new on admin bar"
|
163 |
+
msgid "Event"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: trunk/inc/class-wpems-post-types.php:52
|
167 |
+
msgctxt "event"
|
168 |
+
msgid "Add New"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: trunk/inc/class-wpems-post-types.php:53
|
172 |
+
msgid "Add New Event"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: trunk/inc/class-wpems-post-types.php:54
|
176 |
+
msgid "New Event"
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: trunk/inc/class-wpems-post-types.php:55
|
180 |
+
msgid "Edit Event"
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: trunk/inc/class-wpems-post-types.php:56
|
184 |
+
msgid "View Event"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: trunk/inc/class-wpems-post-types.php:57
|
188 |
+
#: trunk/inc/wpems-core-functions.php:1228
|
189 |
+
#: trunk/templates/shortcodes/user-account.php:21
|
190 |
+
msgid "Events"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: trunk/inc/class-wpems-post-types.php:58
|
194 |
+
msgid "Search Events"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: trunk/inc/class-wpems-post-types.php:59
|
198 |
+
msgid "Parent Events:"
|
199 |
+
msgstr ""
|
200 |
+
|
201 |
+
#: trunk/inc/class-wpems-post-types.php:60
|
202 |
+
msgid "No events found."
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: trunk/inc/class-wpems-post-types.php:61
|
206 |
+
msgid "No events found in Trash."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: trunk/inc/class-wpems-post-types.php:66
|
210 |
+
msgid "Event post type."
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: trunk/inc/class-wpems-post-types.php:72
|
214 |
+
msgctxt "URL slug"
|
215 |
+
msgid "events"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: trunk/inc/class-wpems-post-types.php:93
|
219 |
+
msgctxt "post type general name"
|
220 |
+
msgid "Bookings"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: trunk/inc/class-wpems-post-types.php:94
|
224 |
+
msgctxt "post type singular name"
|
225 |
+
msgid "Booking"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: trunk/inc/class-wpems-post-types.php:95
|
229 |
+
msgctxt "admin menu"
|
230 |
+
msgid "Bookings"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: trunk/inc/class-wpems-post-types.php:96
|
234 |
+
msgctxt "add new on admin bar"
|
235 |
+
msgid "Booking"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: trunk/inc/class-wpems-post-types.php:97
|
239 |
+
msgctxt "book"
|
240 |
+
msgid "Add New"
|
241 |
+
msgstr ""
|
242 |
+
|
243 |
+
#: trunk/inc/class-wpems-post-types.php:98
|
244 |
+
msgid "Add New Booking"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: trunk/inc/class-wpems-post-types.php:99
|
248 |
+
msgid "New Booking"
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: trunk/inc/class-wpems-post-types.php:100
|
252 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:40
|
253 |
+
msgid "Booking Details"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: trunk/inc/class-wpems-post-types.php:101
|
257 |
+
msgid "View Booking"
|
258 |
+
msgstr ""
|
259 |
+
|
260 |
+
#: trunk/inc/class-wpems-post-types.php:102
|
261 |
+
msgid "Bookings"
|
262 |
+
msgstr ""
|
263 |
+
|
264 |
+
#: trunk/inc/class-wpems-post-types.php:103
|
265 |
+
msgid "Search Books"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
#: trunk/inc/class-wpems-post-types.php:104
|
269 |
+
msgid "Parent Books:"
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: trunk/inc/class-wpems-post-types.php:105
|
273 |
+
msgid "No books found."
|
274 |
+
msgstr ""
|
275 |
+
|
276 |
+
#: trunk/inc/class-wpems-post-types.php:106
|
277 |
+
msgid "No books found in Trash."
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: trunk/inc/class-wpems-post-types.php:111
|
281 |
+
msgid "Description."
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: trunk/inc/class-wpems-post-types.php:118
|
285 |
+
msgctxt "URL slug"
|
286 |
+
msgid "event-book"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: trunk/inc/class-wpems-post-types.php:140
|
290 |
+
msgctxt "taxonomy general name"
|
291 |
+
msgid "Event Categories"
|
292 |
+
msgstr ""
|
293 |
+
|
294 |
+
#: trunk/inc/class-wpems-post-types.php:141
|
295 |
+
msgctxt "taxonomy singular name"
|
296 |
+
msgid "Event Category"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: trunk/inc/class-wpems-post-types.php:142
|
300 |
+
msgid "Search Categories"
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: trunk/inc/class-wpems-post-types.php:143
|
304 |
+
msgid "All Categories"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: trunk/inc/class-wpems-post-types.php:144
|
308 |
+
msgid "Parent Category"
|
309 |
+
msgstr ""
|
310 |
+
|
311 |
+
#: trunk/inc/class-wpems-post-types.php:145
|
312 |
+
msgid "Parent Category:"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: trunk/inc/class-wpems-post-types.php:146
|
316 |
+
msgid "Edit Category"
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: trunk/inc/class-wpems-post-types.php:147
|
320 |
+
msgid "Update Category"
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: trunk/inc/class-wpems-post-types.php:148
|
324 |
+
msgid "Add New Category"
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: trunk/inc/class-wpems-post-types.php:149
|
328 |
+
msgid "New Category Name"
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: trunk/inc/class-wpems-post-types.php:150
|
332 |
+
msgid "Category"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: trunk/inc/class-wpems-post-types.php:173
|
336 |
+
msgctxt "wp-events-manager"
|
337 |
+
msgid "Upcoming"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: trunk/inc/class-wpems-post-types.php:178
|
341 |
+
#, php-format
|
342 |
+
msgid "Upcoming <span class=\"count\">(%s)</span>"
|
343 |
+
msgid_plural "Upcoming <span class=\"count\">(%s)</span>"
|
344 |
+
msgstr[0] ""
|
345 |
+
msgstr[1] ""
|
346 |
+
|
347 |
+
#: trunk/inc/class-wpems-post-types.php:182
|
348 |
+
msgctxt "wp-events-manager"
|
349 |
+
msgid "Happening"
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: trunk/inc/class-wpems-post-types.php:187
|
353 |
+
#, php-format
|
354 |
+
msgid "Happening <span class=\"count\">(%s)</span>"
|
355 |
+
msgid_plural "Happening <span class=\"count\">(%s)</span>"
|
356 |
+
msgstr[0] ""
|
357 |
+
msgstr[1] ""
|
358 |
+
|
359 |
+
#: trunk/inc/class-wpems-post-types.php:191
|
360 |
+
msgctxt "wp-events-manager"
|
361 |
+
msgid "Expired"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: trunk/inc/class-wpems-post-types.php:196
|
365 |
+
#, php-format
|
366 |
+
msgid "Expired <span class=\"count\">(%s)</span>"
|
367 |
+
msgid_plural "Expired <span class=\"count\">(%s)</span>"
|
368 |
+
msgstr[0] ""
|
369 |
+
msgstr[1] ""
|
370 |
+
|
371 |
+
#: trunk/inc/class-wpems-post-types.php:206
|
372 |
+
msgctxt "Booking status"
|
373 |
+
msgid "Cancelled"
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: trunk/inc/class-wpems-post-types.php:211
|
377 |
+
#, php-format
|
378 |
+
msgid "Cancelled <span class=\"count\">(%s)</span>"
|
379 |
+
msgid_plural "Cancelled <span class=\"count\">(%s)</span>"
|
380 |
+
msgstr[0] ""
|
381 |
+
msgstr[1] ""
|
382 |
+
|
383 |
+
#: trunk/inc/class-wpems-post-types.php:215
|
384 |
+
msgctxt "Booking status"
|
385 |
+
msgid "Pending"
|
386 |
+
msgstr ""
|
387 |
+
|
388 |
+
#: trunk/inc/class-wpems-post-types.php:220
|
389 |
+
#, php-format
|
390 |
+
msgid "Pending <span class=\"count\">(%s)</span>"
|
391 |
+
msgid_plural "Pending <span class=\"count\">(%s)</span>"
|
392 |
+
msgstr[0] ""
|
393 |
+
msgstr[1] ""
|
394 |
+
|
395 |
+
#: trunk/inc/class-wpems-post-types.php:224
|
396 |
+
msgctxt "Booking status"
|
397 |
+
msgid "Processing"
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: trunk/inc/class-wpems-post-types.php:229
|
401 |
+
#, php-format
|
402 |
+
msgid "Processing <span class=\"count\">(%s)</span>"
|
403 |
+
msgid_plural "Processing <span class=\"count\">(%s)</span>"
|
404 |
+
msgstr[0] ""
|
405 |
+
msgstr[1] ""
|
406 |
+
|
407 |
+
#: trunk/inc/class-wpems-post-types.php:233
|
408 |
+
msgctxt "Booking status"
|
409 |
+
msgid "Completed"
|
410 |
+
msgstr ""
|
411 |
+
|
412 |
+
#: trunk/inc/class-wpems-post-types.php:238
|
413 |
+
#, php-format
|
414 |
+
msgid "Completed <span class=\"count\">(%s)</span>"
|
415 |
+
msgid_plural "Completed <span class=\"count\">(%s)</span>"
|
416 |
+
msgstr[0] ""
|
417 |
+
msgstr[1] ""
|
418 |
+
|
419 |
+
#: trunk/inc/class-wpems-post-types.php:252
|
420 |
+
msgid "Start"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: trunk/inc/class-wpems-post-types.php:253
|
424 |
+
msgid "End"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: trunk/inc/class-wpems-post-types.php:254
|
428 |
+
#: trunk/inc/class-wpems-post-types.php:325
|
429 |
+
#: trunk/templates/emails/register-event.php:27
|
430 |
+
#: trunk/templates/shortcodes/user-account.php:26
|
431 |
+
msgid "Status"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: trunk/inc/class-wpems-post-types.php:255
|
435 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:37
|
436 |
+
msgid "Price"
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: trunk/inc/class-wpems-post-types.php:256
|
440 |
+
msgid "Booked / Total"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: trunk/inc/class-wpems-post-types.php:295
|
444 |
+
#: trunk/inc/class-wpems-post-types.php:355
|
445 |
+
#: trunk/templates/emails/register-event.php:34
|
446 |
+
#: trunk/templates/loop/register.php:31
|
447 |
+
#: trunk/templates/shortcodes/user-account.php:35
|
448 |
+
msgid "Free"
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: trunk/inc/class-wpems-post-types.php:297
|
452 |
+
#, php-format
|
453 |
+
msgid "<span class=\"event_auth_event_type\">%s/%s</span>"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: trunk/inc/class-wpems-post-types.php:297
|
457 |
+
msgid "slot"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: trunk/inc/class-wpems-post-types.php:301
|
461 |
+
msgid "Unlimited"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: trunk/inc/class-wpems-post-types.php:318
|
465 |
+
msgid ""
|
466 |
+
"<label class=\"screen-reader-text __web-inspector-hide-shortcut__\" for=\"cb-"
|
467 |
+
"select-all-1\">Select All</label><input id=\"cb-select-all-1\" type="
|
468 |
+
"\"checkbox\">"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: trunk/inc/class-wpems-post-types.php:319
|
472 |
+
#: trunk/templates/emails/register-event.php:21
|
473 |
+
msgid "ID"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: trunk/inc/class-wpems-post-types.php:320
|
477 |
+
#: trunk/templates/emails/register-event.php:22
|
478 |
+
msgid "Event"
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#: trunk/inc/class-wpems-post-types.php:321
|
482 |
+
msgid "User"
|
483 |
+
msgstr ""
|
484 |
+
|
485 |
+
#: trunk/inc/class-wpems-post-types.php:322
|
486 |
+
msgid "Date"
|
487 |
+
msgstr ""
|
488 |
+
|
489 |
+
#: trunk/inc/class-wpems-post-types.php:323
|
490 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:46
|
491 |
+
#: trunk/templates/emails/register-event.php:25
|
492 |
+
#: trunk/templates/emails/register-event.php:34
|
493 |
+
#: trunk/templates/shortcodes/user-account.php:23
|
494 |
+
#: trunk/templates/shortcodes/user-account.php:35
|
495 |
+
msgid "Cost"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: trunk/inc/class-wpems-post-types.php:324
|
499 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:47
|
500 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:31
|
501 |
+
#: trunk/templates/emails/register-event.php:24
|
502 |
+
#: trunk/templates/loop/booking-form.php:21
|
503 |
+
#: trunk/templates/shortcodes/user-account.php:24
|
504 |
+
msgid "Quantity"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: trunk/inc/class-wpems-post-types.php:347
|
508 |
+
#, php-format
|
509 |
+
msgid "<a href=\"%s\">%s</a>"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: trunk/inc/class-wpems-post-types.php:439
|
513 |
+
#: trunk/inc/class-wpems-post-types.php:442
|
514 |
+
#: trunk/inc/class-wpems-post-types.php:445
|
515 |
+
msgid "Event updated."
|
516 |
+
msgstr ""
|
517 |
+
|
518 |
+
#: trunk/inc/class-wpems-post-types.php:440
|
519 |
+
msgid "Custom field updated."
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: trunk/inc/class-wpems-post-types.php:441
|
523 |
+
msgid "Custom field deleted."
|
524 |
+
msgstr ""
|
525 |
+
|
526 |
+
#: trunk/inc/class-wpems-post-types.php:444
|
527 |
+
#, php-format
|
528 |
+
msgid "Book restored to revision from %s"
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: trunk/inc/class-wpems-post-types.php:446
|
532 |
+
msgid "Event saved."
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: trunk/inc/class-wpems-post-types.php:447
|
536 |
+
msgid "Event submitted."
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: trunk/inc/class-wpems-post-types.php:449
|
540 |
+
#, php-format
|
541 |
+
msgid "Event scheduled for: <strong>%1$s</strong>."
|
542 |
+
msgstr ""
|
543 |
+
|
544 |
+
#: trunk/inc/class-wpems-post-types.php:451
|
545 |
+
msgid "M j, Y @ G:i"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: trunk/inc/class-wpems-post-types.php:453
|
549 |
+
msgid "Event draft updated."
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: trunk/inc/class-wpems-post-types.php:459
|
553 |
+
msgid "View event"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: trunk/inc/class-wpems-post-types.php:465
|
557 |
+
msgid "Preview event"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: trunk/inc/class-wpems-shortcodes.php:162
|
561 |
+
#: trunk/inc/class-wpems-shortcodes.php:193
|
562 |
+
msgid "Check your email for a link to reset your password."
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: trunk/inc/class-wpems-user-process.php:48
|
566 |
+
msgid "You have been sign out!"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: trunk/inc/class-wpems-user-process.php:138
|
570 |
+
#: trunk/inc/class-wpems-user-process.php:142
|
571 |
+
#: trunk/inc/class-wpems-user-process.php:146
|
572 |
+
#: trunk/inc/class-wpems-user-process.php:155
|
573 |
+
msgid "ERROR"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: trunk/inc/class-wpems-user-process.php:142
|
577 |
+
msgid "Username is required."
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: trunk/inc/class-wpems-user-process.php:146
|
581 |
+
msgid "Password is required."
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: trunk/inc/class-wpems-user-process.php:155
|
585 |
+
msgid "A user could not be found with this email address."
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: trunk/inc/class-wpems-user-process.php:177
|
589 |
+
msgid "You have logged in"
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#: trunk/inc/wpems-core-functions.php:394
|
593 |
+
msgid "Years"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: trunk/inc/wpems-core-functions.php:395
|
597 |
+
msgid "Months"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: trunk/inc/wpems-core-functions.php:396
|
601 |
+
msgid "Weeks"
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: trunk/inc/wpems-core-functions.php:397
|
605 |
+
msgid "Days"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: trunk/inc/wpems-core-functions.php:398
|
609 |
+
msgid "Hours"
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: trunk/inc/wpems-core-functions.php:399
|
613 |
+
msgid "Minutes"
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: trunk/inc/wpems-core-functions.php:400
|
617 |
+
msgid "Seconds"
|
618 |
+
msgstr ""
|
619 |
+
|
620 |
+
#: trunk/inc/wpems-core-functions.php:403
|
621 |
+
msgid "Year"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: trunk/inc/wpems-core-functions.php:404
|
625 |
+
msgid "Month"
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: trunk/inc/wpems-core-functions.php:405
|
629 |
+
msgid "Week"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: trunk/inc/wpems-core-functions.php:406
|
633 |
+
msgid "Day"
|
634 |
+
msgstr ""
|
635 |
+
|
636 |
+
#: trunk/inc/wpems-core-functions.php:407
|
637 |
+
msgid "Hour"
|
638 |
+
msgstr ""
|
639 |
+
|
640 |
+
#: trunk/inc/wpems-core-functions.php:408
|
641 |
+
msgid "Minute"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: trunk/inc/wpems-core-functions.php:409
|
645 |
+
msgid "Second"
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: trunk/inc/wpems-core-functions.php:413
|
649 |
+
msgid "Something went wrong"
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: trunk/inc/wpems-core-functions.php:1007
|
653 |
+
#: trunk/inc/wpems-core-functions.php:1036
|
654 |
+
#, php-format
|
655 |
+
msgid "<span class=\"event_booking_status cancelled\">%s</span>"
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: trunk/inc/wpems-core-functions.php:1011
|
659 |
+
#: trunk/inc/wpems-core-functions.php:1037
|
660 |
+
#, php-format
|
661 |
+
msgid "<span class=\"event_booking_status pending\">%s</span>"
|
662 |
+
msgstr ""
|
663 |
+
|
664 |
+
#: trunk/inc/wpems-core-functions.php:1015
|
665 |
+
#: trunk/inc/wpems-core-functions.php:1038
|
666 |
+
#, php-format
|
667 |
+
msgid "<span class=\"event_booking_status processing\">%s</span>"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: trunk/inc/wpems-core-functions.php:1019
|
671 |
+
#: trunk/inc/wpems-core-functions.php:1039
|
672 |
+
#, php-format
|
673 |
+
msgid "<span class=\"event_booking_status completed\">%s</span>"
|
674 |
+
msgstr ""
|
675 |
+
|
676 |
+
#: trunk/inc/wpems-core-functions.php:1036
|
677 |
+
msgid "Cancelled"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: trunk/inc/wpems-core-functions.php:1037
|
681 |
+
msgid "Pending"
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: trunk/inc/wpems-core-functions.php:1038
|
685 |
+
msgid "Processing"
|
686 |
+
msgstr ""
|
687 |
+
|
688 |
+
#: trunk/inc/wpems-core-functions.php:1039
|
689 |
+
msgid "Completed"
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: trunk/inc/wpems-core-functions.php:1079
|
693 |
+
msgid "Confirm Password is not match."
|
694 |
+
msgstr ""
|
695 |
+
|
696 |
+
#: trunk/inc/wpems-core-functions.php:1086
|
697 |
+
#: trunk/inc/wpems-core-functions.php:1095
|
698 |
+
#: trunk/inc/wpems-core-functions.php:1097
|
699 |
+
#: trunk/inc/wpems-core-functions.php:1101
|
700 |
+
#: trunk/inc/wpems-core-functions.php:1120
|
701 |
+
msgid "ERROR: "
|
702 |
+
msgstr ""
|
703 |
+
|
704 |
+
#: trunk/inc/wpems-core-functions.php:1086
|
705 |
+
msgid "Username is required field."
|
706 |
+
msgstr ""
|
707 |
+
|
708 |
+
#: trunk/inc/wpems-core-functions.php:1088
|
709 |
+
msgid "Username is already exists."
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: trunk/inc/wpems-core-functions.php:1095
|
713 |
+
msgid "Please provide a valid email address."
|
714 |
+
msgstr ""
|
715 |
+
|
716 |
+
#: trunk/inc/wpems-core-functions.php:1097
|
717 |
+
msgid "An account is already registered with your email address. Please login."
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: trunk/inc/wpems-core-functions.php:1101
|
721 |
+
msgid "Password is required field."
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: trunk/inc/wpems-core-functions.php:1120
|
725 |
+
msgid "Couldn't register."
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: trunk/inc/wpems-core-functions.php:1233
|
729 |
+
msgid "Categories"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: trunk/inc/abstracts/class-wpems-abstract-payment-gateway.php:105
|
733 |
+
msgid "Payment completed. We will send you email when payment method verify."
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: trunk/inc/admin/class-wpems-admin-menu.php:33
|
737 |
+
msgid "Events Manager"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: trunk/inc/admin/class-wpems-admin-menu.php:39
|
741 |
+
msgid "TP Event Users"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: trunk/inc/admin/class-wpems-admin-menu.php:39
|
745 |
+
msgid "Users"
|
746 |
+
msgstr ""
|
747 |
+
|
748 |
+
#: trunk/inc/admin/class-wpems-admin-menu.php:40
|
749 |
+
msgid "TP Event Settings"
|
750 |
+
msgstr ""
|
751 |
+
|
752 |
+
#: trunk/inc/admin/class-wpems-admin-menu.php:40
|
753 |
+
msgid "Settings"
|
754 |
+
msgstr ""
|
755 |
+
|
756 |
+
#: trunk/inc/admin/class-wpems-admin-metaboxes.php:24
|
757 |
+
msgid "Event Settings"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: trunk/inc/admin/class-wpems-admin-metaboxes.php:27
|
761 |
+
msgid "Booking Information"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: trunk/inc/admin/class-wpems-admin-metaboxes.php:30
|
765 |
+
msgid "Booking Actions"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: trunk/inc/admin/class-wpems-admin-settings.php:58
|
769 |
+
msgid "Your settings have been saved."
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: trunk/inc/admin/class-wpems-admin-settings.php:93
|
773 |
+
msgid "Save changes"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:22
|
777 |
+
msgid "user"
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:23
|
781 |
+
msgid "users"
|
782 |
+
msgstr ""
|
783 |
+
|
784 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:69
|
785 |
+
msgid "View"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:80
|
789 |
+
msgid "No users found."
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:112
|
793 |
+
#: trunk/templates/shortcodes/form-login.php:13
|
794 |
+
#: trunk/templates/shortcodes/form-register.php:12
|
795 |
+
msgid "Username"
|
796 |
+
msgstr ""
|
797 |
+
|
798 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:113
|
799 |
+
msgid "Name"
|
800 |
+
msgstr ""
|
801 |
+
|
802 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:114
|
803 |
+
#: trunk/templates/shortcodes/form-register.php:17
|
804 |
+
msgid "Email"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:115
|
808 |
+
msgid "Event Booking"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: trunk/inc/admin/class-wpems-admin-users.php:242
|
812 |
+
msgid "Event Users"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: trunk/inc/admin/metaboxes/class-wpems-admin-metabox-event.php:27
|
816 |
+
msgid "Please make sure event time is validate"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:23
|
820 |
+
msgid "Checkout"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:40
|
824 |
+
msgid "Checkout Process"
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:41
|
828 |
+
msgid "General options for system"
|
829 |
+
msgstr ""
|
830 |
+
|
831 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:45
|
832 |
+
msgid "Booking times free event/email"
|
833 |
+
msgstr ""
|
834 |
+
|
835 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:46
|
836 |
+
msgid "This controls how many time booking free event of an email"
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:49
|
840 |
+
msgid "Once"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:50
|
844 |
+
msgid "Many"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:56
|
848 |
+
msgid "Cancel payment status"
|
849 |
+
msgstr ""
|
850 |
+
|
851 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:57
|
852 |
+
msgid "How long cancel a payment (hour)"
|
853 |
+
msgstr ""
|
854 |
+
|
855 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-checkout.php:77
|
856 |
+
msgid "Checkout General"
|
857 |
+
msgstr ""
|
858 |
+
|
859 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:23
|
860 |
+
msgid "Emails"
|
861 |
+
msgstr ""
|
862 |
+
|
863 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:40
|
864 |
+
msgid "Email Notifications"
|
865 |
+
msgstr ""
|
866 |
+
|
867 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:44
|
868 |
+
msgid "Event register"
|
869 |
+
msgstr ""
|
870 |
+
|
871 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:45
|
872 |
+
msgid "Send notify when user register event"
|
873 |
+
msgstr ""
|
874 |
+
|
875 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:51
|
876 |
+
msgid "From name"
|
877 |
+
msgstr ""
|
878 |
+
|
879 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:59
|
880 |
+
msgid "Email from"
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:67
|
884 |
+
msgid "Subject"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:68
|
888 |
+
msgid "Register event"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:75
|
892 |
+
msgid "Account register"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-emails.php:76
|
896 |
+
msgid "Send notify when user register account"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:23
|
900 |
+
msgid "General"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:41
|
904 |
+
msgid "General Options"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:45
|
908 |
+
msgid "Event registration"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:46
|
912 |
+
msgid "Allows user register events"
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:52
|
916 |
+
msgid "Currency"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:53
|
920 |
+
msgid "This controls what the currency prices"
|
921 |
+
msgstr ""
|
922 |
+
|
923 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:61
|
924 |
+
msgid "Currency Position"
|
925 |
+
msgstr ""
|
926 |
+
|
927 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:62
|
928 |
+
msgid "This controls the position of the currency symbol"
|
929 |
+
msgstr ""
|
930 |
+
|
931 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:65
|
932 |
+
msgid "Left"
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:66
|
936 |
+
msgid "Right"
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:67
|
940 |
+
msgid "Left with space"
|
941 |
+
msgstr ""
|
942 |
+
|
943 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:68
|
944 |
+
msgid "Right with space"
|
945 |
+
msgstr ""
|
946 |
+
|
947 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:75
|
948 |
+
msgid "Thousand Separator"
|
949 |
+
msgstr ""
|
950 |
+
|
951 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:82
|
952 |
+
msgid "Decimal Separator"
|
953 |
+
msgstr ""
|
954 |
+
|
955 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:89
|
956 |
+
msgid "Number of Decimals"
|
957 |
+
msgstr ""
|
958 |
+
|
959 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:97
|
960 |
+
msgid "Google Map API Key"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-general.php:99
|
964 |
+
msgid ""
|
965 |
+
"Refer on https://developers.google.com/maps/documentation/javascript/get-api-"
|
966 |
+
"key#get-an-api-key"
|
967 |
+
msgstr ""
|
968 |
+
|
969 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:27
|
970 |
+
msgid "Pages"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:47
|
974 |
+
msgid "Pages Settings"
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:51
|
978 |
+
msgid "Register Page"
|
979 |
+
msgstr ""
|
980 |
+
|
981 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:52
|
982 |
+
msgid "This controls which the register page"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:57
|
986 |
+
msgid "Login Page"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:58
|
990 |
+
msgid "This controls which the login page"
|
991 |
+
msgstr ""
|
992 |
+
|
993 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:63
|
994 |
+
#: trunk/templates/shortcodes/form-login.php:43
|
995 |
+
msgid "Forgot Password"
|
996 |
+
msgstr ""
|
997 |
+
|
998 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:64
|
999 |
+
msgid "This controls which the forgot password page"
|
1000 |
+
msgstr ""
|
1001 |
+
|
1002 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:69
|
1003 |
+
#: trunk/templates/shortcodes/reset-password.php:55
|
1004 |
+
msgid "Reset Password"
|
1005 |
+
msgstr ""
|
1006 |
+
|
1007 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:70
|
1008 |
+
msgid "This controls which the reset password page"
|
1009 |
+
msgstr ""
|
1010 |
+
|
1011 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:75
|
1012 |
+
msgid "My Account"
|
1013 |
+
msgstr ""
|
1014 |
+
|
1015 |
+
#: trunk/inc/admin/settings/class-wpems-admin-setting-pages.php:76
|
1016 |
+
msgid "This controls which the user account page"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: trunk/inc/admin/views/metaboxes/booking-actions.php:17
|
1020 |
+
msgid "Booking Status"
|
1021 |
+
msgstr ""
|
1022 |
+
|
1023 |
+
#: trunk/inc/admin/views/metaboxes/booking-actions.php:23
|
1024 |
+
msgid "Update booking event status"
|
1025 |
+
msgstr ""
|
1026 |
+
|
1027 |
+
#: trunk/inc/admin/views/metaboxes/booking-actions.php:26
|
1028 |
+
msgid "Booking Notes"
|
1029 |
+
msgstr ""
|
1030 |
+
|
1031 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:34
|
1032 |
+
#, php-format
|
1033 |
+
msgid "Order %s"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:36
|
1037 |
+
#, php-format
|
1038 |
+
msgid "Date %s"
|
1039 |
+
msgstr ""
|
1040 |
+
|
1041 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:45
|
1042 |
+
msgid "Item"
|
1043 |
+
msgstr ""
|
1044 |
+
|
1045 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:48
|
1046 |
+
#: trunk/templates/emails/register-event.php:26
|
1047 |
+
msgid "Payment Method"
|
1048 |
+
msgstr ""
|
1049 |
+
|
1050 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:49
|
1051 |
+
msgid "Amount"
|
1052 |
+
msgstr ""
|
1053 |
+
|
1054 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:58
|
1055 |
+
#: trunk/templates/emails/register-event.php:37
|
1056 |
+
#: trunk/templates/shortcodes/user-account.php:38
|
1057 |
+
msgid "No payment"
|
1058 |
+
msgstr ""
|
1059 |
+
|
1060 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:64
|
1061 |
+
msgid "Sub Total"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: trunk/inc/admin/views/metaboxes/booking-details.php:68
|
1065 |
+
msgid "Total"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:41
|
1069 |
+
msgid "Set 0 to make it becomes free event"
|
1070 |
+
msgstr ""
|
1071 |
+
|
1072 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:47
|
1073 |
+
msgid "Start/End"
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:54
|
1077 |
+
msgid "to"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:65
|
1081 |
+
msgid "Location"
|
1082 |
+
msgstr ""
|
1083 |
+
|
1084 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:70
|
1085 |
+
msgid "You need set up Google Map API Key to show map."
|
1086 |
+
msgstr ""
|
1087 |
+
|
1088 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:71
|
1089 |
+
msgid "Set up here"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: trunk/inc/admin/views/metaboxes/event-settings.php:77
|
1093 |
+
msgid "Shortcode"
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: trunk/inc/admin/views/settings/select-page.php:25
|
1097 |
+
msgid "Select Page"
|
1098 |
+
msgstr ""
|
1099 |
+
|
1100 |
+
#: trunk/inc/emails/class-wpems-register-event.php:25
|
1101 |
+
#, php-format
|
1102 |
+
msgid "Error %s booking ID"
|
1103 |
+
msgstr ""
|
1104 |
+
|
1105 |
+
#: trunk/inc/emails/class-wpems-register-event.php:37
|
1106 |
+
msgid "User is not exists!"
|
1107 |
+
msgstr ""
|
1108 |
+
|
1109 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:25
|
1110 |
+
msgid "PayPal"
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:68
|
1114 |
+
msgid ""
|
1115 |
+
"Payment is completed. We will send you email when payment status is completed"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:70
|
1119 |
+
msgid "Booking is cancel."
|
1120 |
+
msgstr ""
|
1121 |
+
|
1122 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:139
|
1123 |
+
msgid "Paypal Settings"
|
1124 |
+
msgstr ""
|
1125 |
+
|
1126 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:140
|
1127 |
+
msgid "Make payment via Paypal"
|
1128 |
+
msgstr ""
|
1129 |
+
|
1130 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:144
|
1131 |
+
msgid "Enable"
|
1132 |
+
msgstr ""
|
1133 |
+
|
1134 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:151
|
1135 |
+
msgid "Paypal email"
|
1136 |
+
msgstr ""
|
1137 |
+
|
1138 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:158
|
1139 |
+
msgid "Sandbox mode"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:165
|
1143 |
+
msgid "Paypal Sandbox email"
|
1144 |
+
msgstr ""
|
1145 |
+
|
1146 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:200
|
1147 |
+
msgid "Booking ID is not exists!"
|
1148 |
+
msgstr ""
|
1149 |
+
|
1150 |
+
#: trunk/inc/gateways/paypal/class-wpems-payment-gateway-paypal.php:242
|
1151 |
+
msgid ""
|
1152 |
+
"Email Business PayPal is invalid. Please contact administrator to setup "
|
1153 |
+
"PayPal email."
|
1154 |
+
msgstr ""
|
1155 |
+
|
1156 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:14
|
1157 |
+
msgid "WP Event Countdown"
|
1158 |
+
msgstr ""
|
1159 |
+
|
1160 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:15
|
1161 |
+
msgid "Countdown timer for event"
|
1162 |
+
msgstr ""
|
1163 |
+
|
1164 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:71
|
1165 |
+
msgid "Title:"
|
1166 |
+
msgstr ""
|
1167 |
+
|
1168 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:75
|
1169 |
+
msgid "Carousel Slide:"
|
1170 |
+
msgstr ""
|
1171 |
+
|
1172 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:79
|
1173 |
+
msgid "Navigation:"
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:83
|
1177 |
+
msgid "Pagiantion:"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#: trunk/inc/widgets/class-wpems-widget-countdown.php:87
|
1181 |
+
msgid "Events:"
|
1182 |
+
msgstr ""
|
1183 |
+
|
1184 |
+
#: trunk/templates/emails/register-event.php:11
|
1185 |
+
#, php-format
|
1186 |
+
msgid "Hello %s!"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#: trunk/templates/emails/register-event.php:14
|
1190 |
+
#, php-format
|
1191 |
+
msgid ""
|
1192 |
+
"You have been registered successful our <a href=\"%s\">event</a>. Please go "
|
1193 |
+
"to the following link for more details.<a href=\"%s\">Your account.</a>"
|
1194 |
+
msgstr ""
|
1195 |
+
|
1196 |
+
#: trunk/templates/emails/register-event.php:23
|
1197 |
+
#: trunk/templates/shortcodes/user-account.php:22
|
1198 |
+
msgid "Type"
|
1199 |
+
msgstr ""
|
1200 |
+
|
1201 |
+
#: trunk/templates/loop/booking-form.php:41
|
1202 |
+
msgid ""
|
1203 |
+
"There are no payment gateway available. Please contact administrator to "
|
1204 |
+
"setup it."
|
1205 |
+
msgstr ""
|
1206 |
+
|
1207 |
+
#: trunk/templates/loop/booking-form.php:50
|
1208 |
+
#: trunk/templates/loop/register.php:35
|
1209 |
+
msgid "Register Now"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: trunk/templates/loop/countdown.php:16
|
1213 |
+
msgid "This event has expired"
|
1214 |
+
msgstr ""
|
1215 |
+
|
1216 |
+
#: trunk/templates/loop/excerpt.php:12
|
1217 |
+
msgid "View Detail"
|
1218 |
+
msgstr ""
|
1219 |
+
|
1220 |
+
#: trunk/templates/loop/register.php:22
|
1221 |
+
msgid "Total Slot:"
|
1222 |
+
msgstr ""
|
1223 |
+
|
1224 |
+
#: trunk/templates/loop/register.php:26
|
1225 |
+
msgid "Booked Slot:"
|
1226 |
+
msgstr ""
|
1227 |
+
|
1228 |
+
#: trunk/templates/loop/register.php:30
|
1229 |
+
msgid "Cost:"
|
1230 |
+
msgstr ""
|
1231 |
+
|
1232 |
+
#: trunk/templates/shortcodes/event-countdown.php:26
|
1233 |
+
msgid "Invalid Event ID"
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: trunk/templates/shortcodes/forgot-password.php:20
|
1237 |
+
msgid ""
|
1238 |
+
"Please enter your username or email address. You will receive a link to "
|
1239 |
+
"create a new password via email."
|
1240 |
+
msgstr ""
|
1241 |
+
|
1242 |
+
#: trunk/templates/shortcodes/forgot-password.php:23
|
1243 |
+
msgid "Username or Email:"
|
1244 |
+
msgstr ""
|
1245 |
+
|
1246 |
+
#: trunk/templates/shortcodes/forgot-password.php:36
|
1247 |
+
msgid "Get New Password"
|
1248 |
+
msgstr ""
|
1249 |
+
|
1250 |
+
#: trunk/templates/shortcodes/forgot-password.php:43
|
1251 |
+
#: trunk/templates/shortcodes/form-login.php:34
|
1252 |
+
msgid "Login"
|
1253 |
+
msgstr ""
|
1254 |
+
|
1255 |
+
#: trunk/templates/shortcodes/forgot-password.php:48
|
1256 |
+
msgid "Create new user"
|
1257 |
+
msgstr ""
|
1258 |
+
|
1259 |
+
#: trunk/templates/shortcodes/form-login.php:18
|
1260 |
+
#: trunk/templates/shortcodes/form-register.php:22
|
1261 |
+
#: trunk/templates/shortcodes/reset-password.php:19
|
1262 |
+
msgid "Password"
|
1263 |
+
msgstr ""
|
1264 |
+
|
1265 |
+
#: trunk/templates/shortcodes/form-login.php:26
|
1266 |
+
msgid "Remember me"
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: trunk/templates/shortcodes/form-login.php:41
|
1270 |
+
#: trunk/templates/shortcodes/form-register.php:43
|
1271 |
+
#: trunk/templates/shortcodes/reset-password.php:65
|
1272 |
+
msgid "Register"
|
1273 |
+
msgstr ""
|
1274 |
+
|
1275 |
+
#: trunk/templates/shortcodes/form-register.php:27
|
1276 |
+
#: trunk/templates/shortcodes/reset-password.php:31
|
1277 |
+
msgid "Confirm Password"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: trunk/templates/shortcodes/form-register.php:36
|
1281 |
+
msgid "Registration confirmation will be emailed to you."
|
1282 |
+
msgstr ""
|
1283 |
+
|
1284 |
+
#: trunk/templates/shortcodes/form-register.php:49
|
1285 |
+
#: trunk/templates/shortcodes/reset-password.php:61
|
1286 |
+
msgid "Log in"
|
1287 |
+
msgstr ""
|
1288 |
+
|
1289 |
+
#: trunk/templates/shortcodes/form-register.php:50
|
1290 |
+
msgid "Password Lost and Found"
|
1291 |
+
msgstr ""
|
1292 |
+
|
1293 |
+
#: trunk/templates/shortcodes/form-register.php:50
|
1294 |
+
msgid "Forgot password?"
|
1295 |
+
msgstr ""
|
1296 |
+
|
1297 |
+
#: trunk/templates/shortcodes/register-completed.php:9
|
1298 |
+
#, php-format
|
1299 |
+
msgid ""
|
1300 |
+
"You have successfully registered to <strong>%s</strong>. We have emailed "
|
1301 |
+
"your password to <i>%s</i> the email address you entered."
|
1302 |
+
msgstr ""
|
1303 |
+
|
1304 |
+
#: trunk/templates/shortcodes/register-error.php:7
|
1305 |
+
msgid "Oops! Something went wrong."
|
1306 |
+
msgstr ""
|
1307 |
+
|
1308 |
+
#: trunk/templates/shortcodes/user-account.php:11
|
1309 |
+
#, php-format
|
1310 |
+
msgid "You are not <a href=\"%s\">login</a>"
|
1311 |
+
msgstr ""
|
1312 |
+
|
1313 |
+
#: trunk/templates/shortcodes/user-account.php:20
|
1314 |
+
msgid "Booking ID"
|
1315 |
+
msgstr ""
|
1316 |
+
|
1317 |
+
#: trunk/templates/shortcodes/user-account.php:25
|
1318 |
+
msgid "Method"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: trunk/templates/shortcodes/user-account.php:56
|
1322 |
+
#: trunk/templates/shortcodes/user-account.php:68
|
1323 |
+
msgid "« Previous"
|
1324 |
+
msgstr ""
|
1325 |
+
|
1326 |
+
#: trunk/templates/shortcodes/user-account.php:57
|
1327 |
+
#: trunk/templates/shortcodes/user-account.php:69
|
1328 |
+
msgid "Next »"
|
1329 |
+
msgstr ""
|
1330 |
+
|
1331 |
+
#: trunk/templates/shortcodes/user-cannot-register.php:7
|
1332 |
+
msgid "User registration is currently not allowed."
|
1333 |
+
msgstr ""
|
license.txt
ADDED
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 2, June 1991
|
3 |
+
|
4 |
+
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
5 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
6 |
+
Everyone is permitted to copy and distribute verbatim copies
|
7 |
+
of this license document, but changing it is not allowed.
|
8 |
+
|
9 |
+
Preamble
|
10 |
+
|
11 |
+
The licenses for most software are designed to take away your
|
12 |
+
freedom to share and change it. By contrast, the GNU General Public
|
13 |
+
License is intended to guarantee your freedom to share and change free
|
14 |
+
software--to make sure the software is free for all its users. This
|
15 |
+
General Public License applies to most of the Free Software
|
16 |
+
Foundation's software and to any other program whose authors commit to
|
17 |
+
using it. (Some other Free Software Foundation software is covered by
|
18 |
+
the GNU Lesser General Public License instead.) You can apply it to
|
19 |
+
your programs, too.
|
20 |
+
|
21 |
+
When we speak of free software, we are referring to freedom, not
|
22 |
+
price. Our General Public Licenses are designed to make sure that you
|
23 |
+
have the freedom to distribute copies of free software (and charge for
|
24 |
+
this service if you wish), that you receive source code or can get it
|
25 |
+
if you want it, that you can change the software or use pieces of it
|
26 |
+
in new free programs; and that you know you can do these things.
|
27 |
+
|
28 |
+
To protect your rights, we need to make restrictions that forbid
|
29 |
+
anyone to deny you these rights or to ask you to surrender the rights.
|
30 |
+
These restrictions translate to certain responsibilities for you if you
|
31 |
+
distribute copies of the software, or if you modify it.
|
32 |
+
|
33 |
+
For example, if you distribute copies of such a program, whether
|
34 |
+
gratis or for a fee, you must give the recipients all the rights that
|
35 |
+
you have. You must make sure that they, too, receive or can get the
|
36 |
+
source code. And you must show them these terms so they know their
|
37 |
+
rights.
|
38 |
+
|
39 |
+
We protect your rights with two steps: (1) copyright the software, and
|
40 |
+
(2) offer you this license which gives you legal permission to copy,
|
41 |
+
distribute and/or modify the software.
|
42 |
+
|
43 |
+
Also, for each author's protection and ours, we want to make certain
|
44 |
+
that everyone understands that there is no warranty for this free
|
45 |
+
software. If the software is modified by someone else and passed on, we
|
46 |
+
want its recipients to know that what they have is not the original, so
|
47 |
+
that any problems introduced by others will not reflect on the original
|
48 |
+
authors' reputations.
|
49 |
+
|
50 |
+
Finally, any free program is threatened constantly by software
|
51 |
+
patents. We wish to avoid the danger that redistributors of a free
|
52 |
+
program will individually obtain patent licenses, in effect making the
|
53 |
+
program proprietary. To prevent this, we have made it clear that any
|
54 |
+
patent must be licensed for everyone's free use or not licensed at all.
|
55 |
+
|
56 |
+
The precise terms and conditions for copying, distribution and
|
57 |
+
modification follow.
|
58 |
+
|
59 |
+
GNU GENERAL PUBLIC LICENSE
|
60 |
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
61 |
+
|
62 |
+
0. This License applies to any program or other work which contains
|
63 |
+
a notice placed by the copyright holder saying it may be distributed
|
64 |
+
under the terms of this General Public License. The "Program", below,
|
65 |
+
refers to any such program or work, and a "work based on the Program"
|
66 |
+
means either the Program or any derivative work under copyright law:
|
67 |
+
that is to say, a work containing the Program or a portion of it,
|
68 |
+
either verbatim or with modifications and/or translated into another
|
69 |
+
language. (Hereinafter, translation is included without limitation in
|
70 |
+
the term "modification".) Each licensee is addressed as "you".
|
71 |
+
|
72 |
+
Activities other than copying, distribution and modification are not
|
73 |
+
covered by this License; they are outside its scope. The act of
|
74 |
+
running the Program is not restricted, and the output from the Program
|
75 |
+
is covered only if its contents constitute a work based on the
|
76 |
+
Program (independent of having been made by running the Program).
|
77 |
+
Whether that is true depends on what the Program does.
|
78 |
+
|
79 |
+
1. You may copy and distribute verbatim copies of the Program's
|
80 |
+
source code as you receive it, in any medium, provided that you
|
81 |
+
conspicuously and appropriately publish on each copy an appropriate
|
82 |
+
copyright notice and disclaimer of warranty; keep intact all the
|
83 |
+
notices that refer to this License and to the absence of any warranty;
|
84 |
+
and give any other recipients of the Program a copy of this License
|
85 |
+
along with the Program.
|
86 |
+
|
87 |
+
You may charge a fee for the physical act of transferring a copy, and
|
88 |
+
you may at your option offer warranty protection in exchange for a fee.
|
89 |
+
|
90 |
+
2. You may modify your copy or copies of the Program or any portion
|
91 |
+
of it, thus forming a work based on the Program, and copy and
|
92 |
+
distribute such modifications or work under the terms of Section 1
|
93 |
+
above, provided that you also meet all of these conditions:
|
94 |
+
|
95 |
+
a) You must cause the modified files to carry prominent notices
|
96 |
+
stating that you changed the files and the date of any change.
|
97 |
+
|
98 |
+
b) You must cause any work that you distribute or publish, that in
|
99 |
+
whole or in part contains or is derived from the Program or any
|
100 |
+
part thereof, to be licensed as a whole at no charge to all third
|
101 |
+
parties under the terms of this License.
|
102 |
+
|
103 |
+
c) If the modified program normally reads commands interactively
|
104 |
+
when run, you must cause it, when started running for such
|
105 |
+
interactive use in the most ordinary way, to print or display an
|
106 |
+
announcement including an appropriate copyright notice and a
|
107 |
+
notice that there is no warranty (or else, saying that you provide
|
108 |
+
a warranty) and that users may redistribute the program under
|
109 |
+
these conditions, and telling the user how to view a copy of this
|
110 |
+
License. (Exception: if the Program itself is interactive but
|
111 |
+
does not normally print such an announcement, your work based on
|
112 |
+
the Program is not required to print an announcement.)
|
113 |
+
|
114 |
+
These requirements apply to the modified work as a whole. If
|
115 |
+
identifiable sections of that work are not derived from the Program,
|
116 |
+
and can be reasonably considered independent and separate works in
|
117 |
+
themselves, then this License, and its terms, do not apply to those
|
118 |
+
sections when you distribute them as separate works. But when you
|
119 |
+
distribute the same sections as part of a whole which is a work based
|
120 |
+
on the Program, the distribution of the whole must be on the terms of
|
121 |
+
this License, whose permissions for other licensees extend to the
|
122 |
+
entire whole, and thus to each and every part regardless of who wrote it.
|
123 |
+
|
124 |
+
Thus, it is not the intent of this section to claim rights or contest
|
125 |
+
your rights to work written entirely by you; rather, the intent is to
|
126 |
+
exercise the right to control the distribution of derivative or
|
127 |
+
collective works based on the Program.
|
128 |
+
|
129 |
+
In addition, mere aggregation of another work not based on the Program
|
130 |
+
with the Program (or with a work based on the Program) on a volume of
|
131 |
+
a storage or distribution medium does not bring the other work under
|
132 |
+
the scope of this License.
|
133 |
+
|
134 |
+
3. You may copy and distribute the Program (or a work based on it,
|
135 |
+
under Section 2) in object code or executable form under the terms of
|
136 |
+
Sections 1 and 2 above provided that you also do one of the following:
|
137 |
+
|
138 |
+
a) Accompany it with the complete corresponding machine-readable
|
139 |
+
source code, which must be distributed under the terms of Sections
|
140 |
+
1 and 2 above on a medium customarily used for software interchange; or,
|
141 |
+
|
142 |
+
b) Accompany it with a written offer, valid for at least three
|
143 |
+
years, to give any third party, for a charge no more than your
|
144 |
+
cost of physically performing source distribution, a complete
|
145 |
+
machine-readable copy of the corresponding source code, to be
|
146 |
+
distributed under the terms of Sections 1 and 2 above on a medium
|
147 |
+
customarily used for software interchange; or,
|
148 |
+
|
149 |
+
c) Accompany it with the information you received as to the offer
|
150 |
+
to distribute corresponding source code. (This alternative is
|
151 |
+
allowed only for noncommercial distribution and only if you
|
152 |
+
received the program in object code or executable form with such
|
153 |
+
an offer, in accord with Subsection b above.)
|
154 |
+
|
155 |
+
The source code for a work means the preferred form of the work for
|
156 |
+
making modifications to it. For an executable work, complete source
|
157 |
+
code means all the source code for all modules it contains, plus any
|
158 |
+
associated interface definition files, plus the scripts used to
|
159 |
+
control compilation and installation of the executable. However, as a
|
160 |
+
special exception, the source code distributed need not include
|
161 |
+
anything that is normally distributed (in either source or binary
|
162 |
+
form) with the major components (compiler, kernel, and so on) of the
|
163 |
+
operating system on which the executable runs, unless that component
|
164 |
+
itself accompanies the executable.
|
165 |
+
|
166 |
+
If distribution of executable or object code is made by offering
|
167 |
+
access to copy from a designated place, then offering equivalent
|
168 |
+
access to copy the source code from the same place counts as
|
169 |
+
distribution of the source code, even though third parties are not
|
170 |
+
compelled to copy the source along with the object code.
|
171 |
+
|
172 |
+
4. You may not copy, modify, sublicense, or distribute the Program
|
173 |
+
except as expressly provided under this License. Any attempt
|
174 |
+
otherwise to copy, modify, sublicense or distribute the Program is
|
175 |
+
void, and will automatically terminate your rights under this License.
|
176 |
+
However, parties who have received copies, or rights, from you under
|
177 |
+
this License will not have their licenses terminated so long as such
|
178 |
+
parties remain in full compliance.
|
179 |
+
|
180 |
+
5. You are not required to accept this License, since you have not
|
181 |
+
signed it. However, nothing else grants you permission to modify or
|
182 |
+
distribute the Program or its derivative works. These actions are
|
183 |
+
prohibited by law if you do not accept this License. Therefore, by
|
184 |
+
modifying or distributing the Program (or any work based on the
|
185 |
+
Program), you indicate your acceptance of this License to do so, and
|
186 |
+
all its terms and conditions for copying, distributing or modifying
|
187 |
+
the Program or works based on it.
|
188 |
+
|
189 |
+
6. Each time you redistribute the Program (or any work based on the
|
190 |
+
Program), the recipient automatically receives a license from the
|
191 |
+
original licensor to copy, distribute or modify the Program subject to
|
192 |
+
these terms and conditions. You may not impose any further
|
193 |
+
restrictions on the recipients' exercise of the rights granted herein.
|
194 |
+
You are not responsible for enforcing compliance by third parties to
|
195 |
+
this License.
|
196 |
+
|
197 |
+
7. If, as a consequence of a court judgment or allegation of patent
|
198 |
+
infringement or for any other reason (not limited to patent issues),
|
199 |
+
conditions are imposed on you (whether by court order, agreement or
|
200 |
+
otherwise) that contradict the conditions of this License, they do not
|
201 |
+
excuse you from the conditions of this License. If you cannot
|
202 |
+
distribute so as to satisfy simultaneously your obligations under this
|
203 |
+
License and any other pertinent obligations, then as a consequence you
|
204 |
+
may not distribute the Program at all. For example, if a patent
|
205 |
+
license would not permit royalty-free redistribution of the Program by
|
206 |
+
all those who receive copies directly or indirectly through you, then
|
207 |
+
the only way you could satisfy both it and this License would be to
|
208 |
+
refrain entirely from distribution of the Program.
|
209 |
+
|
210 |
+
If any portion of this section is held invalid or unenforceable under
|
211 |
+
any particular circumstance, the balance of the section is intended to
|
212 |
+
apply and the section as a whole is intended to apply in other
|
213 |
+
circumstances.
|
214 |
+
|
215 |
+
It is not the purpose of this section to induce you to infringe any
|
216 |
+
patents or other property right claims or to contest validity of any
|
217 |
+
such claims; this section has the sole purpose of protecting the
|
218 |
+
integrity of the free software distribution system, which is
|
219 |
+
implemented by public license practices. Many people have made
|
220 |
+
generous contributions to the wide range of software distributed
|
221 |
+
through that system in reliance on consistent application of that
|
222 |
+
system; it is up to the author/donor to decide if he or she is willing
|
223 |
+
to distribute software through any other system and a licensee cannot
|
224 |
+
impose that choice.
|
225 |
+
|
226 |
+
This section is intended to make thoroughly clear what is believed to
|
227 |
+
be a consequence of the rest of this License.
|
228 |
+
|
229 |
+
8. If the distribution and/or use of the Program is restricted in
|
230 |
+
certain countries either by patents or by copyrighted interfaces, the
|
231 |
+
original copyright holder who places the Program under this License
|
232 |
+
may add an explicit geographical distribution limitation excluding
|
233 |
+
those countries, so that distribution is permitted only in or among
|
234 |
+
countries not thus excluded. In such case, this License incorporates
|
235 |
+
the limitation as if written in the body of this License.
|
236 |
+
|
237 |
+
9. The Free Software Foundation may publish revised and/or new versions
|
238 |
+
of the General Public License from time to time. Such new versions will
|
239 |
+
be similar in spirit to the present version, but may differ in detail to
|
240 |
+
address new problems or concerns.
|
241 |
+
|
242 |
+
Each version is given a distinguishing version number. If the Program
|
243 |
+
specifies a version number of this License which applies to it and "any
|
244 |
+
later version", you have the option of following the terms and conditions
|
245 |
+
either of that version or of any later version published by the Free
|
246 |
+
Software Foundation. If the Program does not specify a version number of
|
247 |
+
this License, you may choose any version ever published by the Free Software
|
248 |
+
Foundation.
|
249 |
+
|
250 |
+
10. If you wish to incorporate parts of the Program into other free
|
251 |
+
programs whose distribution conditions are different, write to the author
|
252 |
+
to ask for permission. For software which is copyrighted by the Free
|
253 |
+
Software Foundation, write to the Free Software Foundation; we sometimes
|
254 |
+
make exceptions for this. Our decision will be guided by the two goals
|
255 |
+
of preserving the free status of all derivatives of our free software and
|
256 |
+
of promoting the sharing and reuse of software generally.
|
257 |
+
|
258 |
+
NO WARRANTY
|
259 |
+
|
260 |
+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
261 |
+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
262 |
+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
263 |
+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
264 |
+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
265 |
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
266 |
+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
267 |
+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
268 |
+
REPAIR OR CORRECTION.
|
269 |
+
|
270 |
+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
271 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
272 |
+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
273 |
+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
274 |
+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
275 |
+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276 |
+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277 |
+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278 |
+
POSSIBILITY OF SUCH DAMAGES.
|
279 |
+
|
280 |
+
END OF TERMS AND CONDITIONS
|
281 |
+
|
282 |
+
How to Apply These Terms to Your New Programs
|
283 |
+
|
284 |
+
If you develop a new program, and you want it to be of the greatest
|
285 |
+
possible use to the public, the best way to achieve this is to make it
|
286 |
+
free software which everyone can redistribute and change under these terms.
|
287 |
+
|
288 |
+
To do so, attach the following notices to the program. It is safest
|
289 |
+
to attach them to the start of each source file to most effectively
|
290 |
+
convey the exclusion of warranty; and each file should have at least
|
291 |
+
the "copyright" line and a pointer to where the full notice is found.
|
292 |
+
|
293 |
+
<one line to give the program's name and a brief idea of what it does.>
|
294 |
+
Copyright (C) <year> <name of author>
|
295 |
+
|
296 |
+
This program is free software; you can redistribute it and/or modify
|
297 |
+
it under the terms of the GNU General Public License as published by
|
298 |
+
the Free Software Foundation; either version 2 of the License, or
|
299 |
+
(at your option) any later version.
|
300 |
+
|
301 |
+
This program is distributed in the hope that it will be useful,
|
302 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
303 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
304 |
+
GNU General Public License for more details.
|
305 |
+
|
306 |
+
You should have received a copy of the GNU General Public License along
|
307 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
308 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
309 |
+
|
310 |
+
Also add information on how to contact you by electronic and paper mail.
|
311 |
+
|
312 |
+
If the program is interactive, make it output a short notice like this
|
313 |
+
when it starts in an interactive mode:
|
314 |
+
|
315 |
+
Gnomovision version 69, Copyright (C) year name of author
|
316 |
+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
317 |
+
This is free software, and you are welcome to redistribute it
|
318 |
+
under certain conditions; type `show c' for details.
|
319 |
+
|
320 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
321 |
+
parts of the General Public License. Of course, the commands you use may
|
322 |
+
be called something other than `show w' and `show c'; they could even be
|
323 |
+
mouse-clicks or menu items--whatever suits your program.
|
324 |
+
|
325 |
+
You should also get your employer (if you work as a programmer) or your
|
326 |
+
school, if any, to sign a "copyright disclaimer" for the program, if
|
327 |
+
necessary. Here is a sample; alter the names:
|
328 |
+
|
329 |
+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
330 |
+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
331 |
+
|
332 |
+
<signature of Ty Coon>, 1 April 1989
|
333 |
+
Ty Coon, President of Vice
|
334 |
+
|
335 |
+
This General Public License does not permit incorporating your program into
|
336 |
+
proprietary programs. If your program is a subroutine library, you may
|
337 |
+
consider it more useful to permit linking proprietary applications with the
|
338 |
+
library. If this is what you want to do, use the GNU Lesser General
|
339 |
+
Public License instead of this License.
|
readme.txt
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== WP Events Manager ===
|
2 |
+
Contributors: thimpress, leehld
|
3 |
+
Donate link: https://thimpress.com/
|
4 |
+
Tags: event, event management, events, registration, bookings, tickets, locations, google maps
|
5 |
+
Requires at least: 4.6
|
6 |
+
Tested up to: 4.9.4
|
7 |
+
Stable tag: trunk
|
8 |
+
License: GPLv2 or later
|
9 |
+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
+
|
11 |
+
The all in one Events Manager for WordPress: create and manage events, sell event tickets online easily. No Coding Required.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
|
15 |
+
###What is WP Events Manager?###
|
16 |
+
|
17 |
+
WP Events Manager is a powerful Events Manager plugin with all of the most important features of an Event Website.
|
18 |
+
|
19 |
+
It helps you easier manage all of your events and even help you sell your tickets online.
|
20 |
+
|
21 |
+
###What can WP Events Manager do?###
|
22 |
+
|
23 |
+
* Set up events with:
|
24 |
+
* Quantity (number of tickets)
|
25 |
+
* Ticket Price
|
26 |
+
* Start date / End date
|
27 |
+
* Location (Google Map Integration)
|
28 |
+
* ShortCode - to embed into other posts, other places on your site.
|
29 |
+
* Featured Event Image, Event Category - Easily group and manage events
|
30 |
+
* Manage Users : Who join what event
|
31 |
+
* Currency manage: You can choose the currency of your own with Thousand separator, decimal separators and more.
|
32 |
+
* Send notify when user register events, send notification when user register accounts, ...
|
33 |
+
* Payment/Checkout option:
|
34 |
+
* Checkout with Paypal
|
35 |
+
* Set up Cancel Payment status
|
36 |
+
* Limit number of times people register
|
37 |
+
|
38 |
+
###WordPress Themes for Events###
|
39 |
+
|
40 |
+
To best use this theme, we suggest you use premium high quality themes made by ThimPress:
|
41 |
+
|
42 |
+
**[Best Education WordPress Theme](https://themeforest.net/item/education-wordpress-theme-education-wp/14058034?utm_source=wporg&utm_medium=wphotelbooking&ref=thimpress&utm_campaign=wphotelbooking)**
|
43 |
+
|
44 |
+
**[Best Theme for Coach, Mentor, Selling courses](https://themeforest.net/item/speaker-and-life-coach-wordpress-theme-coaching-wp/17097658?utm_source=wporg&utm_medium=wphotelbooking&ref=thimpress&utm_campaign=wphotelbooking)**
|
45 |
+
|
46 |
+
**[Best Hotel WordPress Theme](http://themeforest.net/item/hotel-wordpress-theme-sailing/13321455?utm_source=wporg&utm_medium=wphotelbooking&ref=thimpress&utm_campaign=wphotelbooking)**
|
47 |
+
|
48 |
+
|
49 |
+
###Connect with us###
|
50 |
+
To stay in touch and update about FundPress's future releases and features, you can connect with us via:
|
51 |
+
- [Facebook](https://www.facebook.com/ThimPress/)
|
52 |
+
- [Twitter](http://twitter.com/thimpress)
|
53 |
+
- [Website](http://thimpress.com/). On this website, we even have an exclusive support section for premium products. But we always want to help, so feel free to ask.
|
54 |
+
|
55 |
+
== Installation ==
|
56 |
+
|
57 |
+
**From your WordPress dashboard**
|
58 |
+
1. Visit 'Plugin > Add new'.
|
59 |
+
2. Search for 'WP Events Manager'.
|
60 |
+
3. Activate WP Events Manager from your Plugins page.
|
61 |
+
|
62 |
+
**From WordPress.org**
|
63 |
+
1. Search, select and download WP Events Manager.
|
64 |
+
2. Activate the plugin through the 'Plugins' menu in WordPress Dashboard.
|
65 |
+
|
66 |
+
|
67 |
+
== Frequently Asked Questions ==
|
68 |
+
|
69 |
+
== Screenshots ==
|
70 |
+
|
71 |
+
1. Single Event Page
|
72 |
+
2. Create A New Event
|
73 |
+
3. Archive Event Page
|
74 |
+
4. General Settings
|
75 |
+
5. Page Settings
|
76 |
+
6. Email Settings
|
77 |
+
7. Checkout Settings
|
78 |
+
|
79 |
+
== Changelog ==
|
80 |
+
|
81 |
+
= 1.0.0 =
|
82 |
+
- An amazing Events Manager plugin for WordPress was born
|
83 |
+
|
84 |
+
= 2.0.0 =
|
85 |
+
- Fix timezone countdown
|
86 |
+
- Rebuild Core
|
87 |
+
- Update booking detail page
|
88 |
+
- Update event countdown widget
|
89 |
+
- Update event category template
|
90 |
+
- Add event note
|
91 |
+
- Add booking note
|
92 |
+
- Add map location for event
|
93 |
+
- Add setting for set up Google map API key
|
94 |
+
- Add event category taxonomy
|
95 |
+
- Add woocommerce payment add-on
|
96 |
+
|
97 |
+
= 2.0.1 =
|
98 |
+
- Remove unnecessary caps and roles
|
99 |
+
|
100 |
+
= 2.0.2 =
|
101 |
+
- Fix register user process
|
102 |
+
- Remove event note
|
103 |
+
|
104 |
+
= 2.0.3 =
|
105 |
+
- Fix deactive previous version process for multisite
|
106 |
+
- Update Woocomerce payment add-on for Woocommerce version 3.x
|
107 |
+
|
108 |
+
= 2.0.4 =
|
109 |
+
- Update do shortcodes in default pages
|
110 |
+
|
111 |
+
= 2.0.5 =
|
112 |
+
- Fix revolution slider with content filter
|
113 |
+
|
114 |
+
= 2.0.6 =
|
115 |
+
- Fix content filter
|
116 |
+
|
117 |
+
= 2.0.7 =
|
118 |
+
- Support some functions of old versions
|
119 |
+
- Add custom event category columns
|
120 |
+
|
121 |
+
= 2.0.8 =
|
122 |
+
- Sync event date in database
|
123 |
+
|
124 |
+
= 2.1.3 =
|
125 |
+
- Fix event status and admin archive event page
|
126 |
+
|
127 |
+
= 2.1.4 =
|
128 |
+
- Fix update booking status with PHP 7
|
129 |
+
- Update auto shortcode redirect
|
130 |
+
|
131 |
+
== Upgrade Notice ==
|
132 |
+
|
templates/archive-event.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Template for displaying all archive products.
|
4 |
+
*
|
5 |
+
* Override this template by copying it to yourtheme/tp-event/templates/archive-event.php
|
6 |
+
*
|
7 |
+
* @author ThimPress
|
8 |
+
* @package tp-event/template
|
9 |
+
* @version 1.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit; // Exit if accessed directly
|
14 |
+
}
|
15 |
+
|
16 |
+
get_header(); ?>
|
17 |
+
|
18 |
+
<?php
|
19 |
+
/**
|
20 |
+
* tp_event_before_main_content hook
|
21 |
+
*
|
22 |
+
* @hooked tp_event_output_content_wrapper - 10 (outputs opening divs for the content)
|
23 |
+
* @hooked tp_event_breadcrumb - 20
|
24 |
+
*/
|
25 |
+
do_action( 'tp_event_before_main_content' );
|
26 |
+
?>
|
27 |
+
|
28 |
+
<?php
|
29 |
+
/**
|
30 |
+
* tp_event_archive_description hook
|
31 |
+
*
|
32 |
+
* @hooked tp_event_taxonomy_archive_description - 10
|
33 |
+
* @hooked tp_event_room_archive_description - 10
|
34 |
+
*/
|
35 |
+
do_action( 'tp_event_archive_description' );
|
36 |
+
?>
|
37 |
+
|
38 |
+
<?php if ( have_posts() ) : ?>
|
39 |
+
|
40 |
+
<?php
|
41 |
+
/**
|
42 |
+
* tp_event_before_event_loop hook
|
43 |
+
*
|
44 |
+
* @hooked tp_event_result_count - 20
|
45 |
+
* @hooked tp_event_catalog_ordering - 30
|
46 |
+
*/
|
47 |
+
do_action( 'tp_event_before_event_loop' );
|
48 |
+
?>
|
49 |
+
|
50 |
+
<ul>
|
51 |
+
|
52 |
+
<?php while ( have_posts() ) : the_post(); ?>
|
53 |
+
|
54 |
+
<?php wpems_get_template_part( 'content', 'event' ); ?>
|
55 |
+
|
56 |
+
<?php endwhile; // end of the loop. ?>
|
57 |
+
|
58 |
+
</ul>
|
59 |
+
|
60 |
+
<?php
|
61 |
+
/**
|
62 |
+
* tp_event_after_event_loop hook
|
63 |
+
*
|
64 |
+
* @hooked tp_event_pagination - 10
|
65 |
+
*/
|
66 |
+
do_action( 'tp_event_after_event_loop' );
|
67 |
+
?>
|
68 |
+
|
69 |
+
<?php endif; ?>
|
70 |
+
|
71 |
+
<?php
|
72 |
+
/**
|
73 |
+
* tp_event_after_main_content hook
|
74 |
+
*
|
75 |
+
* @hooked tp_event_output_content_wrapper_end - 10 (outputs closing divs for the content)
|
76 |
+
*/
|
77 |
+
do_action( 'tp_event_after_main_content' );
|
78 |
+
?>
|
79 |
+
|
80 |
+
<?php
|
81 |
+
/**
|
82 |
+
* tp_event_sidebar hook
|
83 |
+
*
|
84 |
+
* @hooked tp_event_get_sidebar - 10
|
85 |
+
*/
|
86 |
+
do_action( 'tp_event_sidebar' );
|
87 |
+
?>
|
88 |
+
|
89 |
+
<?php get_footer(); ?>
|
templates/content-event.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The template for displaying event content in the single-event.php template
|
4 |
+
*
|
5 |
+
* Override this template by copying it to yourtheme/tp-event/templates/content-event.php
|
6 |
+
*
|
7 |
+
* @author ThimPress
|
8 |
+
* @package tp-event
|
9 |
+
* @version 1.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit; // Exit if accessed directly
|
14 |
+
}
|
15 |
+
|
16 |
+
?>
|
17 |
+
|
18 |
+
<?php
|
19 |
+
/**
|
20 |
+
* tp_event_before_loop_event hook
|
21 |
+
*
|
22 |
+
*/
|
23 |
+
do_action( 'tp_event_before_loop_event' );
|
24 |
+
|
25 |
+
if ( post_password_required() ) {
|
26 |
+
echo get_the_password_form();
|
27 |
+
return;
|
28 |
+
}
|
29 |
+
?>
|
30 |
+
|
31 |
+
<li id="event-<?php the_ID(); ?>" <?php post_class(); ?>>
|
32 |
+
|
33 |
+
<?php
|
34 |
+
/**
|
35 |
+
* tp_event_before_loop_event_summary hook
|
36 |
+
*
|
37 |
+
* @hooked tp_event_show_event_sale_flash - 10
|
38 |
+
* @hooked tp_event_show_event_images - 20
|
39 |
+
*/
|
40 |
+
do_action( 'tp_event_before_loop_event_item' );
|
41 |
+
?>
|
42 |
+
|
43 |
+
<div class="summary entry-summary">
|
44 |
+
|
45 |
+
<?php
|
46 |
+
|
47 |
+
/**
|
48 |
+
* tp_event_single_event_thumbnail hook
|
49 |
+
*/
|
50 |
+
do_action( 'tp_event_single_event_thumbnail' );
|
51 |
+
|
52 |
+
/**
|
53 |
+
* tp_event_loop_event_count hook
|
54 |
+
*/
|
55 |
+
do_action( 'tp_event_loop_event_countdown' );
|
56 |
+
|
57 |
+
/**
|
58 |
+
* tp_event_single_event_title hook
|
59 |
+
*/
|
60 |
+
do_action( 'tp_event_single_event_title' );
|
61 |
+
|
62 |
+
/**
|
63 |
+
* tp_event_single_event_content hook
|
64 |
+
*/
|
65 |
+
do_action( 'tp_event_single_event_content' );
|
66 |
+
?>
|
67 |
+
|
68 |
+
</div><!-- .summary -->
|
69 |
+
|
70 |
+
<?php
|
71 |
+
/**
|
72 |
+
* tp_event_after_loop_event_item hook
|
73 |
+
*
|
74 |
+
* @hooked tp_event_show_event_sale_flash - 10
|
75 |
+
* @hooked tp_event_show_event_images - 20
|
76 |
+
*/
|
77 |
+
do_action( 'tp_event_after_loop_event_item' );
|
78 |
+
?>
|
79 |
+
|
80 |
+
</li>
|
81 |
+
|
82 |
+
<?php do_action( 'tp_event_after_loop_event' ); ?>
|
templates/content-single-event.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<article id="tp_event-<?php the_ID(); ?>" <?php post_class( 'tp_single_event' ); ?>>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
/**
|
5 |
+
* tp_event_before_single_event hook
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
do_action( 'tp_event_before_single_event' );
|
9 |
+
?>
|
10 |
+
|
11 |
+
<div class="summary entry-summary">
|
12 |
+
|
13 |
+
<?php
|
14 |
+
/**
|
15 |
+
* tp_event_single_event_title hook
|
16 |
+
*/
|
17 |
+
do_action( 'tp_event_single_event_title' );
|
18 |
+
|
19 |
+
/**
|
20 |
+
* tp_event_single_event_thumbnail hook
|
21 |
+
*/
|
22 |
+
do_action( 'tp_event_single_event_thumbnail' );
|
23 |
+
|
24 |
+
/**
|
25 |
+
* tp_event_loop_event_countdown hook
|
26 |
+
*/
|
27 |
+
do_action( 'tp_event_loop_event_countdown' );
|
28 |
+
|
29 |
+
/**
|
30 |
+
* tp_event_single_event_content hook
|
31 |
+
*/
|
32 |
+
do_action( 'tp_event_single_event_content' );
|
33 |
+
|
34 |
+
/**
|
35 |
+
* tp_event_loop_event_location hook
|
36 |
+
*/
|
37 |
+
do_action( 'tp_event_loop_event_location' );
|
38 |
+
?>
|
39 |
+
|
40 |
+
</div><!-- .summary -->
|
41 |
+
|
42 |
+
<?php
|
43 |
+
/**
|
44 |
+
* tp_event_after_single_event hook
|
45 |
+
*
|
46 |
+
* @hooked tp_event_after_single_event - 10
|
47 |
+
*/
|
48 |
+
do_action( 'tp_event_after_single_event' );
|
49 |
+
?>
|
50 |
+
|
51 |
+
</article><!-- #product-<?php the_ID(); ?> -->
|
templates/emails/register-event.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( !$booking || !$user ) {
|
7 |
+
return;
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
|
11 |
+
<h2><?php printf( __( 'Hello %s!', 'wp-events-manager' ), $user->data->display_name ); ?></h2>
|
12 |
+
<?php
|
13 |
+
printf(
|
14 |
+
__( 'You have been registered successful our <a href="%s">event</a>. Please go to the following link for more details.<a href="%s">Your account.</a>', 'wp-events-manager' ), get_permalink( $booking->event_id ), wpems_account_url()
|
15 |
+
);
|
16 |
+
?>
|
17 |
+
|
18 |
+
<table class="event_auth_admin_table_booking">
|
19 |
+
<thead>
|
20 |
+
<tr>
|
21 |
+
<th style="border: 1px solid #eee"><?php _e( 'ID', 'wp-events-manager' ) ?></th>
|
22 |
+
<th style="border: 1px solid #eee"><?php _e( 'Event', 'wp-events-manager' ) ?></th>
|
23 |
+
<th style="border: 1px solid #eee"><?php _e( 'Type', 'wp-events-manager' ) ?></th>
|
24 |
+
<th style="border: 1px solid #eee"><?php _e( 'Quantity', 'wp-events-manager' ) ?></th>
|
25 |
+
<th style="border: 1px solid #eee"><?php _e( 'Cost', 'wp-events-manager' ) ?></th>
|
26 |
+
<th style="border: 1px solid #eee"><?php _e( 'Payment Method', 'wp-events-manager' ) ?></th>
|
27 |
+
<th style="border: 1px solid #eee"><?php _e( 'Status', 'wp-events-manager' ) ?></th>
|
28 |
+
</tr>
|
29 |
+
</thead>
|
30 |
+
<tbody>
|
31 |
+
<tr>
|
32 |
+
<td style="border: 1px solid #eee"><?php printf( '%s', wpems_format_ID( $booking->ID ) ) ?></td>
|
33 |
+
<td style="border: 1px solid #eee"><?php printf( '<a href="%s">%s</a>', get_permalink( $booking->event_id ), get_the_title( $booking->event_id ) ) ?></td>
|
34 |
+
<td style="border: 1px solid #eee"><?php printf( '%s', floatval( $booking->price ) == 0 ? __( 'Free', 'wp-events-manager' ) : __( 'Cost', 'wp-events-manager' ) ) ?></td>
|
35 |
+
<td style="border: 1px solid #eee"><?php printf( '%s', $booking->qty ) ?></td>
|
36 |
+
<td style="border: 1px solid #eee"><?php printf( '%s', wpems_format_price( floatval( $booking->price ), $booking->currency ) ) ?></td>
|
37 |
+
<td style="border: 1px solid #eee"><?php printf( '%s', $booking->payment_id ? wpems_get_payment_title( $booking->payment_id ) : __( 'No payment', 'wp-events-manager' ) ) ?></td>
|
38 |
+
<td style="border: 1px solid #eee">
|
39 |
+
<?php
|
40 |
+
$return = array();
|
41 |
+
$return[] = sprintf( '%s', wpems_booking_status( $booking->ID ) );
|
42 |
+
$return[] = $booking->payment_id ? sprintf( '(%s)', wpems_get_payment_title( $booking->payment_id ) ) : '';
|
43 |
+
$return = implode( '', $return );
|
44 |
+
printf( '%s', $return );
|
45 |
+
?>
|
46 |
+
</td>
|
47 |
+
</tr>
|
48 |
+
</tbody>
|
49 |
+
</table>
|
50 |
+
<style type="text/css">
|
51 |
+
table td,
|
52 |
+
table th{
|
53 |
+
padding: 10px;
|
54 |
+
font-size: 13px;
|
55 |
+
border: 1px solid;
|
56 |
+
}
|
57 |
+
</style>
|
templates/loop/booking-form.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
$event = new WPEMS_Event( $event_id );
|
7 |
+
$user_reg = $event->booked_quantity( get_current_user_id() );
|
8 |
+
?>
|
9 |
+
|
10 |
+
|
11 |
+
<div class="event_register_area">
|
12 |
+
|
13 |
+
<h2><?php echo esc_html( $event->get_title() ) ?></h2>
|
14 |
+
|
15 |
+
<form name="event_register" class="event_register" method="POST">
|
16 |
+
|
17 |
+
<?php if ( $user_reg == 0 && $event->is_free() && wpems_get_option( 'email_register_times' ) === 'once' ) { ?>
|
18 |
+
<input type="hidden" name="qty" value="1" min="1" />
|
19 |
+
<?php } else { ?>
|
20 |
+
<div class="event_auth_form_field">
|
21 |
+
<label for="event_register_qty"><?php _e( 'Quantity', 'wp-events-manager' ) ?></label>
|
22 |
+
<input type="number" name="qty" value="1" min="1" max="<?php echo $event->get_slot_available() ?>" id="event_register_qty" />
|
23 |
+
</div>
|
24 |
+
<?php } ?>
|
25 |
+
|
26 |
+
<?php $payments = wpems_gateways_enable(); ?>
|
27 |
+
<!--Hide payment option when cost is 0-->
|
28 |
+
<?php if ( !$event->is_free() ) {
|
29 |
+
if ( $payments ) { ?>
|
30 |
+
<ul class="event_auth_payment_methods">
|
31 |
+
<?php $i = 0; ?>
|
32 |
+
<?php foreach ( $payments as $id => $payment ) : ?>
|
33 |
+
<li>
|
34 |
+
<input id="payment_method_<?php echo esc_attr( $id ) ?>" type="radio" name="payment_method" value="<?php echo esc_attr( $id ) ?>"<?php echo $i === 0 ? ' checked' : '' ?>/>
|
35 |
+
<label for="payment_method_<?php echo esc_attr( $id ) ?>"><?php echo esc_html( $payment->get_title() ) ?></label>
|
36 |
+
</li>
|
37 |
+
<?php $i ++; ?>
|
38 |
+
<?php endforeach; ?>
|
39 |
+
</ul>
|
40 |
+
<?php } else {
|
41 |
+
wpems_print_notice( 'error', esc_html__( 'There are no payment gateway available. Please contact administrator to setup it.', 'wp-events-manager' ) );
|
42 |
+
}
|
43 |
+
} ?>
|
44 |
+
<!--End hide payment option when cost is 0-->
|
45 |
+
|
46 |
+
<div class="event_register_foot">
|
47 |
+
<input type="hidden" name="event_id" value="<?php echo esc_attr( $event_id ) ?>" />
|
48 |
+
<input type="hidden" name="action" value="event_auth_register" />
|
49 |
+
<?php wp_nonce_field( 'event_auth_register_nonce', 'event_auth_register_nonce' ); ?>
|
50 |
+
<button class="event_register_submit event_auth_button" <?php echo $payments ? '' : 'disabled="disabled"' ?>><?php _e( 'Register Now', 'wp-events-manager' ); ?></button>
|
51 |
+
</div>
|
52 |
+
|
53 |
+
</form>
|
54 |
+
|
55 |
+
</div>
|
templates/loop/content.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
8 |
+
|
9 |
+
<div class="entry-content">
|
10 |
+
<?php the_content(); ?>
|
11 |
+
</div>
|
templates/loop/countdown.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
|
6 |
+
$current_time = current_time( 'Y-m-d H:i' );
|
7 |
+
$time = wpems_get_time( 'Y-m-d H:i', null, false );
|
8 |
+
|
9 |
+
?>
|
10 |
+
<div class="entry-countdown">
|
11 |
+
|
12 |
+
<?php if ( $time > $current_time ) { ?>
|
13 |
+
<?php $date = new DateTime( date( 'Y-m-d H:i', strtotime( $time ) ) ); ?>
|
14 |
+
<div class="tp_event_counter" data-time="<?php echo esc_attr( $date->format( 'M j, Y H:i:s O' ) ) ?>"></div>
|
15 |
+
<?php } else { ?>
|
16 |
+
<p class="tp-event-notice error"><?php echo esc_html__( 'This event has expired', 'wp-events-manager' ); ?></p>
|
17 |
+
<?php } ?>
|
18 |
+
|
19 |
+
</div>
|
20 |
+
|
templates/loop/excerpt.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
8 |
+
|
9 |
+
<div class="entry-content">
|
10 |
+
<?php the_excerpt(); ?>
|
11 |
+
<a class="tp_event_view-detail view-detail" href="<?php echo esc_attr( get_the_permalink() ); ?>">
|
12 |
+
<?php printf( '%s', __( 'View Detail', 'wp-events-manager' ) ) ?>
|
13 |
+
</a>
|
14 |
+
</div>
|
templates/loop/location.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
8 |
+
|
9 |
+
<?php if ( wpems_event_location() ): ?>
|
10 |
+
<div class="entry-location">
|
11 |
+
<?php wpems_get_location_map(); ?>
|
12 |
+
</div>
|
13 |
+
<?php endif; ?>
|
templates/loop/register.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( wpems_get_option( 'allow_register_event' ) == 'no' ) {
|
7 |
+
return;
|
8 |
+
}
|
9 |
+
|
10 |
+
$event = new WPEMS_Event( get_the_ID() );
|
11 |
+
$user_reg = $event->booked_quantity( get_current_user_id() );
|
12 |
+
|
13 |
+
if ( absint( $event->qty ) == 0 || $event->post->post_status === 'tp-event-expired' ) {
|
14 |
+
return;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
|
18 |
+
<div class="entry-register">
|
19 |
+
|
20 |
+
<ul class="event-info">
|
21 |
+
<li class="total">
|
22 |
+
<span class="label"><?php _e( 'Total Slot:', 'wp-events-manager' ) ?></span>
|
23 |
+
<span class="detail"><?php echo esc_html( absint( $event->qty ) ) ?></span>
|
24 |
+
</li>
|
25 |
+
<li class="booking_slot">
|
26 |
+
<span class="label"><?php _e( 'Booked Slot:', 'wp-events-manager' ) ?></span>
|
27 |
+
<span class="detail"><?php echo esc_html( absint( $event->booked_quantity() ) ) ?></span>
|
28 |
+
</li>
|
29 |
+
<li class="price">
|
30 |
+
<span class="label"><?php _e( 'Cost:', 'wp-events-manager' ) ?></span>
|
31 |
+
<span class="detail"><?php printf( '%s', $event->is_free() ? __( 'Free', 'wp-events-manager' ) : wpems_format_price( $event->get_price() ) ) ?></span>
|
32 |
+
</li>
|
33 |
+
</ul>
|
34 |
+
|
35 |
+
<?php if ( is_user_logged_in() ) { ?>
|
36 |
+
<a class="event_register_submit event_auth_button event-load-booking-form"
|
37 |
+
data-event="<?php echo esc_attr( get_the_ID() ) ?>"><?php _e( 'Register Now', 'wp-events-manager' ); ?></a>
|
38 |
+
<?php } else { ?>
|
39 |
+
<p><?php echo sprintf( __( 'You must <a href="%s">login</a> before register event', 'wp-events-manager' ), wpems_login_url() ); ?></p>
|
40 |
+
<?php } ?>
|
41 |
+
|
42 |
+
</div>
|
templates/loop/thumbnail.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
8 |
+
|
9 |
+
<?php if( has_post_thumbnail() ): ?>
|
10 |
+
|
11 |
+
<div class="entry-thumbnail">
|
12 |
+
<?php if( ! is_singular( 'tp_event' ) || ! in_the_loop() ): ?>
|
13 |
+
<a href="<?php the_permalink() ?>">
|
14 |
+
<?php endif; ?>
|
15 |
+
<?php the_post_thumbnail( ); ?>
|
16 |
+
<?php if( ! is_singular( 'tp_event' ) || ! in_the_loop() ): ?>
|
17 |
+
</a>
|
18 |
+
<?php endif; ?>
|
19 |
+
</div>
|
20 |
+
|
21 |
+
<?php endif; ?>
|
templates/loop/title.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
8 |
+
<div class="entry-title">
|
9 |
+
<?php if( ! is_singular( 'tp_event' ) || ! in_the_loop() ): ?>
|
10 |
+
<h4><a href="<?php the_permalink() ?>">
|
11 |
+
<?php else: ?>
|
12 |
+
<h1>
|
13 |
+
<?php endif; ?>
|
14 |
+
<?php the_title(); ?>
|
15 |
+
<?php if( ! is_singular( 'tp_event' ) || ! in_the_loop() ): ?>
|
16 |
+
</a></h4>
|
17 |
+
<?php else: ?>
|
18 |
+
</h1>
|
19 |
+
<?php endif; ?>
|
20 |
+
</div>
|
templates/notices/error.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
?>
|
7 |
+
|
8 |
+
<ul class="tp-event-notice error">
|
9 |
+
|
10 |
+
<?php foreach ( $messages as $message ) : ?>
|
11 |
+
|
12 |
+
<li><?php echo sprintf( '%s', $message ) ?></li>
|
13 |
+
|
14 |
+
<?php endforeach; ?>
|
15 |
+
|
16 |
+
</ul>
|
templates/notices/messages.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
// errors messages
|
8 |
+
if ( !empty( $messages ) ) :
|
9 |
+
?>
|
10 |
+
|
11 |
+
<?php foreach ( $messages as $code => $msgs ) : ?>
|
12 |
+
<?php wpems_get_template( 'notices/' . $code . '.php', array( 'messages' => $msgs ) ); ?>
|
13 |
+
<?php endforeach; ?>
|
14 |
+
|
15 |
+
<?php endif; ?>
|
templates/notices/success.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
foreach ( $messages as $message ) : ?>
|
8 |
+
|
9 |
+
<div class="tp-event-notice success"><?php echo sprintf( '%s', $message ) ?></div>
|
10 |
+
|
11 |
+
<?php endforeach; ?>
|
templates/shortcodes/event-countdown.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author leehld
|
4 |
+
*/
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Prevent loading this file directly
|
8 |
+
*/
|
9 |
+
defined( 'ABSPATH' ) || exit;
|
10 |
+
|
11 |
+
if ( $args['event_id'] ) {
|
12 |
+
$ids = explode( ',', $args['event_id'] );
|
13 |
+
foreach ( $ids as $id ) {
|
14 |
+
$event = get_post( $id );
|
15 |
+
echo '<h2><a href="' . get_permalink( $id ) . '"> ' . get_the_title( $id ) . '</a></h2>';
|
16 |
+
|
17 |
+
$current_time = current_time( 'Y-m-d H:i' );
|
18 |
+
$time = wpems_get_time( 'Y-m-d H:i', $event, false ); ?>
|
19 |
+
<div class="event-countdown">
|
20 |
+
<?php $date = new DateTime( date( 'Y-m-d H:i', strtotime( $time ) ) ); ?>
|
21 |
+
<div class="tp_event_counter" data-time="<?php echo esc_attr( $date->format( 'M j, Y H:i:s O' ) ) ?>"></div>
|
22 |
+
</div>
|
23 |
+
<?php
|
24 |
+
}
|
25 |
+
} else { ?>
|
26 |
+
<p class="tp-event-notice error"><?php echo esc_html__( 'Invalid Event ID', 'wp-events-manager' ); ?></p>
|
27 |
+
<?php
|
28 |
+
}
|
templates/shortcodes/event-list.php
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Template for displaying all event.
|
4 |
+
*
|
5 |
+
* Override this template by copying it to yourtheme/tp-event/templates/shortcode/event-list.php
|
6 |
+
*
|
7 |
+
* @author ThimPress
|
8 |
+
* @package tp-event
|
9 |
+
* @version 2.0
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( !defined( 'ABSPATH' ) ) {
|
13 |
+
exit; // Exit if accessed directly
|
14 |
+
}
|
15 |
+
|
16 |
+
$list_event = new WP_Query( $args );
|
17 |
+
?>
|
18 |
+
|
19 |
+
<?php
|
20 |
+
/**
|
21 |
+
* tp_event_before_main_content hook
|
22 |
+
*
|
23 |
+
* @hooked tp_event_output_content_wrapper - 10 (outputs opening divs for the content)
|
24 |
+
* @hooked tp_event_breadcrumb - 20
|
25 |
+
*/
|
26 |
+
do_action( 'tp_event_before_main_content' );
|
27 |
+
?>
|
28 |
+
|
29 |
+
<?php
|
30 |
+
/**
|
31 |
+
* tp_event_archive_description hook
|
32 |
+
*
|
33 |
+
* @hooked tp_event_taxonomy_archive_description - 10
|
34 |
+
* @hooked tp_event_room_archive_description - 10
|
35 |
+
*/
|
36 |
+
do_action( 'tp_event_archive_description' );
|
37 |
+
?>
|
38 |
+
|
39 |
+
<?php if ( $list_event->have_posts() ) : ?>
|
40 |
+
|
41 |
+
<?php
|
42 |
+
/**
|
43 |
+
* tp_event_before_event_loop hook
|
44 |
+
*
|
45 |
+
* @hooked tp_event_result_count - 20
|
46 |
+
* @hooked tp_event_catalog_ordering - 30
|
47 |
+
*/
|
48 |
+
do_action( 'tp_event_before_event_loop' );
|
49 |
+
?>
|
50 |
+
|
51 |
+
<ul>
|
52 |
+
|
53 |
+
<?php while ( $list_event->have_posts() ) : $list_event->the_post(); ?>
|
54 |
+
|
55 |
+
<?php wpems_get_template_part( 'content', 'event' ); ?>
|
56 |
+
|
57 |
+
<?php endwhile; // end of the loop. ?>
|
58 |
+
|
59 |
+
</ul>
|
60 |
+
|
61 |
+
<?php
|
62 |
+
/**
|
63 |
+
* tp_event_after_event_loop hook
|
64 |
+
*
|
65 |
+
* @hooked tp_event_pagination - 10
|
66 |
+
*/
|
67 |
+
do_action( 'tp_event_after_event_loop' );
|
68 |
+
?>
|
69 |
+
|
70 |
+
<?php endif; ?>
|
71 |
+
|
72 |
+
<?php
|
73 |
+
/**
|
74 |
+
* tp_event_after_main_content hook
|
75 |
+
*
|
76 |
+
* @hooked tp_event_output_content_wrapper_end - 10 (outputs closing divs for the content)
|
77 |
+
*/
|
78 |
+
do_action( 'tp_event_after_main_content' );
|
79 |
+
?>
|
templates/shortcodes/forgot-password.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @Author: ducnvtt
|
4 |
+
* @Date: 2016-02-22 17:03:48
|
5 |
+
* @Last Modified by: ducnvtt
|
6 |
+
* @Last Modified time: 2 2016-03-02 14:10:16
|
7 |
+
*/
|
8 |
+
if ( !defined( 'ABSPATH' ) ) {
|
9 |
+
exit;
|
10 |
+
}
|
11 |
+
|
12 |
+
wpems_print_notices();
|
13 |
+
?>
|
14 |
+
|
15 |
+
<?php if ( empty ( $_REQUEST['checkemail'] ) ) : ?>
|
16 |
+
|
17 |
+
<form name="forgot-password" class="forgot-password event-auth-form" action="" method="post">
|
18 |
+
|
19 |
+
<p class="form-row event_auth_forgot_password_message message">
|
20 |
+
<?php _e( 'Please enter your username or email address. You will receive a link to create a new password via email.', 'wp-events-manager' ) ?>
|
21 |
+
</p>
|
22 |
+
<p class="form-row required">
|
23 |
+
<label for="user_login" ><?php _e( 'Username or Email:', 'wp-events-manager' ) ?>
|
24 |
+
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( !empty( $_POST['user_login'] ) ? sanitize_text_field($_POST['user_login']) : '' ); ?>" size="20" /></label>
|
25 |
+
</p>
|
26 |
+
<?php
|
27 |
+
/**
|
28 |
+
* Fires inside the lostpassword form tags, before the hidden fields.
|
29 |
+
*
|
30 |
+
* @since 2.1.0
|
31 |
+
*/
|
32 |
+
do_action( 'tp_event_forgot_password_form' );
|
33 |
+
?>
|
34 |
+
<input type="hidden" name="redirect_to" value="<?php echo esc_attr( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); ?>" />
|
35 |
+
<p class="form-row submit">
|
36 |
+
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password', 'wp-events-manager' ); ?>" />
|
37 |
+
</p>
|
38 |
+
|
39 |
+
</form>
|
40 |
+
|
41 |
+
<div class="event_auth_lost_pass_footer">
|
42 |
+
<a href="<?php echo esc_attr( wpems_login_url() ) ?>">
|
43 |
+
<?php _e( 'Login', 'wp-events-manager' ); ?>
|
44 |
+
</a> |
|
45 |
+
<?php if ( !is_user_logged_in() ) : ?>
|
46 |
+
|
47 |
+
<a href="<?php echo esc_attr( wpems_register_url() ) ?>">
|
48 |
+
<?php _e( 'Create new user', 'wp-events-manager' ); ?>
|
49 |
+
</a>
|
50 |
+
|
51 |
+
<?php endif; ?>
|
52 |
+
</div>
|
53 |
+
|
54 |
+
<?php do_action( 'tp_event_forgot_password_form_footer' ); ?>
|
55 |
+
|
56 |
+
<?php endif; ?>
|
templates/shortcodes/form-login.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
wpems_print_notices();
|
7 |
+
|
8 |
+
?>
|
9 |
+
|
10 |
+
<form name="event_auth_login_form" action="" method="post" class="event-auth-form">
|
11 |
+
|
12 |
+
<p class="form-row form-required">
|
13 |
+
<label for="user_login"><?php _e( 'Username', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
14 |
+
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( ! empty( $_POST['user_login'] ) ? sanitize_text_field( $_POST['user_login'] ) : '' ) ?>" size="20" /></label>
|
15 |
+
</p>
|
16 |
+
|
17 |
+
<p class="form-row form-required">
|
18 |
+
<label for="user_pass"><?php _e( 'Password', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
19 |
+
<input type="password" name="user_pass" id="user_pass" class="input" value="" size="25" />
|
20 |
+
</p>
|
21 |
+
|
22 |
+
<?php do_action( 'event_auth_register_form' ); ?>
|
23 |
+
|
24 |
+
<p class="form-row form-required">
|
25 |
+
<label for="rememberme" class="inline">
|
26 |
+
<input class="input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <?php _e( 'Remember me', 'wp-events-manager' ); ?>
|
27 |
+
</label>
|
28 |
+
</p>
|
29 |
+
|
30 |
+
<p class="submit form-row">
|
31 |
+
<?php wp_nonce_field( 'auth-login-nonce', 'auth-nonce' ); ?>
|
32 |
+
<input type="hidden" name="action" value="event_login_action" />
|
33 |
+
<input type="hidden" name="redirect_to" value="<?php echo esc_attr( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); ?>" />
|
34 |
+
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Login', 'wp-events-manager' ); ?>" />
|
35 |
+
</p>
|
36 |
+
|
37 |
+
</form>
|
38 |
+
|
39 |
+
<p>
|
40 |
+
<?php if ( get_option( 'users_can_register' ) ) : ?>
|
41 |
+
<a href="<?php echo esc_attr( wpems_register_url() ); ?>"><?php _e( 'Register', 'wp-events-manager' ) ?></a> |
|
42 |
+
<?php endif; ?>
|
43 |
+
<a href="<?php echo esc_attr( wp_lostpassword_url() ); ?>"><?php _e( 'Forgot Password', 'wp-events-manager' ) ?></a>
|
44 |
+
</p>
|
templates/shortcodes/form-register.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
wpems_print_notices();
|
7 |
+
?>
|
8 |
+
|
9 |
+
<form name="event_auth_register_form" action="" method="post" class="event-auth-form">
|
10 |
+
|
11 |
+
<p class="form-row form-required">
|
12 |
+
<label for="user_login"><?php _e( 'Username', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
13 |
+
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( ! empty( $_POST['user_login'] ) ? sanitize_text_field( $_POST['user_login'] ) : '' ); ?>" size="20" />
|
14 |
+
</p>
|
15 |
+
|
16 |
+
<p class="form-row form-required">
|
17 |
+
<label for="user_email"><?php _e( 'Email', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
18 |
+
<input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( ! empty( $_POST['user_email'] ) ? sanitize_text_field( $_POST['user_email'] ) : '' ); ?>" size="25" />
|
19 |
+
</p>
|
20 |
+
|
21 |
+
<p class="form-row form-required">
|
22 |
+
<label for="user_pass"><?php _e( 'Password', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
23 |
+
<input type="password" name="user_pass" id="user_pass" class="input" value="" size="25" />
|
24 |
+
</p>
|
25 |
+
|
26 |
+
<p class="form-row form-required">
|
27 |
+
<label for="confirm_password"><?php _e( 'Confirm Password', 'wp-events-manager' ) ?><span class="required">*</span></label>
|
28 |
+
<input type="password" name="confirm_password" id="confirm_password" class="input" value="" size="25" /></label>
|
29 |
+
</p>
|
30 |
+
|
31 |
+
<?php do_action( 'event_auth_register_form' ); ?>
|
32 |
+
|
33 |
+
<?php $send_notify = wpems_get_option( 'register_notify', true ); ?>
|
34 |
+
<?php if ( $send_notify ) : ?>
|
35 |
+
<p id="reg_passmail" class="form-row">
|
36 |
+
<?php _e( 'Registration confirmation will be emailed to you.', 'wp-events-manager' ); ?>
|
37 |
+
</p>
|
38 |
+
<?php endif; ?>
|
39 |
+
|
40 |
+
<p class="submit form-row">
|
41 |
+
<input type="hidden" name="redirect_to" value="<?php echo esc_attr( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); ?>" />
|
42 |
+
<?php wp_nonce_field( 'auth-reigter-nonce', 'auth-nonce' ); ?>
|
43 |
+
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register', 'wp-events-manager' ); ?>" />
|
44 |
+
</p>
|
45 |
+
|
46 |
+
</form>
|
47 |
+
|
48 |
+
<p id="nav">
|
49 |
+
<a href="<?php echo esc_url( wpems_login_url() ); ?>"><?php _e( 'Log in', 'wp-events-manager' ); ?></a> |
|
50 |
+
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>" title="<?php esc_attr_e( 'Password Lost and Found', 'wp-events-manager' ) ?>"><?php _e( 'Forgot password?', 'wp-events-manager' ); ?></a>
|
51 |
+
</p>
|
templates/shortcodes/register-completed.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
wpems_print_notices();
|
8 |
+
printf(
|
9 |
+
__( 'You have successfully registered to <strong>%s</strong>. We have emailed your password to <i>%s</i> the email address you entered.', 'wp-events-manager' ), get_bloginfo( 'name' ), sanitize_text_field($_REQUEST['registered'])
|
10 |
+
);
|
templates/shortcodes/register-error.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
exit();
|
4 |
+
}
|
5 |
+
?>
|
6 |
+
<ul class="tp-event-notice error">
|
7 |
+
<li><?php _e( 'Oops! Something went wrong.' ) ?></li>
|
8 |
+
</ul>
|
templates/shortcodes/reset-password.php
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @Author: ducnvtt
|
4 |
+
* @Date: 2016-03-02 14:46:31
|
5 |
+
* @Last Modified by: ducnvtt
|
6 |
+
* @Last Modified time: 2016-03-30 11:09:14
|
7 |
+
*/
|
8 |
+
if ( !defined( 'ABSPATH' ) ) {
|
9 |
+
exit;
|
10 |
+
}
|
11 |
+
|
12 |
+
wpems_print_notices();
|
13 |
+
?>
|
14 |
+
<form name="resetpassform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="POST" class="event-auth-form">
|
15 |
+
<input type="hidden" name="user_login" value="<?php echo esc_attr( $atts['login'] ); ?>" />
|
16 |
+
|
17 |
+
<div class="user-pass1-wrap">
|
18 |
+
<p class="form-row required">
|
19 |
+
<label for="pass1"><?php _e( 'Password', 'wp-events-manager' ) ?></label>
|
20 |
+
</p>
|
21 |
+
|
22 |
+
<div class="wp-pwd">
|
23 |
+
<span class="password-input-wrapper">
|
24 |
+
<input type="password" class="event_auth_input" name="pass1" />
|
25 |
+
</span>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
|
29 |
+
<div class="user-pass2-wrap">
|
30 |
+
<p class="form-row required">
|
31 |
+
<label for="pass2"><?php _e( 'Confirm Password', 'wp-events-manager' ) ?></label>
|
32 |
+
</p>
|
33 |
+
|
34 |
+
<div class="wp-pwd">
|
35 |
+
<span class="password-input-wrapper">
|
36 |
+
<input type="password" name="pass2" class="event_auth_input" />
|
37 |
+
</span>
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
|
41 |
+
<p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
|
42 |
+
|
43 |
+
<?php
|
44 |
+
/**
|
45 |
+
* Fires following the 'Strength indicator' meter in the user password reset form.
|
46 |
+
*
|
47 |
+
* @since 3.9.0
|
48 |
+
*
|
49 |
+
* @param WP_User $user User object of the user whose password is being reset.
|
50 |
+
*/
|
51 |
+
do_action( 'event_auth_resetpass_form', $atts['login'] );
|
52 |
+
?>
|
53 |
+
<input type="hidden" name="key" value="<?php echo esc_attr( $atts['key'] ); ?>" />
|
54 |
+
<p class="submit form-row required">
|
55 |
+
<input type="submit" name="submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password', 'wp-events-manager' ); ?>" />
|
56 |
+
</p>
|
57 |
+
</form>
|
58 |
+
|
59 |
+
<p id="nav">
|
60 |
+
<?php if ( !is_user_logged_in() ) : ?>
|
61 |
+
<a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in', 'wp-events-manager' ); ?></a>
|
62 |
+
<?php endif; ?>
|
63 |
+
<?php
|
64 |
+
if ( get_option( 'users_can_register' ) ) :
|
65 |
+
$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register', 'wp-events-manager' ) );
|
66 |
+
|
67 |
+
/** This filter is documented in wp-includes/general-template.php */
|
68 |
+
echo ' | ' . $registration_url;
|
69 |
+
endif;
|
70 |
+
?>
|
71 |
+
</p>
|
templates/shortcodes/user-account.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
|
6 |
+
$query = new WP_Query( $args );
|
7 |
+
|
8 |
+
wpems_print_notices();
|
9 |
+
|
10 |
+
if ( !is_user_logged_in() ) {
|
11 |
+
printf( __( 'You are not <a href="%s">login</a>', 'wp-events-manager' ), wpems_login_url() );
|
12 |
+
return;
|
13 |
+
}
|
14 |
+
|
15 |
+
if ( $query->have_posts() ) :
|
16 |
+
?>
|
17 |
+
|
18 |
+
<table>
|
19 |
+
<thead>
|
20 |
+
<th><?php _e( 'Booking ID', 'wp-events-manager' ); ?></th>
|
21 |
+
<th><?php _e( 'Events', 'wp-events-manager' ); ?></th>
|
22 |
+
<th><?php _e( 'Type', 'wp-events-manager' ); ?></th>
|
23 |
+
<th><?php _e( 'Cost', 'wp-events-manager' ); ?></th>
|
24 |
+
<th><?php _e( 'Quantity', 'wp-events-manager' ); ?></th>
|
25 |
+
<th><?php _e( 'Method', 'wp-events-manager' ); ?></th>
|
26 |
+
<th><?php _e( 'Status', 'wp-events-manager' ); ?></th>
|
27 |
+
</thead>
|
28 |
+
<tbody>
|
29 |
+
<?php foreach ( $query->posts as $post ): ?>
|
30 |
+
|
31 |
+
<?php $booking = WPEMS_Booking::instance( $post->ID ) ?>
|
32 |
+
<tr>
|
33 |
+
<td><?php printf( '%s', wpems_format_ID( $post->ID ) ) ?></td>
|
34 |
+
<td><?php printf( '<a href="%s">%s</a>', get_the_permalink( $booking->event_id ), get_the_title( $booking->event_id ) ) ?></td>
|
35 |
+
<td><?php printf( '%s', floatval( $booking->price ) == 0 ? __( 'Free', 'wp-events-manager' ) : __( 'Cost', 'wp-events-manager' ) ) ?></td>
|
36 |
+
<td><?php printf( '%s', wpems_format_price( floatval( $booking->price ), $booking->currency ) ) ?></td>
|
37 |
+
<td><?php printf( '%s', $booking->qty ) ?></td>
|
38 |
+
<td><?php printf( '%s', $booking->payment_id ? wpems_get_payment_title( $booking->payment_id ) : __( 'No payment', 'wp-events-manager' ) ) ?></td>
|
39 |
+
<th><?php printf( '%s', wpems_booking_status( $booking->ID ) ); ?></th>
|
40 |
+
</tr>
|
41 |
+
|
42 |
+
<?php endforeach; ?>
|
43 |
+
</tbody>
|
44 |
+
</table>
|
45 |
+
|
46 |
+
<?php
|
47 |
+
$args = array(
|
48 |
+
'base' => '%_%',
|
49 |
+
'format' => '?paged=%#%',
|
50 |
+
'total' => 1,
|
51 |
+
'current' => 0,
|
52 |
+
'show_all' => false,
|
53 |
+
'end_size' => 1,
|
54 |
+
'mid_size' => 2,
|
55 |
+
'prev_next' => true,
|
56 |
+
'prev_text' => __( '« Previous', 'wp-events-manager' ),
|
57 |
+
'next_text' => __( 'Next »', 'wp-events-manager' ),
|
58 |
+
'type' => 'plain',
|
59 |
+
'add_args' => false,
|
60 |
+
'add_fragment' => '',
|
61 |
+
'before_page_number' => '',
|
62 |
+
'after_page_number' => ''
|
63 |
+
);
|
64 |
+
|
65 |
+
echo paginate_links( array(
|
66 |
+
'base' => str_replace( 9999999, '%#%', esc_url( get_pagenum_link( 9999999 ) ) ),
|
67 |
+
'format' => '?paged=%#%',
|
68 |
+
'prev_text' => __( '« Previous', 'wp-events-manager' ),
|
69 |
+
'next_text' => __( 'Next »', 'wp-events-manager' ),
|
70 |
+
'current' => max( 1, get_query_var( 'paged' ) ),
|
71 |
+
'total' => $query->max_num_pages
|
72 |
+
) );
|
73 |
+
?>
|
74 |
+
|
75 |
+
<?php endif; ?>
|
76 |
+
|
77 |
+
<?php wp_reset_postdata(); ?>
|
templates/shortcodes/user-cannot-register.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( !defined( 'ABSPATH' ) ) {
|
3 |
+
exit;
|
4 |
+
}
|
5 |
+
?>
|
6 |
+
|
7 |
+
<p><?php _e( 'User registration is currently not allowed.', 'wp-events-manager' ) ?></p>
|
templates/single-event.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template Single Event post type
|
4 |
+
*/
|
5 |
+
|
6 |
+
get_header( ); ?>
|
7 |
+
|
8 |
+
<?php
|
9 |
+
/**
|
10 |
+
* tp_event_before_main_content hook
|
11 |
+
*/
|
12 |
+
do_action( 'tp_event_before_main_content' );
|
13 |
+
?>
|
14 |
+
|
15 |
+
<?php while ( have_posts() ) : the_post(); ?>
|
16 |
+
|
17 |
+
<?php wpems_get_template_part( 'content', 'single-event' ); ?>
|
18 |
+
|
19 |
+
<?php endwhile; // end of the loop. ?>
|
20 |
+
|
21 |
+
<?php
|
22 |
+
/**
|
23 |
+
* tp_event_after_main_content hook
|
24 |
+
*
|
25 |
+
* @hooked tp_event_after_main_content - 10 (outputs closing divs for the content)
|
26 |
+
*/
|
27 |
+
do_action( 'tp_event_after_main_content' );
|
28 |
+
?>
|
29 |
+
|
30 |
+
<?php get_footer( );
|
wp-events-manager.php
ADDED
@@ -0,0 +1,175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Plugin Name: WP Events Manager
|
5 |
+
Plugin URI: http://thimpress.com/
|
6 |
+
Description: A complete plugin for Events management and online booking system
|
7 |
+
Author: ThimPress
|
8 |
+
Version: 2.1.4
|
9 |
+
Author URI: http://thimpress.com
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit();
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* WPEMS class
|
18 |
+
*/
|
19 |
+
if ( ! class_exists( 'WPEMS' ) ) {
|
20 |
+
|
21 |
+
final class WPEMS {
|
22 |
+
|
23 |
+
private static $_instance = null;
|
24 |
+
|
25 |
+
public $_session = null;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* WPEMS constructor.
|
29 |
+
*/
|
30 |
+
public function __construct() {
|
31 |
+
$this->define_constants();
|
32 |
+
$this->includes();
|
33 |
+
$this->init_hooks();
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Define Plugins Constants
|
38 |
+
*/
|
39 |
+
public function define_constants() {
|
40 |
+
$this->set_define( 'WPEMS_PATH', plugin_dir_path( __FILE__ ) );
|
41 |
+
$this->set_define( 'WPEMS_URI', plugin_dir_url( __FILE__ ) );
|
42 |
+
$this->set_define( 'WPEMS_INC', WPEMS_PATH . 'inc/' );
|
43 |
+
$this->set_define( 'WPEMS_INC_URI', WPEMS_URI . 'inc/' );
|
44 |
+
$this->set_define( 'WPEMS_ASSETS_URI', WPEMS_URI . 'assets/' );
|
45 |
+
$this->set_define( 'WPEMS_LIB_URI', WPEMS_INC_URI . 'libraries/' );
|
46 |
+
$this->set_define( 'WPEMS_VER', '2.1.4' );
|
47 |
+
$this->set_define( 'WPEMS_MAIN_FILE', __FILE__ );
|
48 |
+
}
|
49 |
+
|
50 |
+
public function set_define( $name = '', $value = '' ) {
|
51 |
+
if ( $name && ! defined( $name ) ) {
|
52 |
+
define( $name, $value );
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Init hooks plugins
|
58 |
+
* @since 2.0
|
59 |
+
*/
|
60 |
+
public function init_hooks() {
|
61 |
+
// plugin loaded
|
62 |
+
add_action( 'plugins_loaded', array( $this, 'loaded' ) );
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Load components when plugin loaded
|
67 |
+
*/
|
68 |
+
public function loaded() {
|
69 |
+
// load text domain
|
70 |
+
$this->text_domain();
|
71 |
+
$this->_session = new WPEMS_Session();
|
72 |
+
|
73 |
+
do_action( 'wpems_init', $this );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* include file
|
78 |
+
*
|
79 |
+
* @param array || string
|
80 |
+
*
|
81 |
+
* @return null
|
82 |
+
*/
|
83 |
+
public function includes() {
|
84 |
+
|
85 |
+
$this->_include( 'inc/wpems-core-functions.php' );
|
86 |
+
$this->_include( 'inc/class-wpems-autoloader.php' );
|
87 |
+
$this->_include( 'inc/class-wpems-assets.php' );
|
88 |
+
$this->_include( 'inc/class-wpems-ajax.php' );
|
89 |
+
$this->_include( 'inc/class-wpems-post-types.php' );
|
90 |
+
$this->_include( 'inc/emails/class-wpems-register-event.php' );
|
91 |
+
$this->_include( 'inc/class-wpems-payment-gateways.php' );
|
92 |
+
$this->_include( 'inc/class-wpems-install.php' );
|
93 |
+
$this->_include( 'inc/class-wpems-settings.php' );
|
94 |
+
$this->_include( 'inc/class-wpems-session.php' );
|
95 |
+
$this->_include( 'inc/class-wpems-booking.php' );
|
96 |
+
$this->_include( 'inc/class-wpems-event.php' );
|
97 |
+
$this->settings = WPEMS_Settings::instance();
|
98 |
+
|
99 |
+
if ( is_admin() ) {
|
100 |
+
$this->_include( 'inc/admin/class-wpems-admin.php' );
|
101 |
+
} else {
|
102 |
+
$this->_include( 'inc/class-wpems-template.php' );
|
103 |
+
$this->_include( 'inc/class-wpems-frontend-assets.php' );
|
104 |
+
$this->_include( 'inc/class-wpems-user-process.php' );
|
105 |
+
$this->_include( 'inc/class-wpems-shortcodes.php' );
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Include single file
|
112 |
+
*
|
113 |
+
* @param $file
|
114 |
+
*/
|
115 |
+
public function _include( $file = null ) {
|
116 |
+
if ( is_array( $file ) ) {
|
117 |
+
foreach ( $file as $key => $f ) {
|
118 |
+
if ( file_exists( WPEMS_PATH . $f ) ) {
|
119 |
+
require_once WPEMS_PATH . $f;
|
120 |
+
}
|
121 |
+
}
|
122 |
+
} else {
|
123 |
+
if ( file_exists( WPEMS_PATH . $file ) ) {
|
124 |
+
require_once WPEMS_PATH . $file;
|
125 |
+
} elseif ( file_exists( $file ) ) {
|
126 |
+
require_once $file;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* load text domain
|
133 |
+
* @return null
|
134 |
+
*/
|
135 |
+
public function text_domain() {
|
136 |
+
// Get mo file
|
137 |
+
$text_domain = 'wp-events-manager';
|
138 |
+
$locale = apply_filters( 'plugin_locale', get_locale(), $text_domain );
|
139 |
+
$mo_file = $text_domain . '-' . $locale . '.mo';
|
140 |
+
// Check mo file global
|
141 |
+
$mo_global = WP_LANG_DIR . '/plugins/' . $mo_file;
|
142 |
+
// Load translate file
|
143 |
+
if ( file_exists( $mo_global ) ) {
|
144 |
+
load_textdomain( $text_domain, $mo_global );
|
145 |
+
} else {
|
146 |
+
load_textdomain( $text_domain, WPEMS_PATH . '/languages/' . $mo_file );
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* get instance class
|
152 |
+
* @return WPEMS
|
153 |
+
*/
|
154 |
+
public static function instance() {
|
155 |
+
if ( ! empty( self::$_instance ) ) {
|
156 |
+
return self::$_instance;
|
157 |
+
}
|
158 |
+
|
159 |
+
return self::$_instance = new self();
|
160 |
+
}
|
161 |
+
|
162 |
+
}
|
163 |
+
|
164 |
+
if ( ! function_exists( 'WPEMS' ) ) {
|
165 |
+
|
166 |
+
function WPEMS() {
|
167 |
+
return WPEMS::instance();
|
168 |
+
}
|
169 |
+
|
170 |
+
}
|
171 |
+
WPEMS();
|
172 |
+
}
|
173 |
+
|
174 |
+
|
175 |
+
$GLOBALS['WPEMS'] = WPEMS();
|