Shortcodes Ultimate - Version 5.0.2

Version Description

  • Fixed: an issue where RTL stylesheet won't displayed if custom CSS field is empty
  • Fixed: icon sizes at 'Dashboard - Available Shortcodes' page
  • Fixed: [expand] shortcode now works when loaded through AJAX
  • Fixed: border-radius on [box] shortcode
  • Fixed: compatibility with 'Plugin Organizer'
  • Updated: OwlCarousel jQuery plugin
  • Added: new attribute 'responsive' for table shortcode: [su_table responsive="no|yes"]
  • Added: new attribute 'playsinline' for youtube_advanced shortcode: [su_youtube_advanced playsinline="no|yes"]
Download this release

Release Info

Developer gn_themes
Plugin Icon 128x128 Shortcodes Ultimate
Version 5.0.2
Comparing to
See all releases

Code changes from version 5.0.1 to 5.0.2

Files changed (159) hide show
  1. admin/class-shortcodes-ultimate-admin-addons.php +21 -399
  2. admin/class-shortcodes-ultimate-admin-settings.php +0 -0
  3. admin/class-shortcodes-ultimate-admin-shortcodes.php +1 -1
  4. admin/class-shortcodes-ultimate-admin-top-level.php +0 -0
  5. admin/class-shortcodes-ultimate-admin.php +0 -0
  6. admin/class-shortcodes-ultimate-notice-rate.php +0 -0
  7. admin/class-shortcodes-ultimate-notice.php +0 -0
  8. admin/css/admin.css +0 -0
  9. admin/images/addons/bundle.png +0 -0
  10. admin/images/addons/extra.png +0 -0
  11. admin/images/addons/maker.png +0 -0
  12. admin/images/addons/skins.png +0 -0
  13. admin/images/shortcodes/_default.svg +0 -0
  14. admin/images/shortcodes/accordion.svg +0 -0
  15. admin/images/shortcodes/animate.svg +0 -0
  16. admin/images/shortcodes/audio.svg +0 -0
  17. admin/images/shortcodes/box.svg +0 -0
  18. admin/images/shortcodes/button.svg +0 -0
  19. admin/images/shortcodes/carousel.svg +0 -0
  20. admin/images/shortcodes/custom_gallery.svg +0 -0
  21. admin/images/shortcodes/dailymotion.svg +0 -0
  22. admin/images/shortcodes/divider.svg +0 -0
  23. admin/images/shortcodes/document.svg +0 -0
  24. admin/images/shortcodes/dropcap.svg +0 -0
  25. admin/images/shortcodes/dummy_image.svg +0 -0
  26. admin/images/shortcodes/dummy_text.svg +0 -0
  27. admin/images/shortcodes/expand.svg +0 -0
  28. admin/images/shortcodes/feed.svg +0 -0
  29. admin/images/shortcodes/gmap.svg +0 -0
  30. admin/images/shortcodes/guests.svg +0 -0
  31. admin/images/shortcodes/heading.svg +0 -0
  32. admin/images/shortcodes/highlight.svg +0 -0
  33. admin/images/shortcodes/label.svg +0 -0
  34. admin/images/shortcodes/lightbox.svg +0 -0
  35. admin/images/shortcodes/lightbox_content.svg +0 -0
  36. admin/images/shortcodes/list.svg +0 -0
  37. admin/images/shortcodes/members.svg +0 -0
  38. admin/images/shortcodes/menu.svg +0 -0
  39. admin/images/shortcodes/meta.svg +0 -0
  40. admin/images/shortcodes/note.svg +0 -0
  41. admin/images/shortcodes/permalink.svg +0 -0
  42. admin/images/shortcodes/post.svg +0 -0
  43. admin/images/shortcodes/posts.svg +0 -0
  44. admin/images/shortcodes/private.svg +0 -0
  45. admin/images/shortcodes/pullquote.svg +0 -0
  46. admin/images/shortcodes/qrcode.svg +0 -0
  47. admin/images/shortcodes/quote.svg +0 -0
  48. admin/images/shortcodes/row.svg +0 -0
  49. admin/images/shortcodes/scheduler.svg +0 -0
  50. admin/images/shortcodes/service.svg +0 -0
  51. admin/images/shortcodes/siblings.svg +0 -0
  52. admin/images/shortcodes/slider.svg +0 -0
  53. admin/images/shortcodes/spacer.svg +0 -0
  54. admin/images/shortcodes/spoiler.svg +0 -0
  55. admin/images/shortcodes/subpages.svg +0 -0
  56. admin/images/shortcodes/table.svg +0 -0
  57. admin/images/shortcodes/tabs.svg +0 -0
  58. admin/images/shortcodes/template.svg +0 -0
  59. admin/images/shortcodes/tooltip.svg +0 -0
  60. admin/images/shortcodes/user.svg +0 -0
  61. admin/images/shortcodes/video.svg +0 -0
  62. admin/images/shortcodes/vimeo.svg +0 -0
  63. admin/images/shortcodes/youtube.svg +0 -0
  64. admin/images/shortcodes/youtube_advanced.svg +0 -0
  65. admin/partials/help/addons.php +0 -0
  66. admin/partials/help/settings.php +0 -0
  67. admin/partials/help/shortcodes.php +0 -0
  68. admin/partials/help/sidebar.php +0 -0
  69. admin/partials/notices/licenses.php +0 -5
  70. admin/partials/notices/rate.php +0 -0
  71. admin/partials/pages/addons.php +1 -1
  72. admin/partials/pages/settings.php +0 -0
  73. admin/partials/pages/shortcodes-list.php +0 -0
  74. admin/partials/pages/shortcodes-single.php +0 -0
  75. admin/partials/pages/shortcodes.php +0 -0
  76. admin/partials/settings/fields/checkbox.php +0 -0
  77. admin/partials/settings/fields/css.php +0 -0
  78. admin/partials/settings/fields/text.php +0 -0
  79. admin/partials/settings/sections/general.php +0 -0
  80. admin/partials/tabs.php +0 -0
  81. admin/stylus/admin.styl +0 -0
  82. assets/css/animate.css +0 -0
  83. assets/css/box-shortcodes.css +0 -0
  84. assets/css/cheatsheet.css +0 -0
  85. assets/css/content-shortcodes.css +11 -1
  86. assets/css/galleries-shortcodes.css +0 -0
  87. assets/css/generator.css +0 -0
  88. assets/css/magnific-popup.css +0 -0
  89. assets/css/media-shortcodes.css +0 -0
  90. assets/css/options-page.css +0 -0
  91. assets/css/other-shortcodes.css +0 -0
  92. assets/css/owl-carousel-transitions.css +0 -163
  93. assets/css/owl-carousel.css +5 -70
  94. assets/css/players-shortcodes.css +0 -0
  95. assets/css/qtip.css +0 -0
  96. assets/css/rtl-admin.css +0 -0
  97. assets/css/rtl-shortcodes.css +0 -0
  98. assets/css/simpleslider.css +0 -0
  99. assets/css/sunrise.css +0 -0
  100. assets/css/tinymce.css +0 -0
  101. assets/images/grabbing.png +0 -0
  102. assets/images/icon.png +0 -0
  103. assets/images/loading.gif +0 -0
  104. assets/images/player/button.png +0 -0
  105. assets/images/player/default-start.png +0 -0
  106. assets/images/player/default.png +0 -0
  107. assets/images/player/metro-start.png +0 -0
  108. assets/images/player/metro.png +0 -0
  109. assets/images/player/minimal.png +0 -0
  110. assets/images/quote.png +0 -0
  111. assets/images/search.png +0 -0
  112. assets/images/service.png +0 -0
  113. assets/images/spinner.gif +0 -0
  114. assets/images/spoiler.png +0 -0
  115. assets/images/styles/style-bubbles.png +0 -0
  116. assets/images/styles/style-glass.png +0 -0
  117. assets/images/styles/style-noise.png +0 -0
  118. assets/images/styles/style-soft.png +0 -0
  119. assets/images/swiper/default.png +0 -0
  120. assets/images/swiper/loading.gif +0 -0
  121. assets/js/chart.js +0 -0
  122. assets/js/form.js +0 -0
  123. assets/js/galleries-shortcodes.js +0 -0
  124. assets/js/generator.js +0 -0
  125. assets/js/inview.js +0 -0
  126. assets/js/jplayer.js +0 -0
  127. assets/js/jsrender.js +0 -0
  128. assets/js/magnific-popup.js +0 -0
  129. assets/js/options-page.js +0 -0
  130. assets/js/other-shortcodes.js +10 -13
  131. assets/js/owl-carousel.js +7 -1
  132. assets/js/players-shortcodes.js +0 -0
  133. assets/js/qtip.js +0 -0
  134. assets/js/simpleslider.js +0 -0
  135. assets/js/sunrise.js +0 -0
  136. assets/js/swiper.js +0 -0
  137. assets/js/tinymce.js +0 -0
  138. assets/other/Jplayer.swf +0 -0
  139. inc/core/assets.php +24 -25
  140. inc/core/counters.php +0 -0
  141. inc/core/data.php +12 -0
  142. inc/core/generator-views.php +0 -0
  143. inc/core/generator.php +0 -0
  144. inc/core/load.php +0 -0
  145. inc/core/requirements.php +0 -0
  146. inc/core/shortcodes.php +53 -20
  147. inc/core/tools.php +0 -0
  148. inc/core/widget.php +0 -0
  149. includes/class-shortcodes-ultimate-activator.php +0 -0
  150. includes/class-shortcodes-ultimate-upgrade.php +0 -0
  151. includes/class-shortcodes-ultimate.php +3 -5
  152. languages/readme.txt +0 -0
  153. license.txt +0 -0
  154. readme.txt +8 -1
  155. shortcodes-ultimate.php +15 -6
  156. templates/default-loop.php +0 -0
  157. templates/list-loop.php +0 -0
  158. templates/single-post.php +0 -0
  159. templates/teaser-loop.php +0 -0
admin/class-shortcodes-ultimate-admin-addons.php CHANGED
@@ -10,33 +10,10 @@
10
  */
11
  final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
12
 
13
- /**
14
- * The plugin add-ons collection.
15
- *
16
- * @since 5.0.0
17
- * @access private
18
- * @var array $plugin_addons The plugin add-ons collection.
19
- */
20
  private $plugin_addons;
21
-
22
- /**
23
- * The URL of the add-ons store.
24
- *
25
- * @since 5.0.0
26
- * @access private
27
- * @var array $store_url The URL of the add-ons store.
28
- */
29
- private $store_url;
30
-
31
- /**
32
- * Messages for license activation screen.
33
- *
34
- * @since 5.0.0
35
- * @access private
36
- * @var array $license_messages Messages for license activation screen.
37
- */
38
- private $license_messages;
39
-
40
 
41
  /**
42
  * Initialize the class and set its properties.
@@ -49,8 +26,10 @@ final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
49
 
50
  parent::__construct( $plugin_file, $plugin_version );
51
 
52
- $this->addons_api_url = 'https://getshortcodes.com/api/v1/add-ons/';
53
- $this->plugin_addons = array();
 
 
54
 
55
  }
56
 
@@ -86,7 +65,7 @@ final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
86
  */
87
  public function add_help_tab( $screen ) {
88
 
89
- if ( !$this->is_component_page() ) {
90
  return;
91
  }
92
 
@@ -123,13 +102,13 @@ final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
123
  * @access private
124
  * @return array The plugin add-ons collection.
125
  */
126
- protected function get_plugin_addons() {
127
 
128
- if ( empty( $this->plugin_addons ) ) {
129
- $this->plugin_addons = $this->load_plugin_addons();
130
  }
131
 
132
- return apply_filters( 'su/admin/addons', $this->plugin_addons );
133
 
134
  }
135
 
@@ -140,16 +119,16 @@ final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
140
  * @access private
141
  * @return array The plugin add-ons collection.
142
  */
143
- private function load_plugin_addons() {
144
 
145
- $cache = get_transient( 'su_transient_addons' );
146
 
147
- if ( ! empty( $cache ) ) {
148
- return $cache;
149
  }
150
 
151
  $response = wp_remote_get(
152
- $this->addons_api_url,
153
  array( 'timeout' => 10, 'sslverify' => false, )
154
  );
155
  $response = json_decode( wp_remote_retrieve_body( $response ), true );
@@ -158,372 +137,15 @@ final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
158
  return array();
159
  }
160
 
161
- $addons = array();
162
 
163
  foreach ( $response as $item ) {
164
-
165
- $addons[ $item['id'] ] = $item;
166
- $addons[ $item['id'] ]['is_installed'] = false;
167
-
168
- }
169
-
170
- set_transient( 'su_transient_addons', $addons, 3 * DAY_IN_SECONDS );
171
-
172
- return $addons;
173
-
174
- }
175
-
176
- /**
177
- * Retrieve installed add-ons collection.
178
- *
179
- * @since 5.0.0
180
- * @access protected
181
- * @return array Installed add-ons collection.
182
- */
183
- protected function get_installed_addons() {
184
-
185
- $addons = $this->get_plugin_addons();
186
- $installed = array();
187
-
188
- foreach ( $addons as $addon ) {
189
- if ( isset( $addon['installed'] ) && $addon['installed'] ) {
190
- $installed[] = $addon;
191
- }
192
- }
193
-
194
- return $installed;
195
-
196
- }
197
-
198
-
199
- /**
200
- * Display various notices at licenses page.
201
- *
202
- * @since 5.0.0
203
- * @access protected
204
- */
205
- protected function the_licenses_notices() {
206
-
207
- if ( !isset( $_GET['message'] ) ) {
208
- return;
209
- }
210
-
211
- $message = sanitize_title( $_GET['message'] );
212
-
213
- $messages = $this->get_license_messages();
214
-
215
- if ( !isset( $messages[$message] ) ) {
216
- return;
217
- }
218
-
219
- $this->the_template( 'notices/licenses', $messages[$message] );
220
-
221
- }
222
-
223
-
224
- /**
225
- * License activation handler.
226
- *
227
- * @since 5.0.0
228
- */
229
- public function activate_license() {
230
-
231
- // Check permission
232
- if ( ! current_user_can( $this->get_capability() ) ) {
233
- return;
234
- }
235
-
236
- // Check referer
237
- if ( ! wp_get_referer() ) {
238
- return;
239
- }
240
-
241
- // Verify nonce
242
- if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'su_activate_license' ) ) {
243
- return;
244
- }
245
-
246
- // Check add-on ID, name and license key
247
- if ( ! isset( $_POST['id'], $_POST['name'], $_POST['license_key'] ) ) {
248
- return;
249
- }
250
-
251
- // Don't do anything with empty license key
252
- if ( empty( $_POST['license_key'] ) ) {
253
-
254
- wp_safe_redirect( add_query_arg( 'message', 'empty_key', wp_get_referer() ) );
255
- exit;
256
-
257
- }
258
-
259
- // Sanitize input
260
- $addon_id = sanitize_title( $_POST['id'] );
261
- $addon_name = sanitize_text_field( $_POST['name'] );
262
- $license_key = sanitize_title( $_POST['license_key'] );
263
-
264
- // Call the remote API
265
- $response = $this->call_remote_api( 'activate_license', $license_key, $addon_name );
266
-
267
- // Make sure we've received correct json
268
- if ( is_null( $response ) ) {
269
-
270
- wp_safe_redirect( add_query_arg( 'message', 'no_connection', wp_get_referer() ) );
271
- exit;
272
-
273
- }
274
-
275
- // Delete previous license
276
- delete_option( "su_option_license_$addon_id" );
277
-
278
- // Successful validation
279
- if ( isset( $response->license, $response->expires ) && $response->license === 'valid' ) {
280
-
281
- $license = array(
282
- 'key' => $license_key,
283
- 'expires' => $response->expires,
284
- );
285
-
286
- add_option( "su_option_license_$addon_id", $license, false );
287
-
288
- wp_safe_redirect( add_query_arg( 'message', 'activated', wp_get_referer() ) );
289
- exit;
290
-
291
- }
292
-
293
- // Get license (de)activation messages
294
- $messages = $this->get_license_messages();
295
-
296
- // Activation failed, we have description of the error
297
- if ( isset( $response->error, $messages[$response->error] ) ) {
298
-
299
- wp_safe_redirect( add_query_arg( 'message', $response->error, wp_get_referer() ) );
300
- exit;
301
-
302
- }
303
-
304
- // Default behavior
305
- wp_safe_redirect( add_query_arg( 'message', 'error', wp_get_referer() ) );
306
- exit;
307
-
308
- }
309
-
310
-
311
- /**
312
- * License deactivation handler.
313
- *
314
- * @since 5.0.0
315
- */
316
- public function deactivate_license() {
317
-
318
- // Check permission
319
- if ( ! current_user_can( $this->get_capability() ) ) {
320
- return;
321
- }
322
-
323
- // Check referer
324
- if ( ! wp_get_referer() ) {
325
- return;
326
- }
327
-
328
- // Verify nonce
329
- if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'su_deactivate_license' ) ) {
330
- return;
331
- }
332
-
333
- // Check add-on ID, name and license key
334
- if ( ! isset( $_POST['id'], $_POST['name'] ) ) {
335
- return;
336
- }
337
-
338
- // Sanitize input
339
- $addon_id = sanitize_title( $_POST['id'] );
340
- $addon_name = sanitize_text_field( $_POST['name'] );
341
- $license = $this->get_license( $addon_id );
342
-
343
- // Exit if there is no license
344
- if ( empty( $license['key'] ) ) {
345
-
346
- wp_safe_redirect( add_query_arg( 'message', 'deactivated', wp_get_referer() ) );
347
- exit;
348
-
349
- }
350
-
351
- // Call the remote API
352
- $response = $this->call_remote_api( 'deactivate_license', $license['key'], $addon_name );
353
-
354
- // Make sure we've received correct json
355
- if ( is_null( $response ) ) {
356
-
357
- wp_safe_redirect( add_query_arg( 'message', 'no_connection', wp_get_referer() ) );
358
- exit;
359
-
360
- }
361
-
362
- // Successful validation
363
- if ( isset( $response->license ) ) {
364
-
365
- // Delete the license
366
- delete_option( "su_option_license_$addon_id" );
367
-
368
- wp_safe_redirect( add_query_arg( 'message', 'deactivated', wp_get_referer() ) );
369
- exit;
370
-
371
- }
372
-
373
- // Default behavior
374
- wp_safe_redirect( add_query_arg( 'message', 'error', wp_get_referer() ) );
375
- exit;
376
-
377
- }
378
-
379
-
380
- /**
381
- * Call the store API.
382
- *
383
- * @since 5.0.0
384
- * @param string $action Action name, 'activate_license' or 'deactivate_license'
385
- * @param string $license License key
386
- * @param string $item_name Store item name
387
- * @return mixed Response
388
- */
389
- private function call_remote_api( $action, $license, $item_name ) {
390
-
391
- // Prepare store API params
392
- $store_api_params = array(
393
- 'edd_action' => $action,
394
- 'license' => $license,
395
- 'item_name' => urlencode( $item_name ),
396
- 'url' => home_url(),
397
- );
398
-
399
- // Call remote API
400
- $response = wp_remote_post(
401
- $this->get_store_url(),
402
- array(
403
- 'timeout' => 15,
404
- 'sslverify' => false,
405
- 'body' => $store_api_params,
406
- )
407
- );
408
-
409
- // Extract and try to parse the response body
410
- $response = json_decode( wp_remote_retrieve_body( $response ) );
411
-
412
- return $response;
413
-
414
- }
415
-
416
-
417
- /**
418
- * Retrieve license data.
419
- *
420
- * @since 5.0.0
421
- * @param string $addon Add-on ID
422
- * @return mixed Array with license data (key, expiration date), or FALSE if license not found
423
- */
424
- protected function get_license( $addon ) {
425
-
426
- $license = get_option( "su_option_license_$addon" );
427
-
428
- return isset( $license['key'], $license['expires'] ) ? $license : false;
429
-
430
- }
431
-
432
-
433
- /**
434
- * Retrieve the license expiration date.
435
- *
436
- * @since 5.0.0
437
- * @param string $addon Add-on ID
438
- * @return string The license expiration date, or 'Not activated'
439
- */
440
- protected function get_license_expiration_date( $addon ) {
441
-
442
- $license = $this->get_license( $addon );
443
-
444
- if ( !isset( $license['expires'] ) ) {
445
- return __( 'Not activated', 'shortcodes-ultimate' );
446
  }
447
 
448
- if ( $license['expires'] === 'lifetime' ) {
449
- return __( 'Never', 'shortcodes-ultimate' );
450
- }
451
-
452
- $format = get_option( 'date_format' );
453
- $expires = strtotime( $license['expires'], current_time( 'timestamp' ) );
454
-
455
- return date_i18n( $format, $expires );
456
 
457
- }
458
-
459
-
460
- /**
461
- * Retrieve the URL of the add-ons store.
462
- *
463
- * @since 5.0.0
464
- * @access private
465
- * @return string The URL of the add-ons store.
466
- */
467
- private function get_store_url() {
468
- return $this->store_url;
469
- }
470
-
471
-
472
- /**
473
- * Retrieve messages for license activation screen.
474
- *
475
- * @since 5.0.0
476
- * @access private
477
- * @return array Messages for license activation screen.
478
- */
479
- private function get_license_messages() {
480
-
481
- return array(
482
- 'activated' => array(
483
- 'text' => __( 'License succefully activated.', 'shortcodes-ultimate' ),
484
- 'class' => 'success',
485
- ),
486
- 'error' => array(
487
- 'text' => __( 'An error occurred. Please try again later.', 'shortcodes-ultimate' ),
488
- 'class' => 'error',
489
- ),
490
- 'missing' => array(
491
- 'text' => __( 'Invalid license key', 'shortcodes-ultimate' ),
492
- 'class' => 'error',
493
- ),
494
- 'license_not_activable' => array(
495
- 'text' => __( 'This license key is not suitable for selected add-on.', 'shortcodes-ultimate' ),
496
- 'class' => 'warning',
497
- ),
498
- 'item_name_mismatch' => array(
499
- 'text' => __( 'This license key is not suitable for selected add-on.', 'shortcodes-ultimate' ),
500
- 'class' => 'warning',
501
- ),
502
- 'revoked' => array(
503
- 'text' => __( 'License revoked.', 'shortcodes-ultimate' ),
504
- 'class' => 'error',
505
- ),
506
- 'no_activations_left' => array(
507
- 'text' => __( 'This license reached the limit of activations and connot be activated.', 'shortcodes-ultimate' ),
508
- 'class' => 'error',
509
- ),
510
- 'expired' => array(
511
- 'text' => __( 'License expired', 'shortcodes-ultimate' ),
512
- 'class' => 'error',
513
- ),
514
- 'no_connection' => array(
515
- 'text' => __( 'Unable to connect to the activation server. Please try again later.', 'shortcodes-ultimate' ),
516
- 'class' => 'warning',
517
- ),
518
- 'empty_key' => array(
519
- 'text' => __( 'Invalid license key', 'shortcodes-ultimate' ),
520
- 'class' => 'warning',
521
- ),
522
- 'deactivated' => array(
523
- 'text' => __( 'License successfully deactivated', 'shortcodes-ultimate' ),
524
- 'class' => 'success',
525
- ),
526
- );
527
 
528
  }
529
 
10
  */
11
  final class Shortcodes_Ultimate_Admin_Addons extends Shortcodes_Ultimate_Admin {
12
 
13
+ private $api_url;
 
 
 
 
 
 
14
  private $plugin_addons;
15
+ private $transient_name;
16
+ private $transient_timeout;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  /**
19
  * Initialize the class and set its properties.
26
 
27
  parent::__construct( $plugin_file, $plugin_version );
28
 
29
+ $this->api_url = 'https://getshortcodes.com/api/v1/add-ons/';
30
+ $this->addons = array();
31
+ $this->transient_name = 'su_addons';
32
+ $this->transient_timeout = 3 * DAY_IN_SECONDS;
33
 
34
  }
35
 
65
  */
66
  public function add_help_tab( $screen ) {
67
 
68
+ if ( ! $this->is_component_page() ) {
69
  return;
70
  }
71
 
102
  * @access private
103
  * @return array The plugin add-ons collection.
104
  */
105
+ protected function get_addons() {
106
 
107
+ if ( empty( $this->addons ) ) {
108
+ $this->addons = $this->load_addons();
109
  }
110
 
111
+ return apply_filters( 'su/admin/addons', $this->addons );
112
 
113
  }
114
 
119
  * @access private
120
  * @return array The plugin add-ons collection.
121
  */
122
+ private function load_addons() {
123
 
124
+ $transient = get_transient( $this->transient_name );
125
 
126
+ if ( ! empty( $transient ) ) {
127
+ return $transient;
128
  }
129
 
130
  $response = wp_remote_get(
131
+ $this->api_url,
132
  array( 'timeout' => 10, 'sslverify' => false, )
133
  );
134
  $response = json_decode( wp_remote_retrieve_body( $response ), true );
137
  return array();
138
  }
139
 
140
+ $this->addons = array();
141
 
142
  foreach ( $response as $item ) {
143
+ $this->addons[ $item['id'] ] = $item;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
145
 
146
+ set_transient( $this->transient_name, $this->addons, $this->transient_timeout );
 
 
 
 
 
 
 
147
 
148
+ return $this->addons;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
 
150
  }
151
 
admin/class-shortcodes-ultimate-admin-settings.php CHANGED
File without changes
admin/class-shortcodes-ultimate-admin-shortcodes.php CHANGED
@@ -461,7 +461,7 @@ final class Shortcodes_Ultimate_Admin_Shortcodes extends Shortcodes_Ultimate_Adm
461
 
462
  // <img> tag
463
  if ( strpos( $image, '/' ) !== false ) {
464
- $template = '<img src="%1$s" alt="" width="%1$s" height="%1$s">';
465
  }
466
 
467
  // <i> FontAwesome tag
461
 
462
  // <img> tag
463
  if ( strpos( $image, '/' ) !== false ) {
464
+ $template = '<img src="%1$s" alt="" width="%2$s" height="%2$s">';
465
  }
466
 
467
  // <i> FontAwesome tag
admin/class-shortcodes-ultimate-admin-top-level.php CHANGED
File without changes
admin/class-shortcodes-ultimate-admin.php CHANGED
File without changes
admin/class-shortcodes-ultimate-notice-rate.php CHANGED
File without changes
admin/class-shortcodes-ultimate-notice.php CHANGED
File without changes
admin/css/admin.css CHANGED
File without changes
admin/images/addons/bundle.png DELETED
Binary file
admin/images/addons/extra.png DELETED
Binary file
admin/images/addons/maker.png DELETED
Binary file
admin/images/addons/skins.png DELETED
Binary file
admin/images/shortcodes/_default.svg CHANGED
File without changes
admin/images/shortcodes/accordion.svg CHANGED
File without changes
admin/images/shortcodes/animate.svg CHANGED
File without changes
admin/images/shortcodes/audio.svg CHANGED
File without changes
admin/images/shortcodes/box.svg CHANGED
File without changes
admin/images/shortcodes/button.svg CHANGED
File without changes
admin/images/shortcodes/carousel.svg CHANGED
File without changes
admin/images/shortcodes/custom_gallery.svg CHANGED
File without changes
admin/images/shortcodes/dailymotion.svg CHANGED
File without changes
admin/images/shortcodes/divider.svg CHANGED
File without changes
admin/images/shortcodes/document.svg CHANGED
File without changes
admin/images/shortcodes/dropcap.svg CHANGED
File without changes
admin/images/shortcodes/dummy_image.svg CHANGED
File without changes
admin/images/shortcodes/dummy_text.svg CHANGED
File without changes
admin/images/shortcodes/expand.svg CHANGED
File without changes
admin/images/shortcodes/feed.svg CHANGED
File without changes
admin/images/shortcodes/gmap.svg CHANGED
File without changes
admin/images/shortcodes/guests.svg CHANGED
File without changes
admin/images/shortcodes/heading.svg CHANGED
File without changes
admin/images/shortcodes/highlight.svg CHANGED
File without changes
admin/images/shortcodes/label.svg CHANGED
File without changes
admin/images/shortcodes/lightbox.svg CHANGED
File without changes
admin/images/shortcodes/lightbox_content.svg CHANGED
File without changes
admin/images/shortcodes/list.svg CHANGED
File without changes
admin/images/shortcodes/members.svg CHANGED
File without changes
admin/images/shortcodes/menu.svg CHANGED
File without changes
admin/images/shortcodes/meta.svg CHANGED
File without changes
admin/images/shortcodes/note.svg CHANGED
File without changes
admin/images/shortcodes/permalink.svg CHANGED
File without changes
admin/images/shortcodes/post.svg CHANGED
File without changes
admin/images/shortcodes/posts.svg CHANGED
File without changes
admin/images/shortcodes/private.svg CHANGED
File without changes
admin/images/shortcodes/pullquote.svg CHANGED
File without changes
admin/images/shortcodes/qrcode.svg CHANGED
File without changes
admin/images/shortcodes/quote.svg CHANGED
File without changes
admin/images/shortcodes/row.svg CHANGED
File without changes
admin/images/shortcodes/scheduler.svg CHANGED
File without changes
admin/images/shortcodes/service.svg CHANGED
File without changes
admin/images/shortcodes/siblings.svg CHANGED
File without changes
admin/images/shortcodes/slider.svg CHANGED
File without changes
admin/images/shortcodes/spacer.svg CHANGED
File without changes
admin/images/shortcodes/spoiler.svg CHANGED
File without changes
admin/images/shortcodes/subpages.svg CHANGED
File without changes
admin/images/shortcodes/table.svg CHANGED
File without changes
admin/images/shortcodes/tabs.svg CHANGED
File without changes
admin/images/shortcodes/template.svg CHANGED
File without changes
admin/images/shortcodes/tooltip.svg CHANGED
File without changes
admin/images/shortcodes/user.svg CHANGED
File without changes
admin/images/shortcodes/video.svg CHANGED
File without changes
admin/images/shortcodes/vimeo.svg CHANGED
File without changes
admin/images/shortcodes/youtube.svg CHANGED
File without changes
admin/images/shortcodes/youtube_advanced.svg CHANGED
File without changes
admin/partials/help/addons.php CHANGED
File without changes
admin/partials/help/settings.php CHANGED
File without changes
admin/partials/help/shortcodes.php CHANGED
File without changes
admin/partials/help/sidebar.php CHANGED
File without changes
admin/partials/notices/licenses.php DELETED
@@ -1,5 +0,0 @@
1
- <?php defined( 'ABSPATH' ) or exit; ?>
2
-
3
- <div class="notice notice-<?php echo esc_attr( $data['class'] ); ?> is-dismissible">
4
- <p><?php echo sanitize_text_field( $data['text'] ); ?></p>
5
- </div>
 
 
 
 
 
admin/partials/notices/rate.php CHANGED
File without changes
admin/partials/pages/addons.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php defined( 'ABSPATH' ) or exit; ?>
2
- <?php $addons = $this->get_plugin_addons(); ?>
3
 
4
  <div id="su_admin_addons" class="wrap su-admin-addons wp-clearfix">
5
 
1
  <?php defined( 'ABSPATH' ) or exit; ?>
2
+ <?php $addons = $this->get_addons(); ?>
3
 
4
  <div id="su_admin_addons" class="wrap su-admin-addons wp-clearfix">
5
 
admin/partials/pages/settings.php CHANGED
File without changes
admin/partials/pages/shortcodes-list.php CHANGED
File without changes
admin/partials/pages/shortcodes-single.php CHANGED
File without changes
admin/partials/pages/shortcodes.php CHANGED
File without changes
admin/partials/settings/fields/checkbox.php CHANGED
File without changes
admin/partials/settings/fields/css.php CHANGED
File without changes
admin/partials/settings/fields/text.php CHANGED
File without changes
admin/partials/settings/sections/general.php CHANGED
File without changes
admin/partials/tabs.php CHANGED
File without changes
admin/stylus/admin.styl CHANGED
File without changes
assets/css/animate.css CHANGED
File without changes
assets/css/box-shortcodes.css CHANGED
File without changes
assets/css/cheatsheet.css CHANGED
File without changes
assets/css/content-shortcodes.css CHANGED
@@ -349,13 +349,23 @@
349
  /* Table
350
  ---------------------------------------------------------------*/
351
 
 
 
 
 
352
  .su-table table {
353
  width: 100% !important;
354
- margin: 0 0 1.5em 0 !important;
355
  border-collapse: collapse !important;
356
  font-size: 1em !important;
357
  border: 1px solid #ccc !important;
358
  }
 
 
 
 
 
 
359
  .su-table th {
360
  text-align: center !important;
361
  padding: 1em !important;
349
  /* Table
350
  ---------------------------------------------------------------*/
351
 
352
+ .su-table {
353
+ width: 100%;
354
+ margin-bottom: 1.5em;
355
+ }
356
  .su-table table {
357
  width: 100% !important;
358
+ margin: 0 !important;
359
  border-collapse: collapse !important;
360
  font-size: 1em !important;
361
  border: 1px solid #ccc !important;
362
  }
363
+ .su-table.su-table-responsive {
364
+ overflow-x: auto;
365
+ }
366
+ .su-table.su-table-responsive table {
367
+ width: auto !important;
368
+ }
369
  .su-table th {
370
  text-align: center !important;
371
  padding: 1em !important;
assets/css/galleries-shortcodes.css CHANGED
File without changes
assets/css/generator.css CHANGED
File without changes
assets/css/magnific-popup.css CHANGED
File without changes
assets/css/media-shortcodes.css CHANGED
File without changes
assets/css/options-page.css CHANGED
File without changes
assets/css/other-shortcodes.css CHANGED
File without changes
assets/css/owl-carousel-transitions.css DELETED
@@ -1,163 +0,0 @@
1
- /*
2
- * Owl Carousel CSS3 Transitions
3
- * v1.3.2
4
- */
5
-
6
- .owl-origin {
7
- -webkit-perspective: 1200px;
8
- -webkit-perspective-origin-x : 50%;
9
- -webkit-perspective-origin-y : 50%;
10
- -moz-perspective : 1200px;
11
- -moz-perspective-origin-x : 50%;
12
- -moz-perspective-origin-y : 50%;
13
- perspective : 1200px;
14
- }
15
- /* fade */
16
- .owl-fade-out {
17
- z-index: 10;
18
- -webkit-animation: fadeOut .7s both ease;
19
- -moz-animation: fadeOut .7s both ease;
20
- animation: fadeOut .7s both ease;
21
- }
22
- .owl-fade-in {
23
- -webkit-animation: fadeIn .7s both ease;
24
- -moz-animation: fadeIn .7s both ease;
25
- animation: fadeIn .7s both ease;
26
- }
27
- /* backSlide */
28
- .owl-backSlide-out {
29
- -webkit-animation: backSlideOut 1s both ease;
30
- -moz-animation: backSlideOut 1s both ease;
31
- animation: backSlideOut 1s both ease;
32
- }
33
- .owl-backSlide-in {
34
- -webkit-animation: backSlideIn 1s both ease;
35
- -moz-animation: backSlideIn 1s both ease;
36
- animation: backSlideIn 1s both ease;
37
- }
38
- /* goDown */
39
- .owl-goDown-out {
40
- -webkit-animation: scaleToFade .7s ease both;
41
- -moz-animation: scaleToFade .7s ease both;
42
- animation: scaleToFade .7s ease both;
43
- }
44
- .owl-goDown-in {
45
- -webkit-animation: goDown .6s ease both;
46
- -moz-animation: goDown .6s ease both;
47
- animation: goDown .6s ease both;
48
- }
49
- /* scaleUp */
50
- .owl-fadeUp-in {
51
- -webkit-animation: scaleUpFrom .5s ease both;
52
- -moz-animation: scaleUpFrom .5s ease both;
53
- animation: scaleUpFrom .5s ease both;
54
- }
55
-
56
- .owl-fadeUp-out {
57
- -webkit-animation: scaleUpTo .5s ease both;
58
- -moz-animation: scaleUpTo .5s ease both;
59
- animation: scaleUpTo .5s ease both;
60
- }
61
- /* Keyframes */
62
- /*empty*/
63
- @-webkit-keyframes empty {
64
- 0% {opacity: 1}
65
- }
66
- @-moz-keyframes empty {
67
- 0% {opacity: 1}
68
- }
69
- @keyframes empty {
70
- 0% {opacity: 1}
71
- }
72
- @-webkit-keyframes fadeIn {
73
- 0% { opacity:0; }
74
- 100% { opacity:1; }
75
- }
76
- @-moz-keyframes fadeIn {
77
- 0% { opacity:0; }
78
- 100% { opacity:1; }
79
- }
80
- @keyframes fadeIn {
81
- 0% { opacity:0; }
82
- 100% { opacity:1; }
83
- }
84
- @-webkit-keyframes fadeOut {
85
- 0% { opacity:1; }
86
- 100% { opacity:0; }
87
- }
88
- @-moz-keyframes fadeOut {
89
- 0% { opacity:1; }
90
- 100% { opacity:0; }
91
- }
92
- @keyframes fadeOut {
93
- 0% { opacity:1; }
94
- 100% { opacity:0; }
95
- }
96
- @-webkit-keyframes backSlideOut {
97
- 25% { opacity: .5; -webkit-transform: translateZ(-500px); }
98
- 75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
99
- 100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
100
- }
101
- @-moz-keyframes backSlideOut {
102
- 25% { opacity: .5; -moz-transform: translateZ(-500px); }
103
- 75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
104
- 100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
105
- }
106
- @keyframes backSlideOut {
107
- 25% { opacity: .5; transform: translateZ(-500px); }
108
- 75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
109
- 100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
110
- }
111
- @-webkit-keyframes backSlideIn {
112
- 0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
113
- 75% { opacity: .5; -webkit-transform: translateZ(-500px); }
114
- 100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
115
- }
116
- @-moz-keyframes backSlideIn {
117
- 0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
118
- 75% { opacity: .5; -moz-transform: translateZ(-500px); }
119
- 100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
120
- }
121
- @keyframes backSlideIn {
122
- 0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
123
- 75% { opacity: .5; transform: translateZ(-500px); }
124
- 100% { opacity: 1; transform: translateZ(0) translateX(0); }
125
- }
126
- @-webkit-keyframes scaleToFade {
127
- to { opacity: 0; -webkit-transform: scale(.8); }
128
- }
129
- @-moz-keyframes scaleToFade {
130
- to { opacity: 0; -moz-transform: scale(.8); }
131
- }
132
- @keyframes scaleToFade {
133
- to { opacity: 0; transform: scale(.8); }
134
- }
135
- @-webkit-keyframes goDown {
136
- from { -webkit-transform: translateY(-100%); }
137
- }
138
- @-moz-keyframes goDown {
139
- from { -moz-transform: translateY(-100%); }
140
- }
141
- @keyframes goDown {
142
- from { transform: translateY(-100%); }
143
- }
144
-
145
- @-webkit-keyframes scaleUpFrom {
146
- from { opacity: 0; -webkit-transform: scale(1.5); }
147
- }
148
- @-moz-keyframes scaleUpFrom {
149
- from { opacity: 0; -moz-transform: scale(1.5); }
150
- }
151
- @keyframes scaleUpFrom {
152
- from { opacity: 0; transform: scale(1.5); }
153
- }
154
-
155
- @-webkit-keyframes scaleUpTo {
156
- to { opacity: 0; -webkit-transform: scale(1.5); }
157
- }
158
- @-moz-keyframes scaleUpTo {
159
- to { opacity: 0; -moz-transform: scale(1.5); }
160
- }
161
- @keyframes scaleUpTo {
162
- to { opacity: 0; transform: scale(1.5); }
163
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/owl-carousel.css CHANGED
@@ -1,71 +1,6 @@
1
- /*
2
- * Core Owl Carousel CSS File
3
- * v1.3.2
 
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('../images/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
-
1
+ /**
2
+ * Owl Carousel v2.2.1
3
+ * Copyright 2013-2017 David Deutsch
4
+ * Licensed under ()
5
  */
6
+ .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/players-shortcodes.css CHANGED
File without changes
assets/css/qtip.css CHANGED
File without changes
assets/css/rtl-admin.css CHANGED
File without changes
assets/css/rtl-shortcodes.css CHANGED
File without changes
assets/css/simpleslider.css CHANGED
File without changes
assets/css/sunrise.css CHANGED
File without changes
assets/css/tinymce.css CHANGED
File without changes
assets/images/grabbing.png CHANGED
File without changes
assets/images/icon.png CHANGED
File without changes
assets/images/loading.gif CHANGED
File without changes
assets/images/player/button.png CHANGED
File without changes
assets/images/player/default-start.png CHANGED
File without changes
assets/images/player/default.png CHANGED
File without changes
assets/images/player/metro-start.png CHANGED
File without changes
assets/images/player/metro.png CHANGED
File without changes
assets/images/player/minimal.png CHANGED
File without changes
assets/images/quote.png CHANGED
File without changes
assets/images/search.png CHANGED
File without changes
assets/images/service.png CHANGED
File without changes
assets/images/spinner.gif CHANGED
File without changes
assets/images/spoiler.png CHANGED
File without changes
assets/images/styles/style-bubbles.png CHANGED
File without changes
assets/images/styles/style-glass.png CHANGED
File without changes
assets/images/styles/style-noise.png CHANGED
File without changes
assets/images/styles/style-soft.png CHANGED
File without changes
assets/images/swiper/default.png CHANGED
File without changes
assets/images/swiper/loading.gif CHANGED
File without changes
assets/js/chart.js CHANGED
File without changes
assets/js/form.js CHANGED
File without changes
assets/js/galleries-shortcodes.js CHANGED
File without changes
assets/js/generator.js CHANGED
File without changes
assets/js/inview.js CHANGED
File without changes
assets/js/jplayer.js CHANGED
File without changes
assets/js/jsrender.js CHANGED
File without changes
assets/js/magnific-popup.js CHANGED
File without changes
assets/js/options-page.js CHANGED
File without changes
assets/js/other-shortcodes.js CHANGED
@@ -137,22 +137,19 @@ jQuery(document).ready(function($) {
137
  });
138
 
139
  // Expand
140
- $('.su-expand').each(function() {
141
  var $this = $(this),
142
- $content = $this.children('.su-expand-content'),
143
- $more = $this.children('.su-expand-link-more'),
144
- $less = $this.children('.su-expand-link-less'),
145
- data = $this.data(),
146
- col = 'su-expand-collapsed';
147
 
148
- $more.on('click', function(e) {
149
  $content.css('max-height', 'none');
150
- $this.removeClass(col);
151
- });
152
- $less.on('click', function(e) {
153
- $content.css('max-height', data.height + 'px');
154
- $this.addClass(col);
155
- });
156
  });
157
 
158
  function is_transition_supported() {
137
  });
138
 
139
  // Expand
140
+ $('body:not(.su-other-shortcodes-loaded)').on('click', '.su-expand-link', function() {
141
  var $this = $(this),
142
+ $container = $this.parents('.su-expand'),
143
+ $content = $container.children('.su-expand-content');
 
 
 
144
 
145
+ if ($container.hasClass('su-expand-collapsed')) {
146
  $content.css('max-height', 'none');
147
+ }
148
+ else {
149
+ $content.css('max-height', $container.data('height') + 'px');
150
+ }
151
+
152
+ $container.toggleClass('su-expand-collapsed');
153
  });
154
 
155
  function is_transition_supported() {
assets/js/owl-carousel.js CHANGED
@@ -1 +1,7 @@
1
- "function"!=typeof Object.create&&(Object.create=function(t){function e(){}return e.prototype=t,new e}),function(t,e,o){var i={init:function(e,o){var i=this;i.$elem=t(o),i.options=t.extend({},t.fn.owlCarousel.options,i.$elem.data(),e),i.userOptions=e,i.loadContent()},loadContent:function(){function e(t){var e,o="";if("function"==typeof i.options.jsonSuccess)i.options.jsonSuccess.apply(this,[t]);else{for(e in t.owl)t.owl.hasOwnProperty(e)&&(o+=t.owl[e].item);i.$elem.html(o)}i.logIn()}var o,i=this;"function"==typeof i.options.beforeInit&&i.options.beforeInit.apply(this,[i.$elem]),"string"==typeof i.options.jsonPath?(o=i.options.jsonPath,t.getJSON(o,e)):i.logIn()},logIn:function(){var t=this;t.$elem.data({"owl-originalStyles":t.$elem.attr("style"),"owl-originalClasses":t.$elem.attr("class")}),t.$elem.css({opacity:0}),t.orignalItems=t.options.items,t.checkBrowser(),t.wrapperWidth=0,t.checkVisible=null,t.setVars()},setVars:function(){var t=this;return 0===t.$elem.children().length?!1:(t.baseClass(),t.eventTypes(),t.$userItems=t.$elem.children(),t.itemsAmount=t.$userItems.length,t.wrapItems(),t.$owlItems=t.$elem.find(".owl-item"),t.$owlWrapper=t.$elem.find(".owl-wrapper"),t.playDirection="next",t.prevItem=0,t.prevArr=[0],t.currentItem=0,t.customEvents(),void t.onStartup())},onStartup:function(){var t=this;t.updateItems(),t.calculateAll(),t.buildControls(),t.updateControls(),t.response(),t.moveEvents(),t.stopOnHover(),t.owlStatus(),t.options.transitionStyle!==!1&&t.transitionTypes(t.options.transitionStyle),t.options.autoPlay===!0&&(t.options.autoPlay=5e3),t.play(),t.$elem.find(".owl-wrapper").css("display","block"),t.$elem.is(":visible")?t.$elem.css("opacity",1):t.watchVisibility(),t.onstartup=!1,t.eachMoveUpdate(),"function"==typeof t.options.afterInit&&t.options.afterInit.apply(this,[t.$elem])},eachMoveUpdate:function(){var t=this;t.options.lazyLoad===!0&&t.lazyLoad(),t.options.autoHeight===!0&&t.autoHeight(),t.onVisibleItems(),"function"==typeof t.options.afterAction&&t.options.afterAction.apply(this,[t.$elem])},updateVars:function(){var t=this;"function"==typeof t.options.beforeUpdate&&t.options.beforeUpdate.apply(this,[t.$elem]),t.watchVisibility(),t.updateItems(),t.calculateAll(),t.updatePosition(),t.updateControls(),t.eachMoveUpdate(),"function"==typeof t.options.afterUpdate&&t.options.afterUpdate.apply(this,[t.$elem])},reload:function(){var t=this;e.setTimeout(function(){t.updateVars()},0)},watchVisibility:function(){var t=this;return t.$elem.is(":visible")!==!1?!1:(t.$elem.css({opacity:0}),e.clearInterval(t.autoPlayInterval),e.clearInterval(t.checkVisible),void(t.checkVisible=e.setInterval(function(){t.$elem.is(":visible")&&(t.reload(),t.$elem.animate({opacity:1},200),e.clearInterval(t.checkVisible))},500)))},wrapItems:function(){var t=this;t.$userItems.wrapAll('<div class="owl-wrapper">').wrap('<div class="owl-item"></div>'),t.$elem.find(".owl-wrapper").wrap('<div class="owl-wrapper-outer">'),t.wrapperOuter=t.$elem.find(".owl-wrapper-outer"),t.$elem.css("display","block")},baseClass:function(){var t=this,e=t.$elem.hasClass(t.options.baseClass),o=t.$elem.hasClass(t.options.theme);e||t.$elem.addClass(t.options.baseClass),o||t.$elem.addClass(t.options.theme)},updateItems:function(){var e,o,i=this;if(i.options.responsive===!1)return!1;if(i.options.singleItem===!0)return i.options.items=i.orignalItems=1,i.options.itemsCustom=!1,i.options.itemsDesktop=!1,i.options.itemsDesktopSmall=!1,i.options.itemsTablet=!1,i.options.itemsTabletSmall=!1,i.options.itemsMobile=!1,!1;if(e=t(i.options.responsiveBaseWidth).width(),e>(i.options.itemsDesktop[0]||i.orignalItems)&&(i.options.items=i.orignalItems),i.options.itemsCustom!==!1)for(i.options.itemsCustom.sort(function(t,e){return t[0]-e[0]}),o=0;o<i.options.itemsCustom.length;o+=1)i.options.itemsCustom[o][0]<=e&&(i.options.items=i.options.itemsCustom[o][1]);else e<=i.options.itemsDesktop[0]&&i.options.itemsDesktop!==!1&&(i.options.items=i.options.itemsDesktop[1]),e<=i.options.itemsDesktopSmall[0]&&i.options.itemsDesktopSmall!==!1&&(i.options.items=i.options.itemsDesktopSmall[1]),e<=i.options.itemsTablet[0]&&i.options.itemsTablet!==!1&&(i.options.items=i.options.itemsTablet[1]),e<=i.options.itemsTabletSmall[0]&&i.options.itemsTabletSmall!==!1&&(i.options.items=i.options.itemsTabletSmall[1]),e<=i.options.itemsMobile[0]&&i.options.itemsMobile!==!1&&(i.options.items=i.options.itemsMobile[1]);i.options.items>i.itemsAmount&&i.options.itemsScaleUp===!0&&(i.options.items=i.itemsAmount)},response:function(){var o,i,n=this;return n.options.responsive!==!0?!1:(i=t(e).width(),n.resizer=function(){t(e).width()!==i&&(n.options.autoPlay!==!1&&e.clearInterval(n.autoPlayInterval),e.clearTimeout(o),o=e.setTimeout(function(){i=t(e).width(),n.updateVars()},n.options.responsiveRefreshRate))},void t(e).resize(n.resizer))},updatePosition:function(){var t=this;t.jumpTo(t.currentItem),t.options.autoPlay!==!1&&t.checkAp()},appendItemsSizes:function(){var e=this,o=0,i=e.itemsAmount-e.options.items;e.$owlItems.each(function(n){var s=t(this);s.css({width:e.itemWidth}).data("owl-item",Number(n)),(n%e.options.items===0||n===i)&&(n>i||(o+=1)),s.data("owl-roundPages",o)})},appendWrapperSizes:function(){var t=this,e=t.$owlItems.length*t.itemWidth;t.$owlWrapper.css({width:2*e,left:0}),t.appendItemsSizes()},calculateAll:function(){var t=this;t.calculateWidth(),t.appendWrapperSizes(),t.loops(),t.max()},calculateWidth:function(){var t=this;t.itemWidth=Math.round(t.$elem.width()/t.options.items)},max:function(){var t=this,e=-1*(t.itemsAmount*t.itemWidth-t.options.items*t.itemWidth);return t.options.items>t.itemsAmount?(t.maximumItem=0,e=0,t.maximumPixels=0):(t.maximumItem=t.itemsAmount-t.options.items,t.maximumPixels=e),e},min:function(){return 0},loops:function(){var e,o,i,n=this,s=0,a=0;for(n.positionsInArray=[0],n.pagesInArray=[],e=0;e<n.itemsAmount;e+=1)a+=n.itemWidth,n.positionsInArray.push(-a),n.options.scrollPerPage===!0&&(o=t(n.$owlItems[e]),i=o.data("owl-roundPages"),i!==s&&(n.pagesInArray[s]=n.positionsInArray[e],s=i))},buildControls:function(){var e=this;(e.options.navigation===!0||e.options.pagination===!0)&&(e.owlControls=t('<div class="owl-controls"/>').toggleClass("clickable",!e.browser.isTouch).appendTo(e.$elem)),e.options.pagination===!0&&e.buildPagination(),e.options.navigation===!0&&e.buildButtons()},buildButtons:function(){var e=this,o=t('<div class="owl-buttons"/>');e.owlControls.append(o),e.buttonPrev=t("<div/>",{"class":"owl-prev",html:e.options.navigationText[0]||""}),e.buttonNext=t("<div/>",{"class":"owl-next",html:e.options.navigationText[1]||""}),o.append(e.buttonPrev).append(e.buttonNext),o.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(t){t.preventDefault()}),o.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(o){o.preventDefault(),t(this).hasClass("owl-next")?e.next():e.prev()})},buildPagination:function(){var e=this;e.paginationWrapper=t('<div class="owl-pagination"/>'),e.owlControls.append(e.paginationWrapper),e.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(o){o.preventDefault(),Number(t(this).data("owl-page"))!==e.currentItem&&e.goTo(Number(t(this).data("owl-page")),!0)})},updatePagination:function(){var e,o,i,n,s,a,r=this;if(r.options.pagination===!1)return!1;for(r.paginationWrapper.html(""),e=0,o=r.itemsAmount-r.itemsAmount%r.options.items,n=0;n<r.itemsAmount;n+=1)n%r.options.items===0&&(e+=1,o===n&&(i=r.itemsAmount-r.options.items),s=t("<div/>",{"class":"owl-page"}),a=t("<span></span>",{text:r.options.paginationNumbers===!0?e:"","class":r.options.paginationNumbers===!0?"owl-numbers":""}),s.append(a),s.data("owl-page",o===n?i:n),s.data("owl-roundPages",e),r.paginationWrapper.append(s));r.checkPagination()},checkPagination:function(){var e=this;return e.options.pagination===!1?!1:void e.paginationWrapper.find(".owl-page").each(function(){t(this).data("owl-roundPages")===t(e.$owlItems[e.currentItem]).data("owl-roundPages")&&(e.paginationWrapper.find(".owl-page").removeClass("active"),t(this).addClass("active"))})},checkNavigation:function(){var t=this;return t.options.navigation===!1?!1:void(t.options.rewindNav===!1&&(0===t.currentItem&&0===t.maximumItem?(t.buttonPrev.addClass("disabled"),t.buttonNext.addClass("disabled")):0===t.currentItem&&0!==t.maximumItem?(t.buttonPrev.addClass("disabled"),t.buttonNext.removeClass("disabled")):t.currentItem===t.maximumItem?(t.buttonPrev.removeClass("disabled"),t.buttonNext.addClass("disabled")):0!==t.currentItem&&t.currentItem!==t.maximumItem&&(t.buttonPrev.removeClass("disabled"),t.buttonNext.removeClass("disabled"))))},updateControls:function(){var t=this;t.updatePagination(),t.checkNavigation(),t.owlControls&&(t.options.items>=t.itemsAmount?t.owlControls.hide():t.owlControls.show())},destroyControls:function(){var t=this;t.owlControls&&t.owlControls.remove()},next:function(t){var e=this;if(e.isTransition)return!1;if(e.currentItem+=e.options.scrollPerPage===!0?e.options.items:1,e.currentItem>e.maximumItem+(e.options.scrollPerPage===!0?e.options.items-1:0)){if(e.options.rewindNav!==!0)return e.currentItem=e.maximumItem,!1;e.currentItem=0,t="rewind"}e.goTo(e.currentItem,t)},prev:function(t){var e=this;if(e.isTransition)return!1;if(e.options.scrollPerPage===!0&&e.currentItem>0&&e.currentItem<e.options.items?e.currentItem=0:e.currentItem-=e.options.scrollPerPage===!0?e.options.items:1,e.currentItem<0){if(e.options.rewindNav!==!0)return e.currentItem=0,!1;e.currentItem=e.maximumItem,t="rewind"}e.goTo(e.currentItem,t)},goTo:function(t,o,i){var n,s=this;return s.isTransition?!1:("function"==typeof s.options.beforeMove&&s.options.beforeMove.apply(this,[s.$elem]),t>=s.maximumItem?t=s.maximumItem:0>=t&&(t=0),s.currentItem=s.owl.currentItem=t,s.options.transitionStyle!==!1&&"drag"!==i&&1===s.options.items&&s.browser.support3d===!0?(s.swapSpeed(0),s.browser.support3d===!0?s.transition3d(s.positionsInArray[t]):s.css2slide(s.positionsInArray[t],1),s.afterGo(),s.singleItemTransition(),!1):(n=s.positionsInArray[t],s.browser.support3d===!0?(s.isCss3Finish=!1,o===!0?(s.swapSpeed("paginationSpeed"),e.setTimeout(function(){s.isCss3Finish=!0},s.options.paginationSpeed)):"rewind"===o?(s.swapSpeed(s.options.rewindSpeed),e.setTimeout(function(){s.isCss3Finish=!0},s.options.rewindSpeed)):(s.swapSpeed("slideSpeed"),e.setTimeout(function(){s.isCss3Finish=!0},s.options.slideSpeed)),s.transition3d(n)):o===!0?s.css2slide(n,s.options.paginationSpeed):"rewind"===o?s.css2slide(n,s.options.rewindSpeed):s.css2slide(n,s.options.slideSpeed),void s.afterGo()))},jumpTo:function(t){var e=this;"function"==typeof e.options.beforeMove&&e.options.beforeMove.apply(this,[e.$elem]),t>=e.maximumItem||-1===t?t=e.maximumItem:0>=t&&(t=0),e.swapSpeed(0),e.browser.support3d===!0?e.transition3d(e.positionsInArray[t]):e.css2slide(e.positionsInArray[t],1),e.currentItem=e.owl.currentItem=t,e.afterGo()},afterGo:function(){var t=this;t.prevArr.push(t.currentItem),t.prevItem=t.owl.prevItem=t.prevArr[t.prevArr.length-2],t.prevArr.shift(0),t.prevItem!==t.currentItem&&(t.checkPagination(),t.checkNavigation(),t.eachMoveUpdate(),t.options.autoPlay!==!1&&t.checkAp()),"function"==typeof t.options.afterMove&&t.prevItem!==t.currentItem&&t.options.afterMove.apply(this,[t.$elem])},stop:function(){var t=this;t.apStatus="stop",e.clearInterval(t.autoPlayInterval)},checkAp:function(){var t=this;"stop"!==t.apStatus&&t.play()},play:function(){var t=this;return t.apStatus="play",t.options.autoPlay===!1?!1:(e.clearInterval(t.autoPlayInterval),void(t.autoPlayInterval=e.setInterval(function(){t.next(!0)},t.options.autoPlay)))},swapSpeed:function(t){var e=this;"slideSpeed"===t?e.$owlWrapper.css(e.addCssSpeed(e.options.slideSpeed)):"paginationSpeed"===t?e.$owlWrapper.css(e.addCssSpeed(e.options.paginationSpeed)):"string"!=typeof t&&e.$owlWrapper.css(e.addCssSpeed(t))},addCssSpeed:function(t){return{"-webkit-transition":"all "+t+"ms ease","-moz-transition":"all "+t+"ms ease","-o-transition":"all "+t+"ms ease",transition:"all "+t+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(t){return{"-webkit-transform":"translate3d("+t+"px, 0px, 0px)","-moz-transform":"translate3d("+t+"px, 0px, 0px)","-o-transform":"translate3d("+t+"px, 0px, 0px)","-ms-transform":"translate3d("+t+"px, 0px, 0px)",transform:"translate3d("+t+"px, 0px,0px)"}},transition3d:function(t){var e=this;e.$owlWrapper.css(e.doTranslate(t))},css2move:function(t){var e=this;e.$owlWrapper.css({left:t})},css2slide:function(t,e){var o=this;o.isCssFinish=!1,o.$owlWrapper.stop(!0,!0).animate({left:t},{duration:e||o.options.slideSpeed,complete:function(){o.isCssFinish=!0}})},checkBrowser:function(){var t,i,n,s,a=this,r="translate3d(0px, 0px, 0px)",l=o.createElement("div");l.style.cssText=" -moz-transform:"+r+"; -ms-transform:"+r+"; -o-transform:"+r+"; -webkit-transform:"+r+"; transform:"+r,t=/translate3d\(0px, 0px, 0px\)/g,i=l.style.cssText.match(t),n=null!==i&&i.length>=1,s="ontouchstart"in e||e.navigator.msMaxTouchPoints,a.browser={support3d:n,isTouch:s}},moveEvents:function(){var t=this;(t.options.mouseDrag!==!1||t.options.touchDrag!==!1)&&(t.gestures(),t.disabledEvents())},eventTypes:function(){var t=this,e=["s","e","x"];t.ev_types={},t.options.mouseDrag===!0&&t.options.touchDrag===!0?e=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:t.options.mouseDrag===!1&&t.options.touchDrag===!0?e=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:t.options.mouseDrag===!0&&t.options.touchDrag===!1&&(e=["mousedown.owl","mousemove.owl","mouseup.owl"]),t.ev_types.start=e[0],t.ev_types.move=e[1],t.ev_types.end=e[2]},disabledEvents:function(){var e=this;e.$elem.on("dragstart.owl",function(t){t.preventDefault()}),e.$elem.on("mousedown.disableTextSelect",function(e){return t(e.target).is("input, textarea, select, option")})},gestures:function(){function i(t){if(void 0!==t.touches)return{x:t.touches[0].pageX,y:t.touches[0].pageY};if(void 0===t.touches){if(void 0!==t.pageX)return{x:t.pageX,y:t.pageY};if(void 0===t.pageX)return{x:t.clientX,y:t.clientY}}}function n(e){"on"===e?(t(o).on(l.ev_types.move,a),t(o).on(l.ev_types.end,r)):"off"===e&&(t(o).off(l.ev_types.move),t(o).off(l.ev_types.end))}function s(o){var s,a=o.originalEvent||o||e.event;if(3===a.which)return!1;if(!(l.itemsAmount<=l.options.items)){if(l.isCssFinish===!1&&!l.options.dragBeforeAnimFinish)return!1;if(l.isCss3Finish===!1&&!l.options.dragBeforeAnimFinish)return!1;l.options.autoPlay!==!1&&e.clearInterval(l.autoPlayInterval),l.browser.isTouch===!0||l.$owlWrapper.hasClass("grabbing")||l.$owlWrapper.addClass("grabbing"),l.newPosX=0,l.newRelativeX=0,t(this).css(l.removeTransition()),s=t(this).position(),p.relativePos=s.left,p.offsetX=i(a).x-s.left,p.offsetY=i(a).y-s.top,n("on"),p.sliding=!1,p.targetElement=a.target||a.srcElement}}function a(n){var s,a,r=n.originalEvent||n||e.event;l.newPosX=i(r).x-p.offsetX,l.newPosY=i(r).y-p.offsetY,l.newRelativeX=l.newPosX-p.relativePos,"function"==typeof l.options.startDragging&&p.dragging!==!0&&0!==l.newRelativeX&&(p.dragging=!0,l.options.startDragging.apply(l,[l.$elem])),(l.newRelativeX>8||l.newRelativeX<-8)&&l.browser.isTouch===!0&&(void 0!==r.preventDefault?r.preventDefault():r.returnValue=!1,p.sliding=!0),(l.newPosY>10||l.newPosY<-10)&&p.sliding===!1&&t(o).off("touchmove.owl"),s=function(){return l.newRelativeX/5},a=function(){return l.maximumPixels+l.newRelativeX/5},l.newPosX=Math.max(Math.min(l.newPosX,s()),a()),l.browser.support3d===!0?l.transition3d(l.newPosX):l.css2move(l.newPosX)}function r(o){var i,s,a,r=o.originalEvent||o||e.event;r.target=r.target||r.srcElement,p.dragging=!1,l.browser.isTouch!==!0&&l.$owlWrapper.removeClass("grabbing"),l.dragDirection=l.owl.dragDirection=l.newRelativeX<0?"left":"right",0!==l.newRelativeX&&(i=l.getNewPosition(),l.goTo(i,!1,"drag"),p.targetElement===r.target&&l.browser.isTouch!==!0&&(t(r.target).on("click.disable",function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t(e.target).off("click.disable")}),s=t._data(r.target,"events").click,a=s.pop(),s.splice(0,0,a))),n("off")}var l=this,p={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};l.isCssFinish=!0,l.$elem.on(l.ev_types.start,".owl-wrapper",s)},getNewPosition:function(){var t=this,e=t.closestItem();return e>t.maximumItem?(t.currentItem=t.maximumItem,e=t.maximumItem):t.newPosX>=0&&(e=0,t.currentItem=0),e},closestItem:function(){var e=this,o=e.options.scrollPerPage===!0?e.pagesInArray:e.positionsInArray,i=e.newPosX,n=null;return t.each(o,function(s,a){i-e.itemWidth/20>o[s+1]&&i-e.itemWidth/20<a&&"left"===e.moveDirection()?(n=a,e.currentItem=e.options.scrollPerPage===!0?t.inArray(n,e.positionsInArray):s):i+e.itemWidth/20<a&&i+e.itemWidth/20>(o[s+1]||o[s]-e.itemWidth)&&"right"===e.moveDirection()&&(e.options.scrollPerPage===!0?(n=o[s+1]||o[o.length-1],e.currentItem=t.inArray(n,e.positionsInArray)):(n=o[s+1],e.currentItem=s+1))}),e.currentItem},moveDirection:function(){var t,e=this;return e.newRelativeX<0?(t="right",e.playDirection="next"):(t="left",e.playDirection="prev"),t},customEvents:function(){var t=this;t.$elem.on("owl.next",function(){t.next()}),t.$elem.on("owl.prev",function(){t.prev()}),t.$elem.on("owl.play",function(e,o){t.options.autoPlay=o,t.play(),t.hoverStatus="play"}),t.$elem.on("owl.stop",function(){t.stop(),t.hoverStatus="stop"}),t.$elem.on("owl.goTo",function(e,o){t.goTo(o)}),t.$elem.on("owl.jumpTo",function(e,o){t.jumpTo(o)})},stopOnHover:function(){var t=this;t.options.stopOnHover===!0&&t.browser.isTouch!==!0&&t.options.autoPlay!==!1&&(t.$elem.on("mouseover",function(){t.stop()}),t.$elem.on("mouseout",function(){"stop"!==t.hoverStatus&&t.play()}))},lazyLoad:function(){var e,o,i,n,s,a=this;if(a.options.lazyLoad===!1)return!1;for(e=0;e<a.itemsAmount;e+=1)o=t(a.$owlItems[e]),"loaded"!==o.data("owl-loaded")&&(i=o.data("owl-item"),n=o.find(".lazyOwl"),"string"==typeof n.data("src")?(void 0===o.data("owl-loaded")&&(n.hide(),o.addClass("loading").data("owl-loaded","checked")),s=a.options.lazyFollow===!0?i>=a.currentItem:!0,s&&i<a.currentItem+a.options.items&&n.length&&n.each(function(){a.lazyPreload(o,t(this))})):o.data("owl-loaded","loaded"))},lazyPreload:function(t,o){function i(){t.data("owl-loaded","loaded").removeClass("loading"),o.removeAttr("data-src"),"fade"===a.options.lazyEffect?o.fadeIn(400):o.show(),"function"==typeof a.options.afterLazyLoad&&a.options.afterLazyLoad.apply(this,[a.$elem])}function n(){r+=1,a.completeImg(o.get(0))||s===!0?i():100>=r?e.setTimeout(n,100):i()}var s,a=this,r=0;"DIV"===o.prop("tagName")?(o.css("background-image","url("+o.data("src")+")"),s=!0):o[0].src=o.data("src"),n()},autoHeight:function(){function o(){var o=t(s.$owlItems[s.currentItem]).height();s.wrapperOuter.css("height",o+"px"),s.wrapperOuter.hasClass("autoHeight")||e.setTimeout(function(){s.wrapperOuter.addClass("autoHeight")},0)}function i(){n+=1,s.completeImg(a.get(0))?o():100>=n?e.setTimeout(i,100):s.wrapperOuter.css("height","")}var n,s=this,a=t(s.$owlItems[s.currentItem]).find("img");void 0!==a.get(0)?(n=0,i()):o()},completeImg:function(t){var e;return t.complete?(e=typeof t.naturalWidth,"undefined"!==e&&0===t.naturalWidth?!1:!0):!1},onVisibleItems:function(){var e,o=this;for(o.options.addClassActive===!0&&o.$owlItems.removeClass("active"),o.visibleItems=[],e=o.currentItem;e<o.currentItem+o.options.items;e+=1)o.visibleItems.push(e),o.options.addClassActive===!0&&t(o.$owlItems[e]).addClass("active");o.owl.visibleItems=o.visibleItems},transitionTypes:function(t){var e=this;e.outClass="owl-"+t+"-out",e.inClass="owl-"+t+"-in"},singleItemTransition:function(){function t(t){return{position:"relative",left:t+"px"}}var e=this,o=e.outClass,i=e.inClass,n=e.$owlItems.eq(e.currentItem),s=e.$owlItems.eq(e.prevItem),a=Math.abs(e.positionsInArray[e.currentItem])+e.positionsInArray[e.prevItem],r=Math.abs(e.positionsInArray[e.currentItem])+e.itemWidth/2,l="webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend";e.isTransition=!0,e.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":r+"px","-moz-perspective-origin":r+"px","perspective-origin":r+"px"}),s.css(t(a,10)).addClass(o).on(l,function(){e.endPrev=!0,s.off(l),e.clearTransStyle(s,o)}),n.addClass(i).on(l,function(){e.endCurrent=!0,n.off(l),e.clearTransStyle(n,i)})},clearTransStyle:function(t,e){var o=this;t.css({position:"",left:""}).removeClass(e),o.endPrev&&o.endCurrent&&(o.$owlWrapper.removeClass("owl-origin"),o.endPrev=!1,o.endCurrent=!1,o.isTransition=!1)},owlStatus:function(){var t=this;t.owl={userOptions:t.userOptions,baseElement:t.$elem,userItems:t.$userItems,owlItems:t.$owlItems,currentItem:t.currentItem,prevItem:t.prevItem,visibleItems:t.visibleItems,isTouch:t.browser.isTouch,browser:t.browser,dragDirection:t.dragDirection}},clearEvents:function(){var i=this;i.$elem.off(".owl owl mousedown.disableTextSelect"),t(o).off(".owl owl"),t(e).off("resize",i.resizer)},unWrap:function(){var t=this;0!==t.$elem.children().length&&(t.$owlWrapper.unwrap(),t.$userItems.unwrap().unwrap(),t.owlControls&&t.owlControls.remove()),t.clearEvents(),t.$elem.attr({style:t.$elem.data("owl-originalStyles")||"","class":t.$elem.data("owl-originalClasses")})},destroy:function(){var t=this;t.stop(),e.clearInterval(t.checkVisible),t.unWrap(),t.$elem.removeData()},reinit:function(e){var o=this,i=t.extend({},o.userOptions,e);o.unWrap(),o.init(i,o.$elem)},addItem:function(t,e){var o,i=this;return t?0===i.$elem.children().length?(i.$elem.append(t),i.setVars(),!1):(i.unWrap(),o=void 0===e||-1===e?-1:e,o>=i.$userItems.length||-1===o?i.$userItems.eq(-1).after(t):i.$userItems.eq(o).before(t),void i.setVars()):!1},removeItem:function(t){var e,o=this;return 0===o.$elem.children().length?!1:(e=void 0===t||-1===t?-1:t,o.unWrap(),o.$userItems.eq(e).remove(),void o.setVars())}};t.fn.owlCarousel=function(e){return this.each(function(){if(t(this).data("owl-init")===!0)return!1;t(this).data("owl-init",!0);var o=Object.create(i);o.init(e,this),t.data(this,"owlCarousel",o)})},t.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,responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:e,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);
 
 
 
 
 
 
1
+ /**
2
+ * Owl Carousel v2.2.1
3
+ * Copyright 2013-2017 David Deutsch
4
+ * Licensed under ()
5
+ */
6
+ !function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g--;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var b,c,e;b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&e<=0&&this.preloadAutoWidthImages(b)}this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('<div class="'+this.settings.stageOuterClass+'"/>'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),this.settings.responsive!==!1&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var d=-1,e=30,f=this.width(),g=this.coordinates();return this.settings.freeDrag||a.each(g,a.proxy(function(a,h){return"left"===c&&b>h-e&&b<h+e?d=a:"right"===c&&b>h-f-e&&b<h-f+e?d=a+1:this.op(b,"<",h)&&this.op(b,">",g[a+1]||h-f)&&(d="left"===c?a+1:a),d===-1},this)),this.settings.loop||(this.op(b,">",g[this.minimum()])?d=b=this.minimum():this.op(b,"<",g[this.maximum()])&&(d=b=this.maximum())),d},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){for(b=this._items.length,c=this._items[--b].width(),d=this.$element.width();b--&&(c+=this._items[b].width()+this.settings.margin,!(c>d)););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=f*-1*g),a=c+e,d=((a-h)%g+g)%g+h,d!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.$element.is(":visible")&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),this.settings.responsive!==!1&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&a.namespace.indexOf("owl")!==-1?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&e*-1||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?'<div class="owl-video-tn '+j+'" '+i+'="'+a+'"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url('+a+')"></div>',b.after(d),b.after(e)};if(b.wrap('<div class="owl-video-wrapper"'+g+"></div>"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),"youtube"===f.type?c='<iframe width="'+g+'" height="'+h+'" src="//www.youtube.com/embed/'+f.id+"?autoplay=1&rel=0&v="+f.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===f.type?c='<iframe src="//player.vimeo.com/video/'+f.id+'?autoplay=1" width="'+g+'" height="'+h+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>':"vzaar"===f.type&&(c='<iframe frameborder="0"height="'+h+'"width="'+g+'" allowfullscreen mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/'+f.id+'/player?autoplay=true"></iframe>'),a('<div class="owl-video-frame">'+c+"</div>").insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},
7
+ a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(a,b){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(d,e){return this._timeout&&b.clearTimeout(this._timeout),b.setTimeout(a.proxy(function(){this._paused||this._core.is("busy")||this._core.is("interacting")||c.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),d||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is("rotating")&&(b.clearTimeout(this._timeout),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a("<div>").addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);
assets/js/players-shortcodes.js CHANGED
File without changes
assets/js/qtip.js CHANGED
File without changes
assets/js/simpleslider.js CHANGED
File without changes
assets/js/sunrise.js CHANGED
File without changes
assets/js/swiper.js CHANGED
File without changes
assets/js/tinymce.js CHANGED
File without changes
assets/other/Jplayer.swf CHANGED
File without changes
inc/core/assets.php CHANGED
@@ -48,9 +48,8 @@ class Su_Assets {
48
  wp_register_script( 'simpleslider', plugins_url( 'assets/js/simpleslider.js', SU_PLUGIN_FILE ), array( 'jquery' ), '1.0.0', true );
49
  wp_register_style( 'simpleslider', plugins_url( 'assets/css/simpleslider.css', SU_PLUGIN_FILE ), false, '1.0.0', 'all' );
50
  // Owl Carousel
51
- wp_register_script( 'owl-carousel', plugins_url( 'assets/js/owl-carousel.js', SU_PLUGIN_FILE ), array( 'jquery' ), '1.3.2', true );
52
- wp_register_style( 'owl-carousel', plugins_url( 'assets/css/owl-carousel.css', SU_PLUGIN_FILE ), false, '1.3.2', 'all' );
53
- wp_register_style( 'owl-carousel-transitions', plugins_url( 'assets/css/owl-carousel-transitions.css', SU_PLUGIN_FILE ), false, '1.3.2', 'all' );
54
  // Font Awesome
55
  wp_register_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css', false, '4.4.0', 'all' );
56
  // Animate.css
@@ -155,33 +154,33 @@ class Su_Assets {
155
  public static function custom_css() {
156
 
157
  // Get custom CSS and apply filters to it
158
- $custom_css = apply_filters( 'su/assets/custom_css', get_option( 'su_option_custom-css' ) );
159
-
160
- if ( empty( $custom_css ) ) {
161
- return;
162
- }
163
 
164
  $template = '%1$s<!-- %2$s - %3$s -->%1$s<style type="text/css">%1$s%5$s%1$s</style>%1$s<!-- %2$s - %4$s -->%1$s';
165
  $template = apply_filters( 'su/assets/custom_css/template', $template );
166
 
167
- $custom_css = str_replace(
168
- array( '%theme_url%', '%home_url%', '%plugin_url%' ),
169
- array(
170
- trailingslashit( get_stylesheet_directory_uri() ),
171
- trailingslashit( get_option( 'home' ) ),
172
- trailingslashit( plugins_url( '', SU_PLUGIN_FILE ) ),
173
- ),
174
- $custom_css
175
- );
 
 
176
 
177
- printf(
178
- $template,
179
- PHP_EOL,
180
- 'Shortcodes Ultimate custom CSS',
181
- 'start',
182
- 'end',
183
- strip_tags( $custom_css )
184
- );
 
 
185
 
186
  // Hook
187
  do_action( 'su/assets/custom_css/after' );
48
  wp_register_script( 'simpleslider', plugins_url( 'assets/js/simpleslider.js', SU_PLUGIN_FILE ), array( 'jquery' ), '1.0.0', true );
49
  wp_register_style( 'simpleslider', plugins_url( 'assets/css/simpleslider.css', SU_PLUGIN_FILE ), false, '1.0.0', 'all' );
50
  // Owl Carousel
51
+ wp_register_script( 'owl-carousel', plugins_url( 'assets/js/owl-carousel.js', SU_PLUGIN_FILE ), array( 'jquery' ), '2.2.1', true );
52
+ wp_register_style( 'owl-carousel', plugins_url( 'assets/css/owl-carousel.css', SU_PLUGIN_FILE ), false, '2.2.1', 'all' );
 
53
  // Font Awesome
54
  wp_register_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css', false, '4.4.0', 'all' );
55
  // Animate.css
154
  public static function custom_css() {
155
 
156
  // Get custom CSS and apply filters to it
157
+ $custom_css = (string) apply_filters( 'su/assets/custom_css', get_option( 'su_option_custom-css' ) );
 
 
 
 
158
 
159
  $template = '%1$s<!-- %2$s - %3$s -->%1$s<style type="text/css">%1$s%5$s%1$s</style>%1$s<!-- %2$s - %4$s -->%1$s';
160
  $template = apply_filters( 'su/assets/custom_css/template', $template );
161
 
162
+ if ( ! empty( $custom_css ) ) {
163
+
164
+ $custom_css = str_replace(
165
+ array( '%theme_url%', '%home_url%', '%plugin_url%' ),
166
+ array(
167
+ trailingslashit( get_stylesheet_directory_uri() ),
168
+ trailingslashit( get_option( 'home' ) ),
169
+ trailingslashit( plugins_url( '', SU_PLUGIN_FILE ) ),
170
+ ),
171
+ $custom_css
172
+ );
173
 
174
+ printf(
175
+ $template,
176
+ PHP_EOL,
177
+ 'Shortcodes Ultimate custom CSS',
178
+ 'start',
179
+ 'end',
180
+ strip_tags( $custom_css )
181
+ );
182
+
183
+ }
184
 
185
  // Hook
186
  do_action( 'su/assets/custom_css/after' );
inc/core/counters.php CHANGED
File without changes
inc/core/data.php CHANGED
@@ -1489,6 +1489,12 @@ class Su_Data {
1489
  'name' => __( 'WMode', 'shortcodes-ultimate' ),
1490
  'desc' => sprintf( __( 'Here you can specify wmode value for the embed URL. %s Example values: %s, %s', 'shortcodes-ultimate' ), '<br>', '<b%value>transparent</b>', '<b%value>opaque</b>' )
1491
  ),
 
 
 
 
 
 
1492
  'class' => array(
1493
  'type' => 'extra_css_class',
1494
  'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
@@ -1826,6 +1832,12 @@ class Su_Data {
1826
  'name' => __( 'CSV file', 'shortcodes-ultimate' ),
1827
  'desc' => __( 'Upload CSV file if you want to create HTML-table from file', 'shortcodes-ultimate' )
1828
  ),
 
 
 
 
 
 
1829
  'class' => array(
1830
  'type' => 'extra_css_class',
1831
  'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
1489
  'name' => __( 'WMode', 'shortcodes-ultimate' ),
1490
  'desc' => sprintf( __( 'Here you can specify wmode value for the embed URL. %s Example values: %s, %s', 'shortcodes-ultimate' ), '<br>', '<b%value>transparent</b>', '<b%value>opaque</b>' )
1491
  ),
1492
+ 'playsinline' => array(
1493
+ 'type' => 'bool',
1494
+ 'default' => 'no',
1495
+ 'name' => __( 'Plays inline', 'shortcodes-ultimate' ),
1496
+ 'desc' => __( 'This parameter controls whether videos play inline or fullscreen in an HTML5 player on iOS', 'shortcodes-ultimate' )
1497
+ ),
1498
  'class' => array(
1499
  'type' => 'extra_css_class',
1500
  'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
1832
  'name' => __( 'CSV file', 'shortcodes-ultimate' ),
1833
  'desc' => __( 'Upload CSV file if you want to create HTML-table from file', 'shortcodes-ultimate' )
1834
  ),
1835
+ 'responsive' => array(
1836
+ 'type' => 'bool',
1837
+ 'default' => 'no',
1838
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1839
+ 'desc' => __( 'Add horizontal scrollbar if table width larger than page width', 'shortcodes-ultimate' )
1840
+ ),
1841
  'class' => array(
1842
  'type' => 'extra_css_class',
1843
  'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
inc/core/generator-views.php CHANGED
File without changes
inc/core/generator.php CHANGED
File without changes
inc/core/load.php CHANGED
File without changes
inc/core/requirements.php CHANGED
File without changes
inc/core/shortcodes.php CHANGED
@@ -468,6 +468,7 @@ class Su_Shortcodes {
468
  }
469
 
470
  public static function box( $atts = null, $content = null ) {
 
471
  $atts = shortcode_atts( array(
472
  'title' => __( 'This is box title', 'shortcodes-ultimate' ),
473
  'style' => 'default',
@@ -477,14 +478,30 @@ class Su_Shortcodes {
477
  'radius' => '3',
478
  'class' => ''
479
  ), $atts, 'box' );
480
- if ( $atts['color'] !== null ) $atts['box_color'] = $atts['color'];
481
- // Prepare border-radius
482
- $radius = ( $atts['radius'] != '0' ) ? 'border-radius:' . $atts['radius'] . 'px;-moz-border-radius:' . $atts['radius'] . 'px;-webkit-border-radius:' . $atts['radius'] . 'px;' : '';
483
- $title_radius = ( $atts['radius'] != '0' ) ? $atts['radius'] - 1 : '';
484
- $title_radius = ( $title_radius ) ? '-webkit-border-top-left-radius:' . $title_radius . 'px;-webkit-border-top-right-radius:' . $title_radius . 'px;-moz-border-radius-topleft:' . $title_radius . 'px;-moz-border-radius-topright:' . $title_radius . 'px;border-top-left-radius:' . $title_radius . 'px;border-top-right-radius:' . $title_radius . 'px;' : '';
 
 
 
485
  su_query_asset( 'css', 'su-box-shortcodes' );
 
486
  // Return result
487
- return '<div class="su-box su-box-style-' . $atts['style'] . su_ecssc( $atts ) . '" style="border-color:' . su_hex_shift( $atts['box_color'], 'darker', 20 ) . ';' . $radius . '"><div class="su-box-title" style="background-color:' . $atts['box_color'] . ';color:' . $atts['title_color'] . ';' . $title_radius . '">' . su_scattr( $atts['title'] ) . '</div><div class="su-box-content su-clearfix">' . su_do_shortcode( $content, 'b' ) . '</div></div>';
 
 
 
 
 
 
 
 
 
 
 
 
488
  }
489
 
490
  public static function note( $atts = null, $content = null ) {
@@ -660,6 +677,7 @@ class Su_Shortcodes {
660
  'theme' => 'dark',
661
  'https' => 'no',
662
  'wmode' => '',
 
663
  'class' => ''
664
  ), $atts, 'youtube_advanced' );
665
  if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
@@ -668,7 +686,7 @@ class Su_Shortcodes {
668
  // Check that url is specified
669
  if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
670
  // Prepare params
671
- foreach ( array( 'autohide', 'autoplay', 'controls', 'fs', 'loop', 'modestbranding', 'playlist', 'rel', 'showinfo', 'theme', 'wmode' ) as $param ) $params[$param] = str_replace( array( 'no', 'yes', 'alt' ), array( '0', '1', '2' ), $atts[$param] );
672
  // Correct loop
673
  if ( $params['loop'] === '1' && $params['playlist'] === '' ) $params['playlist'] = $id;
674
  // Prepare protocol
@@ -828,8 +846,12 @@ class Su_Shortcodes {
828
  public static function table( $atts = null, $content = null ) {
829
  $atts = shortcode_atts( array(
830
  'url' => false,
 
831
  'class' => ''
832
  ), $atts, 'table' );
 
 
 
833
  $return = '<div class="su-table' . su_ecssc( $atts ) . '">';
834
  $return .= ( $atts['url'] ) ? su_parse_csv( $atts['url'] ) : do_shortcode( $content );
835
  $return .= '</div>';
@@ -1196,8 +1218,9 @@ class Su_Shortcodes {
1196
  }
1197
 
1198
  public static function posts( $atts = null, $content = null ) {
1199
- // Prepare error var
1200
- $error = null;
 
1201
  // Parse attributes
1202
  $atts = shortcode_atts( array(
1203
  'template' => 'templates/default-loop.php',
@@ -1218,8 +1241,6 @@ class Su_Shortcodes {
1218
  'ignore_sticky_posts' => 'no'
1219
  ), $atts, 'posts' );
1220
 
1221
- $original_atts = $atts;
1222
-
1223
  $author = sanitize_text_field( $atts['author'] );
1224
  $id = $atts['id']; // Sanitized later as an array of integers
1225
  $ignore_sticky_posts = ( bool ) ( $atts['ignore_sticky_posts'] === 'yes' ) ? true : false;
@@ -1280,9 +1301,12 @@ class Su_Shortcodes {
1280
  // Check for multiple taxonomy queries
1281
  $count = 2;
1282
  $more_tax_queries = false;
1283
- while ( isset( $original_atts['taxonomy_' . $count] ) && !empty( $original_atts['taxonomy_' . $count] ) &&
 
 
1284
  isset( $original_atts['tax_' . $count . '_term'] ) &&
1285
- !empty( $original_atts['tax_' . $count . '_term'] ) ) {
 
1286
  // Sanitize values
1287
  $more_tax_queries = true;
1288
  $taxonomy = sanitize_key( $original_atts['taxonomy_' . $count] );
@@ -1296,14 +1320,23 @@ class Su_Shortcodes {
1296
  'operator' => $tax_operator );
1297
  $count++;
1298
  }
1299
- if ( $more_tax_queries ):
 
1300
  $tax_relation = 'AND';
1301
- if ( isset( $original_atts['tax_relation'] ) &&
1302
- in_array( $original_atts['tax_relation'], array( 'AND', 'OR' ) )
1303
- ) $tax_relation = $original_atts['tax_relation'];
1304
- $args['tax_query']['relation'] = $tax_relation;
1305
- endif;
 
 
 
 
 
 
 
1306
  $args = array_merge( $args, $tax_args );
 
1307
  }
1308
 
1309
  // If post parent attribute, set up parent
@@ -1550,7 +1583,7 @@ class Su_Shortcodes {
1550
  // Sanitize
1551
  $atts['time'] = preg_replace( "/[^0-9-,:]/", '', $atts['time'] );
1552
  // Loop time ranges
1553
- foreach( explode( ',', $atts['time'] ) as $range ) {
1554
  // Check for range symbol
1555
  if ( strpos( $range, '-' ) === false ) return Su_Tools::error( __FUNCTION__, sprintf( __( 'Incorrect time range (%s). Please use - (minus) symbol to specify time range. Example: 14:00 - 18:00', 'shortcodes-ultimate' ), $range ) );
1556
  // Split begin/end time
468
  }
469
 
470
  public static function box( $atts = null, $content = null ) {
471
+
472
  $atts = shortcode_atts( array(
473
  'title' => __( 'This is box title', 'shortcodes-ultimate' ),
474
  'style' => 'default',
478
  'radius' => '3',
479
  'class' => ''
480
  ), $atts, 'box' );
481
+
482
+ if ( $atts['color'] !== null ) {
483
+ $atts['box_color'] = $atts['color'];
484
+ }
485
+
486
+ $atts['radius'] = is_numeric( $atts['radius'] ) ? intval( $atts['radius'] ) : 0;
487
+ $atts['inner_radius'] = $atts['radius'] > 2 ? $atts['radius'] - 2 : 0;
488
+
489
  su_query_asset( 'css', 'su-box-shortcodes' );
490
+
491
  // Return result
492
+ return sprintf(
493
+ '<div class="su-box su-box-style-%1$s%2$s" style="border-color:%3$s;border-radius:%4$spx"><div class="su-box-title" style="background-color:%5$s;color:%6$s;border-top-left-radius:%7$spx;border-top-right-radius:%7$spx">%8$s</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:%7$spx;border-bottom-right-radius:%7$spx">%9$s</div></div>',
494
+ esc_attr( $atts['style'] ),
495
+ su_ecssc( $atts ),
496
+ su_hex_shift( $atts['box_color'], 'darker', 20 ),
497
+ $atts['radius'],
498
+ $atts['box_color'],
499
+ $atts['title_color'],
500
+ $atts['inner_radius'],
501
+ su_scattr( $atts['title'] ),
502
+ su_do_shortcode( $content, 'b' )
503
+ );
504
+
505
  }
506
 
507
  public static function note( $atts = null, $content = null ) {
677
  'theme' => 'dark',
678
  'https' => 'no',
679
  'wmode' => '',
680
+ 'playsinline' => 'no',
681
  'class' => ''
682
  ), $atts, 'youtube_advanced' );
683
  if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
686
  // Check that url is specified
687
  if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
688
  // Prepare params
689
+ foreach ( array( 'autohide', 'autoplay', 'controls', 'fs', 'loop', 'modestbranding', 'playlist', 'rel', 'showinfo', 'theme', 'wmode', 'playsinline' ) as $param ) $params[$param] = str_replace( array( 'no', 'yes', 'alt' ), array( '0', '1', '2' ), $atts[$param] );
690
  // Correct loop
691
  if ( $params['loop'] === '1' && $params['playlist'] === '' ) $params['playlist'] = $id;
692
  // Prepare protocol
846
  public static function table( $atts = null, $content = null ) {
847
  $atts = shortcode_atts( array(
848
  'url' => false,
849
+ 'responsive' => false,
850
  'class' => ''
851
  ), $atts, 'table' );
852
+ if ( $atts['responsive'] ) {
853
+ $atts['class'] .= ' su-table-responsive';
854
+ }
855
  $return = '<div class="su-table' . su_ecssc( $atts ) . '">';
856
  $return .= ( $atts['url'] ) ? su_parse_csv( $atts['url'] ) : do_shortcode( $content );
857
  $return .= '</div>';
1218
  }
1219
 
1220
  public static function posts( $atts = null, $content = null ) {
1221
+
1222
+ $original_atts = $atts;
1223
+
1224
  // Parse attributes
1225
  $atts = shortcode_atts( array(
1226
  'template' => 'templates/default-loop.php',
1241
  'ignore_sticky_posts' => 'no'
1242
  ), $atts, 'posts' );
1243
 
 
 
1244
  $author = sanitize_text_field( $atts['author'] );
1245
  $id = $atts['id']; // Sanitized later as an array of integers
1246
  $ignore_sticky_posts = ( bool ) ( $atts['ignore_sticky_posts'] === 'yes' ) ? true : false;
1301
  // Check for multiple taxonomy queries
1302
  $count = 2;
1303
  $more_tax_queries = false;
1304
+ while (
1305
+ isset( $original_atts['taxonomy_' . $count] ) &&
1306
+ ! empty( $original_atts['taxonomy_' . $count] ) &&
1307
  isset( $original_atts['tax_' . $count . '_term'] ) &&
1308
+ ! empty( $original_atts['tax_' . $count . '_term'] )
1309
+ ) {
1310
  // Sanitize values
1311
  $more_tax_queries = true;
1312
  $taxonomy = sanitize_key( $original_atts['taxonomy_' . $count] );
1320
  'operator' => $tax_operator );
1321
  $count++;
1322
  }
1323
+ if ( $more_tax_queries ) {
1324
+
1325
  $tax_relation = 'AND';
1326
+
1327
+ if (
1328
+ isset( $original_atts['tax_relation'] ) &&
1329
+ in_array( $original_atts['tax_relation'], array( 'AND', 'OR' ) )
1330
+ ) {
1331
+ $tax_relation = $original_atts['tax_relation'];
1332
+ }
1333
+
1334
+ $args['tax_query']['relation'] = $tax_relation;
1335
+
1336
+ }
1337
+
1338
  $args = array_merge( $args, $tax_args );
1339
+
1340
  }
1341
 
1342
  // If post parent attribute, set up parent
1583
  // Sanitize
1584
  $atts['time'] = preg_replace( "/[^0-9-,:]/", '', $atts['time'] );
1585
  // Loop time ranges
1586
+ foreach ( explode( ',', $atts['time'] ) as $range ) {
1587
  // Check for range symbol
1588
  if ( strpos( $range, '-' ) === false ) return Su_Tools::error( __FUNCTION__, sprintf( __( 'Incorrect time range (%s). Please use - (minus) symbol to specify time range. Example: 14:00 - 18:00', 'shortcodes-ultimate' ), $range ) );
1589
  // Split begin/end time
inc/core/tools.php CHANGED
File without changes
inc/core/widget.php CHANGED
File without changes
includes/class-shortcodes-ultimate-activator.php CHANGED
File without changes
includes/class-shortcodes-ultimate-upgrade.php CHANGED
File without changes
includes/class-shortcodes-ultimate.php CHANGED
@@ -152,11 +152,9 @@ class Shortcodes_Ultimate {
152
  */
153
  $addons = new Shortcodes_Ultimate_Admin_Addons( $this->plugin_file, $this->plugin_version );
154
 
155
- add_action( 'admin_menu', array( $addons, 'admin_menu' ), 30 );
156
- add_action( 'admin_enqueue_scripts', array( $addons, 'enqueue_scripts' ) );
157
- add_action( 'current_screen', array( $addons, 'add_help_tab' ) );
158
- add_action( 'admin_post_su_activate_license', array( $addons, 'activate_license' ) );
159
- add_action( 'admin_post_su_deactivate_license', array( $addons, 'deactivate_license' ) );
160
 
161
 
162
  /**
152
  */
153
  $addons = new Shortcodes_Ultimate_Admin_Addons( $this->plugin_file, $this->plugin_version );
154
 
155
+ add_action( 'admin_menu', array( $addons, 'admin_menu' ), 30 );
156
+ add_action( 'admin_enqueue_scripts', array( $addons, 'enqueue_scripts' ) );
157
+ add_action( 'current_screen', array( $addons, 'add_help_tab' ) );
 
 
158
 
159
 
160
  /**
languages/readme.txt CHANGED
File without changes
license.txt CHANGED
File without changes
readme.txt CHANGED
@@ -4,7 +4,7 @@ License: GPLv3
4
  Donate link: https://paypal.me/anovladimir
5
  Tags: shortcode, toggle, columns, button, slider, video, map, visual, responsive, shortcodes, youtube, vimeo, audio, mp3, tabs, jquery, box, accordion, toggle, pullquote, list, image, gallery, navigation, permalink, feed, rss, members, membership, guests, carousel, icons, rtl, multilingual
6
  Requires at least: 3.5
7
- Tested up to: 4.8
8
  Stable tag: trunk
9
 
10
  A comprehensive collection of visual components for your site
@@ -107,6 +107,13 @@ For help with premium add-ons, please [open new support ticket](https://getshort
107
 
108
  = 5.0.2 =
109
  * Fixed: an issue where RTL stylesheet won't displayed if custom CSS field is empty
 
 
 
 
 
 
 
110
 
111
  = 5.0.1 =
112
  * Fixed: serious security vulnerability, which allows attacker to run any code using filter in meta, post, or user shortcodes. Thanks to Robert L Mathews.
4
  Donate link: https://paypal.me/anovladimir
5
  Tags: shortcode, toggle, columns, button, slider, video, map, visual, responsive, shortcodes, youtube, vimeo, audio, mp3, tabs, jquery, box, accordion, toggle, pullquote, list, image, gallery, navigation, permalink, feed, rss, members, membership, guests, carousel, icons, rtl, multilingual
6
  Requires at least: 3.5
7
+ Tested up to: 4.9
8
  Stable tag: trunk
9
 
10
  A comprehensive collection of visual components for your site
107
 
108
  = 5.0.2 =
109
  * Fixed: an issue where RTL stylesheet won't displayed if custom CSS field is empty
110
+ * Fixed: icon sizes at 'Dashboard - Available Shortcodes' page
111
+ * Fixed: [expand] shortcode now works when loaded through AJAX
112
+ * Fixed: border-radius on [box] shortcode
113
+ * Fixed: compatibility with 'Plugin Organizer'
114
+ * Updated: OwlCarousel jQuery plugin
115
+ * Added: new attribute 'responsive' for table shortcode: [su_table responsive="no|yes"]
116
+ * Added: new attribute 'playsinline' for youtube_advanced shortcode: [su_youtube_advanced playsinline="no|yes"]
117
 
118
  = 5.0.1 =
119
  * Fixed: serious security vulnerability, which allows attacker to run any code using filter in meta, post, or user shortcodes. Thanks to Robert L Mathews.
shortcodes-ultimate.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * Plugin Name: Shortcodes Ultimate
4
- * Plugin URI: http://getshortcodes.com/
5
- * Version: 5.0.1
6
  * Author: Vladimir Anokhin
7
  * Author URI: https://vanokhin.com/
8
  * Description: A comprehensive collection of visual components for WordPress
@@ -15,7 +15,7 @@
15
  * Define plugin constants.
16
  */
17
  define( 'SU_PLUGIN_FILE', __FILE__ );
18
- define( 'SU_PLUGIN_VERSION', '5.0.1' );
19
  define( 'SU_ENABLE_CACHE', false );
20
 
21
  /**
@@ -54,10 +54,19 @@ function run_shortcodes_ultimate() {
54
 
55
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-shortcodes-ultimate.php';
56
 
57
- $plugin = new Shortcodes_Ultimate( __FILE__, '5.0.0' );
58
-
59
- do_action( 'su/ready', $plugin );
60
 
61
  }
62
 
63
  run_shortcodes_ultimate();
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
  /**
3
  * Plugin Name: Shortcodes Ultimate
4
+ * Plugin URI: https://getshortcodes.com/
5
+ * Version: 5.0.2
6
  * Author: Vladimir Anokhin
7
  * Author URI: https://vanokhin.com/
8
  * Description: A comprehensive collection of visual components for WordPress
15
  * Define plugin constants.
16
  */
17
  define( 'SU_PLUGIN_FILE', __FILE__ );
18
+ define( 'SU_PLUGIN_VERSION', '5.0.2' );
19
  define( 'SU_ENABLE_CACHE', false );
20
 
21
  /**
54
 
55
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-shortcodes-ultimate.php';
56
 
57
+ $plugin = new Shortcodes_Ultimate( __FILE__, '5.0.2' );
 
 
58
 
59
  }
60
 
61
  run_shortcodes_ultimate();
62
+
63
+ /**
64
+ * Finishes execution of the plugin.
65
+ *
66
+ * @since 5.0.2
67
+ */
68
+ function shutdown_shortcodes_ultimate() {
69
+ do_action( 'su/ready' );
70
+ }
71
+
72
+ add_action( 'plugins_loaded', 'shutdown_shortcodes_ultimate' );
templates/default-loop.php CHANGED
File without changes
templates/list-loop.php CHANGED
File without changes
templates/single-post.php CHANGED
File without changes
templates/teaser-loop.php CHANGED
File without changes